Public Member Functions | |
bool | LoadScript (const char *script) |
Load a script. | |
void | AddMethod (const char *method_name, SQFUNCTION proc, uint nparam=0, const char *params=NULL, void *userdata=NULL, int size=0) |
Adds a function to the stack. | |
void | AddConst (const char *var_name, int value) |
Adds a const to the stack. | |
void | AddConst (const char *var_name, uint value) |
Adds a const to the stack. | |
void | AddConst (const char *var_name, bool value) |
Adds a const to the stack. | |
void | AddClassBegin (const char *class_name) |
Adds a class to the global scope. | |
void | AddClassBegin (const char *class_name, const char *parent_class) |
Adds a class to the global scope, extending 'parent_class'. | |
void | AddClassEnd () |
Finishes adding a class to the global scope. | |
bool | Resume (int suspend=-1) |
Resume a VM when it was suspended via a throw. | |
void | ResumeError () |
Resume the VM with an error so it prints a stack trace. | |
void | CollectGarbage () |
Tell the VM to do a garbage collection run. | |
void | InsertResult (bool result) |
void | InsertResult (int result) |
void | InsertResult (uint result) |
bool | CallMethod (HSQOBJECT instance, const char *method_name, HSQOBJECT *ret, int suspend) |
Call a method of an instance, in various flavors. | |
bool | CallMethod (HSQOBJECT instance, const char *method_name, int suspend) |
bool | CallStringMethodStrdup (HSQOBJECT instance, const char *method_name, const char **res, int suspend) |
bool | CallIntegerMethod (HSQOBJECT instance, const char *method_name, int *res, int suspend) |
bool | CallBoolMethod (HSQOBJECT instance, const char *method_name, bool *res, int suspend) |
bool | MethodExists (HSQOBJECT instance, const char *method_name) |
Check if a method exists in an instance. | |
bool | CreateClassInstance (const char *class_name, void *real_instance, HSQOBJECT *instance) |
Exactly the same as CreateClassInstanceVM, only callable without instance of Squirrel. | |
void | SetGlobalPointer (void *ptr) |
Sets a pointer in the VM that is reachable from where ever you are in SQ. | |
void | SetPrintFunction (SQPrintFunc *func) |
Set a custom print function, so you can handle outputs from SQ yourself. | |
void | ThrowError (const char *error) |
Throw a Squirrel error that will be nicely displayed to the user. | |
void | ReleaseObject (HSQOBJECT *ptr) |
Release a SQ object. | |
bool | IsSuspended () |
Did the squirrel code suspend or return normally. | |
bool | HasScriptCrashed () |
Find out if the squirrel script made an error before. | |
void | ResetCrashed () |
Reset the crashed status. | |
void | CrashOccurred () |
Set the AI status to crashed. | |
bool | CanSuspend () |
Are we allowed to suspend the squirrel script at this moment? | |
Static Public Member Functions | |
static bool | LoadScript (HSQUIRRELVM vm, const char *script, bool in_root=true) |
static SQRESULT | LoadFile (HSQUIRRELVM vm, const char *filename, SQBool printerror) |
Load a file to a given VM. | |
static bool | CreateClassInstanceVM (HSQUIRRELVM vm, const char *class_name, void *real_instance, HSQOBJECT *instance, SQRELEASEHOOK release_hook) |
Creates a class instance. | |
static bool | GetRealInstance (HSQUIRRELVM vm, SQUserPointer *ptr) |
Get the real-instance pointer. | |
static bool | GetInstance (HSQUIRRELVM vm, HSQOBJECT *ptr, int pos=1) |
Get the Squirrel-instance pointer. | |
static const char * | ObjectToString (HSQOBJECT *ptr) |
Convert a Squirrel-object to a string. | |
static int | ObjectToInteger (HSQOBJECT *ptr) |
Convert a Squirrel-object to an integer. | |
static bool | ObjectToBool (HSQOBJECT *ptr) |
Convert a Squirrel-object to a bool. | |
static void * | GetGlobalPointer (HSQUIRRELVM vm) |
Get the pointer as set by SetGlobalPointer. | |
static void | DecreaseOps (HSQUIRRELVM vm, int amount) |
Tell the VM to remove amount ops from the number of ops till suspend. | |
Static Protected Member Functions | |
static void | CompileError (HSQUIRRELVM vm, const SQChar *desc, const SQChar *source, SQInteger line, SQInteger column) |
The CompileError handler. | |
static void | RunError (HSQUIRRELVM vm, const SQChar *error) |
The RunError handler. | |
static void | PrintFunc (HSQUIRRELVM vm, const SQChar *s,...) |
If a user runs 'print' inside a script, this function gets the params. | |
static void | ErrorPrintFunc (HSQUIRRELVM vm, const SQChar *s,...) |
If an error has to be print, this function is called. | |
Private Types | |
typedef void( | SQPrintFunc )(bool error_msg, const SQChar *message) |
Private Member Functions | |
HSQUIRRELVM | GetVM () |
Get the squirrel VM. | |
Static Private Member Functions | |
static SQInteger | _RunError (HSQUIRRELVM vm) |
The internal RunError handler. | |
Private Attributes | |
HSQUIRRELVM | vm |
The VirtualMachine instnace for squirrel. | |
void * | global_pointer |
Can be set by who ever initializes Squirrel. | |
SQPrintFunc * | print_func |
Points to either NULL, or a custom print handler. | |
bool | crashed |
True if the squirrel script made an error. | |
int | overdrawn_ops |
The amount of operations we have overdrawn. | |
Friends | |
class | AIScanner |
class | AIInstance |
void | squirrel_register_std (Squirrel *engine) |
Register all standard functions we want to give to a script. |
Definition at line 17 of file squirrel.hpp.
SQInteger Squirrel::_RunError | ( | HSQUIRRELVM | vm | ) | [static, private] |
The internal RunError handler.
It looks up the real error and calls RunError with it.
Definition at line 83 of file squirrel.cpp.
References RunError().
void Squirrel::AddClassBegin | ( | const char * | class_name | ) |
Adds a class to the global scope.
Make sure to call AddClassEnd when you are done adding methods.
Definition at line 146 of file squirrel.cpp.
References vm.
void Squirrel::AddClassBegin | ( | const char * | class_name, | |
const char * | parent_class | |||
) |
Adds a class to the global scope, extending 'parent_class'.
Make sure to call AddClassEnd when you are done adding methods.
Definition at line 153 of file squirrel.cpp.
void Squirrel::AddClassEnd | ( | ) |
Finishes adding a class to the global scope.
If this isn't called, no class is really created.
Definition at line 166 of file squirrel.cpp.
References vm.
void Squirrel::AddConst | ( | const char * | var_name, | |
int | value | |||
) |
Adds a const to the stack.
Depending on the current state this means either a const to a class or to the global space.
Definition at line 132 of file squirrel.cpp.
References vm.
void Squirrel::AddConst | ( | const char * | var_name, | |
bool | value | |||
) |
Adds a const to the stack.
Depending on the current state this means either a const to a class or to the global space.
Definition at line 139 of file squirrel.cpp.
References vm.
void Squirrel::AddConst | ( | const char * | var_name, | |
uint | value | |||
) | [inline] |
Adds a const to the stack.
Depending on the current state this means either a const to a class or to the global space.
Definition at line 95 of file squirrel.hpp.
References AddConst().
Referenced by AddConst().
void Squirrel::AddMethod | ( | const char * | method_name, | |
SQFUNCTION | proc, | |||
uint | nparam = 0 , |
|||
const char * | params = NULL , |
|||
void * | userdata = NULL , |
|||
int | size = 0 | |||
) |
Adds a function to the stack.
Depending on the current state this means either a method or a global function.
Definition at line 117 of file squirrel.cpp.
References vm.
Referenced by DefSQClass< CL >::DefSQAdvancedMethod(), DefSQClass< CL >::DefSQMethod(), DefSQClass< CL >::DefSQStaticMethod(), squirrel_register_global_std(), and squirrel_register_std().
bool Squirrel::CallMethod | ( | HSQOBJECT | instance, | |
const char * | method_name, | |||
HSQOBJECT * | ret, | |||
int | suspend | |||
) |
Call a method of an instance, in various flavors.
Definition at line 218 of file squirrel.cpp.
References crashed, DEBUG, IsSuspended(), and vm.
Referenced by AIInstance::GameLoop(), AIInfo::GetSettings(), and AIInstance::Save().
bool Squirrel::CreateClassInstanceVM | ( | HSQUIRRELVM | vm, | |
const char * | class_name, | |||
void * | real_instance, | |||
HSQOBJECT * | instance, | |||
SQRELEASEHOOK | release_hook | |||
) | [static] |
Creates a class instance.
vm | The VM to create the class instance for | |
class_name | The name of the class of which we create an instance. | |
real_instance | The instance to the real class, if it represents a real class. | |
instance | Returning value with the pointer to the instance. | |
release_hook | Optional param to give a release hook. |
Definition at line 276 of file squirrel.cpp.
References DEBUG.
Referenced by CreateClassInstance().
static bool Squirrel::GetInstance | ( | HSQUIRRELVM | vm, | |
HSQOBJECT * | ptr, | |||
int | pos = 1 | |||
) | [inline, static] |
Get the Squirrel-instance pointer.
Definition at line 183 of file squirrel.hpp.
Referenced by ScriptFileInfo::Constructor(), SQConvert::DefSQAdvancedNonStaticCallback(), and SQConvert::DefSQNonStaticCallback().
static bool Squirrel::GetRealInstance | ( | HSQUIRRELVM | vm, | |
SQUserPointer * | ptr | |||
) | [inline, static] |
Get the real-instance pointer.
Definition at line 176 of file squirrel.hpp.
HSQUIRRELVM Squirrel::GetVM | ( | ) | [inline, private] |
Get the squirrel VM.
Try to avoid using this.
Definition at line 35 of file squirrel.hpp.
References vm.
Referenced by AIInstance::CallLoad(), AIInstance::GameLoop(), AIInstance::Load(), AIInstance::Save(), squirrel_register_std(), and AIInstance::Suspend().
bool Squirrel::IsSuspended | ( | ) |
Did the squirrel code suspend or return normally.
Definition at line 528 of file squirrel.cpp.
Referenced by CallMethod(), AIInstance::GameLoop(), and AIInstance::Save().
bool Squirrel::LoadScript | ( | const char * | script | ) |
Load a script.
script | The full script-name to load. |
Definition at line 497 of file squirrel.cpp.
Referenced by AIScanner::ImportLibrary(), AIInstance::LoadCompatibilityScripts(), SquirrelStd::require(), and ScriptScanner::ScanDir().
void Squirrel::SetGlobalPointer | ( | void * | ptr | ) | [inline] |
Sets a pointer in the VM that is reachable from where ever you are in SQ.
Useful to keep track of the main instance.
Definition at line 204 of file squirrel.hpp.
References global_pointer.
Referenced by AIInstance::RegisterAPI().