Changeset - r9625:1ffdaa4810d3
[Not reviewed]
master
0 4 0
rubidium - 16 years ago 2008-07-08 15:10:23
rubidium@openttd.org
(svn r13681) -Revert (r13678, r13677): the fixes didn't work in all cases (assertions on savegame loads).
-Fix [FS#2102]: but now in a hopefully beter way.
4 files changed with 17 insertions and 21 deletions:
0 comments (0 inline, 0 general)
src/elrail.cpp
Show inline comments
 
@@ -495,10 +495,13 @@ int32 SettingsDisableElrail(int32 p1)
 
		}
 
	}
 

	
 
	/* setup total power for trains */
 
	/* Fix the total power and acceleration for trains */
 
	FOR_ALL_VEHICLES(v) {
 
		/* power is cached only for front engines */
 
		if (v->type == VEH_TRAIN && IsFrontEngine(v)) TrainPowerChanged(v);
 
		/* power and acceleration is cached only for front engines */
 
		if (v->type == VEH_TRAIN && IsFrontEngine(v)) {
 
			TrainPowerChanged(v);
 
			UpdateTrainAcceleration(v);
 
		}
 
	}
 

	
 
	FOR_ALL_PLAYERS(p) p->avail_railtypes = GetPlayerRailtypes(p->index);
src/openttd.cpp
Show inline comments
 
@@ -1265,8 +1265,6 @@ static bool InitializeWindowsAndCaches()
 
		}
 
	}
 

	
 
	InitializeVehicleCaches();
 

	
 
	SetCachedEngineCounts();
 

	
 
	/* Towns have a noise controlled number of airports system
src/vehicle.cpp
Show inline comments
 
@@ -275,8 +275,17 @@ void AfterLoadVehicles(bool clear_te_id)
 
	}
 

	
 
	FOR_ALL_VEHICLES(v) {
 
		assert(v->First() != NULL);
 

	
 
		assert(v->first != NULL);
 

	
 
		if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) {
 
			if (IsFrontEngine(v)) v->u.rail.last_speed = v->cur_speed; // update displayed train speed
 
			TrainConsistChanged(v);
 
		} else if (v->type == VEH_ROAD && IsRoadVehFront(v)) {
 
			RoadVehUpdateCache(v);
 
		}
 
	}
 

	
 
	FOR_ALL_VEHICLES(v) {
 
		switch (v->type) {
 
			case VEH_ROAD:
 
				v->u.road.roadtype = HasBit(EngInfo(v->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD;
 
@@ -312,19 +321,6 @@ void AfterLoadVehicles(bool clear_te_id)
 
	}
 
}
 

	
 
void InitializeVehicleCaches()
 
{
 
	Vehicle *v;
 
	FOR_ALL_VEHICLES(v) {
 
		if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) {
 
			if (IsFrontEngine(v)) v->u.rail.last_speed = v->cur_speed; // update displayed train speed
 
			TrainConsistChanged(v);
 
		} else if (v->type == VEH_ROAD && IsRoadVehFront(v)) {
 
			RoadVehUpdateCache(v);
 
		}
 
	}
 
}
 

	
 
Vehicle::Vehicle()
 
{
 
	this->type               = VEH_INVALID;
src/vehicle_base.h
Show inline comments
 
@@ -191,7 +191,6 @@ DECLARE_OLD_POOL(Vehicle, Vehicle, 9, 12
 
struct SaveLoad;
 
extern const SaveLoad *GetVehicleDescription(VehicleType vt);
 
extern void AfterLoadVehicles(bool clear_te_id);
 
extern void InitializeVehicleCaches();
 
struct LoadgameState;
 
extern bool LoadOldVehicle(LoadgameState *ls, int num);
 

	
0 comments (0 inline, 0 general)