Houmgaor
b1972e3c96
feat(savedata): write back zenny/gzenny/CP to ZZ save blob
...
Mirrors the read path added in 47277c7 : updateSaveDataWithStruct now
flushes Zenny/GZenny/CP back to the blob for ZZ, using the same
`ok && off > 0 && off+size <= len(blob)` guard so unmapped modes remain
inert.
Tests lock down byte-level idempotence — the most important invariant
for save data. Parsing a live kirito ZZ blob and immediately writing
the struct back produces a byte-identical blob, so enabling these
fields cannot silently corrupt existing player saves on the next save
cycle. Additional coverage: round-trip through both paths, non-ZZ
modes never touch the blob bytes, and truncated blobs don't panic on
write.
2026-04-17 23:06:16 +02:00
..
2026-04-06 18:04:34 +02:00
2026-03-23 10:57:01 +01:00
2026-04-06 19:33:32 +02:00
2026-04-06 18:26:15 +02:00
2026-04-06 20:08:27 +02:00
2026-04-06 20:08:27 +02:00
2026-03-23 11:15:20 +01:00
2026-03-23 11:15:20 +01:00
2026-04-06 19:52:19 +02:00
2026-04-06 20:08:27 +02:00
2026-04-06 16:05:15 +02:00
2026-03-20 17:52:01 +01:00
2026-04-06 16:22:23 +02:00
2026-04-06 16:16:05 +02:00
2026-03-22 14:30:37 +01:00
2026-04-06 18:04:10 +02:00
2026-03-22 00:27:05 +01:00
2026-03-22 00:27:05 +01:00
2026-03-21 17:59:25 +01:00
2026-04-06 20:08:27 +02:00
2026-03-22 00:27:05 +01:00
2026-04-06 20:08:27 +02:00
2026-04-06 19:33:32 +02:00
2026-03-23 22:20:32 +01:00
2026-03-23 22:50:27 +01:00
2026-03-22 14:30:37 +01:00
2026-04-06 20:08:27 +02:00
2026-03-23 10:57:01 +01:00
2026-03-21 01:36:31 +01:00
2026-03-20 17:52:01 +01:00
2026-03-23 10:57:01 +01:00
2026-03-23 22:20:32 +01:00
2026-04-06 19:52:19 +02:00
2026-03-23 22:50:27 +01:00
2026-03-20 17:52:01 +01:00
2026-03-22 14:30:37 +01:00
2026-04-06 16:05:19 +02:00
2026-03-23 11:06:50 +01:00
2026-04-06 20:28:08 +02:00
2026-04-06 20:28:08 +02:00
2026-04-06 20:28:08 +02:00
2026-04-06 20:28:08 +02:00
2026-04-06 20:28:08 +02:00
2026-04-06 20:00:43 +02:00
2026-04-06 20:00:43 +02:00
2026-04-17 23:06:16 +02:00
2026-04-17 23:06:16 +02:00
2026-04-06 20:00:43 +02:00
2026-04-06 20:00:43 +02:00
2026-04-06 20:00:43 +02:00
2026-04-06 20:00:43 +02:00
2026-04-06 20:00:43 +02:00
2026-04-06 19:33:32 +02:00
2026-04-06 19:33:32 +02:00
2026-04-06 18:04:10 +02:00
2026-04-06 19:06:09 +02:00
2026-03-20 17:52:01 +01:00
2026-04-06 17:48:12 +02:00
2026-04-06 17:48:12 +02:00
2026-03-23 12:52:28 +01:00
2026-03-21 17:59:25 +01:00
2026-03-22 00:27:05 +01:00
2026-04-06 19:52:19 +02:00
2026-04-06 19:52:19 +02:00
2026-03-22 14:30:37 +01:00
2026-04-06 19:52:19 +02:00
2026-03-23 10:57:01 +01:00
2026-04-06 20:08:27 +02:00
2026-04-06 20:08:27 +02:00
2026-04-06 17:48:12 +02:00
2026-04-06 19:33:32 +02:00
2026-03-21 17:59:25 +01:00
2026-04-06 19:33:32 +02:00
2026-04-06 19:32:35 +02:00
2026-04-06 20:28:08 +02:00
2026-04-06 20:28:08 +02:00
2026-03-23 11:06:50 +01:00
2026-04-06 20:08:27 +02:00
2026-03-22 14:30:37 +01:00
2026-04-06 17:48:12 +02:00