SBSPSS/source/gfx/actor.h

80 lines
1.7 KiB
C
Raw Normal View History

2001-04-01 22:22:49 +02:00
/*******************/
/*** Actor Stuff ***/
/*******************/
2001-04-01 09:22:30 +02:00
#ifndef __ACTOR_HEADER__
#define __ACTOR_HEADER__
#include "system\global.h"
#include <dstructs.h>
#ifndef __BigLump_H__
#include <biglump.h>
#endif
/*****************************************************************************/
class CActorGfx
{
public:
2001-04-02 00:55:15 +02:00
CActorGfx(FileEquate Filename,int No);
2001-04-01 22:22:49 +02:00
virtual ~CActorGfx();
2001-04-01 09:22:30 +02:00
2001-04-01 22:22:49 +02:00
void Init(FileEquate _Filename);
2001-04-01 23:38:59 +02:00
POLY_FT4 *Render(DVECTOR &Pos,int Anim,int Frame,bool FlipX=false,bool FlipY=false,bool Shadow=false);
2001-04-01 22:22:49 +02:00
void Dump();
2001-04-01 09:22:30 +02:00
2001-04-01 22:22:49 +02:00
int getFrameCount(int Anim) {return(SpriteBank->AnimList[Anim].FrameCount);}
2001-04-01 23:38:59 +02:00
FileEquate GetFilename() {return(Filename);}
2001-04-02 22:24:58 +02:00
2001-04-01 09:22:30 +02:00
private:
2001-04-01 23:38:59 +02:00
void SetUpFT4(POLY_FT4 *Ft4,sSpriteFrame *ThisFrame,int X,int Y,bool XFlip,bool YFlip);
2001-04-02 20:25:09 +02:00
sSpriteFrame *GetFrame(int Anim,int Frame);
2001-04-01 23:38:59 +02:00
2001-04-01 09:22:30 +02:00
FileEquate Filename;
2001-04-01 22:22:49 +02:00
sSpriteAnimBank *SpriteBank;
2001-04-02 00:55:15 +02:00
int ActorNo; // qwik bodge for mo :oP
int TexX,TexY;
int ClutX,ClutY;
2001-04-01 09:22:30 +02:00
};
/*****************************************************************************/
2001-04-01 22:22:49 +02:00
class CActorPool
2001-04-01 09:22:30 +02:00
{
public:
enum
{
MAX_ACTORS=8,
2001-04-02 20:25:09 +02:00
MAX_ACTOR_SIZE=128*128,
2001-04-01 09:22:30 +02:00
};
2001-04-04 18:51:04 +02:00
enum ACTOR_TYPE
{
ACTOR_PLAYER = 0,
ACTOR_FRIEND_NPC = 1,
ACTOR_ENEMY_NPC,
ACTOR_UNKNOWN,
};
2001-04-01 09:22:30 +02:00
static void Init();
static void AddActor(FileEquate Filename) {GetActor(Filename);}
static CActorGfx *GetActor(FileEquate Filename);
2001-04-03 23:28:56 +02:00
static void DumpActors();
2001-04-01 09:22:30 +02:00
2001-04-02 20:25:09 +02:00
static u8 UnpackBuffer[MAX_ACTOR_SIZE];
2001-04-04 18:51:04 +02:00
static ACTOR_TYPE getActorType( int actorNum ) {return actorType[actorNum];}
2001-04-01 09:22:30 +02:00
private:
static int FindIdx(FileEquate Filename);
static int FindFreeIdx();
static CActorGfx *ActorList[MAX_ACTORS];
2001-04-04 18:51:04 +02:00
static ACTOR_TYPE actorType[38];
2001-04-01 09:22:30 +02:00
};
/*****************************************************************************/
#endif