X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Fwrapper.cpp;h=512c55c1049887bf7272c32137779305d2784a38;hb=8f82a8e619346be81a3c1bf943baf68953f1f4e7;hp=f938c0bb9b0e3250f8432e2d484a1f81d657d825;hpb=5cb6d627c8c62aa8ed7947a0e2e7ce3fcf08c3b5;p=supertux.git diff --git a/src/scripting/wrapper.cpp b/src/scripting/wrapper.cpp index f938c0bb9..512c55c10 100644 --- a/src/scripting/wrapper.cpp +++ b/src/scripting/wrapper.cpp @@ -15,16 +15,14 @@ namespace SquirrelWrapper { -using namespace Scripting; - static int DisplayEffect_release_hook(SQUserPointer ptr, int ) { - DisplayEffect* _this = reinterpret_cast (ptr); + Scripting::DisplayEffect* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, DisplayEffect* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::DisplayEffect* object, bool setup_releasehook) { sq_pushstring(v, "DisplayEffect", -1); if(sq_get(v, -2) < 0) { @@ -38,6 +36,7 @@ void create_squirrel_instance(HSQUIRRELVM v, DisplayEffect* object, bool setup_r msg << "Couldn't setup squirrel instance for object of type 'DisplayEffect'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, DisplayEffect_release_hook); @@ -92,12 +91,12 @@ static int DisplayEffect_is_black_wrapper(HSQUIRRELVM v) static int Camera_release_hook(SQUserPointer ptr, int ) { - Camera* _this = reinterpret_cast (ptr); + Scripting::Camera* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, Camera* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Camera* object, bool setup_releasehook) { sq_pushstring(v, "Camera", -1); if(sq_get(v, -2) < 0) { @@ -111,6 +110,7 @@ void create_squirrel_instance(HSQUIRRELVM v, Camera* object, bool setup_releaseh msg << "Couldn't setup squirrel instance for object of type 'Camera'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, Camera_release_hook); @@ -160,12 +160,12 @@ static int Camera_set_mode_wrapper(HSQUIRRELVM v) static int Level_release_hook(SQUserPointer ptr, int ) { - Level* _this = reinterpret_cast (ptr); + Scripting::Level* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, Level* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Level* object, bool setup_releasehook) { sq_pushstring(v, "Level", -1); if(sq_get(v, -2) < 0) { @@ -179,6 +179,7 @@ void create_squirrel_instance(HSQUIRRELVM v, Level* object, bool setup_releaseho msg << "Couldn't setup squirrel instance for object of type 'Level'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, Level_release_hook); @@ -220,12 +221,12 @@ static int Level_flip_vertically_wrapper(HSQUIRRELVM v) static int ScriptedObject_release_hook(SQUserPointer ptr, int ) { - ScriptedObject* _this = reinterpret_cast (ptr); + Scripting::ScriptedObject* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, ScriptedObject* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::ScriptedObject* object, bool setup_releasehook) { sq_pushstring(v, "ScriptedObject", -1); if(sq_get(v, -2) < 0) { @@ -239,6 +240,7 @@ void create_squirrel_instance(HSQUIRRELVM v, ScriptedObject* object, bool setup_ msg << "Couldn't setup squirrel instance for object of type 'ScriptedObject'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, ScriptedObject_release_hook); @@ -389,12 +391,12 @@ static int ScriptedObject_get_name_wrapper(HSQUIRRELVM v) static int Sound_release_hook(SQUserPointer ptr, int ) { - Sound* _this = reinterpret_cast (ptr); + Scripting::Sound* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, Sound* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Sound* object, bool setup_releasehook) { sq_pushstring(v, "Sound", -1); if(sq_get(v, -2) < 0) { @@ -408,6 +410,7 @@ void create_squirrel_instance(HSQUIRRELVM v, Sound* object, bool setup_releaseho msg << "Couldn't setup squirrel instance for object of type 'Sound'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, Sound_release_hook); @@ -439,12 +442,12 @@ static int Sound_play_wrapper(HSQUIRRELVM v) static int Text_release_hook(SQUserPointer ptr, int ) { - Text* _this = reinterpret_cast (ptr); + Scripting::Text* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, Text* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Text* object, bool setup_releasehook) { sq_pushstring(v, "Text", -1); if(sq_get(v, -2) < 0) { @@ -458,6 +461,7 @@ void create_squirrel_instance(HSQUIRRELVM v, Text* object, bool setup_releasehoo msg << "Couldn't setup squirrel instance for object of type 'Text'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, Text_release_hook); @@ -525,12 +529,12 @@ static int Text_set_visible_wrapper(HSQUIRRELVM v) static int Player_release_hook(SQUserPointer ptr, int ) { - Player* _this = reinterpret_cast (ptr); + Scripting::Player* _this = reinterpret_cast (ptr); delete _this; return 0; } -void create_squirrel_instance(HSQUIRRELVM v, Player* object, bool setup_releasehook) +void create_squirrel_instance(HSQUIRRELVM v, Scripting::Player* object, bool setup_releasehook) { sq_pushstring(v, "Player", -1); if(sq_get(v, -2) < 0) { @@ -544,6 +548,7 @@ void create_squirrel_instance(HSQUIRRELVM v, Player* object, bool setup_releaseh msg << "Couldn't setup squirrel instance for object of type 'Player'"; throw SquirrelError(v, msg.str()); } + sq_remove(v, -2); if(setup_releasehook) { sq_setreleasehook(v, -1, Player_release_hook);