Mercurial > mm7
diff Engine/Tables/TileFrameTable.h @ 2499:68cdef6879a0
engine folder
author | Ritor1 |
---|---|
date | Fri, 19 Sep 2014 02:57:42 +0600 |
parents | |
children | 1bcadc6dd203 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Engine/Tables/TileFrameTable.h Fri Sep 19 02:57:42 2014 +0600 @@ -0,0 +1,78 @@ +#pragma once + + + +/* 327 */ +enum TILE_DESC_FLAGS +{ + TILE_DESC_BURNS = 0x1, + TILE_DESC_WATER = 0x2, + TILE_DESC_BLOCK = 0x4, + TILE_DESC_REPULSE = 0x8, + TILE_DESC_FLAT = 0x10, + TILE_DESC_WAVY = 0x20, + TILE_DESC_DONT_DRAW = 0x40, + TILE_DESC_WATER_2 = 0x100, + TILE_DESC_TRANSITION = 0x200, + TILE_DESC_SCROLL_DOWN = 0x400, + TILE_DESC_SCROLL_UP = 0x800, + TILE_DESC_SCROLL_LEFT = 0x1000, + TILE_DESC_SCROLL_RIGHT = 0x2000, +}; + +#pragma warning( push ) +#pragma warning( disable: 4341 ) +enum Tileset: signed __int16 +{ + Tileset_Grass = 0, + Tileset_Snow = 1, + Tilset_Desert = 2, + Tileset_3 = 3, + Tileset_Dirt = 4, + Tileset_Water = 5, + Tileset_6 = 6, + Tileset_Swamp = 7, + Tileset_8 = 8, + Tileset_9 = 9, + Tileset_RoadGrassCobble = 10, + Tileset_NULL =-1 +}; +#pragma warning( pop ) + +/* 48 */ +#pragma pack(push, 1) +struct TileDesc //26 +{ + char pTileName[16]; + unsigned __int16 uTileID; + unsigned __int16 uBitmapID; + Tileset tileset; + unsigned __int16 uSection; + unsigned __int16 uAttributes; +}; +#pragma pack(pop) + +/* 49 */ +#pragma pack(push, 1) +struct TileTable +{ + //----- (00487E13) -------------------------------------------------------- + TileTable() + { + this->pTiles = nullptr; + this->sNumTiles = 0; + } + ~TileTable(); + + TileDesc *GetTileById(unsigned int uTileID); + void InitializeTileset(Tileset tileset); + int GetTileForTerrainType(signed int a1, bool a2); + unsigned int GetTileId(unsigned int uTerrainType, unsigned int uSection); + void ToFile(); + void FromFile(void *data_mm6, void *data_mm7, void *data_mm8); + int FromFileTxt(const char *pFilename); + + signed int sNumTiles; + struct TileDesc *pTiles; +}; +#pragma pack(pop)