Changeset - r9045:56afeadb0fbc
[Not reviewed]
master
0 3 0
smatz - 16 years ago 2008-04-24 13:05:51
smatz@openttd.org
(svn r12870) -Codechange: remove some magic numbers from u.ship.state handling
3 files changed with 25 insertions and 13 deletions:
0 comments (0 inline, 0 general)
src/direction_func.h
Show inline comments
 
@@ -168,6 +168,22 @@ static inline DiagDirection AxisToDiagDi
 
}
 

	
 
/**
 
 * Converts an Axis to a Direction
 
 *
 
 * This function returns the Direction which
 
 * belongs to the axis. As 2 directions are mapped to an axis
 
 * this function returns the one which points to south,
 
 * either south-west (on X axis) or south-east (on Y axis)
 
 *
 
 * @param a The axis
 
 * @return The direction pointed to south
 
 */
 
static inline Direction AxisToDirection(Axis a)
 
{
 
	return (Direction)(5 - 2 * a);
 
}
 

	
 
/**
 
 * Convert an axis and a flag for north/south into a DiagDirection
 
 * @param xy axis to convert
 
 * @param ns north -> 0, south -> 1
src/ship.h
Show inline comments
 
@@ -38,7 +38,7 @@ struct Ship: public Vehicle {
 
	int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
 
	int GetDisplayMaxSpeed() const { return this->max_speed * 10 / 32; }
 
	Money GetRunningCost() const { return ShipVehInfo(this->engine_type)->running_cost * _price.ship_running; }
 
	bool IsInDepot() const { return this->u.ship.state == 0x80; }
 
	bool IsInDepot() const { return this->u.ship.state == TRACK_BIT_DEPOT; }
 
	void Tick();
 
	void OnNewDay();
 
	TileIndex GetOrderStationLocation(StationID station);
src/ship_cmd.cpp
Show inline comments
 
@@ -282,26 +282,22 @@ static const TileIndexDiffC _ship_leave_
 

	
 
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;
0 comments (0 inline, 0 general)