diff --git a/source/enemy/npc.cpp b/source/enemy/npc.cpp index 98f048f75..c15498ce4 100644 --- a/source/enemy/npc.cpp +++ b/source/enemy/npc.cpp @@ -208,12 +208,10 @@ CNpcEnemy::NPC_UNIT_TYPE CNpcEnemy::getTypeFromMapEdit( u16 newType ) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor) +CNpcEnemy *CNpcEnemy::Create(int enemyType) { CNpcEnemy *enemy; - NPC_UNIT_TYPE enemyType = CNpcEnemy::getTypeFromMapEdit( ThisActor->Type ); - enemy = (CNpcEnemy*)CThingManager::GetThing(TYPE_ENEMY,enemyType); if (!enemy) switch( enemyType ) @@ -471,7 +469,7 @@ CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor) ASSERT(enemy); - enemy->setType( enemyType ); + enemy->setType( (NPC_UNIT_TYPE)enemyType ); enemy->setThingSubType(enemyType); enemy->init(); @@ -479,6 +477,19 @@ CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor) return(enemy); } +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor) +{ +CNpcEnemy *enemy; + + NPC_UNIT_TYPE enemyType = CNpcEnemy::getTypeFromMapEdit( ThisActor->Type ); + + enemy = (CNpcEnemy*)Create(enemyType); + ASSERT(enemy); + + return(enemy); +} + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CNpcEnemy::setupWaypoints( sThingActor *ThisActor ) diff --git a/source/enemy/npc.h b/source/enemy/npc.h index ce7c4b1e4..c719c6ea0 100644 --- a/source/enemy/npc.h +++ b/source/enemy/npc.h @@ -115,6 +115,7 @@ public: void setSpeed( s16 newSpeed ) {m_speed = newSpeed;} virtual u32 getRGB() {return( m_RGB );} + static CNpcEnemy *Create(int enemyType); static CNpcEnemy *Create(sThingActor *ThisActor); virtual void setupWaypoints( sThingActor *ThisActor );