This commit is contained in:
parent
6a94ade948
commit
b0a6481b14
4 changed files with 163 additions and 147 deletions
|
@ -260,137 +260,169 @@ CNpcEnemy::NPC_UNIT_TYPE CNpcEnemy::getTypeFromMapEdit( u16 newType )
|
|||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor)
|
||||
{
|
||||
CNpcEnemy *enemy;
|
||||
CNpcEnemy *enemy;
|
||||
|
||||
CNpcEnemy::NPC_UNIT_TYPE enemyType = CNpcEnemy::getTypeFromMapEdit( ThisActor->Type );
|
||||
NPC_UNIT_TYPE enemyType = CNpcEnemy::getTypeFromMapEdit( ThisActor->Type );
|
||||
|
||||
switch( enemyType )
|
||||
{
|
||||
case CNpcEnemy::NPC_SMALL_JELLYFISH_1:
|
||||
{
|
||||
enemy = new ("small jellyfish") CNpcSmallJellyfishEnemy;
|
||||
break;
|
||||
}
|
||||
switch( enemyType )
|
||||
{
|
||||
case CNpcEnemy::NPC_SMALL_JELLYFISH_1:
|
||||
{
|
||||
enemy = new ("small jellyfish") CNpcSmallJellyfishEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_HERMIT_CRAB:
|
||||
{
|
||||
enemy = new ("hermit crab") CNpcHermitCrabEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_HERMIT_CRAB:
|
||||
{
|
||||
enemy = new ("hermit crab") CNpcHermitCrabEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_SPIDER_CRAB:
|
||||
{
|
||||
enemy = new ("spider crab") CNpcSpiderCrabEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_SPIDER_CRAB:
|
||||
{
|
||||
enemy = new ("spider crab") CNpcSpiderCrabEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_SPIDER_CRAB_SPAWNER:
|
||||
{
|
||||
enemy = new ("spider crab spawner") CNpcEnemyGenerator;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_SPIDER_CRAB_SPAWNER:
|
||||
{
|
||||
enemy = new ("spider crab spawner") CNpcEnemyGenerator;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_ANEMONE_1:
|
||||
{
|
||||
enemy = new ("anemone 1") CNpcAnemone1Enemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_ANEMONE_1:
|
||||
{
|
||||
enemy = new ("anemone 1") CNpcAnemone1Enemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_ANEMONE_2:
|
||||
{
|
||||
enemy = new ("anemone 2") CNpcAnemone2Enemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_ANEMONE_2:
|
||||
{
|
||||
enemy = new ("anemone 2") CNpcAnemone2Enemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_ANEMONE_3:
|
||||
{
|
||||
enemy = new ("anemone 3") CNpcAnemone3Enemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_ANEMONE_3:
|
||||
{
|
||||
enemy = new ("anemone 3") CNpcAnemone3Enemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_CLAM_JUMP:
|
||||
{
|
||||
enemy = new ("jumping clam") CNpcJumpingClamEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_CLAM_JUMP:
|
||||
{
|
||||
enemy = new ("jumping clam") CNpcJumpingClamEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_CLAM_STATIC:
|
||||
{
|
||||
enemy = new ("static clam") CNpcStaticClamEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_CLAM_STATIC:
|
||||
{
|
||||
enemy = new ("static clam") CNpcStaticClamEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_BABY_OCTOPUS:
|
||||
{
|
||||
enemy = new ("baby octopus") CNpcBabyOctopusEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_BABY_OCTOPUS:
|
||||
{
|
||||
enemy = new ("baby octopus") CNpcBabyOctopusEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_FISH_FOLK:
|
||||
case CNpcEnemy::NPC_ZOMBIE_FISH_FOLK:
|
||||
{
|
||||
enemy = new ("fish folk") CNpcFishFolk;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_FISH_FOLK:
|
||||
case CNpcEnemy::NPC_ZOMBIE_FISH_FOLK:
|
||||
{
|
||||
enemy = new ("fish folk") CNpcFishFolk;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_BALL_BLOB:
|
||||
{
|
||||
enemy = new ("ball blob") CNpcBallBlobEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_BALL_BLOB:
|
||||
{
|
||||
enemy = new ("ball blob") CNpcBallBlobEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_GHOST_PIRATE:
|
||||
{
|
||||
enemy = new ("ghost pirate") CNpcGhostPirateEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_GHOST_PIRATE:
|
||||
{
|
||||
enemy = new ("ghost pirate") CNpcGhostPirateEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_PUFFA_FISH:
|
||||
{
|
||||
enemy = new ("puffa fish") CNpcPuffaFishEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_PUFFA_FISH:
|
||||
{
|
||||
enemy = new ("puffa fish") CNpcPuffaFishEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_SHARK_MAN:
|
||||
{
|
||||
enemy = new ("shark man") CNpcSharkManEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_SHARK_MAN:
|
||||
{
|
||||
enemy = new ("shark man") CNpcSharkManEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_SKELETAL_FISH:
|
||||
{
|
||||
enemy = new ("skeletal fish") CNpcSkeletalFishEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_SKELETAL_FISH:
|
||||
{
|
||||
enemy = new ("skeletal fish") CNpcSkeletalFishEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_EYEBALL:
|
||||
{
|
||||
enemy = new ("eyeball") CNpcEyeballEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_EYEBALL:
|
||||
{
|
||||
enemy = new ("eyeball") CNpcEyeballEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_FLAMING_SKULL:
|
||||
{
|
||||
enemy = new ("flaming skull") CNpcFlamingSkullEnemy;
|
||||
break;
|
||||
}
|
||||
case CNpcEnemy::NPC_FLAMING_SKULL:
|
||||
{
|
||||
enemy = new ("flaming skull") CNpcFlamingSkullEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
enemy = new ("npc enemy") CNpcEnemy;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(enemy);
|
||||
default:
|
||||
{
|
||||
enemy = new ("npc enemy") CNpcEnemy;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return(enemy);
|
||||
ASSERT(enemy);
|
||||
|
||||
enemy->setType( enemyType );
|
||||
enemy->init();
|
||||
|
||||
return(enemy);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CNpcEnemy::setTypeFromMapEdit( u16 newType )
|
||||
void CNpcEnemy::setupWaypoints( sThingActor *ThisActor )
|
||||
{
|
||||
m_type = mapEditConvertTable[newType - NPC_ENEMY_MAPEDIT_OFFSET];
|
||||
u16 *PntList=(u16*)MakePtr(ThisActor,sizeof(sThingActor));
|
||||
|
||||
u16 newXPos, newYPos;
|
||||
|
||||
newXPos = (u16) *PntList;
|
||||
PntList++;
|
||||
newYPos = (u16) *PntList;
|
||||
PntList++;
|
||||
|
||||
setStartPos( newXPos, newYPos );
|
||||
addWaypoint( newXPos, newYPos );
|
||||
|
||||
if ( ThisActor->PointCount > 1 )
|
||||
{
|
||||
for (int pointNum = 1 ; pointNum < ThisActor->PointCount ; pointNum++ )
|
||||
{
|
||||
newXPos = (u16) *PntList;
|
||||
PntList++;
|
||||
newYPos = (u16) *PntList;
|
||||
PntList++;
|
||||
|
||||
addWaypoint( newXPos, newYPos );
|
||||
|
||||
if ( pointNum == 1 )
|
||||
{
|
||||
setHeading( newXPos, newYPos );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1600,10 +1632,7 @@ void CNpcEnemy::render()
|
|||
{
|
||||
if ( renderPos.vy >= 0 && renderPos.vy <= VidGetScrH() )
|
||||
{
|
||||
if (m_actorGfx)
|
||||
SprFrame = m_actorGfx->Render(renderPos,m_animNo,( m_frame >> 8 ),m_reversed);
|
||||
else
|
||||
SprFrame = m_spriteBank->printFT4(m_frame>>8,renderPos.vx,renderPos.vy,m_reversed,0,10);
|
||||
SprFrame = m_actorGfx->Render(renderPos,m_animNo,( m_frame >> 8 ),m_reversed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue