summaryrefslogtreecommitdiff
path: root/src/win95/sprchunk.hpp
diff options
context:
space:
mode:
authorSteven Fuller <relnev@icculus.org>2001-07-01 00:55:22 +0000
committerPatryk Obara <dreamer.tan@gmail.com>2019-08-20 02:09:04 +0200
commit2186d5f3f95cd74a070a490d899291648d58667a (patch)
tree55241a1afa3e1a22e0b6593a8dead0b703800f44 /src/win95/sprchunk.hpp
parent218ca90543758a20ac326e444ca0643174ca7384 (diff)
Initial revision
Diffstat (limited to 'src/win95/sprchunk.hpp')
-rw-r--r--src/win95/sprchunk.hpp175
1 files changed, 175 insertions, 0 deletions
diff --git a/src/win95/sprchunk.hpp b/src/win95/sprchunk.hpp
new file mode 100644
index 0000000..de0fff7
--- /dev/null
+++ b/src/win95/sprchunk.hpp
@@ -0,0 +1,175 @@
+#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