mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-07 06:46:43 +00:00
(svn r8701) -Codechange: replace magic numbers with enums for u.rail.track.
This commit is contained in:
parent
af3001b988
commit
4ec7eb2201
@ -79,7 +79,7 @@ typedef enum TrackBits {
|
|||||||
TRACK_BIT_ALL = TRACK_BIT_CROSS | TRACK_BIT_HORZ | TRACK_BIT_VERT,
|
TRACK_BIT_ALL = TRACK_BIT_CROSS | TRACK_BIT_HORZ | TRACK_BIT_VERT,
|
||||||
TRACK_BIT_MASK = 0x3FU,
|
TRACK_BIT_MASK = 0x3FU,
|
||||||
TRACK_BIT_WORMHOLE = 0x40U,
|
TRACK_BIT_WORMHOLE = 0x40U,
|
||||||
TRACK_BIT_SPECIAL = 0x80U,
|
TRACK_BIT_DEPOT = 0x80U,
|
||||||
INVALID_TRACK_BIT = 0xFF
|
INVALID_TRACK_BIT = 0xFF
|
||||||
} TrackBits;
|
} TrackBits;
|
||||||
|
|
||||||
|
@ -1969,7 +1969,7 @@ static uint32 VehicleEnter_Track(Vehicle *v, TileIndex tile, int x, int y)
|
|||||||
} else if (_fractcoords_enter[dir] == fract_coord) {
|
} else if (_fractcoords_enter[dir] == fract_coord) {
|
||||||
if (DiagDirToDir(ReverseDiagDir(dir)) == v->direction) {
|
if (DiagDirToDir(ReverseDiagDir(dir)) == v->direction) {
|
||||||
/* enter the depot */
|
/* enter the depot */
|
||||||
v->u.rail.track = TRACK_BIT_SPECIAL,
|
v->u.rail.track = TRACK_BIT_DEPOT,
|
||||||
v->vehstatus |= VS_HIDDEN; /* hide it */
|
v->vehstatus |= VS_HIDDEN; /* hide it */
|
||||||
v->direction = ReverseDir(v->direction);
|
v->direction = ReverseDir(v->direction);
|
||||||
if (v->next == NULL) VehicleEnterDepot(v);
|
if (v->next == NULL) VehicleEnterDepot(v);
|
||||||
|
@ -905,7 +905,7 @@ int32 CmdBuildShip(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
|||||||
_new_vehicle_id = v->index;
|
_new_vehicle_id = v->index;
|
||||||
|
|
||||||
v->string_id = STR_SV_SHIP_NAME;
|
v->string_id = STR_SV_SHIP_NAME;
|
||||||
v->u.ship.state = TRACK_BIT_SPECIAL;
|
v->u.ship.state = TRACK_BIT_DEPOT;
|
||||||
|
|
||||||
v->service_interval = _patches.servint_ships;
|
v->service_interval = _patches.servint_ships;
|
||||||
v->date_of_last_service = _date;
|
v->date_of_last_service = _date;
|
||||||
|
@ -39,7 +39,7 @@ static void TrainController(Vehicle *v, bool update_image);
|
|||||||
|
|
||||||
static const byte _vehicle_initial_x_fract[4] = {10, 8, 4, 8};
|
static const byte _vehicle_initial_x_fract[4] = {10, 8, 4, 8};
|
||||||
static const byte _vehicle_initial_y_fract[4] = { 8, 4, 8, 10};
|
static const byte _vehicle_initial_y_fract[4] = { 8, 4, 8, 10};
|
||||||
static const byte _state_dir_table[4] = { 0x20, 8, 0x10, 4 };
|
static const TrackBits _state_dir_table[4] = { TRACK_BIT_RIGHT, TRACK_BIT_LOWER, TRACK_BIT_LEFT, TRACK_BIT_UPPER };
|
||||||
|
|
||||||
|
|
||||||
/** Return the cargo weight multiplier to use for a rail vehicle
|
/** Return the cargo weight multiplier to use for a rail vehicle
|
||||||
@ -377,7 +377,7 @@ static int GetTrainAcceleration(Vehicle *v, bool mode)
|
|||||||
num++;
|
num++;
|
||||||
drag_coeff += 3;
|
drag_coeff += 3;
|
||||||
|
|
||||||
if (u->u.rail.track == 0x80) max_speed = min(max_speed, 61);
|
if (u->u.rail.track == TRACK_BIT_DEPOT) max_speed = min(max_speed, 61);
|
||||||
|
|
||||||
if (HASBIT(u->u.rail.flags, VRF_GOINGUP)) {
|
if (HASBIT(u->u.rail.flags, VRF_GOINGUP)) {
|
||||||
incl += u->u.rail.cached_veh_weight * 60; //3% slope, quite a bit actually
|
incl += u->u.rail.cached_veh_weight * 60; //3% slope, quite a bit actually
|
||||||
@ -639,7 +639,7 @@ static int32 CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags)
|
|||||||
v->z_pos = GetSlopeZ(x,y);
|
v->z_pos = GetSlopeZ(x,y);
|
||||||
v->owner = _current_player;
|
v->owner = _current_player;
|
||||||
v->z_height = 6;
|
v->z_height = 6;
|
||||||
v->u.rail.track = TRACK_BIT_SPECIAL;
|
v->u.rail.track = TRACK_BIT_DEPOT;
|
||||||
v->vehstatus = VS_HIDDEN | VS_DEFPAL;
|
v->vehstatus = VS_HIDDEN | VS_DEFPAL;
|
||||||
|
|
||||||
v->subtype = 0;
|
v->subtype = 0;
|
||||||
@ -690,7 +690,7 @@ static void NormalizeTrainVehInDepot(const Vehicle* u)
|
|||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (v->type == VEH_Train && IsFreeWagon(v) &&
|
if (v->type == VEH_Train && IsFreeWagon(v) &&
|
||||||
v->tile == u->tile &&
|
v->tile == u->tile &&
|
||||||
v->u.rail.track == 0x80) {
|
v->u.rail.track == TRACK_BIT_DEPOT) {
|
||||||
if (CmdFailed(DoCommand(0, v->index | (u->index << 16), 1, DC_EXEC,
|
if (CmdFailed(DoCommand(0, v->index | (u->index << 16), 1, DC_EXEC,
|
||||||
CMD_MOVE_RAIL_VEHICLE)))
|
CMD_MOVE_RAIL_VEHICLE)))
|
||||||
break;
|
break;
|
||||||
@ -712,7 +712,7 @@ static void AddRearEngineToMultiheadedTrain(Vehicle* v, Vehicle* u, bool buildin
|
|||||||
u->y_pos = v->y_pos;
|
u->y_pos = v->y_pos;
|
||||||
u->z_pos = v->z_pos;
|
u->z_pos = v->z_pos;
|
||||||
u->z_height = 6;
|
u->z_height = 6;
|
||||||
u->u.rail.track = TRACK_BIT_SPECIAL;
|
u->u.rail.track = TRACK_BIT_DEPOT;
|
||||||
u->vehstatus = v->vehstatus & ~VS_STOPPED;
|
u->vehstatus = v->vehstatus & ~VS_STOPPED;
|
||||||
u->subtype = 0;
|
u->subtype = 0;
|
||||||
SetMultiheaded(u);
|
SetMultiheaded(u);
|
||||||
@ -798,7 +798,7 @@ int32 CmdBuildRailVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
|||||||
v->y_pos = y;
|
v->y_pos = y;
|
||||||
v->z_pos = GetSlopeZ(x,y);
|
v->z_pos = GetSlopeZ(x,y);
|
||||||
v->z_height = 6;
|
v->z_height = 6;
|
||||||
v->u.rail.track = TRACK_BIT_SPECIAL;
|
v->u.rail.track = TRACK_BIT_DEPOT;
|
||||||
v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
|
v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
|
||||||
v->spritenum = rvi->image_index;
|
v->spritenum = rvi->image_index;
|
||||||
v->cargo_type = rvi->cargo_type;
|
v->cargo_type = rvi->cargo_type;
|
||||||
@ -885,7 +885,7 @@ int CheckTrainInDepot(const Vehicle *v, bool needs_to_be_stopped)
|
|||||||
*
|
*
|
||||||
* Also skip counting rear ends of multiheaded engines */
|
* Also skip counting rear ends of multiheaded engines */
|
||||||
if (!IsArticulatedPart(v) && !(!IsTrainEngine(v) && IsMultiheaded(v))) count++;
|
if (!IsArticulatedPart(v) && !(!IsTrainEngine(v) && IsMultiheaded(v))) count++;
|
||||||
if (v->u.rail.track != 0x80 || v->tile != tile ||
|
if (v->u.rail.track != TRACK_BIT_DEPOT || v->tile != tile ||
|
||||||
(IsFrontEngine(v) && needs_to_be_stopped && !(v->vehstatus & VS_STOPPED))) {
|
(IsFrontEngine(v) && needs_to_be_stopped && !(v->vehstatus & VS_STOPPED))) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1306,7 +1306,7 @@ int32 CmdStartStopTrain(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
|||||||
if (v->vehstatus & VS_STOPPED && v->u.rail.cached_power == 0) return_cmd_error(STR_TRAIN_START_NO_CATENARY);
|
if (v->vehstatus & VS_STOPPED && v->u.rail.cached_power == 0) return_cmd_error(STR_TRAIN_START_NO_CATENARY);
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
if (v->vehstatus & VS_STOPPED && v->u.rail.track == 0x80) {
|
if (v->vehstatus & VS_STOPPED && v->u.rail.track == TRACK_BIT_DEPOT) {
|
||||||
DeleteVehicleNews(p1, STR_8814_TRAIN_IS_WAITING_IN_DEPOT);
|
DeleteVehicleNews(p1, STR_8814_TRAIN_IS_WAITING_IN_DEPOT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1585,8 +1585,8 @@ static void ReverseTrainSwapVeh(Vehicle *v, int l, int r)
|
|||||||
Swap(a->direction, b->direction);
|
Swap(a->direction, b->direction);
|
||||||
|
|
||||||
/* toggle direction */
|
/* toggle direction */
|
||||||
if (!(a->u.rail.track & 0x80)) a->direction = ReverseDir(a->direction);
|
if (a->u.rail.track != TRACK_BIT_DEPOT) a->direction = ReverseDir(a->direction);
|
||||||
if (!(b->u.rail.track & 0x80)) b->direction = ReverseDir(b->direction);
|
if (b->u.rail.track != TRACK_BIT_DEPOT) b->direction = ReverseDir(b->direction);
|
||||||
|
|
||||||
Swap(a->x_pos, b->x_pos);
|
Swap(a->x_pos, b->x_pos);
|
||||||
Swap(a->y_pos, b->y_pos);
|
Swap(a->y_pos, b->y_pos);
|
||||||
@ -1600,13 +1600,13 @@ static void ReverseTrainSwapVeh(Vehicle *v, int l, int r)
|
|||||||
UpdateVarsAfterSwap(b);
|
UpdateVarsAfterSwap(b);
|
||||||
|
|
||||||
/* call the proper EnterTile function unless we are in a wormhole */
|
/* call the proper EnterTile function unless we are in a wormhole */
|
||||||
if (!(a->u.rail.track & 0x40)) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
|
if (a->u.rail.track != TRACK_BIT_WORMHOLE) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
|
||||||
if (!(b->u.rail.track & 0x40)) VehicleEnterTile(b, b->tile, b->x_pos, b->y_pos);
|
if (b->u.rail.track != TRACK_BIT_WORMHOLE) VehicleEnterTile(b, b->tile, b->x_pos, b->y_pos);
|
||||||
} else {
|
} else {
|
||||||
if (!(a->u.rail.track & 0x80)) a->direction = ReverseDir(a->direction);
|
if (a->u.rail.track != TRACK_BIT_DEPOT) a->direction = ReverseDir(a->direction);
|
||||||
UpdateVarsAfterSwap(a);
|
UpdateVarsAfterSwap(a);
|
||||||
|
|
||||||
if (!(a->u.rail.track & 0x40)) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
|
if (a->u.rail.track != TRACK_BIT_WORMHOLE) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update train's power incase tiles were different rail type */
|
/* Update train's power incase tiles were different rail type */
|
||||||
@ -2174,7 +2174,7 @@ static bool CheckTrainStayInDepot(Vehicle *v)
|
|||||||
|
|
||||||
// bail out if not all wagons are in the same depot or not in a depot at all
|
// bail out if not all wagons are in the same depot or not in a depot at all
|
||||||
for (u = v; u != NULL; u = u->next) {
|
for (u = v; u != NULL; u = u->next) {
|
||||||
if (u->u.rail.track != 0x80 || u->tile != v->tile) return false;
|
if (u->u.rail.track != TRACK_BIT_DEPOT || u->tile != v->tile) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the train got no power, then keep it in the depot
|
// if the train got no power, then keep it in the depot
|
||||||
@ -2420,7 +2420,7 @@ static bool CheckReverseTrain(Vehicle *v)
|
|||||||
uint reverse, reverse_best;
|
uint reverse, reverse_best;
|
||||||
|
|
||||||
if (_opt.diff.line_reverse_mode != 0 ||
|
if (_opt.diff.line_reverse_mode != 0 ||
|
||||||
v->u.rail.track & 0xC0 ||
|
v->u.rail.track == TRACK_BIT_DEPOT || v->u.rail.track == TRACK_BIT_WORMHOLE ||
|
||||||
!(v->direction & 1))
|
!(v->direction & 1))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -2887,7 +2887,7 @@ static void *FindTrainCollideEnum(Vehicle *v, void *data)
|
|||||||
if (v != tcc->v &&
|
if (v != tcc->v &&
|
||||||
v != tcc->v_skip &&
|
v != tcc->v_skip &&
|
||||||
v->type == VEH_Train &&
|
v->type == VEH_Train &&
|
||||||
v->u.rail.track != 0x80 &&
|
v->u.rail.track != TRACK_BIT_DEPOT &&
|
||||||
myabs(v->z_pos - tcc->v->z_pos) <= 6 &&
|
myabs(v->z_pos - tcc->v->z_pos) <= 6 &&
|
||||||
myabs(v->x_pos - tcc->v->x_pos) < 6 &&
|
myabs(v->x_pos - tcc->v->x_pos) < 6 &&
|
||||||
myabs(v->y_pos - tcc->v->y_pos) < 6) {
|
myabs(v->y_pos - tcc->v->y_pos) < 6) {
|
||||||
@ -2936,9 +2936,9 @@ static void CheckTrainCollision(Vehicle *v)
|
|||||||
uint num;
|
uint num;
|
||||||
|
|
||||||
/* can't collide in depot */
|
/* can't collide in depot */
|
||||||
if (v->u.rail.track == 0x80) return;
|
if (v->u.rail.track == TRACK_BIT_DEPOT) return;
|
||||||
|
|
||||||
assert(v->u.rail.track == 0x40 || TileVirtXY(v->x_pos, v->y_pos) == v->tile);
|
assert(v->u.rail.track == TRACK_BIT_WORMHOLE || TileVirtXY(v->x_pos, v->y_pos) == v->tile);
|
||||||
|
|
||||||
tcc.v = v;
|
tcc.v = v;
|
||||||
tcc.v_skip = v->next;
|
tcc.v_skip = v->next;
|
||||||
@ -2951,7 +2951,7 @@ static void CheckTrainCollision(Vehicle *v)
|
|||||||
|
|
||||||
/* it can't collide with its own wagons */
|
/* it can't collide with its own wagons */
|
||||||
if (v == coll ||
|
if (v == coll ||
|
||||||
(v->u.rail.track & 0x40 && (v->direction & 2) != (realcoll->direction & 2)))
|
(v->u.rail.track == TRACK_BIT_WORMHOLE && (v->direction & 2) != (realcoll->direction & 2)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//two drivers + passangers killed in train v
|
//two drivers + passangers killed in train v
|
||||||
@ -3008,11 +3008,11 @@ static void TrainController(Vehicle *v, bool update_image)
|
|||||||
for (prev = GetPrevVehicleInChain(v); v != NULL; prev = v, v = v->next) {
|
for (prev = GetPrevVehicleInChain(v); v != NULL; prev = v, v = v->next) {
|
||||||
BeginVehicleMove(v);
|
BeginVehicleMove(v);
|
||||||
|
|
||||||
if (v->u.rail.track != 0x40) {
|
if (v->u.rail.track != TRACK_BIT_WORMHOLE) {
|
||||||
/* Not inside tunnel */
|
/* Not inside tunnel */
|
||||||
if (GetNewVehiclePos(v, &gp)) {
|
if (GetNewVehiclePos(v, &gp)) {
|
||||||
/* Staying in the old tile */
|
/* Staying in the old tile */
|
||||||
if (v->u.rail.track == 0x80) {
|
if (v->u.rail.track == TRACK_BIT_DEPOT) {
|
||||||
/* inside depot */
|
/* inside depot */
|
||||||
gp.x = v->x_pos;
|
gp.x = v->x_pos;
|
||||||
gp.y = v->y_pos;
|
gp.y = v->y_pos;
|
||||||
@ -3233,14 +3233,14 @@ static void DeleteLastWagon(Vehicle *v)
|
|||||||
EndVehicleMove(v);
|
EndVehicleMove(v);
|
||||||
DeleteVehicle(v);
|
DeleteVehicle(v);
|
||||||
|
|
||||||
if (!(v->u.rail.track & 0xC0))
|
if (v->u.rail.track != TRACK_BIT_DEPOT && v->u.rail.track != TRACK_BIT_WORMHOLE)
|
||||||
SetSignalsOnBothDir(v->tile, FIND_FIRST_BIT(v->u.rail.track));
|
SetSignalsOnBothDir(v->tile, FIND_FIRST_BIT(v->u.rail.track));
|
||||||
|
|
||||||
/* Check if the wagon was on a road/rail-crossing and disable it if no
|
/* Check if the wagon was on a road/rail-crossing and disable it if no
|
||||||
* others are on it */
|
* others are on it */
|
||||||
DisableTrainCrossing(v->tile);
|
DisableTrainCrossing(v->tile);
|
||||||
|
|
||||||
if ( (v->u.rail.track == 0x40 && v->vehstatus & VS_HIDDEN) ) { // inside a tunnel
|
if ((v->u.rail.track == TRACK_BIT_WORMHOLE && v->vehstatus & VS_HIDDEN)) { // inside a tunnel
|
||||||
TileIndex endtile = CheckTunnelBusy(v->tile, NULL);
|
TileIndex endtile = CheckTunnelBusy(v->tile, NULL);
|
||||||
|
|
||||||
if (endtile == INVALID_TILE) return; // tunnel is busy (error returned)
|
if (endtile == INVALID_TILE) return; // tunnel is busy (error returned)
|
||||||
@ -3280,7 +3280,7 @@ static void ChangeTrainDirRandomly(Vehicle *v)
|
|||||||
/* Refrain from updating the z position of the vehicle when on
|
/* Refrain from updating the z position of the vehicle when on
|
||||||
a bridge, because AfterSetTrainPos will put the vehicle under
|
a bridge, because AfterSetTrainPos will put the vehicle under
|
||||||
the bridge in that case */
|
the bridge in that case */
|
||||||
if (!(v->u.rail.track & 0x40)) AfterSetTrainPos(v, false);
|
if (v->u.rail.track != TRACK_BIT_WORMHOLE) AfterSetTrainPos(v, false);
|
||||||
}
|
}
|
||||||
} while ((v = v->next) != NULL);
|
} while ((v = v->next) != NULL);
|
||||||
}
|
}
|
||||||
@ -3291,7 +3291,7 @@ static void HandleCrashedTrain(Vehicle *v)
|
|||||||
uint32 r;
|
uint32 r;
|
||||||
Vehicle *u;
|
Vehicle *u;
|
||||||
|
|
||||||
if (state == 4 && !(v->u.rail.track & VS_HIDDEN)) {
|
if (state == 4 && !(v->vehstatus & VS_HIDDEN)) {
|
||||||
CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE);
|
CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3374,8 +3374,8 @@ static bool TrainCheckIfLineEnds(Vehicle *v)
|
|||||||
v->vehstatus &= ~VS_TRAIN_SLOWING;
|
v->vehstatus &= ~VS_TRAIN_SLOWING;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v->u.rail.track & 0x40) return true; // exit if inside a tunnel
|
if (v->u.rail.track == TRACK_BIT_WORMHOLE) return true; // exit if inside a tunnel
|
||||||
if (v->u.rail.track & 0x80) return true; // exit if inside a depot
|
if (v->u.rail.track == TRACK_BIT_DEPOT) return true; // exit if inside a depot
|
||||||
|
|
||||||
tile = v->tile;
|
tile = v->tile;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ void CcBuildWagon(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
|||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (v->type == VEH_Train && IsFrontEngine(v) &&
|
if (v->type == VEH_Train && IsFrontEngine(v) &&
|
||||||
v->tile == tile &&
|
v->tile == tile &&
|
||||||
v->u.rail.track == 0x80) {
|
v->u.rail.track == TRACK_BIT_DEPOT) {
|
||||||
if (found != NULL) return; // must be exactly one.
|
if (found != NULL) return; // must be exactly one.
|
||||||
found = v;
|
found = v;
|
||||||
}
|
}
|
||||||
|
@ -1275,7 +1275,7 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y
|
|||||||
dir = GetTunnelDirection(tile);
|
dir = GetTunnelDirection(tile);
|
||||||
vdir = DirToDiagDir(v->direction);
|
vdir = DirToDiagDir(v->direction);
|
||||||
|
|
||||||
if (v->u.rail.track != 0x40 && dir == vdir) {
|
if (v->u.rail.track != TRACK_BIT_WORMHOLE && dir == vdir) {
|
||||||
if (IsFrontEngine(v) && fc == _tunnel_fractcoord_1[dir]) {
|
if (IsFrontEngine(v) && fc == _tunnel_fractcoord_1[dir]) {
|
||||||
if (!PlayVehicleSound(v, VSE_TUNNEL) && v->spritenum < 4) {
|
if (!PlayVehicleSound(v, VSE_TUNNEL) && v->spritenum < 4) {
|
||||||
SndPlayVehicleFx(SND_05_TRAIN_THROUGH_TUNNEL, v);
|
SndPlayVehicleFx(SND_05_TRAIN_THROUGH_TUNNEL, v);
|
||||||
@ -1360,7 +1360,7 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y
|
|||||||
} else if (DirToDiagDir(v->direction) == ReverseDiagDir(dir)) {
|
} else if (DirToDiagDir(v->direction) == ReverseDiagDir(dir)) {
|
||||||
v->tile = tile;
|
v->tile = tile;
|
||||||
if (v->type == VEH_Train) {
|
if (v->type == VEH_Train) {
|
||||||
if (v->u.rail.track == 0x40) {
|
if (v->u.rail.track == TRACK_BIT_WORMHOLE) {
|
||||||
v->u.rail.track = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
|
v->u.rail.track = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
|
||||||
return VETSB_ENTERED_WORMHOLE;
|
return VETSB_ENTERED_WORMHOLE;
|
||||||
}
|
}
|
||||||
|
@ -2316,7 +2316,7 @@ void BuildDepotVehicleList(byte type, TileIndex tile, Vehicle ***engine_list, ui
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case VEH_Train:
|
case VEH_Train:
|
||||||
FOR_ALL_VEHICLES(v) {
|
FOR_ALL_VEHICLES(v) {
|
||||||
if (v->tile == tile && v->type == VEH_Train && v->u.rail.track == 0x80) {
|
if (v->tile == tile && v->type == VEH_Train && v->u.rail.track == TRACK_BIT_DEPOT) {
|
||||||
if (IsFrontEngine(v)) {
|
if (IsFrontEngine(v)) {
|
||||||
if (engine_list == NULL) continue;
|
if (engine_list == NULL) continue;
|
||||||
if (*engine_count == *engine_list_length) ExtendVehicleListSize((const Vehicle***)engine_list, engine_list_length, 25);
|
if (*engine_count == *engine_list_length) ExtendVehicleListSize((const Vehicle***)engine_list, engine_list_length, 25);
|
||||||
@ -2529,7 +2529,7 @@ void VehicleEnterDepot(Vehicle *v)
|
|||||||
|
|
||||||
case VEH_Ship:
|
case VEH_Ship:
|
||||||
InvalidateWindowClasses(WC_SHIPS_LIST);
|
InvalidateWindowClasses(WC_SHIPS_LIST);
|
||||||
v->u.ship.state = TRACK_BIT_SPECIAL;
|
v->u.ship.state = TRACK_BIT_DEPOT;
|
||||||
RecalcShipStuff(v);
|
RecalcShipStuff(v);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2737,10 +2737,10 @@ Trackdir GetVehicleTrackdir(const Vehicle* v)
|
|||||||
|
|
||||||
switch (v->type) {
|
switch (v->type) {
|
||||||
case VEH_Train:
|
case VEH_Train:
|
||||||
if (v->u.rail.track == 0x80) /* We'll assume the train is facing outwards */
|
if (v->u.rail.track == TRACK_BIT_DEPOT) /* We'll assume the train is facing outwards */
|
||||||
return DiagdirToDiagTrackdir(GetRailDepotDirection(v->tile)); /* Train in depot */
|
return DiagdirToDiagTrackdir(GetRailDepotDirection(v->tile)); /* Train in depot */
|
||||||
|
|
||||||
if (v->u.rail.track == 0x40) /* train in tunnel, so just use his direction and assume a diagonal track */
|
if (v->u.rail.track == TRACK_BIT_WORMHOLE) /* train in tunnel, so just use his direction and assume a diagonal track */
|
||||||
return DiagdirToDiagTrackdir(DirToDiagDir(v->direction));
|
return DiagdirToDiagTrackdir(DirToDiagDir(v->direction));
|
||||||
|
|
||||||
return TrackDirectionToTrackdir(FindFirstTrack(v->u.rail.track), v->direction);
|
return TrackDirectionToTrackdir(FindFirstTrack(v->u.rail.track), v->direction);
|
||||||
|
Loading…
Reference in New Issue
Block a user