(svn r15101) -Change [API CHANGE]: more consistant naming for consts:
INVALID_TOWN_RATING -> TOWN_RATING_INVALID INVALID_TRANSPORT -> TRANSPORT_INVALID INVALID_ORDER -> ORDER_INVALID INVALID_GROUP -> GROUP_INVALID GROUP_ALL/DEFAULT -> ALL/DEFAULT_GROUP VEHICLE_RAIL/ROAD/.. -> VT_RAIL/ROAD/.. MY_COMPANY -> COMPANY_SELF FIRST/LAST/INVALID_COMPANY -> COMPANY_FIRST/LAST/INVALID
This commit is contained in:
@@ -56,27 +56,27 @@ static void _DoCommandReturnBuildBridge1(class AIInstance *instance)
|
||||
EnforcePrecondition(false, start != end);
|
||||
EnforcePrecondition(false, ::IsValidTile(start) && ::IsValidTile(end));
|
||||
EnforcePrecondition(false, TileX(start) == TileX(end) || TileY(start) == TileY(end));
|
||||
EnforcePrecondition(false, vehicle_type == AIVehicle::VEHICLE_ROAD || vehicle_type == AIVehicle::VEHICLE_RAIL || vehicle_type == AIVehicle::VEHICLE_WATER);
|
||||
EnforcePrecondition(false, vehicle_type != AIVehicle::VEHICLE_RAIL || AIRail::IsRailTypeAvailable(AIRail::GetCurrentRailType()));
|
||||
EnforcePrecondition(false, vehicle_type == AIVehicle::VT_ROAD || vehicle_type == AIVehicle::VT_RAIL || vehicle_type == AIVehicle::VT_WATER);
|
||||
EnforcePrecondition(false, vehicle_type != AIVehicle::VT_RAIL || AIRail::IsRailTypeAvailable(AIRail::GetCurrentRailType()));
|
||||
|
||||
uint type = 0;
|
||||
switch (vehicle_type) {
|
||||
case AIVehicle::VEHICLE_ROAD:
|
||||
case AIVehicle::VT_ROAD:
|
||||
type |= (TRANSPORT_ROAD << 15);
|
||||
type |= (RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType()) << 8);
|
||||
break;
|
||||
case AIVehicle::VEHICLE_RAIL:
|
||||
case AIVehicle::VT_RAIL:
|
||||
type |= (TRANSPORT_RAIL << 15);
|
||||
type |= (AIRail::GetCurrentRailType() << 8);
|
||||
break;
|
||||
case AIVehicle::VEHICLE_WATER:
|
||||
case AIVehicle::VT_WATER:
|
||||
type |= (TRANSPORT_WATER << 15);
|
||||
break;
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
|
||||
/* For rail and water we do nothing special */
|
||||
if (vehicle_type == AIVehicle::VEHICLE_RAIL || vehicle_type == AIVehicle::VEHICLE_WATER) {
|
||||
if (vehicle_type == AIVehicle::VT_RAIL || vehicle_type == AIVehicle::VT_WATER) {
|
||||
return AIObject::DoCommand(end, start, type | bridge_id, CMD_BUILD_BRIDGE);
|
||||
}
|
||||
|
||||
|
@@ -19,14 +19,14 @@
|
||||
|
||||
/* static */ AICompany::CompanyID AICompany::ResolveCompanyID(AICompany::CompanyID company)
|
||||
{
|
||||
if (company == MY_COMPANY) return (CompanyID)((byte)_current_company);
|
||||
if (company == COMPANY_SELF) return (CompanyID)((byte)_current_company);
|
||||
|
||||
return ::IsValidCompanyID((::CompanyID)company) ? company : INVALID_COMPANY;
|
||||
return ::IsValidCompanyID((::CompanyID)company) ? company : COMPANY_INVALID;
|
||||
}
|
||||
|
||||
/* static */ bool AICompany::IsMine(AICompany::CompanyID company)
|
||||
{
|
||||
return ResolveCompanyID(company) == ResolveCompanyID(MY_COMPANY);
|
||||
return ResolveCompanyID(company) == ResolveCompanyID(COMPANY_SELF);
|
||||
}
|
||||
|
||||
/* static */ bool AICompany::SetCompanyName(const char *name)
|
||||
@@ -52,7 +52,7 @@
|
||||
/* static */ const char *AICompany::GetName(AICompany::CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return NULL;
|
||||
if (company == COMPANY_INVALID) return NULL;
|
||||
|
||||
static const int len = 64;
|
||||
char *company_name = MallocT<char>(len);
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
static const int len = 64;
|
||||
char *president_name = MallocT<char>(len);
|
||||
if (company != INVALID_COMPANY) {
|
||||
if (company != COMPANY_INVALID) {
|
||||
::SetDParam(0, company);
|
||||
::GetString(president_name, STR_PRESIDENT_NAME, &president_name[len - 1]);
|
||||
} else {
|
||||
@@ -88,7 +88,7 @@
|
||||
/* static */ Money AICompany::GetCompanyValue(AICompany::CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return -1;
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
|
||||
return ::CalculateCompanyValue(::GetCompany((CompanyID)company));
|
||||
}
|
||||
@@ -96,7 +96,7 @@
|
||||
/* static */ Money AICompany::GetBankBalance(AICompany::CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return -1;
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->money;
|
||||
}
|
||||
@@ -121,7 +121,7 @@
|
||||
EnforcePrecondition(false, loan >= 0);
|
||||
EnforcePrecondition(false, (loan % GetLoanInterval()) == 0);
|
||||
EnforcePrecondition(false, loan <= GetMaxLoanAmount());
|
||||
EnforcePrecondition(false, (loan - GetLoanAmount() + GetBankBalance(MY_COMPANY)) >= 0);
|
||||
EnforcePrecondition(false, (loan - GetLoanAmount() + GetBankBalance(COMPANY_SELF)) >= 0);
|
||||
|
||||
if (loan == GetLoanAmount()) return true;
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
/* static */ TileIndex AICompany::GetCompanyHQ(CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return INVALID_TILE;
|
||||
if (company == COMPANY_INVALID) return INVALID_TILE;
|
||||
|
||||
TileIndex loc = ::GetCompany((CompanyID)company)->location_of_HQ;
|
||||
return (loc == 0) ? INVALID_TILE : loc;
|
||||
@@ -168,7 +168,7 @@
|
||||
/* static */ bool AICompany::GetAutoRenewStatus(CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return false;
|
||||
if (company == COMPANY_INVALID) return false;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->engine_renew;
|
||||
}
|
||||
@@ -181,7 +181,7 @@
|
||||
/* static */ int16 AICompany::GetAutoRenewMonths(CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return 0;
|
||||
if (company == COMPANY_INVALID) return 0;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->engine_renew_months;
|
||||
}
|
||||
@@ -194,7 +194,7 @@
|
||||
/* static */ uint32 AICompany::GetAutoRenewMoney(CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == INVALID_COMPANY) return 0;
|
||||
if (company == COMPANY_INVALID) return 0;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->engine_renew_money;
|
||||
}
|
||||
|
@@ -16,17 +16,21 @@ public:
|
||||
|
||||
/** Different constants related to CompanyID. */
|
||||
enum CompanyID {
|
||||
INVALID_COMPANY = -1, //!< An invalid company.
|
||||
FIRST_COMPANY = 0, //!< The first available company.
|
||||
LAST_COMPANY = 7, //!< The last available company.
|
||||
MY_COMPANY = 8, //!< Constant that gets resolved to the correct company index for your company.
|
||||
COMPANY_INVALID = -1, //!< An invalid company.
|
||||
|
||||
#ifdef DEFINE_SCRIPT_FILES
|
||||
COMPANY_FIRST = 0, //!< The first available company.
|
||||
COMPANY_LAST = ::MAX_COMPANIES, //!< The last available company.
|
||||
#endif /* DEFINE_SCRIPT_FILES */
|
||||
|
||||
COMPANY_SELF = 254, //!< Constant that gets resolved to the correct company index for your company.
|
||||
};
|
||||
|
||||
/**
|
||||
* Resolved the given company index to the correct index for the company. If
|
||||
* the company index was MY_COMPANY it will be resolved to the index of
|
||||
* the company index was COMPANY_SELF it will be resolved to the index of
|
||||
* your company. If the company with the given index does not exist it will
|
||||
* return INVALID_COMPANY.
|
||||
* return COMPANY_INVALID.
|
||||
* @param company The company index to resolve.
|
||||
* @return The resolved company index.
|
||||
*/
|
||||
@@ -62,7 +66,7 @@ public:
|
||||
/**
|
||||
* Get the name of the given company.
|
||||
* @param company The company to get the name for.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID
|
||||
* @return The name of the given company.
|
||||
*/
|
||||
static const char *GetName(CompanyID company);
|
||||
@@ -79,7 +83,7 @@ public:
|
||||
/**
|
||||
* Get the name of the president of the given company.
|
||||
* @param company The company to get the president's name for.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID
|
||||
* @return The name of the president of the given company.
|
||||
*/
|
||||
static const char *GetPresidentName(CompanyID company);
|
||||
@@ -130,7 +134,7 @@ public:
|
||||
/**
|
||||
* Gets the current value of the given company.
|
||||
* @param company The company to get the company value of.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID
|
||||
* @return The current value of the given company.
|
||||
*/
|
||||
static Money GetCompanyValue(CompanyID company);
|
||||
@@ -138,7 +142,7 @@ public:
|
||||
/**
|
||||
* Gets the bank balance. In other words, the amount of money the given company can spent.
|
||||
* @param company The company to get the bank balance of.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID
|
||||
* @return The actual bank balance.
|
||||
*/
|
||||
static Money GetBankBalance(CompanyID company);
|
||||
@@ -158,8 +162,8 @@ public:
|
||||
/**
|
||||
* Return the location of a company's HQ.
|
||||
* @param company The company the get the HQ of.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY.
|
||||
* @return The tile of the company's HQ, this tile is the most nothern tile of that HQ, or INVALID_TILE if there is no HQ yet.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @return The tile of the company's HQ, this tile is the most nothern tile of that HQ, or TILE_INVALID if there is no HQ yet.
|
||||
*/
|
||||
static TileIndex GetCompanyHQ(CompanyID company);
|
||||
|
||||
@@ -173,7 +177,7 @@ public:
|
||||
/**
|
||||
* Return whether autorenew is enabled for a company.
|
||||
* @param company The company to get the autorenew status of.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @return True if autorenew is enabled.
|
||||
*/
|
||||
static bool GetAutoRenewStatus(CompanyID company);
|
||||
@@ -188,7 +192,7 @@ public:
|
||||
/**
|
||||
* Return the number of months before/after max age to autorenew an engine for a company.
|
||||
* @param company The company to get the autorenew months of.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @return The months before/after max age of engine.
|
||||
*/
|
||||
static int16 GetAutoRenewMonths(CompanyID company);
|
||||
@@ -203,7 +207,7 @@ public:
|
||||
/**
|
||||
* Return the minimum money needed to autorenew an engine for a company.
|
||||
* @param company The company to get the autorenew money of.
|
||||
* @pre ResolveCompanyID(company) != INVALID_COMPANY.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @return The minimum required money for autorenew to work.
|
||||
*/
|
||||
static uint32 GetAutoRenewMoney(CompanyID company);
|
||||
|
@@ -21,10 +21,10 @@ void SQAICompany_Register(Squirrel *engine) {
|
||||
SQAICompany.PreRegister(engine);
|
||||
SQAICompany.AddConstructor<void (AICompany::*)(), 1>(engine, "x");
|
||||
|
||||
SQAICompany.DefSQConst(engine, AICompany::INVALID_COMPANY, "INVALID_COMPANY");
|
||||
SQAICompany.DefSQConst(engine, AICompany::FIRST_COMPANY, "FIRST_COMPANY");
|
||||
SQAICompany.DefSQConst(engine, AICompany::LAST_COMPANY, "LAST_COMPANY");
|
||||
SQAICompany.DefSQConst(engine, AICompany::MY_COMPANY, "MY_COMPANY");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_INVALID, "COMPANY_INVALID");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetClassName, "GetClassName", 1, "x");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::ResolveCompanyID, "ResolveCompanyID", 2, "xi");
|
||||
|
@@ -79,7 +79,7 @@
|
||||
/* static */ bool AIEngine::CanPullCargo(EngineID engine_id, CargoID cargo_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_RAIL) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_RAIL) return false;
|
||||
if (!AICargo::IsValidCargo(cargo_id)) return false;
|
||||
|
||||
return (::RailVehInfo(engine_id)->ai_passenger_only != 1) || AICargo::HasCargoClass(cargo_id, AICargo::CC_PASSENGERS);
|
||||
@@ -225,13 +225,13 @@
|
||||
|
||||
/* static */ AIVehicle::VehicleType AIEngine::GetVehicleType(EngineID engine_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return AIVehicle::VEHICLE_INVALID;
|
||||
if (!IsValidEngine(engine_id)) return AIVehicle::VT_INVALID;
|
||||
|
||||
switch (::GetEngine(engine_id)->type) {
|
||||
case VEH_ROAD: return AIVehicle::VEHICLE_ROAD;
|
||||
case VEH_TRAIN: return AIVehicle::VEHICLE_RAIL;
|
||||
case VEH_SHIP: return AIVehicle::VEHICLE_WATER;
|
||||
case VEH_AIRCRAFT: return AIVehicle::VEHICLE_AIR;
|
||||
case VEH_ROAD: return AIVehicle::VT_ROAD;
|
||||
case VEH_TRAIN: return AIVehicle::VT_RAIL;
|
||||
case VEH_SHIP: return AIVehicle::VT_WATER;
|
||||
case VEH_AIRCRAFT: return AIVehicle::VT_AIR;
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
}
|
||||
@@ -239,7 +239,7 @@
|
||||
/* static */ bool AIEngine::IsWagon(EngineID engine_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_RAIL) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_RAIL) return false;
|
||||
|
||||
return ::RailVehInfo(engine_id)->power == 0;
|
||||
}
|
||||
@@ -247,7 +247,7 @@
|
||||
/* static */ bool AIEngine::CanRunOnRail(EngineID engine_id, AIRail::RailType track_rail_type)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_RAIL) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_RAIL) return false;
|
||||
if (!AIRail::IsRailTypeAvailable(track_rail_type)) return false;
|
||||
|
||||
return ::IsCompatibleRail((::RailType)::RailVehInfo(engine_id)->railtype, (::RailType)track_rail_type);
|
||||
@@ -256,7 +256,7 @@
|
||||
/* static */ bool AIEngine::HasPowerOnRail(EngineID engine_id, AIRail::RailType track_rail_type)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_RAIL) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_RAIL) return false;
|
||||
if (!AIRail::IsRailTypeAvailable(track_rail_type)) return false;
|
||||
|
||||
return ::HasPowerOnRail((::RailType)::RailVehInfo(engine_id)->railtype, (::RailType)track_rail_type);
|
||||
@@ -265,7 +265,7 @@
|
||||
/* static */ AIRoad::RoadType AIEngine::GetRoadType(EngineID engine_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return AIRoad::ROADTYPE_INVALID;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_ROAD) return AIRoad::ROADTYPE_INVALID;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_ROAD) return AIRoad::ROADTYPE_INVALID;
|
||||
|
||||
return HasBit(::EngInfo(engine_id)->misc_flags, EF_ROAD_TRAM) ? AIRoad::ROADTYPE_TRAM : AIRoad::ROADTYPE_ROAD;
|
||||
}
|
||||
@@ -273,7 +273,7 @@
|
||||
/* static */ AIRail::RailType AIEngine::GetRailType(EngineID engine_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return AIRail::RAILTYPE_INVALID;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_RAIL) return AIRail::RAILTYPE_INVALID;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_RAIL) return AIRail::RAILTYPE_INVALID;
|
||||
|
||||
return (AIRail::RailType)(uint)::RailVehInfo(engine_id)->railtype;
|
||||
}
|
||||
@@ -281,7 +281,7 @@
|
||||
/* static */ bool AIEngine::IsArticulated(EngineID engine_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_ROAD && GetVehicleType(engine_id) != AIVehicle::VEHICLE_RAIL) return false;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_ROAD && GetVehicleType(engine_id) != AIVehicle::VT_RAIL) return false;
|
||||
|
||||
return CountArticulatedParts(engine_id, true) != 0;
|
||||
}
|
||||
@@ -289,7 +289,7 @@
|
||||
/* static */ AIAirport::PlaneType AIEngine::GetPlaneType(EngineID engine_id)
|
||||
{
|
||||
if (!IsValidEngine(engine_id)) return AIAirport::PT_INVALID;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VEHICLE_AIR) return AIAirport::PT_INVALID;
|
||||
if (GetVehicleType(engine_id) != AIVehicle::VT_AIR) return AIAirport::PT_INVALID;
|
||||
|
||||
return (AIAirport::PlaneType)::AircraftVehInfo(engine_id)->subtype;
|
||||
}
|
||||
|
@@ -400,7 +400,7 @@ public:
|
||||
* Get the CompanyID of the company that has been bought.
|
||||
* @return The CompanyID of the company that has been bought.
|
||||
* @note: The value below is not valid anymore as CompanyID, and
|
||||
* AICompany::ResolveCompanyID will return INVALID_COMPANY. It's
|
||||
* AICompany::ResolveCompanyID will return COMPANY_COMPANY. It's
|
||||
* only usefull if you're keeping track of company's yourself.
|
||||
*/
|
||||
AICompany::CompanyID GetOldCompanyID() { return old_owner; }
|
||||
|
@@ -29,10 +29,10 @@
|
||||
/* static */ bool AIGameSettings::IsDisabledVehicleType(AIVehicle::VehicleType vehicle_type)
|
||||
{
|
||||
switch (vehicle_type) {
|
||||
case AIVehicle::VEHICLE_RAIL: return _settings_game.ai.ai_disable_veh_train;
|
||||
case AIVehicle::VEHICLE_ROAD: return _settings_game.ai.ai_disable_veh_roadveh;
|
||||
case AIVehicle::VEHICLE_WATER: return _settings_game.ai.ai_disable_veh_ship;
|
||||
case AIVehicle::VEHICLE_AIR: return _settings_game.ai.ai_disable_veh_aircraft;
|
||||
case AIVehicle::VT_RAIL: return _settings_game.ai.ai_disable_veh_train;
|
||||
case AIVehicle::VT_ROAD: return _settings_game.ai.ai_disable_veh_roadveh;
|
||||
case AIVehicle::VT_WATER: return _settings_game.ai.ai_disable_veh_ship;
|
||||
case AIVehicle::VT_AIR: return _settings_game.ai.ai_disable_veh_aircraft;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
@@ -23,7 +23,7 @@
|
||||
|
||||
/* static */ AIGroup::GroupID AIGroup::CreateGroup(AIVehicle::VehicleType vehicle_type)
|
||||
{
|
||||
if (!AIObject::DoCommand(0, (::VehicleType)vehicle_type, 0, CMD_CREATE_GROUP, NULL, &AIInstance::DoCommandReturnGroupID)) return INVALID_GROUP;
|
||||
if (!AIObject::DoCommand(0, (::VehicleType)vehicle_type, 0, CMD_CREATE_GROUP, NULL, &AIInstance::DoCommandReturnGroupID)) return GROUP_INVALID;
|
||||
|
||||
/* In case of test-mode, we return GroupID 0 */
|
||||
return (AIGroup::GroupID)0;
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/* static */ AIVehicle::VehicleType AIGroup::GetVehicleType(GroupID group_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id)) return AIVehicle::VEHICLE_INVALID;
|
||||
if (!IsValidGroup(group_id)) return AIVehicle::VT_INVALID;
|
||||
|
||||
return (AIVehicle::VehicleType)((::VehicleType)::GetGroup(group_id)->vehicle_type);
|
||||
}
|
||||
@@ -80,14 +80,14 @@
|
||||
|
||||
/* static */ int32 AIGroup::GetNumEngines(GroupID group_id, EngineID engine_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id) && group_id != DEFAULT_GROUP && group_id != ALL_GROUP) return -1;
|
||||
if (!IsValidGroup(group_id) && group_id != GROUP_DEFAULT && group_id != GROUP_ALL) return -1;
|
||||
|
||||
return GetGroupNumEngines(_current_company, group_id, engine_id);
|
||||
}
|
||||
|
||||
/* static */ bool AIGroup::MoveVehicle(GroupID group_id, VehicleID vehicle_id)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == DEFAULT_GROUP);
|
||||
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_DEFAULT);
|
||||
EnforcePrecondition(false, AIVehicle::IsValidVehicle(vehicle_id));
|
||||
|
||||
return AIObject::DoCommand(0, group_id, vehicle_id, CMD_ADD_VEHICLE_GROUP);
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
/* static */ bool AIGroup::SetAutoReplace(GroupID group_id, EngineID engine_id_old, EngineID engine_id_new)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == ALL_GROUP);
|
||||
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_ALL);
|
||||
EnforcePrecondition(false, AIEngine::IsValidEngine(engine_id_new));
|
||||
|
||||
return AIObject::DoCommand(0, 3 | (group_id << 16), (engine_id_new << 16) | engine_id_old, CMD_SET_AUTOREPLACE);
|
||||
@@ -115,14 +115,14 @@
|
||||
|
||||
/* static */ EngineID AIGroup::GetEngineReplacement(GroupID group_id, EngineID engine_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id) && group_id != ALL_GROUP) return ::INVALID_ENGINE;
|
||||
if (!IsValidGroup(group_id) && group_id != GROUP_ALL) return ::INVALID_ENGINE;
|
||||
|
||||
return ::EngineReplacementForCompany(GetCompany(_current_company), engine_id, group_id);
|
||||
}
|
||||
|
||||
/* static */ bool AIGroup::StopAutoReplace(GroupID group_id, EngineID engine_id)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == ALL_GROUP);
|
||||
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_ALL);
|
||||
|
||||
return AIObject::DoCommand(0, 3 | (group_id << 16), (::INVALID_ENGINE << 16) | engine_id, CMD_SET_AUTOREPLACE);
|
||||
}
|
||||
|
@@ -20,9 +20,9 @@ public:
|
||||
*/
|
||||
enum GroupID {
|
||||
/* Values are important, as they represent the internal state of the game (see group_type.h). */
|
||||
ALL_GROUP = 0xFFFD, //!< All vehicles are in this group.
|
||||
DEFAULT_GROUP = 0xFFFE, //!< Vehicles not put in any other group are in this one.
|
||||
INVALID_GROUP = 0xFFFF, //!< An invalid group id.
|
||||
GROUP_ALL = 0xFFFD, //!< All vehicles are in this group.
|
||||
GROUP_DEFAULT = 0xFFFE, //!< Vehicles not put in any other group are in this one.
|
||||
GROUP_INVALID = 0xFFFF, //!< An invalid group id.
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -21,9 +21,9 @@ void SQAIGroup_Register(Squirrel *engine) {
|
||||
SQAIGroup.PreRegister(engine);
|
||||
SQAIGroup.AddConstructor<void (AIGroup::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIGroup.DefSQConst(engine, AIGroup::ALL_GROUP, "ALL_GROUP");
|
||||
SQAIGroup.DefSQConst(engine, AIGroup::DEFAULT_GROUP, "DEFAULT_GROUP");
|
||||
SQAIGroup.DefSQConst(engine, AIGroup::INVALID_GROUP, "INVALID_GROUP");
|
||||
SQAIGroup.DefSQConst(engine, AIGroup::GROUP_ALL, "GROUP_ALL");
|
||||
SQAIGroup.DefSQConst(engine, AIGroup::GROUP_DEFAULT, "GROUP_DEFAULT");
|
||||
SQAIGroup.DefSQConst(engine, AIGroup::GROUP_INVALID, "GROUP_INVALID");
|
||||
|
||||
SQAIGroup.DefSQStaticMethod(engine, &AIGroup::GetClassName, "GetClassName", 1, "x");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &AIGroup::IsValidGroup, "IsValidGroup", 2, "xi");
|
||||
|
@@ -14,7 +14,7 @@ class AIMap : public AIObject {
|
||||
public:
|
||||
#ifdef DEFINE_SCRIPT_FILES
|
||||
enum MapType {
|
||||
TILE_INVALID = INVALID_TILE, //!< An invalid tile for every function.
|
||||
TILE_INVALID = INVALID_TILE, //!< Invalid TileIndex.
|
||||
};
|
||||
#endif /* DEFINE_SCRIPT_FILES */
|
||||
|
||||
|
@@ -45,15 +45,15 @@ static OrderType GetOrderTypeByTile(TileIndex t)
|
||||
|
||||
/* static */ bool AIOrder::IsValidVehicleOrder(VehicleID vehicle_id, OrderPosition order_position)
|
||||
{
|
||||
return AIVehicle::IsValidVehicle(vehicle_id) && order_position >= 0 && (order_position < ::GetVehicle(vehicle_id)->GetNumOrders() || order_position == CURRENT_ORDER);
|
||||
return AIVehicle::IsValidVehicle(vehicle_id) && order_position >= 0 && (order_position < ::GetVehicle(vehicle_id)->GetNumOrders() || order_position == ORDER_CURRENT);
|
||||
}
|
||||
|
||||
/* static */ AIOrder::OrderPosition AIOrder::ResolveOrderPosition(VehicleID vehicle_id, OrderPosition order_position)
|
||||
{
|
||||
if (!AIVehicle::IsValidVehicle(vehicle_id)) return INVALID_ORDER;
|
||||
if (!AIVehicle::IsValidVehicle(vehicle_id)) return ORDER_INVALID;
|
||||
|
||||
if (order_position == CURRENT_ORDER) return (AIOrder::OrderPosition)::GetVehicle(vehicle_id)->cur_order_index;
|
||||
return (order_position >= 0 && order_position < ::GetVehicle(vehicle_id)->GetNumOrders()) ? order_position : INVALID_ORDER;
|
||||
if (order_position == ORDER_CURRENT) return (AIOrder::OrderPosition)::GetVehicle(vehicle_id)->cur_order_index;
|
||||
return (order_position >= 0 && order_position < ::GetVehicle(vehicle_id)->GetNumOrders()) ? order_position : ORDER_INVALID;
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ static OrderType GetOrderTypeByTile(TileIndex t)
|
||||
|
||||
const Order *order;
|
||||
const Vehicle *v = ::GetVehicle(vehicle_id);
|
||||
if (order_position == CURRENT_ORDER) {
|
||||
if (order_position == ORDER_CURRENT) {
|
||||
order = &v->current_order;
|
||||
} else {
|
||||
order = v->GetFirstOrder();
|
||||
@@ -110,7 +110,7 @@ static OrderType GetOrderTypeByTile(TileIndex t)
|
||||
if (!IsValidVehicleOrder(vehicle_id, order_position)) return AIOF_INVALID;
|
||||
|
||||
const Order *order;
|
||||
if (order_position == CURRENT_ORDER) {
|
||||
if (order_position == ORDER_CURRENT) {
|
||||
order = &::GetVehicle(vehicle_id)->current_order;
|
||||
} else {
|
||||
order = ::GetVehicle(vehicle_id)->GetFirstOrder();
|
||||
@@ -144,7 +144,7 @@ static OrderType GetOrderTypeByTile(TileIndex t)
|
||||
/* static */ bool AIOrder::InsertOrder(VehicleID vehicle_id, OrderPosition order_position, TileIndex destination, AIOrder::AIOrderFlags order_flags)
|
||||
{
|
||||
/* IsValidVehicleOrder is not good enough because it does not allow appending. */
|
||||
if (order_position == CURRENT_ORDER) order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position);
|
||||
if (order_position == ORDER_CURRENT) order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position);
|
||||
|
||||
EnforcePrecondition(false, AIVehicle::IsValidVehicle(vehicle_id));
|
||||
EnforcePrecondition(false, order_position >= 0 && order_position <= ::GetVehicle(vehicle_id)->GetNumOrders());
|
||||
|
@@ -71,8 +71,8 @@ public:
|
||||
|
||||
/** Different constants related to the OrderPosition */
|
||||
enum OrderPosition {
|
||||
CURRENT_ORDER = 0xFF, //!< Constant that gets resolved to the current order.
|
||||
INVALID_ORDER = -1, //!< An invalid order.
|
||||
ORDER_CURRENT = 0xFF, //!< Constant that gets resolved to the current order.
|
||||
ORDER_INVALID = -1, //!< An invalid order.
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
* Resolves the given order index to the correct index for the given vehicle.
|
||||
* If the order index was CURRENT_ORDER it will be resolved to the index of
|
||||
* the current order (as shown in the order list). If the order with the
|
||||
* given index does not exist it will return INVALID_ORDER.
|
||||
* given index does not exist it will return ORDER_INVALID.
|
||||
* @param vehicle_id The vehicle to check the order index for.
|
||||
* @param order_position The order index to resolve.
|
||||
* @pre AIVehicle::IsValidVehicle(vehicle_id).
|
||||
|
@@ -42,8 +42,8 @@ void SQAIOrder_Register(Squirrel *engine) {
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_UNLOAD_FLAGS, "AIOF_UNLOAD_FLAGS");
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_LOAD_FLAGS, "AIOF_LOAD_FLAGS");
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_INVALID, "AIOF_INVALID");
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::CURRENT_ORDER, "CURRENT_ORDER");
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::INVALID_ORDER, "INVALID_ORDER");
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::ORDER_CURRENT, "ORDER_CURRENT");
|
||||
SQAIOrder.DefSQConst(engine, AIOrder::ORDER_INVALID, "ORDER_INVALID");
|
||||
|
||||
AIError::RegisterErrorMap(STR_8831_NO_MORE_SPACE_FOR_ORDERS, AIOrder::ERR_ORDER_TOO_MANY);
|
||||
AIError::RegisterErrorMap(STR_0210_TOO_FAR_FROM_PREVIOUS_DESTINATIO, AIOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION);
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
/* static */ AICompany::CompanyID AISubsidy::GetAwardedTo(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsAwarded(subsidy_id)) return AICompany::INVALID_COMPANY;
|
||||
if (!IsAwarded(subsidy_id)) return AICompany::COMPANY_INVALID;
|
||||
|
||||
return (AICompany::CompanyID)((byte)GetStation(_subsidies[subsidy_id].from)->owner);
|
||||
}
|
||||
|
@@ -146,9 +146,9 @@
|
||||
|
||||
/* static */ AICompany::CompanyID AITile::GetOwner(TileIndex tile)
|
||||
{
|
||||
if (!::IsValidTile(tile)) return AICompany::INVALID_COMPANY;
|
||||
if (::IsTileType(tile, MP_HOUSE)) return AICompany::INVALID_COMPANY;
|
||||
if (::IsTileType(tile, MP_INDUSTRY)) return AICompany::INVALID_COMPANY;
|
||||
if (!::IsValidTile(tile)) return AICompany::COMPANY_INVALID;
|
||||
if (::IsTileType(tile, MP_HOUSE)) return AICompany::COMPANY_INVALID;
|
||||
if (::IsTileType(tile, MP_INDUSTRY)) return AICompany::COMPANY_INVALID;
|
||||
|
||||
return AICompany::ResolveCompanyID((AICompany::CompanyID)(byte)::GetTileOwner(tile));
|
||||
}
|
||||
|
@@ -75,7 +75,7 @@ public:
|
||||
TRANSPORT_WATER = 2, //!< Tile with navigable waterways.
|
||||
TRANSPORT_AIR = 3, //!< Tile with airport.
|
||||
|
||||
INVALID_TRANSPORT = -1, //!< Tile without any transport type.
|
||||
TRANSPORT_INVALID = -1, //!< Tile without any transport type.
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -222,7 +222,7 @@ public:
|
||||
* Get the owner of the tile.
|
||||
* @param tile The tile to get the owner from.
|
||||
* @pre AIMap::IsValidTile(tile).
|
||||
* @return The CompanyID of the owner of the tile, or INVALID_COMPANY if
|
||||
* @return The CompanyID of the owner of the tile, or COMPANY_INVALID if
|
||||
* there is no owner (grass/industry/water tiles, etc.).
|
||||
*/
|
||||
static AICompany::CompanyID GetOwner(TileIndex tile);
|
||||
|
@@ -54,7 +54,7 @@ void SQAITile_Register(Squirrel *engine) {
|
||||
SQAITile.DefSQConst(engine, AITile::TRANSPORT_ROAD, "TRANSPORT_ROAD");
|
||||
SQAITile.DefSQConst(engine, AITile::TRANSPORT_WATER, "TRANSPORT_WATER");
|
||||
SQAITile.DefSQConst(engine, AITile::TRANSPORT_AIR, "TRANSPORT_AIR");
|
||||
SQAITile.DefSQConst(engine, AITile::INVALID_TRANSPORT, "INVALID_TRANSPORT");
|
||||
SQAITile.DefSQConst(engine, AITile::TRANSPORT_INVALID, "TRANSPORT_INVALID");
|
||||
|
||||
AIError::RegisterErrorMap(STR_1003_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_HIGH);
|
||||
AIError::RegisterErrorMap(STR_1003_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_LOW);
|
||||
|
@@ -139,7 +139,7 @@
|
||||
|
||||
/* static */ AICompany::CompanyID AITown::GetExclusiveRightsCompany(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return AICompany::INVALID_COMPANY;
|
||||
if (!IsValidTown(town_id)) return AICompany::COMPANY_INVALID;
|
||||
|
||||
return (AICompany::CompanyID)(int8)::GetTown(town_id)->exclusivity;
|
||||
}
|
||||
@@ -170,9 +170,9 @@ extern uint GetMaskOfTownActions(int *nump, CompanyID cid, const Town *t);
|
||||
|
||||
/* static */ AITown::TownRating AITown::GetRating(TownID town_id, AICompany::CompanyID company_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return INVALID_TOWN_RATING;
|
||||
if (!IsValidTown(town_id)) return TOWN_RATING_INVALID;
|
||||
AICompany::CompanyID company = AICompany::ResolveCompanyID(company_id);
|
||||
if (company == AICompany::INVALID_COMPANY) return INVALID_TOWN_RATING;
|
||||
if (company == AICompany::COMPANY_INVALID) return TOWN_RATING_INVALID;
|
||||
|
||||
const Town *t = ::GetTown(town_id);
|
||||
if (!HasBit(t->have_ratings, company)) return TOWN_RATING_NONE;
|
||||
|
@@ -81,7 +81,7 @@ public:
|
||||
TOWN_RATING_VERY_GOOD, ///< The company got an very good rating in the town.
|
||||
TOWN_RATING_EXCELLENT, ///< The company got an excellent rating in the town.
|
||||
TOWN_RATING_OUTSTANDING, ///< The company got an outstanding rating in the town.
|
||||
INVALID_TOWN_RATING = -1, ///< The town rating for invalid towns/companies.
|
||||
TOWN_RATING_INVALID = -1, ///< The town rating for invalid towns/companies.
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -228,7 +228,7 @@ public:
|
||||
* @param town_id The town to check.
|
||||
* @pre IsValidTown(town_id).
|
||||
* @return The company that has the exclusive rights. The value
|
||||
* AICompany::INVALID_COMPANY means that there are currently no
|
||||
* AICompany::COMPANY_INVALID means that there are currently no
|
||||
* exclusive rights given out to anyone.
|
||||
*/
|
||||
static AICompany::CompanyID GetExclusiveRightsCompany(TownID town_id);
|
||||
@@ -267,7 +267,7 @@ public:
|
||||
* @param town_id The town to get the rating for.
|
||||
* @param company_id The company to get the rating for.
|
||||
* @pre IsValidTown(town_id).
|
||||
* @pre AICompany.ResolveCompanyID(company) != AICompany::INVALID_COMPANY.
|
||||
* @pre AICompany.ResolveCompanyID(company) != AICompany::COMPANY_INVALID.
|
||||
* @return The rating as shown to humans.
|
||||
*/
|
||||
static TownRating GetRating(TownID town_id, AICompany::CompanyID company_id);
|
||||
|
@@ -40,7 +40,7 @@ void SQAITown_Register(Squirrel *engine) {
|
||||
SQAITown.DefSQConst(engine, AITown::TOWN_RATING_VERY_GOOD, "TOWN_RATING_VERY_GOOD");
|
||||
SQAITown.DefSQConst(engine, AITown::TOWN_RATING_EXCELLENT, "TOWN_RATING_EXCELLENT");
|
||||
SQAITown.DefSQConst(engine, AITown::TOWN_RATING_OUTSTANDING, "TOWN_RATING_OUTSTANDING");
|
||||
SQAITown.DefSQConst(engine, AITown::INVALID_TOWN_RATING, "INVALID_TOWN_RATING");
|
||||
SQAITown.DefSQConst(engine, AITown::TOWN_RATING_INVALID, "TOWN_RATING_INVALID");
|
||||
|
||||
SQAITown.DefSQStaticMethod(engine, &AITown::GetClassName, "GetClassName", 1, "x");
|
||||
SQAITown.DefSQStaticMethod(engine, &AITown::GetMaxTownID, "GetMaxTownID", 1, "x");
|
||||
|
@@ -60,11 +60,11 @@ static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
|
||||
/* static */ bool AITunnel::BuildTunnel(AIVehicle::VehicleType vehicle_type, TileIndex start)
|
||||
{
|
||||
EnforcePrecondition(false, ::IsValidTile(start));
|
||||
EnforcePrecondition(false, vehicle_type == AIVehicle::VEHICLE_RAIL || vehicle_type == AIVehicle::VEHICLE_ROAD);
|
||||
EnforcePrecondition(false, vehicle_type != AIVehicle::VEHICLE_RAIL || AIRail::IsRailTypeAvailable(AIRail::GetCurrentRailType()));
|
||||
EnforcePrecondition(false, vehicle_type == AIVehicle::VT_RAIL || vehicle_type == AIVehicle::VT_ROAD);
|
||||
EnforcePrecondition(false, vehicle_type != AIVehicle::VT_RAIL || AIRail::IsRailTypeAvailable(AIRail::GetCurrentRailType()));
|
||||
|
||||
uint type = 0;
|
||||
if (vehicle_type == AIVehicle::VEHICLE_ROAD) {
|
||||
if (vehicle_type == AIVehicle::VT_ROAD) {
|
||||
type |= (TRANSPORT_ROAD << 9);
|
||||
type |= RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType());
|
||||
} else {
|
||||
@@ -73,7 +73,7 @@ static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
|
||||
}
|
||||
|
||||
/* For rail we do nothing special */
|
||||
if (vehicle_type == AIVehicle::VEHICLE_RAIL) {
|
||||
if (vehicle_type == AIVehicle::VT_RAIL) {
|
||||
return AIObject::DoCommand(start, type, 0, CMD_BUILD_TUNNEL);
|
||||
}
|
||||
|
||||
|
@@ -50,7 +50,7 @@ public:
|
||||
* @param tile The tile that is an entrance to a tunnel or the tile where you may want to build a tunnel.
|
||||
* @pre AIMap::IsValidTile(tile).
|
||||
* @return The TileIndex that is the other end of the (would be) tunnel, or
|
||||
* INVALID_TILE if no other end was found (can't build tunnel).
|
||||
* TILE_INVALID if no other end was found (can't build tunnel).
|
||||
*/
|
||||
static TileIndex GetOtherTunnelEnd(TileIndex tile);
|
||||
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#include "ai_cargo.hpp"
|
||||
#include "ai_order.hpp"
|
||||
#include "ai_gamesettings.hpp"
|
||||
#include "ai_group.hpp"
|
||||
#include "../ai_instance.hpp"
|
||||
#include "../../openttd.h"
|
||||
#include "../../company_func.h"
|
||||
@@ -323,21 +324,21 @@
|
||||
|
||||
/* static */ AIVehicle::VehicleType AIVehicle::GetVehicleType(VehicleID vehicle_id)
|
||||
{
|
||||
if (!IsValidVehicle(vehicle_id)) return VEHICLE_INVALID;
|
||||
if (!IsValidVehicle(vehicle_id)) return VT_INVALID;
|
||||
|
||||
switch (::GetVehicle(vehicle_id)->type) {
|
||||
case VEH_ROAD: return VEHICLE_ROAD;
|
||||
case VEH_TRAIN: return VEHICLE_RAIL;
|
||||
case VEH_SHIP: return VEHICLE_WATER;
|
||||
case VEH_AIRCRAFT: return VEHICLE_AIR;
|
||||
default: return VEHICLE_INVALID;
|
||||
case VEH_ROAD: return VT_ROAD;
|
||||
case VEH_TRAIN: return VT_RAIL;
|
||||
case VEH_SHIP: return VT_WATER;
|
||||
case VEH_AIRCRAFT: return VT_AIR;
|
||||
default: return VT_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
/* static */ AIRoad::RoadType AIVehicle::GetRoadType(VehicleID vehicle_id)
|
||||
{
|
||||
if (!IsValidVehicle(vehicle_id)) return AIRoad::ROADTYPE_INVALID;
|
||||
if (GetVehicleType(vehicle_id) != VEHICLE_ROAD) return AIRoad::ROADTYPE_INVALID;
|
||||
if (GetVehicleType(vehicle_id) != VT_ROAD) return AIRoad::ROADTYPE_INVALID;
|
||||
|
||||
return (AIRoad::RoadType)::GetVehicle(vehicle_id)->u.road.roadtype;
|
||||
}
|
||||
@@ -370,7 +371,7 @@
|
||||
|
||||
/* static */ GroupID AIVehicle::GetGroupID(VehicleID vehicle_id)
|
||||
{
|
||||
if (!IsValidVehicle(vehicle_id)) return ::INVALID_GROUP;
|
||||
if (!IsValidVehicle(vehicle_id)) return AIGroup::GROUP_INVALID;
|
||||
|
||||
return ::GetVehicle(vehicle_id)->group_id;
|
||||
}
|
||||
@@ -378,7 +379,7 @@
|
||||
/* static */ bool AIVehicle::IsArticulated(VehicleID vehicle_id)
|
||||
{
|
||||
if (!IsValidVehicle(vehicle_id)) return false;
|
||||
if (GetVehicleType(vehicle_id) != VEHICLE_ROAD && GetVehicleType(vehicle_id) != VEHICLE_RAIL) return false;
|
||||
if (GetVehicleType(vehicle_id) != VT_ROAD && GetVehicleType(vehicle_id) != VT_RAIL) return false;
|
||||
|
||||
const Vehicle *v = ::GetVehicle(vehicle_id);
|
||||
switch (v->type) {
|
||||
|
@@ -68,11 +68,15 @@ public:
|
||||
*/
|
||||
enum VehicleType {
|
||||
/* Order IS important, as it now matches the internal state of the game for vehicle type */
|
||||
VEHICLE_RAIL, //!< Rail type vehicle.
|
||||
VEHICLE_ROAD, //!< Road type vehicle (bus / truck).
|
||||
VEHICLE_WATER, //!< Water type vehicle.
|
||||
VEHICLE_AIR, //!< Air type vehicle.
|
||||
VEHICLE_INVALID = 0xFF, //!< Invalid vehicle type.
|
||||
VT_RAIL, //!< Rail type vehicle.
|
||||
VT_ROAD, //!< Road type vehicle (bus / truck).
|
||||
VT_WATER, //!< Water type vehicle.
|
||||
VT_AIR, //!< Air type vehicle.
|
||||
VT_INVALID = 0xFF, //!< Invalid vehicle type.
|
||||
|
||||
#ifdef DEFINE_SCRIPT_FILES
|
||||
VEHICLE_INVALID = -1, //!< Invalid VehicleID.
|
||||
#endif /* DEFINE_SCRIPT_FILES */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -38,10 +38,11 @@ void SQAIVehicle_Register(Squirrel *engine) {
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::ERR_VEHICLE_NOT_IN_DEPOT, "ERR_VEHICLE_NOT_IN_DEPOT");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::ERR_VEHICLE_IN_FLIGHT, "ERR_VEHICLE_IN_FLIGHT");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::ERR_VEHCILE_NO_POWER, "ERR_VEHCILE_NO_POWER");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VEHICLE_RAIL, "VEHICLE_RAIL");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VEHICLE_ROAD, "VEHICLE_ROAD");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VEHICLE_WATER, "VEHICLE_WATER");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VEHICLE_AIR, "VEHICLE_AIR");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VT_RAIL, "VT_RAIL");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VT_ROAD, "VT_ROAD");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VT_WATER, "VT_WATER");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VT_AIR, "VT_AIR");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VT_INVALID, "VT_INVALID");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VEHICLE_INVALID, "VEHICLE_INVALID");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VS_RUNNING, "VS_RUNNING");
|
||||
SQAIVehicle.DefSQConst(engine, AIVehicle::VS_STOPPED, "VS_STOPPED");
|
||||
|
Reference in New Issue
Block a user