From ec1f79b44203735f581c7f85b6c23216aaf587a6 Mon Sep 17 00:00:00 2001 From: Astatin Date: Thu, 19 Sep 2024 18:56:32 +0900 Subject: Read action buttons and set it in the entity direction highest nibble --- entity/utils.gbasm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 entity/utils.gbasm (limited to 'entity/utils.gbasm') diff --git a/entity/utils.gbasm b/entity/utils.gbasm new file mode 100644 index 0000000..23abb3a --- /dev/null +++ b/entity/utils.gbasm @@ -0,0 +1,48 @@ +Get_Position_After_Move: ; entity (whatever alignement) in HL, direction to test in A, X Result in C, Y result in B + PUSH HL + PUSH AF + + LD A, L + AND $f8 + LD L, A + + INC HL + + LD A, (HL+) + LD C, A + LD A, (HL+) + LD B, A + + POP AF + BIT 3, A + JR Z, =Get_Position_After_Move.direction_end + + PUSH BC + + DEC A + LD B, A + + SLA A + AND $02 + DEC A + + BIT 1, B + JR NZ, =Get_Position_After_Move.vertical + + Get_Position_After_Move.horizontal: + POP BC + ADD C + LD C, A + JR =Get_Position_After_Move.direction_end + + Get_Position_After_Move.vertical: + POP BC + ADD B + LD B, A + + Get_Position_After_Move.direction_end: + + POP HL + RET + + -- cgit v1.2.3-70-g09d2