X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Fwrapper.cpp;h=8b82637608540fa4e388d7e22129c8f88e2559bc;hb=2c60d146e19529ed9037539a12abb6001f850c60;hp=d8c475cdff0c7248170687690361b84c1ec1545a;hpb=8cecc7815e5ab5fe2b646dbe6aaa8e95cf08e71f;p=supertux.git diff --git a/src/scripting/wrapper.cpp b/src/scripting/wrapper.cpp index d8c475cdf..8b8263760 100644 --- a/src/scripting/wrapper.cpp +++ b/src/scripting/wrapper.cpp @@ -12,27 +12,10 @@ using namespace Scripting; -static int Display_release_wrapper(SQUserPointer ptr, int ) -{ - Display* _this = reinterpret_cast (ptr); - delete _this; - return 0; -} - -static int Display_construct_wrapper(HSQUIRRELVM v) -{ - Display* _this = new Display(); - sq_setinstanceup(v, 1, _this); - sq_setreleasehook(v, 1, Display_release_wrapper); - - return 0; -} - static int Display_set_effect_wrapper(HSQUIRRELVM v) { - Display* _this; + Scripting::Display* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); const char* arg0; sq_getstring(v, 2, &arg0); @@ -41,27 +24,10 @@ static int Display_set_effect_wrapper(HSQUIRRELVM v) return 0; } -static int Camera_release_wrapper(SQUserPointer ptr, int ) -{ - Camera* _this = reinterpret_cast (ptr); - delete _this; - return 0; -} - -static int Camera_construct_wrapper(HSQUIRRELVM v) -{ - Camera* _this = new Camera(); - sq_setinstanceup(v, 1, _this); - sq_setreleasehook(v, 1, Camera_release_wrapper); - - return 0; -} - static int Camera_shake_wrapper(HSQUIRRELVM v) { - Camera* _this; + Scripting::Camera* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float arg0; sq_getfloat(v, 2, &arg0); float arg1; @@ -76,9 +42,8 @@ static int Camera_shake_wrapper(HSQUIRRELVM v) static int Camera_set_pos_wrapper(HSQUIRRELVM v) { - Camera* _this; + Scripting::Camera* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float arg0; sq_getfloat(v, 2, &arg0); float arg1; @@ -91,9 +56,8 @@ static int Camera_set_pos_wrapper(HSQUIRRELVM v) static int Camera_set_mode_wrapper(HSQUIRRELVM v) { - Camera* _this; + Scripting::Camera* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); const char* arg0; sq_getstring(v, 2, &arg0); @@ -102,27 +66,10 @@ static int Camera_set_mode_wrapper(HSQUIRRELVM v) return 0; } -static int Level_release_wrapper(SQUserPointer ptr, int ) -{ - Level* _this = reinterpret_cast (ptr); - delete _this; - return 0; -} - -static int Level_construct_wrapper(HSQUIRRELVM v) -{ - Level* _this = new Level(); - sq_setinstanceup(v, 1, _this); - sq_setreleasehook(v, 1, Level_release_wrapper); - - return 0; -} - static int Level_finish_wrapper(HSQUIRRELVM v) { - Level* _this; + Scripting::Level* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); _this->finish(); @@ -131,9 +78,8 @@ static int Level_finish_wrapper(HSQUIRRELVM v) static int Level_spawn_wrapper(HSQUIRRELVM v) { - Level* _this; + Scripting::Level* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); const char* arg0; sq_getstring(v, 2, &arg0); const char* arg1; @@ -144,27 +90,10 @@ static int Level_spawn_wrapper(HSQUIRRELVM v) return 0; } -static int ScriptedObject_release_wrapper(SQUserPointer ptr, int ) -{ - ScriptedObject* _this = reinterpret_cast (ptr); - delete _this; - return 0; -} - -static int ScriptedObject_construct_wrapper(HSQUIRRELVM v) -{ - ScriptedObject* _this = new ScriptedObject(); - sq_setinstanceup(v, 1, _this); - sq_setreleasehook(v, 1, ScriptedObject_release_wrapper); - - return 0; -} - static int ScriptedObject_set_animation_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); const char* arg0; sq_getstring(v, 2, &arg0); @@ -175,9 +104,8 @@ static int ScriptedObject_set_animation_wrapper(HSQUIRRELVM v) static int ScriptedObject_get_animation_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); std::string return_value = _this->get_animation(); @@ -187,9 +115,8 @@ static int ScriptedObject_get_animation_wrapper(HSQUIRRELVM v) static int ScriptedObject_move_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float arg0; sq_getfloat(v, 2, &arg0); float arg1; @@ -202,9 +129,8 @@ static int ScriptedObject_move_wrapper(HSQUIRRELVM v) static int ScriptedObject_set_pos_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float arg0; sq_getfloat(v, 2, &arg0); float arg1; @@ -217,9 +143,8 @@ static int ScriptedObject_set_pos_wrapper(HSQUIRRELVM v) static int ScriptedObject_get_pos_x_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float return_value = _this->get_pos_x(); @@ -229,9 +154,8 @@ static int ScriptedObject_get_pos_x_wrapper(HSQUIRRELVM v) static int ScriptedObject_get_pos_y_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float return_value = _this->get_pos_y(); @@ -241,9 +165,8 @@ static int ScriptedObject_get_pos_y_wrapper(HSQUIRRELVM v) static int ScriptedObject_set_velocity_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float arg0; sq_getfloat(v, 2, &arg0); float arg1; @@ -256,9 +179,8 @@ static int ScriptedObject_set_velocity_wrapper(HSQUIRRELVM v) static int ScriptedObject_get_velocity_x_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float return_value = _this->get_velocity_x(); @@ -268,9 +190,8 @@ static int ScriptedObject_get_velocity_x_wrapper(HSQUIRRELVM v) static int ScriptedObject_get_velocity_y_wrapper(HSQUIRRELVM v) { - ScriptedObject* _this; + Scripting::ScriptedObject* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); float return_value = _this->get_velocity_y(); @@ -278,27 +199,44 @@ static int ScriptedObject_get_velocity_y_wrapper(HSQUIRRELVM v) return 1; } -static int Sound_release_wrapper(SQUserPointer ptr, int ) +static int ScriptedObject_set_visible_wrapper(HSQUIRRELVM v) { - Sound* _this = reinterpret_cast (ptr); - delete _this; + Scripting::ScriptedObject* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + SQBool arg0; + sq_getbool(v, 2, &arg0); + + _this->set_visible(arg0); + return 0; } -static int Sound_construct_wrapper(HSQUIRRELVM v) +static int ScriptedObject_is_visible_wrapper(HSQUIRRELVM v) { - Sound* _this = new Sound(); - sq_setinstanceup(v, 1, _this); - sq_setreleasehook(v, 1, Sound_release_wrapper); + Scripting::ScriptedObject* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + + bool return_value = _this->is_visible(); + + sq_pushbool(v, return_value); + return 1; +} - return 0; +static int ScriptedObject_get_name_wrapper(HSQUIRRELVM v) +{ + Scripting::ScriptedObject* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + + std::string return_value = _this->get_name(); + + sq_pushstring(v, return_value.c_str(), return_value.size()); + return 1; } static int Sound_play_music_wrapper(HSQUIRRELVM v) { - Sound* _this; + Scripting::Sound* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); const char* arg0; sq_getstring(v, 2, &arg0); @@ -309,9 +247,8 @@ static int Sound_play_music_wrapper(HSQUIRRELVM v) static int Sound_play_sound_wrapper(HSQUIRRELVM v) { - Sound* _this; + Scripting::Sound* _this; sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); - assert(_this != 0); const char* arg0; sq_getstring(v, 2, &arg0); @@ -320,41 +257,109 @@ static int Sound_play_sound_wrapper(HSQUIRRELVM v) return 0; } -static int wait_wrapper(HSQUIRRELVM v) +static int Text_set_text_wrapper(HSQUIRRELVM v) { + Scripting::Text* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + const char* arg0; + sq_getstring(v, 2, &arg0); + + _this->set_text(arg0); + + return 0; +} + +static int Text_set_font_wrapper(HSQUIRRELVM v) +{ + Scripting::Text* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + const char* arg0; + sq_getstring(v, 2, &arg0); + + _this->set_font(arg0); + + return 0; +} + +static int Text_fade_in_wrapper(HSQUIRRELVM v) +{ + Scripting::Text* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + float arg0; + sq_getfloat(v, 2, &arg0); + + _this->fade_in(arg0); + + return 0; +} + +static int Text_fade_out_wrapper(HSQUIRRELVM v) +{ + Scripting::Text* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); float arg0; sq_getfloat(v, 2, &arg0); - Scripting::wait(arg0); + _this->fade_out(arg0); return 0; } +static int Text_set_visible_wrapper(HSQUIRRELVM v) +{ + Scripting::Text* _this; + sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0); + SQBool arg0; + sq_getbool(v, 2, &arg0); + + _this->set_visible(arg0); + + return 0; +} + +static int set_wakeup_time_wrapper(HSQUIRRELVM v) +{ + float arg0; + sq_getfloat(v, 2, &arg0); + + Scripting::set_wakeup_time(arg0); + + return 0; +} + +static int translate_wrapper(HSQUIRRELVM v) +{ + const char* arg0; + sq_getstring(v, 2, &arg0); + + std::string return_value = Scripting::translate(arg0); + + sq_pushstring(v, return_value.c_str(), return_value.size()); + return 1; +} + WrappedFunction supertux_global_functions[] = { - { "wait", &wait_wrapper }, + { "set_wakeup_time", &set_wakeup_time_wrapper }, + { "translate", &translate_wrapper }, { 0, 0 } }; static WrappedFunction supertux_Display_methods[] = { - { "constructor", &Display_construct_wrapper }, { "set_effect", &Display_set_effect_wrapper }, }; static WrappedFunction supertux_Camera_methods[] = { - { "constructor", &Camera_construct_wrapper }, { "shake", &Camera_shake_wrapper }, { "set_pos", &Camera_set_pos_wrapper }, { "set_mode", &Camera_set_mode_wrapper }, }; static WrappedFunction supertux_Level_methods[] = { - { "constructor", &Level_construct_wrapper }, { "finish", &Level_finish_wrapper }, { "spawn", &Level_spawn_wrapper }, }; static WrappedFunction supertux_ScriptedObject_methods[] = { - { "constructor", &ScriptedObject_construct_wrapper }, { "set_animation", &ScriptedObject_set_animation_wrapper }, { "get_animation", &ScriptedObject_get_animation_wrapper }, { "move", &ScriptedObject_move_wrapper }, @@ -364,20 +369,31 @@ static WrappedFunction supertux_ScriptedObject_methods[] = { { "set_velocity", &ScriptedObject_set_velocity_wrapper }, { "get_velocity_x", &ScriptedObject_get_velocity_x_wrapper }, { "get_velocity_y", &ScriptedObject_get_velocity_y_wrapper }, + { "set_visible", &ScriptedObject_set_visible_wrapper }, + { "is_visible", &ScriptedObject_is_visible_wrapper }, + { "get_name", &ScriptedObject_get_name_wrapper }, }; static WrappedFunction supertux_Sound_methods[] = { - { "constructor", &Sound_construct_wrapper }, { "play_music", &Sound_play_music_wrapper }, { "play_sound", &Sound_play_sound_wrapper }, }; +static WrappedFunction supertux_Text_methods[] = { + { "set_text", &Text_set_text_wrapper }, + { "set_font", &Text_set_font_wrapper }, + { "fade_in", &Text_fade_in_wrapper }, + { "fade_out", &Text_fade_out_wrapper }, + { "set_visible", &Text_set_visible_wrapper }, +}; + WrappedClass supertux_classes[] = { { "Display", supertux_Display_methods }, { "Camera", supertux_Camera_methods }, { "Level", supertux_Level_methods }, { "ScriptedObject", supertux_ScriptedObject_methods }, { "Sound", supertux_Sound_methods }, + { "Text", supertux_Text_methods }, { 0, 0 } };