|
@@ -282,25 +282,25 @@ TownScopeResolver *StationResolverObject
|
|
|
case 0x67: // Land info of nearby tile
|
|
|
if (this->axis != INVALID_AXIS && this->tile != INVALID_TILE) {
|
|
|
TileIndex tile = this->tile;
|
|
|
if (parameter != 0) tile = GetNearbyTile(parameter, tile, true, this->axis); // only perform if it is required
|
|
|
|
|
|
Slope tileh = GetTileSlope(tile);
|
|
|
bool swap = (this->axis == AXIS_Y && HasBit(tileh, CORNER_W) != HasBit(tileh, CORNER_E));
|
|
|
|
|
|
return GetNearbyTileInformation(tile, this->ro.grffile->grf_version >= 8) ^ (swap ? SLOPE_EW : 0);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case 0xFA: return ClampTo<uint16_t>(TimerGameCalendar::date - DAYS_TILL_ORIGINAL_BASE_YEAR); // Build date, clamped to a 16 bit value
|
|
|
case 0xFA: return ClampTo<uint16_t>(TimerGameCalendar::date - CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR); // Build date, clamped to a 16 bit value
|
|
|
}
|
|
|
|
|
|
*available = false;
|
|
|
return UINT_MAX;
|
|
|
}
|
|
|
|
|
|
switch (variable) {
|
|
|
/* Calculated station variables */
|
|
|
case 0x40:
|
|
|
if (!HasBit(_svc.valid, 0)) { _svc.v40 = GetPlatformInfoHelper(this->tile, false, false, false); SetBit(_svc.valid, 0); }
|
|
|
return _svc.v40;
|
|
|
|
|
@@ -372,25 +372,25 @@ TownScopeResolver *StationResolverObject
|
|
|
if (!HasStationTileRail(nearby_tile)) return 0xFFFFFFFF;
|
|
|
if (!IsCustomStationSpecIndex(nearby_tile)) return 0;
|
|
|
|
|
|
const StationSpecList ssl = BaseStation::GetByTile(nearby_tile)->speclist[GetCustomStationSpecIndex(nearby_tile)];
|
|
|
return ssl.grfid;
|
|
|
}
|
|
|
|
|
|
/* General station variables */
|
|
|
case 0x82: return 50;
|
|
|
case 0x84: return this->st->string_id;
|
|
|
case 0x86: return 0;
|
|
|
case 0xF0: return this->st->facilities;
|
|
|
case 0xFA: return ClampTo<uint16_t>(this->st->build_date - DAYS_TILL_ORIGINAL_BASE_YEAR);
|
|
|
case 0xFA: return ClampTo<uint16_t>(this->st->build_date - CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR);
|
|
|
}
|
|
|
|
|
|
return this->st->GetNewGRFVariable(this->ro, variable, parameter, available);
|
|
|
}
|
|
|
|
|
|
uint32_t Station::GetNewGRFVariable(const ResolverObject &object, byte variable, byte parameter, bool *available) const
|
|
|
{
|
|
|
switch (variable) {
|
|
|
case 0x48: { // Accepted cargo types
|
|
|
CargoID cargo_type;
|
|
|
uint32_t value = 0;
|
|
|
|