aboutsummaryrefslogtreecommitdiff
path: root/entity
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-11-05 19:42:46 +0900
committerAstatin <[email protected]>2024-11-05 19:42:46 +0900
commit6c8f7c72cb96ce59ffcda5279225381ecb394b4f (patch)
tree941e6b464bd0fe90b325ae792b3a6fdbdc9b40fe /entity
parent14ae7d8def1159b395bf1176b351651cbd98ba19 (diff)
Add a jump table macro
Diffstat (limited to 'entity')
-rw-r--r--entity/actions.gbasm19
-rw-r--r--entity/bunny.gbasm23
-rw-r--r--entity/init.gbasm2
3 files changed, 5 insertions, 39 deletions
diff --git a/entity/actions.gbasm b/entity/actions.gbasm
index 524c28d..f70c320 100644
--- a/entity/actions.gbasm
+++ b/entity/actions.gbasm
@@ -30,13 +30,6 @@ Entity_Action:
INC HL
LD E, (HL)
- LD D, $00
-
- SLA E
- RL D
- SLA E
- RL D
-
PUSH HL
LD A, L
@@ -45,18 +38,8 @@ Entity_Action:
LD BC, =Turn_Jump_table
LD A, E
- ADD C
- LD E, A
- LD A, D
- ADC B
- LD D, A
- ; This is confusing but this thing is actually CALL DE
- LD BC, =Entity_Action.interaction_end
- PUSH BC
- PUSH DE
- RET
- Entity_Action.interaction_end:
+ .JUMP_TABLE
POP HL
diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm
index f180e9e..4e27929 100644
--- a/entity/bunny.gbasm
+++ b/entity/bunny.gbasm
@@ -169,28 +169,11 @@ Move_Bunny:
PUSH HL
PUSH BC
- LD E, (HL)
- LD D, $00
-
- SLA E
- RL D
- SLA E
- RL D
-
LD BC, =Interaction_Jump_table
- LD A, E
- ADD C
- LD E, A
- LD A, D
- ADC B
- LD D, A
-
- LD BC, =Interaction.interaction_end
- PUSH BC
- PUSH DE
- RET
+ LD A, (HL)
+
+ .JUMP_TABLE
- Interaction.interaction_end:
POP BC
POP HL
diff --git a/entity/init.gbasm b/entity/init.gbasm
index c5f0b0e..4281327 100644
--- a/entity/init.gbasm
+++ b/entity/init.gbasm
@@ -122,7 +122,7 @@ Initialize_Fox:
LD (HL+), A
; Action
- LD A, $01
+ LD A, $02
LD (HL+), A
LD A, $04