void PackageOptions::_updateC3paths()
{
  if( _d->edCaesar3Music )
  {
    _d->edCaesar3Music->setText( SETTINGS_VALUE( c3music ).toString() );
  }

  if( _d->edCaesar3Video )
  {
    _d->edCaesar3Video->setText( SETTINGS_VALUE( c3video ).toString() );
  }
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
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();
}
Ejemplo n.º 5
0
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();
}
Ejemplo n.º 9
0
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");
  }
}
Ejemplo n.º 10
0
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 );
}