X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Fwrapper.cpp;h=6ee9ab6f8062d1403319cfcc7e1605a676751599;hb=c38774eb23527f0e99a3d90e023ade6074100144;hp=92e90ef9d8fe9d5981df2e028abefc4c22991a05;hpb=24e5b19904a9b115a92e933bd62748ff5c198613;p=supertux.git diff --git a/src/scripting/wrapper.cpp b/src/scripting/wrapper.cpp index 92e90ef9d..6ee9ab6f8 100644 --- a/src/scripting/wrapper.cpp +++ b/src/scripting/wrapper.cpp @@ -778,6 +778,60 @@ static SQInteger ScriptedObject_is_visible_wrapper(HSQUIRRELVM vm) } +static SQInteger ScriptedObject_set_solid_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'set_solid' called without instance")); + return SQ_ERROR; + } + Scripting::ScriptedObject* _this = reinterpret_cast (data); + SQBool arg0; + if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a bool")); + return SQ_ERROR; + } + + try { + _this->set_solid(arg0 == SQTrue); + + 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_solid'")); + return SQ_ERROR; + } + +} + +static SQInteger ScriptedObject_is_solid_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'is_solid' called without instance")); + return SQ_ERROR; + } + Scripting::ScriptedObject* _this = reinterpret_cast (data); + + try { + bool return_value = _this->is_solid(); + + sq_pushbool(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'is_solid'")); + return SQ_ERROR; + } + +} + static SQInteger ScriptedObject_get_name_wrapper(HSQUIRRELVM vm) { SQUserPointer data; @@ -1006,9 +1060,10 @@ static SQInteger Player_add_bonus_wrapper(HSQUIRRELVM vm) } try { - _this->add_bonus(arg0); + bool return_value = _this->add_bonus(arg0); - return 0; + sq_pushbool(vm, return_value); + return 1; } catch(std::exception& e) { sq_throwerror(vm, e.what()); @@ -1287,6 +1342,160 @@ static SQInteger Player_get_ghost_mode_wrapper(HSQUIRRELVM vm) } +static SQInteger Player_do_cheer_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'do_cheer' called without instance")); + return SQ_ERROR; + } + Scripting::Player* _this = reinterpret_cast (data); + + try { + _this->do_cheer(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'do_cheer'")); + return SQ_ERROR; + } + +} + +static SQInteger Player_do_duck_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'do_duck' called without instance")); + return SQ_ERROR; + } + Scripting::Player* _this = reinterpret_cast (data); + + try { + _this->do_duck(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'do_duck'")); + return SQ_ERROR; + } + +} + +static SQInteger Player_do_standup_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'do_standup' called without instance")); + return SQ_ERROR; + } + Scripting::Player* _this = reinterpret_cast (data); + + try { + _this->do_standup(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'do_standup'")); + return SQ_ERROR; + } + +} + +static SQInteger Player_do_backflip_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'do_backflip' called without instance")); + return SQ_ERROR; + } + Scripting::Player* _this = reinterpret_cast (data); + + try { + _this->do_backflip(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'do_backflip'")); + return SQ_ERROR; + } + +} + +static SQInteger Player_do_jump_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'do_jump' called without instance")); + return SQ_ERROR; + } + Scripting::Player* _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->do_jump(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 'do_jump'")); + return SQ_ERROR; + } + +} + +static SQInteger Player_trigger_sequence_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'trigger_sequence' called without instance")); + return SQ_ERROR; + } + Scripting::Player* _this = reinterpret_cast (data); + const SQChar* arg0; + if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not a string")); + return SQ_ERROR; + } + + try { + _this->trigger_sequence(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 'trigger_sequence'")); + return SQ_ERROR; + } + +} + static SQInteger FloatingImage_release_hook(SQUserPointer ptr, SQInteger ) { Scripting::FloatingImage* _this = reinterpret_cast (ptr); @@ -1622,6 +1831,64 @@ static SQInteger FloatingImage_get_action_wrapper(HSQUIRRELVM vm) } +static SQInteger FloatingImage_fade_in_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'fade_in' called without instance")); + return SQ_ERROR; + } + Scripting::FloatingImage* _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->fade_in(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 'fade_in'")); + return SQ_ERROR; + } + +} + +static SQInteger FloatingImage_fade_out_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'fade_out' called without instance")); + return SQ_ERROR; + } + Scripting::FloatingImage* _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->fade_out(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 'fade_out'")); + return SQ_ERROR; + } + +} + static SQInteger Platform_release_hook(SQUserPointer ptr, SQInteger ) { Scripting::Platform* _this = reinterpret_cast (ptr); @@ -1767,17 +2034,24 @@ static SQInteger Candle_set_burning_wrapper(HSQUIRRELVM vm) } -static SQInteger display_wrapper(HSQUIRRELVM vm) +static SQInteger Wind_release_hook(SQUserPointer ptr, SQInteger ) { - return Scripting::display(vm); + Scripting::Wind* _this = reinterpret_cast (ptr); + delete _this; + return 0; } -static SQInteger print_stacktrace_wrapper(HSQUIRRELVM vm) +static SQInteger Wind_start_wrapper(HSQUIRRELVM vm) { - HSQUIRRELVM arg0 = vm; + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'start' called without instance")); + return SQ_ERROR; + } + Scripting::Wind* _this = reinterpret_cast (data); try { - Scripting::print_stacktrace(arg0); + _this->start(); return 0; @@ -1785,22 +2059,626 @@ static SQInteger print_stacktrace_wrapper(HSQUIRRELVM vm) sq_throwerror(vm, e.what()); return SQ_ERROR; } catch(...) { - sq_throwerror(vm, _SC("Unexpected exception while executing function 'print_stacktrace'")); + sq_throwerror(vm, _SC("Unexpected exception while executing function 'start'")); return SQ_ERROR; } } -static SQInteger get_current_thread_wrapper(HSQUIRRELVM vm) -{ - return Scripting::get_current_thread(vm); -} - -static SQInteger display_text_file_wrapper(HSQUIRRELVM vm) +static SQInteger Wind_stop_wrapper(HSQUIRRELVM vm) { - const SQChar* arg0; - if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) { - sq_throwerror(vm, _SC("Argument 1 not a string")); + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'stop' called without instance")); + return SQ_ERROR; + } + Scripting::Wind* _this = reinterpret_cast (data); + + try { + _this->stop(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'stop'")); + return SQ_ERROR; + } + +} + +static SQInteger AmbientSound_release_hook(SQUserPointer ptr, SQInteger ) +{ + Scripting::AmbientSound* _this = reinterpret_cast (ptr); + delete _this; + return 0; +} + +static SQInteger AmbientSound_set_pos_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'set_pos' called without instance")); + return SQ_ERROR; + } + Scripting::AmbientSound* _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; + } + SQFloat arg1; + if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) { + sq_throwerror(vm, _SC("Argument 2 not a float")); + return SQ_ERROR; + } + + try { + _this->set_pos(static_cast (arg0), static_cast (arg1)); + + 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_pos'")); + return SQ_ERROR; + } + +} + +static SQInteger AmbientSound_get_pos_x_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'get_pos_x' called without instance")); + return SQ_ERROR; + } + Scripting::AmbientSound* _this = reinterpret_cast (data); + + try { + float return_value = _this->get_pos_x(); + + sq_pushfloat(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_pos_x'")); + return SQ_ERROR; + } + +} + +static SQInteger AmbientSound_get_pos_y_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'get_pos_y' called without instance")); + return SQ_ERROR; + } + Scripting::AmbientSound* _this = reinterpret_cast (data); + + try { + float return_value = _this->get_pos_y(); + + sq_pushfloat(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_pos_y'")); + return SQ_ERROR; + } + +} + +static SQInteger Thunderstorm_release_hook(SQUserPointer ptr, SQInteger ) +{ + Scripting::Thunderstorm* _this = reinterpret_cast (ptr); + delete _this; + return 0; +} + +static SQInteger Thunderstorm_start_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'start' called without instance")); + return SQ_ERROR; + } + Scripting::Thunderstorm* _this = reinterpret_cast (data); + + try { + _this->start(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'start'")); + return SQ_ERROR; + } + +} + +static SQInteger Thunderstorm_stop_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'stop' called without instance")); + return SQ_ERROR; + } + Scripting::Thunderstorm* _this = reinterpret_cast (data); + + try { + _this->stop(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'stop'")); + return SQ_ERROR; + } + +} + +static SQInteger Thunderstorm_thunder_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'thunder' called without instance")); + return SQ_ERROR; + } + Scripting::Thunderstorm* _this = reinterpret_cast (data); + + try { + _this->thunder(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'thunder'")); + return SQ_ERROR; + } + +} + +static SQInteger Thunderstorm_lightning_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'lightning' called without instance")); + return SQ_ERROR; + } + Scripting::Thunderstorm* _this = reinterpret_cast (data); + + try { + _this->lightning(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'lightning'")); + return SQ_ERROR; + } + +} + +static SQInteger Thunderstorm_flash_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'flash' called without instance")); + return SQ_ERROR; + } + Scripting::Thunderstorm* _this = reinterpret_cast (data); + + try { + _this->flash(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'flash'")); + return SQ_ERROR; + } + +} + +static SQInteger Thunderstorm_electrify_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'electrify' called without instance")); + return SQ_ERROR; + } + Scripting::Thunderstorm* _this = reinterpret_cast (data); + + try { + _this->electrify(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'electrify'")); + return SQ_ERROR; + } + +} + +static SQInteger TileMap_release_hook(SQUserPointer ptr, SQInteger ) +{ + Scripting::TileMap* _this = reinterpret_cast (ptr); + delete _this; + return 0; +} + +static SQInteger TileMap_goto_node_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'goto_node' called without instance")); + return SQ_ERROR; + } + Scripting::TileMap* _this = reinterpret_cast (data); + SQInteger arg0; + if(SQ_FAILED(sq_getinteger(vm, 2, &arg0))) { + sq_throwerror(vm, _SC("Argument 1 not an integer")); + return SQ_ERROR; + } + + try { + _this->goto_node(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 'goto_node'")); + return SQ_ERROR; + } + +} + +static SQInteger TileMap_start_moving_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'start_moving' called without instance")); + return SQ_ERROR; + } + Scripting::TileMap* _this = reinterpret_cast (data); + + try { + _this->start_moving(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'start_moving'")); + return SQ_ERROR; + } + +} + +static SQInteger TileMap_stop_moving_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'stop_moving' called without instance")); + return SQ_ERROR; + } + Scripting::TileMap* _this = reinterpret_cast (data); + + try { + _this->stop_moving(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'stop_moving'")); + return SQ_ERROR; + } + +} + +static SQInteger SSector_release_hook(SQUserPointer ptr, SQInteger ) +{ + Scripting::SSector* _this = reinterpret_cast (ptr); + delete _this; + return 0; +} + +static SQInteger SSector_set_ambient_light_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'set_ambient_light' 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; + } + SQFloat arg1; + if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) { + sq_throwerror(vm, _SC("Argument 2 not a float")); + return SQ_ERROR; + } + SQFloat arg2; + if(SQ_FAILED(sq_getfloat(vm, 4, &arg2))) { + sq_throwerror(vm, _SC("Argument 3 not a float")); + return SQ_ERROR; + } + + try { + _this->set_ambient_light(static_cast (arg0), static_cast (arg1), static_cast (arg2)); + + 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_ambient_light'")); + return SQ_ERROR; + } + +} + +static SQInteger SSector_get_ambient_red_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'get_ambient_red' called without instance")); + return SQ_ERROR; + } + Scripting::SSector* _this = reinterpret_cast (data); + + try { + float return_value = _this->get_ambient_red(); + + sq_pushfloat(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_ambient_red'")); + return SQ_ERROR; + } + +} + +static SQInteger SSector_get_ambient_green_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'get_ambient_green' called without instance")); + return SQ_ERROR; + } + Scripting::SSector* _this = reinterpret_cast (data); + + try { + float return_value = _this->get_ambient_green(); + + sq_pushfloat(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_ambient_green'")); + return SQ_ERROR; + } + +} + +static SQInteger SSector_get_ambient_blue_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'get_ambient_blue' called without instance")); + return SQ_ERROR; + } + Scripting::SSector* _this = reinterpret_cast (data); + + try { + float return_value = _this->get_ambient_blue(); + + sq_pushfloat(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_ambient_blue'")); + return SQ_ERROR; + } + +} + +static SQInteger LevelTime_release_hook(SQUserPointer ptr, SQInteger ) +{ + Scripting::LevelTime* _this = reinterpret_cast (ptr); + delete _this; + return 0; +} + +static SQInteger LevelTime_start_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'start' called without instance")); + return SQ_ERROR; + } + Scripting::LevelTime* _this = reinterpret_cast (data); + + try { + _this->start(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'start'")); + return SQ_ERROR; + } + +} + +static SQInteger LevelTime_stop_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'stop' called without instance")); + return SQ_ERROR; + } + Scripting::LevelTime* _this = reinterpret_cast (data); + + try { + _this->stop(); + + return 0; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'stop'")); + return SQ_ERROR; + } + +} + +static SQInteger LevelTime_get_time_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'get_time' called without instance")); + return SQ_ERROR; + } + Scripting::LevelTime* _this = reinterpret_cast (data); + + try { + float return_value = _this->get_time(); + + sq_pushfloat(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_time'")); + return SQ_ERROR; + } + +} + +static SQInteger LevelTime_set_time_wrapper(HSQUIRRELVM vm) +{ + SQUserPointer data; + if(SQ_FAILED(sq_getinstanceup(vm, 1, &data, 0))) { + sq_throwerror(vm, _SC("'set_time' called without instance")); + return SQ_ERROR; + } + Scripting::LevelTime* _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_time(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_time'")); + return SQ_ERROR; + } + +} + +static SQInteger display_wrapper(HSQUIRRELVM vm) +{ + return Scripting::display(vm); +} + +static SQInteger print_stacktrace_wrapper(HSQUIRRELVM vm) +{ + HSQUIRRELVM arg0 = vm; + + try { + Scripting::print_stacktrace(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 'print_stacktrace'")); + return SQ_ERROR; + } + +} + +static SQInteger get_current_thread_wrapper(HSQUIRRELVM vm) +{ + return Scripting::get_current_thread(vm); +} + +static SQInteger display_text_file_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; } @@ -2333,259 +3211,415 @@ static SQInteger quit_wrapper(HSQUIRRELVM vm) sq_throwerror(vm, _SC("Unexpected exception while executing function 'quit'")); return SQ_ERROR; } - + +} + +static SQInteger rand_wrapper(HSQUIRRELVM vm) +{ + + try { + int return_value = Scripting::rand(); + + sq_pushinteger(vm, return_value); + return 1; + + } catch(std::exception& e) { + sq_throwerror(vm, e.what()); + return SQ_ERROR; + } catch(...) { + sq_throwerror(vm, _SC("Unexpected exception while executing function 'rand'")); + return SQ_ERROR; + } + +} + +} // end of namespace Wrapper + +void create_squirrel_instance(HSQUIRRELVM v, Scripting::DisplayEffect* object, bool setup_releasehook) +{ + using namespace Wrapper; + + sq_pushroottable(v); + sq_pushstring(v, "DisplayEffect", -1); + if(SQ_FAILED(sq_get(v, -2))) { + std::ostringstream msg; + msg << "Couldn't resolved squirrel type 'DisplayEffect'"; + throw SquirrelError(v, msg.str()); + } + + if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { + std::ostringstream msg; + msg << "Couldn't setup squirrel instance for object of type 'DisplayEffect'"; + throw SquirrelError(v, msg.str()); + } + sq_remove(v, -2); // remove object name + + if(setup_releasehook) { + sq_setreleasehook(v, -1, DisplayEffect_release_hook); + } + + sq_remove(v, -2); // remove root table +} + +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Camera* object, bool setup_releasehook) +{ + using namespace Wrapper; + + sq_pushroottable(v); + sq_pushstring(v, "Camera", -1); + if(SQ_FAILED(sq_get(v, -2))) { + std::ostringstream msg; + msg << "Couldn't resolved squirrel type 'Camera'"; + throw SquirrelError(v, msg.str()); + } + + if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { + std::ostringstream msg; + msg << "Couldn't setup squirrel instance for object of type 'Camera'"; + throw SquirrelError(v, msg.str()); + } + sq_remove(v, -2); // remove object name + + if(setup_releasehook) { + sq_setreleasehook(v, -1, Camera_release_hook); + } + + sq_remove(v, -2); // remove root table +} + +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Level* object, bool setup_releasehook) +{ + using namespace Wrapper; + + sq_pushroottable(v); + sq_pushstring(v, "Level", -1); + if(SQ_FAILED(sq_get(v, -2))) { + std::ostringstream msg; + msg << "Couldn't resolved squirrel type 'Level'"; + throw SquirrelError(v, msg.str()); + } + + if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { + std::ostringstream msg; + msg << "Couldn't setup squirrel instance for object of type 'Level'"; + throw SquirrelError(v, msg.str()); + } + sq_remove(v, -2); // remove object name + + if(setup_releasehook) { + sq_setreleasehook(v, -1, Level_release_hook); + } + + sq_remove(v, -2); // remove root table +} + +void create_squirrel_instance(HSQUIRRELVM v, Scripting::ScriptedObject* object, bool setup_releasehook) +{ + using namespace Wrapper; + + sq_pushroottable(v); + sq_pushstring(v, "ScriptedObject", -1); + if(SQ_FAILED(sq_get(v, -2))) { + std::ostringstream msg; + msg << "Couldn't resolved squirrel type 'ScriptedObject'"; + throw SquirrelError(v, msg.str()); + } + + if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { + std::ostringstream msg; + msg << "Couldn't setup squirrel instance for object of type 'ScriptedObject'"; + throw SquirrelError(v, msg.str()); + } + sq_remove(v, -2); // remove object name + + if(setup_releasehook) { + sq_setreleasehook(v, -1, ScriptedObject_release_hook); + } + + sq_remove(v, -2); // remove root table +} + +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Text* object, bool setup_releasehook) +{ + using namespace Wrapper; + + sq_pushroottable(v); + sq_pushstring(v, "Text", -1); + if(SQ_FAILED(sq_get(v, -2))) { + std::ostringstream msg; + msg << "Couldn't resolved squirrel type 'Text'"; + throw SquirrelError(v, msg.str()); + } + + if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { + std::ostringstream msg; + msg << "Couldn't setup squirrel instance for object of type 'Text'"; + throw SquirrelError(v, msg.str()); + } + sq_remove(v, -2); // remove object name + + if(setup_releasehook) { + sq_setreleasehook(v, -1, Text_release_hook); + } + + sq_remove(v, -2); // remove root table } -static SQInteger rand_wrapper(HSQUIRRELVM vm) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Player* object, bool setup_releasehook) { - - try { - int return_value = Scripting::rand(); - - sq_pushinteger(vm, return_value); - return 1; - - } catch(std::exception& e) { - sq_throwerror(vm, e.what()); - return SQ_ERROR; - } catch(...) { - sq_throwerror(vm, _SC("Unexpected exception while executing function 'rand'")); - return SQ_ERROR; + using namespace Wrapper; + + sq_pushroottable(v); + sq_pushstring(v, "Player", -1); + if(SQ_FAILED(sq_get(v, -2))) { + std::ostringstream msg; + msg << "Couldn't resolved squirrel type 'Player'"; + throw SquirrelError(v, msg.str()); } - -} -} // end of namespace Wrapper + if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { + std::ostringstream msg; + msg << "Couldn't setup squirrel instance for object of type 'Player'"; + throw SquirrelError(v, msg.str()); + } + sq_remove(v, -2); // remove object name -void create_squirrel_instance(HSQUIRRELVM v, Scripting::DisplayEffect* object, bool setup_releasehook) + if(setup_releasehook) { + sq_setreleasehook(v, -1, Player_release_hook); + } + + sq_remove(v, -2); // remove root table +} + +void create_squirrel_instance(HSQUIRRELVM v, Scripting::FloatingImage* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "DisplayEffect", -1); + sq_pushstring(v, "FloatingImage", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'DisplayEffect'"; + msg << "Couldn't resolved squirrel type 'FloatingImage'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'DisplayEffect'"; + msg << "Couldn't setup squirrel instance for object of type 'FloatingImage'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, DisplayEffect_release_hook); + sq_setreleasehook(v, -1, FloatingImage_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::Camera* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Platform* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "Camera", -1); + sq_pushstring(v, "Platform", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'Camera'"; + msg << "Couldn't resolved squirrel type 'Platform'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'Camera'"; + msg << "Couldn't setup squirrel instance for object of type 'Platform'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, Camera_release_hook); + sq_setreleasehook(v, -1, Platform_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::Level* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Candle* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "Level", -1); + sq_pushstring(v, "Candle", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'Level'"; + msg << "Couldn't resolved squirrel type 'Candle'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'Level'"; + msg << "Couldn't setup squirrel instance for object of type 'Candle'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, Level_release_hook); + sq_setreleasehook(v, -1, Candle_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::ScriptedObject* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Wind* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "ScriptedObject", -1); + sq_pushstring(v, "Wind", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'ScriptedObject'"; + msg << "Couldn't resolved squirrel type 'Wind'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'ScriptedObject'"; + msg << "Couldn't setup squirrel instance for object of type 'Wind'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, ScriptedObject_release_hook); + sq_setreleasehook(v, -1, Wind_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::Text* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::AmbientSound* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "Text", -1); + sq_pushstring(v, "AmbientSound", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'Text'"; + msg << "Couldn't resolved squirrel type 'AmbientSound'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'Text'"; + msg << "Couldn't setup squirrel instance for object of type 'AmbientSound'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, Text_release_hook); + sq_setreleasehook(v, -1, AmbientSound_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::Player* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Thunderstorm* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "Player", -1); + sq_pushstring(v, "Thunderstorm", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'Player'"; + msg << "Couldn't resolved squirrel type 'Thunderstorm'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'Player'"; + msg << "Couldn't setup squirrel instance for object of type 'Thunderstorm'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, Player_release_hook); + sq_setreleasehook(v, -1, Thunderstorm_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::FloatingImage* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::TileMap* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "FloatingImage", -1); + sq_pushstring(v, "TileMap", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'FloatingImage'"; + msg << "Couldn't resolved squirrel type 'TileMap'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'FloatingImage'"; + msg << "Couldn't setup squirrel instance for object of type 'TileMap'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, FloatingImage_release_hook); + sq_setreleasehook(v, -1, TileMap_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::Platform* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::SSector* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "Platform", -1); + sq_pushstring(v, "SSector", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'Platform'"; + msg << "Couldn't resolved squirrel type 'SSector'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'Platform'"; + msg << "Couldn't setup squirrel instance for object of type 'SSector'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, Platform_release_hook); + sq_setreleasehook(v, -1, SSector_release_hook); } sq_remove(v, -2); // remove root table } -void create_squirrel_instance(HSQUIRRELVM v, Scripting::Candle* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::LevelTime* object, bool setup_releasehook) { using namespace Wrapper; sq_pushroottable(v); - sq_pushstring(v, "Candle", -1); + sq_pushstring(v, "LevelTime", -1); if(SQ_FAILED(sq_get(v, -2))) { std::ostringstream msg; - msg << "Couldn't resolved squirrel type 'Candle'"; + msg << "Couldn't resolved squirrel type 'LevelTime'"; throw SquirrelError(v, msg.str()); } if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) { std::ostringstream msg; - msg << "Couldn't setup squirrel instance for object of type 'Candle'"; + msg << "Couldn't setup squirrel instance for object of type 'LevelTime'"; throw SquirrelError(v, msg.str()); } sq_remove(v, -2); // remove object name if(setup_releasehook) { - sq_setreleasehook(v, -1, Candle_release_hook); + sq_setreleasehook(v, -1, LevelTime_release_hook); } sq_remove(v, -2); // remove root table @@ -3013,6 +4047,18 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'is_visible'"); } + sq_pushstring(v, "set_solid", -1); + sq_newclosure(v, &ScriptedObject_set_solid_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_solid'"); + } + + sq_pushstring(v, "is_solid", -1); + sq_newclosure(v, &ScriptedObject_is_solid_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'is_solid'"); + } + sq_pushstring(v, "get_name", -1); sq_newclosure(v, &ScriptedObject_get_name_wrapper, 0); if(SQ_FAILED(sq_createslot(v, -3))) { @@ -3143,6 +4189,42 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'get_ghost_mode'"); } + sq_pushstring(v, "do_cheer", -1); + sq_newclosure(v, &Player_do_cheer_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'do_cheer'"); + } + + sq_pushstring(v, "do_duck", -1); + sq_newclosure(v, &Player_do_duck_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'do_duck'"); + } + + sq_pushstring(v, "do_standup", -1); + sq_newclosure(v, &Player_do_standup_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'do_standup'"); + } + + sq_pushstring(v, "do_backflip", -1); + sq_newclosure(v, &Player_do_backflip_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'do_backflip'"); + } + + sq_pushstring(v, "do_jump", -1); + sq_newclosure(v, &Player_do_jump_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'do_jump'"); + } + + sq_pushstring(v, "trigger_sequence", -1); + sq_newclosure(v, &Player_trigger_sequence_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'trigger_sequence'"); + } + if(SQ_FAILED(sq_createslot(v, -3))) { throw SquirrelError(v, "Couldn't register class 'Player'"); } @@ -3226,6 +4308,18 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register function 'get_action'"); } + sq_pushstring(v, "fade_in", -1); + sq_newclosure(v, &FloatingImage_fade_in_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'fade_in'"); + } + + sq_pushstring(v, "fade_out", -1); + sq_newclosure(v, &FloatingImage_fade_out_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'fade_out'"); + } + if(SQ_FAILED(sq_createslot(v, -3))) { throw SquirrelError(v, "Couldn't register class 'FloatingImage'"); } @@ -3282,6 +4376,204 @@ void register_supertux_wrapper(HSQUIRRELVM v) throw SquirrelError(v, "Couldn't register class 'Candle'"); } + // Register class Wind + sq_pushstring(v, "Wind", -1); + if(sq_newclass(v, SQFalse) < 0) { + std::ostringstream msg; + msg << "Couldn't create new class 'Wind'"; + throw SquirrelError(v, msg.str()); + } + sq_pushstring(v, "start", -1); + sq_newclosure(v, &Wind_start_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'start'"); + } + + sq_pushstring(v, "stop", -1); + sq_newclosure(v, &Wind_stop_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'stop'"); + } + + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register class 'Wind'"); + } + + // Register class AmbientSound + sq_pushstring(v, "AmbientSound", -1); + if(sq_newclass(v, SQFalse) < 0) { + std::ostringstream msg; + msg << "Couldn't create new class 'AmbientSound'"; + throw SquirrelError(v, msg.str()); + } + sq_pushstring(v, "set_pos", -1); + sq_newclosure(v, &AmbientSound_set_pos_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_pos'"); + } + + sq_pushstring(v, "get_pos_x", -1); + sq_newclosure(v, &AmbientSound_get_pos_x_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'get_pos_x'"); + } + + sq_pushstring(v, "get_pos_y", -1); + sq_newclosure(v, &AmbientSound_get_pos_y_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'get_pos_y'"); + } + + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register class 'AmbientSound'"); + } + + // Register class Thunderstorm + sq_pushstring(v, "Thunderstorm", -1); + if(sq_newclass(v, SQFalse) < 0) { + std::ostringstream msg; + msg << "Couldn't create new class 'Thunderstorm'"; + throw SquirrelError(v, msg.str()); + } + sq_pushstring(v, "start", -1); + sq_newclosure(v, &Thunderstorm_start_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'start'"); + } + + sq_pushstring(v, "stop", -1); + sq_newclosure(v, &Thunderstorm_stop_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'stop'"); + } + + sq_pushstring(v, "thunder", -1); + sq_newclosure(v, &Thunderstorm_thunder_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'thunder'"); + } + + sq_pushstring(v, "lightning", -1); + sq_newclosure(v, &Thunderstorm_lightning_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'lightning'"); + } + + sq_pushstring(v, "flash", -1); + sq_newclosure(v, &Thunderstorm_flash_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'flash'"); + } + + sq_pushstring(v, "electrify", -1); + sq_newclosure(v, &Thunderstorm_electrify_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'electrify'"); + } + + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register class 'Thunderstorm'"); + } + + // Register class TileMap + sq_pushstring(v, "TileMap", -1); + if(sq_newclass(v, SQFalse) < 0) { + std::ostringstream msg; + msg << "Couldn't create new class 'TileMap'"; + throw SquirrelError(v, msg.str()); + } + sq_pushstring(v, "goto_node", -1); + sq_newclosure(v, &TileMap_goto_node_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'goto_node'"); + } + + sq_pushstring(v, "start_moving", -1); + sq_newclosure(v, &TileMap_start_moving_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'start_moving'"); + } + + sq_pushstring(v, "stop_moving", -1); + sq_newclosure(v, &TileMap_stop_moving_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'stop_moving'"); + } + + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register class 'TileMap'"); + } + + // Register class SSector + sq_pushstring(v, "SSector", -1); + if(sq_newclass(v, SQFalse) < 0) { + std::ostringstream msg; + msg << "Couldn't create new class 'SSector'"; + throw SquirrelError(v, msg.str()); + } + sq_pushstring(v, "set_ambient_light", -1); + sq_newclosure(v, &SSector_set_ambient_light_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_ambient_light'"); + } + + sq_pushstring(v, "get_ambient_red", -1); + sq_newclosure(v, &SSector_get_ambient_red_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'get_ambient_red'"); + } + + sq_pushstring(v, "get_ambient_green", -1); + sq_newclosure(v, &SSector_get_ambient_green_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'get_ambient_green'"); + } + + sq_pushstring(v, "get_ambient_blue", -1); + sq_newclosure(v, &SSector_get_ambient_blue_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'get_ambient_blue'"); + } + + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register class 'SSector'"); + } + + // Register class LevelTime + sq_pushstring(v, "LevelTime", -1); + if(sq_newclass(v, SQFalse) < 0) { + std::ostringstream msg; + msg << "Couldn't create new class 'LevelTime'"; + throw SquirrelError(v, msg.str()); + } + sq_pushstring(v, "start", -1); + sq_newclosure(v, &LevelTime_start_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'start'"); + } + + sq_pushstring(v, "stop", -1); + sq_newclosure(v, &LevelTime_stop_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'stop'"); + } + + sq_pushstring(v, "get_time", -1); + sq_newclosure(v, &LevelTime_get_time_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'get_time'"); + } + + sq_pushstring(v, "set_time", -1); + sq_newclosure(v, &LevelTime_set_time_wrapper, 0); + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register function 'set_time'"); + } + + if(SQ_FAILED(sq_createslot(v, -3))) { + throw SquirrelError(v, "Couldn't register class 'LevelTime'"); + } + } } // end of namespace Scripting