mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-07 06:46:43 +00:00
(svn r8884) -Fix
Replace SetSpeedLimitOnBridge() by something simpler
This commit is contained in:
parent
e3f60f716c
commit
12b1804d4e
@ -28,6 +28,11 @@ extern const Bridge orig_bridge[MAX_BRIDGES];
|
|||||||
extern Bridge _bridge[MAX_BRIDGES];
|
extern Bridge _bridge[MAX_BRIDGES];
|
||||||
|
|
||||||
uint GetBridgeFoundation(Slope tileh, Axis axis);
|
uint GetBridgeFoundation(Slope tileh, Axis axis);
|
||||||
uint SetSpeedLimitOnBridge(Vehicle *);
|
|
||||||
|
static inline const Bridge *GetBridge(uint i)
|
||||||
|
{
|
||||||
|
assert(i < lengthof(_bridge));
|
||||||
|
return &_bridge[i];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* BRIDGE_H */
|
#endif /* BRIDGE_H */
|
||||||
|
@ -880,7 +880,9 @@ static bool RoadVehAccelerate(Vehicle *v)
|
|||||||
|
|
||||||
// Clamp
|
// Clamp
|
||||||
spd = min(spd, v->max_speed);
|
spd = min(spd, v->max_speed);
|
||||||
if (v->u.road.state == RVSB_WORMHOLE) spd = min(spd, SetSpeedLimitOnBridge(v));
|
if (v->u.road.state == RVSB_WORMHOLE && !(v->vehstatus & VS_HIDDEN)) {
|
||||||
|
spd = min(spd, GetBridge(GetBridgeType(v->tile))->speed * 2);
|
||||||
|
}
|
||||||
|
|
||||||
//updates statusbar only if speed have changed to save CPU time
|
//updates statusbar only if speed have changed to save CPU time
|
||||||
if (spd != v->cur_speed) {
|
if (spd != v->cur_speed) {
|
||||||
|
@ -3136,7 +3136,10 @@ static void TrainController(Vehicle *v, bool update_image)
|
|||||||
/* In tunnel or on a bridge */
|
/* In tunnel or on a bridge */
|
||||||
GetNewVehiclePos(v, &gp);
|
GetNewVehiclePos(v, &gp);
|
||||||
|
|
||||||
SetSpeedLimitOnBridge(v);
|
if (!(v->vehstatus & VS_HIDDEN)) {
|
||||||
|
v->cur_speed =
|
||||||
|
min(v->cur_speed, GetBridge(GetBridgeType(v->tile))->speed);
|
||||||
|
}
|
||||||
|
|
||||||
if (!(IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) || !HASBIT(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {
|
if (!(IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) || !HASBIT(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {
|
||||||
v->x_pos = gp.x;
|
v->x_pos = gp.x;
|
||||||
|
@ -1051,21 +1051,6 @@ void DrawBridgeMiddle(const TileInfo* ti)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint SetSpeedLimitOnBridge(Vehicle *v)
|
|
||||||
{
|
|
||||||
uint bridge_speed;
|
|
||||||
if (v->vehstatus & VS_HIDDEN) return v->max_speed; /* in tunnel */
|
|
||||||
|
|
||||||
bridge_speed = _bridge[GetBridgeType(v->tile)].speed;
|
|
||||||
|
|
||||||
if (v->type == VEH_Road) bridge_speed *= 2; /* XXX give vehicles proper speeds */
|
|
||||||
|
|
||||||
if (v->cur_speed > bridge_speed) v->cur_speed = bridge_speed;
|
|
||||||
return bridge_speed;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static uint GetSlopeZ_TunnelBridge(TileIndex tile, uint x, uint y)
|
static uint GetSlopeZ_TunnelBridge(TileIndex tile, uint x, uint y)
|
||||||
{
|
{
|
||||||
uint z;
|
uint z;
|
||||||
|
Loading…
Reference in New Issue
Block a user