11#include " game.hpp"
22#include " map.hpp"
33#include " game_event.hpp"
4+ #include " chaiscript_bindings.hpp"
45
56#include " ChaiScript/include/chaiscript/chaiscript.hpp"
67
78
89#define ADD_FUN (Class, Name ) module ->add (chaiscript::fun(&Class::Name), #Name )
910
10- std::shared_ptr<chaiscript::Module> create_chaiscript_bindings ()
11- {
12- auto module = std::make_shared<chaiscript::Module>();
13- module ->add (chaiscript::vector_conversion<std::vector<Tile_Defaults>>());
14- module ->add (chaiscript::vector_conversion<std::vector<Answer>>());
15- module ->add (chaiscript::vector_conversion<std::vector<Question>>());
16- module ->add (chaiscript::vector_conversion<std::vector<Object_Action>>());
17- module ->add (chaiscript::vector_conversion<std::vector<Game_Action>>());
18-
19-
20- module ->add (chaiscript::user_type<Game>(), " Game" );
21- ADD_FUN (Game, get_texture);
22- ADD_FUN (Game, get_font);
23- ADD_FUN (Game, teleport_to);
24- ADD_FUN (Game, teleport_to_tile);
25- ADD_FUN (Game, set_avatar);
26- ADD_FUN (Game, add_map);
27- ADD_FUN (Game, add_start_action);
28- ADD_FUN (Game, add_queued_action);
29- ADD_FUN (Game, show_message_box);
30- ADD_FUN (Game, show_object_interaction_menu);
31- ADD_FUN (Game, show_selection_menu);
32- module ->add (
33- chaiscript::fun ([](Game &t_game, const float t_game_time, const float t_simulation_time, const std::vector<Game_Action> &t_selections)
11+ namespace spiced {
12+
13+ std::shared_ptr<chaiscript::Module> create_chaiscript_bindings ()
14+ {
15+ auto module = std::make_shared<chaiscript::Module>();
16+ module ->add (chaiscript::vector_conversion<std::vector<Tile_Defaults>>());
17+ module ->add (chaiscript::vector_conversion<std::vector<Answer>>());
18+ module ->add (chaiscript::vector_conversion<std::vector<Question>>());
19+ module ->add (chaiscript::vector_conversion<std::vector<Object_Action>>());
20+ module ->add (chaiscript::vector_conversion<std::vector<Game_Action>>());
21+
22+
23+ module ->add (chaiscript::user_type<Game>(), " Game" );
24+ ADD_FUN (Game, get_texture);
25+ ADD_FUN (Game, get_font);
26+ ADD_FUN (Game, teleport_to);
27+ ADD_FUN (Game, teleport_to_tile);
28+ ADD_FUN (Game, set_avatar);
29+ ADD_FUN (Game, add_map);
30+ ADD_FUN (Game, add_start_action);
31+ ADD_FUN (Game, add_queued_action);
32+ ADD_FUN (Game, show_message_box);
33+ ADD_FUN (Game, show_object_interaction_menu);
34+ ADD_FUN (Game, show_selection_menu);
35+ module ->add (
36+ chaiscript::fun ([](Game &t_game, const float t_game_time, const float t_simulation_time, const std::vector<Game_Action> &t_selections)
3437 {
3538 t_game.show_selection_menu (t_game_time, t_simulation_time, t_selections);
3639 }), " show_selection_menu" );
37- ADD_FUN (Game, show_conversation);
38- ADD_FUN (Game, has_pending_events);
39- ADD_FUN (Game, get_current_event);
40- ADD_FUN (Game, update);
41- ADD_FUN (Game, draw);
42- ADD_FUN (Game, get_avatar_position);
43- ADD_FUN (Game, enter_map);
44- ADD_FUN (Game, has_current_map);
45- ADD_FUN (Game, get_current_map);
46- ADD_FUN (Game, start);
47- ADD_FUN (Game, set_flag);
48- ADD_FUN (Game, get_flag);
49- ADD_FUN (Game, set_value);
50- ADD_FUN (Game, get_value);
51- ADD_FUN (Game, set_rotate);
52- ADD_FUN (Game, set_zoom);
53- ADD_FUN (Game, rotate);
54- ADD_FUN (Game, zoom);
55-
56- module ->add (chaiscript::fun (&Game::get_input_direction_vector), " get_input_direction_vector" );
57-
58- module ->add (chaiscript::user_type<Answer>(), " Answer" );
59- module ->add (chaiscript::constructor<Answer (std::string, std::string)>(), " Answer" );
60-
61- module ->add (chaiscript::user_type<Question>(), " Question" );
62- module ->add (chaiscript::constructor<
63- Question (std::string, std::vector<Answer>,
64- std::function<bool (const float , const float , Game &, Object &)>,
65- std::function<void (const float , const float , Game &, Object &)>)>(), " Question" );
66-
67- module ->add (chaiscript::user_type<Conversation>(), " Conversation" );
68- module ->add (chaiscript::constructor<Conversation (std::vector<Question>)>(), " Conversation" );
69-
70- module ->add (chaiscript::user_type<Game_Action>(), " Game_Action" );
71- module ->add (chaiscript::constructor<Game_Action (std::string, std::function<void (const float , const float , Game &)>)>(), " Game_Action" );
72- ADD_FUN (Game_Action, description);
73- ADD_FUN (Game_Action, action);
74-
75- module ->add (chaiscript::user_type<Object_Action>(), " Object_Action" );
76- module ->add (chaiscript::constructor<Object_Action (std::string, std::function<void (const float , const float , Game &, Object &)>)>(), " Object_Action" );
77- ADD_FUN (Object_Action, description);
78- ADD_FUN (Object_Action, action);
79-
80-
81- module ->add (chaiscript::user_type<Object>(), " Game_Object" );
82- module ->add (chaiscript::constructor<Object (std::string, Tileset, const int , const bool ,
83- std::function<void (const float , const float , Game &, Object &, sf::Sprite &)> ,
84- std::function<std::vector<Object_Action> (const float , const float , Game &, Object &)> )>(), " Game_Object" );
85-
86- ADD_FUN (Object, update);
87- ADD_FUN (Object, get_actions);
88- ADD_FUN (Object, do_collision);
89- ADD_FUN (Object, set_position);
90-
91- module ->add (chaiscript::constructor<Tile_Properties (bool )>(), " Tile_Properties" );
92- module ->add (chaiscript::constructor<Tile_Properties (bool , std::function<void (float , float )>)>(), " Tile_Properties" );
93- ADD_FUN (Tile_Properties, do_movement_action);
94- ADD_FUN (Tile_Properties, passable);
95- ADD_FUN (Tile_Properties, movement_action);
96-
97- module ->add (chaiscript::constructor<Tile_Defaults (const int , Tile_Properties)>(), " Tile_Defaults" );
98-
99- module ->add (chaiscript::constructor<Tile_Map (Game &, const std::string &, std::vector<Tile_Defaults>)>(), " Tile_Map" );
100-
101- ADD_FUN (Tile_Map, add_enter_action);
102- ADD_FUN (Tile_Map, enter);
103- ADD_FUN (Tile_Map, dimensions_in_pixels);
104- ADD_FUN (Tile_Map, add_object);
105- ADD_FUN (Tile_Map, get_bounding_box);
106- ADD_FUN (Tile_Map, test_move);
107- ADD_FUN (Tile_Map, get_collisions);
108- ADD_FUN (Tile_Map, adjust_move);
109- ADD_FUN (Tile_Map, do_move);
110- ADD_FUN (Tile_Map, update);
111- ADD_FUN (Tile_Map, set_collision_action);
112- ADD_FUN (Tile_Map, set_action_generator);
113-
114- module ->add (chaiscript::type_conversion<std::string, sf::String>());
115-
116- return module ;
117- }
118-
40+ ADD_FUN (Game, show_conversation);
41+ ADD_FUN (Game, has_pending_events);
42+ ADD_FUN (Game, get_current_event);
43+ ADD_FUN (Game, update);
44+ ADD_FUN (Game, draw);
45+ ADD_FUN (Game, get_avatar_position);
46+ ADD_FUN (Game, enter_map);
47+ ADD_FUN (Game, has_current_map);
48+ ADD_FUN (Game, get_current_map);
49+ ADD_FUN (Game, start);
50+ ADD_FUN (Game, set_flag);
51+ ADD_FUN (Game, get_flag);
52+ ADD_FUN (Game, set_value);
53+ ADD_FUN (Game, get_value);
54+ ADD_FUN (Game, set_rotate);
55+ ADD_FUN (Game, set_zoom);
56+ ADD_FUN (Game, rotate);
57+ ADD_FUN (Game, zoom);
58+
59+ module ->add (chaiscript::fun (&Game::get_input_direction_vector), " get_input_direction_vector" );
60+
61+ module ->add (chaiscript::user_type<Answer>(), " Answer" );
62+ module ->add (chaiscript::constructor<Answer (std::string, std::string)>(), " Answer" );
63+
64+ module ->add (chaiscript::user_type<Question>(), " Question" );
65+ module ->add (chaiscript::constructor<
66+ Question (std::string, std::vector<Answer>,
67+ std::function<bool (const float , const float , Game &, Object &)>,
68+ std::function<void (const float , const float , Game &, Object &)>)>(), " Question" );
69+
70+ module ->add (chaiscript::user_type<Conversation>(), " Conversation" );
71+ module ->add (chaiscript::constructor<Conversation (std::vector<Question>)>(), " Conversation" );
72+
73+ module ->add (chaiscript::user_type<Game_Action>(), " Game_Action" );
74+ module ->add (chaiscript::constructor<Game_Action (std::string, std::function<void (const float , const float , Game &)>)>(), " Game_Action" );
75+ ADD_FUN (Game_Action, description);
76+ ADD_FUN (Game_Action, action);
77+
78+ module ->add (chaiscript::user_type<Object_Action>(), " Object_Action" );
79+ module ->add (chaiscript::constructor<Object_Action (std::string, std::function<void (const float , const float , Game &, Object &)>)>(), " Object_Action" );
80+ ADD_FUN (Object_Action, description);
81+ ADD_FUN (Object_Action, action);
82+
83+
84+ module ->add (chaiscript::user_type<Object>(), " Game_Object" );
85+ module ->add (chaiscript::constructor<Object (std::string, Tileset, const int , const bool ,
86+ std::function<void (const float , const float , Game &, Object &, sf::Sprite &)>,
87+ std::function<std::vector<Object_Action>(const float , const float , Game &, Object &)>)>(), " Game_Object" );
88+
89+ ADD_FUN (Object, update);
90+ ADD_FUN (Object, get_actions);
91+ ADD_FUN (Object, do_collision);
92+ ADD_FUN (Object, set_position);
93+
94+ module ->add (chaiscript::constructor<Tile_Properties (bool )>(), " Tile_Properties" );
95+ module ->add (chaiscript::constructor<Tile_Properties (bool , std::function<void (float , float )>)>(), " Tile_Properties" );
96+ ADD_FUN (Tile_Properties, do_movement_action);
97+ ADD_FUN (Tile_Properties, passable);
98+ ADD_FUN (Tile_Properties, movement_action);
99+
100+ module ->add (chaiscript::constructor<Tile_Defaults (const int , Tile_Properties)>(), " Tile_Defaults" );
101+
102+ module ->add (chaiscript::constructor<Tile_Map (Game &, const std::string &, std::vector<Tile_Defaults>)>(), " Tile_Map" );
103+
104+ ADD_FUN (Tile_Map, add_enter_action);
105+ ADD_FUN (Tile_Map, enter);
106+ ADD_FUN (Tile_Map, dimensions_in_pixels);
107+ ADD_FUN (Tile_Map, add_object);
108+ ADD_FUN (Tile_Map, get_bounding_box);
109+ ADD_FUN (Tile_Map, test_move);
110+ ADD_FUN (Tile_Map, get_collisions);
111+ ADD_FUN (Tile_Map, adjust_move);
112+ ADD_FUN (Tile_Map, do_move);
113+ ADD_FUN (Tile_Map, update);
114+ ADD_FUN (Tile_Map, set_collision_action);
115+ ADD_FUN (Tile_Map, set_action_generator);
116+
117+ module ->add (chaiscript::type_conversion<std::string, sf::String>());
118+
119+ return module ;
120+ }
121+
122+ }
0 commit comments