p
This commit is contained in:
parent
d14550dad6
commit
63e10af865
86 changed files with 5400 additions and 1209 deletions
|
|
@ -23,6 +23,7 @@
|
|||
"itemIndex",
|
||||
"normalItems",
|
||||
"physicsItems",
|
||||
"achievementMetadata",
|
||||
]);
|
||||
let lastEncodeStats = null;
|
||||
let lastDecodeStats = null;
|
||||
|
|
@ -1225,7 +1226,7 @@
|
|||
const angle = defaultAngleMilli(type);
|
||||
writeFixedSignedDefaults(writer, list, [angle, 0, angle, Math.round(35 * Math.PI / 180 * 1000), Math.round(48 * Math.PI / 180 * 1000), 0, angle], 7);
|
||||
}
|
||||
else if (type === "pressure_switch") writeFixedSignedDefaults(writer, list, [0, 1, 220, 160], 4);
|
||||
else if (type === "pressure_switch") writeFixedSignedDefaults(writer, list, [0, 0, 10, 220, 160, 360, 1080], 7);
|
||||
else if (isRotatableSaveType(type)) writeFixedSignedDefaults(writer, list, [defaultAngleMilli(type), 0], 2);
|
||||
else if (isServingFoodSaveType(type)) writeFixedSignedDefaults(writer, list, [row?.[3] || 0, row?.[3] || 0], 2);
|
||||
else writeGenericExtra(writer, list);
|
||||
|
|
@ -1252,7 +1253,7 @@
|
|||
const angle = defaultAngleMilli(type);
|
||||
return readFixedSignedDefaults(reader, [angle, 0, angle, Math.round(35 * Math.PI / 180 * 1000), Math.round(48 * Math.PI / 180 * 1000), 0, angle], 7);
|
||||
}
|
||||
if (type === "pressure_switch") return readFixedSignedDefaults(reader, [0, 1, 220, 160], 4);
|
||||
if (type === "pressure_switch") return readFixedSignedDefaults(reader, [0, 0, 10, 220, 160, 360, 1080], 7);
|
||||
if (isRotatableSaveType(type)) return readFixedSignedDefaults(reader, [defaultAngleMilli(type), 0], 2);
|
||||
if (isServingFoodSaveType(type)) return readFixedSignedDefaults(reader, [row?.[3] || 0, row?.[3] || 0], 2);
|
||||
return readGenericExtra(reader);
|
||||
|
|
@ -1489,6 +1490,7 @@
|
|||
tarinaiRows.forEach((row, index) => writer.category("tarinaiBasic", () => writeTarinaiPayload(writer, row || [], tarinaiMetas[index], tarCoordState, worldSeed, index)));
|
||||
const itemRows = Array.isArray(snapshot.i) ? snapshot.i : [];
|
||||
writeItemBlocks(writer, itemRows);
|
||||
writer.category("achievementMetadata", () => writer.str(JSON.stringify(snapshot.g || null)));
|
||||
return writer.out();
|
||||
} finally {
|
||||
activeStringWriteMap = null;
|
||||
|
|
@ -1511,8 +1513,15 @@
|
|||
const tarinaiHeaders = readTarinaiBitPlane(reader, tCount);
|
||||
for (let i = 0; i < tCount; i++) t.push(readTarinaiPayload(reader, tarinaiHeaders[i], tarCoordState, String(w?.[8] || ""), i));
|
||||
const items = readItemBlocks(reader);
|
||||
let g = null;
|
||||
try {
|
||||
const encodedMetadata = reader.str();
|
||||
g = encodedMetadata ? JSON.parse(encodedMetadata) : null;
|
||||
} catch (_) {
|
||||
throw new Error("invalid achievement metadata in binary save");
|
||||
}
|
||||
if (reader.pos !== reader.bytes.length) throw new Error("trailing bytes in binary save");
|
||||
return { v: Snapshot.version, a: "tj1", m: summaryFromPayload(w, t.length), w, t, i: items };
|
||||
return { v: Snapshot.version, a: "tj1", m: summaryFromPayload(w, t.length), w, t, i: items, g };
|
||||
} finally {
|
||||
activeStringReadList = null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue