OpenTTD Source: AIScannerInfo Class Reference

OpenTTD Source 15.3

Public Member Functions | Protected Member Functions | Private Attributes
AIScannerInfo Class Reference
Inheritance diagram for AIScannerInfo:

## Public Member Functions
void | Initialize () override
class AIInfo * | SelectRandomAI () const
| Select a random AI.
class AIInfo * | FindInfo (const std::string &name, int version, bool force_exact_match)
| Check if we have an AI by name and version available in our list.
void | SetDummyAI (std::unique_ptr< class AIInfo > &&info)
| Set the Dummy AI.
Public Member Functions inherited from ScriptScanner
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 (std::unique_ptr< 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.
bool | HasScript (const struct ContentInfo &ci, bool md5sum)
| Check whether we have a script with the exact characteristics as ci.
std::optional< std::string_view > | FindMainScript (const ContentInfo &ci, bool md5sum)
| Find a script of a ContentInfo.
bool | AddFile (const std::string &filename, size_t basepath_length, const std::string &tar_filename) override
| Add a file with the given filename.
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.
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.

## Protected Member Functions
std::string | GetScriptName (ScriptInfo &info) override
| Get the script name how to store the script in memory.
std::string_view | GetFileName () const override
| Get the filename to scan for this type of script.
Subdirectory | GetDirectory () const override
| Get the directory to scan in.
std::string_view | GetScannerName () const override
| Get the type of the script, in plural.
void | RegisterAPI (class Squirrel &engine) override
| Register the API for this ScriptInfo.
Protected Member Functions inherited from ScriptScanner
void | Initialize (std::string_view name)
| Initialize the scanner.
void | Reset ()
| Reset all allocated lists.
void | ResetEngine ()
| Reset the engine to ensure a clean environment for further steps.

## Private Attributes
std::unique_ptr< AIInfo > | info_dummy
| The dummy AI.

## Additional Inherited Members
Protected Attributes inherited from ScriptScanner
std::unique_ptr< 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.
std::vector< std::unique_ptr< ScriptInfo > > | info_vector
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

Definition at line 15 of file ai_scanner.hpp.

## Member Function Documentation

## ◆ FindInfo()

AIInfo * AIScannerInfo::FindInfo | ( | const std::string & | name,
|  | int | version,
|  | bool | force_exact_match
| ) |  |

Check if we have an AI by name and version available in our list.

Parameters

  name | The name of the AI.
  version | The version of the AI, or -1 if you want the latest.
  force_exact_match | Only match name+version, never latest.

Returns
  nullptr if no match found, otherwise the AI that matched.

Definition at line 78 of file ai_scanner.cpp.

References AIInfo::CanLoadFromVersion(), ScriptInfo::GetName(), ScriptInfo::GetVersion(), ScriptScanner::info_list, ScriptScanner::info_single_list, and StrEqualsIgnoreCase().

## ◆ GetDirectory()

Subdirectory AIScannerInfo::GetDirectory | ( |  | ) | const
| inlineoverrideprotectedvirtual

Get the directory to scan in.

Implements ScriptScanner.

Definition at line 45 of file ai_scanner.hpp.

References AI_DIR.

## ◆ GetFileName()

std::string_view AIScannerInfo::GetFileName | ( |  | ) | const
| inlineoverrideprotectedvirtual

Get the filename to scan for this type of script.

Implements ScriptScanner.

Definition at line 44 of file ai_scanner.hpp.

## ◆ GetScannerName()

std::string_view AIScannerInfo::GetScannerName | ( |  | ) | const
| inlineoverrideprotectedvirtual

Get the type of the script, in plural.

Implements ScriptScanner.

Definition at line 46 of file ai_scanner.hpp.

## ◆ GetScriptName()

std::string AIScannerInfo::GetScriptName | ( | ScriptInfo & | info | ) |
| overrideprotectedvirtual

Get the script name how to store the script in memory.

Implements ScriptScanner.

Definition at line 44 of file ai_scanner.cpp.

References ScriptInfo::GetName().

## ◆ Initialize()

void AIScannerInfo::Initialize | ( |  | ) |
| overridevirtual

Implements ScriptScanner.

Definition at line 28 of file ai_scanner.cpp.

## ◆ RegisterAPI()

void AIScannerInfo::RegisterAPI | ( | class Squirrel & | engine | ) |
| overrideprotectedvirtual

Register the API for this ScriptInfo.

Implements ScriptScanner.

Definition at line 49 of file ai_scanner.cpp.

References ScriptScanner::engine, and AIInfo::RegisterAPI().

## ◆ SelectRandomAI()

AIInfo * AIScannerInfo::SelectRandomAI | ( |  | ) | const

Select a random AI.

Returns
  A random AI from the pool.

Definition at line 54 of file ai_scanner.cpp.

References Debug, info_dummy, ScriptScanner::info_single_list, and OWNER_NONE.

## ◆ SetDummyAI()

void AIScannerInfo::SetDummyAI | ( | std::unique_ptr< class AIInfo > && | info | ) |

Set the Dummy AI.

Definition at line 39 of file ai_scanner.cpp.

References info_dummy.

## Field Documentation

## ◆ info_dummy

std::unique_ptr<AIInfo> AIScannerInfo::info_dummy
| private

The dummy AI.

Definition at line 50 of file ai_scanner.hpp.

Referenced by SelectRandomAI(), and SetDummyAI().

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

- src/ai/ai_scanner.hpp
- src/ai/ai_scanner.cpp