aboutsummaryrefslogtreecommitdiff
path: root/map
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-03-04 18:27:00 +0900
committerAstatin <[email protected]>2025-03-04 18:27:00 +0900
commitb04c85f5316b58a60b5ae161e9bbf3a20cf1b084 (patch)
tree04f42715a5cf7f6a08a742f6ef6b81e18249be36 /map
parentafc683fd953bee5b7c9bed2439492cc7c1f87a49 (diff)
Fix out of VBlank on dialogue open (most of the time) + object remove
Diffstat (limited to 'map')
-rw-r--r--map/loading.gbasm48
-rw-r--r--map/objects.gbasm11
2 files changed, 51 insertions, 8 deletions
diff --git a/map/loading.gbasm b/map/loading.gbasm
index f7ba1ab..505bc53 100644
--- a/map/loading.gbasm
+++ b/map/loading.gbasm
@@ -13,7 +13,7 @@ Load_Map:
.For_X:
LD A, C
CALL =Load_Block
- CALL =Display_Prepared_Block
+ CALL =Display_Main_Prepared_Block
INC C
LD A, C
@@ -251,19 +251,55 @@ Load_Block: ; X in A, Y in B
POP BC
RET
-Display_Prepared_Block:
- PUSH AF
- PUSH BC
- PUSH DE
+Load_Additional_Block:
+ LD A, $mem_display_flag
+ BIT 6, A
+ RET Z
+ LD A, $mem_additional_loading_block_y
+ LD B, A
+ LD A, $mem_additional_loading_block_x
+ CALL =Load_Block
+ LD A, $mem_prepared_block_tile
+ LD $mem_additional_loading_block_tile, A
+ LD A, $mem_prepared_block_position_1
+ LD $mem_additional_loading_block_position_1, A
+ LD A, $mem_prepared_block_position_2
+ LD $mem_additional_loading_block_position_2, A
+ RET
+Display_Prepared_Blocks:
LD A, $mem_map_loading_flags
BIT 2, A
- JR Z, =.End
+ JR Z, =.Skip_Main
LD A, $mem_map_loading_flags
RES 2, A
LD $mem_map_loading_flags, A
+ CALL =Display_Main_Prepared_Block
+
+ .Skip_Main:
+ LD A, $mem_display_flag
+ BIT 6, A
+ RET Z
+ RES 6, A
+ LD $mem_display_flag, A
+
+ LD A, $mem_additional_loading_block_tile
+ LD $mem_prepared_block_tile, A
+ LD A, $mem_additional_loading_block_position_1
+ LD $mem_prepared_block_position_1, A
+ LD A, $mem_additional_loading_block_position_2
+ LD $mem_prepared_block_position_2, A
+ JP =Display_Main_Prepared_Block
+
+Display_Main_Prepared_Block:
+ PUSH AF
+ PUSH BC
+ PUSH DE
+
+
+
LD A, $mem_prepared_block_position_1
LD D, A
diff --git a/map/objects.gbasm b/map/objects.gbasm
index 5bedeee..b1a43fe 100644
--- a/map/objects.gbasm
+++ b/map/objects.gbasm
@@ -212,6 +212,9 @@ Restore_EP_Action:
RET
Display_Object:
+ LD A, $mem_display_flag
+ BIT 5, A
+ RET NZ
LD HL, $mem_object_list
LD A, $mem_object_load_counter
INC A
@@ -296,8 +299,12 @@ Display_Object:
Display_Objects.Nothing:
LD A, D
- CALL =Load_Block
- CALL =Display_Prepared_Block
+ LD $mem_additional_loading_block_x, A
+ LD A, B
+ LD $mem_additional_loading_block_y, A
+ LD A, $mem_display_flag
+ SET 6, A
+ LD $mem_display_flag, A
RET
Load_Objects: