gtScriptSystem
abstract class : gtRefObject

Класс для работы со скриптовыми языками.
Методы основаны на Lua.

Методы
gtScriptSystem::addCFunction
virtual void addCFunction( const gtStringA& name, void * ptr ) = 0;
Добавить функцию которую можно будет вызвать из скрипта.
static int gt_messageBox(){
scriptSystem->setReturn( 666 );
return 1;}
script->addCFunction( "gt_messageBox", (void*)gt_messageBox );

gtScriptSystem::callSFunction
virtual void callSFunction( const gtStringA& name ) = 0;
Вызвать функцию скрипта.

gtScriptSystem::callSFunction
virtual void callSFunction( const gtStringA& name, const char * args, ... ) = 0;
Вызвать функцию скрипта с передачей параметров.
Формат параметров зависит от реализации скриптового плагина.
Например так.
callSFunction("f", "%i %f", 1, 2.2f)
Стандартный Lua плагин имеет такое форматирование параметров:
callSFunction("f", "dis>d", 3.1415, 20, "string", &out_double )
Основано на книге `Programming in Lua`
После символа `>` идёт символ определяющий возвращаемое значение. Возвращаемое значение записывается по указанному адресу.

gtScriptSystem::getArgBool
virtual s32 getArgBool( s32 index ) = 0;
Получить аргумент скриптовой функции.

gtScriptSystem::getArgFloat
virtual f32 getArgFloat( s32 index ) = 0;
Получить аргумент скриптовой функции.

gtScriptSystem::getArgInt
virtual s32 getArgInt( s32 index ) = 0;
Получить аргумент скриптовой функции.
Плагин вызывает СИ функцию, заполняя свой стек аргументами. Чтобы получить эти аргументы в виде параметров, в СИ функции (в её реализации) нужно вручную вызвать соответствующие методы.

gtScriptSystem::getArgString
virtual gtStringA getArgString( s32 index ) = 0;
Получить аргумент скриптовой функции.

gtScriptSystem::getBool
virtual s32 getBool( const gtStringA& name ) = 0;
Получить глобальное значение.

gtScriptSystem::getBool
virtual s32 getBool( const gtStringA& table, const gtStringA& name ) = 0;
Получить значение из таблицы или чтото типа неё.

gtScriptSystem::getFloat
virtual f32 getFloat( const gtStringA& name ) = 0;
Получить глобальное значение.

gtScriptSystem::getFloat
virtual f32 getFloat( const gtStringA& table, const gtStringA& name ) = 0;
Получить значение из таблицы или чтото типа неё.

gtScriptSystem::getInt
virtual s32 getInt( const gtStringA& name ) = 0;
Получить глобальное значение.

gtScriptSystem::getInt
virtual s32 getInt( const gtStringA& table, const gtStringA& name ) = 0;
Получить значение из таблицы или чтото типа неё.

gtScriptSystem::getString
virtual gtStringA getString( const gtStringA& name ) = 0;
Получить глобальное значение.

gtScriptSystem::getString
virtual gtStringA getString( const gtStringA& table, const gtStringA& name ) = 0;
Получить значение из таблицы или чтото типа неё.

gtScriptSystem::loadScript
virtual bool loadScript( const gtString& fileName ) = 0;
Загрузить скрипт.

gtScriptSystem::setBool
virtual void setBool( const gtStringA& name, s32 val ) = 0;
Установить глобальное значение.

gtScriptSystem::setBool
virtual void setBool( const gtStringA& table, const gtStringA& name, s32 val ) = 0;
Установить глобальное значение внутри таблици или что-то типа неё.

gtScriptSystem::setFloat
virtual void setFloat( const gtStringA& name, f32 val ) = 0;
Установить глобальное значение.

gtScriptSystem::setFloat
virtual void setFloat( const gtStringA& table, const gtStringA& name, f32 val ) = 0;
Установить глобальное значение внутри таблици или что-то типа неё.

gtScriptSystem::setInt
virtual void setInt( const gtStringA& name, s32 val ) = 0;
Установить глобальное значение.

gtScriptSystem::setInt
virtual void setInt( const gtStringA& table, const gtStringA& name, s32 val ) = 0;
Установить глобальное значение внутри таблици или что-то типа неё.

gtScriptSystem::setReturn
virtual void setReturn( bool val ) = 0;
Установить возвращаемое значение.
Устанавливается в функции которую вызвал плагин.

gtScriptSystem::setReturn
virtual void setReturn( s32 val ) = 0;
Установить возвращаемое значение.

gtScriptSystem::setReturn
virtual void setReturn( f32 val ) = 0;
Установить возвращаемое значение.

gtScriptSystem::setReturn
virtual void setReturn( const gtStringA& val ) = 0;
Установить возвращаемое значение.

gtScriptSystem::setString
virtual void setString( const gtStringA& name, const gtStringA& val ) = 0;
Установить глобальное значение.

gtScriptSystem::setString
virtual void setString( const gtStringA& table, const gtStringA& name, const gtStringA& val ) = 0;
Установить глобальное значение внутри таблици или что-то типа неё.

gtScriptSystem::update
virtual void update() = 0;
Обновить состояние плагина.
Нужно вызвать при завершении установки значений для таблицы.