aboutsummaryrefslogtreecommitdiff
path: root/attacks.gbasm
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-11-15 17:43:42 +0900
committerAstatin <[email protected]>2024-11-15 17:43:42 +0900
commit1aa36f5ce5bbdbd597456efd4603b83682d27e59 (patch)
tree9469e417060ac4db2c60b8c1c6890994c18bd439 /attacks.gbasm
parentcfd36cc6a11923c8863b699e70b90149ad1c731a (diff)
Fix the hop map loading + animation entity + object loading
Diffstat (limited to 'attacks.gbasm')
-rw-r--r--attacks.gbasm143
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