Merge branch 'master' into jgrpp
# Conflicts: # src/animated_tile.cpp # src/cargopacket.h # src/cheat_gui.cpp # src/company_cmd.cpp # src/company_gui.cpp # src/date.cpp # src/disaster_vehicle.cpp # src/dock_gui.cpp # src/economy.cpp # src/engine.cpp # src/error_gui.cpp # src/fontcache/spritefontcache.cpp # src/game/game_gui.cpp # src/game/game_text.cpp # src/gfx.cpp # src/graph_gui.cpp # src/highscore_gui.cpp # src/industry_cmd.cpp # src/lang/dutch.txt # src/lang/english_AU.txt # src/lang/english_US.txt # src/lang/finnish.txt # src/lang/french.txt # src/lang/italian.txt # src/lang/portuguese.txt # src/lang/russian.txt # src/lang/turkish.txt # src/lang/vietnamese.txt # src/main_gui.cpp # src/misc_gui.cpp # src/network/network_gui.cpp # src/network/network_server.cpp # src/newgrf.cpp # src/newgrf.h # src/newgrf_generic.cpp # src/news_gui.cpp # src/openttd.cpp # src/os/unix/unix.cpp # src/os/windows/font_win32.cpp # src/os/windows/win32.cpp # src/rail_gui.cpp # src/road_gui.cpp # src/saveload/afterload.cpp # src/saveload/misc_sl.cpp # src/saveload/oldloader_sl.cpp # src/saveload/saveload.cpp # src/saveload/saveload.h # src/script/script_gui.cpp # src/settings_table.cpp # src/signs_gui.cpp # src/smallmap_gui.cpp # src/smallmap_gui.h # src/spritecache.cpp # src/spritecache.h # src/spriteloader/grf.cpp # src/station_cmd.cpp # src/statusbar_gui.cpp # src/stdafx.h # src/strgen/strgen_base.cpp # src/subsidy.cpp # src/table/settings/difficulty_settings.ini # src/texteff.cpp # src/timetable_cmd.cpp # src/timetable_gui.cpp # src/toolbar_gui.cpp # src/town_cmd.cpp # src/town_gui.cpp # src/townname.cpp # src/vehicle.cpp # src/waypoint_cmd.cpp # src/widgets/dropdown.cpp # src/window.cpp
This commit is contained in:
@@ -7,11 +7,11 @@
|
||||
|
||||
#include "../script_controller.hpp"
|
||||
|
||||
template <> const char *GetClassName<ScriptController, ST_AI>() { return "AIController"; }
|
||||
template <> const char *GetClassName<ScriptController, ScriptType::AI>() { return "AIController"; }
|
||||
|
||||
void SQAIController_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptController, ST_AI> SQAIController("AIController");
|
||||
DefSQClass<ScriptController, ScriptType::AI> SQAIController("AIController");
|
||||
SQAIController.PreRegister(engine);
|
||||
|
||||
SQAIController.DefSQStaticMethod(engine, &ScriptController::GetTick, "GetTick", 1, ".");
|
||||
|
@@ -7,11 +7,11 @@
|
||||
|
||||
#include "../script_controller.hpp"
|
||||
|
||||
template <> const char *GetClassName<ScriptController, ST_GS>() { return "GSController"; }
|
||||
template <> const char *GetClassName<ScriptController, ScriptType::GS>() { return "GSController"; }
|
||||
|
||||
void SQGSController_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptController, ST_GS> SQGSController("GSController");
|
||||
DefSQClass<ScriptController, ScriptType::GS> SQGSController("GSController");
|
||||
SQGSController.PreRegister(engine);
|
||||
|
||||
SQGSController.DefSQStaticMethod(engine, &ScriptController::GetTick, "GetTick", 1, ".");
|
||||
|
@@ -22,6 +22,58 @@
|
||||
* \li GSCompanyMode::IsDeity
|
||||
* \li GSTown::ROAD_LAYOUT_RANDOM
|
||||
* \li GSVehicle::IsPrimaryVehicle
|
||||
* \li GSOrder::SetOrderJumpTo
|
||||
* \li GSOrder::SetOrderCondition
|
||||
* \li GSOrder::SetOrderCompareFunction
|
||||
* \li GSOrder::SetOrderCompareValue
|
||||
* \li GSOrder::SetStopLocation
|
||||
* \li GSOrder::SetOrderRefit
|
||||
* \li GSOrder::AppendOrder
|
||||
* \li GSOrder::AppendConditionalOrder
|
||||
* \li GSOrder::InsertOrder
|
||||
* \li GSOrder::InsertConditionalOrder
|
||||
* \li GSOrder::RemoveOrder
|
||||
* \li GSOrder::SetOrderFlags
|
||||
* \li GSOrder::MoveOrder
|
||||
* \li GSOrder::SkipToOrder
|
||||
* \li GSOrder::CopyOrders
|
||||
* \li GSOrder::ShareOrders
|
||||
* \li GSOrder::UnshareOrders
|
||||
* \li GSCompany::IsMine
|
||||
* \li GSCompany::SetPresidentGender
|
||||
* \li GSCompany::SetAutoRenewStatus
|
||||
* \li GSCompany::SetAutoRenewMonths
|
||||
* \li GSCompany::SetAutoRenewMoney
|
||||
* \li GSGameSettings::IsDisabledVehicleType
|
||||
* \li GSGroup::GroupID
|
||||
* \li GSGroup::IsValidGroup
|
||||
* \li GSGroup::CreateGroup
|
||||
* \li GSGroup::DeleteGroup
|
||||
* \li GSGroup::GetVehicleType
|
||||
* \li GSGroup::SetName
|
||||
* \li GSGroup::GetName
|
||||
* \li GSGroup::SetParent
|
||||
* \li GSGroup::GetParent
|
||||
* \li GSGroup::EnableAutoReplaceProtection
|
||||
* \li GSGroup::GetAutoReplaceProtection
|
||||
* \li GSGroup::GetNumEngines
|
||||
* \li GSGroup::GetNumVehicles
|
||||
* \li GSGroup::MoveVehicle
|
||||
* \li GSGroup::EnableWagonRemoval
|
||||
* \li GSGroup::HasWagonRemoval
|
||||
* \li GSGroup::SetAutoReplace
|
||||
* \li GSGroup::GetEngineReplacement
|
||||
* \li GSGroup::StopAutoReplace
|
||||
* \li GSGroup::GetProfitThisYear
|
||||
* \li GSGroup::GetProfitLastYear
|
||||
* \li GSGroup::GetCurrentUsage
|
||||
* \li GSGroup::SetPrimaryColour
|
||||
* \li GSGroup::SetSecondaryColour
|
||||
* \li GSGroup::GetPrimaryColour
|
||||
* \li GSGroup::GetSecondaryColour
|
||||
* \li GSGroupList
|
||||
* \li GSVehicleList_Group
|
||||
* \li GSVehicleList_DefaultGroup
|
||||
*
|
||||
* API removals:
|
||||
* \li GSError::ERR_PRECONDITION_TOO_MANY_PARAMETERS, that error is never returned anymore.
|
||||
|
@@ -36,6 +36,7 @@
|
||||
|
||||
/* static */ bool ScriptCompany::IsMine(ScriptCompany::CompanyID company)
|
||||
{
|
||||
EnforceCompanyModeValid(false);
|
||||
return ResolveCompanyID(company) == ResolveCompanyID(COMPANY_SELF);
|
||||
}
|
||||
|
||||
|
@@ -130,8 +130,8 @@ public:
|
||||
/**
|
||||
* Check if a CompanyID is your CompanyID, to ease up checks.
|
||||
* @param company The company index to check.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return True if and only if this company is your CompanyID.
|
||||
* @api -game
|
||||
*/
|
||||
static bool IsMine(CompanyID company);
|
||||
|
||||
@@ -178,7 +178,6 @@ public:
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return True if the gender was changed.
|
||||
* @note When successful a random face will be created.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetPresidentGender(Gender gender);
|
||||
|
||||
@@ -350,7 +349,6 @@ public:
|
||||
* @param autorenew The new autorenew status.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return True if autorenew status has been modified.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetAutoRenewStatus(bool autorenew);
|
||||
|
||||
@@ -368,7 +366,6 @@ public:
|
||||
* The value will be clamped to MIN(int16) .. MAX(int16).
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return True if autorenew months has been modified.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetAutoRenewMonths(SQInteger months);
|
||||
|
||||
@@ -387,7 +384,6 @@ public:
|
||||
* @return True if autorenew money has been modified.
|
||||
* @pre money >= 0
|
||||
* @pre money < 2**32
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetAutoRenewMoney(Money money);
|
||||
|
||||
|
@@ -55,6 +55,15 @@
|
||||
#define EnforceCompanyModeValid(returnval) \
|
||||
EnforcePreconditionCustomError(returnval, ScriptCompanyMode::IsValid(), ScriptError::ERR_PRECONDITION_INVALID_COMPANY)
|
||||
|
||||
/**
|
||||
* Helper to enforce the precondition that the company mode is valid.
|
||||
*/
|
||||
#define EnforceCompanyModeValid_Void() \
|
||||
if (!ScriptCompanyMode::IsValid()) { \
|
||||
ScriptObject::SetLastError(ScriptError::ERR_PRECONDITION_INVALID_COMPANY); \
|
||||
return; \
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to enforce the precondition that we are in a deity mode.
|
||||
* @param returnval The value to return on failure.
|
||||
|
@@ -75,7 +75,6 @@ public:
|
||||
* Checks whether the given vehicle-type is disabled for companies.
|
||||
* @param vehicle_type The vehicle-type to check.
|
||||
* @return True if the vehicle-type is disabled.
|
||||
* @api -game
|
||||
*/
|
||||
static bool IsDisabledVehicleType(ScriptVehicle::VehicleType vehicle_type);
|
||||
};
|
||||
|
@@ -15,7 +15,7 @@
|
||||
|
||||
/**
|
||||
* Class that handles all group related functions.
|
||||
* @api ai
|
||||
* @api ai game
|
||||
*/
|
||||
class ScriptGroup : public ScriptObject {
|
||||
public:
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
ScriptGroupList::ScriptGroupList()
|
||||
{
|
||||
EnforceDeityOrCompanyModeValid_Void();
|
||||
EnforceCompanyModeValid_Void();
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->owner == ScriptObject::GetCompany()) this->AddItem(g->index);
|
||||
}
|
||||
|
@@ -15,11 +15,14 @@
|
||||
/**
|
||||
* Creates a list of groups of which you are the owner.
|
||||
* @note Neither ScriptGroup::GROUP_ALL nor ScriptGroup::GROUP_DEFAULT is in this list.
|
||||
* @api ai
|
||||
* @api ai game
|
||||
* @ingroup ScriptList
|
||||
*/
|
||||
class ScriptGroupList : public ScriptList {
|
||||
public:
|
||||
/**
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
*/
|
||||
ScriptGroupList();
|
||||
};
|
||||
|
||||
|
@@ -357,7 +357,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||
bool estimate_only = GetDoCommandMode() != nullptr && !GetDoCommandMode()();
|
||||
|
||||
/* Should the command be executed asynchronously? */
|
||||
bool asynchronous = GetDoCommandAsyncMode() != nullptr && GetDoCommandAsyncMode()() && GetActiveInstance()->GetScriptType() == ST_GS;
|
||||
bool asynchronous = GetDoCommandAsyncMode() != nullptr && GetDoCommandAsyncMode()() && GetActiveInstance()->GetScriptType() == ScriptType::GS;
|
||||
|
||||
/* Only set p2 when the command does not come from the network. */
|
||||
if (GetCommandFlags(cmd) & CMD_CLIENT_ID && p2 == 0) p2 = UINT32_MAX;
|
||||
@@ -406,7 +406,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||
} else if (_networking) {
|
||||
/* Suspend the script till the command is really executed. */
|
||||
throw Script_Suspend(-(int)GetDoCommandDelay(), callback);
|
||||
} else if (GetActiveInstance()->GetScriptType() == ST_GS && (_pause_mode & PM_PAUSED_GAME_SCRIPT) != PM_UNPAUSED) {
|
||||
} else if (GetActiveInstance()->GetScriptType() == ScriptType::GS && (_pause_mode & PM_PAUSED_GAME_SCRIPT) != PM_UNPAUSED) {
|
||||
/* Game is paused due to GS, just execute as fast as possible */
|
||||
IncreaseDoCommandCosts(res.GetCost());
|
||||
ScriptController::DecreaseOps(100);
|
||||
|
@@ -358,7 +358,6 @@ public:
|
||||
* @pre order_position != ORDER_CURRENT && IsConditionalOrder(vehicle_id, order_position).
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return Whether the order has been/can be changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetOrderJumpTo(VehicleID vehicle_id, OrderPosition order_position, OrderPosition jump_to);
|
||||
|
||||
@@ -372,7 +371,6 @@ public:
|
||||
* @pre condition >= OC_LOAD_PERCENTAGE && condition <= OC_UNCONDITIONALLY.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return Whether the order has been/can be changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetOrderCondition(VehicleID vehicle_id, OrderPosition order_position, OrderCondition condition);
|
||||
|
||||
@@ -386,7 +384,6 @@ public:
|
||||
* @pre compare >= CF_EQUALS && compare <= CF_IS_FALSE.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return Whether the order has been/can be changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetOrderCompareFunction(VehicleID vehicle_id, OrderPosition order_position, CompareFunction compare);
|
||||
|
||||
@@ -400,7 +397,6 @@ public:
|
||||
* @pre value >= 0 && value < 2048.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return Whether the order has been/can be changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetOrderCompareValue(VehicleID vehicle_id, OrderPosition order_position, SQInteger value);
|
||||
|
||||
@@ -415,7 +411,6 @@ public:
|
||||
* @pre stop_location >= STOPLOCATION_NEAR && stop_location <= STOPLOCATION_FAR
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return Whether the order has been/can be changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetStopLocation(VehicleID vehicle_id, OrderPosition order_position, StopLocation stop_location);
|
||||
|
||||
@@ -429,7 +424,6 @@ public:
|
||||
* @pre ScriptCargo::IsValidCargo(refit_cargo) || refit_cargo == CT_AUTO_REFIT || refit_cargo == CT_NO_REFIT
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return Whether the order has been/can be changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetOrderRefit(VehicleID vehicle_id, OrderPosition order_position, CargoID refit_cargo);
|
||||
|
||||
@@ -445,7 +439,6 @@ public:
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_MANY
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION
|
||||
* @return True if and only if the order was appended.
|
||||
* @api -game
|
||||
*/
|
||||
static bool AppendOrder(VehicleID vehicle_id, TileIndex destination, ScriptOrderFlags order_flags);
|
||||
|
||||
@@ -459,7 +452,6 @@ public:
|
||||
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_MANY
|
||||
* @return True if and only if the order was appended.
|
||||
* @api -game
|
||||
*/
|
||||
static bool AppendConditionalOrder(VehicleID vehicle_id, OrderPosition jump_to);
|
||||
|
||||
@@ -477,7 +469,6 @@ public:
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_MANY
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION
|
||||
* @return True if and only if the order was inserted.
|
||||
* @api -game
|
||||
*/
|
||||
static bool InsertOrder(VehicleID vehicle_id, OrderPosition order_position, TileIndex destination, ScriptOrderFlags order_flags);
|
||||
|
||||
@@ -493,7 +484,6 @@ public:
|
||||
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_MANY
|
||||
* @return True if and only if the order was inserted.
|
||||
* @api -game
|
||||
*/
|
||||
static bool InsertConditionalOrder(VehicleID vehicle_id, OrderPosition order_position, OrderPosition jump_to);
|
||||
|
||||
@@ -505,7 +495,6 @@ public:
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @return True if and only if the order was removed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool RemoveOrder(VehicleID vehicle_id, OrderPosition order_position);
|
||||
|
||||
@@ -526,7 +515,6 @@ public:
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @return True if and only if the order was changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SetOrderFlags(VehicleID vehicle_id, OrderPosition order_position, ScriptOrderFlags order_flags);
|
||||
|
||||
@@ -545,7 +533,6 @@ public:
|
||||
* the target order is moved upwards (e.g. 3). If the order is moved
|
||||
* to a higher place (e.g. from 7 to 9) the target will be moved
|
||||
* downwards (e.g. 8).
|
||||
* @api -game
|
||||
*/
|
||||
static bool MoveOrder(VehicleID vehicle_id, OrderPosition order_position_move, OrderPosition order_position_target);
|
||||
|
||||
@@ -557,7 +544,6 @@ public:
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @return True if and only the current order was changed.
|
||||
* @api -game
|
||||
*/
|
||||
static bool SkipToOrder(VehicleID vehicle_id, OrderPosition next_order);
|
||||
|
||||
@@ -573,7 +559,6 @@ public:
|
||||
* @exception ScriptOrder::ERR_ORDER_TOO_MANY
|
||||
* @exception ScriptOrder::ERR_ORDER_AIRCRAFT_NOT_ENOUGH_RANGE
|
||||
* @return True if and only if the copying succeeded.
|
||||
* @api -game
|
||||
*/
|
||||
static bool CopyOrders(VehicleID vehicle_id, VehicleID main_vehicle_id);
|
||||
|
||||
@@ -588,7 +573,6 @@ public:
|
||||
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @exception ScriptOrder::ERR_ORDER_AIRCRAFT_NOT_ENOUGH_RANGE
|
||||
* @return True if and only if the sharing succeeded.
|
||||
* @api -game
|
||||
*/
|
||||
static bool ShareOrders(VehicleID vehicle_id, VehicleID main_vehicle_id);
|
||||
|
||||
@@ -599,7 +583,6 @@ public:
|
||||
* @pre ScriptVehicle::IsPrimaryVehicle(vehicle_id).
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
* @return True if and only if the unsharing succeeded.
|
||||
* @api -game
|
||||
*/
|
||||
static bool UnshareOrders(VehicleID vehicle_id);
|
||||
|
||||
|
@@ -25,7 +25,7 @@ public:
|
||||
*/
|
||||
enum SubsidyParticipantType {
|
||||
/* Values are important, as they represent the internal state of the game.
|
||||
* It is originally named SourceType. ST_HEADQUARTERS is intentionally
|
||||
* It is originally named SourceType. SourceType::Headquarters is intentionally
|
||||
* left out, as it cannot be used for Subsidies. */
|
||||
SPT_INDUSTRY = 0, ///< Subsidy participant is an industry
|
||||
SPT_TOWN = 1, ///< Subsidy participant is a town
|
||||
|
@@ -103,7 +103,7 @@ ScriptVehicleList_SharedOrders::ScriptVehicleList_SharedOrders(VehicleID vehicle
|
||||
|
||||
ScriptVehicleList_Group::ScriptVehicleList_Group(GroupID group_id)
|
||||
{
|
||||
EnforceDeityOrCompanyModeValid_Void();
|
||||
EnforceCompanyModeValid_Void();
|
||||
if (!ScriptGroup::IsValidGroup((ScriptGroup::GroupID)group_id)) return;
|
||||
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
@@ -115,7 +115,7 @@ ScriptVehicleList_Group::ScriptVehicleList_Group(GroupID group_id)
|
||||
|
||||
ScriptVehicleList_DefaultGroup::ScriptVehicleList_DefaultGroup(ScriptVehicle::VehicleType vehicle_type)
|
||||
{
|
||||
EnforceDeityOrCompanyModeValid_Void();
|
||||
EnforceCompanyModeValid_Void();
|
||||
if (vehicle_type < ScriptVehicle::VT_RAIL || vehicle_type > ScriptVehicle::VT_AIR) return;
|
||||
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
|
@@ -69,26 +69,28 @@ public:
|
||||
|
||||
/**
|
||||
* Creates a list of vehicles that are in a group.
|
||||
* @api ai
|
||||
* @api ai game
|
||||
* @ingroup ScriptList
|
||||
*/
|
||||
class ScriptVehicleList_Group : public ScriptList {
|
||||
public:
|
||||
/**
|
||||
* @param group_id The ID of the group the vehicles are in.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
*/
|
||||
ScriptVehicleList_Group(GroupID group_id);
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a list of vehicles that are in the default group.
|
||||
* @api ai
|
||||
* @api ai game
|
||||
* @ingroup ScriptList
|
||||
*/
|
||||
class ScriptVehicleList_DefaultGroup : public ScriptList {
|
||||
public:
|
||||
/**
|
||||
* @param vehicle_type The VehicleType to get the list of vehicles for.
|
||||
* @game @pre ScriptCompanyMode::IsValid().
|
||||
*/
|
||||
ScriptVehicleList_DefaultGroup(ScriptVehicle::VehicleType vehicle_type);
|
||||
};
|
||||
|
@@ -26,7 +26,6 @@ void ScriptConfig::Change(const char *name, int version, bool force_exact_match,
|
||||
this->is_random = is_random;
|
||||
if (this->config_list != nullptr) delete this->config_list;
|
||||
this->config_list = (info == nullptr) ? nullptr : new ScriptConfigItemList();
|
||||
if (this->config_list != nullptr) this->PushExtraConfigList();
|
||||
this->to_load_data.reset();
|
||||
|
||||
this->ClearConfigList();
|
||||
@@ -79,7 +78,6 @@ const ScriptConfigItemList *ScriptConfig::GetConfigList()
|
||||
if (this->info != nullptr) return this->info->GetConfigList();
|
||||
if (this->config_list == nullptr) {
|
||||
this->config_list = new ScriptConfigItemList();
|
||||
this->PushExtraConfigList();
|
||||
}
|
||||
return this->config_list;
|
||||
}
|
||||
|
@@ -51,8 +51,6 @@ struct ScriptConfigItem {
|
||||
|
||||
typedef std::list<ScriptConfigItem> ScriptConfigItemList; ///< List of ScriptConfig items.
|
||||
|
||||
extern ScriptConfigItem _start_date_config;
|
||||
|
||||
/**
|
||||
* Script settings.
|
||||
*/
|
||||
@@ -127,12 +125,12 @@ public:
|
||||
* @return The (default) value of the setting, or -1 if the setting was not
|
||||
* found.
|
||||
*/
|
||||
virtual int GetSetting(const char *name) const;
|
||||
int GetSetting(const char *name) const;
|
||||
|
||||
/**
|
||||
* Set the value of a setting for this config.
|
||||
*/
|
||||
virtual void SetSetting(const char *name, int value);
|
||||
void SetSetting(const char *name, int value);
|
||||
|
||||
/**
|
||||
* Reset all settings to their default value.
|
||||
@@ -147,7 +145,7 @@ public:
|
||||
/**
|
||||
* Randomize all settings the Script requested to be randomized.
|
||||
*/
|
||||
virtual void AddRandomDeviation();
|
||||
void AddRandomDeviation();
|
||||
|
||||
/**
|
||||
* Is this config attached to an Script? In other words, is there a Script
|
||||
@@ -202,16 +200,10 @@ protected:
|
||||
bool is_random; ///< True if the AI in this slot was randomly chosen.
|
||||
std::unique_ptr<ScriptInstance::ScriptData> to_load_data; ///< Data to load after the Script start.
|
||||
|
||||
/**
|
||||
* In case you have mandatory non-Script-definable config entries in your
|
||||
* list, add them to this function.
|
||||
*/
|
||||
virtual void PushExtraConfigList() {};
|
||||
|
||||
/**
|
||||
* Routine that clears the config list.
|
||||
*/
|
||||
virtual void ClearConfigList();
|
||||
void ClearConfigList();
|
||||
|
||||
/**
|
||||
* This function should call back to the Scanner in charge of this Config,
|
||||
|
@@ -388,14 +388,8 @@ struct ScriptSettingsWindow : public Window {
|
||||
TextColour colour;
|
||||
uint idx = 0;
|
||||
if (StrEmpty(config_item.description)) {
|
||||
if (this->slot != OWNER_DEITY && !strcmp(config_item.name, "start_date")) {
|
||||
/* Build-in translation */
|
||||
str = STR_AI_SETTINGS_START_DELAY;
|
||||
colour = TC_LIGHT_BLUE;
|
||||
} else {
|
||||
str = STR_JUST_STRING;
|
||||
colour = TC_ORANGE;
|
||||
}
|
||||
str = STR_JUST_STRING;
|
||||
colour = TC_ORANGE;
|
||||
} else {
|
||||
str = STR_AI_SETTINGS_SETTING;
|
||||
colour = TC_LIGHT_BLUE;
|
||||
|
@@ -92,7 +92,7 @@ void ScriptInstance::Initialize(const char *main_script, const char *instance_na
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->script_type == ST_GS) {
|
||||
if (this->script_type == ScriptType::GS) {
|
||||
if (strcmp(instance_name, "BeeRewardClass") == 0) {
|
||||
this->LoadCompatibilityScripts("brgs", GAME_DIR);
|
||||
}
|
||||
@@ -791,7 +791,7 @@ void ScriptInstance::LimitOpsTillSuspend(SQInteger suspend)
|
||||
|
||||
uint32 ScriptInstance::GetMaxOpsTillSuspend() const
|
||||
{
|
||||
if (this->script_type == ST_GS && (_pause_mode & PM_PAUSED_GAME_SCRIPT) != PM_UNPAUSED) {
|
||||
if (this->script_type == ScriptType::GS && (_pause_mode & PM_PAUSED_GAME_SCRIPT) != PM_UNPAUSED) {
|
||||
/* Boost opcodes till suspend when paused due to game script */
|
||||
return std::min<uint32>(250000, _settings_game.script.script_max_opcode_till_suspend * 10);
|
||||
}
|
||||
|
@@ -13,9 +13,9 @@
|
||||
#include <squirrel.h>
|
||||
|
||||
/** The type of script we're working with, i.e. for who is it? */
|
||||
enum ScriptType {
|
||||
ST_AI, ///< The script is for AI scripts.
|
||||
ST_GS, ///< The script is for Game scripts.
|
||||
enum class ScriptType {
|
||||
AI, ///< The script is for AI scripts.
|
||||
GS, ///< The script is for Game scripts.
|
||||
};
|
||||
|
||||
struct ScriptAllocator;
|
||||
|
Reference in New Issue
Block a user