This commit is contained in:
parent
a7ac143cce
commit
420026d239
13 changed files with 58 additions and 82 deletions
|
@ -1,5 +1,4 @@
|
||||||
die
|
die
|
||||||
gethit
|
|
||||||
idle
|
idle
|
||||||
jumpend
|
jumpend
|
||||||
jumpstart
|
jumpstart
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
Body
|
Body
|
||||||
Spike
|
|
|
@ -965,9 +965,9 @@ void SprFrame::SetFrameAndInfo(Frame const & Fr,FileInfo const & NewMyFileInfo,i
|
||||||
X=XOff;
|
X=XOff;
|
||||||
Y=YOff;
|
Y=YOff;
|
||||||
|
|
||||||
if (Width > 254 || Height > 254)
|
if (Width > 256 || Height > 256)
|
||||||
{
|
{
|
||||||
Error(ERR_FATAL,"Images only allowed to 254x254, this is %dx%d : %s",Width,Height,MyFileInfo.GetActualFileName());
|
Error(ERR_FATAL,"Images only allowed to 256x256, this is %dx%d : %s",Width,Height,MyFileInfo.GetActualFileName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -143,8 +143,7 @@ LEVELS/FMA_SHADYEXTERIOR.Tex
|
||||||
|
|
||||||
actors/SPONGEBOB.SBK
|
actors/SPONGEBOB.SBK
|
||||||
|
|
||||||
actors/ANENOMELVL1.SBK
|
actors/ANENOME.SBK
|
||||||
actors/ANENOMELVL3.SBK
|
|
||||||
actors/BABYOCTOPUS.SBK
|
actors/BABYOCTOPUS.SBK
|
||||||
actors/BALLBLOB.SBK
|
actors/BALLBLOB.SBK
|
||||||
actors/CATERPILLAR.SBK
|
actors/CATERPILLAR.SBK
|
||||||
|
|
|
@ -110,7 +110,7 @@ ACTOR_SPONGEBOB := SPONGEBOB
|
||||||
ACTOR_NPC :=
|
ACTOR_NPC :=
|
||||||
# BarnacleBoy Gary Krusty MermaidMan Patrick Plankton Sandy Squidward
|
# BarnacleBoy Gary Krusty MermaidMan Patrick Plankton Sandy Squidward
|
||||||
|
|
||||||
ACTOR_ENEMY := AnenomeLvl1 AnenomeLvl3 BabyOctopus Ballblob Caterpillar clam Dustdevil Eyeball \
|
ACTOR_ENEMY := Anenome BabyOctopus Ballblob Caterpillar clam Dustdevil Eyeball \
|
||||||
Flamingskull FlyingDutchman Ghost HermitCrab IronDogFish Lrgjellyfish \
|
Flamingskull FlyingDutchman Ghost HermitCrab IronDogFish Lrgjellyfish \
|
||||||
PuffaFish Sharkman Skeletalfish SpiderCrab SpikeyAnenome Stomper
|
PuffaFish Sharkman Skeletalfish SpiderCrab SpikeyAnenome Stomper
|
||||||
|
|
||||||
|
|
|
@ -31,19 +31,14 @@
|
||||||
#include "player\player.h"
|
#include "player\player.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ANIM_ANENOMELVL1_HEADER__
|
#ifndef __ANIM_ANENOME_HEADER__
|
||||||
#include <ACTOR_ANENOMELVL1_ANIM.h>
|
#include <ACTOR_ANENOME_ANIM.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ANIM_SPIKEYANENOME_HEADER__
|
#ifndef __ANIM_SPIKEYANENOME_HEADER__
|
||||||
#include <ACTOR_SPIKEYANENOME_ANIM.h>
|
#include <ACTOR_SPIKEYANENOME_ANIM.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ANIM_ANENOMELVL3_HEADER__
|
|
||||||
#include <ACTOR_ANENOMELVL3_ANIM.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
void CNpcAnemoneEnemy::processEnemyCollision( CThing *thisThing )
|
void CNpcAnemoneEnemy::processEnemyCollision( CThing *thisThing )
|
||||||
{
|
{
|
||||||
// do nothing
|
// do nothing
|
||||||
|
@ -154,10 +149,10 @@ void CNpcAnemone1Enemy::processClose( int _frames )
|
||||||
|
|
||||||
if ( m_timerTimer <= 0 && !m_animPlaying )
|
if ( m_timerTimer <= 0 && !m_animPlaying )
|
||||||
{
|
{
|
||||||
if ( m_animNo != ANIM_ANENOMELVL1_FIRE )
|
if ( m_animNo != ANIM_ANENOME_FIRE )
|
||||||
{
|
{
|
||||||
m_animPlaying = true;
|
m_animPlaying = true;
|
||||||
m_animNo = ANIM_ANENOMELVL1_FIRE;
|
m_animNo = ANIM_ANENOME_FIRE;
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -165,10 +160,10 @@ void CNpcAnemone1Enemy::processClose( int _frames )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( !m_animPlaying || m_animNo != ANIM_ANENOMELVL1_BEND )
|
if ( !m_animPlaying || m_animNo != ANIM_ANENOME_FIRE )
|
||||||
{
|
{
|
||||||
m_animPlaying = true;
|
m_animPlaying = true;
|
||||||
m_animNo = ANIM_ANENOMELVL1_BEND;
|
m_animNo = ANIM_ANENOME_FIRE;
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,7 +172,7 @@ void CNpcAnemone1Enemy::processClose( int _frames )
|
||||||
{
|
{
|
||||||
if ( m_timerTimer <= 0 && !m_animPlaying )
|
if ( m_timerTimer <= 0 && !m_animPlaying )
|
||||||
{
|
{
|
||||||
if ( m_animNo == ANIM_ANENOMELVL1_FIRE )
|
if ( m_animNo == ANIM_ANENOME_FIRE )
|
||||||
{
|
{
|
||||||
// if firing anim is complete and user is still in range, fire projectile
|
// if firing anim is complete and user is still in range, fire projectile
|
||||||
|
|
||||||
|
@ -192,7 +187,7 @@ void CNpcAnemone1Enemy::processClose( int _frames )
|
||||||
m_sensorFunc = NPC_SENSOR_NONE;
|
m_sensorFunc = NPC_SENSOR_NONE;
|
||||||
|
|
||||||
m_animPlaying = true;
|
m_animPlaying = true;
|
||||||
m_animNo = ANIM_ANENOMELVL1_BEND;
|
m_animNo = ANIM_ANENOME_FIRE;
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -291,10 +286,10 @@ void CNpcAnemone2Enemy::processClose( int _frames )
|
||||||
|
|
||||||
void CNpcAnemone3Enemy::processClose( int _frames )
|
void CNpcAnemone3Enemy::processClose( int _frames )
|
||||||
{
|
{
|
||||||
if ( m_animNo != ANIM_ANENOMELVL3_FIRE )
|
if ( m_animNo != ANIM_ANENOME_FIRE )
|
||||||
{
|
{
|
||||||
m_animPlaying = true;
|
m_animPlaying = true;
|
||||||
m_animNo = ANIM_ANENOMELVL3_FIRE;
|
m_animNo = ANIM_ANENOME_FIRE;
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
}
|
}
|
||||||
else if ( !m_animPlaying )
|
else if ( !m_animPlaying )
|
||||||
|
@ -316,7 +311,7 @@ void CNpcAnemone3Enemy::processClose( int _frames )
|
||||||
m_sensorFunc = NPC_SENSOR_NONE;
|
m_sensorFunc = NPC_SENSOR_NONE;
|
||||||
|
|
||||||
m_animPlaying = true;
|
m_animPlaying = true;
|
||||||
m_animNo = ANIM_ANENOMELVL3_BEND;
|
m_animNo = ANIM_ANENOME_FIRE;
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -27,12 +27,8 @@
|
||||||
#include <ACTOR_CLAM_ANIM.h>
|
#include <ACTOR_CLAM_ANIM.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ANIM_ANENOMELVL1_HEADER__
|
#ifndef __ANIM_ANENOME_HEADER__
|
||||||
#include <ACTOR_ANENOMELVL1_ANIM.h>
|
#include <ACTOR_ANENOME_ANIM.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __ANIM_ANENOMELVL3_HEADER__
|
|
||||||
#include <ACTOR_ANENOMELVL3_ANIM.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ANIM_BABYOCTOPUS_HEADER__
|
#ifndef __ANIM_BABYOCTOPUS_HEADER__
|
||||||
|
@ -314,8 +310,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ANEMONE_1
|
{ // NPC_ANEMONE_1
|
||||||
ACTORS_ANENOMELVL1_SBK,
|
ACTORS_ANENOME_SBK,
|
||||||
ANIM_ANENOMELVL1_BEND,
|
ANIM_ANENOME_FIRE,
|
||||||
NPC_SENSOR_USER_CLOSE,
|
NPC_SENSOR_USER_CLOSE,
|
||||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||||
NPC_CLOSE_NONE,
|
NPC_CLOSE_NONE,
|
||||||
|
@ -356,8 +352,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ANEMONE_3
|
{ // NPC_ANEMONE_3
|
||||||
ACTORS_ANENOMELVL3_SBK,
|
ACTORS_ANENOME_SBK,
|
||||||
ANIM_ANENOMELVL3_BEND,
|
ANIM_ANENOME_FIRE,
|
||||||
NPC_SENSOR_USER_CLOSE,
|
NPC_SENSOR_USER_CLOSE,
|
||||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||||
NPC_CLOSE_NONE,
|
NPC_CLOSE_NONE,
|
||||||
|
@ -581,7 +577,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_HERMITCRAB_SCUTTLE,
|
ANIM_HERMITCRAB_SCUTTLE,
|
||||||
NPC_SHOT_GENERIC,
|
NPC_SHOT_GENERIC,
|
||||||
ANIM_HERMITCRAB_DIE,
|
ANIM_HERMITCRAB_DIE,
|
||||||
ANIM_HERMITCRAB_GETHIT,
|
ANIM_HERMITCRAB_DIE,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
|
|
|
@ -218,29 +218,30 @@ RECT R={512,256,512,250};
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
void CActorCache::LoadPalette(sActorPool *Actor)
|
void CActorCache::LoadPalette(sActorPool *Actor)
|
||||||
{
|
{
|
||||||
RECT R;
|
if (!Actor->ActorGfx->Clut)
|
||||||
int X=CurrentPalette%(((CACHE_W*TPAGE_W)/CACHE_PALW));
|
{ // Cheap bodge at mo
|
||||||
int Y=CurrentPalette/(((CACHE_W*TPAGE_W)/CACHE_PALW)-1);
|
RECT R;
|
||||||
|
int X=CurrentPalette%(((CACHE_W*TPAGE_W)/CACHE_PALW));
|
||||||
|
int Y=CurrentPalette/(((CACHE_W*TPAGE_W)/CACHE_PALW)-1);
|
||||||
|
|
||||||
// Cheap bodge at mo
|
if (Actor->Filename==ACTORS_SPONGEBOB_SBK)
|
||||||
if (Actor->Filename==ACTORS_SPONGEBOB_SBK)
|
{
|
||||||
{
|
R.x=512;
|
||||||
R.x=512;
|
R.y=511;
|
||||||
R.y=511;
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
R.x=CACHE_PALX+(CurrentPalette*CACHE_PALW);
|
||||||
|
R.y=CACHE_PALY-Y;
|
||||||
|
}
|
||||||
|
|
||||||
|
R.w=CACHE_PALW;
|
||||||
|
R.h=CACHE_PALH;
|
||||||
|
DrawSync(0);
|
||||||
|
LoadImage( &R, (u32*)Actor->ActorGfx->Palette);
|
||||||
|
Actor->ActorGfx->Clut=getClut(R.x,R.y);
|
||||||
|
CurrentPalette++;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
R.x=CACHE_PALX+(CurrentPalette*CACHE_PALW);
|
|
||||||
R.y=CACHE_PALY-Y;
|
|
||||||
}
|
|
||||||
|
|
||||||
R.w=CACHE_PALW;
|
|
||||||
R.h=CACHE_PALH;
|
|
||||||
DrawSync(0);
|
|
||||||
LoadImage( &R, (u32*)Actor->ActorGfx->Palette);
|
|
||||||
|
|
||||||
Actor->ActorGfx->Clut=getClut(R.x,R.y);
|
|
||||||
CurrentPalette++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -429,10 +430,7 @@ int Total=0;
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
int ActorOT=10;
|
int ActorOT=10;
|
||||||
int Angle=0;
|
|
||||||
int AngleInc=16;
|
|
||||||
int ScaleX=4095;
|
|
||||||
int ScaleY=4095;
|
|
||||||
POLY_FT4 *CActorGfx::Render(DVECTOR &Pos,int Anim,int Frame,bool XFlip,bool YFlip,bool Shadow)
|
POLY_FT4 *CActorGfx::Render(DVECTOR &Pos,int Anim,int Frame,bool XFlip,bool YFlip,bool Shadow)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -493,10 +491,6 @@ int HalfW=CurrentFrame->W>>1;
|
||||||
BBox.YMin=-CurrentFrame->H;
|
BBox.YMin=-CurrentFrame->H;
|
||||||
BBox.YMax=0;
|
BBox.YMax=0;
|
||||||
|
|
||||||
//
|
|
||||||
// RotateScale(Ft4,Pos,Angle,ScaleX,ScaleY);
|
|
||||||
// Angle+=AngleInc;
|
|
||||||
|
|
||||||
return(Ft4);
|
return(Ft4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -229,11 +229,16 @@ void CLevel::initLayers()
|
||||||
TileLayers[CLayerTile::LAYER_TILE_TYPE_ACTION]=NewLayer;
|
TileLayers[CLayerTile::LAYER_TILE_TYPE_ACTION]=NewLayer;
|
||||||
}
|
}
|
||||||
// Collision
|
// Collision
|
||||||
|
|
||||||
if (LevelHdr->CollisionLayer)
|
if (LevelHdr->CollisionLayer)
|
||||||
{
|
{
|
||||||
sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->CollisionLayer);
|
sLayerHdr *Layer=(sLayerHdr*)MakePtr(LevelHdr,LevelHdr->CollisionLayer);
|
||||||
CollisionLayer=new ("Collision Layer") CLayerCollision(Layer);
|
CollisionLayer=new ("Collision Layer") CLayerCollision(Layer);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ASSERT(!"Where is the collision, moron!");
|
||||||
|
}
|
||||||
|
|
||||||
// Actors
|
// Actors
|
||||||
if (LevelHdr->ActorList)
|
if (LevelHdr->ActorList)
|
||||||
|
@ -354,22 +359,11 @@ void CLevel::shutdown()
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
void CLevel::render()
|
void CLevel::render()
|
||||||
{
|
{
|
||||||
// Setup dummy prim to ensure OtPos 0 is initialised (for fast add)
|
|
||||||
/*
|
|
||||||
for (int i=0;i<8; i++)
|
|
||||||
{
|
|
||||||
TILE_16 *Prim=GetPrimTILE16();
|
|
||||||
sOT *ThisOT=OtPtr+LayerOT+i-4;
|
|
||||||
Prim->x0=1024;
|
|
||||||
Prim->y0=1024;
|
|
||||||
AddPrim(ThisOT,Prim);
|
|
||||||
ASSERT(ThisOT->FirstPrim);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
|
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
|
||||||
{
|
{
|
||||||
if (TileLayers[i]) TileLayers[i]->render();
|
if (TileLayers[i]) TileLayers[i]->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __SHOW_COLLISION__
|
#ifdef __SHOW_COLLISION__
|
||||||
if(CollisionLayer)
|
if(CollisionLayer)
|
||||||
{
|
{
|
||||||
|
@ -383,6 +377,7 @@ void CLevel::render()
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
void CLevel::think(int _frames)
|
void CLevel::think(int _frames)
|
||||||
{
|
{
|
||||||
|
|
||||||
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
|
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
|
||||||
{
|
{
|
||||||
if (TileLayers[i]) TileLayers[i]->think(MapPos);
|
if (TileLayers[i]) TileLayers[i]->think(MapPos);
|
||||||
|
|
|
@ -122,7 +122,7 @@ void CPlayerModeJellyLauncher::think()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_firingState=FIRING_STATE__FIRING;
|
m_firingState=FIRING_STATE__FIRING;
|
||||||
m_player->setAnimNo(ANIM_SPONGEBOB_FIREND);
|
m_player->setAnimNo(ANIM_SPONGEBOB_FIREEND);
|
||||||
launchProjectile();
|
launchProjectile();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Binary file not shown.
|
@ -232,11 +232,10 @@ struct sSpriteAnim
|
||||||
|
|
||||||
struct sSpriteAnimBank
|
struct sSpriteAnimBank
|
||||||
{
|
{
|
||||||
u16 ColorCount; // 2
|
u16 Clut; // 2
|
||||||
u16 AnimCount; // 2
|
u16 AnimCount; // 2
|
||||||
u16 FrameCount; // 2
|
u16 FrameCount; // 2
|
||||||
u16 MaxW,MaxH; // 4
|
u8 MaxW,MaxH; // 2
|
||||||
u16 Clut;
|
|
||||||
|
|
||||||
u8 *Palette; // 4
|
u8 *Palette; // 4
|
||||||
sSpriteAnim *AnimList; // 4
|
sSpriteAnim *AnimList; // 4
|
||||||
|
|
|
@ -127,7 +127,7 @@ AttackStrength=20
|
||||||
#AttackStrength=1234
|
#AttackStrength=1234
|
||||||
|
|
||||||
[Anenome-Level1]
|
[Anenome-Level1]
|
||||||
Gfx=..\..\graphics\characters\AnenomeLvl1\render\psx\AnenomeLvl1_Fire0001.bmp
|
Gfx=..\..\graphics\characters\Anenome\render\AnemneLvl1Icon.bmp
|
||||||
WayPoints=16
|
WayPoints=16
|
||||||
Speed=0
|
Speed=0
|
||||||
TurnRate=128
|
TurnRate=128
|
||||||
|
@ -145,7 +145,7 @@ Health=0
|
||||||
AttackStrength=20
|
AttackStrength=20
|
||||||
|
|
||||||
[Anenome-Level3]
|
[Anenome-Level3]
|
||||||
Gfx=..\..\graphics\characters\AnenomeLvl3\Render\PSX\AnenomeLvl3_Fire0001.bmp
|
Gfx=..\..\graphics\characters\Anenome\render\AnemneLvl3Icon.bmp
|
||||||
WayPoints=16
|
WayPoints=16
|
||||||
Speed=0
|
Speed=0
|
||||||
TurnRate=128
|
TurnRate=128
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue