From a9142d0163f41c89196ea201ce8245899c701b82 Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 10 Jun 2025 18:27:13 +0200 Subject: Add support for multi bank data --- map/loaddungeon.gbasm | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 map/loaddungeon.gbasm (limited to 'map/loaddungeon.gbasm') diff --git a/map/loaddungeon.gbasm b/map/loaddungeon.gbasm new file mode 100644 index 0000000..c2052c2 --- /dev/null +++ b/map/loaddungeon.gbasm @@ -0,0 +1,88 @@ +Load_Dungeon_Txt: ; pointer to Dungeon struct in HL, bank in A + .CHANGE_BANK_TO_A + + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + + PUSH BC + LD H, B + LD L, C + + CALL =strlen + LD B, A + + LD A, $14 + SUB B + SRA A + + LD HL, $9e80 + ADD L + LD L, A + LD A, H + ADC $00 + LD H, A + POP BC + CALL =Print_str + + RET + +Load_Dungeon_Spawn_patterns: ; pointer to Dungeon struct in HL bank in A + .CHANGE_BANK_TO_A + INC HL + INC HL + INC HL + + ; TODO FIX THE THING WHEN THERE'S MORE THAN 256/7 FLOORS + LD A, $mem_floor_count_bin + LD C, A + LD B, $07 + CALL =MUL + LD C, A + LD B, (HL) + CALL =MUL + CALL =RNG_Step + AND $01 + ADD E + LD E, A + LD D, $00 + LD B, D + LD C, E + SLA E + RL D + SLA E + RL D + LD A, E + ADD C + LD E, A + LD A, D + ADC B + LD D, A + + + INC HL + LD A, L + ADD E + LD L, A + LD A, H + ADC D + LD H, A + + LD BC, $mem_loaded_enemies_indices + LD A, (HL+) + LD (BC), A + INC BC + LD A, (HL+) + LD (BC), A + INC BC + LD A, (HL+) + LD (BC), A + INC BC + LD A, (HL+) + LD (BC), A + + LD A, (HL) + LD $mem_entity_spawning_pattern, A + + RET -- cgit v1.2.3-70-g09d2