aboutsummaryrefslogtreecommitdiff
path: root/entity
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-03-13 19:08:09 +0900
committerAstatin <[email protected]>2025-03-13 19:08:09 +0900
commit62701690d1c7b95b639d63d0cb9cd6ebeb9ac876 (patch)
tree833c88d35818c4d63e7d440355254aeb47af2cfd /entity
parentab45947d3fdc9885c497d9fc3dd124c7986f6ea4 (diff)
Adding multi-step dialogue
Diffstat (limited to 'entity')
-rw-r--r--entity/actions.gbasm17
-rw-r--r--entity/bunny.gbasm84
-rw-r--r--entity/init.gbasm1
-rw-r--r--entity/questgoal.gbasm11
4 files changed, 67 insertions, 46 deletions
diff --git a/entity/actions.gbasm b/entity/actions.gbasm
index 051b488..ebbfb18 100644
--- a/entity/actions.gbasm
+++ b/entity/actions.gbasm
@@ -158,15 +158,14 @@ Interaction_Jump_table:
Enemy_Interaction:
LD A, L
AND $f0
- ADD $06
- LD L, A
- LD A, (HL)
- DEC A
- DAA
- LD (HL+), A
+ LD $mem_entity_being_attacked_low, A
+ LD A, $mem_bunny_direction
+ AND $07
+ OR $10
+ LD $mem_bunny_direction, A
- SET 3, (HL)
- LD A, $24
- LD $mem_blinking_animation_counter, A
+ LD A, $mem_map_loading_flags
+ SET 4, A
+ LD $mem_map_loading_flags, A
RET
diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm
index 8438d3e..32cff97 100644
--- a/entity/bunny.gbasm
+++ b/entity/bunny.gbasm
@@ -58,6 +58,9 @@ Move_Bunny:
.Start_action_or_movement:
LD A, $mem_map_loading_flags
+ BIT 4, A
+ JP NZ, =.Start_action_or_movement.start_from_interaction
+
BIT 3, A
JP NZ, =.Start_action_or_movement.end
@@ -65,7 +68,7 @@ Move_Bunny:
LD A, $mem_button_direction
CP $00
- JP Z, =.Start_action_or_movement.test_action
+ JP Z, =.Start_action_or_movement.end
SET 3, A
LD D, A
@@ -105,22 +108,9 @@ Move_Bunny:
JR =.Start_action_or_movement.end
- .Start_action_or_movement.test_action:
- LD A, $mem_button_action
- LD B, A
- LD A, $mem_last_button_action
- XOR B
- AND B
- CP $00
- JR Z, =.Start_action_or_movement.end
- BIT 0, A
- JR Z, =.Start_action_or_movement.end
- LD A, $mem_bunny_direction
- AND $07
- OR $10
- LD $mem_bunny_direction, A
-
+ .Start_action_or_movement.start_from_interaction:
LD A, $mem_map_loading_flags
+ RES 4, A
SET 3, A
LD $mem_map_loading_flags, A
.Start_action_or_movement.end:
@@ -137,6 +127,36 @@ Move_Bunny:
LD $mem_bunny_flags, A
.Reset_Blinking_flag.end:
+ .Delayed_Attack:
+ LD A, $mem_moving_animation_step
+ CP $08
+ JR NZ, =.Delayed_Attack.end
+
+ LD A, $mem_map_loading_flags
+ BIT 3, A
+ JR Z, =.Delayed_Attack.end
+
+ LD A, $mem_entity_being_attacked_low
+ CP $00
+ JR Z, =.Delayed_Attack.end
+
+ ADD $06
+ LD L, A
+ LD H, high($mem_entities_list)
+ LD A, (HL)
+ DEC A
+ DAA
+ LD (HL+), A
+ DBG
+
+ SET 3, (HL)
+ LD A, $24
+ LD $mem_blinking_animation_counter, A
+
+ LD A, $00
+ LD $mem_entity_being_attacked_low, A
+ .Delayed_Attack.end:
+
.Scroll_viewport:
LD A, $mem_map_loading_flags
BIT 3, A
@@ -300,19 +320,20 @@ Move_Bunny:
LD $mem_viewport_y, A
.Middle_movement_doublespeed_viewport_update.end:
-
.Interaction:
LD A, $mem_map_loading_flags
BIT 3, A
- JP Z, =.Interaction.end
- LD A, $mem_moving_animation_step
- CP $02
JP NZ, =.Interaction.end
-
- LD A, $mem_bunny_direction
- AND $f8
- CP $10
- JR NZ, =.Interaction.end
+ .Interaction.test_action:
+ LD A, $mem_button_action
+ LD B, A
+ LD A, $mem_last_button_action
+ XOR B
+ AND B
+ CP $00
+ JP Z, =.Interaction.end
+ BIT 0, A
+ JP Z, =.Interaction.end
LD A, $mem_bunny_x
LD B, A
@@ -332,7 +353,7 @@ Move_Bunny:
ADD $10
LD L, A
CP $00
- JR Z, =.Interaction.end
+ JR Z, =.Interaction.for_else
LD A, (HL+)
CP $00
@@ -358,9 +379,20 @@ Move_Bunny:
POP BC
POP HL
+ JR =.Interaction.end
.Interaction.entities_loop.next:
JR =.Interaction.entities_loop
+
+ .Interaction.for_else:
+ LD A, $mem_bunny_direction
+ AND $07
+ OR $10
+ LD $mem_bunny_direction, A
+
+ LD A, $mem_map_loading_flags
+ SET 4, A
+ LD $mem_map_loading_flags, A
.Interaction.end:
.Check_End_Action:
diff --git a/entity/init.gbasm b/entity/init.gbasm
index d263248..e9a3cbc 100644
--- a/entity/init.gbasm
+++ b/entity/init.gbasm
@@ -137,7 +137,6 @@ Initialize_Enemy: ; HL => pointer to entity struct
ADD $03
Initialize_Entity: ; HL => pointer to entity struct, A => entity loaded index
- DBG
LD E, A
SLA A
SLA A
diff --git a/entity/questgoal.gbasm b/entity/questgoal.gbasm
index d39f786..9885cea 100644
--- a/entity/questgoal.gbasm
+++ b/entity/questgoal.gbasm
@@ -39,16 +39,7 @@ Open_Dialogue:
JR =.Check_end
.Check_end:
- LD HL, $dialogue_first_line
- LD BC, =Bunny_Prefix
- CALL =Print_str
-
- LD HL, $dialogue_third_line
- LD BC, =Text_1
- CALL =Print_str
-
- LD A, $07
- LD $mem_display_flag, A
+ .START_SCRIPT =Demo_quest_bunny
LD A, $mem_bunny_direction
AND $0f