mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
97 lines
2.2 KiB
C++
97 lines
2.2 KiB
C++
#include "sgp.h"
|
|
#include "Game Clock.h"
|
|
#include "Timer Control.h"
|
|
#include "Overhead.h"
|
|
#include <Overhead Types.h>
|
|
#include "Strategic Turns.h"
|
|
#include "Tactical Turns.h"
|
|
#include "rt time defines.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
|
|
}
|