2 * WARNING: This file is automatically generated from:
3 * 'src/scripting/wrapper.interface.hpp'
12 #include "wrapper_util.hpp"
13 #include "wrapper.interface.hpp"
15 namespace SquirrelWrapper
18 using namespace Scripting;
20 static int DisplayEffect_release_hook(SQUserPointer ptr, int )
22 DisplayEffect* _this = reinterpret_cast<DisplayEffect*> (ptr);
27 void create_squirrel_instance(HSQUIRRELVM v, DisplayEffect* object, bool setup_releasehook)
29 sq_pushstring(v, "DisplayEffect", -1);
30 if(sq_get(v, -2) < 0) {
31 std::ostringstream msg;
32 msg << "Couldn't resolved squirrel type 'DisplayEffect'";
33 throw SquirrelError(v, msg.str());
36 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
37 std::ostringstream msg;
38 msg << "Couldn't setup squirrel instance for object of type 'DisplayEffect'";
39 throw SquirrelError(v, msg.str());
42 if(setup_releasehook) {
43 sq_setreleasehook(v, -1, DisplayEffect_release_hook);
46 static int DisplayEffect_fade_out_wrapper(HSQUIRRELVM v)
48 Scripting::DisplayEffect* _this;
49 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
51 sq_getfloat(v, 2, &arg0);
53 _this->fade_out(arg0);
58 static int DisplayEffect_fade_in_wrapper(HSQUIRRELVM v)
60 Scripting::DisplayEffect* _this;
61 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
63 sq_getfloat(v, 2, &arg0);
70 static int DisplayEffect_set_black_wrapper(HSQUIRRELVM v)
72 Scripting::DisplayEffect* _this;
73 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
75 sq_getbool(v, 2, &arg0);
77 _this->set_black(arg0);
82 static int DisplayEffect_is_black_wrapper(HSQUIRRELVM v)
84 Scripting::DisplayEffect* _this;
85 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
87 bool return_value = _this->is_black();
89 sq_pushbool(v, return_value);
93 static int Camera_release_hook(SQUserPointer ptr, int )
95 Camera* _this = reinterpret_cast<Camera*> (ptr);
100 void create_squirrel_instance(HSQUIRRELVM v, Camera* object, bool setup_releasehook)
102 sq_pushstring(v, "Camera", -1);
103 if(sq_get(v, -2) < 0) {
104 std::ostringstream msg;
105 msg << "Couldn't resolved squirrel type 'Camera'";
106 throw SquirrelError(v, msg.str());
109 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
110 std::ostringstream msg;
111 msg << "Couldn't setup squirrel instance for object of type 'Camera'";
112 throw SquirrelError(v, msg.str());
115 if(setup_releasehook) {
116 sq_setreleasehook(v, -1, Camera_release_hook);
119 static int Camera_shake_wrapper(HSQUIRRELVM v)
121 Scripting::Camera* _this;
122 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
124 sq_getfloat(v, 2, &arg0);
126 sq_getfloat(v, 3, &arg1);
128 sq_getfloat(v, 4, &arg2);
130 _this->shake(arg0, arg1, arg2);
135 static int Camera_set_pos_wrapper(HSQUIRRELVM v)
137 Scripting::Camera* _this;
138 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
140 sq_getfloat(v, 2, &arg0);
142 sq_getfloat(v, 3, &arg1);
144 _this->set_pos(arg0, arg1);
149 static int Camera_set_mode_wrapper(HSQUIRRELVM v)
151 Scripting::Camera* _this;
152 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
154 sq_getstring(v, 2, &arg0);
156 _this->set_mode(arg0);
161 static int Level_release_hook(SQUserPointer ptr, int )
163 Level* _this = reinterpret_cast<Level*> (ptr);
168 void create_squirrel_instance(HSQUIRRELVM v, Level* object, bool setup_releasehook)
170 sq_pushstring(v, "Level", -1);
171 if(sq_get(v, -2) < 0) {
172 std::ostringstream msg;
173 msg << "Couldn't resolved squirrel type 'Level'";
174 throw SquirrelError(v, msg.str());
177 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
178 std::ostringstream msg;
179 msg << "Couldn't setup squirrel instance for object of type 'Level'";
180 throw SquirrelError(v, msg.str());
183 if(setup_releasehook) {
184 sq_setreleasehook(v, -1, Level_release_hook);
187 static int Level_finish_wrapper(HSQUIRRELVM v)
189 Scripting::Level* _this;
190 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
197 static int Level_spawn_wrapper(HSQUIRRELVM v)
199 Scripting::Level* _this;
200 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
202 sq_getstring(v, 2, &arg0);
204 sq_getstring(v, 3, &arg1);
206 _this->spawn(arg0, arg1);
211 static int Level_flip_vertically_wrapper(HSQUIRRELVM v)
213 Scripting::Level* _this;
214 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
216 _this->flip_vertically();
221 static int ScriptedObject_release_hook(SQUserPointer ptr, int )
223 ScriptedObject* _this = reinterpret_cast<ScriptedObject*> (ptr);
228 void create_squirrel_instance(HSQUIRRELVM v, ScriptedObject* object, bool setup_releasehook)
230 sq_pushstring(v, "ScriptedObject", -1);
231 if(sq_get(v, -2) < 0) {
232 std::ostringstream msg;
233 msg << "Couldn't resolved squirrel type 'ScriptedObject'";
234 throw SquirrelError(v, msg.str());
237 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
238 std::ostringstream msg;
239 msg << "Couldn't setup squirrel instance for object of type 'ScriptedObject'";
240 throw SquirrelError(v, msg.str());
243 if(setup_releasehook) {
244 sq_setreleasehook(v, -1, ScriptedObject_release_hook);
247 static int ScriptedObject_set_animation_wrapper(HSQUIRRELVM v)
249 Scripting::ScriptedObject* _this;
250 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
252 sq_getstring(v, 2, &arg0);
254 _this->set_animation(arg0);
259 static int ScriptedObject_get_animation_wrapper(HSQUIRRELVM v)
261 Scripting::ScriptedObject* _this;
262 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
264 std::string return_value = _this->get_animation();
266 sq_pushstring(v, return_value.c_str(), return_value.size());
270 static int ScriptedObject_move_wrapper(HSQUIRRELVM v)
272 Scripting::ScriptedObject* _this;
273 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
275 sq_getfloat(v, 2, &arg0);
277 sq_getfloat(v, 3, &arg1);
279 _this->move(arg0, arg1);
284 static int ScriptedObject_set_pos_wrapper(HSQUIRRELVM v)
286 Scripting::ScriptedObject* _this;
287 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
289 sq_getfloat(v, 2, &arg0);
291 sq_getfloat(v, 3, &arg1);
293 _this->set_pos(arg0, arg1);
298 static int ScriptedObject_get_pos_x_wrapper(HSQUIRRELVM v)
300 Scripting::ScriptedObject* _this;
301 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
303 float return_value = _this->get_pos_x();
305 sq_pushfloat(v, return_value);
309 static int ScriptedObject_get_pos_y_wrapper(HSQUIRRELVM v)
311 Scripting::ScriptedObject* _this;
312 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
314 float return_value = _this->get_pos_y();
316 sq_pushfloat(v, return_value);
320 static int ScriptedObject_set_velocity_wrapper(HSQUIRRELVM v)
322 Scripting::ScriptedObject* _this;
323 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
325 sq_getfloat(v, 2, &arg0);
327 sq_getfloat(v, 3, &arg1);
329 _this->set_velocity(arg0, arg1);
334 static int ScriptedObject_get_velocity_x_wrapper(HSQUIRRELVM v)
336 Scripting::ScriptedObject* _this;
337 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
339 float return_value = _this->get_velocity_x();
341 sq_pushfloat(v, return_value);
345 static int ScriptedObject_get_velocity_y_wrapper(HSQUIRRELVM v)
347 Scripting::ScriptedObject* _this;
348 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
350 float return_value = _this->get_velocity_y();
352 sq_pushfloat(v, return_value);
356 static int ScriptedObject_set_visible_wrapper(HSQUIRRELVM v)
358 Scripting::ScriptedObject* _this;
359 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
361 sq_getbool(v, 2, &arg0);
363 _this->set_visible(arg0);
368 static int ScriptedObject_is_visible_wrapper(HSQUIRRELVM v)
370 Scripting::ScriptedObject* _this;
371 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
373 bool return_value = _this->is_visible();
375 sq_pushbool(v, return_value);
379 static int ScriptedObject_get_name_wrapper(HSQUIRRELVM v)
381 Scripting::ScriptedObject* _this;
382 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
384 std::string return_value = _this->get_name();
386 sq_pushstring(v, return_value.c_str(), return_value.size());
390 static int Sound_release_hook(SQUserPointer ptr, int )
392 Sound* _this = reinterpret_cast<Sound*> (ptr);
397 void create_squirrel_instance(HSQUIRRELVM v, Sound* object, bool setup_releasehook)
399 sq_pushstring(v, "Sound", -1);
400 if(sq_get(v, -2) < 0) {
401 std::ostringstream msg;
402 msg << "Couldn't resolved squirrel type 'Sound'";
403 throw SquirrelError(v, msg.str());
406 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
407 std::ostringstream msg;
408 msg << "Couldn't setup squirrel instance for object of type 'Sound'";
409 throw SquirrelError(v, msg.str());
412 if(setup_releasehook) {
413 sq_setreleasehook(v, -1, Sound_release_hook);
416 static int Sound_play_music_wrapper(HSQUIRRELVM v)
418 Scripting::Sound* _this;
419 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
421 sq_getstring(v, 2, &arg0);
423 _this->play_music(arg0);
428 static int Sound_play_wrapper(HSQUIRRELVM v)
430 Scripting::Sound* _this;
431 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
433 sq_getstring(v, 2, &arg0);
440 static int Text_release_hook(SQUserPointer ptr, int )
442 Text* _this = reinterpret_cast<Text*> (ptr);
447 void create_squirrel_instance(HSQUIRRELVM v, Text* object, bool setup_releasehook)
449 sq_pushstring(v, "Text", -1);
450 if(sq_get(v, -2) < 0) {
451 std::ostringstream msg;
452 msg << "Couldn't resolved squirrel type 'Text'";
453 throw SquirrelError(v, msg.str());
456 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
457 std::ostringstream msg;
458 msg << "Couldn't setup squirrel instance for object of type 'Text'";
459 throw SquirrelError(v, msg.str());
462 if(setup_releasehook) {
463 sq_setreleasehook(v, -1, Text_release_hook);
466 static int Text_set_text_wrapper(HSQUIRRELVM v)
468 Scripting::Text* _this;
469 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
471 sq_getstring(v, 2, &arg0);
473 _this->set_text(arg0);
478 static int Text_set_font_wrapper(HSQUIRRELVM v)
480 Scripting::Text* _this;
481 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
483 sq_getstring(v, 2, &arg0);
485 _this->set_font(arg0);
490 static int Text_fade_in_wrapper(HSQUIRRELVM v)
492 Scripting::Text* _this;
493 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
495 sq_getfloat(v, 2, &arg0);
497 _this->fade_in(arg0);
502 static int Text_fade_out_wrapper(HSQUIRRELVM v)
504 Scripting::Text* _this;
505 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
507 sq_getfloat(v, 2, &arg0);
509 _this->fade_out(arg0);
514 static int Text_set_visible_wrapper(HSQUIRRELVM v)
516 Scripting::Text* _this;
517 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
519 sq_getbool(v, 2, &arg0);
521 _this->set_visible(arg0);
526 static int Player_release_hook(SQUserPointer ptr, int )
528 Player* _this = reinterpret_cast<Player*> (ptr);
533 void create_squirrel_instance(HSQUIRRELVM v, Player* object, bool setup_releasehook)
535 sq_pushstring(v, "Player", -1);
536 if(sq_get(v, -2) < 0) {
537 std::ostringstream msg;
538 msg << "Couldn't resolved squirrel type 'Player'";
539 throw SquirrelError(v, msg.str());
542 if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object) < 0) {
543 std::ostringstream msg;
544 msg << "Couldn't setup squirrel instance for object of type 'Player'";
545 throw SquirrelError(v, msg.str());
548 if(setup_releasehook) {
549 sq_setreleasehook(v, -1, Player_release_hook);
552 static int Player_set_bonus_wrapper(HSQUIRRELVM v)
554 Scripting::Player* _this;
555 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
557 sq_getstring(v, 2, &arg0);
559 _this->set_bonus(arg0);
564 static int Player_make_invincible_wrapper(HSQUIRRELVM v)
566 Scripting::Player* _this;
567 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
569 _this->make_invincible();
574 static int Player_add_life_wrapper(HSQUIRRELVM v)
576 Scripting::Player* _this;
577 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
584 static int Player_add_coins_wrapper(HSQUIRRELVM v)
586 Scripting::Player* _this;
587 sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
589 sq_getinteger(v, 2, &arg0);
591 _this->add_coins(arg0);
596 static int display_text_file_wrapper(HSQUIRRELVM v)
599 sq_getstring(v, 2, &arg0);
601 Scripting::display_text_file(arg0);
606 static int wait_wrapper(HSQUIRRELVM v)
609 sq_getfloat(v, 2, &arg0);
611 Scripting::wait(arg0);
613 return sq_suspendvm(v);
616 static int translate_wrapper(HSQUIRRELVM v)
619 sq_getstring(v, 2, &arg0);
621 std::string return_value = Scripting::translate(arg0);
623 sq_pushstring(v, return_value.c_str(), return_value.size());
627 static int import_wrapper(HSQUIRRELVM v)
629 HSQUIRRELVM arg0 = v;
631 sq_getstring(v, 2, &arg1);
633 Scripting::import(arg0, arg1);
638 void register_supertux_wrapper(HSQUIRRELVM v)
641 sq_pushstring(v, "display_text_file", -1);
642 sq_newclosure(v, &display_text_file_wrapper, 0);
643 if(sq_createslot(v, -3) < 0) {
644 std::ostringstream msg;
645 msg << "Couldn't register function'display_text_file'";
646 throw SquirrelError(v, msg.str());
649 sq_pushstring(v, "wait", -1);
650 sq_newclosure(v, &wait_wrapper, 0);
651 if(sq_createslot(v, -3) < 0) {
652 std::ostringstream msg;
653 msg << "Couldn't register function'wait'";
654 throw SquirrelError(v, msg.str());
657 sq_pushstring(v, "translate", -1);
658 sq_newclosure(v, &translate_wrapper, 0);
659 if(sq_createslot(v, -3) < 0) {
660 std::ostringstream msg;
661 msg << "Couldn't register function'translate'";
662 throw SquirrelError(v, msg.str());
665 sq_pushstring(v, "import", -1);
666 sq_newclosure(v, &import_wrapper, 0);
667 if(sq_createslot(v, -3) < 0) {
668 std::ostringstream msg;
669 msg << "Couldn't register function'import'";
670 throw SquirrelError(v, msg.str());
673 // Register class DisplayEffect
674 sq_pushstring(v, "DisplayEffect", -1);
675 if(sq_newclass(v, SQFalse) < 0) {
676 std::ostringstream msg;
677 msg << "Couldn't create new class 'DisplayEffect'";
678 throw SquirrelError(v, msg.str());
680 sq_pushstring(v, "fade_out", -1);
681 sq_newclosure(v, &DisplayEffect_fade_out_wrapper, 0);
682 if(sq_createslot(v, -3) < 0) {
683 std::ostringstream msg;
684 msg << "Couldn't register function'fade_out'";
685 throw SquirrelError(v, msg.str());
688 sq_pushstring(v, "fade_in", -1);
689 sq_newclosure(v, &DisplayEffect_fade_in_wrapper, 0);
690 if(sq_createslot(v, -3) < 0) {
691 std::ostringstream msg;
692 msg << "Couldn't register function'fade_in'";
693 throw SquirrelError(v, msg.str());
696 sq_pushstring(v, "set_black", -1);
697 sq_newclosure(v, &DisplayEffect_set_black_wrapper, 0);
698 if(sq_createslot(v, -3) < 0) {
699 std::ostringstream msg;
700 msg << "Couldn't register function'set_black'";
701 throw SquirrelError(v, msg.str());
704 sq_pushstring(v, "is_black", -1);
705 sq_newclosure(v, &DisplayEffect_is_black_wrapper, 0);
706 if(sq_createslot(v, -3) < 0) {
707 std::ostringstream msg;
708 msg << "Couldn't register function'is_black'";
709 throw SquirrelError(v, msg.str());
712 if(sq_createslot(v, -3) < 0) {
713 std::ostringstream msg;
714 msg << "Couldn't register class'DisplayEffect'";
715 throw SquirrelError(v, msg.str());
718 // Register class Camera
719 sq_pushstring(v, "Camera", -1);
720 if(sq_newclass(v, SQFalse) < 0) {
721 std::ostringstream msg;
722 msg << "Couldn't create new class 'Camera'";
723 throw SquirrelError(v, msg.str());
725 sq_pushstring(v, "shake", -1);
726 sq_newclosure(v, &Camera_shake_wrapper, 0);
727 if(sq_createslot(v, -3) < 0) {
728 std::ostringstream msg;
729 msg << "Couldn't register function'shake'";
730 throw SquirrelError(v, msg.str());
733 sq_pushstring(v, "set_pos", -1);
734 sq_newclosure(v, &Camera_set_pos_wrapper, 0);
735 if(sq_createslot(v, -3) < 0) {
736 std::ostringstream msg;
737 msg << "Couldn't register function'set_pos'";
738 throw SquirrelError(v, msg.str());
741 sq_pushstring(v, "set_mode", -1);
742 sq_newclosure(v, &Camera_set_mode_wrapper, 0);
743 if(sq_createslot(v, -3) < 0) {
744 std::ostringstream msg;
745 msg << "Couldn't register function'set_mode'";
746 throw SquirrelError(v, msg.str());
749 if(sq_createslot(v, -3) < 0) {
750 std::ostringstream msg;
751 msg << "Couldn't register class'Camera'";
752 throw SquirrelError(v, msg.str());
755 // Register class Level
756 sq_pushstring(v, "Level", -1);
757 if(sq_newclass(v, SQFalse) < 0) {
758 std::ostringstream msg;
759 msg << "Couldn't create new class 'Level'";
760 throw SquirrelError(v, msg.str());
762 sq_pushstring(v, "finish", -1);
763 sq_newclosure(v, &Level_finish_wrapper, 0);
764 if(sq_createslot(v, -3) < 0) {
765 std::ostringstream msg;
766 msg << "Couldn't register function'finish'";
767 throw SquirrelError(v, msg.str());
770 sq_pushstring(v, "spawn", -1);
771 sq_newclosure(v, &Level_spawn_wrapper, 0);
772 if(sq_createslot(v, -3) < 0) {
773 std::ostringstream msg;
774 msg << "Couldn't register function'spawn'";
775 throw SquirrelError(v, msg.str());
778 sq_pushstring(v, "flip_vertically", -1);
779 sq_newclosure(v, &Level_flip_vertically_wrapper, 0);
780 if(sq_createslot(v, -3) < 0) {
781 std::ostringstream msg;
782 msg << "Couldn't register function'flip_vertically'";
783 throw SquirrelError(v, msg.str());
786 if(sq_createslot(v, -3) < 0) {
787 std::ostringstream msg;
788 msg << "Couldn't register class'Level'";
789 throw SquirrelError(v, msg.str());
792 // Register class ScriptedObject
793 sq_pushstring(v, "ScriptedObject", -1);
794 if(sq_newclass(v, SQFalse) < 0) {
795 std::ostringstream msg;
796 msg << "Couldn't create new class 'ScriptedObject'";
797 throw SquirrelError(v, msg.str());
799 sq_pushstring(v, "set_animation", -1);
800 sq_newclosure(v, &ScriptedObject_set_animation_wrapper, 0);
801 if(sq_createslot(v, -3) < 0) {
802 std::ostringstream msg;
803 msg << "Couldn't register function'set_animation'";
804 throw SquirrelError(v, msg.str());
807 sq_pushstring(v, "get_animation", -1);
808 sq_newclosure(v, &ScriptedObject_get_animation_wrapper, 0);
809 if(sq_createslot(v, -3) < 0) {
810 std::ostringstream msg;
811 msg << "Couldn't register function'get_animation'";
812 throw SquirrelError(v, msg.str());
815 sq_pushstring(v, "move", -1);
816 sq_newclosure(v, &ScriptedObject_move_wrapper, 0);
817 if(sq_createslot(v, -3) < 0) {
818 std::ostringstream msg;
819 msg << "Couldn't register function'move'";
820 throw SquirrelError(v, msg.str());
823 sq_pushstring(v, "set_pos", -1);
824 sq_newclosure(v, &ScriptedObject_set_pos_wrapper, 0);
825 if(sq_createslot(v, -3) < 0) {
826 std::ostringstream msg;
827 msg << "Couldn't register function'set_pos'";
828 throw SquirrelError(v, msg.str());
831 sq_pushstring(v, "get_pos_x", -1);
832 sq_newclosure(v, &ScriptedObject_get_pos_x_wrapper, 0);
833 if(sq_createslot(v, -3) < 0) {
834 std::ostringstream msg;
835 msg << "Couldn't register function'get_pos_x'";
836 throw SquirrelError(v, msg.str());
839 sq_pushstring(v, "get_pos_y", -1);
840 sq_newclosure(v, &ScriptedObject_get_pos_y_wrapper, 0);
841 if(sq_createslot(v, -3) < 0) {
842 std::ostringstream msg;
843 msg << "Couldn't register function'get_pos_y'";
844 throw SquirrelError(v, msg.str());
847 sq_pushstring(v, "set_velocity", -1);
848 sq_newclosure(v, &ScriptedObject_set_velocity_wrapper, 0);
849 if(sq_createslot(v, -3) < 0) {
850 std::ostringstream msg;
851 msg << "Couldn't register function'set_velocity'";
852 throw SquirrelError(v, msg.str());
855 sq_pushstring(v, "get_velocity_x", -1);
856 sq_newclosure(v, &ScriptedObject_get_velocity_x_wrapper, 0);
857 if(sq_createslot(v, -3) < 0) {
858 std::ostringstream msg;
859 msg << "Couldn't register function'get_velocity_x'";
860 throw SquirrelError(v, msg.str());
863 sq_pushstring(v, "get_velocity_y", -1);
864 sq_newclosure(v, &ScriptedObject_get_velocity_y_wrapper, 0);
865 if(sq_createslot(v, -3) < 0) {
866 std::ostringstream msg;
867 msg << "Couldn't register function'get_velocity_y'";
868 throw SquirrelError(v, msg.str());
871 sq_pushstring(v, "set_visible", -1);
872 sq_newclosure(v, &ScriptedObject_set_visible_wrapper, 0);
873 if(sq_createslot(v, -3) < 0) {
874 std::ostringstream msg;
875 msg << "Couldn't register function'set_visible'";
876 throw SquirrelError(v, msg.str());
879 sq_pushstring(v, "is_visible", -1);
880 sq_newclosure(v, &ScriptedObject_is_visible_wrapper, 0);
881 if(sq_createslot(v, -3) < 0) {
882 std::ostringstream msg;
883 msg << "Couldn't register function'is_visible'";
884 throw SquirrelError(v, msg.str());
887 sq_pushstring(v, "get_name", -1);
888 sq_newclosure(v, &ScriptedObject_get_name_wrapper, 0);
889 if(sq_createslot(v, -3) < 0) {
890 std::ostringstream msg;
891 msg << "Couldn't register function'get_name'";
892 throw SquirrelError(v, msg.str());
895 if(sq_createslot(v, -3) < 0) {
896 std::ostringstream msg;
897 msg << "Couldn't register class'ScriptedObject'";
898 throw SquirrelError(v, msg.str());
901 // Register class Sound
902 sq_pushstring(v, "Sound", -1);
903 if(sq_newclass(v, SQFalse) < 0) {
904 std::ostringstream msg;
905 msg << "Couldn't create new class 'Sound'";
906 throw SquirrelError(v, msg.str());
908 sq_pushstring(v, "play_music", -1);
909 sq_newclosure(v, &Sound_play_music_wrapper, 0);
910 if(sq_createslot(v, -3) < 0) {
911 std::ostringstream msg;
912 msg << "Couldn't register function'play_music'";
913 throw SquirrelError(v, msg.str());
916 sq_pushstring(v, "play", -1);
917 sq_newclosure(v, &Sound_play_wrapper, 0);
918 if(sq_createslot(v, -3) < 0) {
919 std::ostringstream msg;
920 msg << "Couldn't register function'play'";
921 throw SquirrelError(v, msg.str());
924 if(sq_createslot(v, -3) < 0) {
925 std::ostringstream msg;
926 msg << "Couldn't register class'Sound'";
927 throw SquirrelError(v, msg.str());
930 // Register class Text
931 sq_pushstring(v, "Text", -1);
932 if(sq_newclass(v, SQFalse) < 0) {
933 std::ostringstream msg;
934 msg << "Couldn't create new class 'Text'";
935 throw SquirrelError(v, msg.str());
937 sq_pushstring(v, "set_text", -1);
938 sq_newclosure(v, &Text_set_text_wrapper, 0);
939 if(sq_createslot(v, -3) < 0) {
940 std::ostringstream msg;
941 msg << "Couldn't register function'set_text'";
942 throw SquirrelError(v, msg.str());
945 sq_pushstring(v, "set_font", -1);
946 sq_newclosure(v, &Text_set_font_wrapper, 0);
947 if(sq_createslot(v, -3) < 0) {
948 std::ostringstream msg;
949 msg << "Couldn't register function'set_font'";
950 throw SquirrelError(v, msg.str());
953 sq_pushstring(v, "fade_in", -1);
954 sq_newclosure(v, &Text_fade_in_wrapper, 0);
955 if(sq_createslot(v, -3) < 0) {
956 std::ostringstream msg;
957 msg << "Couldn't register function'fade_in'";
958 throw SquirrelError(v, msg.str());
961 sq_pushstring(v, "fade_out", -1);
962 sq_newclosure(v, &Text_fade_out_wrapper, 0);
963 if(sq_createslot(v, -3) < 0) {
964 std::ostringstream msg;
965 msg << "Couldn't register function'fade_out'";
966 throw SquirrelError(v, msg.str());
969 sq_pushstring(v, "set_visible", -1);
970 sq_newclosure(v, &Text_set_visible_wrapper, 0);
971 if(sq_createslot(v, -3) < 0) {
972 std::ostringstream msg;
973 msg << "Couldn't register function'set_visible'";
974 throw SquirrelError(v, msg.str());
977 if(sq_createslot(v, -3) < 0) {
978 std::ostringstream msg;
979 msg << "Couldn't register class'Text'";
980 throw SquirrelError(v, msg.str());
983 // Register class Player
984 sq_pushstring(v, "Player", -1);
985 if(sq_newclass(v, SQFalse) < 0) {
986 std::ostringstream msg;
987 msg << "Couldn't create new class 'Player'";
988 throw SquirrelError(v, msg.str());
990 sq_pushstring(v, "set_bonus", -1);
991 sq_newclosure(v, &Player_set_bonus_wrapper, 0);
992 if(sq_createslot(v, -3) < 0) {
993 std::ostringstream msg;
994 msg << "Couldn't register function'set_bonus'";
995 throw SquirrelError(v, msg.str());
998 sq_pushstring(v, "make_invincible", -1);
999 sq_newclosure(v, &Player_make_invincible_wrapper, 0);
1000 if(sq_createslot(v, -3) < 0) {
1001 std::ostringstream msg;
1002 msg << "Couldn't register function'make_invincible'";
1003 throw SquirrelError(v, msg.str());
1006 sq_pushstring(v, "add_life", -1);
1007 sq_newclosure(v, &Player_add_life_wrapper, 0);
1008 if(sq_createslot(v, -3) < 0) {
1009 std::ostringstream msg;
1010 msg << "Couldn't register function'add_life'";
1011 throw SquirrelError(v, msg.str());
1014 sq_pushstring(v, "add_coins", -1);
1015 sq_newclosure(v, &Player_add_coins_wrapper, 0);
1016 if(sq_createslot(v, -3) < 0) {
1017 std::ostringstream msg;
1018 msg << "Couldn't register function'add_coins'";
1019 throw SquirrelError(v, msg.str());
1022 if(sq_createslot(v, -3) < 0) {
1023 std::ostringstream msg;
1024 msg << "Couldn't register class'Player'";
1025 throw SquirrelError(v, msg.str());