From f794b9ee52293cefd6ac73fdf0d2a01c5388f057 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 31 Jan 2008 18:22:44 +0000 Subject: modular system works now --- src/server/Makefile.am | 9 +++++--- src/server/console.cc | 7 ++++--- src/server/main.cc | 35 ++++--------------------------- src/server/server.cc | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/server/server.h | 22 ++++++++++++++++++++ 5 files changed, 92 insertions(+), 37 deletions(-) create mode 100644 src/server/server.cc create mode 100644 src/server/server.h (limited to 'src/server') diff --git a/src/server/Makefile.am b/src/server/Makefile.am index 9e99900..f842c05 100644 --- a/src/server/Makefile.am +++ b/src/server/Makefile.am @@ -1,9 +1,12 @@ -INCLUDES = -I$(top_srcdir)/src METASOURCES = AUTO bin_PROGRAMS = osiriond -osiriond_SOURCES = console.cc main.cc timer.cc +osiriond_SOURCES = console.cc main.cc server.cc timer.cc osiriond_LDADD = $(top_builddir)/src/math/libmath.la \ $(top_builddir)/src/common/libcommon.la \ $(top_builddir)/src/filesystem/libfilesystem.la \ + $(top_builddir)/src/core/libcore.la \ $(top_builddir)/src/game/libgame.la -noinst_HEADERS = console.h timer.h +noinst_HEADERS = console.h server.h timer.h + +INCLUDES = -I$(top_srcdir)/src + diff --git a/src/server/console.cc b/src/server/console.cc index 7a2d82d..3df0e09 100644 --- a/src/server/console.cc +++ b/src/server/console.cc @@ -1,13 +1,14 @@ /* server/console.cc - This file is part of the Osirion project and is distributed under - the terms and conditions of the GNU General Public License version 2 + This file is part of the Osirion project and is distributed under + the terms and conditions of the GNU General Public License version 2 */ #include "server/console.h" #include -namespace server { +namespace server +{ std::ostream & Console::messagestream() { return std::cout; diff --git a/src/server/main.cc b/src/server/main.cc index ae74471..56b29a8 100644 --- a/src/server/main.cc +++ b/src/server/main.cc @@ -4,40 +4,13 @@ the terms and conditions of the GNU General Public License version 2 */ -// project headers -#include "common/common.h" -#include "game/game.h" - -#include "timer.h" -#include "console.h" - -#include - -void quit(int status) -{ - exit(status); -} +#include "server/server.h" int main( int argc, char *argv[] ) { - // initialize system console; - server::Console serverconsole; - - const float server_framerate = 1.0f / 20.0f; - server::Timer timer; - - // initialize game - game::init(); - timer.mark(); + server::init(); - while(game::initialized) { - float elapsed = timer.elapsed(); - game::update(elapsed); - timer.sleep(server_framerate - elapsed); - timer.mark(); - } - // shutdown - game::shutdown(); + server::run(); - quit(0); + server::shutdown(); } diff --git a/src/server/server.cc b/src/server/server.cc new file mode 100644 index 0000000..69c58b2 --- /dev/null +++ b/src/server/server.cc @@ -0,0 +1,56 @@ +/* + server/server.cc + This file is part of the Osirion project and is distributed under + the terms and conditions of the GNU General Public License version 2 +*/ + +// project headers +#include "server/server.h" +#include "game/game.h" +#include "core/core.h" +#include "common/common.h" + +namespace server { + +// private instance of the server console object +Console console_instance; +// private instance of the game object +game::Game game_instance; + +void init() +{ + // initialize core + core::init(); + + con_debug << "Initializing server..." << std::endl; +} + +void run() +{ + + const float server_framerate = 1.0f / 20.0f; + server::Timer timer; + + timer.mark(); + + while(true) { + float elapsed = timer.elapsed(); + + core::frame(elapsed); + + timer.sleep(server_framerate - elapsed); + timer.mark(); + } + +} + +void shutdown() +{ + con_debug << "Shutting down server..." << std::endl; + + core::shutdown(); + + exit(0); +} + +} diff --git a/src/server/server.h b/src/server/server.h new file mode 100644 index 0000000..1f839a5 --- /dev/null +++ b/src/server/server.h @@ -0,0 +1,22 @@ +/* + server/server.h + This file is part of the Osirion project and is distributed under + the terms and conditions of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_SERVER_H__ +#define __INCLUDED_SERVER_H__ + +#include "server/timer.h" +#include "server/console.h" + +namespace server { + /// initialize the server + void init(); + /// run the server + void run(); + /// shutdown the server + void shutdown(); +} + +#endif // __INCLUDED_SERVER_H__ -- cgit v1.2.3