diff options
author | Astatin <[email protected]> | 2025-04-29 15:51:10 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-04-29 15:51:10 +0200 |
commit | c7d3a2929e9ed719b342e92a54d292d57ee105d2 (patch) | |
tree | 6e845d6163b59fbc2978f4cbadefb4fb5357126a /map | |
parent | 7faf16e4453f935ee1159d32ddc2a6501ea91bbb (diff) |
Add Load_Dungeon function
Diffstat (limited to 'map')
-rw-r--r-- | map/dungeons.gbasm | 59 | ||||
-rw-r--r-- | map/objects.gbasm | 4 |
2 files changed, 63 insertions, 0 deletions
diff --git a/map/dungeons.gbasm b/map/dungeons.gbasm new file mode 100644 index 0000000..dde998a --- /dev/null +++ b/map/dungeons.gbasm @@ -0,0 +1,59 @@ +Load_Dungeon: ; pointer to Dungeon struct in HL + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + + PUSH HL + 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 + + POP HL + + INC HL + + ; TODO FIX THE THING WHEN THERE'S MORE THAN 256/7 FLOORS + LD A, $mem_floor_count + LD C, A + LD B, $07 + CALL =MUL + LD C, A + LD B, (HL) + CALL =MUL + DBG + CALL =RNG_Step + AND $01 + ADD E + DBG + + RET + +Dungeon: + .name: .DB =Dungeon_Name_1_Txt + .max_floor: .DB 0x0a, inv(0x0a) + .spawning_patterns: + .DB $02, $02, $02, $05, 0b10000000 + .DB $02, $02, $03, $05, 0b11000100 + .DB $02, $02, $00, $05, 0b11110100 + .DB $00, $02, $03, $05, 0b10111000 + .DB $02, $02, $00, $05, 0b11111100 + .DB $02, $00, $03, $05, 0b11111000 + .DB $00, $00, $03, $05, 0b11111000 + .DB $00, $00, $03, $05, 0b11111100 diff --git a/map/objects.gbasm b/map/objects.gbasm index 0c1ec51..159caf5 100644 --- a/map/objects.gbasm +++ b/map/objects.gbasm @@ -195,6 +195,10 @@ Stairs_Action: LD $mem_floor_count, A + LD A, $mem_floor_count_bin + INC A + LD $mem_floor_count_bin, A + .skip_update_floor_count: RET |