This commit is contained in:
parent
d2e6f3b5f3
commit
c86973cc8c
6 changed files with 122 additions and 57 deletions
|
@ -75,6 +75,7 @@ void CNpcFriend::init()
|
|||
//m_animPlaying = true;
|
||||
m_animNo = 0;
|
||||
m_frame = 0;
|
||||
m_reversed = false;
|
||||
|
||||
DVECTOR ofs = getCollisionSize();
|
||||
|
||||
|
@ -125,26 +126,16 @@ void CNpcFriend::render()
|
|||
DVECTOR renderPos;
|
||||
DVECTOR offset = CLevel::getCameraPos();
|
||||
|
||||
renderPos.vx = ( Pos.vx + m_drawOffset.vx - offset.vx - ( VidGetScrW() >> 1 ) ) * 20;
|
||||
renderPos.vy = ( Pos.vy + m_drawOffset.vy - offset.vy - ( VidGetScrH() >> 1 ) ) * 20;
|
||||
renderPos.vx = Pos.vx - offset.vx;
|
||||
renderPos.vy = Pos.vy - offset.vy;
|
||||
|
||||
m_actorGfx->Render(renderPos,m_frame,m_animNo,false);
|
||||
|
||||
/*s32 x,y;
|
||||
s32 scrnWidth = VidGetScrW();
|
||||
s32 scrnHeight = VidGetScrH();
|
||||
s32 spriteWidth = m_spriteBank->getFrameWidth(FRM_BARNACLEBOY);
|
||||
s32 spriteHeight = m_spriteBank->getFrameHeight(FRM_BARNACLEBOY);
|
||||
|
||||
x = Pos.vx - offset.vx - ( spriteWidth >> 1 );
|
||||
y = Pos.vy - offset.vy - ( spriteHeight >> 1 );
|
||||
|
||||
//if ( x < -spriteWidth || y < -spriteHeight || x > scrnWidth || y > scrnHeight )
|
||||
//{
|
||||
//return;
|
||||
//}
|
||||
|
||||
m_spriteBank->printFT4(FRM_BARNACLEBOY,x,y,0,0,0);*/
|
||||
if ( renderPos.vx >= 0 && renderPos.vx <= VidGetScrW() )
|
||||
{
|
||||
if ( renderPos.vy >= 0 && renderPos.vy <= VidGetScrH() )
|
||||
{
|
||||
m_actorGfx->Render(renderPos,m_animNo,m_frame,m_reversed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1403,13 +1394,16 @@ void CNpcEnemy::render()
|
|||
DVECTOR renderPos;
|
||||
DVECTOR offset = CLevel::getCameraPos();
|
||||
|
||||
//renderPos.vx = ( Pos.vx + m_drawOffset.vx - offset.vx - ( VidGetScrW() >> 1 ) );// * 20;
|
||||
//renderPos.vy = ( Pos.vy + m_drawOffset.vy - offset.vy - ( VidGetScrH() >> 1 ) );// * 20;
|
||||
|
||||
renderPos.vx = Pos.vx - offset.vx;
|
||||
renderPos.vy = Pos.vy - offset.vy;
|
||||
|
||||
if ( renderPos.vx >= 0 && renderPos.vx <= VidGetScrW() )
|
||||
{
|
||||
if ( renderPos.vy >= 0 && renderPos.vy <= VidGetScrH() )
|
||||
{
|
||||
m_actorGfx->Render(renderPos,m_animNo,m_frame,m_reversed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -106,6 +106,7 @@ protected:
|
|||
int m_animNo;
|
||||
CActorGfx *m_actorGfx;
|
||||
DVECTOR m_drawOffset;
|
||||
bool m_reversed;
|
||||
};
|
||||
|
||||
class CNpcEnemy : public CEnemyThing
|
||||
|
|
|
@ -189,7 +189,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ACTORS_CLAM_SBK,
|
||||
ANIM_CLAM_SIDESNAP,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_FALLING_ITEM_USER_CLOSE,
|
||||
//NPC_SENSOR_FALLING_ITEM_USER_CLOSE,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_FALLING_ITEM_FALL,
|
||||
|
|
|
@ -288,6 +288,12 @@ void CGameScene::initLevel()
|
|||
if (actorList)
|
||||
{
|
||||
for ( actorNum = 0 ; actorNum < Level.getActorCount() ; actorNum++ )
|
||||
{
|
||||
CActorPool::ACTOR_TYPE actorType = CActorPool::getActorType( actorList[actorNum]->Type );
|
||||
|
||||
switch ( actorType )
|
||||
{
|
||||
case CActorPool::ACTOR_ENEMY_NPC:
|
||||
{
|
||||
CNpcEnemy *enemy;
|
||||
enemy = new ("npc enemy") CNpcEnemy;
|
||||
|
@ -323,6 +329,13 @@ void CGameScene::initLevel()
|
|||
}
|
||||
|
||||
enemy->postInit();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Song is loaded/dumped by the level, and played from here. This just gives some
|
||||
|
|
|
@ -12,6 +12,50 @@
|
|||
|
||||
#include <dstructs.h>
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
CActorPool::ACTOR_TYPE CActorPool::actorType[38] =
|
||||
{
|
||||
ACTOR_PLAYER, //SpongeBob=0
|
||||
ACTOR_FRIEND_NPC, //BarnacleBoy=1
|
||||
ACTOR_FRIEND_NPC, //Gary=2
|
||||
ACTOR_FRIEND_NPC, //Krusty=3
|
||||
ACTOR_FRIEND_NPC, //MermaidMan=4
|
||||
ACTOR_FRIEND_NPC, //Patrick=5
|
||||
ACTOR_FRIEND_NPC, //Sandy=6
|
||||
ACTOR_FRIEND_NPC, //Squidward=7
|
||||
ACTOR_FRIEND_NPC, //Plankton=8
|
||||
ACTOR_UNKNOWN,
|
||||
ACTOR_ENEMY_NPC, //SmallJellyfish-Level1=10
|
||||
ACTOR_ENEMY_NPC, //SmallJellyfish-Level2=11
|
||||
ACTOR_ENEMY_NPC, //Motherjellyfish=12
|
||||
ACTOR_ENEMY_NPC, //Anenome-Level1=13
|
||||
ACTOR_ENEMY_NPC, //SpikeyAnenome=14
|
||||
ACTOR_ENEMY_NPC, //Anenome-Level3=15
|
||||
ACTOR_ENEMY_NPC, //BabyOctopus=16
|
||||
ACTOR_ENEMY_NPC, //Ballblob=17
|
||||
ACTOR_ENEMY_NPC, //Boogermonster=18
|
||||
ACTOR_ENEMY_NPC, //Caterpillar=19
|
||||
ACTOR_ENEMY_NPC, //Clam-Level1=20
|
||||
ACTOR_ENEMY_NPC, //Clam-Level2=21
|
||||
ACTOR_ENEMY_NPC, //Eyeball=22
|
||||
ACTOR_ENEMY_NPC, //Flamingskull=23
|
||||
ACTOR_ENEMY_NPC, //FlyingDutchman=24
|
||||
ACTOR_ENEMY_NPC, //Ghost=25
|
||||
ACTOR_ENEMY_NPC, //GiantWorm=26
|
||||
ACTOR_ENEMY_NPC, //HermitCrab=27
|
||||
ACTOR_ENEMY_NPC, //IronDogFish=28
|
||||
ACTOR_ENEMY_NPC, //PuffaFish=29
|
||||
ACTOR_ENEMY_NPC, //SeaSnake=30
|
||||
ACTOR_ENEMY_NPC, //Sharkman=31
|
||||
ACTOR_ENEMY_NPC, //SharkSub=32
|
||||
ACTOR_ENEMY_NPC, //Skeletalfish=33
|
||||
ACTOR_ENEMY_NPC, //SpiderCrab=34
|
||||
ACTOR_ENEMY_NPC, //Squiddart=35
|
||||
ACTOR_ENEMY_NPC, //Stomper=36
|
||||
ACTOR_ENEMY_NPC, //DustDevil=37
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
CActorGfx *CActorPool::ActorList[CActorPool::MAX_ACTORS];
|
||||
u8 CActorPool::UnpackBuffer[CActorPool::MAX_ACTOR_SIZE];
|
||||
|
|
|
@ -47,6 +47,14 @@ public:
|
|||
MAX_ACTOR_SIZE=128*128,
|
||||
};
|
||||
|
||||
enum ACTOR_TYPE
|
||||
{
|
||||
ACTOR_PLAYER = 0,
|
||||
ACTOR_FRIEND_NPC = 1,
|
||||
ACTOR_ENEMY_NPC,
|
||||
ACTOR_UNKNOWN,
|
||||
};
|
||||
|
||||
static void Init();
|
||||
|
||||
static void AddActor(FileEquate Filename) {GetActor(Filename);}
|
||||
|
@ -55,12 +63,16 @@ static void DumpActors();
|
|||
|
||||
static u8 UnpackBuffer[MAX_ACTOR_SIZE];
|
||||
|
||||
static ACTOR_TYPE getActorType( int actorNum ) {return actorType[actorNum];}
|
||||
|
||||
private:
|
||||
static int FindIdx(FileEquate Filename);
|
||||
static int FindFreeIdx();
|
||||
|
||||
static CActorGfx *ActorList[MAX_ACTORS];
|
||||
|
||||
static ACTOR_TYPE actorType[38];
|
||||
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue