avp/3dc/win95/Sprchunk.hpp
Rebellion Developments 218ca90543 Import Aliens vs Predator - Gold (Build 116)
Source code release, imported from:
https://www.gamefront.com/games/aliens-vs-predator-3/file/avp-gold-complete-source-code

All text files were converted to Unix format.
2019-08-19 05:45:17 +02:00

175 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