mirror of
https://github.com/tonytins/citylimits
synced 2025-12-18 22:04:43 -05:00
Initial source commit
This commit is contained in:
commit
5f7cefb98e
1794 changed files with 40615 additions and 0 deletions
96
notes/SIMULATOR.txt
Normal file
96
notes/SIMULATOR.txt
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
Micropolis City Simulation Algorithm Description.
|
||||
|
||||
SimFrame
|
||||
|
||||
If SimSpeed is 0, then return.
|
||||
|
||||
Increment Spdcycle mod 1024.
|
||||
|
||||
If SimSpeed is 1, then return every 4 out of 5 frames.
|
||||
|
||||
If SimSpeed is 2, then return every 2 out of 3 frames.
|
||||
|
||||
Increment Fcycle mod 1024.
|
||||
|
||||
Call Simulate, passing the phase parameter of (Fcycle mod 16).
|
||||
|
||||
|
||||
Simulate
|
||||
|
||||
Passed the phase parameter, which switches through 16 phases (0 to 15).
|
||||
|
||||
Phase 0:
|
||||
Increment Scycle and wrap mod 1024.
|
||||
If DoInitialEval:
|
||||
Clear DoInitialEval.
|
||||
Call CityEvaluation.
|
||||
Increment CityTime.
|
||||
Increase AvCityTax by CityTax.
|
||||
If Scycle is even:
|
||||
Call SetValves.
|
||||
Call ClearCensus.
|
||||
|
||||
Phase 1:
|
||||
Call MapScan on 1st 8th of map.
|
||||
|
||||
Phase 2:
|
||||
Call MapScan on 2nd 8th of map.
|
||||
|
||||
Phase 3:
|
||||
Call MapScan on 3rd 8th of map.
|
||||
|
||||
Phase 4:
|
||||
Call MapScan on 4th 8th of map.
|
||||
|
||||
Phase 5:
|
||||
Call MapScan on 5th 8th of map.
|
||||
|
||||
Phase 6:
|
||||
Call MapScan on 6st 8th of map.
|
||||
|
||||
Phase 7:
|
||||
Call MapScan on 7st 8th of map.
|
||||
|
||||
Phase 8:
|
||||
Call MapScan on 8st 8th of map.
|
||||
|
||||
Phase 9:
|
||||
If CityTime mod CENSUSRATE is 0:
|
||||
Call TakeCensus.
|
||||
If CityTime mod (CENSUSRATE * 12) is 0:
|
||||
Call Cake2Census.
|
||||
If CityTime mod TAXFREQ is 0:
|
||||
Call CollectTax.
|
||||
Call CityEvaluation.
|
||||
|
||||
Phase 10:
|
||||
If Scycle mod 5 is 0:
|
||||
Call DecROGMem.
|
||||
Call DecTrafficMem.
|
||||
Set NewMapFlags for TDMAP, RDMAP, ALMAP, REMA, COMAP, INMAP, DYMAP.
|
||||
Call SendMessages.
|
||||
|
||||
Phase 11:
|
||||
If Scycle mod SpdPwr[SimSpeed] is 0:
|
||||
Call DoPowerScan.
|
||||
Set NewMapFlags for PRMAP.
|
||||
Set NewPower.
|
||||
|
||||
Phase 12:
|
||||
If Scycle mod SpdPtl[SimSpeed] is 0:
|
||||
Call PTLScan. (Pollution, Terrain, Land Value.)
|
||||
|
||||
Phase 13:
|
||||
If Scycle mod SpdCri[SimSpeed] is 0:
|
||||
Call CrimeScan.
|
||||
|
||||
Phase 14:
|
||||
If Scycle mod SpdPop[SimSpeed] is 0:
|
||||
Call PopDenScan.
|
||||
|
||||
Phase 15:
|
||||
If Scycle mod SpdFir[SimSpeed] is 0:
|
||||
Call FireAnalysis.
|
||||
Call DoDisasters.
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue