void InitStrategicLayer( void ) { // Clear starategic layer! SetupNewStrategicGame(); InitQuestEngine(); //Setup a new campaign via the enemy perspective. InitNewCampaign(); // Init Squad Lists InitSquads(); // Init vehicles InitVehicles( ); // init town loyalty InitTownLoyalty(); // init the mine management system InitializeMines(); // initialize map screen flags InitMapScreenFlags(); // initialize NPCs, select alternate maps, etc InitNPCs(); // init Skyrider and his helicopter InitializeHelicopter(); //Clear out the vehicle list ClearOutVehicleList(); InitBloodCatSectors(); InitializeSAMSites(); // make Orta, Tixa, SAM sites not found InitMapSecrets(); // free up any leave list arrays that were left allocated ShutDownLeaveList( ); // re-set up leave list arrays for dismissed mercs InitLeaveList( ); // reset time compression mode to X0 (this will also pause it) SetGameTimeCompressionLevel( TIME_COMPRESS_X0 ); // select A9 Omerta as the initial selected sector ChangeSelectedMapSector( 9, 1, 0 ); // Reset these flags or mapscreen could be disabled and cause major headache. fDisableDueToBattleRoster = FALSE; fDisableMapInterfaceDueToBattle = FALSE; }
void CCQuestLevel::Init(int nScenarioID, int nDice, CCMATCH_GAMETYPE eGameType) { CCQuestScenarioInfo* pScenario = NULL; CCMatchQuest* pQuest = CCMatchServer::GetInstance()->GetQuest(); if (CCGetGameTypeMgr()->IsQuestOnly(eGameType)) { pScenario = CCMatchServer::GetInstance()->GetQuest()->GetScenarioInfo(nScenarioID); } else if (CCGetGameTypeMgr()->IsSurvivalOnly(eGameType)) { pScenario = CCMatchServer::GetInstance()->GetQuest()->GetSurvivalScenarioInfo(nScenarioID); } else { ASSERT(0); return; } m_StaticInfo.pScenario = pScenario; m_StaticInfo.nDice = nDice - 1; // 0부터 5까지 if (m_StaticInfo.pScenario) { InitSectors(eGameType); InitNPCs(); } m_DynamicInfo.nCurrSectorIndex = 0; InitStaticInfo(eGameType); // 난이도 상수, NPC 난이도 조절 계수 등을 설정 #ifdef _DEBUG_QUEST if( nScenarioID == 100) m_StaticInfo.nQLD = 1; #endif InitCurrSector(eGameType); }