diff options
| author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2020-06-29 21:03:03 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-29 23:03:03 +0200 |
| commit | cc71da35b5dc74abf71f8691161525a23d870bb5 (patch) | |
| tree | 8fdf213ae1f8247af541624ee3253f08444a70f4 /src/server/game/Entities/Object | |
| parent | 65a204c5b24746237177e5ce8abbaca5a1bbdcf0 (diff) | |
Core/Spells: implement corpse target type support and properly fix resurrections (#24921)
* Core/Spells: implement corpse target type support and properly fix resurrections
(cherry picked from commit df193945d9aff8596985a20e2c654105354b0af7)
# Conflicts:
# src/server/game/Spells/Spell.cpp
# src/server/game/Spells/Spell.h
* Core/Spells: implement TARGET_CORPSE_SRC_AREA_RAID and updated remaining resurrection effect handlers for updated corpse targeting
(cherry picked from commit 98b075cb4b0da126d409ab42daa63a1f531a70ea)
# Conflicts:
# src/server/game/Miscellaneous/SharedDefines.h
# src/server/game/Spells/Spell.cpp
# src/server/game/Spells/SpellEffects.cpp
# src/server/game/Spells/SpellInfo.cpp
* Fix no-pch
Co-authored-by: Ovahlord <dreadkiller@gmx.de>
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index c648b1d2914..16bf0455951 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -157,31 +157,37 @@ class TC_GAME_API Object // FG: some hacky helpers void ForceValuesUpdateAtIndex(uint32); + inline bool IsPlayer() const { return GetTypeId() == TYPEID_PLAYER; } static Player* ToPlayer(Object* o) { if (o && o->GetTypeId() == TYPEID_PLAYER) return reinterpret_cast<Player*>(o); else return nullptr; } static Player const* ToPlayer(Object const* o) { if (o && o->GetTypeId() == TYPEID_PLAYER) return reinterpret_cast<Player const*>(o); else return nullptr; } Player* ToPlayer() { return ToPlayer(this); } Player const* ToPlayer() const { return ToPlayer(this); } + inline bool IsCreature() const { return GetTypeId() == TYPEID_UNIT; } static Creature* ToCreature(Object* o) { if (o && o->GetTypeId() == TYPEID_UNIT) return reinterpret_cast<Creature*>(o); else return nullptr; } static Creature const* ToCreature(Object const* o) { if (o && o->GetTypeId() == TYPEID_UNIT) return reinterpret_cast<Creature const*>(o); else return nullptr; } Creature* ToCreature() { return ToCreature(this); } Creature const* ToCreature() const { return ToCreature(this); } + inline bool IsUnit() const { return isType(TYPEMASK_UNIT); } static Unit* ToUnit(Object* o) { if (o && o->isType(TYPEMASK_UNIT)) return reinterpret_cast<Unit*>(o); else return nullptr; } static Unit const* ToUnit(Object const* o) { if (o && o->isType(TYPEMASK_UNIT)) return reinterpret_cast<Unit const*>(o); else return nullptr; } Unit* ToUnit() { return ToUnit(this); } Unit const* ToUnit() const { return ToUnit(this); } + inline bool IsGameObject() const { return GetTypeId() == TYPEID_GAMEOBJECT; } static GameObject* ToGameObject(Object* o) { if (o && o->GetTypeId() == TYPEID_GAMEOBJECT) return reinterpret_cast<GameObject*>(o); else return nullptr; } static GameObject const* ToGameObject(Object const* o) { if (o && o->GetTypeId() == TYPEID_GAMEOBJECT) return reinterpret_cast<GameObject const*>(o); else return nullptr; } GameObject* ToGameObject() { return ToGameObject(this); } GameObject const* ToGameObject() const { return ToGameObject(this); } + inline bool IsCorpse() const { return GetTypeId() == TYPEID_CORPSE; } static Corpse* ToCorpse(Object* o) { if (o && o->GetTypeId() == TYPEID_CORPSE) return reinterpret_cast<Corpse*>(o); else return nullptr; } static Corpse const* ToCorpse(Object const* o) { if (o && o->GetTypeId() == TYPEID_CORPSE) return reinterpret_cast<Corpse const*>(o); else return nullptr; } Corpse* ToCorpse() { return ToCorpse(this); } Corpse const* ToCorpse() const { return ToCorpse(this); } + inline bool IsDynObject() const { return GetTypeId() == TYPEID_DYNAMICOBJECT; } static DynamicObject* ToDynObject(Object* o) { if (o && o->GetTypeId() == TYPEID_DYNAMICOBJECT) return reinterpret_cast<DynamicObject*>(o); else return nullptr; } static DynamicObject const* ToDynObject(Object const* o) { if (o && o->GetTypeId() == TYPEID_DYNAMICOBJECT) return reinterpret_cast<DynamicObject const*>(o); else return nullptr; } DynamicObject* ToDynObject() { return ToDynObject(this); } |
