Changeset - r9823:a4c566e26b42
[Not reviewed]
master
0 2 0
rubidium - 16 years ago 2008-08-02 22:57:03
rubidium@openttd.org
(svn r13965) -Add [YAPP]: Implement newgrf var 0x44 for stations (PBS reservation state). (michi_cc)
2 files changed with 18 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/newgrf_station.cpp
Show inline comments
 
@@ -26,6 +26,7 @@
 
#include "animated_tile_func.h"
 
#include "functions.h"
 
#include "tunnelbridge_map.h"
 
#include "rail_map.h"
 

	
 
#include "table/sprites.h"
 
#include "table/strings.h"
 
@@ -405,7 +406,12 @@ static uint32 StationGetVariable(const R
 

	
 
		case 0x42: return GetTerrainType(tile) | (GetRailType(tile) << 8);
 
		case 0x43: return st->owner; // Station owner
 
		case 0x44: return 2;         // PBS status
 
		case 0x44:
 
			if (IsTileType(tile, MP_RAILWAY) && IsRailWaypoint(tile)) {
 
				return GetDepotWaypointReservation(tile) ? 7 : 4;
 
			} else {
 
				return GetRailwayStationReservation(tile) ? 7 : 4; // PBS status
 
			}
 
		case 0x45:
 
			if (!HasBit(_svc.valid, 2)) { _svc.v45 = GetRailContinuationInfo(tile); SetBit(_svc.valid, 2); }
 
			return _svc.v45;
src/pbs.cpp
Show inline comments
 
@@ -66,7 +66,7 @@ void SetRailwayStationPlatformReservatio
 

	
 
	do {
 
		SetRailwayStationReservation(tile, b);
 
		if (_settings_client.gui.show_track_reservation) MarkTileDirtyByTile(tile);
 
		MarkTileDirtyByTile(tile);
 
		tile = TILE_ADD(tile, diff);
 
	} while (IsCompatibleTrainStationTile(tile, start));
 
}
 
@@ -92,6 +92,7 @@ bool TryReserveRailTrack(TileIndex tile,
 
			if (IsRailWaypoint(tile) || IsRailDepot(tile)) {
 
				if (!GetDepotWaypointReservation(tile)) {
 
					SetDepotWaypointReservation(tile, true);
 
					MarkTileDirtyByTile(tile);
 
					return true;
 
				}
 
			}
 
@@ -107,6 +108,7 @@ bool TryReserveRailTrack(TileIndex tile,
 
		case MP_STATION:
 
			if (IsRailwayStation(tile) && !GetRailwayStationReservation(tile)) {
 
				SetRailwayStationReservation(tile, true);
 
				MarkTileDirtyByTile(tile);
 
				return true;
 
			}
 
			break;
 
@@ -139,7 +141,10 @@ bool TryReserveRailTrack(TileIndex tile,
 

	
 
	switch (GetTileType(tile)) {
 
		case MP_RAILWAY:
 
			if (IsRailWaypoint(tile) || IsRailDepot(tile)) SetDepotWaypointReservation(tile, false);
 
			if (IsRailWaypoint(tile) || IsRailDepot(tile)) {
 
				SetDepotWaypointReservation(tile, false);
 
				MarkTileDirtyByTile(tile);
 
			}
 
			if (IsPlainRailTile(tile)) UnreserveTrack(tile, t);
 
			break;
 

	
 
@@ -148,7 +153,10 @@ bool TryReserveRailTrack(TileIndex tile,
 
			break;
 

	
 
		case MP_STATION:
 
			if (IsRailwayStation(tile)) SetRailwayStationReservation(tile, false);
 
			if (IsRailwayStation(tile)) {
 
				SetRailwayStationReservation(tile, false);
 
				MarkTileDirtyByTile(tile);
 
			}
 
			break;
 

	
 
		case MP_TUNNELBRIDGE:
0 comments (0 inline, 0 general)