Loading_Mode_VBlank: LD A, $mem_current_mode CP $enum_loading_mode RET NZ LD A, $mem_loading_mode_vblank_func_pointer_high LD B, A LD A, $mem_loading_mode_vblank_func_pointer_low LD C, A PUSH BC RET Loading_Mode_Regular: LD A, $mem_current_mode CP $enum_loading_mode RET NZ LD A, $mem_loading_mode_regular_func_pointer_high LD B, A LD A, $mem_loading_mode_regular_func_pointer_low LD C, A PUSH BC RET Canceled_Attack_VBlank: RET Canceled_Attack_Regular: LD A, $enum_dungeon_mode LD $mem_requested_mode, A RET Canceled_Attack: LD HL, $mem_entities_list LD A, L ADD $13 LD L, A Reset_Entities_Animations.loop: LD A, (HL) AND $07 LD (HL), A Reset_Entities_Animations.loop.next: LD A, L AND $f0 ADD $13 LD L, A CP $03 JR NZ, =Reset_Entities_Animations.loop LD BC, =Canceled_Attack_VBlank LD A, B LD $mem_loading_mode_vblank_func_pointer_high, A LD A, C LD $mem_loading_mode_vblank_func_pointer_low, A LD BC, =Canceled_Attack_Regular LD A, B LD $mem_loading_mode_regular_func_pointer_high, A LD A, C LD $mem_loading_mode_regular_func_pointer_low, A LD A, $enum_loading_mode LD $mem_requested_mode, A .CLOSE_DIALOGUE LD A, $mem_map_loading_flags SET 3, A LD $mem_map_loading_flags, A LD A, $mem_bunny_direction OR $40 LD $mem_bunny_direction, A LD A, $mem_bunny_mana LD B, A LD A, $mem_current_focused_attack_ep_cost ADD B DAA JR NC, =.skip_fallback_max_mana LD A, $99 .skip_fallback_max_mana: LD $mem_bunny_mana, A RET Empty_Attack: RET Check_attack_already_learnt: ; Attack id in E, result in A (1 for already there, 0 for not), overwrites HL PUSH HL LD HL, $mem_bunny_attacks .loop: LD A, (HL) CP E JR Z, =.duplicate INC HL LD A, L CP low($mem_bunny_attacks+4) JR NZ, =.loop LD A, $00 POP HL RET .duplicate: LD A, $01 POP HL RET Attack_List: ; 00 .Empty: ; Attack menu name string .DB =Empty ; Attack function .DB =Empty_Attack ; Energy point cost .DB $00 .PADTO =.Empty+8 ; 01 .Hop: ; Attack menu name string .DB =Hop_Attack_Menu_Txt ; Attack function .DB =Hop_Attack ; Energy point cost .DB $01 .PADTO =.Hop+8 ; 02 .Heal: ; Attack menu name string .DB =Heal_Attack_Menu_Txt ;Attack function .DB =Heal_Attack ; Energy point cost .DB $05 .PADTO =.Heal+8 ; 03 .Freeze: ; Attack menu name string .DB =Freeze_Attack_Menu_Txt ; Attack function .DB =Freeze_Attack ; Energy point cost .DB $05 .PADTO =.Freeze+8 ; 04 .Earcoptr: ; Attack menu name string .DB =Earcoptr_Attack_Menu_Txt ; Attack function .DB =Earcoptr_Attack ; Energy point cost .DB $04 .PADTO =.Earcoptr+8 .INCLUDE "playerattacks/hop.gbasm" .INCLUDE "playerattacks/heal.gbasm" .INCLUDE "playerattacks/freeze.gbasm" .INCLUDE "playerattacks/earcoptr.gbasm"