summaryrefslogtreecommitdiff
path: root/src/ship_cmd.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2008-04-24 13:05:51 +0000
committersmatz <smatz@openttd.org>2008-04-24 13:05:51 +0000
commit345f160978ada62ad59cb8f9d34c135a536ccbb1 (patch)
tree4aeca38f1ed816119df449a6876e357e9df79dbd /src/ship_cmd.cpp
parent5ac07a2c3454ca3cb932ac7cf1f0083368640322 (diff)
downloadopenttd-345f160978ada62ad59cb8f9d34c135a536ccbb1.tar.xz
(svn r12870) -Codechange: remove some magic numbers from u.ship.state handling
Diffstat (limited to 'src/ship_cmd.cpp')
-rw-r--r--src/ship_cmd.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp
index a6a425150..12881d1e0 100644
--- a/src/ship_cmd.cpp
+++ b/src/ship_cmd.cpp
@@ -282,26 +282,22 @@ static const TileIndexDiffC _ship_leave_depot_offs[] = {
static void CheckShipLeaveDepot(Vehicle *v)
{
- TileIndex tile;
- Axis axis;
- uint m;
-
if (!v->IsInDepot()) return;
- tile = v->tile;
- axis = GetShipDepotAxis(tile);
+ TileIndex tile = v->tile;
+ Axis axis = GetShipDepotAxis(tile);
- /* Check first side */
+ /* Check first (north) side */
if (_ship_sometracks[axis] & GetTileShipTrackStatus(TILE_ADD(tile, ToTileIndexDiff(_ship_leave_depot_offs[axis])))) {
- m = (axis == AXIS_X) ? 0x101 : 0x207;
- /* Check second side */
+ v->direction = ReverseDir(AxisToDirection(axis));
+ /* Check second (south) side */
} else if (_ship_sometracks[axis + 2] & GetTileShipTrackStatus(TILE_ADD(tile, -2 * ToTileIndexDiff(_ship_leave_depot_offs[axis])))) {
- m = (axis == AXIS_X) ? 0x105 : 0x203;
+ v->direction = AxisToDirection(axis);
} else {
return;
}
- v->direction = (Direction)GB(m, 0, 8);
- v->u.ship.state = (TrackBits)GB(m, 8, 8);
+
+ v->u.ship.state = AxisToTrackBits(axis);
v->vehstatus &= ~VS_HIDDEN;
v->cur_speed = 0;