[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;
}
WorldObject* pSource = dynamic_cast<WorldObject*>(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<WorldObject*>(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<WorldObject*>(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<WorldObject*>(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;

View file

@ -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

View file

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