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-01-31 18:22:44 +0000
committerStijn Buys <ingar@osirion.org>2008-01-31 18:22:44 +0000
commitf794b9ee52293cefd6ac73fdf0d2a01c5388f057 (patch)
tree2838d7ee11ae49e2e519ad604ba41f7071fb8288 /src/server
parent1ddff2045848da5136e9e8131e335ac7626b8f68 (diff)
modular system works now
Diffstat (limited to 'src/server')
-rw-r--r--src/server/Makefile.am9
-rw-r--r--src/server/console.cc7
-rw-r--r--src/server/main.cc35
-rw-r--r--src/server/server.cc56
-rw-r--r--src/server/server.h22
5 files changed, 92 insertions, 37 deletions
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 <iostream>
-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 <iostream>
-
-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__