|
|
@ -1902,7 +1902,7 @@ static bool GrowTown(Town *t)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void UpdateTownRadius(Town *t)
|
|
|
|
void UpdateTownRadius(Town *t)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
static const uint32_t _town_squared_town_zone_radius_data[23][HZB_END] = {
|
|
|
|
static const std::array<std::array<uint32_t, HZB_END>, 23> _town_squared_town_zone_radius_data = {{
|
|
|
|
{ 4, 0, 0, 0, 0}, // 0
|
|
|
|
{ 4, 0, 0, 0, 0}, // 0
|
|
|
|
{ 16, 0, 0, 0, 0},
|
|
|
|
{ 16, 0, 0, 0, 0},
|
|
|
|
{ 25, 0, 0, 0, 0},
|
|
|
|
{ 25, 0, 0, 0, 0},
|
|
|
@ -1926,10 +1926,10 @@ void UpdateTownRadius(Town *t)
|
|
|
|
{121, 81, 0, 49, 25}, // 80
|
|
|
|
{121, 81, 0, 49, 25}, // 80
|
|
|
|
{121, 81, 0, 49, 25},
|
|
|
|
{121, 81, 0, 49, 25},
|
|
|
|
{121, 81, 0, 49, 36}, // 88
|
|
|
|
{121, 81, 0, 49, 36}, // 88
|
|
|
|
};
|
|
|
|
}};
|
|
|
|
|
|
|
|
|
|
|
|
if (t->cache.num_houses < 92) {
|
|
|
|
if (t->cache.num_houses < std::size(_town_squared_town_zone_radius_data) * 4) {
|
|
|
|
memcpy(t->cache.squared_town_zone_radius, _town_squared_town_zone_radius_data[t->cache.num_houses / 4], sizeof(t->cache.squared_town_zone_radius));
|
|
|
|
t->cache.squared_town_zone_radius = _town_squared_town_zone_radius_data[t->cache.num_houses / 4];
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
int mass = t->cache.num_houses / 8;
|
|
|
|
int mass = t->cache.num_houses / 8;
|
|
|
|
/* Actually we are proportional to sqrt() but that's right because we are covering an area.
|
|
|
|
/* Actually we are proportional to sqrt() but that's right because we are covering an area.
|
|
|
|