Wrote the basic map specification
+53
-1
@@ -1,2 +1,54 @@
|
||||
TODO: This page is a work in progress, as is the map system of the game.
|
||||
The map data is stored in plain text.
|
||||
The tiles are zero indexed, with -1 meaning transparent.
|
||||
Each layer has it's own tileset.
|
||||
|
||||
## Containers
|
||||
|
||||
Patch:
|
||||
int xCount, yCount
|
||||
vector<vector<int>> data[xCount][yCount]
|
||||
|
||||
Layer:
|
||||
int xCount, yCount
|
||||
vector<vector<Patch>> data[xCount][yCount]
|
||||
|
||||
MapUtility:
|
||||
int layerCount
|
||||
list<Layer> data[layerCount]
|
||||
list<Image> tilesets[layerCount]
|
||||
|
||||
## File Format
|
||||
|
||||
The files are layed out like this:
|
||||
|
||||
```
|
||||
[format metadata]
|
||||
[tileset list]
|
||||
[data blob]
|
||||
```
|
||||
|
||||
The format metadata includes the tile format, the number of tiles in a patch, the number of patches in a layer, and the number of layers and tilesets in the map. It also includes totals, which can be used to verify the formats before loading the data blob.
|
||||
The metadata is layed out like this:
|
||||
|
||||
```
|
||||
tileWidth tileHeight patchXCount patchYCount layerXCount layerYCount layerCount totalXCount totalYCount totalCount;
|
||||
```
|
||||
|
||||
The tileset list is a list of filenames terminated by semicolons.
|
||||
|
||||
The data blob is made up of each tile, layed out from the bottom layer to the top, from the top-left most tile, read X first.
|
||||
|
||||
That is to say, in a map with 2 layers, 3 tiles along the X axis and 4 along the y, this is what the data blob would look like:
|
||||
|
||||
```
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user