scroll.server/crates/titan/src
WiseDev 81d6fe3922 take the checksum from before the closing checkpoint
LogicGameMode::encode reads its return value out of getCheckSum() and
only then writes it:

  v15 = ChecksumEncoder::getCheckSum(a2);
  (...vptr+88)(a2, v15);        // the checkpoint vint
  return v15;

we were reading ours after that write, so the closing checkpoint was
folded into the number we compared. the two could never match, whatever
the simulation did - which is why tick 41 disagreed with six untouched
towers on the field.

write() now hands back the value it wrote, the way encode() does.
2026-08-23 15:04:51 +03:00
..
crypto move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
csv move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
io take the checksum from before the closing checkpoint 2026-08-23 15:04:51 +03:00
net move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
checksum.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
codec.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
data_ref.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
error.rs build and send the battle sector state 2026-08-23 10:24:20 +03:00
factory.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
frame.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
json.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
lib.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
logic_long.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
message.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00