void initialize() { if (initialized) return; _RootPath = filesystem::absolute(filesystem::current_path()); _DataPath = _RootPath / L"Data"; _AssetsPath = _RootPath / L"Assets"; initLogSystem(); ZZLAB_TRACE_FUNCTION(); for (std::vector<detail::Plugin>::iterator i = plugins.begin(); i != plugins.end(); ++i) { detail::Plugin& p = *i; ZZLAB_INFO("Initialize plugin: " << p.name); if (p.init()) p.initialized = true; else ZZLAB_ERROR("Failed to initialize plugin: " << p.name); } filesystem::wpath settingPath = (_DataPath / L"settings.xml"); ZZLAB_INFO("Loading " << settingPath.wstring() << " ..."); settingsFile = new XmlFile(settingPath.string().c_str()); _Settings.parse<0>(settingsFile->data()); initialized = true; ZZLAB_INFO("Initialize succeedded"); }
void CWorldApp::init() { initI10N(); initLogSystem(); CLog::instance()->log(CLog::msgLvlVerbose,_("Initializing world server...\n")); if (!ireon::misc::printPIDToFile("ws.pid")) CLog::instance()->log(CLog::msgLvlWarn,_("PID file was not written!\n")); m_config = new CXMLConfig; if (!loadConfigFile("../config/config.xml")) { CLog::instance()->log(CLog::msgLvlCritical,_("Config file loading failure!\n")); shutdown(); } if ( SDLNet_Init() < 0 ) { CLog::instance()->log(CLog::msgLvlCritical,_("Couldn't initialize net: %s\n"), SDLNet_GetError()); shutdown(); } m_port = atoi(m_config->getFirstValue("/config/Port").c_str()); int maxCon = atoi(m_config->getFirstValue("/config/MaxConnections").c_str()); m_id = atoi(m_config->getFirstValue("/config/ID").c_str()); if( m_id == 0 ) m_id = 1; String cm = m_config->getFirstValue("/config/CM"); int cmPort = atoi(m_config->getFirstValue("/config/CMPort").c_str()); if( !maxCon ) maxCon = 1; /*=== Setting pulse handlers ===*/ m_pulseHandlers.resize(STATE_COUNT); m_pulseHandlers[STATE_CONNECTING_CM] = &CWorldApp::connectingHandler; m_pulseHandlers[STATE_RUN] = &CWorldApp::runHandler; loadResources(); if( !CWorldDB::init() ) { CLog::instance()->log(CLog::msgLvlError,_("Error initialization world DB.\n")); shutdown(); }; if( !CWorld::instance()->init() ) { CLog::instance()->log(CLog::msgLvlError,_("Error initialization world.\n")); shutdown(); }; Vector3 norm = CWorld::instance()->normalAt(0,0); CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z); norm = CWorld::instance()->normalAt(10,10); CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z); norm = CWorld::instance()->normalAt(100,100); CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z); norm = CWorld::instance()->normalAt(-50,-50); CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z); norm = CWorld::instance()->normalAt(10,1000); CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z); norm = CWorld::instance()->normalAt(-139,50); CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z); m_server = new CWorldServer; CLog::instance()->log(CLog::msgLvlInfo,_("Creating server on port %d with maximum %d connections.\n"),m_port,maxCon); if (! m_server->start(maxCon,m_port) ) { CLog::instance()->log(CLog::msgLvlError,_("Error creating server.\n")); shutdown(); } m_client = new CWSClient; m_client->initSignals(); CLog::instance()->log(CLog::msgLvlInfo,_("Connecting to cluster manager(%s:%d).\n"),cm.c_str(),cmPort); if (!m_client->connect(cm.c_str(),cmPort,0)) { CLog::instance()->log(CLog::msgLvlError,_("Error connect to cluster manager.\n")); shutdown(); }; }