aboutsummaryrefslogtreecommitdiff
path: root/utils.gbasm
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-11-29 18:11:43 +0900
committerAstatin <[email protected]>2024-11-29 18:11:43 +0900
commit20422f9a4a180f2c148d93e68930f57379311ca7 (patch)
tree9e58002ad6bd9bd0b6243828f55aa03e1c6c9ab7 /utils.gbasm
parentc050a27b278df2efb4baf81b5e8c7e2f7dfd7e00 (diff)
Add animation display
Diffstat (limited to 'utils.gbasm')
-rw-r--r--utils.gbasm68
1 files changed, 68 insertions, 0 deletions
diff --git a/utils.gbasm b/utils.gbasm
index b24608b..b32d3ea 100644
--- a/utils.gbasm
+++ b/utils.gbasm
@@ -58,6 +58,74 @@ bzero: ; dest = HL, n = BC
.CALL_DE
.END
+.MACRODEF ADD_MOVING_ANIMATION_OFFSET ; Add current moving animation offset to BC, also uses A
+ LD A, $mem_map_loading_flags
+ BIT 3, A
+ JR Z, =$end
+ 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
+
+ $end:
+.END
+
Print_8bit: ; Number in A, Memory Tilemap position in HL
PUSH AF
PUSH BC