2 * WARNING: This file is automatically generated from:
3 * 'src/scripting/wrapper.interface.hpp'
13 #include "squirrel_error.hpp"
14 #include "wrapper.interface.hpp"
21 static int DisplayEffect_release_hook(SQUserPointer ptr, int )
23 Scripting::DisplayEffect* _this = reinterpret_cast<Scripting::DisplayEffect*> (ptr);
28 static int DisplayEffect_fade_out_wrapper(HSQUIRRELVM vm)
30 Scripting::DisplayEffect* _this;
31 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
32 sq_throwerror(vm, _SC("'fade_out' called without instance"));
36 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
37 sq_throwerror(vm, _SC("Argument 1 not a float"));
42 _this->fade_out(arg0);
46 } catch(std::exception& e) {
47 sq_throwerror(vm, e.what());
50 sq_throwerror(vm, _SC("Unexpected exception while executing function 'fade_out'"));
56 static int DisplayEffect_fade_in_wrapper(HSQUIRRELVM vm)
58 Scripting::DisplayEffect* _this;
59 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
60 sq_throwerror(vm, _SC("'fade_in' called without instance"));
64 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
65 sq_throwerror(vm, _SC("Argument 1 not a float"));
74 } catch(std::exception& e) {
75 sq_throwerror(vm, e.what());
78 sq_throwerror(vm, _SC("Unexpected exception while executing function 'fade_in'"));
84 static int DisplayEffect_set_black_wrapper(HSQUIRRELVM vm)
86 Scripting::DisplayEffect* _this;
87 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
88 sq_throwerror(vm, _SC("'set_black' called without instance"));
92 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
93 sq_throwerror(vm, _SC("Argument 1 not a bool"));
98 _this->set_black(arg0);
102 } catch(std::exception& e) {
103 sq_throwerror(vm, e.what());
106 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_black'"));
112 static int DisplayEffect_is_black_wrapper(HSQUIRRELVM vm)
114 Scripting::DisplayEffect* _this;
115 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
116 sq_throwerror(vm, _SC("'is_black' called without instance"));
121 bool return_value = _this->is_black();
123 sq_pushbool(vm, return_value);
126 } catch(std::exception& e) {
127 sq_throwerror(vm, e.what());
130 sq_throwerror(vm, _SC("Unexpected exception while executing function 'is_black'"));
136 static int DisplayEffect_sixteen_to_nine_wrapper(HSQUIRRELVM vm)
138 Scripting::DisplayEffect* _this;
139 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
140 sq_throwerror(vm, _SC("'sixteen_to_nine' called without instance"));
144 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
145 sq_throwerror(vm, _SC("Argument 1 not a float"));
150 _this->sixteen_to_nine(arg0);
154 } catch(std::exception& e) {
155 sq_throwerror(vm, e.what());
158 sq_throwerror(vm, _SC("Unexpected exception while executing function 'sixteen_to_nine'"));
164 static int DisplayEffect_four_to_three_wrapper(HSQUIRRELVM vm)
166 Scripting::DisplayEffect* _this;
167 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
168 sq_throwerror(vm, _SC("'four_to_three' called without instance"));
172 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
173 sq_throwerror(vm, _SC("Argument 1 not a float"));
178 _this->four_to_three(arg0);
182 } catch(std::exception& e) {
183 sq_throwerror(vm, e.what());
186 sq_throwerror(vm, _SC("Unexpected exception while executing function 'four_to_three'"));
192 static int Camera_release_hook(SQUserPointer ptr, int )
194 Scripting::Camera* _this = reinterpret_cast<Scripting::Camera*> (ptr);
199 static int Camera_shake_wrapper(HSQUIRRELVM vm)
201 Scripting::Camera* _this;
202 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
203 sq_throwerror(vm, _SC("'shake' called without instance"));
207 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
208 sq_throwerror(vm, _SC("Argument 1 not a float"));
212 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
213 sq_throwerror(vm, _SC("Argument 2 not a float"));
217 if(SQ_FAILED(sq_getfloat(vm, 4, &arg2))) {
218 sq_throwerror(vm, _SC("Argument 3 not a float"));
223 _this->shake(arg0, arg1, arg2);
227 } catch(std::exception& e) {
228 sq_throwerror(vm, e.what());
231 sq_throwerror(vm, _SC("Unexpected exception while executing function 'shake'"));
237 static int Camera_set_pos_wrapper(HSQUIRRELVM vm)
239 Scripting::Camera* _this;
240 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
241 sq_throwerror(vm, _SC("'set_pos' called without instance"));
245 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
246 sq_throwerror(vm, _SC("Argument 1 not a float"));
250 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
251 sq_throwerror(vm, _SC("Argument 2 not a float"));
256 _this->set_pos(arg0, arg1);
260 } catch(std::exception& e) {
261 sq_throwerror(vm, e.what());
264 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_pos'"));
270 static int Camera_set_mode_wrapper(HSQUIRRELVM vm)
272 Scripting::Camera* _this;
273 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
274 sq_throwerror(vm, _SC("'set_mode' called without instance"));
278 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
279 sq_throwerror(vm, _SC("Argument 1 not a string"));
284 _this->set_mode(arg0);
288 } catch(std::exception& e) {
289 sq_throwerror(vm, e.what());
292 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_mode'"));
298 static int Camera_scroll_to_wrapper(HSQUIRRELVM vm)
300 Scripting::Camera* _this;
301 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
302 sq_throwerror(vm, _SC("'scroll_to' called without instance"));
306 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
307 sq_throwerror(vm, _SC("Argument 1 not a float"));
311 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
312 sq_throwerror(vm, _SC("Argument 2 not a float"));
316 if(SQ_FAILED(sq_getfloat(vm, 4, &arg2))) {
317 sq_throwerror(vm, _SC("Argument 3 not a float"));
322 _this->scroll_to(arg0, arg1, arg2);
326 } catch(std::exception& e) {
327 sq_throwerror(vm, e.what());
330 sq_throwerror(vm, _SC("Unexpected exception while executing function 'scroll_to'"));
336 static int Level_release_hook(SQUserPointer ptr, int )
338 Scripting::Level* _this = reinterpret_cast<Scripting::Level*> (ptr);
343 static int Level_finish_wrapper(HSQUIRRELVM vm)
345 Scripting::Level* _this;
346 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
347 sq_throwerror(vm, _SC("'finish' called without instance"));
351 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
352 sq_throwerror(vm, _SC("Argument 1 not a bool"));
361 } catch(std::exception& e) {
362 sq_throwerror(vm, e.what());
365 sq_throwerror(vm, _SC("Unexpected exception while executing function 'finish'"));
371 static int Level_spawn_wrapper(HSQUIRRELVM vm)
373 Scripting::Level* _this;
374 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
375 sq_throwerror(vm, _SC("'spawn' called without instance"));
379 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
380 sq_throwerror(vm, _SC("Argument 1 not a string"));
384 if(SQ_FAILED(sq_getstring(vm, 3, &arg1))) {
385 sq_throwerror(vm, _SC("Argument 2 not a string"));
390 _this->spawn(arg0, arg1);
394 } catch(std::exception& e) {
395 sq_throwerror(vm, e.what());
398 sq_throwerror(vm, _SC("Unexpected exception while executing function 'spawn'"));
404 static int Level_flip_vertically_wrapper(HSQUIRRELVM vm)
406 Scripting::Level* _this;
407 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
408 sq_throwerror(vm, _SC("'flip_vertically' called without instance"));
413 _this->flip_vertically();
417 } catch(std::exception& e) {
418 sq_throwerror(vm, e.what());
421 sq_throwerror(vm, _SC("Unexpected exception while executing function 'flip_vertically'"));
427 static int ScriptedObject_release_hook(SQUserPointer ptr, int )
429 Scripting::ScriptedObject* _this = reinterpret_cast<Scripting::ScriptedObject*> (ptr);
434 static int ScriptedObject_set_action_wrapper(HSQUIRRELVM vm)
436 Scripting::ScriptedObject* _this;
437 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
438 sq_throwerror(vm, _SC("'set_action' called without instance"));
442 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
443 sq_throwerror(vm, _SC("Argument 1 not a string"));
448 _this->set_action(arg0);
452 } catch(std::exception& e) {
453 sq_throwerror(vm, e.what());
456 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_action'"));
462 static int ScriptedObject_get_action_wrapper(HSQUIRRELVM vm)
464 Scripting::ScriptedObject* _this;
465 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
466 sq_throwerror(vm, _SC("'get_action' called without instance"));
471 std::string return_value = _this->get_action();
473 sq_pushstring(vm, return_value.c_str(), return_value.size());
476 } catch(std::exception& e) {
477 sq_throwerror(vm, e.what());
480 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_action'"));
486 static int ScriptedObject_move_wrapper(HSQUIRRELVM vm)
488 Scripting::ScriptedObject* _this;
489 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
490 sq_throwerror(vm, _SC("'move' called without instance"));
494 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
495 sq_throwerror(vm, _SC("Argument 1 not a float"));
499 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
500 sq_throwerror(vm, _SC("Argument 2 not a float"));
505 _this->move(arg0, arg1);
509 } catch(std::exception& e) {
510 sq_throwerror(vm, e.what());
513 sq_throwerror(vm, _SC("Unexpected exception while executing function 'move'"));
519 static int ScriptedObject_set_pos_wrapper(HSQUIRRELVM vm)
521 Scripting::ScriptedObject* _this;
522 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
523 sq_throwerror(vm, _SC("'set_pos' called without instance"));
527 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
528 sq_throwerror(vm, _SC("Argument 1 not a float"));
532 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
533 sq_throwerror(vm, _SC("Argument 2 not a float"));
538 _this->set_pos(arg0, arg1);
542 } catch(std::exception& e) {
543 sq_throwerror(vm, e.what());
546 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_pos'"));
552 static int ScriptedObject_get_pos_x_wrapper(HSQUIRRELVM vm)
554 Scripting::ScriptedObject* _this;
555 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
556 sq_throwerror(vm, _SC("'get_pos_x' called without instance"));
561 float return_value = _this->get_pos_x();
563 sq_pushfloat(vm, return_value);
566 } catch(std::exception& e) {
567 sq_throwerror(vm, e.what());
570 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_pos_x'"));
576 static int ScriptedObject_get_pos_y_wrapper(HSQUIRRELVM vm)
578 Scripting::ScriptedObject* _this;
579 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
580 sq_throwerror(vm, _SC("'get_pos_y' called without instance"));
585 float return_value = _this->get_pos_y();
587 sq_pushfloat(vm, return_value);
590 } catch(std::exception& e) {
591 sq_throwerror(vm, e.what());
594 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_pos_y'"));
600 static int ScriptedObject_set_velocity_wrapper(HSQUIRRELVM vm)
602 Scripting::ScriptedObject* _this;
603 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
604 sq_throwerror(vm, _SC("'set_velocity' called without instance"));
608 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
609 sq_throwerror(vm, _SC("Argument 1 not a float"));
613 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
614 sq_throwerror(vm, _SC("Argument 2 not a float"));
619 _this->set_velocity(arg0, arg1);
623 } catch(std::exception& e) {
624 sq_throwerror(vm, e.what());
627 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_velocity'"));
633 static int ScriptedObject_get_velocity_x_wrapper(HSQUIRRELVM vm)
635 Scripting::ScriptedObject* _this;
636 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
637 sq_throwerror(vm, _SC("'get_velocity_x' called without instance"));
642 float return_value = _this->get_velocity_x();
644 sq_pushfloat(vm, return_value);
647 } catch(std::exception& e) {
648 sq_throwerror(vm, e.what());
651 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_velocity_x'"));
657 static int ScriptedObject_get_velocity_y_wrapper(HSQUIRRELVM vm)
659 Scripting::ScriptedObject* _this;
660 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
661 sq_throwerror(vm, _SC("'get_velocity_y' called without instance"));
666 float return_value = _this->get_velocity_y();
668 sq_pushfloat(vm, return_value);
671 } catch(std::exception& e) {
672 sq_throwerror(vm, e.what());
675 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_velocity_y'"));
681 static int ScriptedObject_set_visible_wrapper(HSQUIRRELVM vm)
683 Scripting::ScriptedObject* _this;
684 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
685 sq_throwerror(vm, _SC("'set_visible' called without instance"));
689 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
690 sq_throwerror(vm, _SC("Argument 1 not a bool"));
695 _this->set_visible(arg0);
699 } catch(std::exception& e) {
700 sq_throwerror(vm, e.what());
703 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_visible'"));
709 static int ScriptedObject_is_visible_wrapper(HSQUIRRELVM vm)
711 Scripting::ScriptedObject* _this;
712 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
713 sq_throwerror(vm, _SC("'is_visible' called without instance"));
718 bool return_value = _this->is_visible();
720 sq_pushbool(vm, return_value);
723 } catch(std::exception& e) {
724 sq_throwerror(vm, e.what());
727 sq_throwerror(vm, _SC("Unexpected exception while executing function 'is_visible'"));
733 static int ScriptedObject_get_name_wrapper(HSQUIRRELVM vm)
735 Scripting::ScriptedObject* _this;
736 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
737 sq_throwerror(vm, _SC("'get_name' called without instance"));
742 std::string return_value = _this->get_name();
744 sq_pushstring(vm, return_value.c_str(), return_value.size());
747 } catch(std::exception& e) {
748 sq_throwerror(vm, e.what());
751 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_name'"));
757 static int Sound_release_hook(SQUserPointer ptr, int )
759 Scripting::Sound* _this = reinterpret_cast<Scripting::Sound*> (ptr);
764 static int Sound_play_music_wrapper(HSQUIRRELVM vm)
766 Scripting::Sound* _this;
767 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
768 sq_throwerror(vm, _SC("'play_music' called without instance"));
772 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
773 sq_throwerror(vm, _SC("Argument 1 not a string"));
778 _this->play_music(arg0);
782 } catch(std::exception& e) {
783 sq_throwerror(vm, e.what());
786 sq_throwerror(vm, _SC("Unexpected exception while executing function 'play_music'"));
792 static int Sound_play_wrapper(HSQUIRRELVM vm)
794 Scripting::Sound* _this;
795 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
796 sq_throwerror(vm, _SC("'play' called without instance"));
800 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
801 sq_throwerror(vm, _SC("Argument 1 not a string"));
810 } catch(std::exception& e) {
811 sq_throwerror(vm, e.what());
814 sq_throwerror(vm, _SC("Unexpected exception while executing function 'play'"));
820 static int Text_release_hook(SQUserPointer ptr, int )
822 Scripting::Text* _this = reinterpret_cast<Scripting::Text*> (ptr);
827 static int Text_set_text_wrapper(HSQUIRRELVM vm)
829 Scripting::Text* _this;
830 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
831 sq_throwerror(vm, _SC("'set_text' called without instance"));
835 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
836 sq_throwerror(vm, _SC("Argument 1 not a string"));
841 _this->set_text(arg0);
845 } catch(std::exception& e) {
846 sq_throwerror(vm, e.what());
849 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_text'"));
855 static int Text_set_font_wrapper(HSQUIRRELVM vm)
857 Scripting::Text* _this;
858 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
859 sq_throwerror(vm, _SC("'set_font' called without instance"));
863 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
864 sq_throwerror(vm, _SC("Argument 1 not a string"));
869 _this->set_font(arg0);
873 } catch(std::exception& e) {
874 sq_throwerror(vm, e.what());
877 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_font'"));
883 static int Text_fade_in_wrapper(HSQUIRRELVM vm)
885 Scripting::Text* _this;
886 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
887 sq_throwerror(vm, _SC("'fade_in' called without instance"));
891 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
892 sq_throwerror(vm, _SC("Argument 1 not a float"));
897 _this->fade_in(arg0);
901 } catch(std::exception& e) {
902 sq_throwerror(vm, e.what());
905 sq_throwerror(vm, _SC("Unexpected exception while executing function 'fade_in'"));
911 static int Text_fade_out_wrapper(HSQUIRRELVM vm)
913 Scripting::Text* _this;
914 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
915 sq_throwerror(vm, _SC("'fade_out' called without instance"));
919 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
920 sq_throwerror(vm, _SC("Argument 1 not a float"));
925 _this->fade_out(arg0);
929 } catch(std::exception& e) {
930 sq_throwerror(vm, e.what());
933 sq_throwerror(vm, _SC("Unexpected exception while executing function 'fade_out'"));
939 static int Text_set_visible_wrapper(HSQUIRRELVM vm)
941 Scripting::Text* _this;
942 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
943 sq_throwerror(vm, _SC("'set_visible' called without instance"));
947 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
948 sq_throwerror(vm, _SC("Argument 1 not a bool"));
953 _this->set_visible(arg0);
957 } catch(std::exception& e) {
958 sq_throwerror(vm, e.what());
961 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_visible'"));
967 static int Text_set_centered_wrapper(HSQUIRRELVM vm)
969 Scripting::Text* _this;
970 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
971 sq_throwerror(vm, _SC("'set_centered' called without instance"));
975 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
976 sq_throwerror(vm, _SC("Argument 1 not a bool"));
981 _this->set_centered(arg0);
985 } catch(std::exception& e) {
986 sq_throwerror(vm, e.what());
989 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_centered'"));
995 static int Player_release_hook(SQUserPointer ptr, int )
997 Scripting::Player* _this = reinterpret_cast<Scripting::Player*> (ptr);
1002 static int Player_add_bonus_wrapper(HSQUIRRELVM vm)
1004 Scripting::Player* _this;
1005 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1006 sq_throwerror(vm, _SC("'add_bonus' called without instance"));
1010 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
1011 sq_throwerror(vm, _SC("Argument 1 not a string"));
1016 _this->add_bonus(arg0);
1020 } catch(std::exception& e) {
1021 sq_throwerror(vm, e.what());
1024 sq_throwerror(vm, _SC("Unexpected exception while executing function 'add_bonus'"));
1030 static int Player_add_coins_wrapper(HSQUIRRELVM vm)
1032 Scripting::Player* _this;
1033 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1034 sq_throwerror(vm, _SC("'add_coins' called without instance"));
1038 if(SQ_FAILED(sq_getinteger(vm, 2, &arg0))) {
1039 sq_throwerror(vm, _SC("Argument 1 not an integer"));
1044 _this->add_coins(arg0);
1048 } catch(std::exception& e) {
1049 sq_throwerror(vm, e.what());
1052 sq_throwerror(vm, _SC("Unexpected exception while executing function 'add_coins'"));
1058 static int Player_make_invincible_wrapper(HSQUIRRELVM vm)
1060 Scripting::Player* _this;
1061 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1062 sq_throwerror(vm, _SC("'make_invincible' called without instance"));
1067 _this->make_invincible();
1071 } catch(std::exception& e) {
1072 sq_throwerror(vm, e.what());
1075 sq_throwerror(vm, _SC("Unexpected exception while executing function 'make_invincible'"));
1081 static int Player_deactivate_wrapper(HSQUIRRELVM vm)
1083 Scripting::Player* _this;
1084 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1085 sq_throwerror(vm, _SC("'deactivate' called without instance"));
1090 _this->deactivate();
1094 } catch(std::exception& e) {
1095 sq_throwerror(vm, e.what());
1098 sq_throwerror(vm, _SC("Unexpected exception while executing function 'deactivate'"));
1104 static int Player_activate_wrapper(HSQUIRRELVM vm)
1106 Scripting::Player* _this;
1107 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1108 sq_throwerror(vm, _SC("'activate' called without instance"));
1117 } catch(std::exception& e) {
1118 sq_throwerror(vm, e.what());
1121 sq_throwerror(vm, _SC("Unexpected exception while executing function 'activate'"));
1127 static int Player_walk_wrapper(HSQUIRRELVM vm)
1129 Scripting::Player* _this;
1130 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1131 sq_throwerror(vm, _SC("'walk' called without instance"));
1135 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
1136 sq_throwerror(vm, _SC("Argument 1 not a float"));
1145 } catch(std::exception& e) {
1146 sq_throwerror(vm, e.what());
1149 sq_throwerror(vm, _SC("Unexpected exception while executing function 'walk'"));
1155 static int Player_set_visible_wrapper(HSQUIRRELVM vm)
1157 Scripting::Player* _this;
1158 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1159 sq_throwerror(vm, _SC("'set_visible' called without instance"));
1163 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
1164 sq_throwerror(vm, _SC("Argument 1 not a bool"));
1169 _this->set_visible(arg0);
1173 } catch(std::exception& e) {
1174 sq_throwerror(vm, e.what());
1177 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_visible'"));
1183 static int Player_get_visible_wrapper(HSQUIRRELVM vm)
1185 Scripting::Player* _this;
1186 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1187 sq_throwerror(vm, _SC("'get_visible' called without instance"));
1192 bool return_value = _this->get_visible();
1194 sq_pushbool(vm, return_value);
1197 } catch(std::exception& e) {
1198 sq_throwerror(vm, e.what());
1201 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_visible'"));
1207 static int FloatingImage_release_hook(SQUserPointer ptr, int )
1209 Scripting::FloatingImage* _this = reinterpret_cast<Scripting::FloatingImage*> (ptr);
1214 static int FloatingImage_constructor_wrapper(HSQUIRRELVM vm)
1217 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
1218 sq_throwerror(vm, _SC("Argument 1 not a string"));
1223 Scripting::FloatingImage* _this = new Scripting::FloatingImage(arg0);
1224 if(SQ_FAILED(sq_setinstanceup(vm, 1, _this))) {
1225 sq_throwerror(vm, _SC("Couldn't setup instance of 'FloatingImage' class"));
1228 sq_setreleasehook(vm, 1, FloatingImage_release_hook);
1232 } catch(std::exception& e) {
1233 sq_throwerror(vm, e.what());
1236 sq_throwerror(vm, _SC("Unexpected exception while executing function 'constructor'"));
1242 static int FloatingImage_set_layer_wrapper(HSQUIRRELVM vm)
1244 Scripting::FloatingImage* _this;
1245 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1246 sq_throwerror(vm, _SC("'set_layer' called without instance"));
1250 if(SQ_FAILED(sq_getinteger(vm, 2, &arg0))) {
1251 sq_throwerror(vm, _SC("Argument 1 not an integer"));
1256 _this->set_layer(arg0);
1260 } catch(std::exception& e) {
1261 sq_throwerror(vm, e.what());
1264 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_layer'"));
1270 static int FloatingImage_get_layer_wrapper(HSQUIRRELVM vm)
1272 Scripting::FloatingImage* _this;
1273 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1274 sq_throwerror(vm, _SC("'get_layer' called without instance"));
1279 int return_value = _this->get_layer();
1281 sq_pushinteger(vm, return_value);
1284 } catch(std::exception& e) {
1285 sq_throwerror(vm, e.what());
1288 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_layer'"));
1294 static int FloatingImage_set_pos_wrapper(HSQUIRRELVM vm)
1296 Scripting::FloatingImage* _this;
1297 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1298 sq_throwerror(vm, _SC("'set_pos' called without instance"));
1302 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
1303 sq_throwerror(vm, _SC("Argument 1 not a float"));
1307 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
1308 sq_throwerror(vm, _SC("Argument 2 not a float"));
1313 _this->set_pos(arg0, arg1);
1317 } catch(std::exception& e) {
1318 sq_throwerror(vm, e.what());
1321 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_pos'"));
1327 static int FloatingImage_get_pos_x_wrapper(HSQUIRRELVM vm)
1329 Scripting::FloatingImage* _this;
1330 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1331 sq_throwerror(vm, _SC("'get_pos_x' called without instance"));
1336 float return_value = _this->get_pos_x();
1338 sq_pushfloat(vm, return_value);
1341 } catch(std::exception& e) {
1342 sq_throwerror(vm, e.what());
1345 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_pos_x'"));
1351 static int FloatingImage_get_pos_y_wrapper(HSQUIRRELVM vm)
1353 Scripting::FloatingImage* _this;
1354 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1355 sq_throwerror(vm, _SC("'get_pos_y' called without instance"));
1360 float return_value = _this->get_pos_y();
1362 sq_pushfloat(vm, return_value);
1365 } catch(std::exception& e) {
1366 sq_throwerror(vm, e.what());
1369 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_pos_y'"));
1375 static int FloatingImage_set_anchor_point_wrapper(HSQUIRRELVM vm)
1377 Scripting::FloatingImage* _this;
1378 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1379 sq_throwerror(vm, _SC("'set_anchor_point' called without instance"));
1383 if(SQ_FAILED(sq_getinteger(vm, 2, &arg0))) {
1384 sq_throwerror(vm, _SC("Argument 1 not an integer"));
1389 _this->set_anchor_point(arg0);
1393 } catch(std::exception& e) {
1394 sq_throwerror(vm, e.what());
1397 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_anchor_point'"));
1403 static int FloatingImage_get_anchor_point_wrapper(HSQUIRRELVM vm)
1405 Scripting::FloatingImage* _this;
1406 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1407 sq_throwerror(vm, _SC("'get_anchor_point' called without instance"));
1412 int return_value = _this->get_anchor_point();
1414 sq_pushinteger(vm, return_value);
1417 } catch(std::exception& e) {
1418 sq_throwerror(vm, e.what());
1421 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_anchor_point'"));
1427 static int FloatingImage_set_visible_wrapper(HSQUIRRELVM vm)
1429 Scripting::FloatingImage* _this;
1430 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1431 sq_throwerror(vm, _SC("'set_visible' called without instance"));
1435 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
1436 sq_throwerror(vm, _SC("Argument 1 not a bool"));
1441 _this->set_visible(arg0);
1445 } catch(std::exception& e) {
1446 sq_throwerror(vm, e.what());
1449 sq_throwerror(vm, _SC("Unexpected exception while executing function 'set_visible'"));
1455 static int FloatingImage_get_visible_wrapper(HSQUIRRELVM vm)
1457 Scripting::FloatingImage* _this;
1458 if(SQ_FAILED(sq_getinstanceup(vm, 1, reinterpret_cast<SQUserPointer*> (&_this), 0))) {
1459 sq_throwerror(vm, _SC("'get_visible' called without instance"));
1464 bool return_value = _this->get_visible();
1466 sq_pushbool(vm, return_value);
1469 } catch(std::exception& e) {
1470 sq_throwerror(vm, e.what());
1473 sq_throwerror(vm, _SC("Unexpected exception while executing function 'get_visible'"));
1479 static int display_wrapper(HSQUIRRELVM vm)
1481 return Scripting::display(vm);
1484 static int print_stacktrace_wrapper(HSQUIRRELVM vm)
1486 HSQUIRRELVM arg0 = vm;
1489 Scripting::print_stacktrace(arg0);
1493 } catch(std::exception& e) {
1494 sq_throwerror(vm, e.what());
1497 sq_throwerror(vm, _SC("Unexpected exception while executing function 'print_stacktrace'"));
1503 static int get_current_thread_wrapper(HSQUIRRELVM vm)
1505 return Scripting::get_current_thread(vm);
1508 static int display_text_file_wrapper(HSQUIRRELVM vm)
1511 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
1512 sq_throwerror(vm, _SC("Argument 1 not a string"));
1517 Scripting::display_text_file(arg0);
1521 } catch(std::exception& e) {
1522 sq_throwerror(vm, e.what());
1525 sq_throwerror(vm, _SC("Unexpected exception while executing function 'display_text_file'"));
1531 static int load_worldmap_wrapper(HSQUIRRELVM vm)
1534 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
1535 sq_throwerror(vm, _SC("Argument 1 not a string"));
1540 Scripting::load_worldmap(arg0);
1544 } catch(std::exception& e) {
1545 sq_throwerror(vm, e.what());
1548 sq_throwerror(vm, _SC("Unexpected exception while executing function 'load_worldmap'"));
1554 static int load_level_wrapper(HSQUIRRELVM vm)
1557 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
1558 sq_throwerror(vm, _SC("Argument 1 not a string"));
1563 Scripting::load_level(arg0);
1567 } catch(std::exception& e) {
1568 sq_throwerror(vm, e.what());
1571 sq_throwerror(vm, _SC("Unexpected exception while executing function 'load_level'"));
1577 static int wait_wrapper(HSQUIRRELVM vm)
1579 HSQUIRRELVM arg0 = vm;
1581 if(SQ_FAILED(sq_getfloat(vm, 2, &arg1))) {
1582 sq_throwerror(vm, _SC("Argument 1 not a float"));
1587 Scripting::wait(arg0, arg1);
1589 return sq_suspendvm(vm);
1591 } catch(std::exception& e) {
1592 sq_throwerror(vm, e.what());
1595 sq_throwerror(vm, _SC("Unexpected exception while executing function 'wait'"));
1601 static int wait_for_screenswitch_wrapper(HSQUIRRELVM vm)
1603 HSQUIRRELVM arg0 = vm;
1606 Scripting::wait_for_screenswitch(arg0);
1608 return sq_suspendvm(vm);
1610 } catch(std::exception& e) {
1611 sq_throwerror(vm, e.what());
1614 sq_throwerror(vm, _SC("Unexpected exception while executing function 'wait_for_screenswitch'"));
1620 static int exit_screen_wrapper(HSQUIRRELVM vm)
1625 Scripting::exit_screen();
1629 } catch(std::exception& e) {
1630 sq_throwerror(vm, e.what());
1633 sq_throwerror(vm, _SC("Unexpected exception while executing function 'exit_screen'"));
1639 static int fadeout_screen_wrapper(HSQUIRRELVM vm)
1642 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
1643 sq_throwerror(vm, _SC("Argument 1 not a float"));
1648 Scripting::fadeout_screen(arg0);
1652 } catch(std::exception& e) {
1653 sq_throwerror(vm, e.what());
1656 sq_throwerror(vm, _SC("Unexpected exception while executing function 'fadeout_screen'"));
1662 static int shrink_screen_wrapper(HSQUIRRELVM vm)
1665 if(SQ_FAILED(sq_getfloat(vm, 2, &arg0))) {
1666 sq_throwerror(vm, _SC("Argument 1 not a float"));
1670 if(SQ_FAILED(sq_getfloat(vm, 3, &arg1))) {
1671 sq_throwerror(vm, _SC("Argument 2 not a float"));
1675 if(SQ_FAILED(sq_getfloat(vm, 4, &arg2))) {
1676 sq_throwerror(vm, _SC("Argument 3 not a float"));
1681 Scripting::shrink_screen(arg0, arg1, arg2);
1685 } catch(std::exception& e) {
1686 sq_throwerror(vm, e.what());
1689 sq_throwerror(vm, _SC("Unexpected exception while executing function 'shrink_screen'"));
1695 static int translate_wrapper(HSQUIRRELVM vm)
1698 if(SQ_FAILED(sq_getstring(vm, 2, &arg0))) {
1699 sq_throwerror(vm, _SC("Argument 1 not a string"));
1704 std::string return_value = Scripting::translate(arg0);
1706 sq_pushstring(vm, return_value.c_str(), return_value.size());
1709 } catch(std::exception& e) {
1710 sq_throwerror(vm, e.what());
1713 sq_throwerror(vm, _SC("Unexpected exception while executing function 'translate'"));
1719 static int import_wrapper(HSQUIRRELVM vm)
1721 HSQUIRRELVM arg0 = vm;
1723 if(SQ_FAILED(sq_getstring(vm, 2, &arg1))) {
1724 sq_throwerror(vm, _SC("Argument 1 not a string"));
1729 Scripting::import(arg0, arg1);
1733 } catch(std::exception& e) {
1734 sq_throwerror(vm, e.what());
1737 sq_throwerror(vm, _SC("Unexpected exception while executing function 'import'"));
1743 static int save_state_wrapper(HSQUIRRELVM vm)
1748 Scripting::save_state();
1752 } catch(std::exception& e) {
1753 sq_throwerror(vm, e.what());
1756 sq_throwerror(vm, _SC("Unexpected exception while executing function 'save_state'"));
1762 static int add_key_wrapper(HSQUIRRELVM vm)
1765 if(SQ_FAILED(sq_getinteger(vm, 2, &arg0))) {
1766 sq_throwerror(vm, _SC("Argument 1 not an integer"));
1771 Scripting::add_key(arg0);
1775 } catch(std::exception& e) {
1776 sq_throwerror(vm, e.what());
1779 sq_throwerror(vm, _SC("Unexpected exception while executing function 'add_key'"));
1785 static int debug_collrects_wrapper(HSQUIRRELVM vm)
1788 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
1789 sq_throwerror(vm, _SC("Argument 1 not a bool"));
1794 Scripting::debug_collrects(arg0);
1798 } catch(std::exception& e) {
1799 sq_throwerror(vm, e.what());
1802 sq_throwerror(vm, _SC("Unexpected exception while executing function 'debug_collrects'"));
1808 static int debug_draw_fps_wrapper(HSQUIRRELVM vm)
1811 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
1812 sq_throwerror(vm, _SC("Argument 1 not a bool"));
1817 Scripting::debug_draw_fps(arg0);
1821 } catch(std::exception& e) {
1822 sq_throwerror(vm, e.what());
1825 sq_throwerror(vm, _SC("Unexpected exception while executing function 'debug_draw_fps'"));
1831 static int debug_draw_solids_only_wrapper(HSQUIRRELVM vm)
1834 if(SQ_FAILED(sq_getbool(vm, 2, &arg0))) {
1835 sq_throwerror(vm, _SC("Argument 1 not a bool"));
1840 Scripting::debug_draw_solids_only(arg0);
1844 } catch(std::exception& e) {
1845 sq_throwerror(vm, e.what());
1848 sq_throwerror(vm, _SC("Unexpected exception while executing function 'debug_draw_solids_only'"));
1854 static int grease_wrapper(HSQUIRRELVM vm)
1859 Scripting::grease();
1863 } catch(std::exception& e) {
1864 sq_throwerror(vm, e.what());
1867 sq_throwerror(vm, _SC("Unexpected exception while executing function 'grease'"));
1873 static int invincible_wrapper(HSQUIRRELVM vm)
1878 Scripting::invincible();
1882 } catch(std::exception& e) {
1883 sq_throwerror(vm, e.what());
1886 sq_throwerror(vm, _SC("Unexpected exception while executing function 'invincible'"));
1892 static int mortal_wrapper(HSQUIRRELVM vm)
1897 Scripting::mortal();
1901 } catch(std::exception& e) {
1902 sq_throwerror(vm, e.what());
1905 sq_throwerror(vm, _SC("Unexpected exception while executing function 'mortal'"));
1911 static int shrink_wrapper(HSQUIRRELVM vm)
1916 Scripting::shrink();
1920 } catch(std::exception& e) {
1921 sq_throwerror(vm, e.what());
1924 sq_throwerror(vm, _SC("Unexpected exception while executing function 'shrink'"));
1930 static int kill_wrapper(HSQUIRRELVM vm)
1939 } catch(std::exception& e) {
1940 sq_throwerror(vm, e.what());
1943 sq_throwerror(vm, _SC("Unexpected exception while executing function 'kill'"));
1949 static int restart_wrapper(HSQUIRRELVM vm)
1954 Scripting::restart();
1958 } catch(std::exception& e) {
1959 sq_throwerror(vm, e.what());
1962 sq_throwerror(vm, _SC("Unexpected exception while executing function 'restart'"));
1968 static int whereami_wrapper(HSQUIRRELVM vm)
1973 Scripting::whereami();
1977 } catch(std::exception& e) {
1978 sq_throwerror(vm, e.what());
1981 sq_throwerror(vm, _SC("Unexpected exception while executing function 'whereami'"));
1987 static int gotoend_wrapper(HSQUIRRELVM vm)
1992 Scripting::gotoend();
1996 } catch(std::exception& e) {
1997 sq_throwerror(vm, e.what());
2000 sq_throwerror(vm, _SC("Unexpected exception while executing function 'gotoend'"));
2006 static int camera_wrapper(HSQUIRRELVM vm)
2011 Scripting::camera();
2015 } catch(std::exception& e) {
2016 sq_throwerror(vm, e.what());
2019 sq_throwerror(vm, _SC("Unexpected exception while executing function 'camera'"));
2025 static int quit_wrapper(HSQUIRRELVM vm)
2034 } catch(std::exception& e) {
2035 sq_throwerror(vm, e.what());
2038 sq_throwerror(vm, _SC("Unexpected exception while executing function 'quit'"));
2044 } // end of namespace Wrapper
2046 void create_squirrel_instance(HSQUIRRELVM v, Scripting::DisplayEffect* object, bool setup_releasehook)
2048 using namespace Wrapper;
2050 sq_pushroottable(v);
2051 sq_pushstring(v, "DisplayEffect", -1);
2052 if(SQ_FAILED(sq_get(v, -2))) {
2053 std::ostringstream msg;
2054 msg << "Couldn't resolved squirrel type 'DisplayEffect'";
2055 throw SquirrelError(v, msg.str());
2058 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2059 std::ostringstream msg;
2060 msg << "Couldn't setup squirrel instance for object of type 'DisplayEffect'";
2061 throw SquirrelError(v, msg.str());
2063 sq_remove(v, -2); // remove object name
2065 if(setup_releasehook) {
2066 sq_setreleasehook(v, -1, DisplayEffect_release_hook);
2069 sq_remove(v, -2); // remove root table
2072 void create_squirrel_instance(HSQUIRRELVM v, Scripting::Camera* object, bool setup_releasehook)
2074 using namespace Wrapper;
2076 sq_pushroottable(v);
2077 sq_pushstring(v, "Camera", -1);
2078 if(SQ_FAILED(sq_get(v, -2))) {
2079 std::ostringstream msg;
2080 msg << "Couldn't resolved squirrel type 'Camera'";
2081 throw SquirrelError(v, msg.str());
2084 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2085 std::ostringstream msg;
2086 msg << "Couldn't setup squirrel instance for object of type 'Camera'";
2087 throw SquirrelError(v, msg.str());
2089 sq_remove(v, -2); // remove object name
2091 if(setup_releasehook) {
2092 sq_setreleasehook(v, -1, Camera_release_hook);
2095 sq_remove(v, -2); // remove root table
2098 void create_squirrel_instance(HSQUIRRELVM v, Scripting::Level* object, bool setup_releasehook)
2100 using namespace Wrapper;
2102 sq_pushroottable(v);
2103 sq_pushstring(v, "Level", -1);
2104 if(SQ_FAILED(sq_get(v, -2))) {
2105 std::ostringstream msg;
2106 msg << "Couldn't resolved squirrel type 'Level'";
2107 throw SquirrelError(v, msg.str());
2110 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2111 std::ostringstream msg;
2112 msg << "Couldn't setup squirrel instance for object of type 'Level'";
2113 throw SquirrelError(v, msg.str());
2115 sq_remove(v, -2); // remove object name
2117 if(setup_releasehook) {
2118 sq_setreleasehook(v, -1, Level_release_hook);
2121 sq_remove(v, -2); // remove root table
2124 void create_squirrel_instance(HSQUIRRELVM v, Scripting::ScriptedObject* object, bool setup_releasehook)
2126 using namespace Wrapper;
2128 sq_pushroottable(v);
2129 sq_pushstring(v, "ScriptedObject", -1);
2130 if(SQ_FAILED(sq_get(v, -2))) {
2131 std::ostringstream msg;
2132 msg << "Couldn't resolved squirrel type 'ScriptedObject'";
2133 throw SquirrelError(v, msg.str());
2136 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2137 std::ostringstream msg;
2138 msg << "Couldn't setup squirrel instance for object of type 'ScriptedObject'";
2139 throw SquirrelError(v, msg.str());
2141 sq_remove(v, -2); // remove object name
2143 if(setup_releasehook) {
2144 sq_setreleasehook(v, -1, ScriptedObject_release_hook);
2147 sq_remove(v, -2); // remove root table
2150 void create_squirrel_instance(HSQUIRRELVM v, Scripting::Sound* object, bool setup_releasehook)
2152 using namespace Wrapper;
2154 sq_pushroottable(v);
2155 sq_pushstring(v, "Sound", -1);
2156 if(SQ_FAILED(sq_get(v, -2))) {
2157 std::ostringstream msg;
2158 msg << "Couldn't resolved squirrel type 'Sound'";
2159 throw SquirrelError(v, msg.str());
2162 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2163 std::ostringstream msg;
2164 msg << "Couldn't setup squirrel instance for object of type 'Sound'";
2165 throw SquirrelError(v, msg.str());
2167 sq_remove(v, -2); // remove object name
2169 if(setup_releasehook) {
2170 sq_setreleasehook(v, -1, Sound_release_hook);
2173 sq_remove(v, -2); // remove root table
2176 void create_squirrel_instance(HSQUIRRELVM v, Scripting::Text* object, bool setup_releasehook)
2178 using namespace Wrapper;
2180 sq_pushroottable(v);
2181 sq_pushstring(v, "Text", -1);
2182 if(SQ_FAILED(sq_get(v, -2))) {
2183 std::ostringstream msg;
2184 msg << "Couldn't resolved squirrel type 'Text'";
2185 throw SquirrelError(v, msg.str());
2188 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2189 std::ostringstream msg;
2190 msg << "Couldn't setup squirrel instance for object of type 'Text'";
2191 throw SquirrelError(v, msg.str());
2193 sq_remove(v, -2); // remove object name
2195 if(setup_releasehook) {
2196 sq_setreleasehook(v, -1, Text_release_hook);
2199 sq_remove(v, -2); // remove root table
2202 void create_squirrel_instance(HSQUIRRELVM v, Scripting::Player* object, bool setup_releasehook)
2204 using namespace Wrapper;
2206 sq_pushroottable(v);
2207 sq_pushstring(v, "Player", -1);
2208 if(SQ_FAILED(sq_get(v, -2))) {
2209 std::ostringstream msg;
2210 msg << "Couldn't resolved squirrel type 'Player'";
2211 throw SquirrelError(v, msg.str());
2214 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2215 std::ostringstream msg;
2216 msg << "Couldn't setup squirrel instance for object of type 'Player'";
2217 throw SquirrelError(v, msg.str());
2219 sq_remove(v, -2); // remove object name
2221 if(setup_releasehook) {
2222 sq_setreleasehook(v, -1, Player_release_hook);
2225 sq_remove(v, -2); // remove root table
2228 void create_squirrel_instance(HSQUIRRELVM v, Scripting::FloatingImage* object, bool setup_releasehook)
2230 using namespace Wrapper;
2232 sq_pushroottable(v);
2233 sq_pushstring(v, "FloatingImage", -1);
2234 if(SQ_FAILED(sq_get(v, -2))) {
2235 std::ostringstream msg;
2236 msg << "Couldn't resolved squirrel type 'FloatingImage'";
2237 throw SquirrelError(v, msg.str());
2240 if(SQ_FAILED(sq_createinstance(v, -1)) || SQ_FAILED(sq_setinstanceup(v, -1, object))) {
2241 std::ostringstream msg;
2242 msg << "Couldn't setup squirrel instance for object of type 'FloatingImage'";
2243 throw SquirrelError(v, msg.str());
2245 sq_remove(v, -2); // remove object name
2247 if(setup_releasehook) {
2248 sq_setreleasehook(v, -1, FloatingImage_release_hook);
2251 sq_remove(v, -2); // remove root table
2254 void register_supertux_wrapper(HSQUIRRELVM v)
2256 using namespace Wrapper;
2258 sq_pushstring(v, "KEY_BRASS", -1);
2259 sq_pushinteger(v, 1);
2260 if(SQ_FAILED(sq_createslot(v, -3))) {
2261 throw SquirrelError(v, "Couldn't register constant 'KEY_BRASS'");
2264 sq_pushstring(v, "KEY_IRON", -1);
2265 sq_pushinteger(v, 2);
2266 if(SQ_FAILED(sq_createslot(v, -3))) {
2267 throw SquirrelError(v, "Couldn't register constant 'KEY_IRON'");
2270 sq_pushstring(v, "KEY_BRONZE", -1);
2271 sq_pushinteger(v, 4);
2272 if(SQ_FAILED(sq_createslot(v, -3))) {
2273 throw SquirrelError(v, "Couldn't register constant 'KEY_BRONZE'");
2276 sq_pushstring(v, "KEY_SILVER", -1);
2277 sq_pushinteger(v, 8);
2278 if(SQ_FAILED(sq_createslot(v, -3))) {
2279 throw SquirrelError(v, "Couldn't register constant 'KEY_SILVER'");
2282 sq_pushstring(v, "KEY_GOLD", -1);
2283 sq_pushinteger(v, 16);
2284 if(SQ_FAILED(sq_createslot(v, -3))) {
2285 throw SquirrelError(v, "Couldn't register constant 'KEY_GOLD'");
2288 sq_pushstring(v, "ANCHOR_TOP", -1);
2289 sq_pushinteger(v, 16);
2290 if(SQ_FAILED(sq_createslot(v, -3))) {
2291 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_TOP'");
2294 sq_pushstring(v, "ANCHOR_BOTTOM", -1);
2295 sq_pushinteger(v, 32);
2296 if(SQ_FAILED(sq_createslot(v, -3))) {
2297 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_BOTTOM'");
2300 sq_pushstring(v, "ANCHOR_LEFT", -1);
2301 sq_pushinteger(v, 1);
2302 if(SQ_FAILED(sq_createslot(v, -3))) {
2303 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_LEFT'");
2306 sq_pushstring(v, "ANCHOR_RIGHT", -1);
2307 sq_pushinteger(v, 2);
2308 if(SQ_FAILED(sq_createslot(v, -3))) {
2309 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_RIGHT'");
2312 sq_pushstring(v, "ANCHOR_MIDDLE", -1);
2313 sq_pushinteger(v, 0);
2314 if(SQ_FAILED(sq_createslot(v, -3))) {
2315 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_MIDDLE'");
2318 sq_pushstring(v, "ANCHOR_TOP_LEFT", -1);
2319 sq_pushinteger(v, 17);
2320 if(SQ_FAILED(sq_createslot(v, -3))) {
2321 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_TOP_LEFT'");
2324 sq_pushstring(v, "ANCHOR_TOP_RIGHT", -1);
2325 sq_pushinteger(v, 18);
2326 if(SQ_FAILED(sq_createslot(v, -3))) {
2327 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_TOP_RIGHT'");
2330 sq_pushstring(v, "ANCHOR_BOTTOM_LEFT", -1);
2331 sq_pushinteger(v, 33);
2332 if(SQ_FAILED(sq_createslot(v, -3))) {
2333 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_BOTTOM_LEFT'");
2336 sq_pushstring(v, "ANCHOR_BOTTOM_RIGHT", -1);
2337 sq_pushinteger(v, 34);
2338 if(SQ_FAILED(sq_createslot(v, -3))) {
2339 throw SquirrelError(v, "Couldn't register constant 'ANCHOR_BOTTOM_RIGHT'");
2342 sq_pushstring(v, "display", -1);
2343 sq_newclosure(v, &display_wrapper, 0);
2344 if(SQ_FAILED(sq_createslot(v, -3))) {
2345 throw SquirrelError(v, "Couldn't register function 'display'");
2348 sq_pushstring(v, "print_stacktrace", -1);
2349 sq_newclosure(v, &print_stacktrace_wrapper, 0);
2350 if(SQ_FAILED(sq_createslot(v, -3))) {
2351 throw SquirrelError(v, "Couldn't register function 'print_stacktrace'");
2354 sq_pushstring(v, "get_current_thread", -1);
2355 sq_newclosure(v, &get_current_thread_wrapper, 0);
2356 if(SQ_FAILED(sq_createslot(v, -3))) {
2357 throw SquirrelError(v, "Couldn't register function 'get_current_thread'");
2360 sq_pushstring(v, "display_text_file", -1);
2361 sq_newclosure(v, &display_text_file_wrapper, 0);
2362 if(SQ_FAILED(sq_createslot(v, -3))) {
2363 throw SquirrelError(v, "Couldn't register function 'display_text_file'");
2366 sq_pushstring(v, "load_worldmap", -1);
2367 sq_newclosure(v, &load_worldmap_wrapper, 0);
2368 if(SQ_FAILED(sq_createslot(v, -3))) {
2369 throw SquirrelError(v, "Couldn't register function 'load_worldmap'");
2372 sq_pushstring(v, "load_level", -1);
2373 sq_newclosure(v, &load_level_wrapper, 0);
2374 if(SQ_FAILED(sq_createslot(v, -3))) {
2375 throw SquirrelError(v, "Couldn't register function 'load_level'");
2378 sq_pushstring(v, "wait", -1);
2379 sq_newclosure(v, &wait_wrapper, 0);
2380 if(SQ_FAILED(sq_createslot(v, -3))) {
2381 throw SquirrelError(v, "Couldn't register function 'wait'");
2384 sq_pushstring(v, "wait_for_screenswitch", -1);
2385 sq_newclosure(v, &wait_for_screenswitch_wrapper, 0);
2386 if(SQ_FAILED(sq_createslot(v, -3))) {
2387 throw SquirrelError(v, "Couldn't register function 'wait_for_screenswitch'");
2390 sq_pushstring(v, "exit_screen", -1);
2391 sq_newclosure(v, &exit_screen_wrapper, 0);
2392 if(SQ_FAILED(sq_createslot(v, -3))) {
2393 throw SquirrelError(v, "Couldn't register function 'exit_screen'");
2396 sq_pushstring(v, "fadeout_screen", -1);
2397 sq_newclosure(v, &fadeout_screen_wrapper, 0);
2398 if(SQ_FAILED(sq_createslot(v, -3))) {
2399 throw SquirrelError(v, "Couldn't register function 'fadeout_screen'");
2402 sq_pushstring(v, "shrink_screen", -1);
2403 sq_newclosure(v, &shrink_screen_wrapper, 0);
2404 if(SQ_FAILED(sq_createslot(v, -3))) {
2405 throw SquirrelError(v, "Couldn't register function 'shrink_screen'");
2408 sq_pushstring(v, "translate", -1);
2409 sq_newclosure(v, &translate_wrapper, 0);
2410 if(SQ_FAILED(sq_createslot(v, -3))) {
2411 throw SquirrelError(v, "Couldn't register function 'translate'");
2414 sq_pushstring(v, "import", -1);
2415 sq_newclosure(v, &import_wrapper, 0);
2416 if(SQ_FAILED(sq_createslot(v, -3))) {
2417 throw SquirrelError(v, "Couldn't register function 'import'");
2420 sq_pushstring(v, "save_state", -1);
2421 sq_newclosure(v, &save_state_wrapper, 0);
2422 if(SQ_FAILED(sq_createslot(v, -3))) {
2423 throw SquirrelError(v, "Couldn't register function 'save_state'");
2426 sq_pushstring(v, "add_key", -1);
2427 sq_newclosure(v, &add_key_wrapper, 0);
2428 if(SQ_FAILED(sq_createslot(v, -3))) {
2429 throw SquirrelError(v, "Couldn't register function 'add_key'");
2432 sq_pushstring(v, "debug_collrects", -1);
2433 sq_newclosure(v, &debug_collrects_wrapper, 0);
2434 if(SQ_FAILED(sq_createslot(v, -3))) {
2435 throw SquirrelError(v, "Couldn't register function 'debug_collrects'");
2438 sq_pushstring(v, "debug_draw_fps", -1);
2439 sq_newclosure(v, &debug_draw_fps_wrapper, 0);
2440 if(SQ_FAILED(sq_createslot(v, -3))) {
2441 throw SquirrelError(v, "Couldn't register function 'debug_draw_fps'");
2444 sq_pushstring(v, "debug_draw_solids_only", -1);
2445 sq_newclosure(v, &debug_draw_solids_only_wrapper, 0);
2446 if(SQ_FAILED(sq_createslot(v, -3))) {
2447 throw SquirrelError(v, "Couldn't register function 'debug_draw_solids_only'");
2450 sq_pushstring(v, "grease", -1);
2451 sq_newclosure(v, &grease_wrapper, 0);
2452 if(SQ_FAILED(sq_createslot(v, -3))) {
2453 throw SquirrelError(v, "Couldn't register function 'grease'");
2456 sq_pushstring(v, "invincible", -1);
2457 sq_newclosure(v, &invincible_wrapper, 0);
2458 if(SQ_FAILED(sq_createslot(v, -3))) {
2459 throw SquirrelError(v, "Couldn't register function 'invincible'");
2462 sq_pushstring(v, "mortal", -1);
2463 sq_newclosure(v, &mortal_wrapper, 0);
2464 if(SQ_FAILED(sq_createslot(v, -3))) {
2465 throw SquirrelError(v, "Couldn't register function 'mortal'");
2468 sq_pushstring(v, "shrink", -1);
2469 sq_newclosure(v, &shrink_wrapper, 0);
2470 if(SQ_FAILED(sq_createslot(v, -3))) {
2471 throw SquirrelError(v, "Couldn't register function 'shrink'");
2474 sq_pushstring(v, "kill", -1);
2475 sq_newclosure(v, &kill_wrapper, 0);
2476 if(SQ_FAILED(sq_createslot(v, -3))) {
2477 throw SquirrelError(v, "Couldn't register function 'kill'");
2480 sq_pushstring(v, "restart", -1);
2481 sq_newclosure(v, &restart_wrapper, 0);
2482 if(SQ_FAILED(sq_createslot(v, -3))) {
2483 throw SquirrelError(v, "Couldn't register function 'restart'");
2486 sq_pushstring(v, "whereami", -1);
2487 sq_newclosure(v, &whereami_wrapper, 0);
2488 if(SQ_FAILED(sq_createslot(v, -3))) {
2489 throw SquirrelError(v, "Couldn't register function 'whereami'");
2492 sq_pushstring(v, "gotoend", -1);
2493 sq_newclosure(v, &gotoend_wrapper, 0);
2494 if(SQ_FAILED(sq_createslot(v, -3))) {
2495 throw SquirrelError(v, "Couldn't register function 'gotoend'");
2498 sq_pushstring(v, "camera", -1);
2499 sq_newclosure(v, &camera_wrapper, 0);
2500 if(SQ_FAILED(sq_createslot(v, -3))) {
2501 throw SquirrelError(v, "Couldn't register function 'camera'");
2504 sq_pushstring(v, "quit", -1);
2505 sq_newclosure(v, &quit_wrapper, 0);
2506 if(SQ_FAILED(sq_createslot(v, -3))) {
2507 throw SquirrelError(v, "Couldn't register function 'quit'");
2510 // Register class DisplayEffect
2511 sq_pushstring(v, "DisplayEffect", -1);
2512 if(sq_newclass(v, SQFalse) < 0) {
2513 std::ostringstream msg;
2514 msg << "Couldn't create new class 'DisplayEffect'";
2515 throw SquirrelError(v, msg.str());
2517 sq_pushstring(v, "fade_out", -1);
2518 sq_newclosure(v, &DisplayEffect_fade_out_wrapper, 0);
2519 if(SQ_FAILED(sq_createslot(v, -3))) {
2520 throw SquirrelError(v, "Couldn't register function 'fade_out'");
2523 sq_pushstring(v, "fade_in", -1);
2524 sq_newclosure(v, &DisplayEffect_fade_in_wrapper, 0);
2525 if(SQ_FAILED(sq_createslot(v, -3))) {
2526 throw SquirrelError(v, "Couldn't register function 'fade_in'");
2529 sq_pushstring(v, "set_black", -1);
2530 sq_newclosure(v, &DisplayEffect_set_black_wrapper, 0);
2531 if(SQ_FAILED(sq_createslot(v, -3))) {
2532 throw SquirrelError(v, "Couldn't register function 'set_black'");
2535 sq_pushstring(v, "is_black", -1);
2536 sq_newclosure(v, &DisplayEffect_is_black_wrapper, 0);
2537 if(SQ_FAILED(sq_createslot(v, -3))) {
2538 throw SquirrelError(v, "Couldn't register function 'is_black'");
2541 sq_pushstring(v, "sixteen_to_nine", -1);
2542 sq_newclosure(v, &DisplayEffect_sixteen_to_nine_wrapper, 0);
2543 if(SQ_FAILED(sq_createslot(v, -3))) {
2544 throw SquirrelError(v, "Couldn't register function 'sixteen_to_nine'");
2547 sq_pushstring(v, "four_to_three", -1);
2548 sq_newclosure(v, &DisplayEffect_four_to_three_wrapper, 0);
2549 if(SQ_FAILED(sq_createslot(v, -3))) {
2550 throw SquirrelError(v, "Couldn't register function 'four_to_three'");
2553 if(SQ_FAILED(sq_createslot(v, -3))) {
2554 throw SquirrelError(v, "Couldn't register class 'DisplayEffect'");
2557 // Register class Camera
2558 sq_pushstring(v, "Camera", -1);
2559 if(sq_newclass(v, SQFalse) < 0) {
2560 std::ostringstream msg;
2561 msg << "Couldn't create new class 'Camera'";
2562 throw SquirrelError(v, msg.str());
2564 sq_pushstring(v, "shake", -1);
2565 sq_newclosure(v, &Camera_shake_wrapper, 0);
2566 if(SQ_FAILED(sq_createslot(v, -3))) {
2567 throw SquirrelError(v, "Couldn't register function 'shake'");
2570 sq_pushstring(v, "set_pos", -1);
2571 sq_newclosure(v, &Camera_set_pos_wrapper, 0);
2572 if(SQ_FAILED(sq_createslot(v, -3))) {
2573 throw SquirrelError(v, "Couldn't register function 'set_pos'");
2576 sq_pushstring(v, "set_mode", -1);
2577 sq_newclosure(v, &Camera_set_mode_wrapper, 0);
2578 if(SQ_FAILED(sq_createslot(v, -3))) {
2579 throw SquirrelError(v, "Couldn't register function 'set_mode'");
2582 sq_pushstring(v, "scroll_to", -1);
2583 sq_newclosure(v, &Camera_scroll_to_wrapper, 0);
2584 if(SQ_FAILED(sq_createslot(v, -3))) {
2585 throw SquirrelError(v, "Couldn't register function 'scroll_to'");
2588 if(SQ_FAILED(sq_createslot(v, -3))) {
2589 throw SquirrelError(v, "Couldn't register class 'Camera'");
2592 // Register class Level
2593 sq_pushstring(v, "Level", -1);
2594 if(sq_newclass(v, SQFalse) < 0) {
2595 std::ostringstream msg;
2596 msg << "Couldn't create new class 'Level'";
2597 throw SquirrelError(v, msg.str());
2599 sq_pushstring(v, "finish", -1);
2600 sq_newclosure(v, &Level_finish_wrapper, 0);
2601 if(SQ_FAILED(sq_createslot(v, -3))) {
2602 throw SquirrelError(v, "Couldn't register function 'finish'");
2605 sq_pushstring(v, "spawn", -1);
2606 sq_newclosure(v, &Level_spawn_wrapper, 0);
2607 if(SQ_FAILED(sq_createslot(v, -3))) {
2608 throw SquirrelError(v, "Couldn't register function 'spawn'");
2611 sq_pushstring(v, "flip_vertically", -1);
2612 sq_newclosure(v, &Level_flip_vertically_wrapper, 0);
2613 if(SQ_FAILED(sq_createslot(v, -3))) {
2614 throw SquirrelError(v, "Couldn't register function 'flip_vertically'");
2617 if(SQ_FAILED(sq_createslot(v, -3))) {
2618 throw SquirrelError(v, "Couldn't register class 'Level'");
2621 // Register class ScriptedObject
2622 sq_pushstring(v, "ScriptedObject", -1);
2623 if(sq_newclass(v, SQFalse) < 0) {
2624 std::ostringstream msg;
2625 msg << "Couldn't create new class 'ScriptedObject'";
2626 throw SquirrelError(v, msg.str());
2628 sq_pushstring(v, "set_action", -1);
2629 sq_newclosure(v, &ScriptedObject_set_action_wrapper, 0);
2630 if(SQ_FAILED(sq_createslot(v, -3))) {
2631 throw SquirrelError(v, "Couldn't register function 'set_action'");
2634 sq_pushstring(v, "get_action", -1);
2635 sq_newclosure(v, &ScriptedObject_get_action_wrapper, 0);
2636 if(SQ_FAILED(sq_createslot(v, -3))) {
2637 throw SquirrelError(v, "Couldn't register function 'get_action'");
2640 sq_pushstring(v, "move", -1);
2641 sq_newclosure(v, &ScriptedObject_move_wrapper, 0);
2642 if(SQ_FAILED(sq_createslot(v, -3))) {
2643 throw SquirrelError(v, "Couldn't register function 'move'");
2646 sq_pushstring(v, "set_pos", -1);
2647 sq_newclosure(v, &ScriptedObject_set_pos_wrapper, 0);
2648 if(SQ_FAILED(sq_createslot(v, -3))) {
2649 throw SquirrelError(v, "Couldn't register function 'set_pos'");
2652 sq_pushstring(v, "get_pos_x", -1);
2653 sq_newclosure(v, &ScriptedObject_get_pos_x_wrapper, 0);
2654 if(SQ_FAILED(sq_createslot(v, -3))) {
2655 throw SquirrelError(v, "Couldn't register function 'get_pos_x'");
2658 sq_pushstring(v, "get_pos_y", -1);
2659 sq_newclosure(v, &ScriptedObject_get_pos_y_wrapper, 0);
2660 if(SQ_FAILED(sq_createslot(v, -3))) {
2661 throw SquirrelError(v, "Couldn't register function 'get_pos_y'");
2664 sq_pushstring(v, "set_velocity", -1);
2665 sq_newclosure(v, &ScriptedObject_set_velocity_wrapper, 0);
2666 if(SQ_FAILED(sq_createslot(v, -3))) {
2667 throw SquirrelError(v, "Couldn't register function 'set_velocity'");
2670 sq_pushstring(v, "get_velocity_x", -1);
2671 sq_newclosure(v, &ScriptedObject_get_velocity_x_wrapper, 0);
2672 if(SQ_FAILED(sq_createslot(v, -3))) {
2673 throw SquirrelError(v, "Couldn't register function 'get_velocity_x'");
2676 sq_pushstring(v, "get_velocity_y", -1);
2677 sq_newclosure(v, &ScriptedObject_get_velocity_y_wrapper, 0);
2678 if(SQ_FAILED(sq_createslot(v, -3))) {
2679 throw SquirrelError(v, "Couldn't register function 'get_velocity_y'");
2682 sq_pushstring(v, "set_visible", -1);
2683 sq_newclosure(v, &ScriptedObject_set_visible_wrapper, 0);
2684 if(SQ_FAILED(sq_createslot(v, -3))) {
2685 throw SquirrelError(v, "Couldn't register function 'set_visible'");
2688 sq_pushstring(v, "is_visible", -1);
2689 sq_newclosure(v, &ScriptedObject_is_visible_wrapper, 0);
2690 if(SQ_FAILED(sq_createslot(v, -3))) {
2691 throw SquirrelError(v, "Couldn't register function 'is_visible'");
2694 sq_pushstring(v, "get_name", -1);
2695 sq_newclosure(v, &ScriptedObject_get_name_wrapper, 0);
2696 if(SQ_FAILED(sq_createslot(v, -3))) {
2697 throw SquirrelError(v, "Couldn't register function 'get_name'");
2700 if(SQ_FAILED(sq_createslot(v, -3))) {
2701 throw SquirrelError(v, "Couldn't register class 'ScriptedObject'");
2704 // Register class Sound
2705 sq_pushstring(v, "Sound", -1);
2706 if(sq_newclass(v, SQFalse) < 0) {
2707 std::ostringstream msg;
2708 msg << "Couldn't create new class 'Sound'";
2709 throw SquirrelError(v, msg.str());
2711 sq_pushstring(v, "play_music", -1);
2712 sq_newclosure(v, &Sound_play_music_wrapper, 0);
2713 if(SQ_FAILED(sq_createslot(v, -3))) {
2714 throw SquirrelError(v, "Couldn't register function 'play_music'");
2717 sq_pushstring(v, "play", -1);
2718 sq_newclosure(v, &Sound_play_wrapper, 0);
2719 if(SQ_FAILED(sq_createslot(v, -3))) {
2720 throw SquirrelError(v, "Couldn't register function 'play'");
2723 if(SQ_FAILED(sq_createslot(v, -3))) {
2724 throw SquirrelError(v, "Couldn't register class 'Sound'");
2727 // Register class Text
2728 sq_pushstring(v, "Text", -1);
2729 if(sq_newclass(v, SQFalse) < 0) {
2730 std::ostringstream msg;
2731 msg << "Couldn't create new class 'Text'";
2732 throw SquirrelError(v, msg.str());
2734 sq_pushstring(v, "set_text", -1);
2735 sq_newclosure(v, &Text_set_text_wrapper, 0);
2736 if(SQ_FAILED(sq_createslot(v, -3))) {
2737 throw SquirrelError(v, "Couldn't register function 'set_text'");
2740 sq_pushstring(v, "set_font", -1);
2741 sq_newclosure(v, &Text_set_font_wrapper, 0);
2742 if(SQ_FAILED(sq_createslot(v, -3))) {
2743 throw SquirrelError(v, "Couldn't register function 'set_font'");
2746 sq_pushstring(v, "fade_in", -1);
2747 sq_newclosure(v, &Text_fade_in_wrapper, 0);
2748 if(SQ_FAILED(sq_createslot(v, -3))) {
2749 throw SquirrelError(v, "Couldn't register function 'fade_in'");
2752 sq_pushstring(v, "fade_out", -1);
2753 sq_newclosure(v, &Text_fade_out_wrapper, 0);
2754 if(SQ_FAILED(sq_createslot(v, -3))) {
2755 throw SquirrelError(v, "Couldn't register function 'fade_out'");
2758 sq_pushstring(v, "set_visible", -1);
2759 sq_newclosure(v, &Text_set_visible_wrapper, 0);
2760 if(SQ_FAILED(sq_createslot(v, -3))) {
2761 throw SquirrelError(v, "Couldn't register function 'set_visible'");
2764 sq_pushstring(v, "set_centered", -1);
2765 sq_newclosure(v, &Text_set_centered_wrapper, 0);
2766 if(SQ_FAILED(sq_createslot(v, -3))) {
2767 throw SquirrelError(v, "Couldn't register function 'set_centered'");
2770 if(SQ_FAILED(sq_createslot(v, -3))) {
2771 throw SquirrelError(v, "Couldn't register class 'Text'");
2774 // Register class Player
2775 sq_pushstring(v, "Player", -1);
2776 if(sq_newclass(v, SQFalse) < 0) {
2777 std::ostringstream msg;
2778 msg << "Couldn't create new class 'Player'";
2779 throw SquirrelError(v, msg.str());
2781 sq_pushstring(v, "add_bonus", -1);
2782 sq_newclosure(v, &Player_add_bonus_wrapper, 0);
2783 if(SQ_FAILED(sq_createslot(v, -3))) {
2784 throw SquirrelError(v, "Couldn't register function 'add_bonus'");
2787 sq_pushstring(v, "add_coins", -1);
2788 sq_newclosure(v, &Player_add_coins_wrapper, 0);
2789 if(SQ_FAILED(sq_createslot(v, -3))) {
2790 throw SquirrelError(v, "Couldn't register function 'add_coins'");
2793 sq_pushstring(v, "make_invincible", -1);
2794 sq_newclosure(v, &Player_make_invincible_wrapper, 0);
2795 if(SQ_FAILED(sq_createslot(v, -3))) {
2796 throw SquirrelError(v, "Couldn't register function 'make_invincible'");
2799 sq_pushstring(v, "deactivate", -1);
2800 sq_newclosure(v, &Player_deactivate_wrapper, 0);
2801 if(SQ_FAILED(sq_createslot(v, -3))) {
2802 throw SquirrelError(v, "Couldn't register function 'deactivate'");
2805 sq_pushstring(v, "activate", -1);
2806 sq_newclosure(v, &Player_activate_wrapper, 0);
2807 if(SQ_FAILED(sq_createslot(v, -3))) {
2808 throw SquirrelError(v, "Couldn't register function 'activate'");
2811 sq_pushstring(v, "walk", -1);
2812 sq_newclosure(v, &Player_walk_wrapper, 0);
2813 if(SQ_FAILED(sq_createslot(v, -3))) {
2814 throw SquirrelError(v, "Couldn't register function 'walk'");
2817 sq_pushstring(v, "set_visible", -1);
2818 sq_newclosure(v, &Player_set_visible_wrapper, 0);
2819 if(SQ_FAILED(sq_createslot(v, -3))) {
2820 throw SquirrelError(v, "Couldn't register function 'set_visible'");
2823 sq_pushstring(v, "get_visible", -1);
2824 sq_newclosure(v, &Player_get_visible_wrapper, 0);
2825 if(SQ_FAILED(sq_createslot(v, -3))) {
2826 throw SquirrelError(v, "Couldn't register function 'get_visible'");
2829 if(SQ_FAILED(sq_createslot(v, -3))) {
2830 throw SquirrelError(v, "Couldn't register class 'Player'");
2833 // Register class FloatingImage
2834 sq_pushstring(v, "FloatingImage", -1);
2835 if(sq_newclass(v, SQFalse) < 0) {
2836 std::ostringstream msg;
2837 msg << "Couldn't create new class 'FloatingImage'";
2838 throw SquirrelError(v, msg.str());
2840 sq_pushstring(v, "constructor", -1);
2841 sq_newclosure(v, &FloatingImage_constructor_wrapper, 0);
2842 if(SQ_FAILED(sq_createslot(v, -3))) {
2843 throw SquirrelError(v, "Couldn't register function 'constructor'");
2846 sq_pushstring(v, "set_layer", -1);
2847 sq_newclosure(v, &FloatingImage_set_layer_wrapper, 0);
2848 if(SQ_FAILED(sq_createslot(v, -3))) {
2849 throw SquirrelError(v, "Couldn't register function 'set_layer'");
2852 sq_pushstring(v, "get_layer", -1);
2853 sq_newclosure(v, &FloatingImage_get_layer_wrapper, 0);
2854 if(SQ_FAILED(sq_createslot(v, -3))) {
2855 throw SquirrelError(v, "Couldn't register function 'get_layer'");
2858 sq_pushstring(v, "set_pos", -1);
2859 sq_newclosure(v, &FloatingImage_set_pos_wrapper, 0);
2860 if(SQ_FAILED(sq_createslot(v, -3))) {
2861 throw SquirrelError(v, "Couldn't register function 'set_pos'");
2864 sq_pushstring(v, "get_pos_x", -1);
2865 sq_newclosure(v, &FloatingImage_get_pos_x_wrapper, 0);
2866 if(SQ_FAILED(sq_createslot(v, -3))) {
2867 throw SquirrelError(v, "Couldn't register function 'get_pos_x'");
2870 sq_pushstring(v, "get_pos_y", -1);
2871 sq_newclosure(v, &FloatingImage_get_pos_y_wrapper, 0);
2872 if(SQ_FAILED(sq_createslot(v, -3))) {
2873 throw SquirrelError(v, "Couldn't register function 'get_pos_y'");
2876 sq_pushstring(v, "set_anchor_point", -1);
2877 sq_newclosure(v, &FloatingImage_set_anchor_point_wrapper, 0);
2878 if(SQ_FAILED(sq_createslot(v, -3))) {
2879 throw SquirrelError(v, "Couldn't register function 'set_anchor_point'");
2882 sq_pushstring(v, "get_anchor_point", -1);
2883 sq_newclosure(v, &FloatingImage_get_anchor_point_wrapper, 0);
2884 if(SQ_FAILED(sq_createslot(v, -3))) {
2885 throw SquirrelError(v, "Couldn't register function 'get_anchor_point'");
2888 sq_pushstring(v, "set_visible", -1);
2889 sq_newclosure(v, &FloatingImage_set_visible_wrapper, 0);
2890 if(SQ_FAILED(sq_createslot(v, -3))) {
2891 throw SquirrelError(v, "Couldn't register function 'set_visible'");
2894 sq_pushstring(v, "get_visible", -1);
2895 sq_newclosure(v, &FloatingImage_get_visible_wrapper, 0);
2896 if(SQ_FAILED(sq_createslot(v, -3))) {
2897 throw SquirrelError(v, "Couldn't register function 'get_visible'");
2900 if(SQ_FAILED(sq_createslot(v, -3))) {
2901 throw SquirrelError(v, "Couldn't register class 'FloatingImage'");
2906 } // end of namespace Scripting