(svn r3803) Change the second parameter of UpdateSignalsOnSegment() from Direction to DiagDirection as that's what it really operates on

This commit is contained in:
tron 2006-03-09 12:32:25 +00:00
parent a00385913b
commit 78a7b15ce0
4 changed files with 16 additions and 13 deletions

View File

@ -1756,11 +1756,10 @@ make_red:
} }
bool UpdateSignalsOnSegment(TileIndex tile, Direction dir) bool UpdateSignalsOnSegment(TileIndex tile, DiagDirection direction)
{ {
SetSignalsData ssd; SetSignalsData ssd;
int result = -1; int result = -1;
DiagDirection direction = DirToDiagDir(dir);
ssd.cur_stack = 0; ssd.cur_stack = 0;
@ -1788,8 +1787,12 @@ bool UpdateSignalsOnSegment(TileIndex tile, Direction dir)
void SetSignalsOnBothDir(TileIndex tile, byte track) void SetSignalsOnBothDir(TileIndex tile, byte track)
{ {
static const Direction _search_dir_1[] = { DIR_NE, DIR_SE, DIR_NE, DIR_SE, DIR_SW, DIR_SE }; static const DiagDirection _search_dir_1[] = {
static const Direction _search_dir_2[] = { DIR_SW, DIR_NW, DIR_NW, DIR_SW, DIR_NW, DIR_NE }; DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_SW, DIAGDIR_SE
};
static const DiagDirection _search_dir_2[] = {
DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_NE
};
UpdateSignalsOnSegment(tile, _search_dir_1[track]); UpdateSignalsOnSegment(tile, _search_dir_1[track]);
UpdateSignalsOnSegment(tile, _search_dir_2[track]); UpdateSignalsOnSegment(tile, _search_dir_2[track]);

View File

@ -1964,7 +1964,7 @@ static bool CheckTrainStayInDepot(Vehicle *v)
v->load_unload_time_rem = 0; v->load_unload_time_rem = 0;
if (UpdateSignalsOnSegment(v->tile, v->direction)) { if (UpdateSignalsOnSegment(v->tile, DirToDiagDir(v->direction))) {
InvalidateWindowClasses(WC_TRAINS_LIST); InvalidateWindowClasses(WC_TRAINS_LIST);
return true; return true;
} }
@ -1983,7 +1983,7 @@ static bool CheckTrainStayInDepot(Vehicle *v)
UpdateTrainDeltaXY(v, v->direction); UpdateTrainDeltaXY(v, v->direction);
v->cur_image = GetTrainImage(v, v->direction); v->cur_image = GetTrainImage(v, v->direction);
VehiclePositionChanged(v); VehiclePositionChanged(v);
UpdateSignalsOnSegment(v->tile, v->direction); UpdateSignalsOnSegment(v->tile, DirToDiagDir(v->direction));
UpdateTrainAcceleration(v); UpdateTrainAcceleration(v);
InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
@ -2623,9 +2623,9 @@ static void AffectSpeedByZChange(Vehicle *v, byte old_z)
} }
} }
static const Direction _otherside_signal_directions[] = { static const DiagDirection _otherside_signal_directions[] = {
DIR_NE, DIR_SE, DIR_NE, DIR_SE, DIR_SW, DIR_SE, 0, 0, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_SW, DIAGDIR_SE, 0, 0,
DIR_SW, DIR_NW, DIR_NW, DIR_SW, DIR_NW, DIR_NE, DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_NE
}; };
static void TrainMovedChangeSignals(TileIndex tile, DiagDirection dir) static void TrainMovedChangeSignals(TileIndex tile, DiagDirection dir)

View File

@ -506,7 +506,7 @@ int32 CmdBuildTunnel(int x, int y, uint32 flags, uint32 p1, uint32 p2)
MakeRoadTunnel(end_tile, _current_player, ReverseDiagDir(direction)); MakeRoadTunnel(end_tile, _current_player, ReverseDiagDir(direction));
} }
if (GB(p1, 9, 1) == 0) UpdateSignalsOnSegment(start_tile, DiagDirToDir(direction)); if (GB(p1, 9, 1) == 0) UpdateSignalsOnSegment(start_tile, direction);
} }
return cost; return cost;
@ -582,8 +582,8 @@ static int32 DoClearTunnel(TileIndex tile, uint32 flags)
DoClearSquare(tile); DoClearSquare(tile);
DoClearSquare(endtile); DoClearSquare(endtile);
UpdateSignalsOnSegment(tile, DiagDirToDir(ReverseDiagDir(dir))); UpdateSignalsOnSegment(tile, ReverseDiagDir(dir));
UpdateSignalsOnSegment(endtile, DiagDirToDir(dir)); UpdateSignalsOnSegment(endtile, dir);
} }
return _price.clear_tunnel * (length + 1); return _price.clear_tunnel * (length + 1);
} }

View File

@ -284,7 +284,7 @@ void VehicleInTheWayErrMsg(const Vehicle* v);
Vehicle *FindVehicleBetween(TileIndex from, TileIndex to, byte z); Vehicle *FindVehicleBetween(TileIndex from, TileIndex to, byte z);
TileIndex GetVehicleOutOfTunnelTile(const Vehicle *v); TileIndex GetVehicleOutOfTunnelTile(const Vehicle *v);
bool UpdateSignalsOnSegment(TileIndex tile, Direction direction); bool UpdateSignalsOnSegment(TileIndex tile, DiagDirection direction);
void SetSignalsOnBothDir(TileIndex tile, byte track); void SetSignalsOnBothDir(TileIndex tile, byte track);
Vehicle *CheckClickOnVehicle(const ViewPort *vp, int x, int y); Vehicle *CheckClickOnVehicle(const ViewPort *vp, int x, int y);