diff --git a/GameSettings.cpp b/GameSettings.cpp index fee4e77d..7041ca85 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -1054,13 +1054,13 @@ void LoadGameExternalOptions() //gGameExternalOptions.fHideEnemyHealthText = iniReader.ReadBoolean("Tactical Interface Settings","HIDE_ENEMY_HEALTH_TEXT", FALSE); // Flugente: show health an fatigue bars over currently selected mercs and those we hover our mouse over - gGameExternalOptions.ubShowHealthBarsOnHead = iniReader.ReadInteger("Tactical Interface Settings","SHOW_HEALTHBARSOVERHEAD", 1, 0, 5); + gGameExternalOptions.ubShowHealthBarsOnHead = iniReader.ReadInteger("Tactical Interface Settings","SHOW_HEALTHBARSOVERHEAD", 1, 0, 3); // sevenfm: show health over enemy gGameExternalOptions.ubShowEnemyHealth = iniReader.ReadInteger("Tactical Interface Settings","SHOW_ENEMY_HEALTH", 1, 0, 6); // sevenfm: show cover indicator - gGameExternalOptions.ubShowCoverIndicator = iniReader.ReadInteger("Tactical Interface Settings","SHOW_COVER_INDICATOR", 0, 0, 4); + gGameExternalOptions.ubShowCoverIndicator = iniReader.ReadInteger("Tactical Interface Settings","SHOW_COVER_INDICATOR", 0, 0, 2); // WANNE: Hide the hit count when enemy gets hit gGameExternalOptions.ubEnemyHitCount = iniReader.ReadInteger("Tactical Interface Settings","ENEMY_HIT_COUNT", 0, 0, 4); @@ -2208,6 +2208,7 @@ void LoadGameExternalOptions() gGameExternalOptions.iFastForwardKey = ParseKeyString(sFFKeyBuffer); gGameExternalOptions.iFastForwardPeriod = (FLOAT)iniReader.ReadDouble("Clock Settings","FAST_FORWARD_PERIOD", 500, 1, 10000); gGameExternalOptions.fClockSpeedPercent = (FLOAT)iniReader.ReadDouble("Clock Settings","CLOCK_SPEED_PERCENT", 150, 100, 300); + gGameExternalOptions.fEnemyClockSpeedPercent = (FLOAT)iniReader.ReadDouble("Clock Settings","ENEMY_CLOCK_SPEED_PERCENT", 150, 100, 300); gGameExternalOptions.iNotifyFrequency = iniReader.ReadInteger("Clock Settings","UPDATE_FREQUENCY", 16000, 1000, 20000); // sevenfm: improved auto fast forwarding diff --git a/GameSettings.h b/GameSettings.h index 0488c54f..18531702 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -1283,6 +1283,7 @@ typedef struct INT32 iNotifyFrequency; // Frequency that the screen is updated FLOAT fClockSpeedPercent; + FLOAT fEnemyClockSpeedPercent; // sevenfm: improved auto fast forwarding UINT8 ubAutoFastForwardEnemies; diff --git a/SaveLoadGame.cpp b/SaveLoadGame.cpp index 66f4efa0..d2542dd0 100644 --- a/SaveLoadGame.cpp +++ b/SaveLoadGame.cpp @@ -4383,6 +4383,7 @@ BOOLEAN LoadSavedGame( int ubSavedGameID ) ShutdownNPCQuotes(); SetFastForwardMode(FALSE); // FF can sometimes be active if quick-load during AI turn transition + SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed //very small TODO //Bugfix = Stop the chopter sound diff --git a/Tactical/Interface.cpp b/Tactical/Interface.cpp index 8e9f6276..92c05108 100644 --- a/Tactical/Interface.cpp +++ b/Tactical/Interface.cpp @@ -1908,8 +1908,8 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID ) BOOLEAN bStealth = pSoldier->bStealthMode || pSoldier->bSoldierFlagMask & ( SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER ); // sevenfm: for mercs use name color as cover indicator if( pSoldier->bTeam == OUR_TEAM && ! ( pSoldier->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_ROBOT) ) && - ( ( gGameExternalOptions.ubShowCoverIndicator == 2 && ( bInCombat || bStealth ) ) || - ( gGameExternalOptions.ubShowCoverIndicator == 4 && bStealth ) ) ) + ( ( gGameExternalOptions.ubShowCoverIndicator == 1 && ( bInCombat || bStealth ) ) || + ( gGameExternalOptions.ubShowCoverIndicator == 2 && bStealth ) ) ) { INT8 cover = 3; // MAX_COVER BOOLEAN showCover; @@ -2094,17 +2094,17 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID ) if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 ) { INT16 interval = gGameExternalOptions.ubShowHealthBarsOnHead; - if( interval > 3 ) - interval -= 2; - sXPos += 25; + //if( interval > 3 ) + // interval -= 2; + sXPos += 27; sYPos += 7; - iBack = RegisterBackgroundRect(BGND_FLAG_SINGLE, NULL, sXPos, sYPos-1, (INT16)(sXPos + 40 ), (INT16)(sYPos + 3 + interval*3 ) ); + iBack = RegisterBackgroundRect(BGND_FLAG_SINGLE, NULL, sXPos, sYPos-1, (INT16)(sXPos + 24 ), (INT16)(sYPos + 3 + interval*3 ) ); if ( iBack != -1 ) SetBackgroundRectFilled( iBack ); - DrawBarsInUIBox( pSoldier, (INT16)(sXPos), (INT16)(sYPos), 25, interval - 1, interval ); + DrawBarsInUIBox( pSoldier, (INT16)(sXPos), (INT16)(sYPos), 20, 1, 2 ); // show AP only in turnbased combat, only during our turn - if( gGameExternalOptions.ubShowHealthBarsOnHead > 3 && + if( gGameExternalOptions.ubShowHealthBarsOnHead > 2 && (gTacticalStatus.uiFlags & TURNBASED ) && (gTacticalStatus.uiFlags & INCOMBAT) && gTacticalStatus.ubCurrentTeam == OUR_TEAM) { @@ -2462,7 +2462,7 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID ) if( gGameExternalOptions.ubShowEnemyHealth > 1 && gTacticalStatus.ubCurrentTeam == OUR_TEAM ) { UINT8 ubLines = gGameExternalOptions.ubShowEnemyHealth - 1; - INT32 iBarWidth = 26; + INT32 iBarWidth = 24; INT32 iBarHeight; iBarHeight = 2 + 3 * ubLines - 1; @@ -3653,7 +3653,7 @@ void DrawBarsInUIBox( SOLDIERTYPE *pSoldier , INT16 sXPos, INT16 sYPos, INT16 sW // sevenfm: draw background for alt bar if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 ) { - DrawBar( sXPos+2, sYPos, 28, 1 + interval*3, COLOR_BLACK, Get16BPPColor( FROMRGB( 0, 0, 0 ) ), pDestBuf ); + DrawBar( sXPos+2, sYPos, sWidth + 2, 1 + interval*3, COLOR_BLACK, Get16BPPColor( FROMRGB( 0, 0, 0 ) ), pDestBuf ); // draw border: light brown for stealth mode, grey for regular if(pSoldier->bStealthMode) { @@ -3667,9 +3667,9 @@ void DrawBarsInUIBox( SOLDIERTYPE *pSoldier , INT16 sXPos, INT16 sYPos, INT16 sW if ( pSoldier->ubID == gusSelectedSoldier ) { if(gbPixelDepth==16) - RectangleDraw( TRUE, sXPos+1, sYPos-1, sXPos+30, sYPos+1+interval*3, color16, pDestBuf); + RectangleDraw( TRUE, sXPos+1, sYPos-1, sXPos+sWidth+3, sYPos+1+interval*3, color16, pDestBuf); else - RectangleDraw8( TRUE, sXPos+1, sYPos-1, sXPos+30, sYPos+1+interval*3, color8, pDestBuf); + RectangleDraw8( TRUE, sXPos+1, sYPos-1, sXPos+sWidth+3, sYPos+1+interval*3, color8, pDestBuf); } } @@ -3752,10 +3752,11 @@ void DrawBarsInUIBox( SOLDIERTYPE *pSoldier , INT16 sXPos, INT16 sYPos, INT16 sW if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 ) { dPercentage = (FLOAT)( __min(100, ( (FLOAT)100 * CalcEffectiveShockLevel( pSoldier ) ) / CalcSuppressionTolerance( pSoldier ) ) ) / (FLOAT)100; - dWidth = dPercentage * 25; + dWidth = dPercentage * sWidth; DrawBar( sXPos+3, sYPos+1+2*interval, (INT32)dWidth, sHeight, COLOR_ORANGE, Get16BPPColor( FROMRGB( 220, 140, 0 ) ), pDestBuf ); } + /* BOOLEAN bDisguised = pSoldier->bSoldierFlagMask & (SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER); BOOLEAN bStealth = pSoldier->bStealthMode; // draw cover indicators @@ -3788,6 +3789,7 @@ void DrawBarsInUIBox( SOLDIERTYPE *pSoldier , INT16 sXPos, INT16 sYPos, INT16 sW DrawBar( sXPos+33, sYPos+1, 1+sHeight , (interval==3 ? 2 : 3 )*interval-1, color8, color16, pDestBuf ); } } + */ UnLockVideoSurface( FRAME_BUFFER ); diff --git a/Tactical/Tactical Turns.cpp b/Tactical/Tactical Turns.cpp index 6421a8c4..c3aa97cc 100644 --- a/Tactical/Tactical Turns.cpp +++ b/Tactical/Tactical Turns.cpp @@ -148,6 +148,7 @@ void HandleTacticalEndTurn( ) // Every few turns...... SetFastForwardMode(FALSE); // Cancel FF at end of battle + SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed // Get time elasped uiTime = GetWorldTotalSeconds( ); diff --git a/Tactical/TeamTurns.cpp b/Tactical/TeamTurns.cpp index 93efd46f..c54d2636 100644 --- a/Tactical/TeamTurns.cpp +++ b/Tactical/TeamTurns.cpp @@ -167,6 +167,7 @@ void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode ) // EV_S_BEGINTURN SBeginTurn; SetFastForwardMode(FALSE); + SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed gTacticalStatus.ubDisablePlayerInterrupts = FALSE; @@ -527,6 +528,8 @@ void BeginTeamTurn( UINT8 ubTeam ) SetFastForwardMode( (ubTeam != OUR_TEAM) ); } } + if( !is_networked && ubTeam != OUR_TEAM ) + SetClockSpeedPercent(gGameExternalOptions.fEnemyClockSpeedPercent); // sevenfm: set clock speed for enemy turn while( 1 ) { @@ -855,6 +858,7 @@ void StartInterrupt( void ) // disable ff mode SetFastForwardMode(FALSE); + SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed // build string for display of who gets interrupt //while( 1 ) @@ -1489,6 +1493,8 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) SetFastForwardMode( (gTacticalStatus.ubCurrentTeam != OUR_TEAM) ); } } + if( !is_networked && gTacticalStatus.ubCurrentTeam != OUR_TEAM ) + SetClockSpeedPercent(gGameExternalOptions.fEnemyClockSpeedPercent); // sevenfm: set clock speed for enemy turn }