diff options
Diffstat (limited to 'map/loaddungeon.gbasm')
-rw-r--r-- | map/loaddungeon.gbasm | 88 |
1 files changed, 88 insertions, 0 deletions
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 |