From 95ca0e469ef856c0182bb0da411e4417391e3780 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 5 Feb 2008 00:10:02 +0000 Subject: renamed client and server application objects cleaned up namespaces --- src/server/server.cc | 97 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 5 deletions(-) (limited to 'src/server/server.cc') diff --git a/src/server/server.cc b/src/server/server.cc index fc37aa6..b6b6515 100644 --- a/src/server/server.cc +++ b/src/server/server.cc @@ -4,17 +4,104 @@ the terms and conditions of the GNU General Public License version 2 */ -// project headers - -#include "server/application.h" #include "server/console.h" +#include "server/server.h" +#include "server/timer.h" +#include "core/core.h" #include "game/game.h" namespace server { -Application application; -Console console; +//--- private definition ------------------------------------------ + +/// server Application implementation +class Server : public core::ApplicationInterface { +public: + /// initialize the server Application + virtual void init(); + + /// run the server Application + virtual void run(); + + /// shutdown the server Application + virtual void shutdown(); + + /// quit the server Application + virtual void quit(int status); +}; + +Server app; game::Game *game; +//--- public ------------------------------------------------------ + +/// the server main loop +void main(int count, char **arguments) +{ + std::cout << "The Osirion Project " << VERSION << std::endl; + for (int i =0; i < count; i++) + std::cout << arguments[i] << " "; + std::cout << std::endl; + + app.init(); + app.run(); + app.shutdown(); +} + +//--- private ----------------------------------------------------- + +void Server::init() +{ + // FIXME core should be able to load game.so - + // force initialization of the game object + server::game = new game::Game(); + + con_print << "Initializing server..." << std::endl; + + core::ApplicationInterface::init(); + + console::init(); + + core::ApplicationInterface::connect(); } +void Server::run() +{ + const float server_framerate = 1.0f / 20.0f; + server::Timer timer; + + timer.mark(); + + while(true) { + float elapsed = timer.elapsed(); + + frame(elapsed); + + sys::sleep(server_framerate - elapsed); + timer.mark(); + } + +} + +void Server::shutdown() +{ + con_debug << "Shutting down server..." << std::endl; + + console::shutdown(); + + core::ApplicationInterface::shutdown(); + + quit(0); +} + +void Server::quit(int status) +{ + // FIXME core should be able to unload game.so + delete server::game; + + core::ApplicationInterface::quit(status); +} + + +} // namespace server + -- cgit v1.2.3