aboutsummaryrefslogtreecommitdiff
path: root/utils.gbasm
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-05-09 10:28:14 +0200
committerAstatin <[email protected]>2025-05-09 10:28:14 +0200
commit507a9876b85f47ff81cc9150bea858eec064ba05 (patch)
tree5b24e7836ce07ad8768d9c7ad7a1c6a2b3e92106 /utils.gbasm
parent4b02238d88af30c98b2f8d44e5200fb80b04bcad (diff)
Refactor viewport to not need Fix_Bunny_Screen anymore and "fix" it before every frame
Diffstat (limited to 'utils.gbasm')
-rw-r--r--utils.gbasm71
1 files changed, 13 insertions, 58 deletions
diff --git a/utils.gbasm b/utils.gbasm
index ae509f0..5cb39ca 100644
--- a/utils.gbasm
+++ b/utils.gbasm
@@ -100,64 +100,19 @@ bff: ; dest = HL, n = BC
LD A, $mem_bunny_direction
BIT 3, A
JR Z, =$end
- LD A, $mem_bunny_direction
- AND $07
- CP $enum_direction_down
- JR Z, =$down
- CP $enum_direction_right
- JR Z, =$right
- CP $enum_direction_up
- JR Z, =$up
-
- $left:
- LD A, $mem_prepared_viewport_x
- SUB $09
- AND $0f
- INC A
- XOR $ff
- INC A
- ADD $10
- ADD B
-
- LD B, A
- JR =$end
-
- $right:
- LD A, $mem_prepared_viewport_x
- SUB $08
- AND $0f
- XOR $ff
- INC A
- ADD B
-
- LD B, A
-
- JR =$end
-
- $up:
- LD A, $mem_prepared_viewport_y
- SUB $09
- AND $0f
- INC A
- XOR $ff
- INC A
- ADD $10
- ADD C
-
- LD C, A
-
- JR =$end
-
- $down:
- LD A, $mem_prepared_viewport_y
- SUB $08
- AND $0f
- XOR $ff
- INC A
- ADD C
-
- LD C, A
-
+ PUSH DE
+ DEC A
+ XOR $01
+ INC A
+ LD D, A
+ LD A, $mem_bunny_flags
+ BIT 0, A
+ LD A, $mem_moving_animation_step
+ JR Z, =$skip_double
+ SLA A
+ $skip_double:
+ .ADD_A_TO_DIRECTION_BC
+ POP DE
$end:
.END