Only show/use appropriate parent or child registers in tile layout group

Do not use both
pull/436/head
Jonathan G Rennison 2 years ago
parent fdf2d3dfe1
commit 77f25a48a9

@ -2400,13 +2400,16 @@ void OptimiseVarAction2DeterministicSpriteGroup(VarAction2OptimiseState &state,
if (reg->flags & TLF_DODRAW) bits.set(reg->dodraw, true); if (reg->flags & TLF_DODRAW) bits.set(reg->dodraw, true);
if (reg->flags & TLF_SPRITE) bits.set(reg->sprite, true); if (reg->flags & TLF_SPRITE) bits.set(reg->sprite, true);
if (reg->flags & TLF_PALETTE) bits.set(reg->palette, true); if (reg->flags & TLF_PALETTE) bits.set(reg->palette, true);
if (reg->flags & TLF_BB_XY_OFFSET) { if (element->IsParentSprite()) {
bits.set(reg->delta.parent[0], true); if (reg->flags & TLF_BB_XY_OFFSET) {
bits.set(reg->delta.parent[1], true); bits.set(reg->delta.parent[0], true);
bits.set(reg->delta.parent[1], true);
}
if (reg->flags & TLF_BB_Z_OFFSET) bits.set(reg->delta.parent[2], true);
} else {
if (reg->flags & TLF_CHILD_X_OFFSET) bits.set(reg->delta.child[0], true);
if (reg->flags & TLF_CHILD_Y_OFFSET) bits.set(reg->delta.child[1], true);
} }
if (reg->flags & TLF_BB_Z_OFFSET) bits.set(reg->delta.parent[2], true);
if (reg->flags & TLF_CHILD_X_OFFSET) bits.set(reg->delta.child[0], true);
if (reg->flags & TLF_CHILD_Y_OFFSET) bits.set(reg->delta.child[1], true);
} }
} }
} }

@ -749,11 +749,14 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, const char *paddi
log_reg(TLF_DODRAW, "TLF_DODRAW", reg->dodraw); log_reg(TLF_DODRAW, "TLF_DODRAW", reg->dodraw);
log_reg(TLF_SPRITE, "TLF_SPRITE", reg->sprite); log_reg(TLF_SPRITE, "TLF_SPRITE", reg->sprite);
log_reg(TLF_PALETTE, "TLF_PALETTE", reg->palette); log_reg(TLF_PALETTE, "TLF_PALETTE", reg->palette);
log_reg(TLF_BB_XY_OFFSET, "TLF_BB_XY_OFFSET x", reg->delta.parent[0]); if (element->IsParentSprite()) {
log_reg(TLF_BB_XY_OFFSET, "TLF_BB_XY_OFFSET y", reg->delta.parent[1]); log_reg(TLF_BB_XY_OFFSET, "TLF_BB_XY_OFFSET x", reg->delta.parent[0]);
log_reg(TLF_BB_Z_OFFSET, "TLF_BB_Z_OFFSET", reg->delta.parent[2]); log_reg(TLF_BB_XY_OFFSET, "TLF_BB_XY_OFFSET y", reg->delta.parent[1]);
log_reg(TLF_CHILD_X_OFFSET, "TLF_CHILD_X_OFFSET", reg->delta.child[0]); log_reg(TLF_BB_Z_OFFSET, "TLF_BB_Z_OFFSET", reg->delta.parent[2]);
log_reg(TLF_CHILD_Y_OFFSET, "TLF_CHILD_Y_OFFSET", reg->delta.child[1]); } else {
log_reg(TLF_CHILD_X_OFFSET, "TLF_CHILD_X_OFFSET", reg->delta.child[0]);
log_reg(TLF_CHILD_Y_OFFSET, "TLF_CHILD_Y_OFFSET", reg->delta.child[1]);
}
if (reg->flags & TLF_SPRITE_VAR10) { if (reg->flags & TLF_SPRITE_VAR10) {
seprintf(this->buffer, lastof(this->buffer), "%s TLF_SPRITE_VAR10 value: %X", padding, reg->sprite_var10); seprintf(this->buffer, lastof(this->buffer), "%s TLF_SPRITE_VAR10 value: %X", padding, reg->sprite_var10);
print(); print();

Loading…
Cancel
Save