VarAction2: Add adjust types for combined (in)equality with constant

This commit is contained in:
Jonathan G Rennison
2022-06-03 14:17:15 +01:00
parent 1e52e51ce1
commit 263a87f5da
3 changed files with 25 additions and 1 deletions

View File

@@ -157,6 +157,8 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust &adjust, ScopeResolver
switch (adjust.type) {
case DSGA_TYPE_DIV: value = ((S)value + (S)adjust.add_val) / (S)adjust.divmod_val; break;
case DSGA_TYPE_MOD: value = ((S)value + (S)adjust.add_val) % (S)adjust.divmod_val; break;
case DSGA_TYPE_EQ: value = (value == adjust.add_val) ? 1 : 0; break;
case DSGA_TYPE_NEQ: value = (value != adjust.add_val) ? 1 : 0; break;
case DSGA_TYPE_NONE: break;
}
@@ -765,7 +767,9 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, int padding, uint
p += seprintf(p, lastof(this->buffer), ", shift: %X, and: %X", adjust.shift_num, adjust.and_mask);
switch (adjust.type) {
case DSGA_TYPE_DIV: p += seprintf(p, lastof(this->buffer), ", add: %X, div: %X", adjust.add_val, adjust.divmod_val); break;
case DSGA_TYPE_MOD: p += seprintf(p, lastof(this->buffer), ", add: %X, mod: %X", adjust.add_val, adjust.divmod_val); break;
case DSGA_TYPE_MOD: p += seprintf(p, lastof(this->buffer), ", add: %X, mod: %X", adjust.add_val, adjust.divmod_val); break;
case DSGA_TYPE_EQ: p += seprintf(p, lastof(this->buffer), ", eq: %X", adjust.add_val); break;
case DSGA_TYPE_NEQ: p += seprintf(p, lastof(this->buffer), ", neq: %X", adjust.add_val); break;
case DSGA_TYPE_NONE: break;
}
p += seprintf(p, lastof(this->buffer), ", op: %X (%s)", adjust.operation, GetAdjustOperationName(adjust.operation));