ref: ed0e4c304bed990948541fc0cf87309d75653806
parent: 875f0af21fbced5cbf6cf63b86fe3dc51682c863
author: Ben Harris <bjh21@bjh21.me.uk>
date: Wed Feb 1 18:00:14 EST 2023
Fix move validation in Netslide The maximum length of a column move in Netslide is the height of the puzzle, and the maximum length of a row move is the width, not the other way around. Moves of absolute length more than 1 can't be generated by interpret_move(), but they can come from save files. On non-square grids, the incorrect check led to assertion failures: "0 <= tx && tx < w" and "0 <= ty && ty < h". This save file demonstrates the problem: SAVEFILE:41:Simon Tatham's Portable Puzzle Collection GAME :8:Netslide PARAMS :3:4x9 CPARAMS :3:4x9 DESC :39:0000000000000h0h0000000000000000000000v NSTATES :1:2 STATEPOS:1:2 MOVE :4:R0,5