Lenient IRS.
This commit is contained in:
parent
62cfe3c88c
commit
b89536a460
BIN
bin/DMGTRIS.GBC
BIN
bin/DMGTRIS.GBC
Binary file not shown.
Binary file not shown.
|
@ -582,13 +582,69 @@ TrySpawnPiece::
|
||||||
cp a, $FF
|
cp a, $FF
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
; Otherwise check the rotation, and if it's not zero, try to reset it.
|
; Otherwise, try in this order: 0, 1, 3, 2
|
||||||
ldh a, [hCurrentPieceRotationState]
|
ldh a, [hCurrentPieceRotationState]
|
||||||
|
ldh [hWantRotation], a
|
||||||
|
|
||||||
|
; Try rotation state 0.
|
||||||
|
.try0
|
||||||
cp a, 0
|
cp a, 0
|
||||||
|
jr z, .try1
|
||||||
|
xor a, a
|
||||||
|
ldh [hCurrentPieceRotationState], a
|
||||||
|
call SetPieceDataOffset
|
||||||
|
ldh a, [hCurrentPieceY]
|
||||||
|
ld b, a
|
||||||
|
ldh a, [hCurrentPieceX]
|
||||||
|
call XYToSFieldPtr
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
call GetPieceDataFast
|
||||||
|
call CanPieceFitFast
|
||||||
|
cp a, $FF
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
; Reset the rotation.
|
; Try rotation state 1.
|
||||||
xor a, a
|
.try1
|
||||||
|
ldh a, [hWantRotation]
|
||||||
|
cp a, 1
|
||||||
|
jr z, .try3
|
||||||
|
ld a, 1
|
||||||
|
ldh [hCurrentPieceRotationState], a
|
||||||
|
call SetPieceDataOffset
|
||||||
|
ldh a, [hCurrentPieceY]
|
||||||
|
ld b, a
|
||||||
|
ldh a, [hCurrentPieceX]
|
||||||
|
call XYToSFieldPtr
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
call GetPieceDataFast
|
||||||
|
call CanPieceFitFast
|
||||||
|
cp a, $FF
|
||||||
|
ret z
|
||||||
|
|
||||||
|
; Try rotation state 3.
|
||||||
|
.try3
|
||||||
|
ldh a, [hWantRotation]
|
||||||
|
cp a, 3
|
||||||
|
jr z, .try2
|
||||||
|
ld a, 3
|
||||||
|
ldh [hCurrentPieceRotationState], a
|
||||||
|
call SetPieceDataOffset
|
||||||
|
ldh a, [hCurrentPieceY]
|
||||||
|
ld b, a
|
||||||
|
ldh a, [hCurrentPieceX]
|
||||||
|
call XYToSFieldPtr
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
call GetPieceDataFast
|
||||||
|
call CanPieceFitFast
|
||||||
|
cp a, $FF
|
||||||
|
ret z
|
||||||
|
|
||||||
|
; Try rotation state 2.
|
||||||
|
.try2
|
||||||
|
ld a, 2
|
||||||
ldh [hCurrentPieceRotationState], a
|
ldh [hCurrentPieceRotationState], a
|
||||||
call SetPieceDataOffset
|
call SetPieceDataOffset
|
||||||
ldh a, [hCurrentPieceY]
|
ldh a, [hCurrentPieceY]
|
||||||
|
|
Loading…
Reference in New Issue