diff options
author | Stijn Buys <ingar@osirion.org> | 2008-09-28 15:05:13 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-09-28 15:05:13 +0000 |
commit | fd778219e40c5fbb4d0af1839cbc313caaf10d9d (patch) | |
tree | b6e413f4c1a5ba4091503ba97c784278485d3933 /src/game/base/base.h | |
parent | bedcff956d253621ec00aa7d2919c22a4c88b0b2 (diff) |
move base game module to new subdirectory
Diffstat (limited to 'src/game/base/base.h')
-rw-r--r-- | src/game/base/base.h | 77 |
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__ + |