(svn r4201) - Codechange: Do for _engine_info[] what we do for _*_vehicle_info[]; create and use a function to retrieve data, and ensure constness.
authorpeter1138
Fri, 31 Mar 2006 12:59:43 +0000
changeset 3393 48ce4c723a76
parent 3392 7c330e18dfe1
child 3394 78963d9c1022
(svn r4201) - Codechange: Do for _engine_info[] what we do for _*_vehicle_info[]; create and use a function to retrieve data, and ensure constness.
engine.h
players.c
train_gui.c
vehicle.c
vehicle_gui.c
--- a/engine.h	Fri Mar 31 10:47:06 2006 +0000
+++ b/engine.h	Fri Mar 31 12:59:43 2006 +0000
@@ -219,6 +219,12 @@
 extern AircraftVehicleInfo _aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES];
 extern RoadVehicleInfo _road_vehicle_info[NUM_ROAD_ENGINES];
 
+static inline const EngineInfo *EngInfo(EngineID e)
+{
+	assert(e < lengthof(_engine_info));
+	return &_engine_info[e];
+}
+
 static inline const RailVehicleInfo* RailVehInfo(EngineID e)
 {
 	assert(e < lengthof(_rail_vehicle_info));
--- a/players.c	Fri Mar 31 10:47:06 2006 +0000
+++ b/players.c	Fri Mar 31 12:59:43 2006 +0000
@@ -625,7 +625,7 @@
 
 	for (i = 0; i != TOTAL_NUM_ENGINES; i++) {
 		const Engine* e = GetEngine(i);
-		const EngineInfo *ei = &_engine_info[i];
+		const EngineInfo *ei = EngInfo(i);
 
 		if (e->type == VEH_Train && HASBIT(ei->climates, _opt.landscape) &&
 				(HASBIT(e->player_avail, p) || _date >= (e->intro_date + 365)) &&
--- a/train_gui.c	Fri Mar 31 10:47:06 2006 +0000
+++ b/train_gui.c	Fri Mar 31 12:59:43 2006 +0000
@@ -92,7 +92,7 @@
 void DrawTrainWagonPurchaseInfo(int x, int y, EngineID engine_number)
 {
 	const RailVehicleInfo *rvi = RailVehInfo(engine_number);
-	bool refittable = (_engine_info[engine_number].refit_mask != 0);
+	bool refittable = (EngInfo(engine_number)->refit_mask != 0);
 
 	/* Purchase cost */
 	SetDParam(0, (rvi->base_cost * _price.build_railwagon) >> 8);
@@ -910,7 +910,7 @@
 
 			/* See if any vehicle can be refitted */
 			for (u = v; u != NULL; u = u->next) {
-				if (_engine_info[u->engine_type].refit_mask != 0 ||
+				if (EngInfo(u->engine_type)->refit_mask != 0 ||
 						(!(RailVehInfo(v->engine_type)->flags & RVI_WAGON) && v->cargo_cap != 0)) {
 					CLRBIT(w->disabled_state, 12);
 					/* We have a refittable carriage, bail out */
--- a/vehicle.c	Fri Mar 31 10:47:06 2006 +0000
+++ b/vehicle.c	Fri Mar 31 12:59:43 2006 +0000
@@ -694,7 +694,7 @@
 bool CanRefitTo(EngineID engine_type, CargoID cid_to)
 {
 	CargoID cid = _global_cargo_id[_opt_ptr->landscape][cid_to];
-	return HASBIT(_engine_info[engine_type].refit_mask, cid);
+	return HASBIT(EngInfo(engine_type)->refit_mask, cid);
 }
 
 static void DoDrawVehicle(const Vehicle *v)
@@ -2061,7 +2061,7 @@
 	byte colour = _player_colors[player];
 
 	/* XXX Magic 0x307 is the first company colour remap sprite */
-	map = HASBIT(_engine_info[engine_type].misc_flags, EF_USES_2CC) ?
+	map = HASBIT(EngInfo(engine_type)->misc_flags, EF_USES_2CC) ?
 		(SPR_2CCMAP_BASE + colour + colour * 16) : (PALETTE_RECOLOR_START + colour);
 
 	return SPRITE_PALETTE(map << PALETTE_SPRITE_START);
--- a/vehicle_gui.c	Fri Mar 31 10:47:06 2006 +0000
+++ b/vehicle_gui.c	Fri Mar 31 12:59:43 2006 +0000
@@ -233,7 +233,7 @@
 	 * it with the bitmask of available cargo on the current landscape, and
 	 * where the bits are set: those are available */
 	do {
-		cmask |= _engine_info[u->engine_type].refit_mask;
+		cmask |= EngInfo(u->engine_type)->refit_mask;
 		u = u->next;
 	} while (v->type == VEH_Train && u != NULL);
 
@@ -461,7 +461,7 @@
 		EngineID i = GetRailVehAtPosition(j);
 		const Engine *e = GetEngine(i);
 		const RailVehicleInfo *rvi = RailVehInfo(i);
-		const EngineInfo *info = &_engine_info[i];
+		const EngineInfo *info = EngInfo(i);
 
 		if (!EngineHasReplacementForPlayer(p, i) && _player_num_engines[i] == 0 && show_outdated) continue;
 
@@ -523,7 +523,7 @@
 			for (i = 0; i < NUM_TRAIN_ENGINES; i++) {
 				EngineID eid = GetRailVehAtPosition(i);
 				const Engine* e = GetEngine(eid);
-				const EngineInfo* info = &_engine_info[eid];
+				const EngineInfo* info = EngInfo(eid);
 
 				// left window contains compatible engines while right window only contains engines of the selected type
 				if (ENGINE_AVAILABLE && (