MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / update

Method update

src/OpenLoco/src/World/Town.cpp:55–77  ·  view source on GitHub ↗

* 0x0049742F * Update town * * @param this @ */

Source from the content-addressed store, hash-verified

53 * @param this @<esi>
54 */
55 void Town::update()
56 {
57 recalculateSize();
58
59 if (Config::get().townGrowthDisabled)
60 {
61 return;
62 }
63
64 static constexpr std::array<uint8_t, 12> kBuildSpeedToGrowthPerTick = { 0, 1, 3, 5, 7, 9, 12, 16, 22, 0, 0, 0 };
65 auto growthPerTick = kBuildSpeedToGrowthPerTick[this->buildSpeed];
66 if (growthPerTick == 0 || (growthPerTick == 1 && (gPrng1().randNext() & 7)))
67 {
68 grow(TownGrowFlags::buildInitialRoad | TownGrowFlags::roadUpdate | TownGrowFlags::neutralRoadTakeover);
69 }
70 else
71 {
72 for (int32_t counter = 0; counter < growthPerTick; ++counter)
73 {
74 grow(TownGrowFlags::buildInitialRoad | TownGrowFlags::roadUpdate | TownGrowFlags::neutralRoadTakeover | TownGrowFlags::allowRoadExpansion | TownGrowFlags::allowRoadBranching | TownGrowFlags::constructBuildings);
75 }
76 }
77 }
78
79 // 0x004FF6F4
80 static constexpr std::array<Gfx::Font, 4> kZoomToTownFonts = {

Callers 3

updateFunction · 0.45
updateFunction · 0.45
updateFunction · 0.45

Calls 2

getFunction · 0.70
randNextMethod · 0.45

Tested by

no test coverage detected