diff options
author | Astatin <[email protected]> | 2024-08-22 18:17:04 +0900 |
---|---|---|
committer | Astatin <astatin@redacted> | 2024-08-22 18:17:04 +0900 |
commit | f0d9de7afa943ebd41c1b202690b2ab3e387f708 (patch) | |
tree | ffd085c9a6182b67ef44a506a2728057f72f5d12 /map | |
parent | 358e97cc2628d4617543d20d2c40111699f067d6 (diff) |
Stored the rooms + spawn the bunny at the top left (sometimes) of the room
Diffstat (limited to 'map')
-rw-r--r-- | map/generation.gbasm | 72 |
1 files changed, 66 insertions, 6 deletions
diff --git a/map/generation.gbasm b/map/generation.gbasm index 3efe87f..8b0181e 100644 --- a/map/generation.gbasm +++ b/map/generation.gbasm @@ -41,7 +41,7 @@ Generation_Head_Mitosis: LD A, $mem_next_free_head_lower_bytes LD C, A - LD A, (HL+) + LD A, (HL) DEC A XOR $02 @@ -54,6 +54,11 @@ Generation_Head_Mitosis: LD B, $next_free_head_higher_bytes LD (BC), A + DEC A + XOR $01 + INC A + LD (HL), A + INC HL INC BC LD A, (HL+) @@ -69,21 +74,48 @@ Generation_Head_Mitosis: SLA E SLA E + SLA E POP BC POP HL RET +Enforce_Map_Bounds: ; X OR Y in A + CP $80 + JR NC, =Enforce_Map_Bounds.Zero + + CP $1f + JR NC, =Enforce_Map_Bounds.Thirty_one + + RET + + Enforce_Map_Bounds.Zero: + LD A, $00 + RET + + Enforce_Map_Bounds.Thirty_one: + LD A, $1f + + RET + Generation_Head_Explosion: PUSH HL INC HL LD A, (HL+) - LD E, A + LD E, A ; X LD A, (HL+) - LD D, A + LD D, A ; Y + LD H, $c8 + LD A, $mem_number_of_rooms + SLA A + SLA A + ADD $80 + LD L, A + + LD A, E CALL =RNG_Step AND $03 ADD $06 @@ -92,8 +124,20 @@ Generation_Head_Explosion: XOR $ff INC A ADD E - LD E, A + CALL =Enforce_Map_Bounds + LD E, A ; X + + ADD B + CALL =Enforce_Map_Bounds + SUB E + LD B, A + LD A, E + LD (HL+), A + LD A, B ; X size + LD (HL+), A + + LD A, D CALL =RNG_Step AND $03 ADD $06 @@ -102,7 +146,18 @@ Generation_Head_Explosion: XOR $ff INC A ADD D - LD D, A + CALL =Enforce_Map_Bounds + LD D, A ; Y + + ADD C + CALL =Enforce_Map_Bounds + SUB D + LD C, A + + LD A, D + LD (HL+), A + LD A, C + LD (HL+), A LD L, C Room_Generation.X_loop: @@ -172,7 +227,7 @@ Dungeon_Generation: Dungeon_Generation.Head_Mitosis.end: CALL =RNG_Step - AND $07 + AND $0f JR NZ, =Dungeon_Generation.Direction_Change.end Dungeon_Generation.Direction_Change: DEC B @@ -262,6 +317,11 @@ Dungeon_Generation: JR Z, =Dungeon_Generation.Head_explosion_loop.end CALL =Generation_Head_Explosion + + LD A, $mem_number_of_rooms + INC A + LD $mem_number_of_rooms, A + INC HL INC HL INC HL |