From 6a17f00a275cc624808cfa5243cfe41b5bcf5523 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 3 Jun 2022 19:13:07 +0100 Subject: [PATCH] VarAction2: Ensure dead store elimination doesn't break variable 0x7B --- src/newgrf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 8cbb7b3590..3500e45147 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6382,7 +6382,7 @@ static void HandleVarAction2DeadStoreElimination() /* Redundant store */ group->adjusts.erase(group->adjusts.begin() + i); i--; - if ((i + 1 < (int)group->adjusts.size() && group->adjusts[i + 1].operation == DSGA_OP_RST) || + if ((i + 1 < (int)group->adjusts.size() && group->adjusts[i + 1].operation == DSGA_OP_RST && group->adjusts[i + 1].variable != 0x7B) || (i + 1 == (int)group->adjusts.size() && group->ranges.empty() && !group->calculated_result)) { /* Now the store is eliminated, the current value has no users */ while (i >= 0) {