Script settings. More...
#include <script_config.hpp>
Public Types | |
| enum | ScriptSettingSource { SSS_DEFAULT, SSS_FORCE_NEWGAME, SSS_FORCE_GAME } |
Where to get the config from, either default (depends on current game mode) or force either newgame or normal. More... | |
Public Member Functions | |
| ScriptConfig (const ScriptConfig *config) | |
| Create a new Script config that is a copy of an existing config. | |
| virtual | ~ScriptConfig () |
| Delete an Script configuration. | |
| void | Change (const char *name, int version=-1, bool force_exact_match=false, bool is_random=false) |
| Set another Script to be loaded in this slot. | |
| class ScriptInfo * | GetInfo () const |
| Get the ScriptInfo linked to this ScriptConfig. | |
| const ScriptConfigItemList * | GetConfigList () |
| Get the config list for this ScriptConfig. | |
| virtual int | GetSetting (const char *name) const |
| Get the value of a setting for this config. | |
| virtual void | SetSetting (const char *name, int value) |
| Set the value of a setting for this config. | |
| void | ResetSettings () |
| Reset all settings to their default value. | |
| void | AddRandomDeviation () |
| Randomize all settings the Script requested to be randomized. | |
| bool | HasScript () const |
| Is this config attached to an Script? In other words, is there a Script that is assigned to this slot. | |
| bool | IsRandom () const |
| Is the current Script a randomly chosen Script? | |
| const char * | GetName () const |
| Get the name of the Script. | |
| int | GetVersion () const |
| Get the version of the Script. | |
| void | StringToSettings (const char *value) |
| Convert a string which is stored in the config file or savegames to custom settings of this Script. | |
| void | SettingsToString (char *string, size_t size) const |
| Convert the custom settings to a string that can be stored in the config file or savegames. | |
| const char * | GetTextfile (TextfileType type, CompanyID slot) const |
| Search a textfile file next to this script. | |
Protected Types | |
|
typedef std::map< const char *, int, StringCompare > | SettingValueList |
| List with name=>value pairs of all script-specific settings. | |
Protected Member Functions | |
| virtual void | PushExtraConfigList () |
| In case you have mandatory non-Script-definable config entries in your list, add them to this function. | |
| virtual void | ClearConfigList () |
| Routine that clears the config list. | |
| virtual ScriptInfo * | FindInfo (const char *name, int version, bool force_exact_match)=0 |
| This function should call back to the Scanner in charge of this Config, to find the ScriptInfo belonging to a name+version. | |
Protected Attributes | |
| const char * | name |
| Name of the Script. | |
| int | version |
| Version of the Script. | |
| class ScriptInfo * | info |
| ScriptInfo object for related to this Script version. | |
| SettingValueList | settings |
| List with all setting=>value pairs that are configure for this Script. | |
| ScriptConfigItemList * | config_list |
| List with all settings defined by this Script. | |
| bool | is_random |
| True if the AI in this slot was randomly chosen. | |
Script settings.
Definition at line 56 of file script_config.hpp.
Where to get the config from, either default (depends on current game mode) or force either newgame or normal.
| SSS_DEFAULT |
Get the Script config from the current game mode. |
| SSS_FORCE_NEWGAME |
Get the newgame Script config. |
| SSS_FORCE_GAME |
Get the Script config from the current game. |
Definition at line 103 of file script_config.hpp.
| ScriptConfig::ScriptConfig | ( | const ScriptConfig * | config | ) |
Create a new Script config that is a copy of an existing config.
| config | The object to copy. |
Definition at line 43 of file script_config.cpp.
References AddRandomDeviation(), config_list, info, is_random, name, settings, and version.
| ScriptConfig::~ScriptConfig | ( | ) | [virtual] |
Delete an Script configuration.
Definition at line 57 of file script_config.cpp.
References config_list, free(), name, and ResetSettings().
| void ScriptConfig::Change | ( | const char * | name, | |
| int | version = -1, |
|||
| bool | force_exact_match = false, |
|||
| bool | is_random = false | |||
| ) |
Set another Script to be loaded in this slot.
| name | The name of the Script. | |
| version | The version of the Script to load, or -1 of latest. | |
| force_exact_match | If true try to find the exact same version as specified. If false any compatible version is ok. | |
| is_random | Is the Script chosen randomly? |
Definition at line 18 of file script_config.cpp.
References AddRandomDeviation(), ClearConfigList(), config_list, FindInfo(), free(), ScriptInfo::GetConfigList(), ScriptInfo::GetVersion(), info, PushExtraConfigList(), SCRIPTCONFIG_RANDOM, and SetSetting().
Referenced by AIListWindow::ChangeAI(), AI::ResetConfig(), and AI::StartNew().
| int ScriptConfig::GetSetting | ( | const char * | name | ) | const [virtual] |
Get the value of a setting for this config.
It might fallback to his 'info' to find the default value (if not set or if not-custom difficulty level).
Reimplemented in AIConfig.
Definition at line 87 of file script_config.cpp.
References GetGameSettings(), ScriptInfo::GetSettingDefaultValue(), info, and settings.
Referenced by AISettingsWindow::DrawWidget(), GameInstance::GetSetting(), and AISettingsWindow::OnClick().
| const char * ScriptConfig::GetTextfile | ( | TextfileType | type, | |
| CompanyID | slot | |||
| ) | const |
Search a textfile file next to this script.
| type | The type of the textfile to search for. | |
| slot | CompanyID to check status of. |
NULL otherwise. Definition at line 203 of file script_config.cpp.
References AI_DIR, GAME_DIR, GetInfo(), INVALID_COMPANY, and OWNER_DEITY.
1.7.1