Changeset - r12416:93dcb9b64f6b
[Not reviewed]
master
0 4 0
rubidium - 15 years ago 2009-07-17 20:21:24
rubidium@openttd.org
(svn r16860) -Codechange: introduce a helper to assign a station spec to Waypoints
4 files changed with 23 insertions and 26 deletions:
0 comments (0 inline, 0 general)
src/saveload/afterload.cpp
Show inline comments
 
@@ -997,21 +997,8 @@ bool AfterLoadGame()
 

	
 
		FOR_ALL_WAYPOINTS(wp) {
 
			if (wp->delete_ctr == 0) {
 
				const StationSpec *statspec = NULL;
 

	
 
				if (HasBit(_m[wp->xy].m3, 4)) {
 
					statspec = GetCustomStationSpec(STAT_CLASS_WAYP, _m[wp->xy].m4 + 1);
 
				}
 

	
 
				if (statspec != NULL) {
 
					wp->spec.spec = statspec;
 
					wp->spec.grfid = statspec->grffile->grfid;
 
					wp->spec.localidx = statspec->localidx;
 
				} else {
 
					/* No custom graphics set, so set to default. */
 
					wp->spec.spec = NULL;
 
					wp->spec.grfid = 0;
 
					wp->spec.localidx = 0;
 
					wp->AssignStationSpec(_m[wp->xy].m4 + 1);
 
				}
 

	
 
				/* Move ground type bits from m2 to m4. */
src/waypoint.cpp
Show inline comments
 
@@ -91,6 +91,25 @@ Waypoint::~Waypoint()
 
	this->sign.MarkDirty();
 
}
 

	
 
/**
 
 * Assign a station spec to this waypoint.
 
 * @param index the index of the spec from the waypoint specs
 
 */
 
void Waypoint::AssignStationSpec(uint index)
 
{
 
	const StationSpec *statspec = GetCustomStationSpec(STAT_CLASS_WAYP, index);
 

	
 
	if (statspec != NULL) {
 
		this->spec.spec = statspec;
 
		this->spec.grfid = statspec->grffile->grfid;
 
		this->spec.localidx = statspec->localidx;
 
	} else {
 
		this->spec.spec = NULL;
 
		this->spec.grfid = 0;
 
		this->spec.localidx = 0;
 
	}
 
}
 

	
 
void InitializeWaypoints()
 
{
 
	_waypoint_pool.CleanPool();
src/waypoint.h
Show inline comments
 
@@ -36,6 +36,8 @@ struct Waypoint : WaypointPool::PoolItem
 
	~Waypoint();
 

	
 
	void UpdateVirtCoord();
 

	
 
	void AssignStationSpec(uint index);
 
};
 

	
 
#define FOR_ALL_WAYPOINTS_FROM(var, start) FOR_ALL_ITEMS_FROM(Waypoint, waypoint_index, var, start)
src/waypoint_cmd.cpp
Show inline comments
 
@@ -190,18 +190,7 @@ CommandCost CmdBuildTrainWaypoint(TileIn
 
		SetDepotWaypointReservation(tile, reserved);
 
		MarkTileDirtyByTile(tile);
 

	
 
		const StationSpec *statspec = GetCustomStationSpec(STAT_CLASS_WAYP, p1);
 

	
 
		if (statspec != NULL) {
 
			wp->spec.spec = statspec;
 
			wp->spec.grfid = statspec->grffile->grfid;
 
			wp->spec.localidx = statspec->localidx;
 
		} else {
 
			/* Specified custom graphics do not exist, so use default. */
 
			wp->spec.spec = NULL;
 
			wp->spec.grfid = 0;
 
			wp->spec.localidx = 0;
 
		}
 
		wp->AssignStationSpec(p1);
 

	
 
		wp->delete_ctr = 0;
 
		wp->build_date = _date;
0 comments (0 inline, 0 general)