void HandleStrategicTurn( ) { UINT32 uiTime; UINT32 uiCheckTime; // OK, DO THIS CHECK EVERY ONCE AND A WHILE... if ( COUNTERDONE( STRATEGIC_OVERHEAD ) ) { RESETCOUNTER( STRATEGIC_OVERHEAD ); // if the game is paused, or we're in mapscreen and time is not being compressed if( ( GamePaused() == TRUE ) || ( ( guiCurrentScreen == MAP_SCREEN ) && !IsTimeBeingCompressed() ) ) { // don't do any of this return; } //Kris -- What to do? if( giTimeCompressMode == NOT_USING_TIME_COMPRESSION ) { SetGameTimeCompressionLevel( TIME_COMPRESS_X1 ); } uiTime = GetJA2Clock( ); // Do not handle turns update if in turnbased combat if ( ( gTacticalStatus.uiFlags & TURNBASED ) && ( gTacticalStatus.uiFlags & INCOMBAT ) ) { guiLastTacticalRealTime = uiTime; } else { // If none of these conditions are true, then don't do an end of turn uiCheckTime = 0xffffffff; if ( giTimeCompressMode == TIME_COMPRESS_X1 || giTimeCompressMode == 0 ) { uiCheckTime = NUM_REAL_SEC_PER_TACTICAL_TURN; } else { // OK, if we have compressed time...., adjust our check value to be faster.... if( giTimeCompressSpeeds[ giTimeCompressMode ] > 0 ) { uiCheckTime = NUM_REAL_SEC_PER_TACTICAL_TURN / ( giTimeCompressSpeeds[ giTimeCompressMode ] * RT_COMPRESSION_TACTICAL_TURN_MODIFIER ); } } if ( ( uiTime - guiLastTacticalRealTime ) > uiCheckTime ) { HandleTacticalEndTurn( ); guiLastTacticalRealTime = uiTime; } } } }
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; }