File diff r24528:a7298f737f00 → r24529:3dec691db49a
src/script/script_info.cpp
Show inline comments
 
@@ -30,26 +30,24 @@ ScriptInfo::~ScriptInfo()
 
			delete item.labels;
 
		}
 
	}
 
	this->config_list.clear();
 

	
 
	free(this->author);
 
	free(this->name);
 
	free(this->short_name);
 
	free(this->description);
 
	free(this->date);
 
	free(this->instance_name);
 
	free(this->url);
 
	free(this->main_script);
 
	free(this->tar_file);
 
	free(this->SQ_instance);
 
}
 

	
 
bool ScriptInfo::CheckMethod(const char *name) const
 
{
 
	if (!this->engine->MethodExists(*this->SQ_instance, name)) {
 
		char error[1024];
 
		seprintf(error, lastof(error), "your info.nut/library.nut doesn't have the method '%s'", name);
 
		this->engine->ThrowError(error);
 
		return false;
 
	}
 
	return true;
 
@@ -72,27 +70,26 @@ bool ScriptInfo::CheckMethod(const char 
 
		"GetName",
 
		"GetShortName",
 
		"GetDescription",
 
		"GetVersion",
 
		"GetDate",
 
		"CreateInstance",
 
	};
 
	for (size_t i = 0; i < lengthof(required_functions); i++) {
 
		if (!info->CheckMethod(required_functions[i])) return SQ_ERROR;
 
	}
 

	
 
	/* Get location information of the scanner */
 
	info->main_script = stredup(info->scanner->GetMainScript());
 
	const char *tar_name = info->scanner->GetTarFile();
 
	if (tar_name != nullptr) info->tar_file = stredup(tar_name);
 
	info->main_script = info->scanner->GetMainScript();
 
	info->tar_file = info->scanner->GetTarFile();
 

	
 
	/* Cache the data the info file gives us. */
 
	if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetAuthor", &info->author, MAX_GET_OPS)) return SQ_ERROR;
 
	if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetName", &info->name, MAX_GET_OPS)) return SQ_ERROR;
 
	if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetShortName", &info->short_name, MAX_GET_OPS)) return SQ_ERROR;
 
	if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetDescription", &info->description, MAX_GET_OPS)) return SQ_ERROR;
 
	if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetDate", &info->date, MAX_GET_OPS)) return SQ_ERROR;
 
	if (!info->engine->CallIntegerMethod(*info->SQ_instance, "GetVersion", &info->version, MAX_GET_OPS)) return SQ_ERROR;
 
	if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "CreateInstance", &info->instance_name, MAX_CREATEINSTANCE_OPS)) return SQ_ERROR;
 

	
 
	/* The GetURL function is optional. */
 
	if (info->engine->MethodExists(*info->SQ_instance, "GetURL")) {