#include "sgp.h" #include "Game Clock.h" #include "Font Control.h" #include "Timer Control.h" #include "Overhead.h" #include "Game Clock.h" #include "message.h" #include "worlddef.h" #include "Soldier Create.h" #include "Soldier Add.h" #include "Strategic Turns.h" #include "Isometric Utils.h" #include "Animation Data.h" #include "Animation Control.h" #include "Tactical Turns.h" #include "Strategic Turns.h" #include "rt time defines.h" #include "Assignments.h" UINT32 guiLastStrategicTime = 0; UINT32 guiLastTacticalRealTime = 0; void StrategicTurnsNewGame( ) { // Sync game start time SyncStrategicTurnTimes( ); } void SyncStrategicTurnTimes( ) { guiLastStrategicTime = GetWorldTotalSeconds( ); guiLastTacticalRealTime = GetJA2Clock( ); } 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 HandleStrategicTurnImplicationsOfExitingCombatMode( void ) { SyncStrategicTurnTimes(); HandleTacticalEndTurn( /*GetWorldTotalSeconds()*/ ); // doesn't take parameters }