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 вне форума   Ответить с цитированием
Старый 11.05.2011, 21:08   #2
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Для чего?
zergtmn вне форума   Ответить с цитированием
Старый 12.05.2011, 00:01   #3
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Spellicon восновном хаки для выбора наборов спелов когда проверка по dbc spell family данным не помогает. Неуверен что требуется такой высокоуровневый вызов. Тем более что близы используют одинаковые иконки для совершенно разных спелов в разных классах, а уж в случае npc так вообще куча мала. А кулдауны вроде по собственным полям выбираются если не по школе магии там и т.д.?
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 12.05.2011 в 00:06.
Vladimir вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Den (12.05.2011)
Ответ


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

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


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


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