| 11 | #include <zlib.h> |
| 12 | |
| 13 | static void CreateEmptyMap(IStorage *pStorage) |
| 14 | { |
| 15 | const char *pMapName = "maps/dummy3.map"; |
| 16 | |
| 17 | CDataFileWriter Writer; |
| 18 | if(!Writer.Open(pStorage, pMapName)) |
| 19 | { |
| 20 | dbg_msg("dummy_map", "couldn't open map file '%s' for writing", pMapName); |
| 21 | return; |
| 22 | } |
| 23 | CMapItemGroup_v1 Group; |
| 24 | Group.m_Version = 1; |
| 25 | Group.m_OffsetX = 0; |
| 26 | Group.m_OffsetY = 0; |
| 27 | Group.m_ParallaxX = 0; |
| 28 | Group.m_ParallaxY = 0; |
| 29 | Group.m_StartLayer = 0; |
| 30 | Group.m_NumLayers = 2; |
| 31 | Writer.AddItem(MAPITEMTYPE_GROUP, 0, sizeof(Group), &Group); |
| 32 | |
| 33 | constexpr int LayerWidth = 2; |
| 34 | constexpr int LayerHeight = 2; |
| 35 | CTile aTiles[LayerWidth * LayerHeight]; |
| 36 | for(auto &Tile : aTiles) |
| 37 | { |
| 38 | Tile.m_Index = 1; |
| 39 | Tile.m_Flags = 0; |
| 40 | Tile.m_Skip = 0; |
| 41 | Tile.m_Reserved = 0; |
| 42 | } |
| 43 | const int TilesData = Writer.AddData(sizeof(aTiles), &aTiles); |
| 44 | |
| 45 | CMapItemLayerTilemap GameLayer; |
| 46 | GameLayer.m_Layer.m_Version = 0; // Not set by the official client. |
| 47 | GameLayer.m_Layer.m_Type = LAYERTYPE_TILES; |
| 48 | GameLayer.m_Layer.m_Flags = 0; |
| 49 | GameLayer.m_Version = 2; |
| 50 | GameLayer.m_Width = LayerWidth; |
| 51 | GameLayer.m_Height = LayerHeight; |
| 52 | GameLayer.m_Flags = TILESLAYERFLAG_GAME; |
| 53 | GameLayer.m_Color.r = 0; |
| 54 | GameLayer.m_Color.g = 0; |
| 55 | GameLayer.m_Color.b = 0; |
| 56 | GameLayer.m_Color.a = 0; |
| 57 | GameLayer.m_ColorEnv = -1; |
| 58 | GameLayer.m_ColorEnvOffset = 0; |
| 59 | GameLayer.m_Image = -1; |
| 60 | GameLayer.m_Data = TilesData; |
| 61 | Writer.AddItem(MAPITEMTYPE_LAYER, 0, sizeof(GameLayer) - sizeof(GameLayer.m_aName) - sizeof(GameLayer.m_Tele) - sizeof(GameLayer.m_Speedup) - sizeof(GameLayer.m_Front) - sizeof(GameLayer.m_Switch) - sizeof(GameLayer.m_Tune), &GameLayer); |
| 62 | |
| 63 | CMapItemLayerTilemap Layer; |
| 64 | Layer.m_Layer.m_Version = 0; |
| 65 | Layer.m_Layer.m_Type = LAYERTYPE_TILES; |
| 66 | Layer.m_Layer.m_Flags = 0; |
| 67 | Layer.m_Version = 2; |
| 68 | Layer.m_Width = LayerWidth; |
| 69 | Layer.m_Height = LayerHeight; |
| 70 | Layer.m_Flags = 0; |