[9890] Add TYPEMASK_WORLDOBJECT to enum TypeMask

Check typemask and replace a few dynamic_cast with more simple casts.

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2010-05-13 17:51:07 +02:00
parent 31ec245b68
commit 5a72466935
3 changed files with 14 additions and 13 deletions

View file

@ -2860,14 +2860,13 @@ void Map::ScriptsProcess()
break; break;
} }
WorldObject* pSource = dynamic_cast<WorldObject*>(source); if (!source->isType(TYPEMASK_WORLDOBJECT))
if (!pSource)
{ {
sLog.outError("SCRIPT_COMMAND_TALK (script id %u) call for unsupported non-worldobject (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); sLog.outError("SCRIPT_COMMAND_TALK (script id %u) call for unsupported non-worldobject (TypeId: %u), skipping.", step.script->id, source->GetTypeId());
break; break;
} }
WorldObject* pSource = (WorldObject*)source;
Creature* pBuddy = NULL; Creature* pBuddy = NULL;
// flag_target_player_as_source 0x01 // flag_target_player_as_source 0x01
@ -3091,14 +3090,14 @@ void Map::ScriptsProcess()
break; break;
} }
WorldObject* summoner = dynamic_cast<WorldObject*>(source); if (!source->isType(TYPEMASK_WORLDOBJECT))
if (!summoner)
{ {
sLog.outError("SCRIPT_COMMAND_TEMP_SUMMON_CREATURE (script id %u) call for non-WorldObject (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); sLog.outError("SCRIPT_COMMAND_TEMP_SUMMON_CREATURE (script id %u) call for non-WorldObject (TypeId: %u), skipping.", step.script->id, source->GetTypeId());
break; break;
} }
WorldObject* summoner = (WorldObject*)source;
float x = step.script->x; float x = step.script->x;
float y = step.script->y; float y = step.script->y;
float z = step.script->z; float z = step.script->z;
@ -3127,14 +3126,14 @@ void Map::ScriptsProcess()
break; break;
} }
WorldObject* summoner = dynamic_cast<WorldObject*>(source); if (!source->isType(TYPEMASK_WORLDOBJECT))
if (!summoner)
{ {
sLog.outError("SCRIPT_COMMAND_RESPAWN_GAMEOBJECT (script id %u) call for non-WorldObject (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); sLog.outError("SCRIPT_COMMAND_RESPAWN_GAMEOBJECT (script id %u) call for non-WorldObject (TypeId: %u), skipping.", step.script->id, source->GetTypeId());
break; break;
} }
WorldObject* summoner = (WorldObject*)source;
GameObject *go = NULL; GameObject *go = NULL;
int32 time_to_despawn = step.script->datalong2<5 ? 5 : (int32)step.script->datalong2; int32 time_to_despawn = step.script->datalong2<5 ? 5 : (int32)step.script->datalong2;
@ -3428,14 +3427,14 @@ void Map::ScriptsProcess()
break; break;
} }
WorldObject* pSource = dynamic_cast<WorldObject*>(source); if (!source->isType(TYPEMASK_WORLDOBJECT))
if (!pSource)
{ {
sLog.outError("SCRIPT_COMMAND_PLAY_SOUND (script id %u) call for non-world object (TypeId: %u), skipping.", step.script->id, source->GetTypeId()); sLog.outError("SCRIPT_COMMAND_PLAY_SOUND (script id %u) call for non-world object (TypeId: %u), skipping.", step.script->id, source->GetTypeId());
break; break;
} }
WorldObject* pSource = (WorldObject*)source;
// bitmask: 0/1=anyone/target, 0/2=with distance dependent // bitmask: 0/1=anyone/target, 0/2=with distance dependent
Player* pTarget = NULL; Player* pTarget = NULL;

View file

@ -51,6 +51,8 @@ enum TypeMask
TYPEMASK_CREATURE_OR_GAMEOBJECT = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT, TYPEMASK_CREATURE_OR_GAMEOBJECT = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT,
TYPEMASK_CREATURE_GAMEOBJECT_OR_ITEM = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM, 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_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 enum HighGuid

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "9889" #define REVISION_NR "9890"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__