mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r15057) -Fix [NoAI]: clamp the values of a setting between the ones allowed by info.nut
This commit is contained in:
parent
1bd2867715
commit
07f2afa635
|
@ -88,7 +88,12 @@ int AIConfig::GetSetting(const char *name)
|
|||
void AIConfig::SetSetting(const char *name, int value)
|
||||
{
|
||||
/* You can only set ai specific settings if an AI is selected. */
|
||||
assert(strcmp(name, "start_date") == 0 || this->info != NULL);
|
||||
assert(this->info != NULL);
|
||||
|
||||
const AIConfigItem *config_item = this->info->GetConfigItem(name);
|
||||
if (config_item == NULL) return;
|
||||
|
||||
value = Clamp(value, config_item->min_value, config_item->max_value);
|
||||
|
||||
SettingValueList::iterator it = this->settings.find(name);
|
||||
if (it != this->settings.end()) {
|
||||
|
|
|
@ -295,6 +295,14 @@ const AIConfigItemList *AIInfo::GetConfigList()
|
|||
return &this->config_list;
|
||||
}
|
||||
|
||||
const AIConfigItem *AIInfo::GetConfigItem(const char *name)
|
||||
{
|
||||
for (AIConfigItemList::iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
|
||||
if (strcmp((*it).name, name) == 0) return &(*it);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int AIInfo::GetSettingDefaultValue(const char *name)
|
||||
{
|
||||
for (AIConfigItemList::iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
|
||||
|
|
|
@ -126,6 +126,11 @@ public:
|
|||
*/
|
||||
const AIConfigItemList *GetConfigList();
|
||||
|
||||
/**
|
||||
* Get the description of a certain ai config option.
|
||||
*/
|
||||
const AIConfigItem *GetConfigItem(const char *name);
|
||||
|
||||
/**
|
||||
* Set a setting.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue