void PackageOptions::_updateC3paths() { if( _d->edCaesar3Music ) { _d->edCaesar3Music->setText( SETTINGS_VALUE( c3music ).toString() ); } if( _d->edCaesar3Video ) { _d->edCaesar3Video->setText( SETTINGS_VALUE( c3video ).toString() ); } }
int main(int argc, char* argv[]) #endif { vfs::Directory workdir; #ifdef CAESARIA_PLATFORM_ANDROID workdir = vfs::Path( SDL_AndroidGetExternalStoragePath() ); #else workdir = vfs::Path( argv[0] ).directory(); #endif Logger::registerWriter( Logger::consolelog, "" ); game::Settings::instance().setwdir( workdir.toString() ); game::Settings::instance().checkwdir( argv, argc ); Logger::registerWriter( Logger::filelog, workdir.toString() ); Logger::warning( "Game: setting workdir to " + SETTINGS_VALUE( workDir ).toString() ); Logger::warning( "Game: load game settings" ); game::Settings::load(); game::Settings::instance().checkCmdOptions( argv, argc ); game::Settings::instance().checkC3present(); Logger::warning( "Game: setting language to " + SETTINGS_VALUE( language ).toString() ); Logger::warning( "Game: using native C3 resources from " + SETTINGS_VALUE( c3gfx ).toString() ); Logger::warning( "Game: set cell width %d", SETTINGS_VALUE( cellw ).toInt() ); #ifdef CAESARIA_USE_STEAM if( !steamapi::connect() ) return EXIT_FAILURE; #endif try { Game game; game.initialize(); while( game.exec() ); } catch( Exception& e ) { Logger::warning( "Critical error: " + e.getDescription() ); Stacktrace::print(); } #ifdef CAESARIA_USE_STEAM steamapi::close(); #endif return 0; }
void Level::Impl::initRender() { bool oldGraphics = KILLSWITCH(oldgfx) || !SETTINGS_STR(c3gfx).empty(); renderer.initialize( game->city(), engine, game->gui(), oldGraphics ); renderer.setViewport( engine->viewportSize() ); renderer.camera()->setScrollSpeed( SETTINGS_VALUE( scrollSpeed ) ); }
void PackageOptions::_changeCellw() { int cellWidth = SETTINGS_VALUE( cellw ); cellWidth = cellWidth == 30 ? 60 : 30; SETTINGS_SET_VALUE( cellw, cellWidth ); _update(); }
void Level::Impl::initTabletUI( Level* scene ) { //specific tablet actions bar auto& tabletUi = game->gui()->add<tablet::ActionsBar>(); tablet::ActionsHandler::assignTo( &tabletUi, scene ); tabletUi.setVisible( SETTINGS_VALUE(showTabletMenu) ); }
void PackageOptions::_update() { if( _d->btnChangeCellw ) { int cellWidth = SETTINGS_VALUE( cellw ); _d->btnChangeCellw->setText( "CellWidth: " + utils::i2str( cellWidth ) ); } if( _d->edResourcesPath ) { _d->edResourcesPath->setText( SETTINGS_VALUE( resourcePath ).toString() ); } if( _d->edCaesar3Path ) { _d->edCaesar3Path->setText( SETTINGS_VALUE( c3gfx ).toString() ); } }
void PackageOptions::_update() { if( _d->edResourcesPath ) { _d->edResourcesPath->setText( SETTINGS_VALUE( resourcePath ).toString() ); } if( _d->edCaesar3Path ) { _d->edCaesar3Path->setText( SETTINGS_VALUE( c3gfx ).toString() ); } if( _d->edScreenshots ) { _d->edScreenshots->setText( SETTINGS_VALUE( screenshotDir ).toString() ); } _updateC3paths(); }
void PackageOptions::_close() { if( _d->needRestart ) { Dialog* dlg = Information( ui(), "Note", "Please restart game to apply change" ); dlg->show(); } vfs::Directory screenDir = SETTINGS_VALUE( screenshotDir ).toString(); if( !screenDir.exist() ) vfs::Directory::createByPath( screenDir ); game::Settings::instance().save(); deleteLater(); }
void Level::animate( unsigned int time ) { _d->renderer.animate( time ); if( game::Date::isWeekChanged() ) { _d->checkWinMission(); _d->checkFailedMission( this ); } if( game::Date::isMonthChanged() ) { int autosaveInterval = SETTINGS_VALUE(autosaveInterval); if ((int)game::Date::current().month() % autosaveInterval == 0) events::dispatch<events::ScriptFunc>("OnSimulationCreateAutosave"); } }
void Saver::save(const vfs::Path& filename, const Game& game ) { VariantMap vm; vm[ SaverOptions::version ] = 1; vm[ "timemultiplier" ] = game.timeMultiplier(); VariantMap vm_scenario; vm_scenario[ "date" ] = game::Date::current(); vm_scenario[ "events" ] = events::Dispatcher::instance().save(); vm_scenario[ "translation" ] = SETTINGS_VALUE( lastTranslation ); vm_scenario[ "climate" ] = (int)game.city()->climate(); vm[ "scenario" ] = vm_scenario; vm[ SaverOptions::restartFile ] = Variant( _restartFile ); VariantMap vm_empire; game.empire()->save( vm_empire ); vm[ "empire" ] = vm_empire; VariantMap plm; game.player()->save( plm ); vm[ "player" ] = plm; VariantMap vm_city; game.city()->save( vm_city ); vm[ "city" ] = vm_city; VariantMap vm_pantheon; religion::rome::Pantheon::instance().save( vm_pantheon ); vm[ "pantheon" ] = vm_pantheon; gui::Minimap* minimap = gui::findChildA<gui::Minimap*>( true, game.gui()->rootWidget() ); if( minimap ) { vfs::Path imgPath = filename.changeExtension( "png" ); minimap->saveImage( imgPath.toString() ); } config::save( vm, filename ); }