176 lines
3.9 KiB
C++
176 lines
3.9 KiB
C++
![]() |
#ifndef _sprchunk_hpp
|
||
|
#define _sprchunk_hpp
|
||
|
#include "chunk.hpp"
|
||
|
#include "Chnktype.hpp"
|
||
|
//#include "stdafx.h"
|
||
|
struct Frame
|
||
|
{
|
||
|
int Texture;
|
||
|
int CentreX;
|
||
|
int CentreY;
|
||
|
int UVCoords[4][2];
|
||
|
#if cencon
|
||
|
int OldTexNum;
|
||
|
#endif
|
||
|
};
|
||
|
|
||
|
class Sprite_Header_Chunk : public Chunk_With_Children
|
||
|
{
|
||
|
public:
|
||
|
Sprite_Header_Chunk(Chunk_With_Children* const parent,const char*,size_t const);
|
||
|
Sprite_Header_Chunk(const char* file_name, Chunk_With_Children * parent = NULL);
|
||
|
Sprite_Header_Chunk()
|
||
|
: Chunk_With_Children(0,"SPRIHEAD"){}
|
||
|
Sprite_Header_Chunk(Chunk_With_Children* parent)
|
||
|
: Chunk_With_Children(parent,"SPRIHEAD"){}
|
||
|
|
||
|
write_file(const char* fname);
|
||
|
virtual BOOL output_chunk(HANDLE &hand);
|
||
|
#if cencon
|
||
|
virtual void post_input_processing();
|
||
|
#endif
|
||
|
|
||
|
};
|
||
|
|
||
|
class PC_Sprite_Chunk : public Chunk_With_Children
|
||
|
{
|
||
|
public:
|
||
|
PC_Sprite_Chunk(Sprite_Header_Chunk* parent,const char*,size_t);
|
||
|
PC_Sprite_Chunk(Sprite_Header_Chunk* parent)
|
||
|
: Chunk_With_Children(parent,"SPRITEPC"){}
|
||
|
};
|
||
|
|
||
|
class Saturn_Sprite_Chunk : public Chunk_With_Children
|
||
|
{
|
||
|
public:
|
||
|
Saturn_Sprite_Chunk(Sprite_Header_Chunk* parent,const char*,size_t);
|
||
|
Saturn_Sprite_Chunk(Sprite_Header_Chunk* parent)
|
||
|
: Chunk_With_Children(parent,"SPRITESA"){}
|
||
|
};
|
||
|
class Playstation_Sprite_Chunk : public Chunk_With_Children
|
||
|
{
|
||
|
public:
|
||
|
Playstation_Sprite_Chunk(Sprite_Header_Chunk* parent,const char*,size_t);
|
||
|
Playstation_Sprite_Chunk(Sprite_Header_Chunk* parent)
|
||
|
: Chunk_With_Children(parent,"SPRITEPS"){}
|
||
|
};
|
||
|
|
||
|
|
||
|
#define SpriteActionFlag_FlipSecondSide 0x00000001 //for actions where only right facing views are available
|
||
|
class Sprite_Action_Chunk : public Chunk
|
||
|
{
|
||
|
public:
|
||
|
Sprite_Action_Chunk(Chunk_With_Children* parent,const char*,size_t);
|
||
|
Sprite_Action_Chunk(Chunk_With_Children* parent);
|
||
|
~Sprite_Action_Chunk();
|
||
|
|
||
|
virtual BOOL output_chunk (HANDLE &hand);
|
||
|
|
||
|
virtual size_t size_chunk();
|
||
|
|
||
|
virtual void fill_data_block(char* data_start);
|
||
|
|
||
|
public:
|
||
|
|
||
|
int Action;
|
||
|
int NumYaw;
|
||
|
int NumPitch;
|
||
|
int NumFrames;
|
||
|
Frame*** FrameList;
|
||
|
int Flags;
|
||
|
int FrameTime;
|
||
|
|
||
|
};
|
||
|
#define SpriteFlag_NoLight 0x00000001
|
||
|
#define SpriteFlag_SemiTrans 0x00000002 //for playstation
|
||
|
class Sprite_Size_Chunk : public Chunk
|
||
|
{
|
||
|
public:
|
||
|
Sprite_Size_Chunk(Chunk_With_Children* parent,const char*,size_t);
|
||
|
Sprite_Size_Chunk(Chunk_With_Children* parent);
|
||
|
|
||
|
virtual BOOL output_chunk (HANDLE &hand);
|
||
|
|
||
|
virtual size_t size_chunk();
|
||
|
|
||
|
virtual void fill_data_block(char* data_start);
|
||
|
|
||
|
public:
|
||
|
|
||
|
double scale;
|
||
|
double maxy;
|
||
|
double maxx;
|
||
|
int radius;
|
||
|
int Flags ;
|
||
|
};
|
||
|
|
||
|
class Sprite_Extent_Chunk : public Chunk
|
||
|
{
|
||
|
public:
|
||
|
Sprite_Extent_Chunk(Chunk_With_Children* parent,const char*,size_t);
|
||
|
Sprite_Extent_Chunk(Chunk_With_Children* parent);
|
||
|
|
||
|
|
||
|
virtual size_t size_chunk();
|
||
|
|
||
|
virtual void fill_data_block(char* data_start);
|
||
|
|
||
|
public:
|
||
|
|
||
|
double minx;
|
||
|
double maxx;
|
||
|
double miny;
|
||
|
double maxy;
|
||
|
int spare1,spare2;
|
||
|
};
|
||
|
|
||
|
class Sprite_Version_Number_Chunk : public Chunk
|
||
|
{
|
||
|
public:
|
||
|
Sprite_Version_Number_Chunk(Chunk_With_Children* parent,const char*,size_t);
|
||
|
Sprite_Version_Number_Chunk(Chunk_With_Children* parent);
|
||
|
|
||
|
virtual BOOL output_chunk (HANDLE &hand);
|
||
|
|
||
|
virtual size_t size_chunk();
|
||
|
|
||
|
virtual void fill_data_block(char* data_start);
|
||
|
|
||
|
public:
|
||
|
int version_num;
|
||
|
};
|
||
|
|
||
|
class Sprite_Bitmap_Scale_Chunk : public Chunk
|
||
|
{
|
||
|
public :
|
||
|
Sprite_Bitmap_Scale_Chunk(Chunk_With_Children* parent,const char*,size_t);
|
||
|
Sprite_Bitmap_Scale_Chunk(Chunk_With_Children* parent);
|
||
|
~Sprite_Bitmap_Scale_Chunk();
|
||
|
|
||
|
virtual size_t size_chunk();
|
||
|
virtual void fill_data_block(char* data_start);
|
||
|
|
||
|
int NumBitmaps;
|
||
|
float* Scale;
|
||
|
};
|
||
|
|
||
|
class Sprite_Bitmap_Centre_Chunk : public Chunk
|
||
|
{
|
||
|
public :
|
||
|
Sprite_Bitmap_Centre_Chunk(Chunk_With_Children* parent,const char*,size_t);
|
||
|
Sprite_Bitmap_Centre_Chunk(Chunk_With_Children* parent);
|
||
|
~Sprite_Bitmap_Centre_Chunk();
|
||
|
|
||
|
virtual size_t size_chunk();
|
||
|
virtual void fill_data_block(char* data_start);
|
||
|
|
||
|
int NumBitmaps;
|
||
|
int* CentreX;
|
||
|
int* CentreY;
|
||
|
int* OffsetX;
|
||
|
int* OffsetY;
|
||
|
int spare;
|
||
|
|
||
|
};
|
||
|
#endif
|