diff --git a/bin/ai/compat_14.nut b/bin/ai/compat_14.nut index 012a8d070c..492f5386e0 100644 --- a/bin/ai/compat_14.nut +++ b/bin/ai/compat_14.nut @@ -36,3 +36,8 @@ AITown.FoundTown <- function(tile, size, city, layout, name) { return AITown.Fou AIVehicle.SetNameCompat14 <- AIVehicle.SetName; AIVehicle.SetName <- function(id, name) { return AIVehicle.SetNameCompat14(id, AICompat14.Text(name)); } + +AIBaseStation.IsValidBaseStation <- function(station_id) +{ + return AIStation.IsValidStation(station_id) || AIWaypoint.IsValidWaypoint(station_id); +} diff --git a/bin/game/compat_14.nut b/bin/game/compat_14.nut index 757e2496f4..90e9c87d14 100644 --- a/bin/game/compat_14.nut +++ b/bin/game/compat_14.nut @@ -81,3 +81,8 @@ GSTown.FoundTown <- function(tile, size, city, layout, name) { return GSTown.Fou GSVehicle.SetNameCompat14 <- GSVehicle.SetName; GSVehicle.SetName <- function(id, name) { return GSVehicle.SetNameCompat14(id, GSCompat14.Text(name)); } + +GSBaseStation.IsValidBaseStation <- function(station_id) +{ + return GSStation.IsValidStation(station_id) || GSWaypoint.IsValidWaypoint(station_id); +} diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index f76a586f07..6d091cc1f7 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -29,6 +29,9 @@ * \li AICargo::CC_NON_POTABLE * \li AIVehicleList_Waypoint * + * API removals: + * \li AIBaseStation::IsValidBaseStation, use AIStation::IsValidStation or AIWaypoint::IsValidWaypoint instead + * * Other changes: * \li AIBridge::GetBridgeID renamed to AIBridge::GetBridgeType * \li AIWaypoint::GetWaypointID now returns the StationID of any type of waypoint diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 7bb7203d20..cda5753e5c 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -30,6 +30,9 @@ * \li GSVehicleList_Waypoint * \li GSBaseStation::GetOwner * + * API removals: + * \li GSBaseStation::IsValidBaseStation, use GSStation::IsValidStation or GSWaypoint::IsValidWaypoint instead + * * Other changes: * \li GSBridge::GetBridgeID renamed to GSBridge::GetBridgeType * \li GSWaypoint::GetWaypointID now returns the StationID of any type of waypoint diff --git a/src/script/api/script_basestation.hpp b/src/script/api/script_basestation.hpp index 646bec13ab..7bb8d01337 100644 --- a/src/script/api/script_basestation.hpp +++ b/src/script/api/script_basestation.hpp @@ -21,15 +21,16 @@ */ class ScriptBaseStation : public ScriptObject { public: - static constexpr StationID STATION_NEW = ::NEW_STATION; ///< Build a new station - static constexpr StationID STATION_JOIN_ADJACENT = ::ADJACENT_STATION; ///< Join an neighbouring station if one exists - static constexpr StationID STATION_INVALID = ::StationID::Invalid(); ///< Invalid station id. + static constexpr StationID STATION_NEW = ::NEW_STATION; ///< Build a new station or waypoint + static constexpr StationID STATION_JOIN_ADJACENT = ::ADJACENT_STATION; ///< Join a neighbouring station or waypoint if one exists + static constexpr StationID STATION_INVALID = ::StationID::Invalid(); ///< Invalid station or waypoint id. /** * Checks whether the given basestation is valid and owned by you. * @param station_id The station to check. * @return True if and only if the basestation is valid. * @note IsValidBaseStation == (IsValidStation || IsValidWaypoint). + * @api -all */ static bool IsValidBaseStation(StationID station_id); @@ -43,18 +44,18 @@ public: static ScriptCompany::CompanyID GetOwner(StationID station_id); /** - * Get the name of a basestation. - * @param station_id The basestation to get the name of. - * @pre IsValidBaseStation(station_id). - * @return The name of the station. + * Get the name of a station or waypoint. + * @param station_id The station or waypoint to get the name of. + * @pre IsValidStation(station_id) || IsValidWaypoint(station_id). + * @return The name of the station or waypoint. */ static std::optional GetName(StationID station_id); /** - * Set the name this basestation. - * @param station_id The basestation to set the name of. - * @param name The new name of the station (can be either a raw string, or a ScriptText object). - * @pre IsValidBaseStation(station_id). + * Set the name of a station or waypoint. + * @param station_id The station or waypoint to set the name of. + * @param name The new name of the station or waypoint (can be either a raw string, or a ScriptText object). + * @pre IsValidStation(station_id) || IsValidWaypoint(station_id). * @pre name != null && len(name) != 0. * @game @pre ScriptCompanyMode::IsValid(). * @exception ScriptError::ERR_NAME_IS_NOT_UNIQUE @@ -63,19 +64,19 @@ public: static bool SetName(StationID station_id, Text *name); /** - * Get the current location of a basestation. - * @param station_id The basestation to get the location of. - * @pre IsValidBaseStation(station_id). - * @return The tile the basestation sign above it. - * @note The tile is not necessarily a station tile (and if it is, it could also belong to another station). + * Get the current location of a station or waypoint. + * @param station_id The station or waypoint to get the location of. + * @pre IsValidStation(station_id) || IsValidWaypoint(station_id). + * @return The tile with the station or waypoint sign above it. + * @note The tile is not necessarily a station or waypoint tile (and if it is, it could also belong to another station or waypoint). * @see ScriptTileList_StationType. */ static TileIndex GetLocation(StationID station_id); /** - * Get the last calendar-date a station part was added to this station. - * @param station_id The station to look at. - * @return The last calendar-date some part of this station was build. + * Get the last calendar-date a station or waypoint part was added to this station or waypoint. + * @param station_id The station or waypoint to look at. + * @return The last calendar-date some part of this station or waypoint was built. * @see \ref ScriptCalendarTime */ static ScriptDate::Date GetConstructionDate(StationID station_id);