mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +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},
|
{&_station_tick_ctr, SLE_UINT16, 0, 255},
|
||||||
{&_random_seeds[0][0], SLE_UINT32, 0, 255},
|
{&_random_seeds[0][0], SLE_UINT32, 0, 255},
|
||||||
{&_random_seeds[0][1], 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_town_ctr, SLE_UINT8, 0, 255},
|
||||||
{&_cur_player_tick_index, SLE_FILE_U8 | SLE_VAR_UINT, 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},
|
{&_next_competitor_start, SLE_FILE_U16 | SLE_VAR_UINT, 0, 255},
|
||||||
|
@ -442,7 +442,7 @@ void OnTick_Town(void)
|
|||||||
for (counter += GetTownPoolSize();
|
for (counter += GetTownPoolSize();
|
||||||
counter >= TOWN_GROWTH_FREQUENCY;
|
counter >= TOWN_GROWTH_FREQUENCY;
|
||||||
counter -= TOWN_GROWTH_FREQUENCY) {
|
counter -= TOWN_GROWTH_FREQUENCY) {
|
||||||
int i = _cur_town_ctr;
|
uint32 i = _cur_town_ctr;
|
||||||
Town *t;
|
Town *t;
|
||||||
|
|
||||||
if (++_cur_town_ctr >= GetTownPoolSize())
|
if (++_cur_town_ctr >= GetTownPoolSize())
|
||||||
|
@ -84,7 +84,7 @@ VARDEF uint32 _random_seeds[2][2];
|
|||||||
VARDEF uint32 _player_seeds[MAX_PLAYERS][2];
|
VARDEF uint32 _player_seeds[MAX_PLAYERS][2];
|
||||||
|
|
||||||
// Iterator through all towns in OnTick_Town
|
// 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 _cur_player_tick_index;
|
||||||
VARDEF uint _next_competitor_start;
|
VARDEF uint _next_competitor_start;
|
||||||
|
Loading…
Reference in New Issue
Block a user