From bcc4605c06e2b36698ae05eeda1f9078bfbcd2c7 Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 1 Jul 2025 15:20:38 +0200 Subject: Load tilemap or generation depending on dungeon flags --- map/loading/dungeoninfos.gbasm | 73 ++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 27 deletions(-) (limited to 'map/loading/dungeoninfos.gbasm') diff --git a/map/loading/dungeoninfos.gbasm b/map/loading/dungeoninfos.gbasm index 2b8fceb..c43a20b 100644 --- a/map/loading/dungeoninfos.gbasm +++ b/map/loading/dungeoninfos.gbasm @@ -1,4 +1,6 @@ -Load_Dungeon_Txt: ; pointer to Dungeon struct in HL, bank in A +Load_Dungeon_Infos: ; pointer to Dungeon struct in HL, bank in A + ; Load_Dungeon_Txt + LD D, A .CHANGE_BANK_TO_A LD A, (HL+) @@ -10,6 +12,7 @@ Load_Dungeon_Txt: ; pointer to Dungeon struct in HL, bank in A LD A, E .CHANGE_BANK_TO_A + PUSH HL PUSH BC LD H, B LD L, C @@ -29,6 +32,48 @@ Load_Dungeon_Txt: ; pointer to Dungeon struct in HL, bank in A LD H, A POP BC CALL =Print_str + POP HL + + LD A, D + .CHANGE_BANK_TO_A + + ; Load dungeon flags + LD A, (HL+) + LD $mem_dungeon_flags, A + + ; Load tilemap + LD A, (HL+) + LD ($mem_rom_tilemap_addr), A + LD ($mem_rom_collision_map_addr), A + LD A, (HL+) + LD B, A + LD A, (HL+) + LD ($mem_rom_collision_map_addr+2), A + ADD $80 + LD ($mem_rom_tilemap_addr+2), A + LD A, B + LD ($mem_rom_collision_map_addr+1), A + ADC $00 + LD ($mem_rom_tilemap_addr+1), A + + ; Load_Generation_Events + LD A, D + .CHANGE_BANK_TO_A + LD B, $00 + LD C, (HL) + INC HL + LD D, H + LD E, L + LD HL, $mem_dungeon_generation_events + CALL =memcpy + + LD A, C + CPL + INC A + ADD $80 + LD C, A + + CALL =bzero RET @@ -104,29 +149,3 @@ Load_Dungeon_Spawn_patterns: ; pointer to Dungeon struct in HL bank in A LD $mem_entity_spawning_pattern, A RET - -Load_Generation_Events: ; bank in A, dungeon ptr in HL - .CHANGE_BANK_TO_A - LD A, L - ADD $07 - LD L, A - LD A, H - ADC $00 - LD H, A - LD B, $00 - LD C, (HL) - INC HL - LD D, H - LD E, L - LD HL, $mem_dungeon_generation_events - CALL =memcpy - - LD A, C - CPL - INC A - ADD $80 - LD C, A - - CALL =bzero - - RET -- cgit v1.2.3-70-g09d2