X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fscripting%2Fwrapper.cpp;h=7b74d7ade8133d511cc64f652bc87d19549bfcae;hb=6492679a300bff2c17505c5d9bc9d333eeba384d;hp=7f5aa4b12e309dd7ffbe8977d9503b842f336000;hpb=1980142d4600d3834e774d410798b47358aa555a;p=supertux.git diff --git a/src/scripting/wrapper.cpp b/src/scripting/wrapper.cpp index 7f5aa4b12..7b74d7ade 100644 --- a/src/scripting/wrapper.cpp +++ b/src/scripting/wrapper.cpp @@ -3135,6 +3135,52 @@ static SQInteger display_text_file_wrapper(HSQUIRRELVM vm) } +static SQInteger load_worldmap_wrapper(HSQUIRRELVM vm) +{ + const SQChar* arg0; + if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a string")); + return SQ_ERROR; + } + + try { + scripting::load_worldmap(arg0); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'load_worldmap'")); + return SQ_ERROR; + } + +} + +static SQInteger load_level_wrapper(HSQUIRRELVM vm) +{ + const SQChar* arg0; + if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a string")); + return SQ_ERROR; + } + + try { + scripting::load_level(arg0); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'load_level'")); + return SQ_ERROR; + } + +} + static SQInteger wait_wrapper(HSQUIRRELVM vm) { HSQUIRRELVM arg0 = vm; @@ -3320,6 +3366,25 @@ static SQInteger import_wrapper(HSQUIRRELVM vm) } +static SQInteger save_state_wrapper(HSQUIRRELVM vm) +{ + (void) vm; + + try { + scripting::save_state(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'save_state'")); + return SQ_ERROR; + } + +} + static SQInteger debug_collrects_wrapper(HSQUIRRELVM vm) { SQBool arg0; @@ -4352,6 +4417,20 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'display_text_file'"); } + sq_pushstring(v, "load_worldmap", -1); + sq_newclosure(v, &load_worldmap_wrapper, 0); + sq_setparamscheck(v, SQ_MATCHTYPEMASKSTRING, "x|ts"); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'load_worldmap'"); + } + + sq_pushstring(v, "load_level", -1); + sq_newclosure(v, &load_level_wrapper, 0); + sq_setparamscheck(v, SQ_MATCHTYPEMASKSTRING, "x|ts"); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'load_level'"); + } + sq_pushstring(v, "wait", -1); sq_newclosure(v, &wait_wrapper, 0); sq_setparamscheck(v, SQ_MATCHTYPEMASKSTRING, "x|tn"); @@ -4408,6 +4487,13 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'import'"); } + sq_pushstring(v, "save_state", -1); + sq_newclosure(v, &save_state_wrapper, 0); + sq_setparamscheck(v, SQ_MATCHTYPEMASKSTRING, "x|t"); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'save_state'"); + } + sq_pushstring(v, "debug_collrects", -1); sq_newclosure(v, &debug_collrects_wrapper, 0); sq_setparamscheck(v, SQ_MATCHTYPEMASKSTRING, "x|tb");