From: Lukas Krickl Date: Sat, 29 Mar 2025 10:51:42 +0000 (+0100) Subject: cells: Updated cell struct X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=d72b2b137687112cb861dae9c0edba2cb65b487d;p=gbrg%2F.git cells: Updated cell struct Added more notes for how cells operate --- diff --git a/TODO.md b/TODO.md index 1aa51c4..3a3981a 100644 --- a/TODO.md +++ b/TODO.md @@ -10,32 +10,31 @@ [ ] 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 diff --git a/src/defs.s b/src/defs.s index 27c5286..caddd6f 100644 --- a/src/defs.s +++ b/src/defs.s @@ -22,21 +22,25 @@ #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 diff --git a/tiles/bank8000.inc b/tiles/bank8000.inc index b451796..65d982f 100644 --- a/tiles/bank8000.inc +++ b/tiles/bank8000.inc @@ -955,52 +955,52 @@ ; 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 @@ -1097,48 +1097,48 @@ .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 @@ -1147,6 +1147,6 @@ .chr 11111113 .chr 11111113 .chr 11111113 -.chr 33311113 +.chr 11111113 .chr 11111113 .chr 33333333 diff --git a/tiles/bank8800.inc b/tiles/bank8800.inc index 8f8d273..342a388 100644 --- a/tiles/bank8800.inc +++ b/tiles/bank8800.inc @@ -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 @@ -143,59 +143,59 @@ .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 @@ -863,113 +863,113 @@ .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 @@ -1007,113 +1007,113 @@ .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 @@ -1124,29 +1124,29 @@ .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 diff --git a/tiles/bank9000.inc b/tiles/bank9000.inc index beb8fd4..e989c93 100644 --- a/tiles/bank9000.inc +++ b/tiles/bank9000.inc @@ -955,52 +955,52 @@ ; 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 @@ -1097,48 +1097,48 @@ .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 @@ -1147,6 +1147,6 @@ .chr 11111113 .chr 11111113 .chr 11111113 -.chr 33311113 +.chr 11111113 .chr 11111113 .chr 33333333