(svn r13912) -Codechange: remove some casts by returning the proper type instead of void*.
authorrubidium
Fri, 01 Aug 2008 15:07:31 +0000
changeset 9775 22e256c3bf46
parent 9774 190734cb1113
child 9776 056e0e5c964a
(svn r13912) -Codechange: remove some casts by returning the proper type instead of void*.
src/rail.h
src/rail_cmd.cpp
src/roadveh_cmd.cpp
src/signal.cpp
src/station_cmd.cpp
src/train_cmd.cpp
src/vehicle.cpp
src/vehicle_func.h
--- a/src/rail.h	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/rail.h	Fri Aug 01 15:07:31 2008 +0000
@@ -193,10 +193,10 @@
 	return RailBuildCost(to) + _price.remove_rail;
 }
 
-void *UpdateTrainPowerProc(Vehicle *v, void *data);
+Vehicle *UpdateTrainPowerProc(Vehicle *v, void *data);
 void DrawTrainDepotSprite(int x, int y, int image, RailType railtype);
 void DrawDefaultWaypointSprite(int x, int y, RailType railtype);
-void *EnsureNoTrainOnTrackProc(Vehicle *v, void *data);
+Vehicle *EnsureNoTrainOnTrackProc(Vehicle *v, void *data);
 int TicksToLeaveDepot(const Vehicle *v);
 
 Foundation GetRailFoundation(Slope tileh, TrackBits bits);
--- a/src/rail_cmd.cpp	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/rail_cmd.cpp	Fri Aug 01 15:07:31 2008 +0000
@@ -92,7 +92,7 @@
  */
 
 
-void *EnsureNoTrainOnTrackProc(Vehicle *v, void *data)
+Vehicle *EnsureNoTrainOnTrackProc(Vehicle *v, void *data)
 {
 	TrackBits rail_bits = *(TrackBits *)data;
 
@@ -1162,7 +1162,7 @@
 }
 
 /** Update power of train under which is the railtype being converted */
-void *UpdateTrainPowerProc(Vehicle *v, void *data)
+Vehicle *UpdateTrainPowerProc(Vehicle *v, void *data)
 {
 	/* Similiar checks as in TrainPowerChanged() */
 
--- a/src/roadveh_cmd.cpp	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/roadveh_cmd.cpp	Fri Aug 01 15:07:31 2008 +0000
@@ -630,9 +630,9 @@
 	}
 }
 
-static void* EnumCheckRoadVehCrashTrain(Vehicle* v, void* data)
+static Vehicle *EnumCheckRoadVehCrashTrain(Vehicle *v, void *data)
 {
-	const Vehicle* u = (Vehicle*)data;
+	const Vehicle *u = (Vehicle*)data;
 
 	return
 		v->type == VEH_TRAIN &&
@@ -765,12 +765,12 @@
 	Direction dir;
 };
 
-static void* EnumCheckRoadVehClose(Vehicle *v, void* data)
+static Vehicle *EnumCheckRoadVehClose(Vehicle *v, void *data)
 {
 	static const int8 dist_x[] = { -4, -8, -4, -1, 4, 8, 4, 1 };
 	static const int8 dist_y[] = { -4, -1, 4, 8, 4, 1, -4, -8 };
 
-	const RoadVehFindData* rvf = (RoadVehFindData*)data;
+	const RoadVehFindData *rvf = (RoadVehFindData*)data;
 
 	short x_diff = v->x_pos - rvf->x;
 	short y_diff = v->y_pos - rvf->y;
@@ -801,10 +801,10 @@
 	rvf.dir = dir;
 	rvf.veh = v;
 	if (front->u.road.state == RVSB_WORMHOLE) {
-		u = (Vehicle*)VehicleFromPos(v->tile, &rvf, EnumCheckRoadVehClose);
+		u = VehicleFromPos(v->tile, &rvf, EnumCheckRoadVehClose);
 		if (u == NULL) u = (Vehicle*)VehicleFromPos(GetOtherTunnelBridgeEnd(v->tile), &rvf, EnumCheckRoadVehClose);
 	} else {
-		u = (Vehicle*)VehicleFromPosXY(x, y, &rvf, EnumCheckRoadVehClose);
+		u = VehicleFromPosXY(x, y, &rvf, EnumCheckRoadVehClose);
 	}
 
 	/* This code protects a roadvehicle from being blocked for ever
@@ -913,7 +913,7 @@
 	Trackdir trackdir;
 };
 
-static void* EnumFindVehBlockingOvertake(Vehicle* v, void* data)
+static Vehicle *EnumFindVehBlockingOvertake(Vehicle *v, void* data)
 {
 	const OvertakeData* od = (OvertakeData*)data;
 
--- a/src/signal.cpp	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/signal.cpp	Fri Aug 01 15:07:31 2008 +0000
@@ -192,7 +192,7 @@
 
 
 /** Check whether there is a train on rail, not in a depot */
-static void *TrainOnTileEnum(Vehicle *v, void *)
+static Vehicle *TrainOnTileEnum(Vehicle *v, void *)
 {
 	if (v->type != VEH_TRAIN || v->u.rail.track == TRACK_BIT_DEPOT) return NULL;
 
@@ -284,13 +284,13 @@
 
 				if (IsRailDepot(tile)) {
 					if (enterdir == INVALID_DIAGDIR) { // from 'inside' - train just entered or left the depot
-						if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+						if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 						exitdir = GetRailDepotDirection(tile);
 						tile += TileOffsByDiagDir(exitdir);
 						enterdir = ReverseDiagDir(exitdir);
 						break;
 					} else if (enterdir == GetRailDepotDirection(tile)) { // entered a depot
-						if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+						if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 						continue;
 					} else {
 						continue;
@@ -299,7 +299,7 @@
 
 				if (GetRailTileType(tile) == RAIL_TILE_WAYPOINT) {
 					if (GetWaypointAxis(tile) != DiagDirToAxis(enterdir)) continue;
-					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 					tile += TileOffsByDiagDir(exitdir);
 					/* enterdir and exitdir stay the same */
 					break;
@@ -310,10 +310,10 @@
 
 				if (tracks == TRACK_BIT_HORZ || tracks == TRACK_BIT_VERT) { // there is exactly one incidating track, no need to check
 					tracks = tracks_masked;
-					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, &tracks, &EnsureNoTrainOnTrackProc)) flags |= SF_TRAIN;
+					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, &tracks, &EnsureNoTrainOnTrackProc) != NULL) flags |= SF_TRAIN;
 				} else {
 					if (tracks_masked == TRACK_BIT_NONE) continue; // no incidating track
-					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 				}
 
 				if (HasSignals(tile)) { // there is exactly one track - not zero, because there is exit from this tile
@@ -358,7 +358,7 @@
 				if (DiagDirToAxis(enterdir) != GetRailStationAxis(tile)) continue; // different axis
 				if (IsStationTileBlocked(tile)) continue; // 'eye-candy' station tile
 
-				if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+				if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 				tile += TileOffsByDiagDir(exitdir);
 				break;
 
@@ -367,7 +367,7 @@
 				if (GetTileOwner(tile) != owner) continue;
 				if (DiagDirToAxis(enterdir) == GetCrossingRoadAxis(tile)) continue; // different axis
 
-				if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+				if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 				tile += TileOffsByDiagDir(exitdir);
 				break;
 
@@ -377,13 +377,13 @@
 				DiagDirection dir = GetTunnelBridgeDirection(tile);
 
 				if (enterdir == INVALID_DIAGDIR) { // incoming from the wormhole
-					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 					enterdir = dir;
 					exitdir = ReverseDiagDir(dir);
 					tile += TileOffsByDiagDir(exitdir); // just skip to next tile
 				} else { // NOT incoming from the wormhole!
 					if (ReverseDiagDir(enterdir) != dir) continue;
-					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum)) flags |= SF_TRAIN;
+					if (!(flags & SF_TRAIN) && VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL) flags |= SF_TRAIN;
 					tile = GetOtherTunnelBridgeEnd(tile); // just skip to exit tile
 					enterdir = INVALID_DIAGDIR;
 					exitdir = INVALID_DIAGDIR;
--- a/src/station_cmd.cpp	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/station_cmd.cpp	Fri Aug 01 15:07:31 2008 +0000
@@ -1419,7 +1419,7 @@
 }
 
 
-static void *ClearRoadStopStatusEnum(Vehicle *v, void *)
+static Vehicle *ClearRoadStopStatusEnum(Vehicle *v, void *)
 {
 	if (v->type == VEH_ROAD) ClrBit(v->u.road.state, RVS_IN_DT_ROAD_STOP);
 
--- a/src/train_cmd.cpp	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/train_cmd.cpp	Fri Aug 01 15:07:31 2008 +0000
@@ -1692,7 +1692,7 @@
  * @param v vehicle on tile
  * @return v if it is a train, NULL otherwise
  */
-static void *TrainOnTileEnum(Vehicle *v, void *)
+static Vehicle *TrainOnTileEnum(Vehicle *v, void *)
 {
 	return (v->type == VEH_TRAIN) ? v : NULL;
 }
@@ -1704,7 +1704,7 @@
  * @param data tile with crossing we are testing
  * @return v if it is approaching a crossing, NULL otherwise
  */
-static void *TrainApproachingCrossingEnum(Vehicle *v, void *data)
+static Vehicle *TrainApproachingCrossingEnum(Vehicle *v, void *data)
 {
 	/* not a train || not front engine || crashed */
 	if (v->type != VEH_TRAIN || !IsFrontEngine(v) || v->vehstatus & VS_CRASHED) return NULL;
@@ -1730,14 +1730,14 @@
 	DiagDirection dir = AxisToDiagDir(GetCrossingRailAxis(tile));
 	TileIndex tile_from = tile + TileOffsByDiagDir(dir);
 
-	Vehicle *v = (Vehicle*)VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
+	Vehicle *v = VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
 
 	if (v != NULL) return v;
 
 	dir = ReverseDiagDir(dir);
 	tile_from = tile + TileOffsByDiagDir(dir);
 
-	return (Vehicle*)VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
+	return VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
 }
 
 
@@ -1752,7 +1752,7 @@
 	assert(IsLevelCrossingTile(tile));
 
 	/* train on crossing || train approaching crossing */
-	bool new_state = VehicleFromPos(tile, NULL, &TrainOnTileEnum) || TrainApproachingCrossing(tile);
+	bool new_state = VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL || TrainApproachingCrossing(tile);
 
 	if (new_state != IsCrossingBarred(tile)) {
 		if (new_state && sound) {
@@ -2896,7 +2896,7 @@
 	uint num;    ///< number of dead if train collided
 };
 
-static void *FindTrainCollideEnum(Vehicle *v, void *data)
+static Vehicle *FindTrainCollideEnum(Vehicle *v, void *data)
 {
 	TrainCollideChecker *tcc = (TrainCollideChecker*)data;
 
@@ -2968,7 +2968,7 @@
 	SndPlayVehicleFx(SND_13_BIG_CRASH, v);
 }
 
-static void *CheckVehicleAtSignal(Vehicle *v, void *data)
+static Vehicle *CheckVehicleAtSignal(Vehicle *v, void *data)
 {
 	DiagDirection exitdir = *(DiagDirection *)data;
 
--- a/src/vehicle.cpp	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/vehicle.cpp	Fri Aug 01 15:07:31 2008 +0000
@@ -156,7 +156,7 @@
 	}
 }
 
-static void *EnsureNoVehicleProcZ(Vehicle *v, void *data)
+static Vehicle *EnsureNoVehicleProcZ(Vehicle *v, void *data)
 {
 	byte z = *(byte*)data;
 
@@ -204,7 +204,7 @@
 
 
 /** Procedure called for every vehicle found in tunnel/bridge in the hash map */
-static void *GetVehicleTunnelBridgeProc(Vehicle *v, void *data)
+static Vehicle *GetVehicleTunnelBridgeProc(Vehicle *v, void *data)
 {
 	if (v->type != VEH_TRAIN && v->type != VEH_ROAD && v->type != VEH_SHIP) return NULL;
 
@@ -374,13 +374,13 @@
 
 static Vehicle *_new_vehicle_position_hash[TOTAL_HASH_SIZE];
 
-static void *VehicleFromHash(int xl, int yl, int xu, int yu, void *data, VehicleFromPosProc *proc)
+static Vehicle *VehicleFromHash(int xl, int yl, int xu, int yu, void *data, VehicleFromPosProc *proc)
 {
 	for (int y = yl; ; y = (y + (1 << HASH_BITS)) & (HASH_MASK << HASH_BITS)) {
 		for (int x = xl; ; x = (x + 1) & HASH_MASK) {
 			Vehicle *v = _new_vehicle_position_hash[(x + y) & TOTAL_HASH_MASK];
 			for (; v != NULL; v = v->next_new_hash) {
-				void *a = proc(v, data);
+				Vehicle *a = proc(v, data);
 				if (a != NULL) return a;
 			}
 			if (x == xu) break;
@@ -392,7 +392,7 @@
 }
 
 
-void *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc)
+Vehicle *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc)
 {
 	const int COLL_DIST = 6;
 
@@ -406,7 +406,7 @@
 }
 
 
-void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc)
+Vehicle *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc)
 {
 	int x = GB(TileX(tile), HASH_RES, HASH_BITS);
 	int y = GB(TileY(tile), HASH_RES, HASH_BITS) << HASH_BITS;
@@ -415,7 +415,7 @@
 	for (; v != NULL; v = v->next_new_hash) {
 		if (v->tile != tile) continue;
 
-		void *a = proc(v, data);
+		Vehicle *a = proc(v, data);
 		if (a != NULL) return a;
 	}
 
--- a/src/vehicle_func.h	Fri Aug 01 13:25:19 2008 +0000
+++ b/src/vehicle_func.h	Fri Aug 01 15:07:31 2008 +0000
@@ -19,7 +19,7 @@
 #define IS_CUSTOM_FIRSTHEAD_SPRITE(x) (x == 0xFD)
 #define IS_CUSTOM_SECONDHEAD_SPRITE(x) (x == 0xFE)
 
-typedef void *VehicleFromPosProc(Vehicle *v, void *data);
+typedef Vehicle *VehicleFromPosProc(Vehicle *v, void *data);
 
 void VehicleServiceInDepot(Vehicle *v);
 void VehiclePositionChanged(Vehicle *v);
@@ -28,8 +28,8 @@
 uint CountVehiclesInChain(const Vehicle *v);
 bool IsEngineCountable(const Vehicle *v);
 void DeleteVehicleChain(Vehicle *v);
-void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc);
-void *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc);
+Vehicle *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc);
+Vehicle *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc);
 void CallVehicleTicks();
 Vehicle *FindVehicleOnTileZ(TileIndex tile, byte z);
 uint8 CalcPercentVehicleFilled(const Vehicle *v, StringID *color);