diff options
author | truebrain <truebrain@openttd.org> | 2011-12-19 20:57:43 +0000 |
---|---|---|
committer | truebrain <truebrain@openttd.org> | 2011-12-19 20:57:43 +0000 |
commit | e53b2f2ab0ef24298e3bb511367b344b88a4a4c0 (patch) | |
tree | 583623234ea6802c7043e108d63927f35467192f /src/script/api/script_gamesettings.cpp | |
parent | 9359c6fc47f6fabddc399d044ea74dc6ebfdfb05 (diff) | |
download | openttd-e53b2f2ab0ef24298e3bb511367b344b88a4a4c0.tar.xz |
(svn r23616) -Add: ScriptGameSettings::SetValue, to set gamesettings (GameScript only)
Diffstat (limited to 'src/script/api/script_gamesettings.cpp')
-rw-r--r-- | src/script/api/script_gamesettings.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/script/api/script_gamesettings.cpp b/src/script/api/script_gamesettings.cpp index 839486b8b..928ec9a96 100644 --- a/src/script/api/script_gamesettings.cpp +++ b/src/script/api/script_gamesettings.cpp @@ -12,6 +12,7 @@ #include "../../stdafx.h" #include "script_gamesettings.hpp" #include "../../settings_internal.h" +#include "../../command_type.h" /* static */ bool ScriptGameSettings::IsValid(const char *setting) { @@ -24,8 +25,8 @@ { if (!IsValid(setting)) return -1; - uint i; - const SettingDesc *sd = GetSettingFromName(setting, &i); + uint index; + const SettingDesc *sd = GetSettingFromName(setting, &index); void *ptr = GetVariableAddress(&_settings_game, &sd->save); if (sd->desc.cmd == SDT_BOOLX) return *(bool*)ptr; @@ -33,6 +34,19 @@ return (int32)ReadValue(ptr, sd->save.conv); } +/* static */ bool ScriptGameSettings::SetValue(const char *setting, int value) +{ + if (!IsValid(setting)) return false; + + uint index; + const SettingDesc *sd = GetSettingFromName(setting, &index); + + if ((sd->save.conv & SLF_NO_NETWORK_SYNC) != 0) return false; + if (sd->desc.cmd != SDT_BOOLX && sd->desc.cmd != SDT_NUMX) return false; + + return ScriptObject::DoCommand(0, index, value, CMD_CHANGE_SETTING); +} + /* static */ bool ScriptGameSettings::IsDisabledVehicleType(ScriptVehicle::VehicleType vehicle_type) { switch (vehicle_type) { |