aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorVincent_Michael <Vincent_Michael@gmx.de>2013-02-28 22:14:48 +0100
committerVincent_Michael <Vincent_Michael@gmx.de>2013-02-28 22:14:48 +0100
commitb2d05c9cdd19abf005f249ace7f59d2c4fc2bbf1 (patch)
tree72b2717bf2a10cf86fc49f99ffde2bcd0100f708 /src/server/game
parent47d7c3a6adbc9f11066a26136bbad440ee3c8641 (diff)
parentd069e1b6b4d9f839df1a823d0ec1ddfa6dea303c (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Entities/Creature/Creature.h src/server/game/Entities/Player/Player.h src/server/game/Spells/SpellMgr.cpp
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.h36
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAV.h28
-rw-r--r--src/server/game/DataStores/DBCStructure.h2
-rw-r--r--src/server/game/Entities/Creature/Creature.h12
-rw-r--r--src/server/game/Entities/Item/ItemPrototype.h9
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.h5
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp4
-rw-r--r--src/server/game/Globals/ObjectAccessor.h2
-rw-r--r--src/server/game/Instances/InstanceSaveMgr.h4
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h14
-rw-r--r--src/server/game/Spells/SpellMgr.cpp31
12 files changed, 82 insertions, 67 deletions
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h
index 09ad5b284fd..047455ce8fb 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.h
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h
@@ -102,21 +102,21 @@ enum WintergraspData
enum WintergraspAchievements
{
ACHIEVEMENTS_WIN_WG = 1717,
- ACHIEVEMENTS_WIN_WG_100 = 1718, // todo
- ACHIEVEMENTS_WG_GNOMESLAUGHTER = 1723, // todo
+ ACHIEVEMENTS_WIN_WG_100 = 1718, /// @todo: Has to be implemented
+ ACHIEVEMENTS_WG_GNOMESLAUGHTER = 1723, /// @todo: Has to be implemented
ACHIEVEMENTS_WG_TOWER_DESTROY = 1727,
- ACHIEVEMENTS_DESTRUCTION_DERBY_A = 1737, // todo
- ACHIEVEMENTS_WG_TOWER_CANNON_KILL = 1751, // todo
- ACHIEVEMENTS_WG_MASTER_A = 1752, // todo
+ ACHIEVEMENTS_DESTRUCTION_DERBY_A = 1737, /// @todo: Has to be implemented
+ ACHIEVEMENTS_WG_TOWER_CANNON_KILL = 1751, /// @todo: Has to be implemented
+ ACHIEVEMENTS_WG_MASTER_A = 1752, /// @todo: Has to be implemented
ACHIEVEMENTS_WIN_WG_TIMER_10 = 1755,
- ACHIEVEMENTS_STONE_KEEPER_50 = 2085, // todo
- ACHIEVEMENTS_STONE_KEEPER_100 = 2086, // todo
- ACHIEVEMENTS_STONE_KEEPER_250 = 2087, // todo
- ACHIEVEMENTS_STONE_KEEPER_500 = 2088, // todo
- ACHIEVEMENTS_STONE_KEEPER_1000 = 2089, // todo
- ACHIEVEMENTS_WG_RANGER = 2199, // todo
- ACHIEVEMENTS_DESTRUCTION_DERBY_H = 2476, // todo
- ACHIEVEMENTS_WG_MASTER_H = 2776 // todo
+ ACHIEVEMENTS_STONE_KEEPER_50 = 2085, /// @todo: Has to be implemented
+ ACHIEVEMENTS_STONE_KEEPER_100 = 2086, /// @todo: Has to be implemented
+ ACHIEVEMENTS_STONE_KEEPER_250 = 2087, /// @todo: Has to be implemented
+ ACHIEVEMENTS_STONE_KEEPER_500 = 2088, /// @todo: Has to be implemented
+ ACHIEVEMENTS_STONE_KEEPER_1000 = 2089, /// @todo: Has to be implemented
+ ACHIEVEMENTS_WG_RANGER = 2199, /// @todo: Has to be implemented
+ ACHIEVEMENTS_DESTRUCTION_DERBY_H = 2476, /// @todo: Has to be implemented
+ ACHIEVEMENTS_WG_MASTER_H = 2776 /// @todo: Has to be implemented
};
enum WintergraspWorldStates
@@ -499,7 +499,7 @@ enum WintergraspTeamControl
BATTLEFIELD_WG_TEAM_NEUTRAL
};
-// TODO: Handle this with creature_text ?
+/// @todo: Can this be handled with creature_text or SmartAI ?
enum WintergraspText
{
BATTLEFIELD_WG_TEXT_WORKSHOP_NAME_NE = 12055,
@@ -562,7 +562,7 @@ struct WintergraspObjectPositionData
};
// *****************************************************
-// ************ Destructible (Wall, Tower..) ************
+// ************ Destructible (Wall, Tower..) ***********
// *****************************************************
struct WintergraspBuildingSpawnData
@@ -755,7 +755,7 @@ const WintergraspTeleporterData WGPortalDefenderData[WG_MAX_TELEPORTER] =
};
// *********************************************************
-// **********Tower Element(GameObject, Creature)*************
+// **********Tower Element(GameObject, Creature)************
// *********************************************************
struct WintergraspTowerData
@@ -764,7 +764,7 @@ struct WintergraspTowerData
uint8 nbObject; // Number of gameobjects spawned on this point
WintergraspObjectPositionData GameObject[6]; // Gameobject position and entry (Horde/Alliance)
- // Creature : Turrets and Guard, TODO: check if killed on tower destruction? tower damage?
+ // Creature: Turrets and Guard /// @todo: Killed on Tower destruction ? Tower damage ? Requires confirming
uint8 nbCreatureBottom;
WintergraspObjectPositionData CreatureBottom[9];
uint8 nbCreatureTop;
@@ -1055,7 +1055,7 @@ const WGWorkshopData WorkshopsData[WG_MAX_WORKSHOP] =
};
// ********************************************************************
-// * Structs using for Building, Graveyard, Workshop *
+// * Structs using for Building, Graveyard, Workshop *
// ********************************************************************
// Structure for different buildings that can be destroyed during battle
struct BfWGGameObjectBuilding
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
index 7cd4d571cad..7a0af0b06d7 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
@@ -53,7 +53,7 @@
#define AV_EVENT_START_BATTLE 9166 // Achievement: The Alterac Blitz
enum BG_AV_Sounds
-{ //TODO: get out if there comes a sound when neutral team captures mine
+{ /// @todo: get out if there comes a sound when neutral team captures mine
/*
8212:
@@ -86,7 +86,7 @@ horde:
horde wins
*/
- AV_SOUND_NEAR_VICTORY = 8456, //not confirmed yet
+ AV_SOUND_NEAR_VICTORY = 8456, /// @todo: Not confirmed yet
AV_SOUND_ALLIANCE_ASSAULTS = 8212, //tower, grave + enemy boss if someone tries to attack him
AV_SOUND_HORDE_ASSAULTS = 8174,
@@ -104,7 +104,7 @@ enum BG_AV_OTHER_VALUES
AV_NORTH_MINE = 0,
AV_SOUTH_MINE = 1,
AV_MINE_TICK_TIMER = 45000,
- AV_MINE_RECLAIM_TIMER = 1200000, //TODO: get the right value.. this is currently 20 minutes
+ AV_MINE_RECLAIM_TIMER = 1200000, /// @todo: get the right value.. this is currently 20 minutes
AV_NEUTRAL_TEAM = 0 //this is the neutral owner of snowfall
};
enum BG_AV_ObjectIds
@@ -547,7 +547,7 @@ enum BG_AV_CreaturePlace
AV_CPLACE_SPIRIT_FROST_HUT = 6,
AV_CPLACE_SPIRIT_MAIN_ALLIANCE = 7,
AV_CPLACE_SPIRIT_MAIN_HORDE = 8,
-//i don't will add for all 4 positions a variable.. i think one is enough to compute the rest
+//I don't add a variable for all 4 positions... I think one is enough to compute the rest
AV_CPLACE_DEFENSE_STORM_AID = 9,
AV_CPLACE_DEFEMSE_STORM_GRAVE = 13,
AV_CPLACE_DEFENSE_STONE_GRAVE = 17,
@@ -680,7 +680,7 @@ const float BG_AV_CreaturePos[AV_CPLACE_MAX][4] =
{575.411f, -83.597f, 52.3626f, 6.26573f},
{571.352f, -75.6582f, 52.479f, 0.523599f},
//dun north - OK
- {668.60f, -122.53f, 64.12f, 2.34f}, //not 100% ok
+ {668.60f, -122.53f, 64.12f, 2.34f}, /// @todo: To be confirm - Not completely okay
{662.253f, -129.105f, 64.1794f, 2.77507f},
{661.209f, -138.877f, 64.2251f, 3.38594f},
{665.481f, -146.857f, 64.1271f, 3.75246f},
@@ -720,7 +720,7 @@ const float BG_AV_CreaturePos[AV_CPLACE_MAX][4] =
{723.058f, -14.1548f, 50.7046f, 3.40339f}, // north
{715.691f, -4.72233f, 50.2187f, 3.47321f}, // icewing
{720.046f, -19.9413f, 50.2187f, 3.36849f}, // stone
-//horde (coords not 100% ok)
+/// horde @todo: Confirm positions
{-1363.99f, -221.99f, 98.4053f, 4.93012f},
{-1370.96f, -223.532f, 98.4266f, 4.93012f},
{-1378.37f, -228.614f, 99.3546f, 5.38565f},
@@ -1039,14 +1039,14 @@ enum BG_AV_CreatureIds
};
//entry, team, minlevel, maxlevel
-//TODO this array should be removed, the only needed things are the entrys (for spawning(?) and handlekillunit)
+/// @todo: this array should be removed, the only needed things are the entrys (for spawning(?) and handlekillunit)
const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX][4] =
{
{ 12050, 1216, 58, 58 }, //Stormpike Defender
{ 13326, 1216, 59, 59 }, //Seasoned Defender
{ 13331, 1216, 60, 60 }, //Veteran Defender
{ 13422, 1216, 61, 61 }, //Champion Defender
- { 13358, 1216, 59, 60 }, //Stormpike Bowman //i think its 60, 61 and 69, 70.. but this is until now not possible TODO look if this is ok
+ { 13358, 1216, 59, 60 }, //Stormpike Bowman /// @todo: Confirm if this is correct. Author assumpted 60,61 & 69,70, but wouldn't work here
{ 11949, 469, 0, 0}, //not spawned with this data, but used for handlekillunit
{ 11948, 469, 0, 0}, //not spawned with this data, but used for handlekillunit
{ 12053, 1214, 58, 58 }, //Frostwolf Guardian
@@ -1071,7 +1071,7 @@ const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX][4] =
{ 11602, 59, 54, 55 }, //Irondeep Skullthumper
{ 11657, 59, 58, 58 }, //Morloch
- {13396, 469, 52, 53}, //irondeep alliance TODO: get the right ids
+ {13396, 469, 52, 53}, // irondeep alliance /// @todo: Correct and give correct ids
{13080, 469, 53, 54},
{13098, 469, 54, 55},
{13078, 469, 58, 58},
@@ -1246,7 +1246,7 @@ const uint32 BG_AV_StaticCreatureInfo[51][4] =
{ 11675, 514, 53, 53 }, //Snowblind Windcaller
{ 11678, 14, 52, 53 }, //Snowblind Ambusher
{ 11839, 39, 56, 56 }, //Wildpaw Brute
- { 11947, 1214, 61, 61 }, //Captain Galvangar --TODO: doubled
+ { 11947, 1214, 61, 61 }, // Captain Galvangar /// @todo: Duplicate ? Check and confirm
{ 11948, 1216, 63, 63 }, //Vanndar Stormpike
{ 11949, 1216, 61, 61 }, //Captain Balinda Stonehearth
{ 11997, 1334, 60, 60 }, //Stormpike Herald
@@ -1277,7 +1277,7 @@ const uint32 BG_AV_StaticCreatureInfo[51][4] =
{ 14282, 1214, 53, 54 }, //Frostwolf Bloodhound
{ 14283, 1216, 53, 54 }, //Stormpike Owl
{ 14284, 1216, 61, 61 }, //Stormpike Battleguard
- { 11946, 1214, 63, 63 }, //Drek'Thar //TODO: make the levels right (boss=0 maybe)
+ { 11946, 1214, 63, 63 }, //Drek'Thar /// @todo: Correct the level (Level 80 for boss ?)
{ 11948, 1216, 63, 63 }, //Vanndar Stormpike
{ 11947, 1214, 61, 61 }, //Captain Galvangar
{ 11949, 1216, 61, 61 } //Captain Balinda Stonehearth
@@ -1310,7 +1310,7 @@ const uint32 BG_AV_GraveyardIds[9]=
};
enum BG_AV_BUFF
-{ //TODO add all other buffs here
+{ /// @todo: Add all other buffs here
AV_BUFF_ARMOR = 21163,
AV_BUFF_A_CAPTAIN = 23693, //the buff which the alliance captain does
AV_BUFF_H_CAPTAIN = 22751 //the buff which the horde captain does
@@ -1607,7 +1607,7 @@ class BattlegroundAV : public Battleground
/*general */
Creature* AddAVCreature(uint16 cinfoid, uint16 type);
- uint16 GetBonusHonor(uint8 kills); //TODO remove this when the core handles this right
+ uint16 GetBonusHonor(uint8 kills); /// @todo: Remove this when the core handles this properly
/*variables */
int32 m_Team_Scores[2];
@@ -1622,7 +1622,7 @@ class BattlegroundAV : public Battleground
uint32 m_CaptainBuffTimer[2];
bool m_CaptainAlive[2];
- uint8 m_MaxLevel; //TODO remove this when battleground-getmaxlevel() returns something usefull
+ uint8 m_MaxLevel; /// @todo: Remove this once battleground->getmaxlevel() returns something usefull/is reworked (?)
bool m_IsInformedNearVictory[2];
};
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index 82b0573d875..816c6e73b7a 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -1708,7 +1708,7 @@ struct SpellEffectEntry
// SpellAuraOptions.dbc
struct SpellAuraOptionsEntry
{
- uint32 Id; // 0 m_ID
+ uint32 Id; // 0 m_ID
uint32 StackAmount; // 1 m_cumulativeAura
uint32 procChance; // 2 m_procChance
uint32 procCharges; // 3 m_procCharges
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 4127ab281dd..23a443e134f 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -483,15 +483,13 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
SetReactState(REACT_DEFENSIVE);*/;
}
- ///// TODO RENAME THIS!!!!!
+ /// @todo Rename these properly
bool isCanTrainingOf(Player* player, bool msg) const;
bool isCanInteractWithBattleMaster(Player* player, bool msg) const;
bool isCanTrainingAndResetTalentsOf(Player* player) const;
bool canCreatureAttack(Unit const* victim, bool force = true) const;
- bool IsImmunedToSpell(SpellInfo const* spellInfo);
- // redefine Unit::IsImmunedToSpell
- bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const;
- // redefine Unit::IsImmunedToSpellEffect
+ bool IsImmunedToSpell(SpellInfo const* spellInfo); //override Unit::IsImmunedToSpell
+ bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const; //override Unit::IsImmunedToSpellEffect
bool isElite() const
{
if (isPet())
@@ -766,10 +764,10 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
bool DisableReputationGain;
- CreatureTemplate const* m_creatureInfo; // in difficulty mode > 0 can different from sObjectMgr->GetCreatureTemplate(GetEntry())
+ CreatureTemplate const* m_creatureInfo; // Can differ from sObjectMgr->GetCreatureTemplate(GetEntry()) in difficulty mode > 0
CreatureData const* m_creatureData;
- uint16 m_LootMode; // bitmask, default LOOT_MODE_DEFAULT, determines what loot will be lootable
+ uint16 m_LootMode; // Bitmask (default: LOOT_MODE_DEFAULT) that determines what loot will be lootable
uint32 guid_transport;
bool IsInvisibleDueToDespawn() const;
diff --git a/src/server/game/Entities/Item/ItemPrototype.h b/src/server/game/Entities/Item/ItemPrototype.h
index 6f0919520a3..9393b32d48a 100644
--- a/src/server/game/Entities/Item/ItemPrototype.h
+++ b/src/server/game/Entities/Item/ItemPrototype.h
@@ -107,10 +107,8 @@ enum ItemBondingType
#define MAX_BIND_TYPE 6
-/* TODO
- // need to know cases when using item is not allowed in shapeshift
- ITEM_PROTO_FLAG_USABLE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms
-*/
+/* /// @todo: Requiring actual cases in which using (an) item isn't allowed while shapeshifted. Else, this flag would need an implementation.
+ ITEM_PROTO_FLAG_USABLE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms */
enum ItemProtoFlags
{
@@ -148,9 +146,6 @@ enum ItemProtoFlags
ITEM_PROTO_FLAG_BOP_TRADEABLE = 0x80000000 // bound item that can be traded
};
-/* TODO
-*/
-
enum ItemFieldFlags
{
ITEM_FLAG_SOULBOUND = 0x00000001, // Item is soulbound and cannot be traded <<--
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 948bb240026..b07c6183257 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -21886,7 +21886,7 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
if (rec > 0)
ApplySpellMod(spellInfo->Id, SPELLMOD_COOLDOWN, rec, spell);
- if (catrec > 0)
+ if (catrec > 0 && !(spellInfo->AttributesEx6 & SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS))
ApplySpellMod(spellInfo->Id, SPELLMOD_COOLDOWN, catrec, spell);
// replace negative cooldowns by 0
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 6295db693d6..89a3a47b25d 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1336,11 +1336,16 @@ class Player : public Unit, public GridObject<Player>
PhaseMgr& GetPhaseMgr() { return phaseMgr; }
+ /// Handles said message in regular chat based on declared language and in config pre-defined Range.
void Say(std::string const& text, const uint32 language);
+ /// Handles yelled message in regular chat based on declared language and in config pre-defined Range.
void Yell(std::string const& text, const uint32 language);
+ /// Outputs an universal text which is supposed to be an action.
void TextEmote(std::string const& text);
+ /// Handles whispers from Addons and players based on sender, receiver's guid and language.
void Whisper(std::string const& text, const uint32 language, uint64 receiver);
void WhisperAddon(std::string const& text, std::string const& prefix, Player* receiver);
+ /// Constructs the player Chat data for the specific functions to use
void BuildPlayerChat(WorldPacket* data, uint8 msgtype, std::string const& text, uint32 language, const char* addonPrefix = NULL) const;
/*********************************************************/
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 97758b3d0b7..6421f6d07d3 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10652,7 +10652,7 @@ bool Unit::_IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) co
&& target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
return false;
- if (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_UNK3))
+ if (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
{
if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE))
{
@@ -10699,7 +10699,7 @@ bool Unit::_IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) co
// PvC case - player can assist creature only if has specific type flags
// !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE) &&
else if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE)
- && (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_UNK3))
+ && (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
&& !((target->GetByteValue(UNIT_FIELD_BYTES_2, 1) & UNIT_BYTE2_FLAG_PVP)))
{
if (Creature const* creatureTarget = target->ToCreature())
diff --git a/src/server/game/Globals/ObjectAccessor.h b/src/server/game/Globals/ObjectAccessor.h
index 113ef1dec83..6a53d58c57f 100644
--- a/src/server/game/Globals/ObjectAccessor.h
+++ b/src/server/game/Globals/ObjectAccessor.h
@@ -90,7 +90,7 @@ class ObjectAccessor
ObjectAccessor& operator=(const ObjectAccessor&);
public:
- // TODO: override these template functions for each holder type and add assertions
+ /// @todo: Override these template functions for each holder type and add assertions
template<class T> static T* GetObjectInOrOutOfWorld(uint64 guid, T* /*typeSpecifier*/)
{
diff --git a/src/server/game/Instances/InstanceSaveMgr.h b/src/server/game/Instances/InstanceSaveMgr.h
index a99b4c66b27..c5dcaf32463 100644
--- a/src/server/game/Instances/InstanceSaveMgr.h
+++ b/src/server/game/Instances/InstanceSaveMgr.h
@@ -101,8 +101,8 @@ class InstanceSave
private:
bool UnloadIfEmpty();
/* the only reason the instSave-object links are kept is because
- the object-instSave links need to be broken at reset time
- TODO: maybe it's enough to just store the number of players/groups */
+ the object-instSave links need to be broken at reset time */
+ /// @todo: Check if maybe it's enough to just store the number of players/groups
PlayerListType m_playerList;
GroupListType m_groupList;
time_t m_resetTime;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 0a2761abf6c..a54e671d7d0 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -484,8 +484,8 @@ enum SpellAttr5
SPELL_ATTR5_UNK24 = 0x01000000, // 24
SPELL_ATTR5_UNK25 = 0x02000000, // 25
SPELL_ATTR5_UNK26 = 0x04000000, // 26 aoe related - Boulder, Cannon, Corpse Explosion, Fire Nova, Flames, Frost Bomb, Living Bomb, Seed of Corruption, Starfall, Thunder Clap, Volley
- SPELL_ATTR5_UNK27 = 0x08000000, // 27
- SPELL_ATTR5_UNK28 = 0x10000000, // 28
+ SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST = 0x08000000, // 27 Auras with this attribute are not visible on units that are the caster
+ SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST = 0x10000000, // 28 Auras with this attribute are not visible on units that are not the caster
SPELL_ATTR5_UNK29 = 0x20000000, // 29
SPELL_ATTR5_UNK30 = 0x40000000, // 30
SPELL_ATTR5_UNK31 = 0x80000000 // 31 Forces all nearby enemies to focus attacks caster
@@ -496,10 +496,10 @@ enum SpellAttr6
SPELL_ATTR6_DONT_DISPLAY_COOLDOWN = 0x00000001, // 0 client doesn't display cooldown in tooltip for these spells
SPELL_ATTR6_ONLY_IN_ARENA = 0x00000002, // 1 only usable in arena
SPELL_ATTR6_IGNORE_CASTER_AURAS = 0x00000004, // 2
- SPELL_ATTR6_UNK3 = 0x00000008, // 3
+ SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG = 0x00000008, // 3 skips checking UNIT_FLAG_IMMUNE_TO_PC and UNIT_FLAG_IMMUNE_TO_NPC flags on assist
SPELL_ATTR6_UNK4 = 0x00000010, // 4
SPELL_ATTR6_UNK5 = 0x00000020, // 5
- SPELL_ATTR6_PRINT_SPELLNAME = 0x00000040, // 6 when activated, spell name is shown at the center of the screen: <Spell name> (client-side attribute)
+ SPELL_ATTR6_USE_SPELL_CAST_EVENT = 0x00000040, // 6 Auras with this attribute trigger SPELL_CAST combat log event instead of SPELL_AURA_START (clientside attribute)
SPELL_ATTR6_UNK7 = 0x00000080, // 7
SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED = 0x00000100, // 8
SPELL_ATTR6_UNK9 = 0x00000200, // 9
@@ -513,7 +513,7 @@ enum SpellAttr6
SPELL_ATTR6_UNK17 = 0x00020000, // 17 Mount spell
SPELL_ATTR6_CAST_BY_CHARMER = 0x00040000, // 18 client won't allow to cast these spells when unit is not possessed && charmer of caster will be original caster
SPELL_ATTR6_UNK19 = 0x00080000, // 19 only 47488, 50782
- SPELL_ATTR6_UNK20 = 0x00100000, // 20 only 58371, 62218
+ SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER = 0x00100000, // 20 Auras with this attribute are only visible to their caster (or pet's owner)
SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS = 0x00200000, // 21 it's only client-side attribute
SPELL_ATTR6_UNK22 = 0x00400000, // 22 only 72054
SPELL_ATTR6_UNK23 = 0x00800000, // 23
@@ -524,7 +524,7 @@ enum SpellAttr6
SPELL_ATTR6_UNK28 = 0x10000000, // 28 Death Grip
SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS = 0x20000000, // 29 ignores done percent damage mods?
SPELL_ATTR6_UNK30 = 0x40000000, // 30
- SPELL_ATTR6_UNK31 = 0x80000000 // 31 some special cooldown calc? only 2894
+ SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS = 0x80000000 // 31 Spells with this attribute skip applying modifiers to category cooldowns
};
enum SpellAttr7
@@ -557,7 +557,7 @@ enum SpellAttr7
SPELL_ATTR7_UNK25 = 0x02000000, // 25
SPELL_ATTR7_UNK26 = 0x04000000, // 26
SPELL_ATTR7_UNK27 = 0x08000000, // 27 Not set
- SPELL_ATTR7_BENEFIT_FROM_SPELLMOD = 0x10000000, // 28 Non-permanent, non-passive buffs that may benefit from spellmods
+ SPELL_ATTR7_CONSOLIDATED_RAID_BUFF = 0x10000000, // 28 May be collapsed in raid buff frame (clientside attribute)
SPELL_ATTR7_UNK29 = 0x20000000, // 29 only 69028, 71237
SPELL_ATTR7_UNK30 = 0x40000000, // 30 Burning Determination, Divine Sacrifice, Earth Shield, Prayer of Mending
SPELL_ATTR7_CLIENT_INDICATOR = 0x80000000
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index febfac27ee1..3c134b3a88e 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3592,6 +3592,30 @@ void SpellMgr::LoadSpellInfoCorrections()
break;
// ENDOF RUBY SANCTUM SPELLS
//
+ // EYE OF ETERNITY SPELLS
+ // All spells below work even without these changes. The LOS attribute is due to problem
+ // from collision between maps & gos with active destroyed state.
+ case 57473: // Arcane Storm bonus explicit visual spell
+ case 57430: // Summon Static Field
+ case 56091: // Flame Spike (Wyrmrest Skytalon)
+ case 56092: // Engulf in Flames (Wyrmrest Skytalon)
+ case 57090: // Revivify (Wyrmrest Skytalon)
+ case 57143: // Life Burst (Wyrmrest Skytalon)
+ spellInfo->AttributesEx2 |= SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS;
+ break;
+ // ENDOF EYE OF ETERNITY SPELLS
+ //
+ // OCULUS SPELLS
+ // The spells below are here because their effect 1 is giving warning due to
+ // triggered spell not found in any dbc and is missing from encounter source* of data.
+ // Even judged as clientside these spells can't be guessed for* now.
+ case 49462: // Call Ruby Drake
+ case 49461: // Call Amber Drake
+ case 49345: // Call Emerald Drake
+ spellInfo->Effects[EFFECT_1].Effect = 0;
+ break;
+ // ENDOF OCULUS SPELLS
+ //
case 40055: // Introspection
case 40165: // Introspection
case 40166: // Introspection
@@ -3602,13 +3626,6 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->ManaCost = 0;
spellInfo->ManaPerSecond = 0;
break;
- // OCULUS SPELLS
- // The spells below are here, because their effect 1 is giving warning, because the triggered spell is not found in dbc and is missing from encounter sniff.
- case 49462: // Call Ruby Drake
- case 49461: // Call Amber Drake
- case 49345: // Call Emerald Drake
- spellInfo->Effects[EFFECT_1].Effect = 0;
- break;
// Halls Of Origination spells
// Temple Guardian Anhuur
case 76606: // Disable Beacon Beams L