mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r2021) Fix: Enlarge _cur_town_ctr from byte to uint32 so that all the towns are considered when growing them even for big maps, where much more than 256 towns are around; reported by Tomasz Dubiński <uboottd@hydra.polsl.gliwice.pl>. The savegame still saves just the lowest 8 bits but that doesn't hurt so much.
This commit is contained in:
parent
f82893680b
commit
49f769948b
5
misc.c
5
misc.c
@ -772,6 +772,11 @@ static const SaveLoadGlobVarList _date_desc[] = {
|
||||
{&_station_tick_ctr, SLE_UINT16, 0, 255},
|
||||
{&_random_seeds[0][0], SLE_UINT32, 0, 255},
|
||||
{&_random_seeds[0][1], SLE_UINT32, 0, 255},
|
||||
/* XXX: We save only a portion of the _cur_town_ctr, this should be
|
||||
* fixed in the next revision bump. It does not hurt so much since
|
||||
* it just gives a small single-time penalty to the towns with higher
|
||||
* IDs at the load time. _cur_town_ctr is zeroed in InitializeTowns()
|
||||
* so the higher octets do not interfere at this time. */
|
||||
{&_cur_town_ctr, SLE_UINT8, 0, 255},
|
||||
{&_cur_player_tick_index, SLE_FILE_U8 | SLE_VAR_UINT, 0, 255},
|
||||
{&_next_competitor_start, SLE_FILE_U16 | SLE_VAR_UINT, 0, 255},
|
||||
|
@ -442,7 +442,7 @@ void OnTick_Town(void)
|
||||
for (counter += GetTownPoolSize();
|
||||
counter >= TOWN_GROWTH_FREQUENCY;
|
||||
counter -= TOWN_GROWTH_FREQUENCY) {
|
||||
int i = _cur_town_ctr;
|
||||
uint32 i = _cur_town_ctr;
|
||||
Town *t;
|
||||
|
||||
if (++_cur_town_ctr >= GetTownPoolSize())
|
||||
|
@ -84,7 +84,7 @@ VARDEF uint32 _random_seeds[2][2];
|
||||
VARDEF uint32 _player_seeds[MAX_PLAYERS][2];
|
||||
|
||||
// Iterator through all towns in OnTick_Town
|
||||
VARDEF byte _cur_town_ctr;
|
||||
VARDEF uint32 _cur_town_ctr;
|
||||
|
||||
VARDEF uint _cur_player_tick_index;
|
||||
VARDEF uint _next_competitor_start;
|
||||
|
Loading…
Reference in New Issue
Block a user