From 2b171295b5ed6caa0e4316a7bc83b98c765c9f88 Mon Sep 17 00:00:00 2001 From: Daveo Date: Sun, 1 Apr 2001 20:22:49 +0000 Subject: [PATCH] --- Utils/Libs/DaveLib/DaveLib.cpp | 67 ++++++++++ Utils/Libs/DaveLib/DaveLib.dsp | 4 + Utils/Libs/DaveLib/DaveLib.h | 5 +- Utils/Libs/DaveLib/IniClass.h | 19 ++- Utils/Libs/TexGrab/sprset.cpp | 6 +- Utils/MapEdit/ExportHdr.h | 6 +- Utils/MapEdit/LayerActor.cpp | 23 ---- Utils/MapEdit/LayerActor.h | 3 - Utils/MapEdit/LayerItem.cpp | 24 ---- Utils/MapEdit/LayerItem.h | 3 - Utils/MapEdit/LayerPlatform.cpp | 24 ---- Utils/MapEdit/LayerPlatform.h | 3 - Utils/MapEdit/LayerThing.cpp | 20 +++ Utils/MapEdit/LayerThing.h | 2 +- Utils/MkActor/MkActor.cpp | 107 ++++++++-------- Utils/MkActor/MkActor.h | 18 ++- source/enemy/nclam.cpp | 4 +- source/enemy/npc.cpp | 42 ++----- source/enemy/npc.h | 9 +- source/enemy/npcdata.cpp | 178 +++++++++++++-------------- source/enemy/nsshark.cpp | 12 +- source/game/game.cpp | 2 +- source/gfx/actor.cpp | 94 ++++++++++++-- source/gfx/actor.h | 26 ++-- source/gfx/animtex.cpp | 7 +- source/gfx/animtex.h | 6 +- source/player/player.cpp | 49 +++----- source/player/player.h | 7 +- source/player/pmbubble.cpp | 3 +- source/player/pmchop.cpp | 3 +- source/player/pmnet.cpp | 3 +- source/player/psfall.cpp | 3 +- source/player/psidle.cpp | 21 ++-- source/player/psjump.cpp | 3 +- source/player/psrun.cpp | 6 +- source/projectl/projectl.h | 2 - source/system/main.cpp | 6 +- source/utils/pak.cpp | 40 ++---- source/utils/pak.h | 51 +------- source/utils/utils.h | 6 +- tools/Data/bin/MkActor.exe | Bin 0 -> 86016 bytes tools/Data/bin/MkLevel.exe | Bin 192512 -> 204800 bytes tools/Data/bin/MkLevel.ini | 65 ++++++++++ tools/Data/include/dstructs.h | 209 ++++++++++---------------------- 44 files changed, 588 insertions(+), 603 deletions(-) create mode 100644 tools/Data/bin/MkActor.exe create mode 100644 tools/Data/bin/MkLevel.ini diff --git a/Utils/Libs/DaveLib/DaveLib.cpp b/Utils/Libs/DaveLib/DaveLib.cpp index 0b6443eda..69ef00fca 100644 --- a/Utils/Libs/DaveLib/DaveLib.cpp +++ b/Utils/Libs/DaveLib/DaveLib.cpp @@ -47,6 +47,7 @@ int round(float f) } //*************************************************************************** +/* void alignFile( FILE *f, int align ) { long fp = ftell(f); @@ -57,6 +58,17 @@ void alignFile( FILE *f, int align ) fwrite(buffer, s, 1, f); } } +*/ +//*************************************************************************** +void PadFile(FILE *File) +{ +int Pad=ftell(File) & 3; + + if (Pad) + { + fwrite(&Pad,Pad,1,File); + } +} //*************************************************************************** GString CheckFileString(const char * Str) @@ -148,3 +160,58 @@ FILE *File=fopen(Name,"rb"); } return((char*)Name); } +/**************************************************************************************/ +struct sTgaHdr +{ + char id; // 0 + char colmaptype; // 1 + char imagetype; // 2 + char fei[2]; // 3 + char cml[2]; // 5 + char cmes; // 7 + short xorig; // 8 + short yorig; // 10 + short width; // 12 + short height; // 14 + char depth; // 15 + char imagedesc; // 16 +}; + + + +void SaveTGA(char *Filename,int W,int H,u8 *Data,bool IsBGR) +{ +FILE *File; +sTgaHdr FileHdr; + + File=fopen(Filename,"wb"); + + memset(&FileHdr,0 ,sizeof(sTgaHdr)); + + FileHdr.imagetype= 2; //imagetype + FileHdr.width = W; + FileHdr.height= H; + FileHdr.depth=24; + + fwrite(&FileHdr,sizeof(sTgaHdr),1,File); + if (!IsBGR) + { + fwrite(Data,W*H*3,1,File); + } + else + { + int Size=W*H; + for (int i=0; i #include #include - +#include #include "MkActor.h" #include using namespace std; +//#define CheckDups 1 +//#define OutputTGA //*************************************************************************** vector ActorList; @@ -257,6 +259,7 @@ int Error=0; sFrame NewFrame; NewFrame.Filename=Find.name; ThisAnim.Frames.push_back(NewFrame); + Error=_findnext( FileHandle, &Find); } _findclose( FileHandle); @@ -283,7 +286,7 @@ int i,ListSize=AnimList.size(); //*************************************************************************** void CMkActor::LoadFrame(sFrame &ThisFrame,bool VRamFlag) { - ThisFrame.FrameIdx=LoadBmp(ThisFrame.Filename,VRamFlag); + ThisFrame.FrameIdx=LoadBmp(ThisFrame.Filename,VRamFlag); } //*************************************************************************** @@ -310,7 +313,7 @@ Rect OriginalRect; nfAreaBytes=nfLineWidthBytes*nfH; Bmp.PsxSize=nfAreaBytes; - Bmp.Psx=(u8*)malloc(nfAreaBytes); + Bmp.Psx=(u8*)malloc(nfAreaBytes+16); ASSERT(Bmp.Psx); for (int y=0;y&Bmp.Psx[nfAreaBytes]) printf("!"); + if (PixAddr>=&Bmp.Psx[nfAreaBytes]) ASSERT(!""); if ((x&1)) { *PixAddr&=0x0f; @@ -344,39 +347,28 @@ int CMkActor::LoadBmp(GString &Name,bool VRamFlag) { GString Filename=SpriteDir+Name; -int Idx,i,ListSize; -int W,H,Size; -sBmp NewBmp; -Frame &Bmp=NewBmp.Bmp; +int BmpListSize=BmpList.size(); +sBmp NewBmp; +SprFrame &NewFrame=NewBmp.Bmp; +FileInfo ThisInfo; - NewBmp.Filename=Filename; - NewBmp.RGB=0; - NewBmp.Pak=0; - NewBmp.Psx=0; - NewBmp.VRamFlag=VRamFlag; - Bmp.LoadBMP(Filename); - W=Bmp.GetWidth(); - H=Bmp.GetHeight(); - Size=W*H; - NewBmp.RGB=(u8*)malloc(Size*3); - ASSERT(NewBmp.RGB); - Bmp.MakeRGB(NewBmp.RGB); +// ThisInfo.SetInfo(name, CrossHair, ThisZeroColZero, MoveUVs, AllowRotate, ShrinkToFit, m_allocateAs16bit); + ThisInfo.SetInfo(Filename, false, true, false, false, true, false); -#if _DEBUG && 0 - { -u8 *TGA=(u8*)malloc(Size*3); - ASSERT(TGA); - Bmp.FlipY(); - Bmp.MakeRGB(TGA); - Bmp.FlipY(); + NewBmp.RGB=0; + NewBmp.Pak=0; + NewBmp.Psx=0; + NewBmp.VRamFlag=VRamFlag; - char OutName[256]; - sprintf(OutName,"\\x\\%s.tga",Name); - SaveTGA(OutName,W,H,TGA,true); - free(TGA); - } -#endif + NewFrame.LoadBMP(Filename); +#ifdef CheckDups +int Size=NewFrame.GetWidth()*NewFrame.GetHeight(); + NewBmp.RGB=(u8*)malloc(Size*3); + ASSERT(NewBmp.RGB); + NewFrame.MakeRGB(NewBmp.RGB); + +// Check for dups (Broken at the mo, ah well) // Gen Chksum u8 *RGB=NewBmp.RGB; NewBmp.ChkR=NewBmp.ChkG=NewBmp.ChkB=0; @@ -386,15 +378,13 @@ u8 *RGB=NewBmp.RGB; NewBmp.ChkG+=*RGB++; NewBmp.ChkB+=*RGB++; } - - ListSize=BmpList.size(); - Idx=-1; + +int Idx=-1; // Find existing - for (i=0; i Out; else { // Pak Out[i].PAKSpr=(u8*)ftell(File); + Out[i].XOfs=-ThisBmp.Bmp.GetX(); + Out[i].YOfs=-ThisBmp.Bmp.GetY(); + Out[i].W=ThisBmp.Bmp.GetWidth(); + Out[i].H=ThisBmp.Bmp.GetHeight(); + fwrite(ThisBmp.Pak,1,ThisBmp.PakSize,File); PadFile(File); } diff --git a/Utils/MkActor/MkActor.h b/Utils/MkActor/MkActor.h index 603d39665..b0f04cc56 100644 --- a/Utils/MkActor/MkActor.h +++ b/Utils/MkActor/MkActor.h @@ -23,15 +23,14 @@ struct sAnim //*************************************************************************** struct sBmp { - GString Filename; - Frame Bmp; - int ChkR,ChkG,ChkB; - u8 *RGB; - u8 *Psx; - u8 *Pak; - int PsxSize; - int PakSize; - bool VRamFlag; + SprFrame Bmp; + int ChkR,ChkG,ChkB; + u8 *RGB; + u8 *Psx; + u8 *Pak; + int PsxSize; + int PakSize; + bool VRamFlag; }; //*************************************************************************** @@ -39,7 +38,6 @@ class CMkActor { public: CMkActor(GString &ActorName,GString &ActorPath,GString &SpritePath); -// ~CMkActor(); static void SetTPData(const char *Name,int TPBase,int TPW,int TPH); diff --git a/source/enemy/nclam.cpp b/source/enemy/nclam.cpp index d7b6571cc..681bb9308 100644 --- a/source/enemy/nclam.cpp +++ b/source/enemy/nclam.cpp @@ -50,7 +50,7 @@ void CNpcEnemy::processCloseClamJumpAttack( int _frames ) if ( !m_animPlaying ) { m_animPlaying = true; - m_animNo = ANIM_CLAM_CLAMSNAPUP; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; } } @@ -96,7 +96,7 @@ void CNpcEnemy::processCloseClamSnapAttack( int _frames ) if ( !m_animPlaying ) { m_animPlaying = true; - m_animNo = ANIM_CLAM_CLAMSIDESNAP; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; } diff --git a/source/enemy/npc.cpp b/source/enemy/npc.cpp index c99eb9d46..d47a91f4a 100644 --- a/source/enemy/npc.cpp +++ b/source/enemy/npc.cpp @@ -45,7 +45,8 @@ #include "game\convo.h" #endif -#include "Gfx\Skel.h" + +#include "Gfx\actor.h" #ifndef __VID_HEADER_ #include "system\vid.h" @@ -63,11 +64,6 @@ void CNpcFriend::init() { CNpcThing::init(); -// sActorHdr *Hdr=m_skel.Load(ACTORS_SPONGEBOB_A3D); -// m_skel.Init(Hdr); - m_skel.Init(ACTORS_SPONGEBOB_A3D); - m_actorTPage = TPLoadTex(ACTORS_ACTOR_SPONGEBOB_TEX); - Pos.vx = 100; Pos.vy = 100; @@ -96,10 +92,6 @@ void CNpcFriend::shutdown() { //m_spriteBank->dump(); delete m_spriteBank; - // temporary - //TPFree( m_actorTPage ); - //CAnimDB::Dump( m_data[m_type].animData ); - CNpcThing::shutdown(); } @@ -135,11 +127,7 @@ void CNpcFriend::render() renderPos.vx = ( Pos.vx + m_drawOffset.vx - offset.vx - ( VidGetScrW() >> 1 ) ) * 20; renderPos.vy = ( Pos.vy + m_drawOffset.vy - offset.vy - ( VidGetScrH() >> 1 ) ) * 20; - m_skel.setPos( renderPos ); - m_skel.setFrame(m_frame); - m_skel.setAnimNo(m_animNo); - m_skel.Animate(this); - m_skel.Render(this); + m_actorGfx->Render(renderPos,m_frame,m_animNo,false); /*s32 x,y; s32 scrnWidth = VidGetScrW(); @@ -216,12 +204,7 @@ void CNpcEnemy::init() { CEnemyThing::init(); -// sActorHdr *Hdr = m_skel.Load( m_data[m_type].skelType ); -// m_skel.Init( Hdr ); - m_skel.Init(m_data[m_type].skelType); - m_actorTPage = TPLoadTex( ACTORS_ACTOR_ENEMY_TEX ); - - m_skel.setAng(1024); + m_actorGfx=CActorPool::GetActor(m_data[m_type].skelType); m_animPlaying = true; m_animNo = m_data[m_type].initAnim; @@ -545,7 +528,6 @@ void CNpcEnemy::shutdown() m_positionHistory = NULL; // temporary - TPFree( m_actorTPage ); CEnemyThing::shutdown(); } @@ -561,7 +543,7 @@ void CNpcEnemy::think(int _frames) if ( m_animPlaying ) { - int frameCount = m_skel.getFrameCount(); + int frameCount = m_actorGfx->getFrameCount(m_animNo); if ( frameCount - m_frame > _frames ) { @@ -576,12 +558,12 @@ void CNpcEnemy::think(int _frames) if ( m_heading > 1024 && m_heading < 3072 ) { - m_skel.setAng( 3072 ); +//!! m_actorGfx.setAng( 3072 ); m_reversed = true; } else { - m_skel.setAng( 1024 ); +//!! m_actorGfx.setAng( 1024 ); m_reversed = false; } @@ -1284,18 +1266,14 @@ void CNpcEnemy::render() if ( m_reversed ) { - m_skel.setZAng( ( m_heading + 2048 ) & 4095 ); +//!! m_actorGfx.setZAng( ( m_heading + 2048 ) & 4095 ); } else { - m_skel.setZAng( m_heading ); +//!! m_actorGfx.setZAng( m_heading ); } - m_skel.setPos( renderPos ); - m_skel.setFrame(m_frame); - m_skel.setAnimNo(m_animNo); - m_skel.Animate(this); - m_skel.Render(this); + m_actorGfx->Render(renderPos,m_frame,m_animNo,m_reversed); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/source/enemy/npc.h b/source/enemy/npc.h index 5b844a7e6..735157eab 100644 --- a/source/enemy/npc.h +++ b/source/enemy/npc.h @@ -20,7 +20,8 @@ #include "thing/thing.h" #endif -#include "Gfx/Skel.h" + +//#include "Gfx/Skel.h" #ifndef __ENEMY_NPCPATH_H__ #include "enemy\npcpath.h" @@ -101,8 +102,7 @@ protected: int m_frame; int m_animNo; - CSkel m_skel; - TPAGE_DESC m_actorTPage; + CActorGfx *m_actorGfx; DVECTOR m_drawOffset; }; @@ -500,8 +500,7 @@ protected: int m_frame; int m_animNo; - CSkel m_skel; - TPAGE_DESC m_actorTPage; + CActorGfx *m_actorGfx; DVECTOR m_drawOffset; virtual void collidedWith(CThing *_thisThing); diff --git a/source/enemy/npcdata.cpp b/source/enemy/npcdata.cpp index ee2c94c47..eb536c6b5 100644 --- a/source/enemy/npcdata.cpp +++ b/source/enemy/npcdata.cpp @@ -27,9 +27,9 @@ #include #endif -#ifndef __ANIM_SHARKSUB_HEADER__ -#include -#endif +//#ifndef __ANIM_SHARKSUB_HEADER__ +//#include +//#endif CNpcFriend::NPC_FRIEND_DATA CNpcFriend::m_data[NPC_FRIEND_UNIT_TYPE_MAX] = @@ -66,8 +66,8 @@ CNpcFriend::NPC_FRIEND_DATA CNpcFriend::m_data[NPC_FRIEND_UNIT_TYPE_MAX] = CNpcPlatform::NPC_PLATFORM_DATA CNpcPlatform::m_data[NPC_PLATFORM_TYPE_MAX] = { { // NPC_LINEAR_PLATFORM - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_PLATFORM_MOVEMENT_FIXED_PATH, 3, //512, @@ -79,8 +79,8 @@ CNpcPlatform::NPC_PLATFORM_DATA CNpcPlatform::m_data[NPC_PLATFORM_TYPE_MAX] = }, { // NPC_CIRCULAR_PLATFORM - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_PLATFORM_MOVEMENT_FIXED_CIRCULAR, 3, 128, @@ -91,8 +91,8 @@ CNpcPlatform::NPC_PLATFORM_DATA CNpcPlatform::m_data[NPC_PLATFORM_TYPE_MAX] = }, { // NPC_BUBBLE_PLATFORM - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_PLATFORM_MOVEMENT_BUBBLE, 3, 128, @@ -106,8 +106,8 @@ CNpcPlatform::NPC_PLATFORM_DATA CNpcPlatform::m_data[NPC_PLATFORM_TYPE_MAX] = CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = { { // NPC_FALLING_ITEM - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_FALLING_ITEM_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -123,8 +123,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_FISH_HOOK - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_FISH_HOOK, NPC_SENSOR_FISH_HOOK_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -140,8 +140,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_DUST_DEVIL - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_RETURNING_HAZARD, NPC_SENSOR_NONE, NPC_MOVEMENT_RETURNING_HAZARD, @@ -157,8 +157,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_PENDULUM - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_PENDULUM, NPC_SENSOR_NONE, NPC_MOVEMENT_PENDULUM, @@ -174,8 +174,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_FIREBALL - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_FIREBALL, NPC_SENSOR_NONE, NPC_MOVEMENT_FIREBALL, @@ -191,8 +191,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SAW_BLADE - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_RETURNING_HAZARD, NPC_SENSOR_NONE, NPC_MOVEMENT_RETURNING_HAZARD, @@ -208,8 +208,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SMALL_JELLYFISH_1 - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_JELLYFISH_USER_CLOSE, NPC_MOVEMENT_FIXED_PATH, @@ -225,8 +225,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SMALL_JELLYFISH_2 - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_JELLYFISH_USER_CLOSE, NPC_MOVEMENT_FIXED_PATH, @@ -242,8 +242,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_ANEMONE_1 - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_ANEMONE_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -259,8 +259,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_ANEMONE_2 - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_ANEMONE_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -276,8 +276,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_ANEMONE_3 - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_ANEMONE_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -293,8 +293,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SKELETAL_FISH - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_GENERIC_USER_VISIBLE, NPC_MOVEMENT_FIXED_PATH, @@ -310,8 +310,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_CLAM_JUMP - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSNAPUP, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_CLAM_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -327,8 +327,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_CLAM_STATIC - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSIDESNAP, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_CLAM_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -344,8 +344,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SQUID_DART - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH, @@ -361,8 +361,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_FISH_FOLK - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_FISH_FOLK, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH_WALK, @@ -378,8 +378,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_PRICKLY_BUG - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH_WALK, @@ -395,8 +395,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SEA_SNAKE - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH, @@ -412,8 +412,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_PUFFA_FISH - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH, @@ -429,8 +429,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_ANGLER_FISH - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH, @@ -446,8 +446,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_HERMIT_CRAB - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH_WALK, @@ -463,8 +463,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_MINE - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_STATIC, @@ -480,8 +480,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_BOOGER_MONSTER - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_BOOGER_MONSTER_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -497,8 +497,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SPIDER_CRAB - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_SPIDER_CRAB_USER_CLOSE, NPC_MOVEMENT_FIXED_PATH_WALK, @@ -514,8 +514,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_EYEBALL - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_EYEBALL_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -531,8 +531,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_BABY_OCTOPUS - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH, @@ -548,8 +548,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_ZOMBIE_FISH_FOLK - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_FISH_FOLK, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH_WALK, @@ -565,8 +565,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_NINJA_STARFISH - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NINJA_STARFISH_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -582,8 +582,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_GHOST - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_NONE, NPC_MOVEMENT_FIXED_PATH, @@ -599,8 +599,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_GHOST_PIRATE - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_GHOST_PIRATE, NPC_SENSOR_GHOST_PIRATE_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -616,8 +616,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_FLAMING_SKULL - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_FLAMING_SKULL, NPC_SENSOR_FLAMING_SKULL_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -633,8 +633,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SHARK_MAN - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_GENERIC_USER_VISIBLE, NPC_MOVEMENT_FIXED_PATH_WALK, @@ -650,8 +650,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_OIL_BLOB - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_DEFAULT, NPC_SENSOR_OIL_BLOB_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -667,8 +667,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SKULL_STOMPER - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_SKULL_STOMPER, NPC_SENSOR_SKULL_STOMPER_USER_CLOSE, NPC_MOVEMENT_STATIC, @@ -684,8 +684,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_MOTHER_JELLYFISH - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_MOTHER_JELLYFISH, NPC_SENSOR_NONE, NPC_MOVEMENT_MOTHER_JELLYFISH, @@ -701,8 +701,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_SUB_SHARK - ACTORS_SHARKSUB_A3D, - ANIM_SHARKSUB_SHARKSUBSWIM, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_SUB_SHARK, NPC_SENSOR_NONE, NPC_MOVEMENT_SUB_SHARK, @@ -718,8 +718,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_PARASITIC_WORM - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_PARASITIC_WORM, NPC_SENSOR_NONE, NPC_MOVEMENT_PARASITIC_WORM, @@ -735,8 +735,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_FLYING_DUTCHMAN - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_FLYING_DUTCHMAN, NPC_SENSOR_NONE, NPC_MOVEMENT_FLYING_DUTCHMAN, @@ -752,8 +752,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_IRON_DOGFISH - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_IRON_DOGFISH, NPC_SENSOR_IRON_DOGFISH_USER_CLOSE, NPC_MOVEMENT_IRON_DOGFISH, @@ -769,8 +769,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = }, { // NPC_PARASITIC_WORM_SEGMENT - ACTORS_CLAM_A3D, - ANIM_CLAM_CLAMSHUT, + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, NPC_INIT_PARASITIC_WORM_SEGMENT, NPC_SENSOR_NONE, NPC_MOVEMENT_STATIC, diff --git a/source/enemy/nsshark.cpp b/source/enemy/nsshark.cpp index 3a27ac6c1..f8c7a1240 100644 --- a/source/enemy/nsshark.cpp +++ b/source/enemy/nsshark.cpp @@ -28,7 +28,7 @@ #endif #ifndef __ANIM_SHARKSUB_HEADER__ -#include +#include #endif @@ -39,13 +39,13 @@ void CNpcEnemy::processSubSharkMovement( int _frames ) if ( playerXDistSqr + playerYDistSqr < 100 && !m_salvoCount ) { m_animPlaying = true; - m_animNo = ANIM_SHARKSUB_SHARKSUBSWIPE; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; } else { m_animPlaying = true; - m_animNo = ANIM_SHARKSUB_SHARKSUBSWIM; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; } } @@ -156,7 +156,7 @@ void CNpcEnemy::processCloseSubSharkAttack( int _frames ) if ( !m_animPlaying ) { m_animPlaying = true; - m_animNo = ANIM_SHARKSUB_SHARKSUBSPRINTOPEN; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; } @@ -165,7 +165,7 @@ void CNpcEnemy::processCloseSubSharkAttack( int _frames ) if ( playerXDistSqr < 10000 ) { m_animPlaying = true; - m_animNo = ANIM_SHARKSUB_SHARKSUBCHOMP; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; m_state = SUB_SHARK_SWALLOW; @@ -211,7 +211,7 @@ void CNpcEnemy::processCloseSubSharkAttack( int _frames ) if ( !m_animPlaying ) { m_animPlaying = true; - m_animNo = ANIM_SHARKSUB_SHARKSUBSWIM; + m_animNo = ANIM_CLAM_SIDESNAP; m_frame = 0; m_controlFunc = NPC_CONTROL_MOVEMENT; m_movementTimer = GameState::getOneSecondInFrames() * 8; diff --git a/source/game/game.cpp b/source/game/game.cpp index cc2f985b5..a1577e4fc 100644 --- a/source/game/game.cpp +++ b/source/game/game.cpp @@ -68,6 +68,7 @@ #include "sound\sound.h" #endif +#include "gfx\actor.h" //int GX=512/2; @@ -95,7 +96,6 @@ int CGameScene::s_levelFinished; CGameScene GameScene; -#include "gfx\actorpool.h" /*****************************************************************************/ void CGameScene::init() { diff --git a/source/gfx/actor.cpp b/source/gfx/actor.cpp index 5d2688f8c..bda249faf 100644 --- a/source/gfx/actor.cpp +++ b/source/gfx/actor.cpp @@ -5,9 +5,10 @@ #include "system\global.h" #include "mem\memory.h" #include "fileio\fileio.h" -#include "utils\quat.h" #include "gfx\actor.h" #include "utils\utils.h" +#include "utils\pak.h" +#include "gfx\prim.h" #include @@ -16,34 +17,101 @@ CActorGfx *CActorPool::ActorList[CActorPool::MAX_ACTORS]; /*****************************************************************************/ /*****************************************************************************/ +/*****************************************************************************/ +void CActorGfx::Init(FileEquate _Filename) +{ + CActorPool::GetActor(Filename); +} + /*****************************************************************************/ CActorGfx::CActorGfx(FileEquate _Filename) { +int i; Filename=_Filename; -/* ActorData=(sActorHdr*)CFileIO::loadFile(Filename); + SpriteBank=(sSpriteAnimBank*)CFileIO::loadFile(Filename); - for (int i=0; iAnimCount; i++) + SpriteBank->AnimList=(sSpriteAnim*) MakePtr(SpriteBank,(int)SpriteBank->AnimList); + SpriteBank->FrameList=(sSpriteFrame*) MakePtr(SpriteBank,(int)SpriteBank->FrameList); + SpriteBank->Palette=(u8*) MakePtr(SpriteBank,(int)SpriteBank->Palette); + +// FixUp AnimList + for (i=0; iAnimCount; i++) { - ActorData->AnimList[i].Move=(s32*) MakePtr(ActorData,(int)ActorData->AnimList[i].Move); - ActorData->AnimList[i].Anim=(AnimIdx*) MakePtr(ActorData,(int)ActorData->AnimList[i].Anim); + sSpriteAnim *ThisAnim=&SpriteBank->AnimList[i]; + ThisAnim->Anim=(u16*) MakePtr(SpriteBank,(int)ThisAnim->Anim); + } +// FixUp FrameList + for (i=0; iFrameCount; i++) + { + sSpriteFrame *ThisFrame=&SpriteBank->FrameList[i]; + ThisFrame->PAKSpr=(u8*) MakePtr(SpriteBank,(int)ThisFrame->PAKSpr); } - DAVE_DBGMSG("Nodes %i\n",ActorData->BoneCount); - DAVE_DBGMSG("Tris %i\n",ActorData->TriCount); - DAVE_DBGMSG("Vtx %i\n",ActorData->VtxCount); - DAVE_DBGMSG("Anims %i\n",ActorData->AnimCount); -*/ + DAVE_DBGMSG("Anims %i\n",SpriteBank->AnimCount); } /*****************************************************************************/ CActorGfx::~CActorGfx() { - MemFree(ActorData); + MemFree(SpriteBank); } /*****************************************************************************/ +int TPP=0; +int TPA=0; +int TPX=512; +int TPY=256; +int RR=128; +int GG=128; +int BB=128; +int XX=32; +int YY=32; +//int PW=16; void CActorGfx::Render(DVECTOR &Pos,int Anim,int Frame,bool FlipX) { +sSpriteAnim &ThisAnim=SpriteBank->AnimList[Anim]; +u16 FrameNo=ThisAnim.Anim[Frame]; +sSpriteFrame &ThisFrame=SpriteBank->FrameList[FrameNo]; +POLY_FT4 *Ft4; +u8 Buffer[256*256]; + + PAK_doUnpak(Buffer,ThisFrame.PAKSpr); +// clut +RECT Rect; + Rect.x=512; + Rect.y=511; + Rect.w=SpriteBank->ColorCount; + Rect.h=1; + LoadImage( &Rect, (u32*)SpriteBank->Palette); + +// Gfx + Rect.x=512; + Rect.y=256; + Rect.w=ThisFrame.W/4; + Rect.h=ThisFrame.H; + LoadImage( &Rect, (u32*)Buffer); + + Ft4=GetPrimFT4(); + setXYWH(Ft4,Pos.vx-ThisFrame.XOfs,Pos.vy-ThisFrame.YOfs,ThisFrame.W,ThisFrame.H); + setUVWH(Ft4,0,0,ThisFrame.W,ThisFrame.H); + setRGB0(Ft4,RR,GG,BB); + setTPage(Ft4,0,0,TPX,TPY); + setClut(Ft4, TPX, 511); + AddPrimToList(Ft4,0); + + Ft4=GetPrimFT4(); + setXYWH(Ft4,Pos.vx-ThisFrame.XOfs,Pos.vy-ThisFrame.YOfs,ThisFrame.W,ThisFrame.H); + Ft4->x0-=XX; + Ft4->x1-=XX; + Ft4->y0+=YY; + Ft4->y1+=YY; + + setUVWH(Ft4,0,0,ThisFrame.W,ThisFrame.H); + setRGB0(Ft4,0,0,0); + setSemiTrans(Ft4,1); + setTPage(Ft4,0,0,TPX,TPY); + setClut(Ft4, TPX, 511); + AddPrimToList(Ft4,0); } @@ -98,7 +166,7 @@ int Idx; Idx=FindFreeIdx(); ASSERT(Idx!=-1); - NewActor=new ("ActorPool") CActorPool(Filename); + NewActor=new ("ActorPool") CActorGfx(Filename); ActorList[Idx]=NewActor; return(NewActor); @@ -109,7 +177,7 @@ int Idx; /*****************************************************************************/ void CActorPool::DumpActor(FileEquate Filename) { -CActorPool *ThisActor; +CActorGfx *ThisActor; int Idx; // Is Loaded? diff --git a/source/gfx/actor.h b/source/gfx/actor.h index c62171432..09d320392 100644 --- a/source/gfx/actor.h +++ b/source/gfx/actor.h @@ -1,6 +1,6 @@ -/******************/ -/*** Actor Bank ***/ -/******************/ +/*******************/ +/*** Actor Stuff ***/ +/*******************/ #ifndef __ACTOR_HEADER__ #define __ACTOR_HEADER__ @@ -16,30 +16,30 @@ class CActorGfx { public: - CActorGfx(){}; - CActorGfx(FileEquate Filename); - ~CActorGfx(); +// CActorGfx(){}; + CActorGfx(FileEquate Filename); +virtual ~CActorGfx(); - void Render(DVECTOR &Pos,int Anim,int Frame,bool FlipX); - void Dump(); + void Init(FileEquate _Filename); + void Render(DVECTOR &Pos,int Anim,int Frame,bool FlipX); + void Dump(); - int getFrameCount() {return(0);} + int getFrameCount(int Anim) {return(SpriteBank->AnimList[Anim].FrameCount);} - FileEquate GetFilename() {return(Filename);} + FileEquate GetFilename() {return(Filename);} private: FileEquate Filename; - sSpriteAnimBank *ActorData; + sSpriteAnimBank *SpriteBank; }; /*****************************************************************************/ -class CActorBank +class CActorPool { public: enum { MAX_ACTORS=8, }; -// virtual ~ActorBank(){}; static void Init(); diff --git a/source/gfx/animtex.cpp b/source/gfx/animtex.cpp index 8e7738ec4..e4c2f2d48 100644 --- a/source/gfx/animtex.cpp +++ b/source/gfx/animtex.cpp @@ -151,11 +151,10 @@ int Time = GameState::getFramesSinceLast(); /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ +/* void CMoveTex::Add(sTexInfo &SrcFrame,sTexInfo &DstFrame) { int Idx; -// ASSERT(SrcFrame.w==DstFrame.w); -// ASSERT(SrcFrame.h==DstFrame.h); for (Idx=0; Idxx,ThisTex.Dst->y); ThisTex.Src=0; } +*/ } /*****************************************************************************/ diff --git a/source/gfx/animtex.h b/source/gfx/animtex.h index 5ffeae0d2..f6dc8d907 100644 --- a/source/gfx/animtex.h +++ b/source/gfx/animtex.h @@ -42,14 +42,14 @@ public: CMoveTex() { - Src=0; +// Src=0; } -static void Add(sTexInfo &SrcFrame,sTexInfo &DstFrame); +//static void Add(sTexInfo &SrcFrame,sTexInfo &DstFrame); static void MoveTex(); private: - sTexInfo *Src,*Dst; +// sTexInfo *Src,*Dst; static CMoveTex MoveTexList[]; }; diff --git a/source/player/player.cpp b/source/player/player.cpp index a1fe45e04..b643d29f4 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -234,8 +234,7 @@ void CPlayer::init() // m_onPlatform = false; // m_prevOnPlatform = false; - m_skel.Init(ACTORS_SPONGEBOB_A3D); - TPLoadTex(ACTORS_ACTOR_SPONGEBOB_TEX); + m_actorGfx=CActorPool::GetActor(ACTORS_SPONGEBOB_SBK); for(int i=0;im_mapEdge.vy-64)Pos.vy=m_mapEdge.vy-64; // Look around int pad=getPadInputHeld(); -if(PadGetDown(0)&PAD_CIRCLE) -{ - m_skel.blink(); -} - // Camera scroll.. if(m_cameraScrollDir==-1) @@ -454,33 +448,24 @@ m_fontBank->print(40,40,posBuf); // Render if(m_invincibleFrameCount==0||m_invincibleFrameCount&2) { -#ifdef __USER_paul__ -if(mouth!=-1) -{ - m_skel.setMouthTex(mouth); - mouth=-1; -} -if(eyes!=-1) -{ - m_skel.setEyeTex(eyes); - eyes=-1; -} -#endif //int xval=(255-(MAP2D_BLOCKSTEPSIZE*(-m_cameraScrollPos.vx>>8))); //DrawLine(xval-7,0,xval-7,255,0,128,255,0); //DrawLine(xval+7,0,xval+7,255,0,128,255,0); - SetGeomOffset(SCREEN_GEOM_CENTRE_X+m_playerScreenGeomPos.vx,SCREEN_GEOM_CENTRE_Y+m_playerScreenGeomPos.vy); - if(panim!=-1) - m_skel.setAnimNo(panim); - else - m_skel.setAnimNo(m_animNo); - m_skel.setFrame(m_animFrame); - m_skel.Animate(this); - m_skel.Render(this); +//!! SetGeomOffset(SCREEN_GEOM_CENTRE_X+m_playerScreenGeomPos.vx,SCREEN_GEOM_CENTRE_Y+m_playerScreenGeomPos.vy); +// if(panim!=-1) +// m_actorGfx.setAnimNo(panim); +// else +// m_actorGfx.setAnimNo(m_animNo); +//!! m_actorGfx.setFrame(m_animFrame); +//!! m_actorGfx.Animate(this); +//!! m_actorGfx.Render(this); +//!! m_currentPlayerModeClass->render(); +//!! SetGeomOffset(SCREEN_GEOM_CENTRE_X,SCREEN_GEOM_CENTRE_Y); + DVECTOR Pos={256,128}; + m_actorGfx->Render(Pos,m_animNo,m_animFrame,0); m_currentPlayerModeClass->render(); - SetGeomOffset(SCREEN_GEOM_CENTRE_X,SCREEN_GEOM_CENTRE_Y); } @@ -634,7 +619,7 @@ void CPlayer::setFacing(int _facing) if(m_facing!=_facing) { m_facing=_facing; - m_skel.setDir(_facing); +//!! m_actorGfx.setDir(_facing); } } @@ -687,7 +672,7 @@ void CPlayer::setAnimFrame(int _animFrame) } int CPlayer::getAnimFrameCount() { - return m_skel.getFrameCount(m_animNo); + return m_actorGfx->getFrameCount(m_animNo); } int CPlayer::getAnimNo() { diff --git a/source/player/player.h b/source/player/player.h index e798cb253..9f0f50d0d 100644 --- a/source/player/player.h +++ b/source/player/player.h @@ -22,9 +22,8 @@ #include "thing/thing.h" #endif -#ifndef __GFX_SKELSPNG_H__ -#include "gfx/skelspng.h" -#endif +#include "gfx/actor.h" + #ifndef __DATA_STRUCTS_HEADER__ #include @@ -189,7 +188,7 @@ private: static const AnimSfx s_animSfx[]; int m_animFrame; int m_animNo; - CSkelSpongeBob m_skel; + CActorGfx *m_actorGfx; DVECTOR m_playerScreenGeomPos; DVECTOR m_cameraPos; diff --git a/source/player/pmbubble.cpp b/source/player/pmbubble.cpp index 320ea0081..3c346f862 100644 --- a/source/player/pmbubble.cpp +++ b/source/player/pmbubble.cpp @@ -123,7 +123,8 @@ void CPlayerModeBubbleMixture::think() // Blowing? if(m_blowing) { - m_player->setAnimNo(ANIM_SPONGEBOB_KARATE); +//!! m_player->setAnimNo(ANIM_SPONGEBOB_KARATE); + m_player->setAnimNo(ANIM_SPONGEBOB_FIRE); m_player->setAnimFrame(m_blowFrame); m_blowFrame++; if(m_blowFrame>=m_player->getAnimFrameCount()) diff --git a/source/player/pmchop.cpp b/source/player/pmchop.cpp index 77632ecaf..11ff0af94 100644 --- a/source/player/pmchop.cpp +++ b/source/player/pmchop.cpp @@ -84,7 +84,8 @@ void CPlayerModeChop::think() // Chopping? if(m_chopping) { - m_player->setAnimNo(ANIM_SPONGEBOB_KARATE); +//!! m_player->setAnimNo(ANIM_SPONGEBOB_KARATE); + m_player->setAnimNo(ANIM_SPONGEBOB_FIRE); m_player->setAnimFrame(m_chopFrame); m_chopFrame++; if(m_chopFrame>=m_player->getAnimFrameCount()) diff --git a/source/player/pmnet.cpp b/source/player/pmnet.cpp index b67397a2a..3ffc71724 100644 --- a/source/player/pmnet.cpp +++ b/source/player/pmnet.cpp @@ -103,7 +103,8 @@ void CPlayerModeNet::think() // Netting? if(m_netting) { - m_player->setAnimNo(ANIM_SPONGEBOB_KARATE); +//!!! m_player->setAnimNo(ANIM_SPONGEBOB_KARATE); + m_player->setAnimNo(ANIM_SPONGEBOB_FIRE); m_player->setAnimFrame(m_netFrame); m_netFrame++; if(m_netFrame>=m_player->getAnimFrameCount()) diff --git a/source/player/psfall.cpp b/source/player/psfall.cpp index 61359ab50..3144374bf 100644 --- a/source/player/psfall.cpp +++ b/source/player/psfall.cpp @@ -62,7 +62,8 @@ ---------------------------------------------------------------------- */ void CPlayerStateFall::enter(CPlayerModeBase *_playerMode) { - _playerMode->setAnimNo(ANIM_SPONGEBOB_HOVER); +// _playerMode->setAnimNo(ANIM_SPONGEBOB_HOVER); + _playerMode->setAnimNo(ANIM_SPONGEBOB_FIRE); } diff --git a/source/player/psidle.cpp b/source/player/psidle.cpp index cb3f8744d..194a4afe7 100644 --- a/source/player/psidle.cpp +++ b/source/player/psidle.cpp @@ -257,12 +257,14 @@ void CPlayerStateIdle::setNextIdleAnim(CPlayerModeBase *_playerMode) static IdleAnims s_unarmedIdleAnims[]= { // start frame loop frame end frame loop count - { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 4 }, // default - { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 10 }, - { ANIM_SPONGEBOB_FACEFRONT, ANIM_SPONGEBOB_IDLEHOOLA, ANIM_SPONGEBOB_FACEBACK, 5 }, - { ANIM_SPONGEBOB_FACEFRONT, ANIM_SPONGEBOB_IDLEWIGGLEARM, ANIM_SPONGEBOB_FACEBACK, 5 }, - { -1, ANIM_SPONGEBOB_IDLELOOK, -1, 1 }, - { -1, ANIM_SPONGEBOB_IDLEWIND, -1, 1 }, +//!! { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 4 }, // default +//!! { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 10 }, +//!! { ANIM_SPONGEBOB_FACEFRONT, ANIM_SPONGEBOB_IDLEHOOLA, ANIM_SPONGEBOB_FACEBACK, 5 }, +//!! { ANIM_SPONGEBOB_FACEFRONT, ANIM_SPONGEBOB_IDLEWIGGLEARM, ANIM_SPONGEBOB_FACEBACK, 5 }, +//!! { -1, ANIM_SPONGEBOB_IDLELOOK, -1, 1 }, +//!! { -1, ANIM_SPONGEBOB_IDLEWIND, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEHOOLA, -1, 4 }, // default + }; static int s_numUnarmedIdleAnims=sizeof(s_unarmedIdleAnims)/sizeof(IdleAnims); IdleAnims *CPlayerStateUnarmedIdle::getIdleAnimsDb(int _animNo) @@ -285,9 +287,10 @@ int CPlayerStateUnarmedIdle::getNumIdleAnims() static IdleAnims s_coralBlowerIdleAnims[]= { // start frame loop frame end frame loop count - { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 4 }, // default - { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 10 }, - { -1, ANIM_SPONGEBOB_IDLELOOK, -1, 1 }, +//!! { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 4 }, // default +//!! { -1, ANIM_SPONGEBOB_IDLEBREATHE, -1, 10 }, +//!! { -1, ANIM_SPONGEBOB_IDLELOOK, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEHOOLA, -1, 1 }, }; static int s_numCoralBlowerIdleAnims=sizeof(s_coralBlowerIdleAnims)/sizeof(IdleAnims); IdleAnims *CPlayerStateCoralBlowerIdle::getIdleAnimsDb(int _animNo) diff --git a/source/player/psjump.cpp b/source/player/psjump.cpp index f96740132..9a5002730 100644 --- a/source/player/psjump.cpp +++ b/source/player/psjump.cpp @@ -67,7 +67,8 @@ ---------------------------------------------------------------------- */ void CPlayerStateJump::enter(CPlayerModeBase *_playerMode) { - _playerMode->setAnimNo(ANIM_SPONGEBOB_HOVER); +//!! _playerMode->setAnimNo(ANIM_SPONGEBOB_HOVER); + _playerMode->setAnimNo(ANIM_SPONGEBOB_FIRE); m_jumpFrames=0; _playerMode->jump(); diff --git a/source/player/psrun.cpp b/source/player/psrun.cpp index 3b13da8c5..7e60f66a7 100644 --- a/source/player/psrun.cpp +++ b/source/player/psrun.cpp @@ -71,7 +71,8 @@ void CPlayerStateRun::enter(CPlayerModeBase *_playerMode) } else { - _playerMode->setAnimNo(ANIM_SPONGEBOB_RUNSTART); +//!! _playerMode->setAnimNo(ANIM_SPONGEBOB_RUNSTART); + _playerMode->setAnimNo(ANIM_SPONGEBOB_FIRE); } if(controlHeld&PI_LEFT) @@ -126,7 +127,8 @@ void CPlayerStateRun::think(CPlayerModeBase *_playerMode) _playerMode->setState(STATE_IDLE); if(m_numberOfTimeAnimHasLooped>=4) { - _playerMode->setAnimNo(ANIM_SPONGEBOB_RUNSTOP); +//!! _playerMode->setAnimNo(ANIM_SPONGEBOB_RUNSTOP); + _playerMode->setAnimNo(ANIM_SPONGEBOB_FIRE); } return; } diff --git a/source/projectl/projectl.h b/source/projectl/projectl.h index 88be24e8e..6284d2a89 100644 --- a/source/projectl/projectl.h +++ b/source/projectl/projectl.h @@ -18,8 +18,6 @@ #include "thing/thing.h" #endif -#include "Gfx/Skel.h" - /*****************************************************************************/ class CProjectile : public CEnemyProjectileThing diff --git a/source/system/main.cpp b/source/system/main.cpp index 179077db9..1b9106976 100644 --- a/source/system/main.cpp +++ b/source/system/main.cpp @@ -11,7 +11,7 @@ #include "gfx\prim.h" #include "gfx\tpage.h" #include "utils\utils.h" -#include "gfx\actorpool.h" +#include "gfx\actor.h" #include "system\gp.h" @@ -117,9 +117,7 @@ void InitSystem() // reordered to reduce black screen (hope all is well CBubicleFactory::init(); - CActorPool::AddActor(ACTORS_SPONGEBOB_A3D); -// CAnimDB::Init(); -// CAnimDB::Load(ACTORS_SPONGEBOB_ABK); + CActorPool::AddActor(ACTORS_SPONGEBOB_SBK); #if defined(__DEBUG_MEM__) DebugMemFontInit(); diff --git a/source/utils/pak.cpp b/source/utils/pak.cpp index 40da81b94..1cb833459 100644 --- a/source/utils/pak.cpp +++ b/source/utils/pak.cpp @@ -1,33 +1,7 @@ -/*========================================================================= - - PAK.CPP - - Author: Gary Liddon @ Climax (from work by Nick Pelling && Carl Muller) - Created: - Project: Diablo PSX - Purpose: PAK decompress \ compress code - - Copyright (c) 1997 Climax Development Ltd - -===========================================================================*/ - -/*---------------------------------------------------------------------- - Includes - -------- */ - -/* Std Lib - ------- */ - -/* Glib - ---- */ - -/* Local - ----- */ +#include "system\global.h" #include -#include "pak.h" +#include "utils\pak.h" -/* Graphics - -------- */ /*---------------------------------------------------------------------- Tyepdefs && Defines @@ -44,7 +18,7 @@ struct Block { int data[128]; - BOOL blockrep; + bool blockrep; int blocksize; int blockoffset; @@ -115,7 +89,7 @@ void Block::writeBlock(void) } // Get ready for next block - blockrep = FALSE; + blockrep = false; blockoffset = 0; blocksize = -1; } @@ -158,7 +132,7 @@ int lowLevelPak(u8 * Dest,u8 const * buffer,int insize,Block & theblock) theblock.Dest=Dest; theblock.outsize=0; - theblock.blockrep=FALSE; + theblock.blockrep=false; BACKDIST = -128; FORWARDDIST = 255; @@ -244,7 +218,7 @@ int lowLevelPak(u8 * Dest,u8 const * buffer,int insize,Block & theblock) { /* We have found a match */ theblock.writeBlock(); - theblock.blockrep = TRUE; + theblock.blockrep = true; theblock.blocksize = bestlength; theblock.blockoffset = bestoffset; inpos += bestlength; @@ -257,7 +231,7 @@ int lowLevelPak(u8 * Dest,u8 const * buffer,int insize,Block & theblock) /* Terminate file */ - theblock.blockrep = TRUE; + theblock.blockrep = true; theblock.blocksize = 0; theblock.blockoffset = 0; theblock.writeBlock(); diff --git a/source/utils/pak.h b/source/utils/pak.h index f3f5df83f..b1987b8a1 100644 --- a/source/utils/pak.h +++ b/source/utils/pak.h @@ -1,61 +1,12 @@ -/*========================================================================= - - PAK.H - - Author: Carl Muller (algorithm Nick Pelling && Carl Muller) - Created: - Project: - Purpose: - - Copyright (c) 1997 Climax Development Ltd - -===========================================================================*/ #ifndef __PAK_PAK_H__ #define __PAK_PAK_H__ -/*---------------------------------------------------------------------- - Includes - -------- */ - -/* Std Lib - ------- */ - -/* Glib - ---- */ -#include - -/* Local - ----- */ - -/*---------------------------------------------------------------------- - Tyepdefs && Defines - ------------------- */ - -/*---------------------------------------------------------------------- - Structure defintions - -------------------- */ - -/*---------------------------------------------------------------------- - Globals - ------- */ - -/* Vars - ---- */ - -/* Data - ---- */ - -/* Functions - --------- */ int PAK_doPak(u8 * Dest,u8 const * source,int insize); int PAK_doUnpak(u8 * Dest,u8 const * Source); int PAK_findPakSize(u8 const * souce,int insize); int PAK_getLastAmountOfDataRead(void); -/*---------------------------------------------------------------------- */ -#endif /* __PAK_PAK_H__ */ -/*=========================================================================== - end */ +#endif diff --git a/source/utils/utils.h b/source/utils/utils.h index 139e182fa..6163ba507 100644 --- a/source/utils/utils.h +++ b/source/utils/utils.h @@ -580,6 +580,7 @@ s32 Dpx, Dpy, Dpz; return (Dpx + Dpy + Dpz); } /*****************************************************************************/ +/* inline void QuatSlerp(sQuat *s, sQuat *d, int t, sQuat *o) { s32 xx, yy, zz, ww; @@ -627,8 +628,9 @@ sQuat to; gte_LoadAverageShort12(s, &to, c0, c1, o); o->vw = ((c0 * s->vw) + (c1 * to.vw)) >> 12; } - +*/ /*****************************************************************************/ +/* static const s32 DeltaErr = 1000; inline void NormalizeQuaternion(sQuat *o) { @@ -646,5 +648,5 @@ s32 t = (u32)((s32)o->vx*o->vx+(s32)o->vy*o->vy+(s32)o->vz*o->vz+(s32)o->vw*o->v } } } - +*/ #endif \ No newline at end of file diff --git a/tools/Data/bin/MkActor.exe b/tools/Data/bin/MkActor.exe new file mode 100644 index 0000000000000000000000000000000000000000..ddab7141f5c2108a68cdc8f1b47b0ea4dfdc70ea GIT binary patch literal 86016 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

OY@N(rffNHFFAo+%7%*oC8V%&Eq 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 G;Qs(dXCn~+ literal 0 HcmV?d00001 diff --git a/tools/Data/bin/MkLevel.exe b/tools/Data/bin/MkLevel.exe index 724ef4901ac6334bf6344d26bf13580cda3bc12e..855501bb2257c8613296c53e437a608a96d2247d 100644 GIT binary patch delta 78669 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 delta 65379 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