diff options
author | Astatin <[email protected]> | 2025-03-04 18:27:00 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2025-03-04 18:27:00 +0900 |
commit | b04c85f5316b58a60b5ae161e9bbf3a20cf1b084 (patch) | |
tree | 04f42715a5cf7f6a08a742f6ef6b81e18249be36 /map | |
parent | afc683fd953bee5b7c9bed2439492cc7c1f87a49 (diff) |
Fix out of VBlank on dialogue open (most of the time) + object remove
Diffstat (limited to 'map')
-rw-r--r-- | map/loading.gbasm | 48 | ||||
-rw-r--r-- | map/objects.gbasm | 11 |
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: |