diff --git a/src/game/Map.cpp b/src/game/Map.cpp index b256ac60a..206af48f3 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -2860,14 +2860,13 @@ void Map::ScriptsProcess() break; } - WorldObject* pSource = dynamic_cast(source); - - if (!pSource) + if (!source->isType(TYPEMASK_WORLDOBJECT)) { sLog.outError("SCRIPT_COMMAND_TALK (script id %u) call for unsupported non-worldobject (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); break; } + WorldObject* pSource = (WorldObject*)source; Creature* pBuddy = NULL; // flag_target_player_as_source 0x01 @@ -3091,14 +3090,14 @@ void Map::ScriptsProcess() break; } - WorldObject* summoner = dynamic_cast(source); - - if (!summoner) + if (!source->isType(TYPEMASK_WORLDOBJECT)) { sLog.outError("SCRIPT_COMMAND_TEMP_SUMMON_CREATURE (script id %u) call for non-WorldObject (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); break; } + WorldObject* summoner = (WorldObject*)source; + float x = step.script->x; float y = step.script->y; float z = step.script->z; @@ -3127,14 +3126,14 @@ void Map::ScriptsProcess() break; } - WorldObject* summoner = dynamic_cast(source); - - if (!summoner) + if (!source->isType(TYPEMASK_WORLDOBJECT)) { sLog.outError("SCRIPT_COMMAND_RESPAWN_GAMEOBJECT (script id %u) call for non-WorldObject (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); break; } + WorldObject* summoner = (WorldObject*)source; + GameObject *go = NULL; int32 time_to_despawn = step.script->datalong2<5 ? 5 : (int32)step.script->datalong2; @@ -3428,14 +3427,14 @@ void Map::ScriptsProcess() break; } - WorldObject* pSource = dynamic_cast(source); - - if (!pSource) + if (!source->isType(TYPEMASK_WORLDOBJECT)) { sLog.outError("SCRIPT_COMMAND_PLAY_SOUND (script id %u) call for non-world object (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); break; } + WorldObject* pSource = (WorldObject*)source; + // bitmask: 0/1=anyone/target, 0/2=with distance dependent Player* pTarget = NULL; diff --git a/src/game/ObjectGuid.h b/src/game/ObjectGuid.h index 5ea26325f..21bbf105b 100644 --- a/src/game/ObjectGuid.h +++ b/src/game/ObjectGuid.h @@ -51,6 +51,8 @@ enum TypeMask TYPEMASK_CREATURE_OR_GAMEOBJECT = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT, TYPEMASK_CREATURE_GAMEOBJECT_OR_ITEM = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM, TYPEMASK_CREATURE_GAMEOBJECT_PLAYER_OR_ITEM = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM | TYPEMASK_PLAYER, + + TYPEMASK_WORLDOBJECT = TYPEMASK_UNIT | TYPEMASK_PLAYER | TYPEMASK_GAMEOBJECT | TYPEMASK_DYNAMICOBJECT | TYPEMASK_CORPSE, }; enum HighGuid diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 92249a8b1..3af863604 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9889" + #define REVISION_NR "9890" #endif // __REVISION_NR_H__