00001
00002
00003 #ifndef CAMEFormatH
00004 #define CAMEFormatH
00005
00006 #include "console.h"
00007 #include "defines.h"
00008 #include <fstream>
00009
00010 using namespace std;
00011
00012 namespace zak {
00013
00021 class ZAKENGINE_API ameBlockInfo
00022
00023 {
00024 friend class ameHeader;
00025 friend class Map;
00026
00027 void Clear(unsigned short usTileDef);
00028
00029 public:
00030
00034 unsigned short sTileNum;
00035
00039 unsigned char ucFlags;
00040
00044 char szTag1[8];
00045
00049 char szTag2[8];
00050
00054 float fValues[4];
00055
00056
00063 short sTagCode;
00064
00065
00066 ameBlockInfo();
00067
00068 ~ameBlockInfo();
00069
00070
00071 };
00072
00073
00082 class ZAKENGINE_API ameHeader
00083
00084 {
00085
00086
00087 unsigned long ulMagic;
00088
00089 unsigned short usVersion;
00090
00091
00092 public:
00096 char szMapName[48];
00097
00098 private:
00099
00100
00101
00102 char szGameTemplateName[16];
00103
00104 public:
00105
00109 unsigned char ucFlags;
00110
00114 char szMapTag1[64];
00115
00119 char szMapTag2[64];
00120
00124 float fValues[4];
00125
00126 private:
00127
00128
00129
00130 char szDefBitmapFile[128];
00131
00132 unsigned long ulColorKey;
00133
00134 unsigned short usBitmapWidth;
00135
00136 unsigned short usBitmapHeight;
00137
00138 unsigned short usTileWidth;
00139
00140 unsigned short usTileHeight;
00141
00142 unsigned short usTileCountX;
00143
00144 unsigned short usTileCountY;
00145
00146 unsigned short usDefTileBlock;
00147
00148 friend class Map;
00149
00150 public:
00151
00155 ameBlockInfo * pbiBlock;
00156
00157
00158
00159
00160 public:
00161
00165 ameHeader();
00166
00170 ~ameHeader();
00171
00175 void Clear();
00176
00182 bool ReadFile(const char * pszFile);
00183
00189 bool WriteFile(const char * pszFile);
00190
00197 bool Init(unsigned short usCountX, unsigned short usCountY);
00198 };
00199
00200 }
00201
00202 #endif