(svn r23624) -Add: ScriptVehicle/ScriptStation/ScriptSign::GetOwner, to get the owner of those objects (GameScript only)

pull/155/head
truebrain 13 years ago
parent 1d84fb277e
commit 10b0f4a879

@ -31,6 +31,7 @@ void SQGSSign_Register(Squirrel *engine)
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::IsValidSign, "IsValidSign", 2, ".i"); SQGSSign.DefSQStaticMethod(engine, &ScriptSign::IsValidSign, "IsValidSign", 2, ".i");
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::SetName, "SetName", 3, ".i."); SQGSSign.DefSQStaticMethod(engine, &ScriptSign::SetName, "SetName", 3, ".i.");
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetName, "GetName", 2, ".i"); SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetName, "GetName", 2, ".i");
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetOwner, "GetOwner", 2, ".i");
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetLocation, "GetLocation", 2, ".i"); SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetLocation, "GetLocation", 2, ".i");
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::BuildSign, "BuildSign", 3, ".i."); SQGSSign.DefSQStaticMethod(engine, &ScriptSign::BuildSign, "BuildSign", 3, ".i.");
SQGSSign.DefSQStaticMethod(engine, &ScriptSign::RemoveSign, "RemoveSign", 2, ".i"); SQGSSign.DefSQStaticMethod(engine, &ScriptSign::RemoveSign, "RemoveSign", 2, ".i");

@ -45,6 +45,7 @@ void SQGSStation_Register(Squirrel *engine)
ScriptError::RegisterErrorMapString(ScriptStation::ERR_STATION_TOO_MANY_STATIONS_IN_TOWN, "ERR_STATION_TOO_MANY_STATIONS_IN_TOWN"); ScriptError::RegisterErrorMapString(ScriptStation::ERR_STATION_TOO_MANY_STATIONS_IN_TOWN, "ERR_STATION_TOO_MANY_STATIONS_IN_TOWN");
SQGSStation.DefSQStaticMethod(engine, &ScriptStation::IsValidStation, "IsValidStation", 2, ".i"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::IsValidStation, "IsValidStation", 2, ".i");
SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetOwner, "GetOwner", 2, ".i");
SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetStationID, "GetStationID", 2, ".i"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetStationID, "GetStationID", 2, ".i");
SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaiting, "GetCargoWaiting", 3, ".ii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaiting, "GetCargoWaiting", 3, ".ii");
SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoRating, "GetCargoRating", 3, ".ii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoRating, "GetCargoRating", 3, ".ii");

@ -102,6 +102,7 @@ void SQGSVehicle_Register(Squirrel *engine)
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::IsValidVehicle, "IsValidVehicle", 2, ".i"); SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::IsValidVehicle, "IsValidVehicle", 2, ".i");
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetNumWagons, "GetNumWagons", 2, ".i"); SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetNumWagons, "GetNumWagons", 2, ".i");
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetName, "GetName", 2, ".i"); SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetName, "GetName", 2, ".i");
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetOwner, "GetOwner", 2, ".i");
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetLocation, "GetLocation", 2, ".i"); SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetLocation, "GetLocation", 2, ".i");
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetEngineType, "GetEngineType", 2, ".i"); SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetEngineType, "GetEngineType", 2, ".i");
SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetWagonEngineType, "GetWagonEngineType", 3, ".ii"); SQGSVehicle.DefSQStaticMethod(engine, &ScriptVehicle::GetWagonEngineType, "GetWagonEngineType", 3, ".ii");

@ -27,6 +27,13 @@
return si != NULL && (si->owner == _current_company || si->owner == OWNER_DEITY); return si != NULL && (si->owner == _current_company || si->owner == OWNER_DEITY);
} }
/* static */ ScriptCompany::CompanyID ScriptSign::GetOwner(SignID sign_id)
{
if (!IsValidSign(sign_id)) return ScriptCompany::COMPANY_INVALID;
return static_cast<ScriptCompany::CompanyID>((int)::Sign::Get(sign_id)->owner);
}
/* static */ bool ScriptSign::SetName(SignID sign_id, const char *name) /* static */ bool ScriptSign::SetName(SignID sign_id, const char *name)
{ {
EnforcePrecondition(false, IsValidSign(sign_id)); EnforcePrecondition(false, IsValidSign(sign_id));

@ -12,6 +12,7 @@
#ifndef SCRIPT_SIGN_HPP #ifndef SCRIPT_SIGN_HPP
#define SCRIPT_SIGN_HPP #define SCRIPT_SIGN_HPP
#include "script_company.hpp"
#include "script_error.hpp" #include "script_error.hpp"
/** /**
@ -59,6 +60,15 @@ public:
*/ */
static char *GetName(SignID sign_id); static char *GetName(SignID sign_id);
/**
* Get the owner of a sign.
* @param sign_id The sign to get the owner of.
* @pre IsValidSign(sign_id).
* @return The owner the sign has.
* @api -ai
*/
static ScriptCompany::CompanyID GetOwner(SignID sign_id);
/** /**
* Gets the location of the sign. * Gets the location of the sign.
* @param sign_id The sign to get the location of. * @param sign_id The sign to get the location of.

@ -26,6 +26,13 @@
return st != NULL && (st->owner == _current_company || _current_company == OWNER_DEITY || st->owner == OWNER_NONE); return st != NULL && (st->owner == _current_company || _current_company == OWNER_DEITY || st->owner == OWNER_NONE);
} }
/* static */ ScriptCompany::CompanyID ScriptStation::GetOwner(StationID station_id)
{
if (!IsValidStation(station_id)) return ScriptCompany::COMPANY_INVALID;
return static_cast<ScriptCompany::CompanyID>((int)::Station::Get(station_id)->owner);
}
/* static */ StationID ScriptStation::GetStationID(TileIndex tile) /* static */ StationID ScriptStation::GetStationID(TileIndex tile)
{ {
if (!::IsValidTile(tile) || !::IsTileType(tile, MP_STATION)) return INVALID_STATION; if (!::IsValidTile(tile) || !::IsTileType(tile, MP_STATION)) return INVALID_STATION;

@ -59,6 +59,15 @@ public:
*/ */
static bool IsValidStation(StationID station_id); static bool IsValidStation(StationID station_id);
/**
* Get the owner of a station.
* @param station_id The station to get the owner of.
* @pre IsValidStation(station_id).
* @return The owner the station has.
* @api -ai
*/
static ScriptCompany::CompanyID GetOwner(StationID station_id);
/** /**
* Get the StationID of a tile, if there is a station. * Get the StationID of a tile, if there is a station.
* @param tile The tile to find the stationID of * @param tile The tile to find the stationID of

@ -31,6 +31,13 @@
return v != NULL && (v->owner == _current_company || _current_company == OWNER_DEITY) && (v->IsPrimaryVehicle() || (v->type == VEH_TRAIN && ::Train::From(v)->IsFreeWagon())); return v != NULL && (v->owner == _current_company || _current_company == OWNER_DEITY) && (v->IsPrimaryVehicle() || (v->type == VEH_TRAIN && ::Train::From(v)->IsFreeWagon()));
} }
/* static */ ScriptCompany::CompanyID ScriptVehicle::GetOwner(VehicleID vehicle_id)
{
if (!IsValidVehicle(vehicle_id)) return ScriptCompany::COMPANY_INVALID;
return static_cast<ScriptCompany::CompanyID>((int)::Vehicle::Get(vehicle_id)->owner);
}
/* static */ int32 ScriptVehicle::GetNumWagons(VehicleID vehicle_id) /* static */ int32 ScriptVehicle::GetNumWagons(VehicleID vehicle_id)
{ {
if (!IsValidVehicle(vehicle_id)) return -1; if (!IsValidVehicle(vehicle_id)) return -1;

@ -131,6 +131,15 @@ public:
*/ */
static char *GetName(VehicleID vehicle_id); static char *GetName(VehicleID vehicle_id);
/**
* Get the owner of a vehicle.
* @param vehicle_id The vehicle to get the owner of.
* @pre IsValidVehicle(vehicle_id).
* @return The owner the vehicle has.
* @api -ai
*/
static ScriptCompany::CompanyID GetOwner(VehicleID vehicle_id);
/** /**
* Get the current location of a vehicle. * Get the current location of a vehicle.
* @param vehicle_id The vehicle to get the location of. * @param vehicle_id The vehicle to get the location of.

Loading…
Cancel
Save