(svn r924) Use RailVehInfo() instead of &_rail_vehicle_info[]
This commit is contained in:
		
							
								
								
									
										26
									
								
								train_cmd.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								train_cmd.c
									
									
									
									
									
								
							| @@ -41,7 +41,7 @@ void UpdateTrainAcceleration(Vehicle *v) | |||||||
|  |  | ||||||
| 	// compute stuff like max speed, power, and weight. | 	// compute stuff like max speed, power, and weight. | ||||||
| 	do { | 	do { | ||||||
| 		const RailVehicleInfo *rvi = &_rail_vehicle_info[u->engine_type]; | 		const RailVehicleInfo *rvi = RailVehInfo(u->engine_type); | ||||||
|  |  | ||||||
| 		// power is sum of the power for all engines | 		// power is sum of the power for all engines | ||||||
| 		power += rvi->power; | 		power += rvi->power; | ||||||
| @@ -96,7 +96,7 @@ static int GetRealisticAcceleration(Vehicle *v) | |||||||
|  |  | ||||||
| 	// compute inclination force and number of curves. | 	// compute inclination force and number of curves. | ||||||
| 	do { | 	do { | ||||||
| 		const RailVehicleInfo *rvi = &_rail_vehicle_info[u->engine_type]; | 		const RailVehicleInfo *rvi = RailVehInfo(u->engine_type); | ||||||
| 		uint mass = rvi->weight + ((_cargoc.weights[u->cargo_type] * u->cargo_count) >> 4); | 		uint mass = rvi->weight + ((_cargoc.weights[u->cargo_type] * u->cargo_count) >> 4); | ||||||
| 		if (rvi->power) emass += mass; | 		if (rvi->power) emass += mass; | ||||||
|  |  | ||||||
| @@ -169,7 +169,7 @@ int GetTrainImage(Vehicle *v, byte direction) | |||||||
|  |  | ||||||
| void DrawTrainEngine(int x, int y, int engine, uint32 image_ormod) | void DrawTrainEngine(int x, int y, int engine, uint32 image_ormod) | ||||||
| { | { | ||||||
| 	const RailVehicleInfo *rvi = &_rail_vehicle_info[engine]; | 	const RailVehicleInfo *rvi = RailVehInfo(engine); | ||||||
|  |  | ||||||
| 	int img = rvi->image_index; | 	int img = rvi->image_index; | ||||||
| 	uint32 image = 0; | 	uint32 image = 0; | ||||||
| @@ -199,7 +199,7 @@ void DrawTrainEngine(int x, int y, int engine, uint32 image_ormod) | |||||||
|  |  | ||||||
| void DrawTrainEngineInfo(int engine, int x, int y, int maxw) | void DrawTrainEngineInfo(int engine, int x, int y, int maxw) | ||||||
| { | { | ||||||
| 	const RailVehicleInfo *rvi = &_rail_vehicle_info[engine]; | 	const RailVehicleInfo *rvi = RailVehInfo(engine); | ||||||
| 	int cap; | 	int cap; | ||||||
| 	uint multihead = ((rvi->flags & RVI_MULTIHEAD) ? 1 : 0); | 	uint multihead = ((rvi->flags & RVI_MULTIHEAD) ? 1 : 0); | ||||||
|  |  | ||||||
| @@ -229,7 +229,7 @@ static int32 CmdBuildRailWagon(uint engine, uint tile, uint32 flags) | |||||||
| 	const Engine *e; | 	const Engine *e; | ||||||
| 	int x,y; | 	int x,y; | ||||||
|  |  | ||||||
| 	rvi = &_rail_vehicle_info[engine]; | 	rvi = RailVehInfo(engine); | ||||||
| 	value = (rvi->base_cost * _price.build_railwagon) >> 8; | 	value = (rvi->base_cost * _price.build_railwagon) >> 8; | ||||||
|  |  | ||||||
| 	if (!(flags & DC_QUERY_COST)) { | 	if (!(flags & DC_QUERY_COST)) { | ||||||
| @@ -385,7 +385,7 @@ int32 CmdBuildRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) | |||||||
| 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); | 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); | ||||||
|  |  | ||||||
| 	tile = TILE_FROM_XY(x,y); | 	tile = TILE_FROM_XY(x,y); | ||||||
| 	rvi = &_rail_vehicle_info[p1]; | 	rvi = RailVehInfo(p1); | ||||||
|  |  | ||||||
| 	if (rvi->flags & RVI_WAGON) { | 	if (rvi->flags & RVI_WAGON) { | ||||||
| 		return CmdBuildRailWagon(p1, tile, flags); | 		return CmdBuildRailWagon(p1, tile, flags); | ||||||
| @@ -596,7 +596,7 @@ int32 CmdMoveRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) | |||||||
| 	src = &_vehicles[p1 & 0xffff]; | 	src = &_vehicles[p1 & 0xffff]; | ||||||
| 	if (src->type != VEH_Train) return CMD_ERROR; | 	if (src->type != VEH_Train) return CMD_ERROR; | ||||||
|  |  | ||||||
| 	is_loco = !(_rail_vehicle_info[src->engine_type].flags & RVI_WAGON) | 	is_loco = !(RailVehInfo(src->engine_type)->flags & RVI_WAGON) | ||||||
| 	          && is_firsthead_sprite(src->spritenum); | 	          && is_firsthead_sprite(src->spritenum); | ||||||
|  |  | ||||||
| 	// if nothing is selected as destination, try and find a matching vehicle to drag to. | 	// if nothing is selected as destination, try and find a matching vehicle to drag to. | ||||||
| @@ -1041,7 +1041,7 @@ int32 CmdRefitRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) | |||||||
| 		/* XXX: We also refit all the attached wagons en-masse if they | 		/* XXX: We also refit all the attached wagons en-masse if they | ||||||
| 		 * can be refitted. This is how TTDPatch does it.  TODO: Have | 		 * can be refitted. This is how TTDPatch does it.  TODO: Have | ||||||
| 		 * some nice [Refit] button near each wagon. --pasky */ | 		 * some nice [Refit] button near each wagon. --pasky */ | ||||||
| 		if ((!(_rail_vehicle_info[v->engine_type].flags & RVI_WAGON) | 		if ((!(RailVehInfo(v->engine_type)->flags & RVI_WAGON) | ||||||
| 		     || (_engine_refit_masks[v->engine_type] & (1 << p2))) | 		     || (_engine_refit_masks[v->engine_type] & (1 << p2))) | ||||||
| 		    && (byte) p2 != v->cargo_type && v->cargo_cap != 0) { | 		    && (byte) p2 != v->cargo_type && v->cargo_cap != 0) { | ||||||
| 			cost += (_price.build_railvehicle >> 8); | 			cost += (_price.build_railvehicle >> 8); | ||||||
| @@ -1206,12 +1206,12 @@ static void HandleLocomotiveSmokeCloud(Vehicle *v) | |||||||
| 		int engtype = v->engine_type; | 		int engtype = v->engine_type; | ||||||
|  |  | ||||||
| 		// no smoke? | 		// no smoke? | ||||||
| 		if (_rail_vehicle_info[engtype].flags & 2 | 		if (RailVehInfo(engtype)->flags & 2 | ||||||
| 		    || _engines[engtype].railtype > 0 | 		    || _engines[engtype].railtype > 0 | ||||||
| 		    || (v->vehstatus&VS_HIDDEN) || (v->u.rail.track & 0xC0) ) | 		    || (v->vehstatus&VS_HIDDEN) || (v->u.rail.track & 0xC0) ) | ||||||
| 			continue; | 			continue; | ||||||
|  |  | ||||||
| 		switch (_rail_vehicle_info[engtype].engclass) { | 		switch (RailVehInfo(engtype)->engclass) { | ||||||
| 		case 0: | 		case 0: | ||||||
| 			// steam smoke. | 			// steam smoke. | ||||||
| 			if ( (v->tick_counter&0xF) == 0 && !IsTrainDepotTile(v->tile) && !IsTunnelTile(v->tile)) { | 			if ( (v->tick_counter&0xF) == 0 && !IsTrainDepotTile(v->tile) && !IsTunnelTile(v->tile)) { | ||||||
| @@ -1248,7 +1248,7 @@ static void TrainPlayLeaveStationSound(Vehicle *v) | |||||||
|  |  | ||||||
| 	switch (_engines[engtype].railtype) { | 	switch (_engines[engtype].railtype) { | ||||||
| 		case 0: | 		case 0: | ||||||
| 			SndPlayVehicleFx(sfx[_rail_vehicle_info[engtype].engclass], v); | 			SndPlayVehicleFx(sfx[RailVehInfo(engtype)->engclass], v); | ||||||
| 			break; | 			break; | ||||||
| 		case 1: | 		case 1: | ||||||
| 			SndPlayVehicleFx(SND_47_MAGLEV_2, v); | 			SndPlayVehicleFx(SND_47_MAGLEV_2, v); | ||||||
| @@ -2541,7 +2541,7 @@ void TrainEnterDepot(Vehicle *v, uint tile) | |||||||
| 	v->load_unload_time_rem = 0; | 	v->load_unload_time_rem = 0; | ||||||
| 	v->cur_speed = 0; | 	v->cur_speed = 0; | ||||||
|  |  | ||||||
| 	MaybeRenewVehicle(v, EstimateTrainCost(&_rail_vehicle_info[v->engine_type])); | 	MaybeRenewVehicle(v, EstimateTrainCost(RailVehInfo(v->engine_type))); | ||||||
|  |  | ||||||
| 	TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT); | 	TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT); | ||||||
|  |  | ||||||
| @@ -2621,7 +2621,7 @@ int32 GetTrainRunningCost(Vehicle *v) | |||||||
| 	int32 cost = 0; | 	int32 cost = 0; | ||||||
|  |  | ||||||
| 	do { | 	do { | ||||||
| 		const RailVehicleInfo *rvi = &_rail_vehicle_info[v->engine_type]; | 		const RailVehicleInfo *rvi = RailVehInfo(v->engine_type); | ||||||
| 		if (rvi->running_cost_base) | 		if (rvi->running_cost_base) | ||||||
| 			cost += rvi->running_cost_base * _price.running_rail[rvi->engclass]; | 			cost += rvi->running_cost_base * _price.running_rail[rvi->engclass]; | ||||||
| 	} while ( (v=v->next) != NULL ); | 	} while ( (v=v->next) != NULL ); | ||||||
|   | |||||||
| @@ -185,7 +185,7 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e) | |||||||
| 			int sel_eng; | 			int sel_eng; | ||||||
| 			sel_eng = WP(w,buildtrain_d).sel_engine; | 			sel_eng = WP(w,buildtrain_d).sel_engine; | ||||||
| 			if (sel_eng != -1) | 			if (sel_eng != -1) | ||||||
| 				DoCommandP(w->window_number, sel_eng, 0, (_rail_vehicle_info[sel_eng].flags & RVI_WAGON) ? CcBuildWagon : CcBuildLoco, CMD_BUILD_RAIL_VEHICLE | CMD_MSG(STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE)); | 				DoCommandP(w->window_number, sel_eng, 0, (RailVehInfo(sel_eng)->flags & RVI_WAGON) ? CcBuildWagon : CcBuildLoco, CMD_BUILD_RAIL_VEHICLE | CMD_MSG(STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE)); | ||||||
| 		}	break; | 		}	break; | ||||||
| 		case 6: | 		case 6: | ||||||
| 			WP(w,buildtrain_d).rename_engine = WP(w,buildtrain_d).sel_engine; | 			WP(w,buildtrain_d).rename_engine = WP(w,buildtrain_d).sel_engine; | ||||||
| @@ -912,9 +912,7 @@ static void TrainDetailsCargoTab(Vehicle *v, int x, int y) | |||||||
|  |  | ||||||
| static void TrainDetailsInfoTab(Vehicle *v, int x, int y) | static void TrainDetailsInfoTab(Vehicle *v, int x, int y) | ||||||
| { | { | ||||||
| 	const RailVehicleInfo *rvi; | 	const RailVehicleInfo *rvi = RailVehInfo(v->engine_type); | ||||||
|  |  | ||||||
| 	rvi = &_rail_vehicle_info[v->engine_type]; |  | ||||||
|  |  | ||||||
| 	if (!(rvi->flags & RVI_WAGON)) { | 	if (!(rvi->flags & RVI_WAGON)) { | ||||||
| 		SetDParam(0, GetCustomEngineName(v->engine_type)); | 		SetDParam(0, GetCustomEngineName(v->engine_type)); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 tron
					tron