Feature: Increase number of stations/roadstops per NewGRF.
This commit is contained in:
		@@ -314,7 +314,8 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef void (*SpecialSpriteHandler)(ByteReader *buf);
 | 
					typedef void (*SpecialSpriteHandler)(ByteReader *buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const uint NUM_STATIONS_PER_GRF = 255; ///< Number of StationSpecs per NewGRF; limited to 255 to allow extending Action3 with an extended byte later on.
 | 
					/** The maximum amount of stations a single GRF is allowed to add */
 | 
				
			||||||
 | 
					static const uint NUM_STATIONS_PER_GRF = UINT16_MAX - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Temporary engine data used when loading only */
 | 
					/** Temporary engine data used when loading only */
 | 
				
			||||||
struct GRFTempEngineData {
 | 
					struct GRFTempEngineData {
 | 
				
			||||||
@@ -1988,7 +1989,7 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case 0x0A: { // Copy sprite layout
 | 
								case 0x0A: { // Copy sprite layout
 | 
				
			||||||
				byte srcid = buf->ReadByte();
 | 
									uint16_t srcid = buf->ReadExtendedByte();
 | 
				
			||||||
				const StationSpec *srcstatspec = srcid >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[srcid].get();
 | 
									const StationSpec *srcstatspec = srcid >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[srcid].get();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if (srcstatspec == nullptr) {
 | 
									if (srcstatspec == nullptr) {
 | 
				
			||||||
@@ -2042,7 +2043,7 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte
 | 
				
			|||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case 0x0F: { // Copy custom layout
 | 
								case 0x0F: { // Copy custom layout
 | 
				
			||||||
				byte srcid = buf->ReadByte();
 | 
									uint16_t srcid = buf->ReadExtendedByte();
 | 
				
			||||||
				const StationSpec *srcstatspec = srcid >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[srcid].get();
 | 
									const StationSpec *srcstatspec = srcid >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[srcid].get();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if (srcstatspec == nullptr) {
 | 
									if (srcstatspec == nullptr) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,7 @@
 | 
				
			|||||||
#include "road.h"
 | 
					#include "road.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** The maximum amount of roadstops a single GRF is allowed to add */
 | 
					/** The maximum amount of roadstops a single GRF is allowed to add */
 | 
				
			||||||
static const int NUM_ROADSTOPS_PER_GRF = 255;
 | 
					static const int NUM_ROADSTOPS_PER_GRF = UINT16_MAX - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum RoadStopClassID : byte {
 | 
					enum RoadStopClassID : byte {
 | 
				
			||||||
	ROADSTOP_CLASS_BEGIN = 0,    ///< The lowest valid value
 | 
						ROADSTOP_CLASS_BEGIN = 0,    ///< The lowest valid value
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user