cells: Updated cell struct
authorLukas Krickl <lukas@krickl.dev>
Sat, 29 Mar 2025 10:51:42 +0000 (11:51 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sat, 29 Mar 2025 10:51:42 +0000 (11:51 +0100)
Added more notes for how cells operate

TODO.md
src/defs.s
tiles/bank8000.inc
tiles/bank8800.inc
tiles/bank9000.inc

diff --git a/TODO.md b/TODO.md
index 1aa51c4c985869b28277bd818453d293331c7994..3a3981a98b751a891c07e8d7130f9f76fdf6d4e9 100644 (file)
--- a/TODO.md
+++ b/TODO.md
 [ ] if indicator sprites were used wait a few frames to allow the user to see them
 [ ] popup menu
 [ ] when hovering over tile show meta information
-[ ] display housing/commercial/industry demand in bottom UI
+[ ] pause screen with total resource stock
 
 ## simulation state 
 
 ### global
 
-[ ] housing demand (0-3)
-[ ] commercial demand (0-3)
-[ ] industry demand (0-3)
+[ ] resources like wood, stone
+[ ] goods like food, bricks, iron ingots
 [ ] total population (24 bit)
-[ ] money (24 bit)
-[ ] debt (24 bit)
 
 ### per tile
 
 [ ] type
 [ ] gfx 
-[ ] traffic 
-[ ] energy surplus 
-[ ] crime rate
-[ ] fire risk
-[ ] FLAGS: on fire, destroyed, abandoned 
+[ ] FLAGS: on fire, destroyed, road connection 
 [ ] tiles have different update loop based on tile type 
-[ ] occupdation/workers
 [ ] some more for special tiles
 
+[ ] tiles take resources to produce a good
+[ ] tiles can only transport resources in if they are connected to a road 
+[ ] tiles can only output resources if they are connected to a road 
+[ ] roads themselves need to be connected to a warehouse 
+[ ] only if the road is connected will the tile produce 
+[ ] only if all resources can be withdrawn tiles will produce 
+
 ## tick based
 
 [ ] simulation updates the entire map every N ticks
index 27c528616470e86b996b728ea405f75fe6e77701..caddd6f5cce81423d1487f222a8bc5d8bd12d350 100644 (file)
 #define WINDOW_Y 120
 #define WINDOW_X 1
 
+  ; tile flags
+.se 1
+  ; is connected to road
+  ; if tile is a road indicates if 
+  ; it is connected to a warehouse 
+  ; a warehouse is always connected
+.de CF_CONNECTED, 1
+
   ; game state cell struct 
   ; this holds all the information 
   ; a cell on the map has 
 .se 0
   ; cell type/cell gfx
 .de c_type, 1
+  ; this is the same as st routine, 
+  ; but tiles do not have a timer or 
+  ; a next flag
+.de c_st_routine, 2 
 .de c_flags, 1
-
-  ; power that this tile can pass on 
-  ; to adjacent tiles
-.de c_power, 1
-  ; HI: fire chance 
-  ; LO: crime rate
-.de c_fire_crime, 1
-.de c_occupation, 1
   ; offset to head tile for thsi tile
   ; if offset is 0000 this is the head tile 
   ; head tiles are tiles that manage the state of a 
index b4517961c198705595163d294917498a005e52d3..65d982fe619a4307b1f651afeaede6f7a70f18cb 100644 (file)
 ; tile 106
 .chr 33333333
 .chr 31111111
-.chr 31133333
-.chr 31131111
-.chr 31131111
-.chr 31131111
-.chr 31131111
-.chr 31131111
+.chr 31111111
+.chr 31311111
+.chr 31311111
+.chr 31311111
+.chr 31311311
+.chr 31311311
 ; tile 107
 .chr 33333333
 .chr 11111113
+.chr 11111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
 .chr 31111113
-.chr 13111113
-.chr 13111113
-.chr 13111113
-.chr 13111113
 .chr 31111113
 ; tile 108
 .chr 33333333
 .chr 31111111
-.chr 31111333
-.chr 31113111
+.chr 31111111
 .chr 31113111
 .chr 31113111
 .chr 31113111
 .chr 31113111
+.chr 31113333
 ; tile 109
 .chr 33333333
 .chr 11111113
-.chr 33331113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
 .chr 11111113
+.chr 13111113
+.chr 13111113
+.chr 13111113
+.chr 13111113
+.chr 33111113
 ; tile 110
 .chr 33333333
 .chr 31111111
+.chr 31111111
 .chr 31113333
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
+.chr 31113111
+.chr 31113111
+.chr 31113111
+.chr 31113331
 ; tile 111
 .chr 33333333
 .chr 11111113
-.chr 33311113
+.chr 11111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
 .chr 22222222
 .chr 32222223
 ; tile 122
-.chr 31133333
-.chr 31131311
-.chr 31131131
-.chr 31131113
-.chr 31131111
+.chr 31311311
+.chr 31311311
+.chr 31311311
+.chr 31133133
+.chr 31111111
 .chr 31111111
 .chr 31111111
 .chr 33333333
 ; tile 123
+.chr 31111113
+.chr 31111113
+.chr 31111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
-.chr 31111113
-.chr 11111113
-.chr 11111113
 .chr 33333333
 ; tile 124
 .chr 31113111
 .chr 31113111
 .chr 31113111
 .chr 31113111
-.chr 31113111
-.chr 31111333
+.chr 31111111
+.chr 31111111
 .chr 31111111
 .chr 33333333
 ; tile 125
+.chr 13111113
+.chr 13111113
+.chr 13111113
+.chr 13111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 33331113
-.chr 11111113
 .chr 33333333
 ; tile 126
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31113333
+.chr 31113111
+.chr 31113111
+.chr 31113111
+.chr 31113111
+.chr 31111111
+.chr 31111111
 .chr 31111111
 .chr 33333333
 ; tile 127
 .chr 11111113
 .chr 11111113
 .chr 11111113
-.chr 33311113
+.chr 11111113
 .chr 11111113
 .chr 33333333
index 8f8d2737b42d796b54989230b116bc06c93b7df6..342a388eeae68f4265a4809cf1cd1e04174a5572 100644 (file)
@@ -1,57 +1,57 @@
 ; tile 0
-.chr 33333333
-.chr 31111111
-.chr 31133333
-.chr 31131111
-.chr 31131111
-.chr 31131111
-.chr 31131111
-.chr 31131111
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 1
-.chr 33333333
-.chr 11111113
-.chr 31111113
-.chr 13111113
-.chr 13111113
-.chr 13111113
-.chr 13111113
-.chr 31111113
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 2
-.chr 33333333
-.chr 31111111
-.chr 31111333
-.chr 31113111
-.chr 31113111
-.chr 31113111
-.chr 31113111
-.chr 31113111
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 3
-.chr 33333333
-.chr 11111113
-.chr 33331113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 4
-.chr 33333333
-.chr 31111111
-.chr 31113333
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 5
-.chr 33333333
-.chr 11111113
-.chr 33311113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 6
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 16
-.chr 31133333
-.chr 31131311
-.chr 31131131
-.chr 31131113
-.chr 31131111
-.chr 31111111
-.chr 31111111
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 17
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 31111113
-.chr 11111113
-.chr 11111113
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 18
-.chr 31113111
-.chr 31113111
-.chr 31113111
-.chr 31113111
-.chr 31113111
-.chr 31111333
-.chr 31111111
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 19
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 33331113
-.chr 11111113
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 20
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31113333
-.chr 31111111
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 21
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 33311113
-.chr 11111113
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 22
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 96
-.chr 31122123
-.chr 32122113
-.chr 32111123
-.chr 32122123
-.chr 31122123
-.chr 32122113
-.chr 32111123
-.chr 32122123
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 97
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 98
-.chr 33333333
-.chr 31111111
-.chr 31111111
-.chr 33333333
-.chr 31122123
-.chr 32122113
-.chr 32111123
-.chr 32122123
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 99
-.chr 33333333
-.chr 11132223
-.chr 11113223
-.chr 33333333
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 100
 .chr 00000000
-.chr 00033333
-.chr 00333333
-.chr 03331111
-.chr 33311111
-.chr 33111111
-.chr 33111121
-.chr 33111122
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 101
 .chr 00000000
-.chr 33333333
-.chr 33333333
-.chr 11111111
-.chr 11111111
-.chr 11221111
-.chr 12222112
-.chr 11221122
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 102
 .chr 00000000
-.chr 33333333
-.chr 33333333
-.chr 11111111
-.chr 11111111
-.chr 11112211
-.chr 21122221
-.chr 22112211
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 103
 .chr 00000000
-.chr 33333000
-.chr 33333300
-.chr 11113330
-.chr 11111333
-.chr 11111133
-.chr 12111133
-.chr 22111133
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 104
-.chr 33333333
-.chr 33100000
-.chr 31033333
-.chr 30330000
-.chr 30300022
-.chr 30300222
-.chr 30302222
-.chr 30302222
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 105
-.chr 33333333
-.chr 00000133
-.chr 33333013
-.chr 00003303
-.chr 22001303
-.chr 22201303
-.chr 22221303
-.chr 22221303
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 106
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-.chr 00101000
-.chr 00010000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 107
 .chr 00000000
-.chr 00020000
-.chr 00111000
-.chr 00111000
-.chr 01111100
-.chr 01111100
-.chr 00030000
-.chr 00020000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 108
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 112
-.chr 31122123
-.chr 32122113
-.chr 32111123
-.chr 32122123
-.chr 33333333
-.chr 31111111
-.chr 31111111
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 113
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 33333333
-.chr 11113223
-.chr 11132223
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 114
-.chr 31122123
-.chr 32122113
-.chr 32111123
-.chr 32122123
-.chr 31122123
-.chr 32122113
-.chr 32111123
-.chr 32122123
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 115
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
-.chr 11113223
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 116
-.chr 33111121
-.chr 33111111
-.chr 33111111
-.chr 33111121
-.chr 33111121
-.chr 33111121
-.chr 33111111
-.chr 33111111
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 117
-.chr 11111111
-.chr 11111333
-.chr 11113222
-.chr 11132223
-.chr 11132233
-.chr 11132223
-.chr 11132223
-.chr 11132222
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 118
-.chr 11111111
-.chr 33311111
-.chr 22231111
-.chr 32223111
-.chr 33223111
-.chr 32223111
-.chr 32223111
-.chr 22223111
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 119
-.chr 12111133
-.chr 11111133
-.chr 11111133
-.chr 12111133
-.chr 12111133
-.chr 12111133
-.chr 11111133
-.chr 11111133
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 120
-.chr 30302222
-.chr 30302222
-.chr 30300222
-.chr 30300022
-.chr 30331111
-.chr 31033333
-.chr 33100000
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 121
-.chr 22221303
-.chr 22221303
-.chr 22211303
-.chr 22111303
-.chr 11113303
-.chr 33333013
-.chr 00000133
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 122
-.chr 22222222
-.chr 22121222
-.chr 21212222
-.chr 22222222
-.chr 22121222
-.chr 21212122
-.chr 22222222
-.chr 22222222
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 123
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 124
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 125
-.chr 32232223
-.chr 32222223
-.chr 32232223
-.chr 32222223
-.chr 32232223
-.chr 32222223
-.chr 32232223
-.chr 32222223
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 126
-.chr 33333333
-.chr 22222222
-.chr 22222222
-.chr 23232323
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 33333333
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 127
-.chr 32222223
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 32222223
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
index beb8fd4925094e80d01a07a44719e68fcdd41d99..e989c93940f7f3112e600fd8359c972614132a65 100644 (file)
 ; tile 106
 .chr 33333333
 .chr 31111111
-.chr 31133333
-.chr 31131111
-.chr 31131111
-.chr 31131111
-.chr 31131111
-.chr 31131111
+.chr 31111111
+.chr 31311111
+.chr 31311111
+.chr 31311111
+.chr 31311311
+.chr 31311311
 ; tile 107
 .chr 33333333
 .chr 11111113
+.chr 11111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
 .chr 31111113
-.chr 13111113
-.chr 13111113
-.chr 13111113
-.chr 13111113
 .chr 31111113
 ; tile 108
 .chr 33333333
 .chr 31111111
-.chr 31111333
-.chr 31113111
+.chr 31111111
 .chr 31113111
 .chr 31113111
 .chr 31113111
 .chr 31113111
+.chr 31113333
 ; tile 109
 .chr 33333333
 .chr 11111113
-.chr 33331113
-.chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 11111113
 .chr 11111113
+.chr 13111113
+.chr 13111113
+.chr 13111113
+.chr 13111113
+.chr 33111113
 ; tile 110
 .chr 33333333
 .chr 31111111
+.chr 31111111
 .chr 31113333
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
+.chr 31113111
+.chr 31113111
+.chr 31113111
+.chr 31113331
 ; tile 111
 .chr 33333333
 .chr 11111113
-.chr 33311113
+.chr 11111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
 .chr 22222222
 .chr 32222223
 ; tile 122
-.chr 31133333
-.chr 31131311
-.chr 31131131
-.chr 31131113
-.chr 31131111
+.chr 31311311
+.chr 31311311
+.chr 31311311
+.chr 31133133
+.chr 31111111
 .chr 31111111
 .chr 31111111
 .chr 33333333
 ; tile 123
+.chr 31111113
+.chr 31111113
+.chr 31111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
-.chr 31111113
-.chr 11111113
-.chr 11111113
 .chr 33333333
 ; tile 124
 .chr 31113111
 .chr 31113111
 .chr 31113111
 .chr 31113111
-.chr 31113111
-.chr 31111333
+.chr 31111111
+.chr 31111111
 .chr 31111111
 .chr 33333333
 ; tile 125
+.chr 13111113
+.chr 13111113
+.chr 13111113
+.chr 13111113
 .chr 11111113
 .chr 11111113
 .chr 11111113
-.chr 11111113
-.chr 11111113
-.chr 33331113
-.chr 11111113
 .chr 33333333
 ; tile 126
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31111113
-.chr 31113333
+.chr 31113111
+.chr 31113111
+.chr 31113111
+.chr 31113111
+.chr 31111111
+.chr 31111111
 .chr 31111111
 .chr 33333333
 ; tile 127
 .chr 11111113
 .chr 11111113
 .chr 11111113
-.chr 33311113
+.chr 11111113
 .chr 11111113
 .chr 33333333