File diff r24499:98a439b5214f → r24500:deda806a71a7
src/script/script_info.cpp
Show inline comments
 
@@ -20,14 +20,14 @@
 
ScriptInfo::~ScriptInfo()
 
{
 
	/* Free all allocated strings */
 
	for (ScriptConfigItemList::iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
 
		free((*it).name);
 
		free((*it).description);
 
		if (it->labels != nullptr) {
 
			for (auto &lbl_map : *(*it).labels) {
 
	for (const auto &item : this->config_list) {
 
		free(item.name);
 
		free(item.description);
 
		if (item.labels != nullptr) {
 
			for (auto &lbl_map : *item.labels) {
 
				free(lbl_map.second);
 
			}
 
			delete it->labels;
 
			delete item.labels;
 
		}
 
	}
 
	this->config_list.clear();
 
@@ -232,8 +232,8 @@ SQInteger ScriptInfo::AddLabels(HSQUIRRE
 
	ValidateString(setting_name);
 

	
 
	ScriptConfigItem *config = nullptr;
 
	for (ScriptConfigItemList::iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
 
		if (strcmp((*it).name, setting_name) == 0) config = &(*it);
 
	for (auto &item : this->config_list) {
 
		if (strcmp(item.name, setting_name) == 0) config = &item;
 
	}
 

	
 
	if (config == nullptr) {
 
@@ -284,22 +284,22 @@ const ScriptConfigItemList *ScriptInfo::
 

	
 
const ScriptConfigItem *ScriptInfo::GetConfigItem(const char *name) const
 
{
 
	for (ScriptConfigItemList::const_iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
 
		if (strcmp((*it).name, name) == 0) return &(*it);
 
	for (const auto &item : this->config_list) {
 
		if (strcmp(item.name, name) == 0) return &item;
 
	}
 
	return nullptr;
 
}
 

	
 
int ScriptInfo::GetSettingDefaultValue(const char *name) const
 
{
 
	for (ScriptConfigItemList::const_iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
 
		if (strcmp((*it).name, name) != 0) continue;
 
	for (const auto &item : this->config_list) {
 
		if (strcmp(item.name, name) != 0) continue;
 
		/* The default value depends on the difficulty level */
 
		switch (GetGameSettings().script.settings_profile) {
 
			case SP_EASY:   return (*it).easy_value;
 
			case SP_MEDIUM: return (*it).medium_value;
 
			case SP_HARD:   return (*it).hard_value;
 
			case SP_CUSTOM: return (*it).custom_value;
 
			case SP_EASY:   return item.easy_value;
 
			case SP_MEDIUM: return item.medium_value;
 
			case SP_HARD:   return item.hard_value;
 
			case SP_CUSTOM: return item.custom_value;
 
			default: NOT_REACHED();
 
		}
 
	}