mapgen: added docs for generating rooms
authorLukas Krickl <lukas@krickl.dev>
Fri, 13 Feb 2026 07:01:25 +0000 (08:01 +0100)
committerLukas Krickl <lukas@krickl.dev>
Fri, 13 Feb 2026 07:01:25 +0000 (08:01 +0100)
src/defs.s
src/mapgen.s

index 07e1f17c3abe76bcedf1bf19cbc6756a79ee010c..afa9e441e68618318ea94eeca7b0da007f8dcbf4 100644 (file)
@@ -38,6 +38,7 @@
 #define MAP_W 32
 #define MAP_H 32
 #define MAP_TILES (MAP_W * MAP_H)
+#define MAP_SECTION_SIZE 8
 
 #define RENDER_BUF_W 20
 #define RENDER_BUF_H 14
index 71d9dbfded3f497e2d5b6be224add5c14e4f69c3..4e0d3dc4ee590c1a9ccfdcd0f45e192a414f56f1 100644 (file)
@@ -52,10 +52,7 @@ map_generate:
        
        ; 3) make rooms
 
-       ; TODO: this is a test room
-       ld hl, mapgen_tiles+1+MAP_W
-       ld bc, 0x0505 ; 5x5
-       call mapgen_mak_room
+       call mapgen_make_rooms
        
 
        ; cleanup) finally
@@ -71,6 +68,18 @@ map_generate:
        ld [mapgen_game_seed+1], a
        ld [srand+1], a
        ret
+
+       ; generates all rooms
+       ; for each section of the map
+       ; the map is split into MAP_SECTION_SIZExMAP_SECTION_SIZE
+       ; sections (e.g. 4x4 sections of 8x8 tiles)
+       ; rooms are placed in each section and then linked up using hallways
+mapgen_make_rooms:
+       ; TODO: this is a test room
+       ld hl, mapgen_tiles+1+MAP_W
+       ld bc, 0x0505 ; 5x5
+       call mapgen_make_room
+       ret
        
        ; generates a single rectanglular room
        ; the caller must ensutre hl has enough tiles in 
@@ -79,7 +88,7 @@ map_generate:
        ; inputs:
        ;               hl: start position in tile map
        ;       b/c: height/width of room
-mapgen_mak_room:
+mapgen_make_room:
        ld de, MAP_W
 @draw_row:
                ; save original hl