diff options
Diffstat (limited to 'attacks.gbasm')
-rw-r--r-- | attacks.gbasm | 143 |
1 files changed, 104 insertions, 39 deletions
diff --git a/attacks.gbasm b/attacks.gbasm index 168285a..607bbf9 100644 --- a/attacks.gbasm +++ b/attacks.gbasm @@ -1,39 +1,30 @@ Preload_Map_Hop: - LD C, $01 - Preload_Map_Hop.loop: - PUSH BC - - ; Getting the +1/-1 value of the direction to B - LD A, $mem_bunny_direction - AND $07 - DEC A - AND $01 - SLA A - DEC A - LD B, A - - LD A, $mem_bunny_direction - AND $07 - DEC A - - BIT 1, A - DBG - JR NZ, =Preload_Map_Hop.Map_Load.vertical - - Preload_Map_Hop.Map_Load.horizontal: - CALL =Load_Next_Block_Column - JR =Preload_Map_Hop.Map_Load.End - - Preload_Map_Hop.Map_Load.vertical: - CALL =Load_Next_Block_Row - - Preload_Map_Hop.Map_Load.End: - CALL =Display_Prepared_Block - POP BC - INC C - LD A, $10 - CP C - JR NZ, =Preload_Map_Hop.loop + LD A, $mem_loading_step + LD C, A + ; Getting the +1/-1 value of the direction to B + LD A, $mem_bunny_direction + AND $07 + DEC A + AND $01 + SLA A + DEC A + LD B, A + + LD A, $mem_bunny_direction + AND $07 + DEC A + + BIT 1, A + JR NZ, =Preload_Map_Hop.Map_Load.vertical + + Preload_Map_Hop.Map_Load.horizontal: + CALL =Load_Next_Block_Column + JR =Preload_Map_Hop.Map_Load.End + + Preload_Map_Hop.Map_Load.vertical: + CALL =Load_Next_Block_Row + + Preload_Map_Hop.Map_Load.End: RET Hop_Attack_Loading_VBlank: @@ -41,7 +32,28 @@ Hop_Attack_Loading_VBlank: CP $enum_loading_mode RET NZ - CALL =Preload_Map_Hop + LD A, $mem_loading_step + CP $00 + JP Z, =Hop_Attack_Loading_VBlank.Skip_Display_Block + + LD A, $mem_map_loading_flags + BIT 2, A + RET Z + + CALL =Display_Prepared_Block + + LD A, $mem_prepared_loading_block_tile + LD $mem_prepared_block_tile, A + LD A, $mem_prepared_loading_block_position_1 + LD $mem_prepared_block_position_1, A + LD A, $mem_prepared_loading_block_position_2 + LD $mem_prepared_block_position_2, A + + LD A, $mem_map_loading_flags + SET 2, A + LD $mem_map_loading_flags, A + + CALL =Display_Prepared_Block LD A, $mem_bunny_direction AND $07 @@ -50,14 +62,14 @@ Hop_Attack_Loading_VBlank: LD B, A LD A, $mem_viewport_y LD C, A - LD A, $01 + LD A, $02 .ADD_A_TO_DIRECTION_BC LD A, B LD $mem_viewport_x, A LD A, C LD $mem_viewport_y, A - CALL =Preload_Map_Hop + CALL =Display_Object LD A, $mem_bunny_direction AND $07 @@ -66,7 +78,7 @@ Hop_Attack_Loading_VBlank: LD B, A LD A, $mem_viewport_y LD C, A - LD A, $FF + LD A, $FE .ADD_A_TO_DIRECTION_BC LD A, B LD $mem_viewport_x, A @@ -74,6 +86,16 @@ Hop_Attack_Loading_VBlank: LD $mem_viewport_y, A + + Hop_Attack_Loading_VBlank.Skip_Display_Block: + + LD A, $mem_loading_step + INC A + AND $0f + LD $mem_loading_step, A + CP $00 + RET NZ + LD A, $enum_dungeon_mode LD $mem_current_mode, A LD $mem_requested_mode, A @@ -90,4 +112,47 @@ Hop_Attack_Loading_VBlank: RET Hop_Attack_Loading_Regular: + LD A, $mem_current_mode + CP $enum_loading_mode + RET NZ + + CALL =Preload_Map_Hop + + LD A, $mem_prepared_block_tile + LD $mem_prepared_loading_block_tile, A + LD A, $mem_prepared_block_position_1 + LD $mem_prepared_loading_block_position_1, A + LD A, $mem_prepared_block_position_2 + LD $mem_prepared_loading_block_position_2, A + + LD A, $mem_bunny_direction + AND $07 + LD D, A + LD A, $mem_viewport_x + LD B, A + LD A, $mem_viewport_y + LD C, A + LD A, $01 + .ADD_A_TO_DIRECTION_BC + LD A, B + LD $mem_viewport_x, A + LD A, C + LD $mem_viewport_y, A + + CALL =Preload_Map_Hop + + LD A, $mem_bunny_direction + AND $07 + LD D, A + LD A, $mem_viewport_x + LD B, A + LD A, $mem_viewport_y + LD C, A + LD A, $FF + .ADD_A_TO_DIRECTION_BC + LD A, B + LD $mem_viewport_x, A + LD A, C + LD $mem_viewport_y, A + RET |