diff --git a/main.c b/main.c index 0f245a2..0556c01 100644 --- a/main.c +++ b/main.c @@ -1175,9 +1175,6 @@ Lookup: default: // LCOV_EXCL_LINE BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE } - if (!is_valid(game)) { - exit(1); - } switch (action(command)) { case GO_TERMINATE: return true; diff --git a/saveresume.c b/saveresume.c index cf1dd6c..c5d5181 100644 --- a/saveresume.c +++ b/saveresume.c @@ -139,6 +139,12 @@ bool is_valid(struct game_t valgame) return false; } + /* Prevent RNG substitution. Why we are saving PRNG parameters? */ + + if (valgame.lcg_a != game.lcg_a || valgame.lcg_c != game.lcg_c || valgame.lcg_m != game.lcg_m) { + return false; + } + /* Bounds check for locations */ if ( valgame.chloc < -1 || valgame.chloc > NLOCATIONS || valgame.chloc2 < -1 || valgame.chloc2 > NLOCATIONS ||