OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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:

## 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.
void | AnchorUnchangeableSettings ()
| As long as the default of a setting has not been changed, the value of the setting is not stored.
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, const char *last) 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.

## Detailed Description

Script settings.

Definition at line 57 of file script_config.hpp.

## Member Enumeration Documentation

enum ScriptConfig::ScriptSettingSource

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 46 of file script_config.cpp.

References AddRandomDeviation(), config_list, info, is_random, name, settings, stredup(), and version.

ScriptConfig::~ScriptConfig | ( |  | ) |
| virtual

Delete an Script configuration.

Definition at line 60 of file script_config.cpp.

References config_list, free(), name, and ResetSettings().

## Member Function Documentation

void ScriptConfig::AnchorUnchangeableSettings | ( |  | ) |

As long as the default of a setting has not been changed, the value of the setting is not stored.

This to allow changing the difficulty setting without having to reset the script's config. However, when a setting may not be changed in game, we must "anchor" this value to what the setting would be at the time of starting. Otherwise changing the difficulty setting would change the setting's value (which isn't allowed).

Definition at line 90 of file script_config.cpp.

References GetConfigList(), SCRIPTCONFIG_INGAME, and SetSetting().

Referenced by Game::StartNew(), and AI::StartNew().

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 21 of file script_config.cpp.

References AddRandomDeviation(), ClearConfigList(), config_list, FindInfo(), free(), ScriptInfo::GetConfigList(), ScriptInfo::GetVersion(), info, is_random, PushExtraConfigList(), SCRIPTCONFIG_RANDOM, SetSetting(), and stredup().

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 99 of file script_config.cpp.

References 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 210 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:

- src/script/script_config.hpp
- src/script/script_config.cpp