diff src/train_cmd.cpp @ 16788:efb0333e5aad draft

(svn r21521) -Codechange: Unify some cached values that were present in both road vehicles and trains.
author terkhen <terkhen@openttd.org>
date Tue, 14 Dec 2010 21:33:53 +0000
parents 775f357828e3
children 9d03c51b3f0a
line wrap: on
line diff
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -110,7 +110,7 @@
 			for (const Train *u = v, *w = v->Next(); w != NULL; u = w, w = w->Next()) {
 				if (u->track != TRACK_BIT_DEPOT) {
 					if ((w->track != TRACK_BIT_DEPOT &&
-							max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->tcache.cached_veh_length) ||
+							max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->gcache.cached_veh_length) ||
 							(w->track == TRACK_BIT_DEPOT && TicksToLeaveDepot(u) <= 0)) {
 						SetDParam(0, v->index);
 						SetDParam(1, v->owner);
@@ -152,7 +152,7 @@
 
 	const RailVehicleInfo *rvi_v = RailVehInfo(this->engine_type);
 	EngineID first_engine = this->IsFrontEngine() ? this->engine_type : INVALID_ENGINE;
-	this->tcache.cached_total_length = 0;
+	this->gcache.cached_total_length = 0;
 	this->compatible_railtypes = RAILTYPES_NONE;
 
 	bool train_can_tilt = true;
@@ -164,7 +164,7 @@
 		assert(u->First() == this);
 
 		/* update the 'first engine' */
-		u->tcache.first_engine = this == u ? INVALID_ENGINE : first_engine;
+		u->gcache.first_engine = this == u ? INVALID_ENGINE : first_engine;
 		u->railtype = rvi_u->railtype;
 
 		if (u->IsEngine()) first_engine = u->engine_type;
@@ -189,7 +189,7 @@
 		if (!HasBit(e_u->info.misc_flags, EF_RAIL_TILTS)) train_can_tilt = false;
 
 		/* Cache wagon override sprite group. NULL is returned if there is none */
-		u->tcache.cached_override = GetWagonOverrideSpriteSet(u->engine_type, u->cargo_type, u->tcache.first_engine);
+		u->tcache.cached_override = GetWagonOverrideSpriteSet(u->engine_type, u->cargo_type, u->gcache.first_engine);
 
 		/* Reset colour map */
 		u->colourmap = PAL_NONE;
@@ -237,12 +237,12 @@
 		veh_len = 8 - Clamp(veh_len, 0, 7);
 
 		/* verify length hasn't changed */
-		if (same_length && veh_len != u->tcache.cached_veh_length) RailVehicleLengthChanged(u);
+		if (same_length && veh_len != u->gcache.cached_veh_length) RailVehicleLengthChanged(u);
 
 		/* update vehicle length? */
-		if (!same_length) u->tcache.cached_veh_length = veh_len;
-
-		this->tcache.cached_total_length += u->tcache.cached_veh_length;
+		if (!same_length) u->gcache.cached_veh_length = veh_len;
+
+		this->gcache.cached_total_length += u->gcache.cached_veh_length;
 		this->InvalidateNewGRFCache();
 		u->InvalidateNewGRFCache();
 	}
@@ -281,7 +281,7 @@
 	/* Default to the middle of the station for stations stops that are not in
 	 * the order list like intermediate stations when non-stop is disabled */
 	OrderStopLocation osl = OSL_PLATFORM_MIDDLE;
-	if (v->tcache.cached_total_length >= *station_length) {
+	if (v->gcache.cached_total_length >= *station_length) {
 		/* The train is longer than the station, make it stop at the far end of the platform */
 		osl = OSL_PLATFORM_FAR_END;
 	} else if (v->current_order.IsType(OT_GOTO_STATION) && v->current_order.GetDestination() == station_id) {
@@ -294,11 +294,11 @@
 		default: NOT_REACHED();
 
 		case OSL_PLATFORM_NEAR_END:
-			stop = v->tcache.cached_total_length;
+			stop = v->gcache.cached_total_length;
 			break;
 
 		case OSL_PLATFORM_MIDDLE:
-			stop = *station_length - (*station_length - v->tcache.cached_total_length) / 2;
+			stop = *station_length - (*station_length - v->gcache.cached_total_length) / 2;
 			break;
 
 		case OSL_PLATFORM_FAR_END:
@@ -308,7 +308,7 @@
 
 	/* Subtract half the front vehicle length of the train so we get the real
 	 * stop location of the train. */
-	return stop - (v->tcache.cached_veh_length + 1) / 2;
+	return stop - (v->gcache.cached_veh_length + 1) / 2;
 }
 
 
@@ -455,7 +455,7 @@
 		offset->x = reference_width / 2;
 		offset->y = vehicle_pitch;
 	}
-	return this->tcache.cached_veh_length * reference_width / 8;
+	return this->gcache.cached_veh_length * reference_width / 8;
 }
 
 static SpriteID GetDefaultTrainSprite(uint8 spritenum, Direction direction)
@@ -551,7 +551,7 @@
 		v->spritenum = rvi->image_index;
 
 		v->engine_type = e->index;
-		v->tcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
+		v->gcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
 
 		DiagDirection dir = GetRailDepotDirection(tile);
 
@@ -697,7 +697,7 @@
 		v->last_station_visited = INVALID_STATION;
 
 		v->engine_type = e->index;
-		v->tcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
+		v->gcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
 
 		v->reliability = e->reliability;
 		v->reliability_spd_dec = e->reliability_spd_dec;
@@ -963,8 +963,8 @@
 			allowed_len--; // We do not count articulated parts and rear heads either.
 
 			/* Back up and clear the first_engine data to avoid using wagon override group */
-			EngineID first_engine = t->tcache.first_engine;
-			t->tcache.first_engine = INVALID_ENGINE;
+			EngineID first_engine = t->gcache.first_engine;
+			t->gcache.first_engine = INVALID_ENGINE;
 
 			/* We don't want the cache to interfere. head's cache is cleared before
 			 * the loop and after each callback does not need to be cleared here. */
@@ -973,7 +973,7 @@
 			uint16 callback = GetVehicleCallbackParent(CBID_TRAIN_ALLOW_WAGON_ATTACH, 0, 0, head->engine_type, t, head);
 
 			/* Restore original first_engine data */
-			t->tcache.first_engine = first_engine;
+			t->gcache.first_engine = first_engine;
 
 			/* We do not want to remember any cached variables from the test run */
 			t->InvalidateNewGRFCache();
@@ -1599,7 +1599,7 @@
 		last = last->Previous();
 		first = first->Next();
 
-		int differential = base->tcache.cached_veh_length - last->tcache.cached_veh_length;
+		int differential = base->gcache.cached_veh_length - last->gcache.cached_veh_length;
 
 		/* do not update images now
 		 * negative differential will be handled in AdvanceWagonsAfterSwap() */
@@ -1659,7 +1659,7 @@
 		last = last->Previous();
 		first = first->Next();
 
-		int differential = last->tcache.cached_veh_length - base->tcache.cached_veh_length;
+		int differential = last->gcache.cached_veh_length - base->gcache.cached_veh_length;
 
 		/* do not update images now */
 		for (int i = 0; i < differential; i++) TrainController(first, (nomove ? last->Next() : NULL));
@@ -3387,7 +3387,7 @@
 	}
 
 	/* do not reverse when approaching red signal */
-	if (!signal && x + (v->tcache.cached_veh_length + 1) / 2 >= TILE_SIZE) {
+	if (!signal && x + (v->gcache.cached_veh_length + 1) / 2 >= TILE_SIZE) {
 		/* we are too near the tile end, reverse now */
 		v->cur_speed = 0;
 		ReverseTrainDirection(v);