diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp index 6b7ffda99a..eb20769acd 100644 --- a/src/newgrf_spritegroup.cpp +++ b/src/newgrf_spritegroup.cpp @@ -468,6 +468,16 @@ static char *DumpSpriteGroupAdjust(char *p, const char *last, const Deterministi } }; + auto append_extended_var = [&](int var_id) { + extern const GRFVariableMapDefinition _grf_action2_remappable_variables[]; + for (const GRFVariableMapDefinition *info = _grf_action2_remappable_variables; info->name != nullptr; info++) { + if (var_id == info->id) { + p += seprintf(p, last, " (%s)", info->name); + break; + } + } + }; + if (IsEvalAdjustJumpOperation(adjust.operation)) { conditional_indent++; } @@ -508,15 +518,15 @@ static char *DumpSpriteGroupAdjust(char *p, const char *last, const Deterministi if (adjust.variable == A2VRI_VEHICLE_CURRENT_SPEED_SCALED) { p += seprintf(p, last, " (current_speed_scaled)"); } else if (adjust.variable >= 0x100) { - extern const GRFVariableMapDefinition _grf_action2_remappable_variables[]; - for (const GRFVariableMapDefinition *info = _grf_action2_remappable_variables; info->name != nullptr; info++) { - if (adjust.variable == info->id) { - p += seprintf(p, last, " (%s)", info->name); - break; - } - } + append_extended_var(adjust.variable); + } + if (adjust.variable == 0x7B && adjust.parameter >= 0x100) { + p += seprintf(p, last, " (parameter: %X", adjust.parameter); + append_extended_var(adjust.parameter); + p += seprintf(p, last, ")"); + } else if ((adjust.variable >= 0x60 && adjust.variable <= 0x7F && adjust.variable != 0x7E) || adjust.parameter != 0) { + p += seprintf(p, last, " (parameter: %X)", adjust.parameter); } - if ((adjust.variable >= 0x60 && adjust.variable <= 0x7F && adjust.variable != 0x7E) || adjust.parameter != 0) p += seprintf(p, last, " (parameter: %X)", adjust.parameter); p += seprintf(p, last, ", shift: %X, and: %X", adjust.shift_num, adjust.and_mask); switch (adjust.type) { case DSGA_TYPE_DIV: p += seprintf(p, last, ", add: %X, div: %X", adjust.add_val, adjust.divmod_val); break;