Merged from revision: 7099

Minor fixes/improvements for existing features (by Sevenfm)
1) Slightly reduced the size of merc's healthbar to fit general ja visual style.
2) Removed some unnecessary options for SHOW_HEALTHBARSOVERHEAD, SHOW_COVER_INDICATOR.
3) Several minor fixes.
4) New option: ENEMY_CLOCK_SPEED_PERCENT - set clock speed during enemy turns.
With this option, player can set default speed to comfortable value (100-120) and set increased speed for enemy turns (150-200).

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7100 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2014-03-20 09:17:39 +00:00
parent 51f2eaff78
commit 9734b094fc
6 changed files with 27 additions and 15 deletions
+3 -2
View File
@@ -1054,13 +1054,13 @@ void LoadGameExternalOptions()
//gGameExternalOptions.fHideEnemyHealthText = iniReader.ReadBoolean("Tactical Interface Settings","HIDE_ENEMY_HEALTH_TEXT", FALSE); //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 // 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 // sevenfm: show health over enemy
gGameExternalOptions.ubShowEnemyHealth = iniReader.ReadInteger("Tactical Interface Settings","SHOW_ENEMY_HEALTH", 1, 0, 6); gGameExternalOptions.ubShowEnemyHealth = iniReader.ReadInteger("Tactical Interface Settings","SHOW_ENEMY_HEALTH", 1, 0, 6);
// sevenfm: show cover indicator // 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 // WANNE: Hide the hit count when enemy gets hit
gGameExternalOptions.ubEnemyHitCount = iniReader.ReadInteger("Tactical Interface Settings","ENEMY_HIT_COUNT", 0, 0, 4); gGameExternalOptions.ubEnemyHitCount = iniReader.ReadInteger("Tactical Interface Settings","ENEMY_HIT_COUNT", 0, 0, 4);
@@ -2208,6 +2208,7 @@ void LoadGameExternalOptions()
gGameExternalOptions.iFastForwardKey = ParseKeyString(sFFKeyBuffer); gGameExternalOptions.iFastForwardKey = ParseKeyString(sFFKeyBuffer);
gGameExternalOptions.iFastForwardPeriod = (FLOAT)iniReader.ReadDouble("Clock Settings","FAST_FORWARD_PERIOD", 500, 1, 10000); 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.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); gGameExternalOptions.iNotifyFrequency = iniReader.ReadInteger("Clock Settings","UPDATE_FREQUENCY", 16000, 1000, 20000);
// sevenfm: improved auto fast forwarding // sevenfm: improved auto fast forwarding
+1
View File
@@ -1283,6 +1283,7 @@ typedef struct
INT32 iNotifyFrequency; INT32 iNotifyFrequency;
// Frequency that the screen is updated // Frequency that the screen is updated
FLOAT fClockSpeedPercent; FLOAT fClockSpeedPercent;
FLOAT fEnemyClockSpeedPercent;
// sevenfm: improved auto fast forwarding // sevenfm: improved auto fast forwarding
UINT8 ubAutoFastForwardEnemies; UINT8 ubAutoFastForwardEnemies;
+1
View File
@@ -4383,6 +4383,7 @@ BOOLEAN LoadSavedGame( int ubSavedGameID )
ShutdownNPCQuotes(); ShutdownNPCQuotes();
SetFastForwardMode(FALSE); // FF can sometimes be active if quick-load during AI turn transition 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 //very small TODO
//Bugfix = Stop the chopter sound //Bugfix = Stop the chopter sound
+15 -13
View File
@@ -1908,8 +1908,8 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
BOOLEAN bStealth = pSoldier->bStealthMode || pSoldier->bSoldierFlagMask & ( SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER ); BOOLEAN bStealth = pSoldier->bStealthMode || pSoldier->bSoldierFlagMask & ( SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER );
// sevenfm: for mercs use name color as cover indicator // sevenfm: for mercs use name color as cover indicator
if( pSoldier->bTeam == OUR_TEAM && ! ( pSoldier->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_ROBOT) ) && if( pSoldier->bTeam == OUR_TEAM && ! ( pSoldier->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_ROBOT) ) &&
( ( gGameExternalOptions.ubShowCoverIndicator == 2 && ( bInCombat || bStealth ) ) || ( ( gGameExternalOptions.ubShowCoverIndicator == 1 && ( bInCombat || bStealth ) ) ||
( gGameExternalOptions.ubShowCoverIndicator == 4 && bStealth ) ) ) ( gGameExternalOptions.ubShowCoverIndicator == 2 && bStealth ) ) )
{ {
INT8 cover = 3; // MAX_COVER INT8 cover = 3; // MAX_COVER
BOOLEAN showCover; BOOLEAN showCover;
@@ -2094,17 +2094,17 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 ) if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 )
{ {
INT16 interval = gGameExternalOptions.ubShowHealthBarsOnHead; INT16 interval = gGameExternalOptions.ubShowHealthBarsOnHead;
if( interval > 3 ) //if( interval > 3 )
interval -= 2; // interval -= 2;
sXPos += 25; sXPos += 27;
sYPos += 7; 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 ) if ( iBack != -1 )
SetBackgroundRectFilled( iBack ); 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 // 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.uiFlags & TURNBASED ) && (gTacticalStatus.uiFlags & INCOMBAT) &&
gTacticalStatus.ubCurrentTeam == OUR_TEAM) gTacticalStatus.ubCurrentTeam == OUR_TEAM)
{ {
@@ -2462,7 +2462,7 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
if( gGameExternalOptions.ubShowEnemyHealth > 1 && gTacticalStatus.ubCurrentTeam == OUR_TEAM ) if( gGameExternalOptions.ubShowEnemyHealth > 1 && gTacticalStatus.ubCurrentTeam == OUR_TEAM )
{ {
UINT8 ubLines = gGameExternalOptions.ubShowEnemyHealth - 1; UINT8 ubLines = gGameExternalOptions.ubShowEnemyHealth - 1;
INT32 iBarWidth = 26; INT32 iBarWidth = 24;
INT32 iBarHeight; INT32 iBarHeight;
iBarHeight = 2 + 3 * ubLines - 1; 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 // sevenfm: draw background for alt bar
if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 ) 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 // draw border: light brown for stealth mode, grey for regular
if(pSoldier->bStealthMode) if(pSoldier->bStealthMode)
{ {
@@ -3667,9 +3667,9 @@ void DrawBarsInUIBox( SOLDIERTYPE *pSoldier , INT16 sXPos, INT16 sYPos, INT16 sW
if ( pSoldier->ubID == gusSelectedSoldier ) if ( pSoldier->ubID == gusSelectedSoldier )
{ {
if(gbPixelDepth==16) 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 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 ) if( gGameExternalOptions.ubShowHealthBarsOnHead > 1 )
{ {
dPercentage = (FLOAT)( __min(100, ( (FLOAT)100 * CalcEffectiveShockLevel( pSoldier ) ) / CalcSuppressionTolerance( pSoldier ) ) ) / (FLOAT)100; 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 ); 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 bDisguised = pSoldier->bSoldierFlagMask & (SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER);
BOOLEAN bStealth = pSoldier->bStealthMode; BOOLEAN bStealth = pSoldier->bStealthMode;
// draw cover indicators // 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 ); DrawBar( sXPos+33, sYPos+1, 1+sHeight , (interval==3 ? 2 : 3 )*interval-1, color8, color16, pDestBuf );
} }
} }
*/
UnLockVideoSurface( FRAME_BUFFER ); UnLockVideoSurface( FRAME_BUFFER );
+1
View File
@@ -148,6 +148,7 @@ void HandleTacticalEndTurn( )
// Every few turns...... // Every few turns......
SetFastForwardMode(FALSE); // Cancel FF at end of battle SetFastForwardMode(FALSE); // Cancel FF at end of battle
SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed
// Get time elasped // Get time elasped
uiTime = GetWorldTotalSeconds( ); uiTime = GetWorldTotalSeconds( );
+6
View File
@@ -167,6 +167,7 @@ void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode )
// EV_S_BEGINTURN SBeginTurn; // EV_S_BEGINTURN SBeginTurn;
SetFastForwardMode(FALSE); SetFastForwardMode(FALSE);
SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed
gTacticalStatus.ubDisablePlayerInterrupts = FALSE; gTacticalStatus.ubDisablePlayerInterrupts = FALSE;
@@ -527,6 +528,8 @@ void BeginTeamTurn( UINT8 ubTeam )
SetFastForwardMode( (ubTeam != OUR_TEAM) ); SetFastForwardMode( (ubTeam != OUR_TEAM) );
} }
} }
if( !is_networked && ubTeam != OUR_TEAM )
SetClockSpeedPercent(gGameExternalOptions.fEnemyClockSpeedPercent); // sevenfm: set clock speed for enemy turn
while( 1 ) while( 1 )
{ {
@@ -855,6 +858,7 @@ void StartInterrupt( void )
// disable ff mode // disable ff mode
SetFastForwardMode(FALSE); SetFastForwardMode(FALSE);
SetClockSpeedPercent(gGameExternalOptions.fClockSpeedPercent); // sevenfm: set default clock speed
// build string for display of who gets interrupt // build string for display of who gets interrupt
//while( 1 ) //while( 1 )
@@ -1489,6 +1493,8 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred )
SetFastForwardMode( (gTacticalStatus.ubCurrentTeam != OUR_TEAM) ); SetFastForwardMode( (gTacticalStatus.ubCurrentTeam != OUR_TEAM) );
} }
} }
if( !is_networked && gTacticalStatus.ubCurrentTeam != OUR_TEAM )
SetClockSpeedPercent(gGameExternalOptions.fEnemyClockSpeedPercent); // sevenfm: set clock speed for enemy turn
} }