summaryrefslogtreecommitdiffstats
path: root/engine/include/flatland.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'engine/include/flatland.hpp')
-rw-r--r--engine/include/flatland.hpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/engine/include/flatland.hpp b/engine/include/flatland.hpp
new file mode 100644
index 0000000..e01201f
--- /dev/null
+++ b/engine/include/flatland.hpp
@@ -0,0 +1,75 @@
+#ifndef __FLATLAND_H__
+#define __FLATLAND_H__
+
+namespace flat {
+
+class FlatWindow;
+
+typedef void (*gameloop)(float);
+
+struct flat_status
+{
+
+ flat_status(unsigned char video = 1,
+ unsigned char audio = 1,
+ unsigned char timer = 1,
+ unsigned char events = 1,
+ unsigned char joystick = 0,
+ unsigned char controller = 0,
+ unsigned char haptic = 0,
+ unsigned char error = 0,
+ unsigned char running = 0,
+ unsigned char loop = 0)
+
+ : video(video), audio(audio), timer(timer), events(events),
+ joystick(joystick), controller(controller), haptic(haptic),
+ error(error), running(running), loop(loop) {}
+
+ unsigned char video:1;
+ unsigned char audio:1;
+ unsigned char timer:1;
+ unsigned char joystick:1;
+ unsigned char controller:1;
+ unsigned char haptic:1;
+ unsigned char events:1;
+ unsigned char error:1;
+ unsigned char running:1;
+ unsigned char loop:1;
+};
+
+int init_flatland(FlatWindow*, gameloop, const flat_status&, float fps = 60);
+void quit_flatland();
+
+namespace core {
+
+ class job;
+ class task;
+ class channel;
+}
+
+/* Engine channels */
+
+core::channel& core_chan();
+core::channel& error_chan();
+
+/* Main job access */
+
+core::job& game_job();
+
+/* Window and status accessors */
+
+FlatWindow * getFlatWindow();
+
+flat_status flatland_status();
+
+/* Window and status modifiers */
+
+void load_flatland_status(const flat_status&);
+
+/* Common defined variables */
+
+extern float flatland_dt;
+
+}
+
+#endif