(svn r9836) -Codechange: make non-improved loading happen FIFO-ish; generally loading/unloading will happen fifo, but there are no guarantees on the FIFO-ness. For (better) FIFO guarantees you still need to use improved loading.

This commit is contained in:
rubidium
2007-05-14 16:07:05 +00:00
parent d7b4fb80d0
commit c7d57379fb
4 changed files with 27 additions and 18 deletions

View File

@@ -659,8 +659,6 @@ static VehicleTickProc* _vehicle_tick_procs[] = {
void CallVehicleTicks()
{
Vehicle *v;
#ifdef ENABLE_NETWORK
/* hotfix for desync problem:
* for MP games invalidate the YAPF cache every tick to keep it exactly the same on the server and all clients */
@@ -671,6 +669,10 @@ void CallVehicleTicks()
_first_veh_in_depot_list = NULL; // now we are sure it's initialized at the start of each tick
Station *st;
FOR_ALL_STATIONS(st) LoadUnloadStation(st);
Vehicle *v;
FOR_ALL_VEHICLES(v) {
_vehicle_tick_procs[v->type](v);
@@ -2933,17 +2935,8 @@ void Vehicle::HandleLoading(bool mode)
{
switch (this->current_order.type) {
case OT_LOADING: {
/* Not the first call for this tick */
if (mode) return;
/* We have not waited enough time till the next round of loading/unloading */
if (--this->load_unload_time_rem) return;
/* Load/unload the vehicle; when it actually did something
* we do not leave the station. */
LoadUnloadVehicle(this);
if (!HASBIT(this->vehicle_flags, VF_LOADING_FINISHED)) return;
/* Not the first call for this tick, or still loading */
if (mode || !HASBIT(this->vehicle_flags, VF_LOADING_FINISHED)) return;
this->PlayLeaveStationSound();