Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Отвергнутые патчи

Важная информация

Отвергнутые патчи Патчи, отвергнутые от приёма в GIT

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.05.2011, 20:24   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию Introduced new method RemoveSpellIconIdCooldown

Код:
diff --git a/src/game/DBCStores.cpp b/src/game/DBCStores.cpp
index 8bcb899..8751600 100644
--- a/src/game/DBCStores.cpp
+++ b/src/game/DBCStores.cpp
@@ -148,6 +148,7 @@ DBCStorage <SpellItemEnchantmentConditionEntry> sSpellItemEnchantmentConditionSt
 DBCStorage <SpellEntry> sSpellStore(SpellEntryfmt);
 SpellCategoryStore sSpellCategoryStore;
 PetFamilySpellsStore sPetFamilySpellsStore;
+SpellIconIdStore sSpellIconIdStore;
 
 DBCStorage <SpellCastTimesEntry> sSpellCastTimesStore(SpellCastTimefmt);
 DBCStorage <SpellDifficultyEntry> sSpellDifficultyStore(SpellDifficultyfmt);
@@ -485,6 +486,9 @@ void LoadDBCStores(const std::string& dataPath)
         if(spell && spell->Category)
             sSpellCategoryStore[spell->Category].insert(i);
 
+        if (spell && spell->SpellIconID)
+            sSpellIconIdStore[spell->SpellIconID].insert(i);
+
         // DBC not support uint64 fields but SpellEntry have SpellFamilyFlags mapped at 2 uint32 fields
         // uint32 field already converted to bigendian if need, but must be swapped for correct uint64 bigendian view
         #if MANGOS_ENDIAN == MANGOS_BIGENDIAN
diff --git a/src/game/DBCStores.h b/src/game/DBCStores.h
index acffa01..edec1ee 100644
--- a/src/game/DBCStores.h
+++ b/src/game/DBCStores.h
@@ -173,6 +173,7 @@ extern DBCStorage <WMOAreaTableEntry>            sWMOAreaTableStore;
 //extern DBCStorage <WorldMapAreaEntry>           sWorldMapAreaStore; -- use Zone2MapCoordinates and Map2ZoneCoordinates
 extern DBCStorage <WorldMapOverlayEntry>         sWorldMapOverlayStore;
 extern DBCStorage <WorldSafeLocsEntry>           sWorldSafeLocsStore;
+extern SpellIconIdStore                          sSpellIconIdStore;
 
 void LoadDBCStores(const std::string& dataPath);
 
diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h
index 4f496e4..6d23516 100644
--- a/src/game/DBCStructure.h
+++ b/src/game/DBCStructure.h
@@ -2021,6 +2021,8 @@ typedef std::set<uint32> SpellCategorySet;
 typedef std::map<uint32,SpellCategorySet > SpellCategoryStore;
 typedef std::set<uint32> PetFamilySpellsSet;
 typedef std::map<uint32,PetFamilySpellsSet > PetFamilySpellsStore;
+typedef std::set<uint32>SpellIconIdSet;
+typedef std::map<uint32, SpellIconIdSet > SpellIconIdStore;
 
 // Structures not used for casting to loaded DBC data and not required then packing
 struct MapDifficulty
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index e6f1e3a..915d2ed 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -22781,3 +22781,21 @@ void Player::SetRestType( RestType n_r_type, uint32 areaTriggerId /*= 0*/)
             SetFFAPvP(false);
     }
 }
+
+void Player::RemoveSpellIconIdCooldown(uint32 spellIcon, bool update/*= false*/)
+{
+    SpellIconIdStore::const_iterator icon = sSpellIconIdStore.find(spellIcon);
+
+    if (icon == sSpellIconIdStore.end())
+        return;
+
+    const SpellIconIdSet& icon_set = icon->second;
+
+    for (SpellCooldowns::const_iterator i = m_spellCooldowns.begin(); i != m_spellCooldowns.end();)
+    {
+        if (icon_set.find(i->first) != icon_set.end())
+            RemoveSpellCooldown((i++)->first, update);
+        else
+            ++i;
+    }
+}
diff --git a/src/game/Player.h b/src/game/Player.h
index b2193e2..c322a54 100644
--- a/src/game/Player.h
+++ b/src/game/Player.h
@@ -1657,6 +1657,7 @@ class MANGOS_DLL_SPEC Player : public Unit
         void ProhibitSpellSchool(SpellSchoolMask idSchoolMask, uint32 unTimeMs );
         void RemoveSpellCooldown(uint32 spell_id, bool update = false);
         void RemoveSpellCategoryCooldown(uint32 cat, bool update = false);
+        void RemoveSpellIconIdCooldown(uint32 spellIcon, bool update = false);
         void SendClearCooldown( uint32 spell_id, Unit* target );
 
         GlobalCooldownMgr& GetGlobalCooldownMgr() { return m_GlobalCooldownMgr; }
diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp
Что-то я задумался... надо или ненадо...
Den вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[11191] Fixed crash introduced in prev. pool commit. newsbot CMaNGOS Commits 0 20.02.2011 12:00
[11063] Convert Database::DirectExecute() method to more effective form due to change [11061]. newsbot CMaNGOS Commits 0 22.01.2011 02:30
[10062] Removed wrong method const. newsbot CMaNGOS Commits 0 15.06.2010 16:10
[9782] Small clean up in 2 method names newsbot CMaNGOS Commits 0 23.04.2010 16:10


Текущее время: 13:32. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot