mirror of https://github.com/OpenTTD/OpenTTD
(svn r14566) -Fix [FS#2397]: RV's go via order would reserve a slot at the 'via' station which it never uses, which makes it unlikely that it reserves a slot for the next station and that makes queueing fail (Aali)
parent
e91ae97e19
commit
c7f3935506
|
@ -2108,6 +2108,8 @@ static void TileLoop_Track(TileIndex tile)
|
||||||
RailGroundType old_ground = GetRailGroundType(tile);
|
RailGroundType old_ground = GetRailGroundType(tile);
|
||||||
RailGroundType new_ground;
|
RailGroundType new_ground;
|
||||||
|
|
||||||
|
UpdateStat(tile, !EnsureNoVehicleOnGround(tile));
|
||||||
|
|
||||||
if (old_ground == RAIL_GROUND_WATER) {
|
if (old_ground == RAIL_GROUND_WATER) {
|
||||||
TileLoop_Water(tile);
|
TileLoop_Water(tile);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -598,6 +598,15 @@ static inline bool IsSnowRailGround(TileIndex t)
|
||||||
return GetRailGroundType(t) == RAIL_GROUND_ICE_DESERT;
|
return GetRailGroundType(t) == RAIL_GROUND_ICE_DESERT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void UpdateStat(TileIndex t, bool on_track)
|
||||||
|
{
|
||||||
|
_me[t].m7 = _me[t].m7 << 1 | !!on_track;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline byte GetStat(TileIndex t)
|
||||||
|
{
|
||||||
|
return _me[t].m7;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void MakeRailNormal(TileIndex t, Owner o, TrackBits b, RailType r)
|
static inline void MakeRailNormal(TileIndex t, Owner o, TrackBits b, RailType r)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1922,7 +1922,7 @@ void RoadVehicle::OnNewDay()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* update destination */
|
/* update destination */
|
||||||
if (!(this->vehstatus & VS_STOPPED) && this->current_order.IsType(OT_GOTO_STATION) && this->u.road.slot == NULL && !(this->vehstatus & VS_CRASHED)) {
|
if (!(this->vehstatus & VS_STOPPED) && this->current_order.IsType(OT_GOTO_STATION) && !(this->current_order.GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) && this->u.road.slot == NULL && !(this->vehstatus & VS_CRASHED)) {
|
||||||
Station *st = GetStation(this->current_order.GetDestination());
|
Station *st = GetStation(this->current_order.GetDestination());
|
||||||
RoadStop *rs = st->GetPrimaryRoadStop(this);
|
RoadStop *rs = st->GetPrimaryRoadStop(this);
|
||||||
RoadStop *best = NULL;
|
RoadStop *best = NULL;
|
||||||
|
|
|
@ -383,6 +383,20 @@ static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile)
|
||||||
return ApplyMask(MKCOLOR(0x54545454), &_smallmap_vehicles_andor[t]);
|
return ApplyMask(MKCOLOR(0x54545454), &_smallmap_vehicles_andor[t]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define MK(x) MKCOLOR(x << 24 | x << 16 | x << 8 | x)
|
||||||
|
|
||||||
|
static const uint32 _busyness[] = {
|
||||||
|
MK(15),
|
||||||
|
MK(150),
|
||||||
|
MK(209),
|
||||||
|
MK(206),
|
||||||
|
MK(191),
|
||||||
|
MK(186),
|
||||||
|
MK(184),
|
||||||
|
MK(180),
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the color a tile would be displayed with in the small map in mode "Routes".
|
* Return the color a tile would be displayed with in the small map in mode "Routes".
|
||||||
*
|
*
|
||||||
|
@ -405,7 +419,7 @@ static inline uint32 GetSmallMapRoutesPixels(TileIndex tile)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* ground color */
|
/* ground color */
|
||||||
bits = ApplyMask(MKCOLOR(0x54545454), &_smallmap_contours_andor[t]);
|
bits = ApplyMask(t == MP_RAILWAY ? _busyness[CountBits(GetStat(tile))] : MKCOLOR(0x54545454), &_smallmap_contours_andor[t]);
|
||||||
}
|
}
|
||||||
return bits;
|
return bits;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue