Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

ScriptConfig Class Reference

Script settings. More...

#include <script_config.hpp>

Inheritance diagram for ScriptConfig:
AIConfig GameConfig

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 ScriptInfoGetInfo () const
 Get the ScriptInfo linked to this ScriptConfig.
const ScriptConfigItemListGetConfigList ()
 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 ScriptInfoFindInfo (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 ScriptInfoinfo
 ScriptInfo object for related to this Script version.
SettingValueList settings
 List with all setting=>value pairs that are configure for this Script.
ScriptConfigItemListconfig_list
 List with all settings defined by this Script.
bool is_random
 True if the AI in this slot was randomly chosen.

Detailed Description

Script settings.

Definition at line 57 of file script_config.hpp.


Member Enumeration Documentation

Where to get the config from, either default (depends on current game mode) or force either newgame or normal.

Enumerator:
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 104 of file script_config.hpp.


Constructor & Destructor Documentation

ScriptConfig::ScriptConfig ( const ScriptConfig config  ) 

Create a new Script config that is a copy of an existing config.

Parameters:
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().


Member Function Documentation

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.

Parameters:
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).

Returns:
The (default) value of the setting, or -1 if the setting was not found.

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.

Parameters:
type The type of the textfile to search for.
slot CompanyID to check status of.
Returns:
The filename for the textfile, NULL otherwise.

Definition at line 203 of file script_config.cpp.

References AI_DIR, GAME_DIR, GetInfo(), INVALID_COMPANY, and OWNER_DEITY.


The documentation for this class was generated from the following files: