diff --git a/source/gfx/actor.cpp b/source/gfx/actor.cpp new file mode 100644 index 000000000..5d2688f8c --- /dev/null +++ b/source/gfx/actor.cpp @@ -0,0 +1,122 @@ +/******************/ +/*** Actor Bank ***/ +/******************/ + +#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 + +/*****************************************************************************/ +CActorGfx *CActorPool::ActorList[CActorPool::MAX_ACTORS]; + +/*****************************************************************************/ +/*****************************************************************************/ +/*****************************************************************************/ +CActorGfx::CActorGfx(FileEquate _Filename) +{ + Filename=_Filename; +/* ActorData=(sActorHdr*)CFileIO::loadFile(Filename); + + for (int 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); + } + + 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); +*/ +} + +/*****************************************************************************/ +CActorGfx::~CActorGfx() +{ + MemFree(ActorData); +} + +/*****************************************************************************/ +void CActorGfx::Render(DVECTOR &Pos,int Anim,int Frame,bool FlipX) +{ + +} + +/*****************************************************************************/ +void CActorGfx::Dump() +{ +} + +/*****************************************************************************/ +/*****************************************************************************/ +/*****************************************************************************/ +void CActorPool::Init() +{ + for (int i=0; iGetFilename()==Filename) return(i); + } + return(-1); +} + +/*****************************************************************************/ +int CActorPool::FindFreeIdx() +{ + for (int i=0; i + +#ifndef __BigLump_H__ +#include +#endif + +/*****************************************************************************/ +class CActorGfx +{ +public: + CActorGfx(){}; + CActorGfx(FileEquate Filename); + ~CActorGfx(); + + void Render(DVECTOR &Pos,int Anim,int Frame,bool FlipX); + void Dump(); + + int getFrameCount() {return(0);} + + FileEquate GetFilename() {return(Filename);} +private: + FileEquate Filename; + sSpriteAnimBank *ActorData; +}; + +/*****************************************************************************/ +class CActorBank +{ +public: + enum + { + MAX_ACTORS=8, + }; +// virtual ~ActorBank(){}; + +static void Init(); + +static void AddActor(FileEquate Filename) {GetActor(Filename);} +static CActorGfx *GetActor(FileEquate Filename); +static void DumpActor(FileEquate Filename); + +private: +static int FindIdx(FileEquate Filename); +static int FindFreeIdx(); + +static CActorGfx *ActorList[MAX_ACTORS]; + +}; + +/*****************************************************************************/ + +#endif \ No newline at end of file