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. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||