bool GameModeInfo::fromString( const std::string & str) { m_generalGameType = 0; m_name = ""; if(str == "") { m_mode = NULL; return true; } bool fail = false; int num = from_string<int>(str, fail); if(!fail) { // interpret num as gamemode index m_mode = GameMode((GameModeIndex)num); if(m_mode) m_name = m_mode->Name(); } else { // interpret str as name m_name = str; m_mode = GameMode(m_name); } if(m_mode) m_generalGameType = m_mode->GeneralGameType(); return true; }
void CDynGameData::SetupLevelStart() { DEBUG0("CDynGameData::SetupLevelStart: Reset calls\n"); Reset(); /* Setup level*/ if (iNetworkMode!=ENetworkModeClient) { iRuntimeData->Level().Load( iGameData->Options()->EpisodeList()->Episode( iEpisode, GameMode()->DMEpisodes() )->Level(iCurrentLevel) ); iStatistics->LevelStats( iCurrentLevel ).iLevelInfo = iRuntimeData->Level().iGeneralLevelInfo; // initialize rest of the player later PlacePlayersForLevel(); if ( iGameData->Options()->Data().iEnemiesOnGame || !GameMode()->DisableEnemiesPossible() ) { iRuntimeData->InitEnemies(); } iRuntimeData->PlaceGameCrates( GameMode()->DMCrates() ); if (GameMode()->RandomPlacePlayers()) for(int a=0; a<iLocalPlayer.size(); a++) iLocalPlayer[a]->RandomPlace(); } iNextLevel=0; SetMessageWritingMode(false); }
void CDynGameData::SetupPlayers() { int b; for(b = 0; b < iLocalPlayer.size(); b++) { CPlayer* pl = iLocalPlayer[b]; Statistics()->AddPlayer( pl , true ); if ( strlen( iOptions->Data().iName[b]) <= 0 ) strcpy(pl->iName,KUnknownSoldier ); else // strcpy(pl->iName,iOptions->Data().iName[b]); pl->SetName(iOptions->Data().iName[b]); if (EF_DEBUG) pl->iCash = 50000; else pl->iCash = 500; pl->iDead = 0; pl->SetColorByIndex( b ); GameMode()->SetupPlayerEpisode( pl ); } }
void MainWindow::on_StartGameButton_clicked() { close(); Game game(GameMode(ui->comboBox_mode->currentIndex()),ui->checkBox_sound->isChecked()); game.start(); //main code }
GameModeInfo::NameWrapper& GameModeInfo::NameWrapper::operator=(const std::string& str) { GameModeInfo* info = __OLX_BASETHIS(GameModeInfo, name); // NOTE: The difference to fromString is that we don't reset generalgametype/name in case we fail here. // Also, we interpret an empty string as the request to reset (gamemodeindex=0). bool fail = false; int num = (str == "") ? 0 : from_string<int>(str, fail); if(!fail) { // interpret num as gamemode index info->m_mode = GameMode((GameModeIndex)num); if(info->m_mode) info->m_name = info->m_mode->Name(); } else { // interpret str as name info->m_name = str; info->m_mode = GameMode(info->m_name); } if(info->m_mode) info->m_generalGameType = info->m_mode->GeneralGameType(); return *this; }
void CDynGameData::PreparePlayersForLevel() { const int startPositions = iRuntimeData->Level().StartPositions(); for(int b = 0; b < iLocalPlayer.size(); b++) { CPlayer *ply = iLocalPlayer[b]; ply->Reset(PlayerDrawRect(b)); ply->Move( 0,0,0, PlayerDrawRect(b) ); ply->iEnergy = KPlayerMaxEnergy+(ply->iShield*KShieldEnergyAmount); GameMode()->SetupPlayerLevel( ply ); } }
GameModeInfo::GameModeInfo() { m_mode = GameMode(GM_DEATHMATCH); m_generalGameType = 0; m_name = "Death Match"; }