aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings/scripts/include')
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp2
-rw-r--r--src/bindings/scripts/include/sc_creature.h9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index b0ff9d48584..d30f0b01879 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -491,7 +491,7 @@ void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float
return;
}
- ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
+ CAST_PLR(pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
}
void ScriptedAI::DoTeleportAll(float x, float y, float z, float o)
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h
index 3eef1db1947..964e25b51eb 100644
--- a/src/bindings/scripts/include/sc_creature.h
+++ b/src/bindings/scripts/include/sc_creature.h
@@ -13,6 +13,15 @@
#include "CreatureAIImpl.h"
#include "InstanceData.h"
+#define USE_DYNAMIC_CAST
+#ifdef USE_DYNAMIC_CAST
+#define CAST_PLR(a) (dynamic_cast<Player*>(a))
+#define CAST_CRE(a) (dynamic_cast<Creature*>(a))
+#else
+#define CAST_PLR(a) (static_cast<Player*>(a))
+#define CAST_CRE(a) (static_cast<Creature*>(a))
+#endif
+
class ScriptedInstance;
class SummonList : private std::list<uint64>