1
0
Fork 0

Compare commits

...

3 Commits

Author SHA1 Message Date
SamuXarick 3db7a3b3d4
Merge 3c44d5ba5a into 03672ed8eb 2025-07-18 11:02:56 +00:00
Jonathan G Rennison 03672ed8eb
Fix: EngineImageType mismatch between sizing and drawing in preview window (#14455) 2025-07-18 07:02:46 -04:00
SamuXarick 3c44d5ba5a Add: [Script] GetBaseStationID
Added ScriptBaseStation::GetBaseStationID to get the StationID of a tile, if there is a basestation (Station or Waypoint).
2025-05-22 14:04:24 +01:00
5 changed files with 18 additions and 1 deletions

View File

@ -84,7 +84,7 @@ struct EnginePreviewWindow : Window {
/* Get size of engine sprite, on loan from depot_gui.cpp */
EngineID engine = static_cast<EngineID>(this->window_number);
EngineImageType image_type = EIT_PURCHASE;
EngineImageType image_type = EIT_PREVIEW;
uint x, y;
int x_offs, y_offs;

View File

@ -28,6 +28,7 @@
* \li AICargo::CC_POTABLE
* \li AICargo::CC_NON_POTABLE
* \li AIVehicleList_Waypoint
* \li AIBaseStation::GetBaseStationID
*
* Other changes:
* \li AIBridge::GetBridgeID renamed to AIBridge::GetBridgeType

View File

@ -29,6 +29,7 @@
* \li GSCargo::CC_NON_POTABLE
* \li GSVehicleList_Waypoint
* \li GSBaseStation::GetOwner
* \li GSBaseStation::GetBaseStationID
*
* Other changes:
* \li GSBridge::GetBridgeID renamed to GSBridge::GetBridgeType

View File

@ -34,6 +34,12 @@
return ScriptCompany::ToScriptCompanyID(::BaseStation::Get(station_id)->owner);
}
/* static */ StationID ScriptBaseStation::GetBaseStationID(TileIndex tile)
{
if (!::IsValidTile(tile) || !::IsTileType(tile, MP_STATION) || ::BaseStation::GetByTile(tile) == nullptr) return StationID::Invalid();
return ::GetStationIndex(tile);
}
/* static */ std::optional<std::string> ScriptBaseStation::GetName(StationID station_id)
{
if (!IsValidBaseStation(station_id)) return std::nullopt;

View File

@ -42,6 +42,15 @@ public:
*/
static ScriptCompany::CompanyID GetOwner(StationID station_id);
/**
* Get the StationID of a tile, if there is a basestation.
* @param tile The tile to find the StationID of.
* @pre IsValidTile(tile).
* @return StationID of the basestation.
* @post Use IsValidBaseStation() to see if the basestation is valid.
*/
static StationID GetBaseStationID(TileIndex tile);
/**
* Get the name of a basestation.
* @param station_id The basestation to get the name of.