From 04a9c73ec298d491ae25ece40ceb78c19e8c6d37 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 3 Jun 2022 15:34:50 +0100 Subject: [PATCH] VarAction2: Combine RST, UMIN sequence to load with neq 0 adjust --- src/newgrf.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3ba332daa6..5676fdc0d5 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5920,6 +5920,15 @@ static void OptimiseVarAction2Adjust(VarAction2OptimiseState &state, const GrfSp break; } else { state.inference = VA2AIF_SIGNED_NON_NEGATIVE | VA2AIF_ONE_OR_ZERO; + if (group->adjusts.size() >= 2) { + DeterministicSpriteGroupAdjust &prev = group->adjusts[group->adjusts.size() - 2]; + if (prev.operation == DSGA_OP_RST && prev.type == DSGA_TYPE_NONE) { + prev.type = DSGA_TYPE_NEQ; + prev.add_val = 0; + group->adjusts.pop_back(); + state.inference |= VA2AIF_SINGLE_LOAD; + } + } } } break;