OpenTTD
Public Member Functions | Protected Member Functions | Protected Attributes
ScriptScanner Class Referenceabstract

Scanner to help finding scripts. More...

#include <script_scanner.hpp>

Inheritance diagram for ScriptScanner:
FileScanner AIScannerInfo AIScannerLibrary GameScannerInfo GameScannerLibrary

Public Member Functions

virtual void Initialize ()=0
 
class SquirrelGetEngine ()
 Get the engine of the main squirrel handler (it indexes all available scripts).
 
const char * GetMainScript ()
 Get the current main script the ScanDir is currently tracking.
 
const char * GetTarFile ()
 Get the current tar file the ScanDir is currently tracking.
 
const ScriptInfoListGetInfoList ()
 Get the list of all registered scripts.
 
const ScriptInfoListGetUniqueInfoList ()
 Get the list of the latest version of all registered scripts.
 
void RegisterScript (class ScriptInfo *info)
 Register a ScriptInfo to the scanner.
 
char * GetConsoleList (char *p, const char *last, bool newest_only) const
 Get the list of registered scripts to print on the console.
 
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 char *filename, size_t basepath_length, const char *tar_filename)
 Add a file with the given filename. More...
 
void RescanDir ()
 Rescan the script dir.
 
- Public Member Functions inherited from FileScanner
virtual ~FileScanner ()
 Destruct the proper one... More...
 
uint Scan (const char *extension, Subdirectory sd, bool tars=true, bool recursive=true)
 Scan for files with the given extension in the given search path. More...
 
uint Scan (const char *extension, const char *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 void GetScriptName (ScriptInfo *info, char *name, const char *last)=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 Squirrelengine
 The engine we're scanning with.
 
char * main_script
 The full path of the script.
 
char * 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.
 

Detailed Description

Scanner to help finding scripts.

Definition at line 22 of file script_scanner.hpp.

Member Function Documentation

◆ AddFile()

bool ScriptScanner::AddFile ( const char *  filename,
size_t  basepath_length,
const char *  tar_filename 
)
virtual

Add a file with the given filename.

Parameters
filenamethe full path to the file to read
basepath_lengthamount of characters to chop of before to get a filename relative to the search path.
tar_filenamethe name of the tar file the file is read from.
Returns
true if the file is added.

Implements FileScanner.

Definition at line 29 of file script_scanner.cpp.

References free(), main_script, stredup(), and tar_file.

Referenced by GetUniqueInfoList().

◆ FindMainScript()

const char * ScriptScanner::FindMainScript ( const ContentInfo ci,
bool  md5sum 
)

Find a script of a ContentInfo.

Parameters
ciThe information to compare to.
md5sumWhether to check the MD5 checksum.
Returns
A filename of a file of the content, else NULL.

Definition at line 283 of file script_scanner.cpp.

References info_list, and IsSameScript().

Referenced by GetUniqueInfoList().

◆ HasScript()

bool ScriptScanner::HasScript ( const struct ContentInfo ci,
bool  md5sum 
)

Check whether we have a script with the exact characteristics as ci.

Parameters
ciThe characteristics to search on (shortname and md5sum).
md5sumWhether to check the MD5 checksum.
Returns
True iff we have a script matching.

Definition at line 275 of file script_scanner.cpp.

References info_list, and IsSameScript().

Referenced by GetUniqueInfoList(), AI::HasAI(), and Game::HasGame().

◆ Initialize()

void ScriptScanner::Initialize ( const char *  name)
protected

Initialize the scanner.

Parameters
nameThe name of the scanner ("AIScanner", "GSScanner", ..).

Definition at line 76 of file script_scanner.cpp.

References engine, free(), main_script, RescanDir(), Reset(), ResetEngine(), and tar_file.


The documentation for this class was generated from the following files: