OpenTTD Source  20240919-master-gdf0233f4c2
SQConvert Namespace Reference

The Squirrel convert routines. More...

Data Structures

struct  HelperT
 Helper class to recognize the function type (retval type, args) and use the proper specialization for SQ callback. More...
 
struct  HelperT< Tretval(*)(Targs...)>
 The real C++ caller for functions. More...
 
struct  HelperT< Tretval(Tcls::*)(Targs...)>
 The real C++ caller for methods. More...
 
struct  Param
 To get a param from squirrel, we use this helper class. More...
 
struct  Param< Array< Titem > && >
 
struct  Param< bool >
 
struct  Param< const char * >
 
struct  Param< const std::string & >
 
struct  Param< int16_t >
 
struct  Param< int32_t >
 
struct  Param< int64_t >
 
struct  Param< int8_t >
 
struct  Param< Money >
 
struct  Param< TileIndex >
 
struct  Param< uint16_t >
 
struct  Param< uint32_t >
 
struct  Param< uint8_t >
 
struct  Param< void * >
 
struct  Return
 To return a value to squirrel, we use this helper class. More...
 
struct  Return< bool >
 
struct  Return< char * >
 
struct  Return< const char * >
 
struct  Return< HSQOBJECT >
 
struct  Return< int16_t >
 
struct  Return< int32_t >
 
struct  Return< int64_t >
 
struct  Return< int8_t >
 
struct  Return< Money >
 
struct  Return< std::optional< std::string > >
 
struct  Return< TileIndex >
 
struct  Return< uint16_t >
 
struct  Return< uint32_t >
 
struct  Return< uint8_t >
 
struct  Return< void * >
 

Functions

template<typename Tcls , typename Tmethod , ScriptType Ttype>
SQInteger DefSQNonStaticCallback (HSQUIRRELVM vm)
 A general template for all non-static method callbacks from Squirrel. More...
 
template<typename Tcls , typename Tmethod , ScriptType Ttype>
SQInteger DefSQAdvancedNonStaticCallback (HSQUIRRELVM vm)
 A general template for all non-static advanced method callbacks from Squirrel. More...
 
template<typename Tcls , typename Tmethod >
SQInteger DefSQStaticCallback (HSQUIRRELVM vm)
 A general template for all function/static method callbacks from Squirrel. More...
 
template<typename Tcls , typename Tmethod >
SQInteger DefSQAdvancedStaticCallback (HSQUIRRELVM vm)
 A general template for all static advanced method callbacks from Squirrel. More...
 
template<typename Tcls >
static SQInteger DefSQDestructorCallback (SQUserPointer p, SQInteger)
 A general template for the destructor of SQ instances. More...
 
template<typename Tcls , typename Tmethod , int Tnparam>
SQInteger DefSQConstructorCallback (HSQUIRRELVM vm)
 A general template to handle creating of instance with any amount of params. More...
 
template<typename Tcls >
SQInteger DefSQAdvancedConstructorCallback (HSQUIRRELVM vm)
 A general template to handle creating of an instance with a complex constructor.
 

Detailed Description

The Squirrel convert routines.

Function Documentation

◆ DefSQAdvancedNonStaticCallback()

template<typename Tcls , typename Tmethod , ScriptType Ttype>
SQInteger SQConvert::DefSQAdvancedNonStaticCallback ( HSQUIRRELVM  vm)
inline

A general template for all non-static advanced method callbacks from Squirrel.

In here the function_proc is recovered, and the SQCall is called that can handle this exact amount of params.

Definition at line 243 of file squirrel_helper.hpp.

References Squirrel::GetInstance().

◆ DefSQAdvancedStaticCallback()

template<typename Tcls , typename Tmethod >
SQInteger SQConvert::DefSQAdvancedStaticCallback ( HSQUIRRELVM  vm)
inline

A general template for all static advanced method callbacks from Squirrel.

In here the function_proc is recovered, and the SQCall is called that can handle this exact amount of params.

Definition at line 305 of file squirrel_helper.hpp.

◆ DefSQConstructorCallback()

template<typename Tcls , typename Tmethod , int Tnparam>
SQInteger SQConvert::DefSQConstructorCallback ( HSQUIRRELVM  vm)
inline

A general template to handle creating of instance with any amount of params.

It creates the instance in C++, and it sets all the needed settings in SQ to register the instance.

Definition at line 338 of file squirrel_helper.hpp.

◆ DefSQDestructorCallback()

template<typename Tcls >
static SQInteger SQConvert::DefSQDestructorCallback ( SQUserPointer  p,
SQInteger   
)
static

A general template for the destructor of SQ instances.

This is needed here as it has to be in the same scope as DefSQConstructorCallback.

Definition at line 325 of file squirrel_helper.hpp.

◆ DefSQNonStaticCallback()

template<typename Tcls , typename Tmethod , ScriptType Ttype>
SQInteger SQConvert::DefSQNonStaticCallback ( HSQUIRRELVM  vm)
inline

A general template for all non-static method callbacks from Squirrel.

In here the function_proc is recovered, and the SQCall is called that can handle this exact amount of params.

Definition at line 201 of file squirrel_helper.hpp.

References Squirrel::GetInstance().

◆ DefSQStaticCallback()

template<typename Tcls , typename Tmethod >
SQInteger SQConvert::DefSQStaticCallback ( HSQUIRRELVM  vm)
inline

A general template for all function/static method callbacks from Squirrel.

In here the function_proc is recovered, and the SQCall is called that can handle this exact amount of params.

Definition at line 281 of file squirrel_helper.hpp.