# HG changeset patch # User tron # Date 1149502998 0 # Node ID a89fed199ad0ec1b732917b653a664a2f5c32c60 # Parent bc8a5a77c3e22ed67fefe8812e44f2f305c9b0c3 (svn r5118) Add IsRoadVehInDepot{Stopped,}() diff --git a/roadveh.h b/roadveh.h new file mode 100644 --- /dev/null +++ b/roadveh.h @@ -0,0 +1,15 @@ +/* $Id$ */ + +#include "vehicle.h" + + +static inline bool IsRoadVehInDepot(const Vehicle* v) +{ + assert(v->type == VEH_Road); + return v->u.road.state == 254; +} + +static inline bool IsRoadVehInDepotStopped(const Vehicle* v) +{ + return IsRoadVehInDepot(v) && v->vehstatus & VS_STOPPED; +} diff --git a/roadveh_cmd.c b/roadveh_cmd.c --- a/roadveh_cmd.c +++ b/roadveh_cmd.c @@ -6,6 +6,7 @@ #include "debug.h" #include "functions.h" #include "road_map.h" +#include "roadveh.h" #include "station_map.h" #include "table/strings.h" #include "map.h" @@ -216,7 +217,7 @@ if (v->type != VEH_Road || !CheckOwnership(v->owner)) return CMD_ERROR; if (flags & DC_EXEC) { - if (v->vehstatus & VS_STOPPED && v->u.road.state == 254) { + if (IsRoadVehInDepotStopped(v)) { DeleteVehicleNews(p1, STR_9016_ROAD_VEHICLE_IS_WAITING); } @@ -259,7 +260,7 @@ SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); - if (v->u.road.state != 254 || !(v->vehstatus & VS_STOPPED)) { + if (!IsRoadVehInDepotStopped(v)) { return_cmd_error(STR_9013_MUST_BE_STOPPED_INSIDE); } @@ -409,7 +410,7 @@ v->breakdown_ctr != 0 || v->u.road.overtaking != 0 || v->u.road.state == 255 || - v->u.road.state == 254 || + IsRoadVehInDepot(v) || v->cur_speed < 5) { return CMD_ERROR; } @@ -742,7 +743,7 @@ return rvf->veh != v && v->type == VEH_Road && - v->u.road.state != 254 && + !IsRoadVehInDepot(v) && myabs(v->z_pos - rvf->veh->z_pos) < 6 && v->direction == rvf->dir && (dist_x[v->direction] >= 0 || (x_diff > dist_x[v->direction] && x_diff <= 0)) && @@ -1226,7 +1227,7 @@ if (v->current_order.type == OT_LOADING) return; - if (v->u.road.state == 254) { + if (IsRoadVehInDepot(v)) { DiagDirection dir; const RoadDriveEntry* rdp; byte rd2; diff --git a/roadveh_gui.c b/roadveh_gui.c --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -4,6 +4,7 @@ #include "openttd.h" #include "debug.h" #include "functions.h" +#include "roadveh.h" #include "table/sprites.h" #include "table/strings.h" #include "map.h" @@ -554,7 +555,7 @@ /* determine amount of items for scroller */ num = 0; FOR_ALL_VEHICLES(v) { - if (v->type == VEH_Road && v->u.road.state == 254 && v->tile == tile) + if (v->type == VEH_Road && IsRoadVehInDepot(v) && v->tile == tile) num++; } SetVScrollCount(w, (num + w->hscroll.cap - 1) / w->hscroll.cap); @@ -571,7 +572,7 @@ num = w->vscroll.pos * w->hscroll.cap; FOR_ALL_VEHICLES(v) { - if (v->type == VEH_Road && v->u.road.state == 254 && v->tile == tile && + if (v->type == VEH_Road && IsRoadVehInDepot(v) && v->tile == tile && --num < 0 && num >= -w->vscroll.cap * w->hscroll.cap) { DrawRoadVehImage(v, x+24, y, WP(w,traindepot_d).sel); @@ -608,7 +609,7 @@ tile = w->window_number; FOR_ALL_VEHICLES(v) { - if (v->type == VEH_Road && v->u.road.state == 254 && v->tile == tile && + if (v->type == VEH_Road && IsRoadVehInDepot(v) && v->tile == tile && --pos < 0) { *veh = v; if (xm >= 24) return 0; @@ -917,7 +918,7 @@ DrawVehicleProfitButton(v, x, y + 13); SetDParam(0, v->unitnumber); - if (IsTileDepotType(v->tile, TRANSPORT_ROAD) && (v->vehstatus & VS_HIDDEN)) + if (IsRoadVehInDepot(v)) str = STR_021F; else str = v->age > v->max_age - 366 ? STR_00E3 : STR_00E2; diff --git a/vehicle.c b/vehicle.c --- a/vehicle.c +++ b/vehicle.c @@ -3,6 +3,7 @@ #include "stdafx.h" #include "openttd.h" #include "road_map.h" +#include "roadveh.h" #include "spritecache.h" #include "table/sprites.h" #include "table/strings.h" @@ -1996,7 +1997,7 @@ return TrackDirectionToTrackdir(FIND_FIRST_BIT(v->u.ship.state),v->direction); case VEH_Road: - if (v->u.road.state == 254) /* We'll assume the road vehicle is facing outwards */ + if (IsRoadVehInDepot(v)) /* We'll assume the road vehicle is facing outwards */ return DiagdirToDiagTrackdir(GetRoadDepotDirection(v->tile)); if (IsRoadStopTile(v->tile)) /* We'll assume the road vehicle is facing outwards */