mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-11 13:10:45 +00:00
(svn r16328) -Fix: desync when removing lots of stations
This commit is contained in:
parent
0c10daa243
commit
57a7313ea5
@ -65,7 +65,7 @@ static const SaveLoadGlobVarList _date_desc[] = {
|
|||||||
SLEG_CONDVAR(_cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
SLEG_CONDVAR(_cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
||||||
SLEG_CONDVAR(_cur_tileloop_tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
SLEG_CONDVAR(_cur_tileloop_tile, SLE_UINT32, 6, SL_MAX_VERSION),
|
||||||
SLEG_VAR(_disaster_delay, SLE_UINT16),
|
SLEG_VAR(_disaster_delay, SLE_UINT16),
|
||||||
SLEG_VAR(_station_tick_ctr, SLE_UINT16),
|
SLE_CONDNULL(2, 0, 119),
|
||||||
SLEG_VAR(_random.state[0], SLE_UINT32),
|
SLEG_VAR(_random.state[0], SLE_UINT32),
|
||||||
SLEG_VAR(_random.state[1], SLE_UINT32),
|
SLEG_VAR(_random.state[1], SLE_UINT32),
|
||||||
SLEG_CONDVAR(_cur_town_ctr, SLE_FILE_U8 | SLE_VAR_U32, 0, 9),
|
SLEG_CONDVAR(_cur_town_ctr, SLE_FILE_U8 | SLE_VAR_U32, 0, 9),
|
||||||
|
@ -1707,8 +1707,7 @@ static const OldChunks main_chunk[] = {
|
|||||||
|
|
||||||
OCL_CNULL( OC_TTD, 144 ), ///< AI cargo-stuff, calculated in InitializeLandscapeVariables
|
OCL_CNULL( OC_TTD, 144 ), ///< AI cargo-stuff, calculated in InitializeLandscapeVariables
|
||||||
OCL_NULL( 2 ), ///< Company indexes of companies, no longer in use
|
OCL_NULL( 2 ), ///< Company indexes of companies, no longer in use
|
||||||
|
OCL_NULL( 1 ), ///< Station tick counter, no longer in use
|
||||||
OCL_VAR ( OC_FILE_U8 | OC_VAR_U16, 1, &_station_tick_ctr ),
|
|
||||||
|
|
||||||
OCL_VAR ( OC_UINT8, 1, &_settings_game.locale.currency ),
|
OCL_VAR ( OC_UINT8, 1, &_settings_game.locale.currency ),
|
||||||
OCL_VAR ( OC_UINT8, 1, &_settings_game.locale.units ),
|
OCL_VAR ( OC_UINT8, 1, &_settings_game.locale.units ),
|
||||||
|
@ -195,9 +195,6 @@ static void Load_STNS()
|
|||||||
|
|
||||||
SaveLoad_STNS(st);
|
SaveLoad_STNS(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is to ensure all pointers are within the limits of _stations_size */
|
|
||||||
if (_station_tick_ctr > GetMaxStationIndex()) _station_tick_ctr = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Save_ROADSTOP()
|
static void Save_ROADSTOP()
|
||||||
|
@ -2699,7 +2699,11 @@ static VehicleEnterTileStatus VehicleEnter_Station(Vehicle *v, TileIndex tile, i
|
|||||||
return VETSB_CONTINUE;
|
return VETSB_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this function is called for one station each tick */
|
/**
|
||||||
|
* This function is called for each station once every 250 ticks.
|
||||||
|
* Not all stations will get the tick at the same time.
|
||||||
|
* @param st the station receiving the tick.
|
||||||
|
*/
|
||||||
static void StationHandleBigTick(Station *st)
|
static void StationHandleBigTick(Station *st)
|
||||||
{
|
{
|
||||||
UpdateStationAcceptance(st, true);
|
UpdateStationAcceptance(st, true);
|
||||||
@ -2839,11 +2843,6 @@ void OnTick_Station()
|
|||||||
{
|
{
|
||||||
if (_game_mode == GM_EDITOR) return;
|
if (_game_mode == GM_EDITOR) return;
|
||||||
|
|
||||||
uint i = _station_tick_ctr;
|
|
||||||
if (++_station_tick_ctr > GetMaxStationIndex()) _station_tick_ctr = 0;
|
|
||||||
|
|
||||||
if (Station::IsValidID(i)) StationHandleBigTick(Station::Get(i));
|
|
||||||
|
|
||||||
Station *st;
|
Station *st;
|
||||||
FOR_ALL_STATIONS(st) {
|
FOR_ALL_STATIONS(st) {
|
||||||
StationHandleSmallTick(st);
|
StationHandleSmallTick(st);
|
||||||
@ -2852,6 +2851,7 @@ void OnTick_Station()
|
|||||||
* Station index is included so that triggers are not all done
|
* Station index is included so that triggers are not all done
|
||||||
* at the same time. */
|
* at the same time. */
|
||||||
if ((_tick_counter + st->index) % 250 == 0) {
|
if ((_tick_counter + st->index) % 250 == 0) {
|
||||||
|
StationHandleBigTick(st);
|
||||||
StationAnimationTrigger(st, st->xy, STAT_ANIM_250_TICKS);
|
StationAnimationTrigger(st, st->xy, STAT_ANIM_250_TICKS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3211,8 +3211,6 @@ void InitializeStations()
|
|||||||
/* Clean the roadstop pool and create 1 block in it */
|
/* Clean the roadstop pool and create 1 block in it */
|
||||||
_RoadStop_pool.CleanPool();
|
_RoadStop_pool.CleanPool();
|
||||||
_RoadStop_pool.AddBlockToPool();
|
_RoadStop_pool.AddBlockToPool();
|
||||||
|
|
||||||
_station_tick_ctr = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static CommandCost TerraformTile_Station(TileIndex tile, DoCommandFlag flags, uint z_new, Slope tileh_new)
|
static CommandCost TerraformTile_Station(TileIndex tile, DoCommandFlag flags, uint z_new, Slope tileh_new)
|
||||||
|
@ -18,10 +18,6 @@ VARDEF byte _age_cargo_skip_counter;
|
|||||||
/* Also save scrollpos_x, scrollpos_y and zoom */
|
/* Also save scrollpos_x, scrollpos_y and zoom */
|
||||||
VARDEF uint16 _disaster_delay;
|
VARDEF uint16 _disaster_delay;
|
||||||
|
|
||||||
/* Determines what station to operate on in the
|
|
||||||
* tick handler. */
|
|
||||||
VARDEF uint16 _station_tick_ctr;
|
|
||||||
|
|
||||||
/* Determines how often to run the tree loop */
|
/* Determines how often to run the tree loop */
|
||||||
VARDEF byte _trees_tick_ctr;
|
VARDEF byte _trees_tick_ctr;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user