X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Fwrapper.cpp;h=f50fa6c00d5441bf2e72cf623aaf3649eef5b2d7;hb=86e5914510fc29f4decbb66a7d602872b6c8555e;hp=d001bbbc7a2f9c34816fe21e64efad0ba23297fd;hpb=3364223e2ff9e7c4ea784ea065d5c53e223e51c8;p=supertux.git diff --git a/src/scripting/wrapper.cpp b/src/scripting/wrapper.cpp index d001bbbc7..f50fa6c00 100644 --- a/src/scripting/wrapper.cpp +++ b/src/scripting/wrapper.cpp @@ -2878,6 +2878,35 @@ static SQInteger SSector_get_ambient_blue_wrapper(HSQUIRRELVM vm) } +static SQInteger SSector_set_gravity_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'set_gravity' called without instance")); + return SQ_ERROR; + } + Scripting::SSector* _this = reinterpret_cast (data); + SQFloat arg0; + if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a float")); + return SQ_ERROR; + } + + try { + _this->set_gravity(static_cast (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 'set_gravity'")); + return SQ_ERROR; + } + +} + static SQInteger LevelTime_release_hook(SQUserPointer ptr, SQInteger ) { Scripting::LevelTime* _this = reinterpret_cast (ptr); @@ -3536,6 +3565,29 @@ static SQInteger play_sound_wrapper(HSQUIRRELVM vm) } +static SQInteger set_game_speed_wrapper(HSQUIRRELVM vm) +{ + SQFloat arg0; + if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a float")); + return SQ_ERROR; + } + + try { + Scripting::set_game_speed(static_cast (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 'set_game_speed'")); + return SQ_ERROR; + } + +} + static SQInteger grease_wrapper(HSQUIRRELVM vm) { (void) vm; @@ -3688,6 +3740,29 @@ static SQInteger camera_wrapper(HSQUIRRELVM vm) } +static SQInteger set_gamma_wrapper(HSQUIRRELVM vm) +{ + SQFloat arg0; + if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a float")); + return SQ_ERROR; + } + + try { + Scripting::set_gamma(static_cast (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 'set_gamma'")); + return SQ_ERROR; + } + +} + static SQInteger quit_wrapper(HSQUIRRELVM vm) { (void) vm; @@ -4327,6 +4402,12 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'play_sound'"); } + sq_pushstring(v, "set_game_speed", -1); + sq_newclosure(v, &set_game_speed_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_game_speed'"); + } + sq_pushstring(v, "grease", -1); sq_newclosure(v, &grease_wrapper, 0); if(SQ_FAILED(sq_createslot(v, -3))) { @@ -4375,6 +4456,12 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'camera'"); } + sq_pushstring(v, "set_gamma", -1); + sq_newclosure(v, &set_gamma_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_gamma'"); + } + sq_pushstring(v, "quit", -1); sq_newclosure(v, &quit_wrapper, 0); if(SQ_FAILED(sq_createslot(v, -3))) { @@ -5137,6 +5224,12 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'get_ambient_blue'"); } + sq_pushstring(v, "set_gravity", -1); + sq_newclosure(v, &SSector_set_gravity_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_gravity'"); + } + if(SQ_FAILED(sq_createslot(v, -3))) { throw SquirrelError(v, "Couldn't register class 'SSector'"); }