maps: wip reworking map system
authorLukas Krickl <lukas@krickl.dev>
Tue, 19 Aug 2025 14:50:53 +0000 (16:50 +0200)
committerLukas Krickl <lukas@krickl.dev>
Tue, 19 Aug 2025 14:50:53 +0000 (16:50 +0200)
maps/map_c.s
src/defs.s
src/wram.s

index 52ae16429a69ef3a1b88eba1ad0cc7ebcb21943c..a4bba6d10602a9cca8c4c5ab2cbec8ee938c7b7a 100644 (file)
@@ -14,39 +14,31 @@ dw 4
 
 map_c_bg:
 
-.db 0x1, 0x4a, 0x1, 0x4a, 0xc, 0x0, 0x2, 0x4a
-.db 0x1, 0x4a, 0x6, 0x6e, 0x2, 0x0, 0x6, 0x6e
-.db 0x1, 0x4a, 0x1, 0x0, 0x6, 0x6e, 0x2, 0x0
-.db 0x6, 0x6e, 0x1, 0x0, 0x1, 0x0, 0x6, 0x6e
-.db 0x2, 0x0, 0x6, 0x6e, 0x1, 0x0, 0x1, 0x0
-.db 0x6, 0x6e, 0x2, 0x0, 0x6, 0x6e, 0x1, 0x0
-.db 0x1, 0x0, 0x6, 0x6e, 0x2, 0x0, 0x6, 0x6e
-.db 0x1, 0x0, 0x1, 0x0, 0x6, 0x6e, 0x2, 0x0
-.db 0x6, 0x6e, 0x1, 0x0, 0x1, 0x0, 0xf, 0x0
-.db 0x1, 0x0, 0xf, 0x0, 0x1, 0x0, 0x6, 0x6e
-.db 0x2, 0x0, 0x6, 0x6e, 0x1, 0x0, 0x1, 0x0
-.db 0x6, 0x6e, 0x2, 0x0, 0x6, 0x6e, 0x1, 0x0
-.db 0x1, 0x0, 0x6, 0x6e, 0x2, 0x0, 0x6, 0x6e
-.db 0x1, 0x0, 0x1, 0x0, 0x6, 0x6e, 0x2, 0x0
-.db 0x6, 0x6e, 0x1, 0x0, 0x1, 0x0, 0x6, 0x6e
-.db 0x2, 0x0, 0x6, 0x6e, 0x1, 0x0, 0x1, 0x4a
-.db 0x6, 0x6e, 0x2, 0x0, 0x6, 0x6e, 0x1, 0x4a
-.db 0x1, 0x4a, 0x1, 0x4a, 0xc, 0x0, 0x1, 0x4a
-.db 0x1, 0x4a
+.db 0x1, 0x2, 0xe, 0x4, 0x1, 0x6, 0x1, 0x22
+.db 0xe, 0x0, 0x1, 0x26, 0x1, 0x22, 0xe, 0x0
+.db 0x1, 0x26, 0x1, 0x22, 0xe, 0x0, 0x1, 0x26
+.db 0x1, 0x22, 0xe, 0x0, 0x1, 0x26, 0x1, 0x22
+.db 0xe, 0x0, 0x1, 0x26, 0x1, 0x22, 0xe, 0x0
+.db 0x1, 0x26, 0x1, 0x22, 0xe, 0x0, 0x1, 0x26
+.db 0x1, 0x22, 0xe, 0x0, 0x1, 0x26, 0x1, 0x22
+.db 0xe, 0x0, 0x1, 0x26, 0x1, 0x22, 0xe, 0x0
+.db 0x1, 0x26, 0x1, 0x22, 0xe, 0x0, 0x1, 0x26
+.db 0x1, 0x22, 0xe, 0x0, 0x1, 0x26, 0x1, 0x22
+.db 0xe, 0x0, 0x1, 0x26, 0x1, 0x22, 0xe, 0x0
+.db 0x1, 0x26, 0x1, 0x42, 0xe, 0x44, 0x1, 0x46
 .db 0x00 ; termiante data
 map_c_tile_flags:
 
-.db 0x2, 0x33, 0xc, 0x32, 0x2, 0x33, 0x1, 0x13
-.db 0xe, 0x0, 0x1, 0x23, 0x1, 0x12, 0xe, 0x0
-.db 0x1, 0x22, 0x1, 0x12, 0xe, 0x0, 0x1, 0x22
-.db 0x1, 0x12, 0xe, 0x0, 0x1, 0x22, 0x1, 0x12
-.db 0xe, 0x0, 0x1, 0x22, 0x1, 0x12, 0xe, 0x0
-.db 0x1, 0x22, 0x1, 0x12, 0xe, 0x0, 0x1, 0x22
-.db 0x1, 0x12, 0xe, 0x0, 0x1, 0x22, 0x1, 0x12
-.db 0xe, 0x0, 0x1, 0x22, 0x1, 0x12, 0xe, 0x0
-.db 0x1, 0x22, 0x1, 0x12, 0xe, 0x0, 0x1, 0x22
-.db 0x1, 0x12, 0xe, 0x0, 0x1, 0x22, 0x1, 0x12
-.db 0xe, 0x0, 0x1, 0x22, 0x1, 0x13, 0xe, 0x0
-.db 0x1, 0x23, 0x1, 0x13, 0x1, 0x3, 0xc, 0x2
-.db 0x1, 0x3, 0x1, 0x23
+.db 0x10, 0x33, 0x1, 0x13, 0xe, 0x0, 0x1, 0x23
+.db 0x1, 0x13, 0xe, 0x0, 0x1, 0x23, 0x1, 0x13
+.db 0xe, 0x0, 0x1, 0x23, 0x1, 0x13, 0xe, 0x0
+.db 0x1, 0x23, 0x1, 0x13, 0xe, 0x0, 0x1, 0x23
+.db 0x1, 0x13, 0xe, 0x0, 0x1, 0x23, 0x1, 0x13
+.db 0xe, 0x0, 0x1, 0x23, 0x1, 0x13, 0xe, 0x0
+.db 0x1, 0x23, 0x1, 0x13, 0xe, 0x0, 0x1, 0x23
+.db 0x1, 0x13, 0xe, 0x0, 0x1, 0x23, 0x1, 0x13
+.db 0xe, 0x0, 0x1, 0x23, 0x1, 0x13, 0xe, 0x0
+.db 0x1, 0x23, 0x1, 0x13, 0xe, 0x0, 0x1, 0x23
+.db 0x1, 0x13, 0xe, 0x0, 0x1, 0x23, 0x1, 0x13
+.db 0xe, 0x3, 0x1, 0x23
 .db 0x00 ; termiante data
index a378c3016fc386306e0716dc90e1ea8f5fa01afd..ade2635923d3e48108339fb49d3cdd50bfaecca5 100644 (file)
@@ -3,7 +3,9 @@
 
 .section defs
 
-#define FLOOR_MAP_COUNT 9
+#define FLOOR_W 4 
+#define FLOOR_H 4 
+#define FLOOR_MAP_COUNT (FLOOR_W * FLOOR_H) 
 
 #define UI_STATUS_LINE shadow_ui+1
 
index b7a49d26c1d53d50449b3a57c61c568df74782f7..4db82bc8e7dfd4f431598daeb9904a348b1daaca 100644 (file)
@@ -150,7 +150,23 @@ player_eq_amulet: .adv 2
 ; player_unit (unit 0) is reserved
 player_unit: .adv 0 
 p0_units: .adv act_size * UNITS_MAX 
-
+       
+       ; 
+       ; floor data
+       ; 
+       
+       ; cursor into the floor's map tables (e.g. seeds) 
+       ; go up: dec by FLOOR_W 
+       ; go down: inc by FLOOR_W
+       ; go left: dec
+       ;       go right: inc
+player_map_cursor: .adv 1
+       
+       ; one byte per map
+       ; indicating where doors should be placed
+       ; DIRUP, DIRDOWN, DIRLEFT, DIRRIGHT bits
+       ; this links all maps in a floor
+map_doors_location: .adv FLOOR_MAP_COUNT
 
   ; list of seeds used 
   ; for the current maps