/* 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); } }