From c7d3a2929e9ed719b342e92a54d292d57ee105d2 Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 29 Apr 2025 15:51:10 +0200 Subject: Add Load_Dungeon function --- map/dungeons.gbasm | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ map/objects.gbasm | 4 ++++ 2 files changed, 63 insertions(+) create mode 100644 map/dungeons.gbasm (limited to 'map') 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 -- cgit v1.2.3-70-g09d2