Files
source/Strategic/Strategic Turns.cpp
BeatAroundTheBuscherandGitHub ed00830202 Fixes Upper/Lower Casing for include paths (#487)
* Fixing upper/lower case for includes

types.h, zconf.h and zlib.h were renamed so that global includes like Types.h
are not used.
2025-08-16 22:01:12 -03:00

107 lines
2.5 KiB
C++

#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
}