parse new morphs format

This commit is contained in:
Skillbert
2025-12-08 14:03:12 +01:00
parent 5cbea1275d
commit a3af98e663
5 changed files with 818 additions and 657 deletions

363
generated/npcs.d.ts vendored
View File

@@ -1,155 +1,208 @@
// GENERATED DO NOT EDIT
// This source data is located at '..\src\opcodes\npcs.jsonc'
// run `npm run filetypes` to rebuild
export type npcs = {
models?: (number|number)[] | null
name?: string | null
examine?: string | null
unknown_08?: number | null
unknown_0B?: number | null
boundSize?: number | null
unk_0D?: number | null
unk_0E?: number | null
unk_11?: number[] | null
actions_0?: string | null
actions_1?: string | null
actions_2?: string | null
actions_3?: string | null
actions_4?: string | null
color_replacements?: [
number,
number,
][] | null
material_replacements?: [
number,
number,
][] | null
recolourPalette?: number[] | null
recolor_indices?: number | null
retexture_indices?: number | null
headModels?: (number|number)[] | null
drawMapDot?: false | null
combat?: number | null
scaleXZ?: number | null
scaleY?: number | null
unknown_63?: true | null
ambience?: number | null
modelContract?: number | null
head_icon_data?: number | null
unknown_67?: number | null
morphs_1?: {
unk1: number,
unk2: number[],
unk3: (number|number),
} | null
unknown_6B?: false | null
slowWalk?: false | null
animateIdle?: false | null
shadow?: {
SrcColor: number,
DstColor: number,
} | null
shadowAlphaIntensity?: {
Src: number,
Dst: number,
} | null
unknown_73?: [
number,
number,
] | null
morphs_2?: {
unk1: number,
unk2: number,
unk3: number[],
unk4: number,
} | null
movementCapabilities?: number | null
unknown_78?: [
number,
number,
number,
number,
] | null
translations?: Uint8Array[] | null
unk_7A?: number | null
iconHeight?: number | null
respawnDirection?: number | null
animation_group?: number | null
movementType?: number | null
ambient_sound?: {
unk1: number,
unk2: number,
unk3: number,
unk4: number,
unk45: number,
} | null
oldCursor?: {
Op: number,
Cursor: number,
} | null
oldCursor2?: {
Op: number,
Cursor: number,
} | null
attackCursor?: number | null
armyIcon?: number | null
unknown_8C?: number | null
unknown_8D?: true | null
mapFunction?: number | null
unknown_8F?: true | null
members_actions_0?: string | null
members_actions_1?: string | null
members_actions_2?: string | null
members_actions_3?: string | null
members_actions_4?: string | null
unknown_9B?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
} | null
aByte3076_set_1?: true | null
aByte3076_set_0?: false | null
quests?: number[] | null
dummy_1?: true | null
unknown_A3?: number | null
unknown_A4?: {
unknown_1: number,
unknown_2: number,
} | null
unknown_A5?: number | null
unknown_A8?: number | null
unknown_A9?: false | null
action_cursors_0?: number | null
action_cursors_1?: number | null
action_cursors_2?: number | null
action_cursors_3?: number | null
action_cursors_4?: number | null
action_cursors_5?: number | null
dummy_2?: true | null
unknown_B3?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
unknown_5: number,
unknown_6: number,
} | null
unknown_B4?: number | null
unknown_B5?: {
unknown_1: number,
unknown_2: number,
} | null
unknown_B6?: true | null
unknown_B7?: number | null
unknown_B8?: number | null
unknown_B9?: true | null
unknown_DB?: number | null
extra?: {
prop: number,
intvalue: number | null,
stringvalue: string | null,
}[] | null
unknown_FD?: number | null
};
// GENERATED DO NOT EDIT
// This source data is located at '..\src\opcodes\npcs.jsonc'
// run `npm run filetypes` to rebuild
export type npcs = {
models?: (number|number)[] | null
name?: string | null
examine?: string | null
unknown_08?: number | null
unknown_0B?: number | null
boundSize?: number | null
unk_0D?: number | null
unk_0E?: number | null
unk_11?: number[] | null
actions_0?: string | null
actions_1?: string | null
actions_2?: string | null
actions_3?: string | null
actions_4?: string | null
color_replacements?: [
number,
number,
][] | null
material_replacements?: [
number,
number,
][] | null
recolourPalette?: number[] | null
recolor_indices?: number | null
retexture_indices?: number | null
headModels?: (number|number)[] | null
drawMapDot?: false | null
combat?: number | null
scaleXZ?: number | null
scaleY?: number | null
unknown_63?: true | null
ambience?: number | null
modelContract?: number | null
head_icon_data?: number | null
unknown_67?: number | null
morphs_1?: {
unk1: number,
unk2: number[],
unk3: (number|number),
} | null
unknown_6B?: false | null
slowWalk?: false | null
animateIdle?: false | null
shadow?: {
SrcColor: number,
DstColor: number,
} | null
shadowAlphaIntensity?: {
Src: number,
Dst: number,
} | null
unknown_73?: [
number,
number,
] | null
morphs_2?: {
unk1: number,
unk2: number,
unk3: number[],
unk4: number,
} | null
movementCapabilities?: number | null
unknown_78?: [
number,
number,
number,
number,
] | null
translations?: Uint8Array[] | null
unk_7A?: number | null
iconHeight?: number | null
respawnDirection?: number | null
animation_group?: number | null
movementType?: number | null
ambient_sound?: {
unk1: number,
unk2: number,
unk3: number,
unk4: number,
unk45: number,
} | null
oldCursor?: {
Op: number,
Cursor: number,
} | null
oldCursor2?: {
Op: number,
Cursor: number,
} | null
attackCursor?: number | null
armyIcon?: number | null
unknown_8C?: number | null
unknown_8D?: true | null
mapFunction?: number | null
unknown_8F?: true | null
members_actions_0?: string | null
members_actions_1?: string | null
members_actions_2?: string | null
members_actions_3?: string | null
members_actions_4?: string | null
unknown_9B?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
} | null
aByte3076_set_1?: true | null
aByte3076_set_0?: false | null
quests?: number[] | null
dummy_1?: true | null
unknown_A3?: number | null
unknown_A4?: {
unknown_1: number,
unknown_2: number,
} | null
unknown_A5?: number | null
unknown_A8?: number | null
unknown_A9?: false | null
action_cursors_0?: number | null
action_cursors_1?: number | null
action_cursors_2?: number | null
action_cursors_3?: number | null
action_cursors_4?: number | null
action_cursors_5?: number | null
dummy_2?: true | null
unknown_B3?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
unknown_5: number,
unknown_6: number,
} | null
unknown_B4?: number | null
unknown_B5?: {
unknown_1: number,
unknown_2: number,
} | null
unknown_B6?: true | null
unknown_B7?: number | null
unknown_B8?: number | null
unknown_B9?: true | null
unknown_BA?: {
unk0: number,
varbit: number,
varp: number,
flags: number,
multimodel: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
extracount: number,
extra1: number | null,
extra2: number | null,
extra3: number | null,
}[],
}[] | null,
multiheadmodel: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
}[],
}[] | null,
multiretex: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
unk4: number,
}[],
}[] | null,
multirecol: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
unk4: number,
}[],
}[] | null,
multiretint: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
}[],
}[] | null,
default: number,
} | null
unknown_DB?: number | null
extra?: {
prop: number,
intvalue: number | null,
stringvalue: string | null,
}[] | null
unknown_FD?: number | null
};

439
generated/objects.d.ts vendored
View File

@@ -1,193 +1,246 @@
// GENERATED DO NOT EDIT
// This source data is located at '..\src\opcodes\objects.jsonc'
// run `npm run filetypes` to rebuild
export type objects = {
models?: ({
type: number,
values: (number|number)[],
}[]|{
values: (number|number)[],
type: number,
}[]) | null
name?: string | null
examine?: string | null
models_05?: ({
models: {
type: number,
values: (number|number)[],
}[],
unktail: [
(number|number),
(number|number),
][],
}|{
models: {
type: 10,
values: (number|number)[],
unktail: [
(number|number),
(number|number),
][],
}[],
}) | null
width?: number | null
length?: number | null
probably_nocollision?: true | null
maybe_allows_lineofsight?: true | null
deletable?: boolean | null
probably_morphFloor?: true | null
unknown_16?: true | null
occludes_1?: false | null
probably_animation?: number | null
maybe_blocks_movement?: true | null
wallkit_related_1C?: number | null
ambient?: number | null
actions_0?: string | null
actions_1?: string | null
actions_2?: string | null
actions_3?: string | null
actions_4?: string | null
contrast?: number | null
color_replacements?: [
number,
number,
][] | null
material_replacements?: [
number,
number,
][] | null
recolourPalette?: number[] | null
unknown_2C?: number | null
unknown_2D?: number | null
unknown_36?: true | null
unknown_37?: true | null
unknown_38?: true | null
unknown_39?: true | null
unknown_3c?: number | null
mirror?: true | null
unknown_40?: true | null
scaleX?: number | null
scaleY?: number | null
scaleZ?: number | null
mapscene_old?: number | null
dummy_45?: number | null
translateX?: number | null
translateY?: number | null
translateZ?: number | null
unknown_49?: true | null
unknown_4A?: true | null
unknown_4B?: number | null
morphs_1?: {
unk1: number,
unk2: (number|number)[],
unk3: (number|number),
} | null
light_source_related_4E?: {
maybe_color: number,
maybe_radius: number,
} | null
unknown_4F?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number[],
} | null
unknown_51?: number | null
unknown_52?: true | null
is_members?: true | null
unknown_59?: true | null
unknown_5A?: true | null
isMembers?: true | null
morphs_2?: {
unk1: number,
unk2: (number|number),
unk3: (number|number)[],
unk4: (number|number),
} | null
tilt_xz?: [
number,
number,
] | null
under_water?: true | null
probably_morphCeilingOffset?: (number|0) | null
unknown_60?: true | null
ground_decoration_related_61?: true | null
has_animated_texture?: true | null
dummy_63?: {
unknown_2: number,
unknown_1: number,
} | null
dummy_64?: {
unknown_2: number,
unknown_1: number,
} | null
unused_65?: number | null
mapscene?: number | null
occludes_2?: false | null
interactable_related_68?: number | null
invertMapScene?: true | null
headModels?: {
model: number,
unknown_2: number,
}[] | null
mapFunction?: number | null
unknown_71?: number | null
members_action_1?: string | null
members_action_2?: string | null
members_action_3?: string | null
members_action_4?: string | null
members_action_5?: string | null
unknown_A0?: number[] | null
singleuse_A2?: number | null
unknown_A3?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
} | null
singleuse_A4?: number | null
singleuse_A5?: number | null
singleuse_A6?: number | null
floor_thickness?: number | null
unused_a8?: true | null
unused_a9?: true | null
wallkit_related_AA?: number | null
possibly_wallkit_skew_AB?: number | null
lightsource_related_AD?: {
unknown_1: number,
unknown_2: number,
} | null
can_change_color?: true | null
unknown_B2?: number | null
unknown_BA?: number | null
dummy_bc?: true | null
treerockordoor_BD?: true | null
action_cursors_0?: number | null
action_cursors_1?: number | null
action_cursors_2?: number | null
action_cursors_3?: number | null
action_cursors_4?: number | null
action_cursors_5?: number | null
tileplacement_related_c4?: number | null
clan_citadel_C5?: number | null
invisible_c6?: true | null
flooroverlay_c7?: true | null
singleuse_C8?: true | null
unknown_C9?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
unknown_5: number,
unknown_6: number,
} | null
singleuse_CA?: number | null
unknown_CB?: true | null
unknown_CC?: Uint8Array[] | null
extra?: {
prop: number,
intvalue: number | null,
stringvalue: string | null,
}[] | null
};
// GENERATED DO NOT EDIT
// This source data is located at '..\src\opcodes\objects.jsonc'
// run `npm run filetypes` to rebuild
export type objects = {
models?: ({
type: number,
values: (number|number)[],
}[]|{
values: (number|number)[],
type: number,
}[]) | null
name?: string | null
examine?: string | null
models_05?: ({
models: {
type: number,
values: (number|number)[],
}[],
unktail: [
(number|number),
(number|number),
][],
}|{
models: {
type: 10,
values: (number|number)[],
unktail: [
(number|number),
(number|number),
][],
}[],
}) | null
width?: number | null
length?: number | null
probably_nocollision?: true | null
maybe_allows_lineofsight?: true | null
deletable?: boolean | null
probably_morphFloor?: true | null
unknown_16?: true | null
occludes_1?: false | null
probably_animation?: number | null
maybe_blocks_movement?: true | null
wallkit_related_1C?: number | null
ambient?: number | null
actions_0?: string | null
actions_1?: string | null
actions_2?: string | null
actions_3?: string | null
actions_4?: string | null
contrast?: number | null
color_replacements?: [
number,
number,
][] | null
material_replacements?: [
number,
number,
][] | null
recolourPalette?: number[] | null
unknown_2C?: number | null
unknown_2D?: number | null
unknown_36?: true | null
unknown_37?: true | null
unknown_38?: true | null
unknown_39?: true | null
unknown_3c?: number | null
mirror?: true | null
unknown_40?: true | null
scaleX?: number | null
scaleY?: number | null
scaleZ?: number | null
mapscene_old?: number | null
dummy_45?: number | null
translateX?: number | null
translateY?: number | null
translateZ?: number | null
unknown_49?: true | null
unknown_4A?: true | null
unknown_4B?: number | null
morphs_1?: {
unk1: number,
unk2: (number|number)[],
unk3: (number|number),
} | null
light_source_related_4E?: {
maybe_color: number,
maybe_radius: number,
} | null
unknown_4F?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number[],
} | null
unknown_51?: number | null
unknown_52?: true | null
is_members?: true | null
unknown_59?: true | null
unknown_5A?: true | null
isMembers?: true | null
morphs_2?: {
unk1: number,
unk2: (number|number),
unk3: (number|number)[],
unk4: (number|number),
} | null
tilt_xz?: [
number,
number,
] | null
under_water?: true | null
probably_morphCeilingOffset?: (number|0) | null
unknown_60?: true | null
ground_decoration_related_61?: true | null
has_animated_texture?: true | null
dummy_63?: {
unknown_2: number,
unknown_1: number,
} | null
dummy_64?: {
unknown_2: number,
unknown_1: number,
} | null
unused_65?: number | null
mapscene?: number | null
occludes_2?: false | null
interactable_related_68?: number | null
invertMapScene?: true | null
headModels?: {
model: number,
unknown_2: number,
}[] | null
mapFunction?: number | null
unknown_71?: number | null
members_action_1?: string | null
members_action_2?: string | null
members_action_3?: string | null
members_action_4?: string | null
members_action_5?: string | null
unknown_A0?: number[] | null
singleuse_A2?: number | null
unknown_A3?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
} | null
singleuse_A4?: number | null
singleuse_A5?: number | null
singleuse_A6?: number | null
floor_thickness?: number | null
unused_a8?: true | null
unused_a9?: true | null
wallkit_related_AA?: number | null
possibly_wallkit_skew_AB?: number | null
lightsource_related_AD?: {
unknown_1: number,
unknown_2: number,
} | null
can_change_color?: true | null
unknown_B2?: number | null
unknown_BA?: number | null
dummy_bc?: true | null
treerockordoor_BD?: true | null
action_cursors_0?: number | null
action_cursors_1?: number | null
action_cursors_2?: number | null
action_cursors_3?: number | null
action_cursors_4?: number | null
action_cursors_5?: number | null
tileplacement_related_c4?: number | null
clan_citadel_C5?: number | null
invisible_c6?: true | null
flooroverlay_c7?: true | null
singleuse_C8?: true | null
unknown_C9?: {
unknown_1: number,
unknown_2: number,
unknown_3: number,
unknown_4: number,
unknown_5: number,
unknown_6: number,
} | null
singleuse_CA?: number | null
unknown_CB?: true | null
unknown_CC?: Uint8Array[] | null
unknown_CD?: {
unk0: number,
varbit: number,
varp: number,
flags: number,
multimodel: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
extracount: number,
extra1: number | null,
extra2: number | null,
extra3: number | null,
}[],
}[] | null,
multiheadmodel: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
}[],
}[] | null,
multiretex: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
unk4: number,
}[],
}[] | null,
multirecol: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
unk4: number,
}[],
}[] | null,
multiretint: {
value: number,
models: {
unk1: number,
unk2: number,
unk3: number,
}[],
}[] | null,
default: number,
} | null
extra?: {
prop: number,
intvalue: number | null,
stringvalue: string | null,
}[] | null
};

View File

@@ -1,95 +1,96 @@
{
"0x01": { "name": "models", "read": [ "array", ["match","buildnr",{">=669":"varuint",">=0":"ushort" }]]},
"0x02": { "name": "name", "read": "string" },
"0x03": { "name": "examine", "read": "string" },//last used 2006
"0x08": { "name": "unknown_08", "read": "unsigned byte" },//might be wrong and part of other op
"0x0B": { "name": "unknown_0B", "read": "unsigned byte" },//might be wrong and part of other op
"0x0C": { "name": "boundSize", "read": "unsigned byte" },
"0x0D": { "name": "unk_0D", "read": "ushort" },//last used 2006
"0x0E": { "name": "unk_0E", "read": "ushort" },//last used 2006
"0x11": { "name": "unk_11", "read": ["array",4,"ushort"]},//last used 2006
"0x1E": { "name": "actions_0", "read": "string" },
"0x1F": { "name": "actions_1", "read": "string" },
"0x20": { "name": "actions_2", "read": "string" },
"0x21": { "name": "actions_3", "read": "string" },
"0x22": { "name": "actions_4", "read": "string" },
"0x28": { "name": "color_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x29": { "name": "material_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x2A": { "name": "recolourPalette", "read": [ "array", "byte" ] },
"0x2C": { "name": "recolor_indices", "read": "unsigned short" },
"0x2D": { "name": "retexture_indices", "read": "unsigned short" },
"0x3C": { "name": "headModels", "read": [ "array", ["match","buildnr",{">=669":"varuint",">=0":"ushort" }] ] },
"0x5D": { "name": "drawMapDot", "read": "false" },
"0x5F": { "name": "combat", "read": "unsigned short" },
"0x61": { "name": "scaleXZ", "read": "unsigned short" },
"0x62": { "name": "scaleY", "read": "unsigned short" },
"0x63": { "name": "unknown_63", "read": "true" },
"0x64": { "name": "ambience", "read": "byte" },
"0x65": { "name": "modelContract", "read": "byte" },
"0x66": { "name": "head_icon_data", "read": "unsigned short" },
"0x67": { "name": "unknown_67", "read": "unsigned short" },
"0x6A": { "name": "morphs_1", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", [ "array", ["match","buildnr",{">=910":"varushort",">=0":"ubyte"}], "unsigned short" ]],
["unk3", ["match","buildnr",{">=525":"uint",">=0":"ushort"}]] ] },
"0x6B": { "name": "unknown_6B", "read": "false" },
"0x6D": { "name": "slowWalk", "read": "false" },
"0x6F": { "name": "animateIdle", "read": "false" },
"0x71": { "name": "shadow", "read": [ "struct", ["SrcColor", "unsigned short"], ["DstColor", "unsigned short"] ] },
"0x72": { "name": "shadowAlphaIntensity", "read": [ "struct", ["Src", "byte"], ["Dst", "byte"] ] },
"0x73": { "name": "unknown_73", "read": ["tuple","ubyte","ubyte"] },//removed in 2010
"0x76": { "name": "morphs_2", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", "unsigned short"],
["unk3", [ "array",["match","buildnr",{">=910":"varushort",">=0":"ubyte"}], "unsigned short" ]],
["unk4", "unsigned int"] ] },
"0x77": { "name": "movementCapabilities", "read": "byte" },
"0x78": { "name": "unknown_78", "read": ["tuple","ushort","ushort","ushort","ubyte"] },
"0x79": { "name": "translations", "read": [ "array", ["buffer",4,"hex"] ] },
"0x7A": { "name": "unk_7A", "read": "unsigned short" },//removed in 2013
"0x7B": { "name": "iconHeight", "read": "unsigned short" },
"0x7D": { "name": "respawnDirection", "read": "byte" },
"0x7F": { "name": "animation_group", "read": "unsigned short" },
"0x80": { "name": "movementType", "read": "byte" },
"0x86": { "name": "ambient_sound", "read": [ "struct", ["unk1", "unsigned short"], ["unk2", "unsigned short"], ["unk3", "unsigned short"], ["unk4", "unsigned short"], ["unk45", "unsigned byte"] ] },
"0x87": { "name": "oldCursor", "read": [ "struct", ["Op", "unsigned byte"], ["Cursor", "unsigned short"] ] },
"0x88": { "name": "oldCursor2", "read": [ "struct", ["Op", "unsigned byte"], ["Cursor", "unsigned short"] ] },
"0x89": { "name": "attackCursor", "read": "unsigned short" },
"0x8A": { "name": "armyIcon", "read": "variable int" },
"0x8C": { "name": "unknown_8C", "read": "unsigned byte" },
"0x8D": { "name": "unknown_8D", "read": "true" },
"0x8E": { "name": "mapFunction", "read": "unsigned short" },
"0x8F": { "name": "unknown_8F", "read": "true" },
"0x96": { "name": "members_actions_0", "read": "string" },
"0x97": { "name": "members_actions_1", "read": "string" },
"0x98": { "name": "members_actions_2", "read": "string" },
"0x99": { "name": "members_actions_3", "read": "string" },
"0x9A": { "name": "members_actions_4", "read": "string" },
"0x9B": { "name": "unknown_9B", "read": [ "struct", ["unknown_1", "byte"], ["unknown_2", "byte"], ["unknown_3", "byte"], ["unknown_4", "byte"] ] },
"0x9E": { "name": "aByte3076_set_1", "read": "true" },
"0x9F": { "name": "aByte3076_set_0", "read": "false" },
"0xA0": { "name": "quests", "read": [ "array", "unsigned short" ] },
"0xA2": { "name": "dummy_1", "read": "true" },
"0xA3": { "name": "unknown_A3", "read": "unsigned byte" },
"0xA4": { "name": "unknown_A4", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned short"] ] },
"0xA5": { "name": "unknown_A5", "read": "unsigned byte" },
"0xA8": { "name": "unknown_A8", "read": "unsigned byte" },
"0xA9": { "name": "unknown_A9", "read": "false" },
"0xAA": { "name": "action_cursors_0", "read": "unsigned short" },
"0xAB": { "name": "action_cursors_1", "read": "unsigned short" },
"0xAC": { "name": "action_cursors_2", "read": "unsigned short" },
"0xAD": { "name": "action_cursors_3", "read": "unsigned short" },
"0xAE": { "name": "action_cursors_4", "read": "unsigned short" },
"0xAF": { "name": "action_cursors_5", "read": "unsigned short" },
"0xB2": { "name": "dummy_2", "read": "true" },
"0xB3": { "name": "unknown_B3", "read": [ "struct", ["unknown_1", "variable short"], ["unknown_2", "variable short"], ["unknown_3", "variable short"], ["unknown_4", "variable short"], ["unknown_5", "variable short"], ["unknown_6", "variable short"] ] },
"0xB4": { "name": "unknown_B4", "read": "unsigned byte" },
"0xB5": { "name": "unknown_B5", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned byte"] ] },
"0xB6": { "name": "unknown_B6", "read": "true" },
"0xB7": { "name": "unknown_B7", "read": "unsigned byte" },//might be wrong and part of other op
"0xB8": { "name": "unknown_B8", "read": "unsigned byte" },
"0xB9": { "name": "unknown_B9", "read": "true" },
"0xDB": { "name": "unknown_DB", "read": "ubyte" },//might be wrong and part of other op
"0xF9": { "name": "extra", "read": "extrasmap" },
"0xFD": { "name": "unknown_FD", "read": "ubyte" }//probably render priority
{
"0x01": { "name": "models", "read": [ "array", ["match","buildnr",{">=669":"varuint",">=0":"ushort" }]]},
"0x02": { "name": "name", "read": "string" },
"0x03": { "name": "examine", "read": "string" },//last used 2006
"0x08": { "name": "unknown_08", "read": "unsigned byte" },//might be wrong and part of other op
"0x0B": { "name": "unknown_0B", "read": "unsigned byte" },//might be wrong and part of other op
"0x0C": { "name": "boundSize", "read": "unsigned byte" },
"0x0D": { "name": "unk_0D", "read": "ushort" },//last used 2006
"0x0E": { "name": "unk_0E", "read": "ushort" },//last used 2006
"0x11": { "name": "unk_11", "read": ["array",4,"ushort"]},//last used 2006
"0x1E": { "name": "actions_0", "read": "string" },
"0x1F": { "name": "actions_1", "read": "string" },
"0x20": { "name": "actions_2", "read": "string" },
"0x21": { "name": "actions_3", "read": "string" },
"0x22": { "name": "actions_4", "read": "string" },
"0x28": { "name": "color_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x29": { "name": "material_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x2A": { "name": "recolourPalette", "read": [ "array", "byte" ] },
"0x2C": { "name": "recolor_indices", "read": "unsigned short" },
"0x2D": { "name": "retexture_indices", "read": "unsigned short" },
"0x3C": { "name": "headModels", "read": [ "array", ["match","buildnr",{">=669":"varuint",">=0":"ushort" }] ] },
"0x5D": { "name": "drawMapDot", "read": "false" },
"0x5F": { "name": "combat", "read": "unsigned short" },
"0x61": { "name": "scaleXZ", "read": "unsigned short" },
"0x62": { "name": "scaleY", "read": "unsigned short" },
"0x63": { "name": "unknown_63", "read": "true" },
"0x64": { "name": "ambience", "read": "byte" },
"0x65": { "name": "modelContract", "read": "byte" },
"0x66": { "name": "head_icon_data", "read": "unsigned short" },
"0x67": { "name": "unknown_67", "read": "unsigned short" },
"0x6A": { "name": "morphs_1", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", [ "array", ["match","buildnr",{">=910":"varushort",">=0":"ubyte"}], "unsigned short" ]],
["unk3", ["match","buildnr",{">=525":"uint",">=0":"ushort"}]] ] },
"0x6B": { "name": "unknown_6B", "read": "false" },
"0x6D": { "name": "slowWalk", "read": "false" },
"0x6F": { "name": "animateIdle", "read": "false" },
"0x71": { "name": "shadow", "read": [ "struct", ["SrcColor", "unsigned short"], ["DstColor", "unsigned short"] ] },
"0x72": { "name": "shadowAlphaIntensity", "read": [ "struct", ["Src", "byte"], ["Dst", "byte"] ] },
"0x73": { "name": "unknown_73", "read": ["tuple","ubyte","ubyte"] },//removed in 2010
"0x76": { "name": "morphs_2", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", "unsigned short"],
["unk3", [ "array",["match","buildnr",{">=910":"varushort",">=0":"ubyte"}], "unsigned short" ]],
["unk4", "unsigned int"] ] },
"0x77": { "name": "movementCapabilities", "read": "byte" },
"0x78": { "name": "unknown_78", "read": ["tuple","ushort","ushort","ushort","ubyte"] },
"0x79": { "name": "translations", "read": [ "array", ["buffer",4,"hex"] ] },
"0x7A": { "name": "unk_7A", "read": "unsigned short" },//removed in 2013
"0x7B": { "name": "iconHeight", "read": "unsigned short" },
"0x7D": { "name": "respawnDirection", "read": "byte" },
"0x7F": { "name": "animation_group", "read": "unsigned short" },
"0x80": { "name": "movementType", "read": "byte" },
"0x86": { "name": "ambient_sound", "read": [ "struct", ["unk1", "unsigned short"], ["unk2", "unsigned short"], ["unk3", "unsigned short"], ["unk4", "unsigned short"], ["unk45", "unsigned byte"] ] },
"0x87": { "name": "oldCursor", "read": [ "struct", ["Op", "unsigned byte"], ["Cursor", "unsigned short"] ] },
"0x88": { "name": "oldCursor2", "read": [ "struct", ["Op", "unsigned byte"], ["Cursor", "unsigned short"] ] },
"0x89": { "name": "attackCursor", "read": "unsigned short" },
"0x8A": { "name": "armyIcon", "read": "variable int" },
"0x8C": { "name": "unknown_8C", "read": "unsigned byte" },
"0x8D": { "name": "unknown_8D", "read": "true" },
"0x8E": { "name": "mapFunction", "read": "unsigned short" },
"0x8F": { "name": "unknown_8F", "read": "true" },
"0x96": { "name": "members_actions_0", "read": "string" },
"0x97": { "name": "members_actions_1", "read": "string" },
"0x98": { "name": "members_actions_2", "read": "string" },
"0x99": { "name": "members_actions_3", "read": "string" },
"0x9A": { "name": "members_actions_4", "read": "string" },
"0x9B": { "name": "unknown_9B", "read": [ "struct", ["unknown_1", "byte"], ["unknown_2", "byte"], ["unknown_3", "byte"], ["unknown_4", "byte"] ] },
"0x9E": { "name": "aByte3076_set_1", "read": "true" },
"0x9F": { "name": "aByte3076_set_0", "read": "false" },
"0xA0": { "name": "quests", "read": [ "array", "unsigned short" ] },
"0xA2": { "name": "dummy_1", "read": "true" },
"0xA3": { "name": "unknown_A3", "read": "unsigned byte" },
"0xA4": { "name": "unknown_A4", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned short"] ] },
"0xA5": { "name": "unknown_A5", "read": "unsigned byte" },
"0xA8": { "name": "unknown_A8", "read": "unsigned byte" },
"0xA9": { "name": "unknown_A9", "read": "false" },
"0xAA": { "name": "action_cursors_0", "read": "unsigned short" },
"0xAB": { "name": "action_cursors_1", "read": "unsigned short" },
"0xAC": { "name": "action_cursors_2", "read": "unsigned short" },
"0xAD": { "name": "action_cursors_3", "read": "unsigned short" },
"0xAE": { "name": "action_cursors_4", "read": "unsigned short" },
"0xAF": { "name": "action_cursors_5", "read": "unsigned short" },
"0xB2": { "name": "dummy_2", "read": "true" },
"0xB3": { "name": "unknown_B3", "read": [ "struct", ["unknown_1", "variable short"], ["unknown_2", "variable short"], ["unknown_3", "variable short"], ["unknown_4", "variable short"], ["unknown_5", "variable short"], ["unknown_6", "variable short"] ] },
"0xB4": { "name": "unknown_B4", "read": "unsigned byte" },
"0xB5": { "name": "unknown_B5", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned byte"] ] },
"0xB6": { "name": "unknown_B6", "read": "true" },
"0xB7": { "name": "unknown_B7", "read": "unsigned byte" },//might be wrong and part of other op
"0xB8": { "name": "unknown_B8", "read": "unsigned byte" },
"0xB9": { "name": "unknown_B9", "read": "true" },
"0xBA": { "name": "unknown_BA", "read": "modelmorphs"},
"0xDB": { "name": "unknown_DB", "read": "ubyte" },//might be wrong and part of other op
"0xF9": { "name": "extra", "read": "extrasmap" },
"0xFD": { "name": "unknown_FD", "read": "ubyte" }//probably render priority
}

View File

@@ -1,141 +1,142 @@
{
//TODO build nr for count arg unknown
"0x01": { "name": "models", "read":["match","buildnr",{
">=582":["array","ubyte",["struct",
["type","ubyte"],
["values",["array","ubyte","item_modelid"]]
]],
"other":["array","ubyte",["struct",
["values",["array",1,"item_modelid"]],
["type","ubyte"]
]]}]},
"0x02": { "name": "name", "read": "string" },
"0x03": { "name": "examine", "read": "string" },//removed in jun 2006
//not sure what this is but they seem identical
"0x05": { "name": "models_05", "read":["match","buildnr",{
">=582":["struct",
["models", ["array","ubyte",["struct",
["type","ubyte"],
["values",["array","ubyte","item_modelid"]]
]]],
["unktail",["array","ubyte",["tuple","item_modelid","item_modelid"]]]],
"other":["struct",
["models",["array",1,["struct",
["type",10],
["values",["array","ubyte","item_modelid"]],
["unktail",["array",0,["tuple","item_modelid","item_modelid"]]]
]]]]
}]},
"0x0E": { "name": "width", "read": "unsigned byte" },
"0x0F": { "name": "length", "read": "unsigned byte" },
"0x11": { "name": "probably_nocollision", "read": "true" },
"0x12": { "name": "maybe_allows_lineofsight", "read": "true" },
"0x13": { "name": "deletable", "read": "boolean" },
"0x15": { "name": "probably_morphFloor", "read": "true" },
"0x16": { "name": "unknown_16", "read": "true" },
"0x17": { "name": "occludes_1", "read": "false" },
"0x18": { "name": "probably_animation", "read": "variable unsigned int" },
"0x1B": { "name": "maybe_blocks_movement", "read": "true" },
"0x1C": { "name": "wallkit_related_1C", "read": "unsigned byte" },
"0x1D": { "name": "ambient", "read": "ubyte" },
"0x1E": { "name": "actions_0", "read": "string" },
"0x1F": { "name": "actions_1", "read": "string" },
"0x20": { "name": "actions_2", "read": "string" },
"0x21": { "name": "actions_3", "read": "string" },
"0x22": { "name": "actions_4", "read": "string" },
"0x27": { "name": "contrast", "read": "byte" },
"0x28": { "name": "color_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x29": { "name": "material_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x2A": { "name": "recolourPalette", "read": [ "array", "byte" ] },
"0x2C": { "name": "unknown_2C", "read": "unsigned short" },
"0x2D": { "name": "unknown_2D", "read": "unsigned short" },
"0x36": { "name": "unknown_36", "read": "true" },
"0x37": { "name": "unknown_37", "read": "true" },
"0x38": { "name": "unknown_38", "read": "true" },
"0x39": { "name": "unknown_39", "read": "true" },
"0x3C": { "name": "unknown_3c", "read": "ushort" },//replaced by mapfunction 6B later in ~2010
"0x3E": { "name": "mirror", "read": "true" },
"0x40": { "name": "unknown_40", "read": "true" },
"0x41": { "name": "scaleX", "read": "short" },
"0x42": { "name": "scaleY", "read": "short" },
"0x43": { "name": "scaleZ", "read": "short" },
"0x44": { "name": "mapscene_old", "read": "unsigned short" },//replaced by 0x66
"0x45": { "name": "dummy_45", "read": "unsigned byte" },
"0x46": { "name": "translateX", "read": "short" },
"0x47": { "name": "translateY", "read": "short" },
"0x48": { "name": "translateZ", "read": "short" },
"0x49": { "name": "unknown_49", "read": "true" },
"0x4A": { "name": "unknown_4A", "read": "true" },
"0x4B": { "name": "unknown_4B", "read": "unsigned byte" },
"0x4D": { "name": "morphs_1", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", [ "array",["match","buildnr",{">=910":"varushort",">=0":"ubyte"}],"item_modelid"]],
["unk3", "item_modelid"] ] },
"0x4E": { "name": "light_source_related_4E", "read": [ "struct", ["maybe_color", "unsigned short"], ["maybe_radius", "unsigned byte"] ] },
"0x4F": { "name": "unknown_4F", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned short"], ["unknown_3", "unsigned byte"], ["unknown_4", ["array", "unsigned short"]] ] },
"0x51": { "name": "unknown_51", "read": "unsigned byte" },
"0x52": { "name": "unknown_52", "read": "true" },
"0x58": { "name": "is_members", "read": "true" },
"0x59": { "name": "unknown_59", "read": "true" },
"0x5A": { "name": "unknown_5A", "read": "true" },
"0x5B": { "name": "isMembers", "read": "true" },
"0x5C": { "name": "morphs_2", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", "item_modelid"],
["unk3", [ "array", ["match","buildnr",{">=910":"varushort",">=0":"ubyte"}],"item_modelid"]],
["unk4", "item_modelid"] ] },
"0x5D": { "name": "tilt_xz", "read": [ "tuple", "byte", "byte"] },
"0x5E": { "name": "under_water", "read": "true" },
"0x5F": { "name": "probably_morphCeilingOffset", "read": ["match","buildnr",{">=596":"short","other":0}]},//TODO buildnr somewhere between 580-728
"0x60": { "name": "unknown_60", "read": "true" },
"0x61": { "name": "ground_decoration_related_61", "read": "true" },
"0x62": { "name": "has_animated_texture", "read": "true" },
"0x63": { "name": "dummy_63", "read": [ "struct", ["unknown_2", "unsigned byte"], ["unknown_1", "unsigned short"] ] },
"0x64": { "name": "dummy_64", "read": [ "struct", ["unknown_2", "unsigned byte"], ["unknown_1", "unsigned short"] ] },
"0x65": { "name": "unused_65", "read": "unsigned byte" },
"0x66": { "name": "mapscene", "read": "unsigned short" },
"0x67": { "name": "occludes_2", "read": "false" },
"0x68": { "name": "interactable_related_68", "read": "unsigned byte" },
"0x69": { "name": "invertMapScene", "read": "true" },
"0x6A": { "name": "headModels", "read": [ "array", ["struct", ["model", "varuint"], ["unknown_2", "unsigned byte"]] ] },
"0x6B": { "name": "mapFunction", "read": "unsigned short" },
"0x71": { "name": "unknown_71", "read": "unsigned byte" },
"0x96": { "name": "members_action_1", "read": "string" },
"0x97": { "name": "members_action_2", "read": "string" },
"0x98": { "name": "members_action_3", "read": "string" },
"0x99": { "name": "members_action_4", "read": "string" },
"0x9A": { "name": "members_action_5", "read": "string" },
"0xA0": { "name": "unknown_A0", "read": [ "array", "unsigned short" ] },
"0xA2": { "name": "singleuse_A2", "read": "int" },
"0xA3": { "name": "unknown_A3", "read": [ "struct", ["unknown_1", "byte"], ["unknown_2", "byte"], ["unknown_3", "byte"], ["unknown_4", "byte"] ] },
"0xA4": { "name": "singleuse_A4", "read": "short" },
"0xA5": { "name": "singleuse_A5", "read": "short" },
"0xA6": { "name": "singleuse_A6", "read": "unsigned short" },
"0xA7": { "name": "floor_thickness", "read": "unsigned short" },
"0xA8": { "name": "unused_a8", "read": "true" },
"0xA9": { "name": "unused_a9", "read": "true" },
"0xAA": { "name": "wallkit_related_AA", "read": "variable unsigned short" },
"0xAB": { "name": "possibly_wallkit_skew_AB", "read": "variable unsigned short" },
"0xAD": { "name": "lightsource_related_AD", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned short"] ] },
"0xB1": { "name": "can_change_color", "read": "true" },
"0xB2": { "name": "unknown_B2", "read": "unsigned byte" },
"0xBA": { "name": "unknown_BA", "read": "unsigned byte" },
"0xBC": { "name": "dummy_bc", "read": "true" },
"0xBD": { "name": "treerockordoor_BD", "read": "true" },
"0xBE": { "name": "action_cursors_0", "read": "unsigned short" },
"0xBF": { "name": "action_cursors_1", "read": "unsigned short" },
"0xC0": { "name": "action_cursors_2", "read": "unsigned short" },
"0xC1": { "name": "action_cursors_3", "read": "unsigned short" },
"0xC2": { "name": "action_cursors_4", "read": "unsigned short" },
"0xC3": { "name": "action_cursors_5", "read": "unsigned short" },
"0xC4": { "name": "tileplacement_related_c4", "read": "unsigned byte" },
"0xC5": { "name": "clan_citadel_C5", "read": "unsigned byte" },
"0xC6": { "name": "invisible_c6", "read": "true" },
"0xC7": { "name": "flooroverlay_c7", "read": "true" },
"0xC8": { "name": "singleuse_C8", "read": "true" },
"0xC9": { "name": "unknown_C9", "read": [ "struct", ["unknown_1", "variable short"], ["unknown_2", "variable short"], ["unknown_3", "variable short"], ["unknown_4", "variable short"], ["unknown_5", "variable short"], ["unknown_6", "variable short"] ] },
"0xCA": { "name": "singleuse_CA", "read": "unsigned byte" },
"0xCB": { "name": "unknown_CB", "read": "true" },
"0xCC": { "name": "unknown_CC", "read": ["array","ubyte",["buffer",27,"hex"]] },
"0xF9": { "name": "extra", "read": "extrasmap" }
{
//TODO build nr for count arg unknown
"0x01": { "name": "models", "read":["match","buildnr",{
">=582":["array","ubyte",["struct",
["type","ubyte"],
["values",["array","ubyte","item_modelid"]]
]],
"other":["array","ubyte",["struct",
["values",["array",1,"item_modelid"]],
["type","ubyte"]
]]}]},
"0x02": { "name": "name", "read": "string" },
"0x03": { "name": "examine", "read": "string" },//removed in jun 2006
//not sure what this is but they seem identical
"0x05": { "name": "models_05", "read":["match","buildnr",{
">=582":["struct",
["models", ["array","ubyte",["struct",
["type","ubyte"],
["values",["array","ubyte","item_modelid"]]
]]],
["unktail",["array","ubyte",["tuple","item_modelid","item_modelid"]]]],
"other":["struct",
["models",["array",1,["struct",
["type",10],
["values",["array","ubyte","item_modelid"]],
["unktail",["array",0,["tuple","item_modelid","item_modelid"]]]
]]]]
}]},
"0x0E": { "name": "width", "read": "unsigned byte" },
"0x0F": { "name": "length", "read": "unsigned byte" },
"0x11": { "name": "probably_nocollision", "read": "true" },
"0x12": { "name": "maybe_allows_lineofsight", "read": "true" },
"0x13": { "name": "deletable", "read": "boolean" },
"0x15": { "name": "probably_morphFloor", "read": "true" },
"0x16": { "name": "unknown_16", "read": "true" },
"0x17": { "name": "occludes_1", "read": "false" },
"0x18": { "name": "probably_animation", "read": "variable unsigned int" },
"0x1B": { "name": "maybe_blocks_movement", "read": "true" },
"0x1C": { "name": "wallkit_related_1C", "read": "unsigned byte" },
"0x1D": { "name": "ambient", "read": "ubyte" },
"0x1E": { "name": "actions_0", "read": "string" },
"0x1F": { "name": "actions_1", "read": "string" },
"0x20": { "name": "actions_2", "read": "string" },
"0x21": { "name": "actions_3", "read": "string" },
"0x22": { "name": "actions_4", "read": "string" },
"0x27": { "name": "contrast", "read": "byte" },
"0x28": { "name": "color_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x29": { "name": "material_replacements", "read": [ "array", ["tuple", "unsigned short", "unsigned short"] ] },
"0x2A": { "name": "recolourPalette", "read": [ "array", "byte" ] },
"0x2C": { "name": "unknown_2C", "read": "unsigned short" },
"0x2D": { "name": "unknown_2D", "read": "unsigned short" },
"0x36": { "name": "unknown_36", "read": "true" },
"0x37": { "name": "unknown_37", "read": "true" },
"0x38": { "name": "unknown_38", "read": "true" },
"0x39": { "name": "unknown_39", "read": "true" },
"0x3C": { "name": "unknown_3c", "read": "ushort" },//replaced by mapfunction 6B later in ~2010
"0x3E": { "name": "mirror", "read": "true" },
"0x40": { "name": "unknown_40", "read": "true" },
"0x41": { "name": "scaleX", "read": "short" },
"0x42": { "name": "scaleY", "read": "short" },
"0x43": { "name": "scaleZ", "read": "short" },
"0x44": { "name": "mapscene_old", "read": "unsigned short" },//replaced by 0x66
"0x45": { "name": "dummy_45", "read": "unsigned byte" },
"0x46": { "name": "translateX", "read": "short" },
"0x47": { "name": "translateY", "read": "short" },
"0x48": { "name": "translateZ", "read": "short" },
"0x49": { "name": "unknown_49", "read": "true" },
"0x4A": { "name": "unknown_4A", "read": "true" },
"0x4B": { "name": "unknown_4B", "read": "unsigned byte" },
"0x4D": { "name": "morphs_1", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", [ "array",["match","buildnr",{">=910":"varushort",">=0":"ubyte"}],"item_modelid"]],
["unk3", "item_modelid"] ] },
"0x4E": { "name": "light_source_related_4E", "read": [ "struct", ["maybe_color", "unsigned short"], ["maybe_radius", "unsigned byte"] ] },
"0x4F": { "name": "unknown_4F", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned short"], ["unknown_3", "unsigned byte"], ["unknown_4", ["array", "unsigned short"]] ] },
"0x51": { "name": "unknown_51", "read": "unsigned byte" },
"0x52": { "name": "unknown_52", "read": "true" },
"0x58": { "name": "is_members", "read": "true" },
"0x59": { "name": "unknown_59", "read": "true" },
"0x5A": { "name": "unknown_5A", "read": "true" },
"0x5B": { "name": "isMembers", "read": "true" },
"0x5C": { "name": "morphs_2", "read": [ "struct",
["unk1", "unsigned int"],
["unk2", "item_modelid"],
["unk3", [ "array", ["match","buildnr",{">=910":"varushort",">=0":"ubyte"}],"item_modelid"]],
["unk4", "item_modelid"] ] },
"0x5D": { "name": "tilt_xz", "read": [ "tuple", "byte", "byte"] },
"0x5E": { "name": "under_water", "read": "true" },
"0x5F": { "name": "probably_morphCeilingOffset", "read": ["match","buildnr",{">=596":"short","other":0}]},//TODO buildnr somewhere between 580-728
"0x60": { "name": "unknown_60", "read": "true" },
"0x61": { "name": "ground_decoration_related_61", "read": "true" },
"0x62": { "name": "has_animated_texture", "read": "true" },
"0x63": { "name": "dummy_63", "read": [ "struct", ["unknown_2", "unsigned byte"], ["unknown_1", "unsigned short"] ] },
"0x64": { "name": "dummy_64", "read": [ "struct", ["unknown_2", "unsigned byte"], ["unknown_1", "unsigned short"] ] },
"0x65": { "name": "unused_65", "read": "unsigned byte" },
"0x66": { "name": "mapscene", "read": "unsigned short" },
"0x67": { "name": "occludes_2", "read": "false" },
"0x68": { "name": "interactable_related_68", "read": "unsigned byte" },
"0x69": { "name": "invertMapScene", "read": "true" },
"0x6A": { "name": "headModels", "read": [ "array", ["struct", ["model", "varuint"], ["unknown_2", "unsigned byte"]] ] },
"0x6B": { "name": "mapFunction", "read": "unsigned short" },
"0x71": { "name": "unknown_71", "read": "unsigned byte" },
"0x96": { "name": "members_action_1", "read": "string" },
"0x97": { "name": "members_action_2", "read": "string" },
"0x98": { "name": "members_action_3", "read": "string" },
"0x99": { "name": "members_action_4", "read": "string" },
"0x9A": { "name": "members_action_5", "read": "string" },
"0xA0": { "name": "unknown_A0", "read": [ "array", "unsigned short" ] },
"0xA2": { "name": "singleuse_A2", "read": "int" },
"0xA3": { "name": "unknown_A3", "read": [ "struct", ["unknown_1", "byte"], ["unknown_2", "byte"], ["unknown_3", "byte"], ["unknown_4", "byte"] ] },
"0xA4": { "name": "singleuse_A4", "read": "short" },
"0xA5": { "name": "singleuse_A5", "read": "short" },
"0xA6": { "name": "singleuse_A6", "read": "unsigned short" },
"0xA7": { "name": "floor_thickness", "read": "unsigned short" },
"0xA8": { "name": "unused_a8", "read": "true" },
"0xA9": { "name": "unused_a9", "read": "true" },
"0xAA": { "name": "wallkit_related_AA", "read": "variable unsigned short" },
"0xAB": { "name": "possibly_wallkit_skew_AB", "read": "variable unsigned short" },
"0xAD": { "name": "lightsource_related_AD", "read": [ "struct", ["unknown_1", "unsigned short"], ["unknown_2", "unsigned short"] ] },
"0xB1": { "name": "can_change_color", "read": "true" },
"0xB2": { "name": "unknown_B2", "read": "unsigned byte" },
"0xBA": { "name": "unknown_BA", "read": "unsigned byte" },
"0xBC": { "name": "dummy_bc", "read": "true" },
"0xBD": { "name": "treerockordoor_BD", "read": "true" },
"0xBE": { "name": "action_cursors_0", "read": "unsigned short" },
"0xBF": { "name": "action_cursors_1", "read": "unsigned short" },
"0xC0": { "name": "action_cursors_2", "read": "unsigned short" },
"0xC1": { "name": "action_cursors_3", "read": "unsigned short" },
"0xC2": { "name": "action_cursors_4", "read": "unsigned short" },
"0xC3": { "name": "action_cursors_5", "read": "unsigned short" },
"0xC4": { "name": "tileplacement_related_c4", "read": "unsigned byte" },
"0xC5": { "name": "clan_citadel_C5", "read": "unsigned byte" },
"0xC6": { "name": "invisible_c6", "read": "true" },
"0xC7": { "name": "flooroverlay_c7", "read": "true" },
"0xC8": { "name": "singleuse_C8", "read": "true" },
"0xC9": { "name": "unknown_C9", "read": [ "struct", ["unknown_1", "variable short"], ["unknown_2", "variable short"], ["unknown_3", "variable short"], ["unknown_4", "variable short"], ["unknown_5", "variable short"], ["unknown_6", "variable short"] ] },
"0xCA": { "name": "singleuse_CA", "read": "unsigned byte" },
"0xCB": { "name": "unknown_CB", "read": "true" },
"0xCC": { "name": "unknown_CC", "read": ["array","ubyte",["buffer",27,"hex"]] },
"0xCD": { "name": "unknown_CD", "read": "modelmorphs" },
"0xF9": { "name": "extra", "read": "extrasmap" }
}

View File

@@ -1,76 +1,129 @@
{
"variable unsigned long": "varuint",
"variable unsigned int": "varuint",
"variable unsigned short": "varushort",
"unsigned variable long": "varuint",
"unsigned variable int": "varuint",
"unsigned variable short": "varushort",
"variable long": "varint",
"variable int": "varint",
"variable short": "varshort",
"unsigned long": "uint",
"unsigned int": "uint",
"unsigned short": "ushort",
"unsigned byte": "ubyte",
"long": "int",
"ushort le": "ushort_le",
"uint le": "uint_le",
"playeritem": ["playeritem"],
"playeritemedit": ["struct",
["$type","ubyte"],
["model",["opt",["$type",0,"bitflag"],["array",["itemvar","modelcount"],"varuint"]]],
["flag2",["opt",["$type",1,"bitflag"],"true"]],
["color",["opt",["$type",2,"bitflag"],["struct",
["$coltype","ushort"],
["col2",["opt",["$coltype",12816],["array",["itemvar","colorcount"],"ushort"]]],
["col4",["opt",["$coltype",8719],["array",4,["tuple","ushort","ushort"]]]]
]]],
["material",["opt",["$type",3,"bitflag"],["struct",
["header","ubyte"],
["materials",["array",["itemvar","matcount"],"ushort"]]
]]]
],
"ubyte": "unsigned byte",
"ushort": "unsigned short",
"uint": "unsigned int",
"varushort": "variable unsigned short",
"varuint": "variable unsigned int",
"varshort": "variable short",
"varint": "variable int",
"unsigned tribyte": "utribyte",
"tailed unsigned short": ["tailed varushort"],
"boolean": "bool",
//obsolete backward compat
"true": true,
"false": false,
"0": 0,
"1": 1,
"-1": -1,
"null": null,
"extrasmap": [ "array","ubyte",["struct",
["$type","unsigned byte"],
["prop","unsigned tribyte"],
["intvalue",["opt",["$type",0],"int"]],
["stringvalue",["opt",["$type",1],"string"]]
]],
"buildnr": ["buildnr"],//needs to be in array to get invoked as function
"item_modelid": ["match","buildnr",{">=670":"varuint",">=0":"ushort"}],
"animid": ["match","buildnr",{">=670":"varnullint",">=0":"ushort"}],
"uivalues": ["array","ubyte",["match","ubyte",{"0":"int","1":"string"}]],
"uivaluesint": ["array","ubyte","int"]
{
"variable unsigned long": "varuint",
"variable unsigned int": "varuint",
"variable unsigned short": "varushort",
"unsigned variable long": "varuint",
"unsigned variable int": "varuint",
"unsigned variable short": "varushort",
"variable long": "varint",
"variable int": "varint",
"variable short": "varshort",
"unsigned long": "uint",
"unsigned int": "uint",
"unsigned short": "ushort",
"unsigned byte": "ubyte",
"long": "int",
"ushort le": "ushort_le",
"uint le": "uint_le",
"playeritem": ["playeritem"],
"playeritemedit": ["struct",
["$type","ubyte"],
["model",["opt",["$type",0,"bitflag"],["array",["itemvar","modelcount"],"varuint"]]],
["flag2",["opt",["$type",1,"bitflag"],"true"]],
["color",["opt",["$type",2,"bitflag"],["struct",
["$coltype","ushort"],
["col2",["opt",["$coltype",12816],["array",["itemvar","colorcount"],"ushort"]]],
["col4",["opt",["$coltype",8719],["array",4,["tuple","ushort","ushort"]]]]
]]],
["material",["opt",["$type",3,"bitflag"],["struct",
["header","ubyte"],
["materials",["array",["itemvar","matcount"],"ushort"]]
]]]
],
"modelmorphs": ["struct",
["unk0","ushort"],
["varbit","ushort"],
["varp","ushort"],
["flags","ubyte"],
["multimodel",["opt","flags&1",["array","ubyte",["struct",
["value","ubyte"],
["models",["array","ubyte",["struct",
["unk1","ushort"],
["unk2","ushort"],
["unk3","varuint"],
["extracount","ubyte"],
["extra1",["opt","extracount>=1","ubyte"]],
["extra2",["opt","extracount>=2","ubyte"]],
["extra3",["opt","extracount>=3","ubyte"]]
]]]
]]]],
["multiheadmodel",["opt","flags&2",["array","ubyte",["struct",
["value","ubyte"],
["models",["array","ubyte",["struct",
["unk1","ushort"],
["unk2","ushort"],
["unk3","varuint"]
]]]
]]]],
["multiretex",["opt","flags&4",["array","ubyte",["struct",
["value","ubyte"],
["models",["array","ubyte",["struct",
["unk1","ushort"],
["unk2","ushort"],
["unk3","ushort"],
["unk4","ushort"]
]]]
]]]],
["multirecol",["opt","flags&8",["array","ubyte",["struct",
["value","ubyte"],
["models",["array","ubyte",["struct",
["unk1","ushort"],
["unk2","ushort"],
["unk3","ushort"],
["unk4","ushort"]
]]]
]]]],
["multiretint",["opt","flags&16",["array","ubyte",["struct",
["value","ubyte"],
["models",["array","ubyte",["struct",
["unk1","ushort"],
["unk2","ushort"],
["unk3","uint"]
]]]
]]]],
["default","ushort"]
],
"ubyte": "unsigned byte",
"ushort": "unsigned short",
"uint": "unsigned int",
"varushort": "variable unsigned short",
"varuint": "variable unsigned int",
"varshort": "variable short",
"varint": "variable int",
"unsigned tribyte": "utribyte",
"tailed unsigned short": ["tailed varushort"],
"boolean": "bool",
//obsolete backward compat
"true": true,
"false": false,
"0": 0,
"1": 1,
"-1": -1,
"null": null,
"extrasmap": [ "array","ubyte",["struct",
["$type","unsigned byte"],
["prop","unsigned tribyte"],
["intvalue",["opt",["$type",0],"int"]],
["stringvalue",["opt",["$type",1],"string"]]
]],
"buildnr": ["buildnr"],//needs to be in array to get invoked as function
"item_modelid": ["match","buildnr",{">=670":"varuint",">=0":"ushort"}],
"animid": ["match","buildnr",{">=670":"varnullint",">=0":"ushort"}],
"uivalues": ["array","ubyte",["match","ubyte",{"0":"int","1":"string"}]],
"uivaluesint": ["array","ubyte","int"]
}