fix map parser for 936

This commit is contained in:
Skillbert
2024-06-05 22:10:07 +02:00
parent c4e78231aa
commit 89a4c36f3f
5 changed files with 28 additions and 20 deletions

View File

@@ -3,13 +3,17 @@
// run `npm run filetypes` to rebuild
export type mapsquare_tiles = {
magic: ([
number,
number,
]|null),
tiles: ({
flags: number,
shape: number | null,
overlay: number | null,
settings: number | null,
underlay: number | null,
height: number | null,
height: (number|number) | null,
}|{
flags: number,
shape: number | null,

View File

@@ -3,11 +3,12 @@
// run `npm run filetypes` to rebuild
export type mapsquare_tiles_nxt = {
magic?: number | null
level0?: {
flags: number,
height: number,
height: (number|number),
rest: {
waterheight: number | null,
waterheight: (number|number) | null,
underlay: number,
underlaycolor: number | null,
overlay: number,
@@ -18,9 +19,9 @@ export type mapsquare_tiles_nxt = {
}[] | null
level1?: {
flags: number,
height: number,
height: (number|number),
rest: {
waterheight: number | null,
waterheight: (number|number) | null,
underlay: number,
underlaycolor: number | null,
overlay: number,
@@ -31,9 +32,9 @@ export type mapsquare_tiles_nxt = {
}[] | null
level2?: {
flags: number,
height: number,
height: (number|number),
rest: {
waterheight: number | null,
waterheight: (number|number) | null,
underlay: number,
underlaycolor: number | null,
overlay: number,
@@ -44,9 +45,9 @@ export type mapsquare_tiles_nxt = {
}[] | null
level3?: {
flags: number,
height: number,
height: (number|number),
rest: {
waterheight: number | null,
waterheight: (number|number) | null,
underlay: number,
underlaycolor: number | null,
overlay: number,

View File

@@ -49,7 +49,7 @@ export const cacheMajors = {
//represents the largest build number that this application is aware off
//is used as default value when a cache is considered "current"
//only needs to be updated when backward incompatible code paths are added
export const latestBuildNumber = 935;
export const latestBuildNumber = 936;
export const cacheMapFiles = {
locations: 0,

View File

@@ -1,4 +1,5 @@
["struct",
["magic",["match","buildnr",{">=936":["tuple","uint","ubyte"],"other":null}]],//always "jagx\01"
["tiles",["array",16384,
["match","buildnr",{
">=750":["struct",
@@ -7,7 +8,7 @@
["overlay",["opt",["flags",0,"bitflag"],"variable unsigned short"]],
["settings",["opt",["flags",1,"bitflag"],"unsigned byte"]],
["underlay",["opt",["flags",2,"bitflag"],"variable unsigned short"]],
["height",["opt",["flags",3,"bitflag"],"unsigned byte"]]
["height",["opt",["flags",3,"bitflag"],["match","buildnr",{">=936":"ushort","other":"ubyte"}]]]
],
"other":["legacy_maptile"]
}]

View File

@@ -1,8 +1,10 @@
{"0x00":{"name":"level0","read":["array",4356,["struct",
{
"0x6a":{"name":"magic","read":"uint"},//"jagx\01" as header for buildnr>=936
"0x00":{"name":"level0","read":["array",4356,["struct",
["flags","ubyte"],//1visible,2blocking,4bridge/flag2,8roofed,16water,32forcedraw,64roofoverhang
["height","ubyte"],
["height",["match","buildnr",{">=936":"ushort","other":"ubyte"}]],
["rest",["opt",["flags",0,"bitflag"],["struct",
["waterheight",["opt","flags&16","ubyte"]],
["waterheight",["opt","flags&16",["match","buildnr",{">=936":"ushort","other":"ubyte"}]]],
["underlay","varushort"],
["underlaycolor",["opt","underlay!=0","ushort"]],
["overlay","varushort"],
@@ -13,9 +15,9 @@
]]},
"0x01":{"name":"level1","read":["array",4356,["struct",
["flags","ubyte"],//1visible,2blocking,4bridge/flag2,8roofed,16water,32forcedraw,64roofoverhang
["height","ubyte"],
["height",["match","buildnr",{">=936":"ushort","other":"ubyte"}]],
["rest",["opt",["flags",0,"bitflag"],["struct",
["waterheight",["opt","flags&16","ubyte"]],
["waterheight",["opt","flags&16",["match","buildnr",{">=936":"ushort","other":"ubyte"}]]],
["underlay","varushort"],
["underlaycolor",["opt","underlay!=0","ushort"]],
["overlay","varushort"],
@@ -26,9 +28,9 @@
]]},
"0x02":{"name":"level2","read":["array",4356,["struct",
["flags","ubyte"],//1visible,2blocking,4bridge/flag2,8roofed,16water,32forcedraw,64roofoverhang
["height","ubyte"],
["height",["match","buildnr",{">=936":"ushort","other":"ubyte"}]],
["rest",["opt",["flags",0,"bitflag"],["struct",
["waterheight",["opt","flags&16","ubyte"]],
["waterheight",["opt","flags&16",["match","buildnr",{">=936":"ushort","other":"ubyte"}]]],
["underlay","varushort"],
["underlaycolor",["opt","underlay!=0","ushort"]],
["overlay","varushort"],
@@ -39,9 +41,9 @@
]]},
"0x03":{"name":"level3","read":["array",4356,["struct",
["flags","ubyte"],//1visible,2blocking,4bridge/flag2,8roofed,16water,32forcedraw,64roofoverhang
["height","ubyte"],
["height",["match","buildnr",{">=936":"ushort","other":"ubyte"}]],
["rest",["opt",["flags",0,"bitflag"],["struct",
["waterheight",["opt","flags&16","ubyte"]],
["waterheight",["opt","flags&16",["match","buildnr",{">=936":"ushort","other":"ubyte"}]]],
["underlay","varushort"],
["underlaycolor",["opt","underlay!=0","ushort"]],
["overlay","varushort"],