aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiacomo Pozzoni <giacomopoz@gmail.com>2019-02-15 20:29:14 +0100
committerShauren <shauren.trinity@gmail.com>2021-11-23 22:54:24 +0100
commited5ba915f1ec7dad8f4935b62b0ec2d202d26c1c (patch)
tree009470d881c58212f2fcf3b78d99a5c4bd524072
parent47adf2e4c8d90b2c0d2f7181dad9e0265dfb12cc (diff)
Core/Scripts: Change PlayerScript and CreatureScript inheritance (#23048)
Remove UnitScript from PlayerScript and CreatureScript classes as that's how the original system that was PR'd worked, see https://github.com/TrinityCore/TrinityCore/pull/7867 for reference. Please note these are used as global hooks and should really just invoke stateless functions. If you need to hook methods from PlayerScript/CreatureScript and UnitScript, just define 2 different scripts (this is how the original system worked and how it was designed to work) (cherry picked from commit 5b7ead65bb116195f4336934bcff830e1b2af5bb)
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp14
-rw-r--r--src/server/game/Scripting/ScriptMgr.h6
2 files changed, 7 insertions, 13 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index c154345a755..5401e730c67 100644
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -2228,31 +2228,26 @@ void ScriptMgr::OnGroupDisband(Group* group)
void ScriptMgr::OnHeal(Unit* healer, Unit* reciever, uint32& gain)
{
FOREACH_SCRIPT(UnitScript)->OnHeal(healer, reciever, gain);
- FOREACH_SCRIPT(PlayerScript)->OnHeal(healer, reciever, gain);
}
void ScriptMgr::OnDamage(Unit* attacker, Unit* victim, uint32& damage)
{
FOREACH_SCRIPT(UnitScript)->OnDamage(attacker, victim, damage);
- FOREACH_SCRIPT(PlayerScript)->OnDamage(attacker, victim, damage);
}
void ScriptMgr::ModifyPeriodicDamageAurasTick(Unit* target, Unit* attacker, uint32& damage)
{
FOREACH_SCRIPT(UnitScript)->ModifyPeriodicDamageAurasTick(target, attacker, damage);
- FOREACH_SCRIPT(PlayerScript)->ModifyPeriodicDamageAurasTick(target, attacker, damage);
}
void ScriptMgr::ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage)
{
FOREACH_SCRIPT(UnitScript)->ModifyMeleeDamage(target, attacker, damage);
- FOREACH_SCRIPT(PlayerScript)->ModifyMeleeDamage(target, attacker, damage);
}
void ScriptMgr::ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage, SpellInfo const* spellInfo)
{
FOREACH_SCRIPT(UnitScript)->ModifySpellDamageTaken(target, attacker, damage, spellInfo);
- FOREACH_SCRIPT(PlayerScript)->ModifySpellDamageTaken(target, attacker, damage, spellInfo);
}
// Conversation
@@ -2361,11 +2356,10 @@ FormulaScript::FormulaScript(char const* name)
ScriptRegistry<FormulaScript>::Instance()->AddScript(this);
}
-UnitScript::UnitScript(char const* name, bool addToScripts)
+UnitScript::UnitScript(char const* name)
: ScriptObject(name)
{
- if (addToScripts)
- ScriptRegistry<UnitScript>::Instance()->AddScript(this);
+ ScriptRegistry<UnitScript>::Instance()->AddScript(this);
}
WorldMapScript::WorldMapScript(char const* name, uint32 mapId)
@@ -2411,7 +2405,7 @@ ItemScript::ItemScript(char const* name)
}
CreatureScript::CreatureScript(char const* name)
- : UnitScript(name, false)
+ : ScriptObject(name)
{
ScriptRegistry<CreatureScript>::Instance()->AddScript(this);
}
@@ -2504,7 +2498,7 @@ AchievementCriteriaScript::AchievementCriteriaScript(char const* name)
}
PlayerScript::PlayerScript(char const* name)
- : UnitScript(name, false)
+ : ScriptObject(name)
{
ScriptRegistry<PlayerScript>::Instance()->AddScript(this);
}
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 1ab7fc54478..5116d043ad9 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -393,7 +393,7 @@ class TC_GAME_API UnitScript : public ScriptObject
{
protected:
- UnitScript(char const* name, bool addToScripts = true);
+ UnitScript(char const* name);
public:
// Called when a unit deals healing to another unit
@@ -412,7 +412,7 @@ class TC_GAME_API UnitScript : public ScriptObject
virtual void ModifySpellDamageTaken(Unit* /*target*/, Unit* /*attacker*/, int32& /*damage*/, SpellInfo const* /*spellInfo*/) { }
};
-class TC_GAME_API CreatureScript : public UnitScript
+class TC_GAME_API CreatureScript : public ScriptObject
{
protected:
@@ -612,7 +612,7 @@ class TC_GAME_API AchievementCriteriaScript : public ScriptObject
virtual bool OnCheck(Player* source, Unit* target) = 0;
};
-class TC_GAME_API PlayerScript : public UnitScript
+class TC_GAME_API PlayerScript : public ScriptObject
{
protected: