Example #1
0
ShowMainMenu::~ShowMainMenu()
{
  _game->reset();

  switch( _screen->result() )
  {
  case StartMenu::startNewGame:
  {
    std::srand( DateTime::elapsedTime() );
    std::string startMission = ":/missions/tutorial.mission";

    bool loadOk = _game->load( startMission );
    _game->player()->setName( startMenu->playerName() );

    Logger::warning( (loadOk ? "Career: start mission " : "Career: cant load mission") + startMission );

    _game->setNextScreen( loadOk ? SCREEN_GAME : SCREEN_MENU );
  }
  break;

  case StartMenu::reloadScreen:
    _game->setNextScreen( SCREEN_MENU );
  break;

  case StartMenu::loadSavedGame:
  case StartMenu::loadMission:
  {
    bool loadOk = _game->load( startMenu->mapName() );
    Logger::warning( (loadOk ? "ScreenMenu: end loading mission/sav" : "ScreenMenu: cant load file") + startMenu->mapName()  );

    _game->setNextScreen( loadOk ? SCREEN_GAME : SCREEN_MENU );
  }
  break;

  case StartMenu::loadMap:
  {
    bool loadOk = _game->load( startMenu->mapName() );
    Logger::warning( (loadOk ? "ScreenMenu: end loading map" : "ScreenMenu: cant load map") + startMenu->mapName() );

    game::freeplay::addPopulationMilestones( _game->city() );
    game::freeplay::initBuildOptions(_game->city() );
    game::freeplay::addEvents( _game->city());
    game::freeplay::resetFavour( _game->city() );

    _game->setNextScreen( loadOk ? SCREEN_GAME : SCREEN_MENU );
  }
  break;

  case StartMenu::closeApplication:
  {
    _game->setNextScreen( SCREEN_QUIT );
  }
  break;

  default:
    _CAESARIA_DEBUG_BREAK_IF( "Unexpected result event" );
  }
}
PositionAnimator::PositionAnimator( Widget* node, 
                                    int flags,
                                    const Point& stopPos,
                                    int time )
	: WidgetAnimator( node, flags ), _d( new Impl )
{
  //"parent must be exist"
  _CAESARIA_DEBUG_BREAK_IF( !node );

	_d->stopPos = stopPos;
  _d->time = time;
  _d->lastTimeUpdate = DateTime::elapsedTime();

	restart();
}
Example #3
0
Directory Directory::up() const
{
  if( toString().empty() )
    return Directory();

  Path pathToAny = removeEndSlash();
  std::string::size_type index = pathToAny.toString().find_last_of( "/" );

  if( index != std::string::npos )
  {
    return Path( pathToAny.toString().substr( 0, index ) );
  }

  _CAESARIA_DEBUG_BREAK_IF( !exist() );
  return Directory();
}
Example #4
0
MissionSelect::~MissionSelect()
{
  switch( _screen->result() )
  {
  case Briefing::loadMission:
  {
    bool loadOk = _game->load( _briefing->getMapName() );
    Logger::warning( (loadOk ? "Briefing: end loading file" : "Briefing: cant load file") + _briefing->getMapName() );

    _game->setNextScreen( loadOk ? SCREEN_GAME : SCREEN_MENU );
  }
  break;

  default:
    _CAESARIA_DEBUG_BREAK_IF( "Briefing: unexpected result event" );
  }
}
Example #5
0
/**
 * parse string with colons
 */
Variant Json::parseString(const std::string &json, int &index, bool &success)
{
        std::string s;
        char c;

        Json::eatWhitespace(json, index);

        c = json[index++];

        bool complete = false;
        while(!complete)
        {
          if(index == (int)json.size())
          {
            break;
          }

          c = json[index++];

          if(c == '\"')
          {
            complete = true;
            break;
          }
          else if(c == '\\')
          {
            if(index == (int)json.size())
            {
              break;
            }

            c = json[index++];

            if( c == '\"' || c == '\\' )
            {
              s += c;
            }
            else if(c == '/')
            {
              s.append("/");
            }
            else if(c == 'b')
            {
              s.append("\b");
            }
            else if(c == 'f')
            {
              s.append("\f");
            }
            else if(c == 'n')
            {
              s.append("\n");
            }
            else if(c == 'r')
            {
              s.append("\r");
            }
            else if(c == 't')
            {
              s.append("\t");
            }
            else if(c == 'u')
            {
//                                 int remainingLength = json.size() - index;
// 
//                                 if(remainingLength >= 4)
//                                 {
//                                         std::string unicodeStr = json.substr(index, 4);
// 
//                                         int symbol = utils::fromHex( unicodeStr.c_str() );
// 
//                                         s.append( symbol );
// 
//                                         index += 4;
//                                 }
//                                 else
//                                 {
//                                         break;
//                                 }
              _CAESARIA_DEBUG_BREAK_IF( true && "yet not work")
            }
          }
          else
          {
            s += c;
          }
        }
Example #6
0
	inline T *operator->() const
	{
		_CAESARIA_DEBUG_BREAK_IF( !d );
		return d;
	}
Example #7
0
	inline T& operator*() const
	{
		_CAESARIA_DEBUG_BREAK_IF( !d );
		return *d;
	}