settings_internal.h File Reference

Functions and types used internally for the settings configurations. More...

#include "saveload/saveload.h"
#include "settings_type.h"
#include "strings_type.h"

Go to the source code of this file.

Data Structures

struct  SettingDescBase
struct  SettingDesc

Typedefs

typedef SimpleTinyEnumT
< SettingDescTypeLong, byte > 
SettingDescType
typedef SimpleTinyEnumT
< SettingGuiFlagLong, uint16 > 
SettingGuiFlag
typedef bool OnChange (int32 var)
 callback prototype on data modification
typedef int32 OnConvert (const char *value)
 callback prototype for convertion error
typedef SettingDesc SettingDescGlobVarList

Enumerations

enum  SettingDescTypeLong {
  SDT_BEGIN = 0, SDT_NUMX = 0, SDT_BOOLX = 1, SDT_ONEOFMANY = 2,
  SDT_MANYOFMANY = 3, SDT_INTLIST = 4, SDT_STRING = 5, SDT_END
}
 

Convention/Type of settings.

More...
enum  SettingGuiFlagLong {
  SGF_NONE = 0, SGF_0ISDISABLED = 1 << 0, SGF_NOCOMMA = 1 << 1, SGF_MULTISTRING = 1 << 2,
  SGF_NETWORK_ONLY = 1 << 3, SGF_CURRENCY = 1 << 4, SGF_NO_NETWORK = 1 << 5, SGF_NEWGAME_ONLY = 1 << 6,
  SGF_SCENEDIT_TOO = 1 << 7, SGF_PER_COMPANY = 1 << 8
}

Functions

 DECLARE_ENUM_AS_BIT_SET (SettingGuiFlagLong)
const SettingDescGetSettingFromName (const char *name, uint *i)
 Given a name of setting, return a setting description of it.
bool SetSettingValue (uint index, int32 value, bool force_newgame=false)
 Top function to save the new value of an element of the Settings struct.
bool SetSettingValue (uint index, const char *value, bool force_newgame=false)
 Set a setting value with a string.
void SetCompanySetting (uint index, int32 value)
 Top function to save the new value of an element of the Settings struct.

Variables

VehicleDefaultSettings _old_vds
 Used for loading default vehicles settings from old savegames.

Detailed Description

Functions and types used internally for the settings configurations.

Definition in file settings_internal.h.


Enumeration Type Documentation

Convention/Type of settings.

This is then further specified if necessary with the SLE_ (SLE_VAR/SLE_FILE) enums in saveload.h

See also:
VarTypes
SettingDescBase
Enumerator:
SDT_NUMX 

any number-type

SDT_BOOLX 

a boolean number

SDT_ONEOFMANY 

bitmasked number where only ONE bit may be set

SDT_MANYOFMANY 

bitmasked number where MULTIPLE bits may be set

SDT_INTLIST 

list of integers seperated by a comma ','

SDT_STRING 

string with a pre-allocated buffer

Definition at line 23 of file settings_internal.h.

Enumerator:
SGF_0ISDISABLED 

a value of zero means the feature is disabled

SGF_NOCOMMA 

number without any thousand seperators (no formatting)

SGF_MULTISTRING 

the value represents a limited number of string-options (internally integer)

SGF_NETWORK_ONLY 

this setting only applies to network games

SGF_CURRENCY 

the number represents money, so when reading value multiply by exchange rate

SGF_NO_NETWORK 

this setting does not apply to network games; it may not be changed during the game

SGF_NEWGAME_ONLY 

this setting cannot be changed in a game

SGF_SCENEDIT_TOO 

this setting can be changed in the scenario editor (only makes sense when SGF_NEWGAME_ONLY is set)

SGF_PER_COMPANY 

this setting can be different for each company (saved in company struct)

Definition at line 38 of file settings_internal.h.


Function Documentation

const SettingDesc* GetSettingFromName ( const char *  name,
uint *  i 
)

Given a name of setting, return a setting description of it.

Parameters:
name Name of the setting to return a setting description of
i Pointer to an integer that will contain the index of the setting after the call, if it is successful.
Returns:
Pointer to the setting description of setting name if it can be found, NULL indicates failure to obtain the description

Definition at line 1674 of file settings.cpp.

References SaveLoad::cmd, SettingDesc::desc, SettingDescBase::name, SettingDesc::save, SlIsObjectCurrentlyValid(), SaveLoad::version_from, and SaveLoad::version_to.

Referenced by GetCompanySettingIndex(), AIGameSettings::GetValue(), IConsoleGetSetting(), SettingEntry::Init(), AIGameSettings::IsValid(), GameDifficultyWindow::OnClick(), GameOptionsWindow::OnDropdownSelect(), GameDifficultyWindow::OnInvalidateData(), GameDifficultyWindow::SetStringParameters(), and GameDifficultyWindow::UpdateWidgetSize().

void SetCompanySetting ( uint  index,
int32  value 
)

Top function to save the new value of an element of the Settings struct.

Parameters:
index offset in the SettingDesc array of the CompanySettings struct which identifies the setting member we want to change
value new value of the setting

Definition at line 1586 of file settings.cpp.

References CMD_CHANGE_COMPANY_SETTING, ClientSettings::company, SaveLoad::conv, SettingDesc::desc, DoCommandP(), GetVariableAddress(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), SettingDescBase::proc, ReadValue(), SettingDesc::save, and Write_ValidateSetting().

Referenced by GameSettingsWindow::OnClick(), and GameSettingsWindow::OnQueryTextFinished().

bool SetSettingValue ( uint  index,
const char *  value,
bool  force_newgame 
)

Set a setting value with a string.

Parameters:
index the settings index.
value the value to write
force_newgame force the newgame settings
Note:
Strings WILL NOT be synced over the network

Definition at line 1649 of file settings.cpp.

References SaveLoad::conv, SettingDesc::desc, GetVariableAddress(), SaveLoad::length, SettingDescBase::proc, SettingDesc::save, SLE_VAR_STRQ, SLF_NETWORK_NO, and ttd_strlcpy().

bool SetSettingValue ( uint  index,
int32  value,
bool  force_newgame 
)

Top function to save the new value of an element of the Settings struct.

Parameters:
index offset in the SettingDesc array of the Settings struct which identifies the setting member we want to change
value new value of the setting
force_newgame force the newgame settings

Definition at line 1548 of file settings.cpp.

References _network_server, _networking, CMD_CHANGE_SETTING, SaveLoad::conv, SettingDesc::desc, DoCommandP(), GetVariableAddress(), SettingDescBase::proc, ReadValue(), SettingDesc::save, SetWindowDirty(), SLF_NETWORK_NO, and Write_ValidateSetting().

Referenced by GameSettingsWindow::OnClick(), GameOptionsWindow::OnDropdownSelect(), and GameSettingsWindow::OnQueryTextFinished().


Generated on Sat Jun 5 21:52:21 2010 for OpenTTD by  doxygen 1.6.1