aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-12-10 18:47:09 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-10 18:47:09 +0100
commit747da1f804a05462fb0d542a9570f27a549688dc (patch)
tree4d1011fca42e448ed1f238628d789dce5de2081a
parentc28ac3ce67392768c3ec782152b123e773c5679b (diff)
Core/Spells: Implemented SPELL_ATTR1_CAST_WHEN_LEARNED
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp4
3 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index f592a2c98e0..d0a48fdee6e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -3027,6 +3027,8 @@ bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent
CastSpell(this, spellId, true);
return false;
}
+ else if (spellInfo->HasAttribute(SPELL_ATTR1_CAST_WHEN_LEARNED))
+ CastSpell(this, spellId, true);
// update free primary prof.points (if any, can be none in case GM .learn prof. learning)
if (uint32 freeProfs = GetFreePrimaryProfessionPoints())
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index a4a73b8fe61..3a620b62440 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -465,7 +465,7 @@ enum SpellAttr1 : uint32
SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR = 0x10000000, // TITLE Hide in aura bar (client only)
SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME = 0x20000000, // TITLE Show spell name during channel (client only)
SPELL_ATTR1_ENABLE_AT_DODGE = 0x40000000, // TITLE Enable at dodge
- SPELL_ATTR1_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr1
+ SPELL_ATTR1_CAST_WHEN_LEARNED = 0x80000000 // TITLE Cast When Learned
};
// EnumUtils: DESCRIBE THIS
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index df44e6cce30..097459d399c 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -254,7 +254,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr1>::ToString(SpellAttr1 value)
case SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR: return { "SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR", "Hide in aura bar (client only)", "" };
case SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME: return { "SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME", "Show spell name during channel (client only)", "" };
case SPELL_ATTR1_ENABLE_AT_DODGE: return { "SPELL_ATTR1_ENABLE_AT_DODGE", "Enable at dodge", "" };
- case SPELL_ATTR1_UNK31: return { "SPELL_ATTR1_UNK31", "Unknown attribute 31@Attr1", "" };
+ case SPELL_ATTR1_CAST_WHEN_LEARNED: return { "SPELL_ATTR1_CAST_WHEN_LEARNED", "Cast When Learned", "" };
default: throw std::out_of_range("value");
}
}
@@ -298,7 +298,7 @@ TC_API_EXPORT SpellAttr1 EnumUtils<SpellAttr1>::FromIndex(size_t index)
case 28: return SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR;
case 29: return SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME;
case 30: return SPELL_ATTR1_ENABLE_AT_DODGE;
- case 31: return SPELL_ATTR1_UNK31;
+ case 31: return SPELL_ATTR1_CAST_WHEN_LEARNED;
default: throw std::out_of_range("index");
}
}