Skip to content

Commit 4f3c5f8

Browse files
committed
Add namespace 'spiced'
1 parent ae28b54 commit 4f3c5f8

14 files changed

+1269
-1218
lines changed

CMakeLists.txt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,9 @@ endif()
2121

2222
find_package(SFML 2 REQUIRED system window graphics network audio main)
2323

24+
option(MULTITHREAD_SUPPORT_ENABLED "Multithreaded Support Enabled" FALSE)
2425

25-
# MINGW does not yet support C++11's concurrency features
26-
if(MINGW)
27-
option(MULTITHREAD_SUPPORT_ENABLED "Multithreaded Support Enabled" FALSE)
28-
else()
29-
option(MULTITHREAD_SUPPORT_ENABLED "Multithreaded Support Enabled" TRUE)
30-
endif()
31-
26+
find_program(CPACK_IFW_BINARYCREATOR_EXECUTABLE name binarycreator.exe PATHS "C:/Qt/QtIFW2.0.1/bin")
3227

3328
if(CMAKE_COMPILER_IS_GNUCC)
3429
option(ENABLE_COVERAGE "Enable Coverage Reporting in GCC" FALSE)
@@ -210,7 +205,8 @@ file(COPY sample_game DESTINATION ${CMAKE_BINARY_DIR})
210205

211206
if (CMAKE_HOST_WIN32)
212207
install(TARGETS spiced RUNTIME DESTINATION .)
213-
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/sample_game/ DESTINATION .)
208+
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/sample_game/ DESTINATION .
209+
PATTERN "*~" EXCLUDE)
214210
else()
215211
install(TARGETS spiced RUNTIME DESTINATION bin)
216212
endif()

src/chaiscript_bindings.cpp

Lines changed: 110 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,118 +1,122 @@
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+
}

src/chaiscript_bindings.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace chaiscript {
66
class Module;
77
}
88

9-
std::shared_ptr<chaiscript::Module> create_chaiscript_bindings();
9+
namespace spiced {
10+
std::shared_ptr<chaiscript::Module> create_chaiscript_bindings();
11+
}
1012

1113
#endif

src/chaiscript_creator.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
#include "ChaiScript/include/chaiscript/chaiscript.hpp"
22
#include "chaiscript_stdlib.hpp"
33
#include "chaiscript_bindings.hpp"
4+
#include "chaiscript_creator.hpp"
45

5-
std::unique_ptr<chaiscript::ChaiScript> create_chaiscript()
6-
{
7-
auto chai = std::unique_ptr<chaiscript::ChaiScript>(new chaiscript::ChaiScript(create_chaiscript_stdlib()));
8-
chai->add(create_chaiscript_bindings());
9-
return chai;
10-
}
6+
namespace spiced {
7+
std::unique_ptr<chaiscript::ChaiScript> create_chaiscript()
8+
{
9+
auto chai = std::unique_ptr<chaiscript::ChaiScript>(new chaiscript::ChaiScript(create_chaiscript_stdlib()));
10+
chai->add(create_chaiscript_bindings());
11+
return chai;
12+
}
1113

14+
}

src/chaiscript_creator.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace chaiscript {
66
class ChaiScript;
77
}
88

9-
std::unique_ptr<chaiscript::ChaiScript> create_chaiscript();
9+
namespace spiced {
10+
std::unique_ptr<chaiscript::ChaiScript> create_chaiscript();
11+
}
1012

1113
#endif

src/chaiscript_stdlib.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#include "ChaiScript/include/chaiscript/chaiscript_stdlib.hpp"
22
#include "chaiscript_stdlib.hpp"
33

4-
std::shared_ptr<chaiscript::Module> create_chaiscript_stdlib()
5-
{
6-
return chaiscript::Std_Lib::library();
4+
namespace spiced {
5+
std::shared_ptr<chaiscript::Module> create_chaiscript_stdlib()
6+
{
7+
return chaiscript::Std_Lib::library();
8+
}
79
}
810

src/chaiscript_stdlib.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace chaiscript {
66
class Module;
77
}
88

9-
std::shared_ptr<chaiscript::Module> create_chaiscript_stdlib();
9+
namespace spiced {
10+
std::shared_ptr<chaiscript::Module> create_chaiscript_stdlib();
11+
}
1012

1113
#endif

0 commit comments

Comments
 (0)