Entities_Actions: LD A, $mem_moving_animation_step CP $05 JR NZ, =.Action_Functions CALL =Reset_Entities_Collision_Map .Action_Functions: LD HL, $mem_entities_list CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action CALL =Entity_Action RET Entity_Action: LD A, (HL+) CP $00 JR Z, =.skip INC HL INC HL INC HL LD E, (HL) PUSH HL LD A, L AND $f0 LD L, A LD BC, =Turn_Jump_table LD A, E .JUMP_TABLE POP HL .skip: LD A, L AND $f0 ADD $10 LD L, A RET Update_Animation_Steps: LD A, $mem_map_loading_flags BIT 3, A JR Z, =.update_mode LD A, $mem_moving_animation_step INC A AND $0f LD $mem_moving_animation_step, A CP $00 JR NZ, =.end LD A, $mem_map_loading_flags RES 3, A SET 1, A LD $mem_map_loading_flags, A .update_mode: LD A, $mem_requested_mode LD $mem_current_mode, A .end: LD A, $mem_bunny_health CP $00 JR Z =.Dead_mode RET .Dead_mode: LD A, $20 LD $mem_bunny_direction, A LD A, $enum_dead_mode LD $mem_current_mode, A .CLOSE_DIALOGUE RET Turn_Jump_table: ; 00 RET NOP NOP NOP ; 01 JP =Move_Bunny NOP ; 02 JP =Fox_Turn NOP ; 03 JP =Frog_Turn NOP ; 04 JP =Penguin_Turn NOP Interaction_Jump_table: ; 00 RET NOP NOP NOP ; 01 JP =Enemy_Interaction NOP ; 02 JP =Open_Dialogue NOP Open_Dialogue: LD A, L AND $f0 LD L, A INC HL LD A, $mem_bunny_x CP (HL) JR Z, =.Vertical_check .Horizontal_check: INC A CP (HL) JR Z, =.Left .Right: INC HL INC HL LD (HL), $enum_direction_right JR =.Check_end .Left: INC HL INC HL LD (HL), $enum_direction_left JR =.Check_end .Vertical_check: INC HL LD A, $mem_bunny_y INC A CP (HL) JR Z, =.Up .Down: INC HL LD (HL), $enum_direction_down JR =.Check_end .Up: INC HL LD (HL), $enum_direction_up 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 LD A, $mem_bunny_direction AND $0f LD $mem_bunny_direction, A LD A, $enum_dungeon_dialogue_mode LD $mem_requested_mode, A RET Enemy_Interaction: LD A, L AND $f0 ADD $06 LD L, A LD A, (HL) DEC A DAA LD (HL), A RET