rubidium@10852: /* $Id$ */ rubidium@10852: rubidium@10852: /** @file ai_gamesettings.cpp Implementation of AIGameSettings. */ rubidium@10852: rubidium@10852: #include "ai_gamesettings.hpp" rubidium@10852: #include "../../settings_internal.h" rubidium@10852: #include "../../saveload.h" rubidium@10852: rubidium@10852: /* static */ bool AIGameSettings::IsValid(const char *setting) rubidium@10852: { rubidium@10852: uint i; rubidium@10852: const SettingDesc *sd = GetPatchFromName(setting, &i); rubidium@10852: return sd != NULL && sd->desc.cmd != SDT_STRING; rubidium@10852: } rubidium@10852: rubidium@10852: /* static */ int32 AIGameSettings::GetValue(const char *setting) rubidium@10852: { rubidium@10852: if (!IsValid(setting)) return -1; rubidium@10852: rubidium@10852: uint i; rubidium@10852: const SettingDesc *sd = GetPatchFromName(setting, &i); rubidium@10852: rubidium@10852: void *ptr = GetVariableAddress(&_settings_game, &sd->save); rubidium@10852: if (sd->desc.cmd == SDT_BOOLX) return *(bool*)ptr; rubidium@10852: rubidium@10852: return (int32)ReadValue(ptr, sd->save.conv); rubidium@10852: }