(svn r23613) -Add: allow IsDeveloperOnly in info.nut, to indicate if you can select this GS via the GUI (optional, defaults to false)
This commit is contained in:
@@ -129,6 +129,19 @@ public:
|
||||
*/
|
||||
bool UseAsRandomAI();
|
||||
|
||||
/**
|
||||
* Can a non-developer select Script for a new game.
|
||||
*
|
||||
* The idea behind this function is to 'forbid' using your script with a new
|
||||
* game if you for example specificly wrote it for a certain scenario.
|
||||
*
|
||||
* @return True if the Script can be selected from the GUI as non-developer.
|
||||
* @note This function is optional. Default is false.
|
||||
*
|
||||
* @api -ai
|
||||
*/
|
||||
bool IsDeveloperOnly();
|
||||
|
||||
/**
|
||||
* Gets the name of main class of the Script so OpenTTD knows
|
||||
* what class to instantiate.
|
||||
|
@@ -142,6 +142,10 @@ public:
|
||||
*/
|
||||
int GetSettingDefaultValue(const char *name) const;
|
||||
|
||||
/**
|
||||
* Can this script be selected by developers only?
|
||||
*/
|
||||
virtual bool IsDeveloperOnly() const { return false; }
|
||||
|
||||
protected:
|
||||
class Squirrel *engine; ///< Engine used to register for Squirrel.
|
||||
|
@@ -13,6 +13,7 @@
|
||||
#include "../debug.h"
|
||||
#include "../string_func.h"
|
||||
#include "../fileio_func.h"
|
||||
#include "../settings_type.h"
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "../script/squirrel.hpp"
|
||||
@@ -144,12 +145,14 @@ void ScriptScanner::RegisterScript(ScriptInfo *info)
|
||||
|
||||
this->info_list[strdup(script_name)] = info;
|
||||
|
||||
/* Add the script to the 'unique' script list, where only the highest version
|
||||
* of the script is registered. */
|
||||
if (this->info_single_list.find(script_original_name) == this->info_single_list.end()) {
|
||||
this->info_single_list[strdup(script_original_name)] = info;
|
||||
} else if (this->info_single_list[script_original_name]->GetVersion() < info->GetVersion()) {
|
||||
this->info_single_list[script_original_name] = info;
|
||||
if (!info->IsDeveloperOnly() || _settings_client.gui.ai_developer_tools) {
|
||||
/* Add the script to the 'unique' script list, where only the highest version
|
||||
* of the script is registered. */
|
||||
if (this->info_single_list.find(script_original_name) == this->info_single_list.end()) {
|
||||
this->info_single_list[strdup(script_original_name)] = info;
|
||||
} else if (this->info_single_list[script_original_name]->GetVersion() < info->GetVersion()) {
|
||||
this->info_single_list[script_original_name] = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user