aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rw-r--r--definitions.gbasm11
-rw-r--r--entity/bunny.gbasm5
-rw-r--r--main.gbasm4
4 files changed, 13 insertions, 9 deletions
diff --git a/TODO b/TODO
index 896ce94..a61fd0f 100644
--- a/TODO
+++ b/TODO
@@ -1,9 +1,7 @@
Bugs:
- -> Health is not updated on death
-> Penguins freeze can cancel hops but not freezes
-> Foxes can attack even if bunny hopped away
-> Emulator crash with "not implemented: Only XKB keymaps are supported when unfocused (or workspace change maybe ?)
- -> There is no way to change direction outside of moving
-> There is no indicator that the max health is 20
Need to be refactored:
diff --git a/definitions.gbasm b/definitions.gbasm
index baa72a4..6a8aeaf 100644
--- a/definitions.gbasm
+++ b/definitions.gbasm
@@ -73,12 +73,13 @@
.DEFINE mem_current_mode ($c014)
.DEFINE mem_requested_mode ($c015)
+; bit 7: setp if map, objects and gui update are frozen
.DEFINE enum_dungeon_mode $00
-.DEFINE enum_dungeon_menu_mode $01
-.DEFINE enum_dungeon_dialogue_mode $02
-.DEFINE enum_loading_mode $03
-.DEFINE enum_dead_mode $04
-.DEFINE enum_animation_wait_mode $05
+.DEFINE enum_dead_mode $01
+.DEFINE enum_dungeon_menu_mode $80
+.DEFINE enum_dungeon_dialogue_mode $81
+.DEFINE enum_loading_mode $82
+.DEFINE enum_animation_wait_mode $83
.DEFINE mem_menu_cursor_position ($c016)
.DEFINE mem_last_button_direction ($c017)
diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm
index c9bd141..4b9bba7 100644
--- a/entity/bunny.gbasm
+++ b/entity/bunny.gbasm
@@ -72,12 +72,17 @@ Move_Bunny:
SET 3, A
LD $mem_map_loading_flags, A
+ LD A, $mem_button_action
+ BIT 1, A
+ JR NZ, =.Start_action_or_movement.cancel_movement
+
LD A, D
CALL =Get_Position_After_Move
CALL =Is_Collisionable
CALL =Carve_Entity_Collision_Map
CP $00
JR Z, =.Start_action_or_movement.not_collision
+ .Start_action_or_movement.cancel_movement:
RES 3, D
LD A, $mem_map_loading_flags
diff --git a/main.gbasm b/main.gbasm
index 7087691..a11306c 100644
--- a/main.gbasm
+++ b/main.gbasm
@@ -162,7 +162,7 @@ VBLANK_Entrypoint:
CALL =Loading_Mode_VBlank
LD A, $mem_current_mode
- CP $enum_dungeon_mode
+ BIT 7, A
JR NZ, =Skip_VBlank_Dungeon_Update
LD HL, $9d60
LD A, $mem_bunny_health
@@ -196,8 +196,8 @@ VBLANK_Entrypoint:
CP $enum_dungeon_mode
JR NZ, =Skip_Dungeon_Update
- CALL =Object_Interactions_Check
CALL =Entities_Actions
+ CALL =Object_Interactions_Check
CALL =Respawn_Entities
CALL =Prepare_Scrolling_Map