OpenTTD Source
20241108-master-g80f628063a
|
Scanner to help finding scripts. More...
#include <script_scanner.hpp>
Public Member Functions | |
virtual void | Initialize ()=0 |
class Squirrel * | GetEngine () |
Get the engine of the main squirrel handler (it indexes all available scripts). | |
std::string | GetMainScript () |
Get the current main script the ScanDir is currently tracking. | |
std::string | GetTarFile () |
Get the current tar file the ScanDir is currently tracking. | |
const ScriptInfoList * | GetInfoList () |
Get the list of all registered scripts. | |
const ScriptInfoList * | GetUniqueInfoList () |
Get the list of the latest version of all registered scripts. | |
void | RegisterScript (class ScriptInfo *info) |
Register a ScriptInfo to the scanner. | |
void | GetConsoleList (std::back_insert_iterator< std::string > &output_iterator, bool newest_only) const |
Get the list of registered scripts to print on the console. More... | |
bool | HasScript (const struct ContentInfo *ci, bool md5sum) |
Check whether we have a script with the exact characteristics as ci. More... | |
const char * | FindMainScript (const ContentInfo *ci, bool md5sum) |
Find a script of a ContentInfo. More... | |
bool | AddFile (const std::string &filename, size_t basepath_length, const std::string &tar_filename) override |
Add a file with the given filename. More... | |
void | RescanDir () |
Rescan the script dir. | |
Public Member Functions inherited from FileScanner | |
virtual | ~FileScanner ()=default |
Destruct the proper one... | |
uint | Scan (std::string_view extension, Subdirectory sd, bool tars=true, bool recursive=true) |
Scan for files with the given extension in the given search path. More... | |
uint | Scan (std::string_view extension, const std::string &directory, bool recursive=true) |
Scan for files with the given extension in the given search path. More... | |
Protected Member Functions | |
void | Initialize (const char *name) |
Initialize the scanner. More... | |
virtual std::string | GetScriptName (ScriptInfo *info)=0 |
Get the script name how to store the script in memory. | |
virtual const char * | GetFileName () const =0 |
Get the filename to scan for this type of script. | |
virtual Subdirectory | GetDirectory () const =0 |
Get the directory to scan in. | |
virtual void | RegisterAPI (class Squirrel *engine)=0 |
Register the API for this ScriptInfo. | |
virtual const char * | GetScannerName () const =0 |
Get the type of the script, in plural. | |
void | Reset () |
Reset all allocated lists. | |
void | ResetEngine () |
Reset the engine to ensure a clean environment for further steps. | |
Protected Attributes | |
class Squirrel * | engine |
The engine we're scanning with. | |
std::string | main_script |
The full path of the script. | |
std::string | tar_file |
If, which tar file the script was in. | |
ScriptInfoList | info_list |
The list of all script. | |
ScriptInfoList | info_single_list |
The list of all unique script. The best script (highest version) is shown. | |
Protected Attributes inherited from FileScanner | |
Subdirectory | subdir |
The current sub directory we are searching through. | |
Scanner to help finding scripts.
Definition at line 19 of file script_scanner.hpp.
|
overridevirtual |
Add a file with the given filename.
filename | the full path to the file to read |
basepath_length | amount of characters to chop of before to get a filename relative to the search path. |
tar_filename | the name of the tar file the file is read from. |
Implements FileScanner.
Definition at line 26 of file script_scanner.cpp.
References main_script, and tar_file.
const char * ScriptScanner::FindMainScript | ( | const ContentInfo * | ci, |
bool | md5sum | ||
) |
Find a script of a ContentInfo.
ci | The information to compare to. |
md5sum | Whether to check the MD5 checksum. |
nullptr
. Definition at line 243 of file script_scanner.cpp.
References info_list, and IsSameScript().
void ScriptScanner::GetConsoleList | ( | std::back_insert_iterator< std::string > & | output_iterator, |
bool | newest_only | ||
) | const |
Get the list of registered scripts to print on the console.
output_iterator | The iterator to write the output to. |
newest_only | Whether to only show the newest scripts. |
Definition at line 141 of file script_scanner.cpp.
References ScriptInfo::GetDescription(), ScriptInfo::GetName(), GetScannerName(), ScriptInfo::GetVersion(), info_list, and info_single_list.
Referenced by AI::GetConsoleLibraryList(), Game::GetConsoleLibraryList(), AI::GetConsoleList(), and Game::GetConsoleList().
bool ScriptScanner::HasScript | ( | const struct ContentInfo * | ci, |
bool | md5sum | ||
) |
Check whether we have a script with the exact characteristics as ci.
ci | The characteristics to search on (shortname and md5sum). |
md5sum | Whether to check the MD5 checksum. |
Definition at line 235 of file script_scanner.cpp.
References info_list, and IsSameScript().
Referenced by AI::HasAI(), and Game::HasGame().
|
protected |
Initialize the scanner.
name | The name of the scanner ("AIScanner", "GSScanner", ..). |
Definition at line 59 of file script_scanner.cpp.
References engine, RescanDir(), and ResetEngine().