From 6c8446cddb37df732fc9e5fc21f98e31968ce634 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 1 Feb 2008 19:34:47 +0000 Subject: interface cleanup --- src/core/applicationinterface.cc | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/core/applicationinterface.cc (limited to 'src/core/applicationinterface.cc') diff --git a/src/core/applicationinterface.cc b/src/core/applicationinterface.cc new file mode 100644 index 0000000..9ef5c16 --- /dev/null +++ b/src/core/applicationinterface.cc @@ -0,0 +1,68 @@ +/* + core/applicationinterface.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#include "core/core.h" +#include "filesystem/filesystem.h" +#include "common/common.h" + +#include + +#include + +namespace core { + +ApplicationInterface *ApplicationInterface::applicationinterface_instance = 0; + +ApplicationInterface::ApplicationInterface() { + if (applicationinterface_instance) { + std::cerr << "multiple singleton instances: core::ApplicationInterface" << std::endl; + exit(2); + } + applicationinterface_instance = this; +} + +ApplicationInterface::~ApplicationInterface() +{ + applicationinterface_instance = 0; +} + +ApplicationInterface *ApplicationInterface::instance() +{ + return applicationinterface_instance; +} + +void ApplicationInterface::init() +{ + filesystem::init(); + + con_debug << "Initializing core..." << std::endl; + + if (game()) + game()->init(); + else + con_warn << "No game module found!" << std::endl; + +} + +void ApplicationInterface::shutdown() +{ + con_debug << "Shutting down core..." << std::endl; + + if (game()) + game()->shutdown(); + else + con_warn << "No game module found!" << std::endl; + + filesystem::shutdown(); +} + +void ApplicationInterface::frame(float seconds) +{ + if (game()) + game()->frame(seconds); +} + +} -- cgit v1.2.3