This information can all be found in MapFile. Everything is redraw on the fly iirc. If you do change these formats in your own custom client consider updating HashDirCache.findbase() and storing all cache files locally in a different folder to prevent breaking other clients for yourself.
mvgulik wrote:- map-grid - Think his might be the normal map files, although the minor variable size of the decode data seems a bit odd to me.
Grid contains the actual grid data in order to redraw the grid.
- Code: Select all
u8 - version
i64 - grid id
i64 - grid seed ? iirc
u8 - # of tilesets used to make this grid
for each tileset:
string - tileset res name
u16 - tileset res version
u8 - tileset res prio
u8[] - tile data cmaps.x * cmaps.y size
Pretty sure that was the default format. Notice it's missing z info which is why default client maps don't have ridges
mvgulik wrote:- map-gi - 25 bytes of data. Same number of gi-files vs grid-files suggest there related, not sure how though. ... Thinking color index, or something to that effect.(naa, don't make sense after some more thinking))
This is grid information. Specifically the grid id, the segment id the grid belongs to and the coordinate offset within that segment that the grid is. Along with a version number of (1) in default at least.
- Code: Select all
u8 - version [1]
i64 - grid id
i64 - seg id
i32, i32 - offset coord
mvgulik wrote:- map-zgrid - Zoomed-out map images for sure. ...
Same as map-grid but with additional information stored like what zoom-level this is for, and the offset.
mvgulik wrote:- map-seq - Also zlib'ed, but with some major size variation. Low file-case count.
Holds all the information about a segment. Version, ID, # of grids, each Grid ID
- Code: Select all
u8 - version
i64 - seg id
i32 - # of grids
for each grid:
i64 - grid id
mvgulik wrote:- map-index - Only 1 found. ... ?
Holds all known segment ids, all known marker data, and the version of the index. Changing the format of this will break other clients
- Code: Select all
u8 - version
i32 - # of segs
for each seg:
i64 - seg id
i32 - # of markers
for each marker
The marker save format... either a PMarker or SMarker iirc for default
PMarker
- Code: Select all
u8 - version
i64 - seg id
i32, i32 - location offset
string - marker name
u8 - marker type ('p' for PMarker)
u8,u8,u8,u8 - RGBA color of marker
SMarker
- Code: Select all
u8 - version
i64 - seg id
i32, i32 - location offset
string - marker name
u8 - marker type ('s' for SMarker)
i64 - Object ID (Global ID, not randomized)
string - marker res name
u16 - marker res version