Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-09-28 15:05:13 +0000
committerStijn Buys <ingar@osirion.org>2008-09-28 15:05:13 +0000
commitfd778219e40c5fbb4d0af1839cbc313caaf10d9d (patch)
treeb6e413f4c1a5ba4091503ba97c784278485d3933 /src/game/base/base.h
parentbedcff956d253621ec00aa7d2919c22a4c88b0b2 (diff)
move base game module to new subdirectory
Diffstat (limited to 'src/game/base/base.h')
-rw-r--r--src/game/base/base.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/game/base/base.h b/src/game/base/base.h
new file mode 100644
index 0000000..fea1919
--- /dev/null
+++ b/src/game/base/base.h
@@ -0,0 +1,77 @@
+/*
+ game/game.h
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+#ifndef __INCLUDED_BASE_H__
+#define __INCLUDED_BASE_H__
+
+#include <vector>
+#include <string>
+
+#include "base/ship.h"
+#include "base/star.h"
+#include "core/core.h"
+#include "filesystem/inifile.h"
+#include "sys/sys.h"
+
+/// the base game module
+/** the base game module containis the game-specific code for Project::Osirion
+ */
+namespace base
+{
+
+// entity type constants
+const unsigned int ship_enttype = 256;
+const unsigned int star_enttype = 257;
+const unsigned int planet_enttype = 258;
+const unsigned int navpoint_enttype = 259;
+const unsigned int jumppoint_enttype = 260;
+
+class Base : public core::Module {
+public:
+ Base();
+ ~Base();
+
+ /// initialize the game
+ void init();
+
+ /// shutdown the game
+ void shutdown();
+
+ /// run one time frame
+ void frame(float seconds);
+
+ /// is called when a player connects
+ void player_connect(core::Player *player);
+
+ /// is called when a player disconnects
+ void player_disconnect(core::Player *player);
+
+ static inline Base *instance() { return game_instance; }
+
+ core::Cvar *g_impulsespeed;
+ core::Cvar *g_impulseacceleration;
+ core::Cvar *g_strafespeed;
+ core::Cvar *g_jumppointrange;
+ core::Cvar *g_devel;
+
+private:
+ bool got_entity_key(filesystem::IniFile &inifile, core::Entity *entity);
+
+ bool load_world();
+
+ bool load_zone(core::Zone *zone);
+
+ bool validate_zone(core::Zone *zone);
+
+ bool load_ships();
+
+ static Base *game_instance;
+};
+
+}
+
+#endif // __INCLUDED_BASE_H__
+