Fix: AimLevels bonus was displayed for OCTH although it doesn't apply there

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8247 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
silversurfer
2016-06-04 09:56:46 +00:00
parent 2c85d6dc03
commit 90ff5d5626
4 changed files with 76 additions and 65 deletions
+9 -9
View File
@@ -15,9 +15,9 @@
#ifdef JA2EDITOR #ifdef JA2EDITOR
#ifdef JA2UB #ifdef JA2UB
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.8247 (Development Build)" };
#else #else
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.8247 (Development Build)" };
#endif #endif
// ------------------------------ // ------------------------------
@@ -27,11 +27,11 @@
//DEBUG BUILD VERSION //DEBUG BUILD VERSION
#ifdef JA2UB #ifdef JA2UB
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.8247 (Development Build)" };
#elif defined (JA113DEMO) #elif defined (JA113DEMO)
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.8247 (Development Build)" };
#else #else
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Debug: v1.13.8247 (Development Build)" };
#endif #endif
#elif defined CRIPPLED_VERSION #elif defined CRIPPLED_VERSION
@@ -46,16 +46,16 @@
//RELEASE BUILD VERSION //RELEASE BUILD VERSION
#ifdef JA2UB #ifdef JA2UB
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.8247 (Development Build)" };
#elif defined (JA113DEMO) #elif defined (JA113DEMO)
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.8247 (Development Build)" };
#else #else
CHAR16 zVersionLabel[256] = { L"Release v1.13.8241 (Development Build)" }; CHAR16 zVersionLabel[256] = { L"Release v1.13.8247 (Development Build)" };
#endif #endif
#endif #endif
CHAR8 czVersionNumber[16] = { "Build 16.05.27" }; //YY.MM.DD CHAR8 czVersionNumber[16] = { "Build 16.06.04" }; //YY.MM.DD
CHAR16 zTrackingNumber[16] = { L"Z" }; CHAR16 zTrackingNumber[16] = { L"Z" };
// SAVE_GAME_VERSION is defined in header, change it there // SAVE_GAME_VERSION is defined in header, change it there
+63 -54
View File
@@ -5056,7 +5056,7 @@ void DrawAdvancedStats( OBJECTTYPE * gpItemDescObject )
} }
} }
///////////////////// AIMING LEVELS MODIFIER ///////////////////// AIM LEVELS MODIFIER
if ( ( GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_STAND, ITEMMODIFIER_AIMLEVELS ) != 0 if ( ( GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_STAND, ITEMMODIFIER_AIMLEVELS ) != 0
|| GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS ) != 0 || GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS ) != 0
|| GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS ) != 0 ) || || GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS ) != 0 ) ||
@@ -5064,11 +5064,14 @@ void DrawAdvancedStats( OBJECTTYPE * gpItemDescObject )
|| GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS ) != 0 || GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS ) != 0
|| GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS ) != 0 ) ) ) || GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS ) != 0 ) ) )
{ {
if (cnt >= sFirstLine && cnt < sLastLine) if( UsingNewCTHSystem() )
{ {
BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAdvancedIcon, 5, gItemDescAdvRegions[cnt-sFirstLine][0].sLeft + sOffsetX, gItemDescAdvRegions[cnt-sFirstLine][0].sTop + sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL ); if (cnt >= sFirstLine && cnt < sLastLine)
{
BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAdvancedIcon, 5, gItemDescAdvRegions[cnt-sFirstLine][0].sLeft + sOffsetX, gItemDescAdvRegions[cnt-sFirstLine][0].sTop + sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL );
}
cnt++;
} }
cnt++;
} }
///////////////////// AIM BONUS MODIFIER ///////////////////// AIM BONUS MODIFIER
@@ -10291,63 +10294,64 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject )
cnt++; cnt++;
} }
///////////////////// AIMING LEVELS MODIFIER ///////////////////// AIM LEVELS MODIFIER
iModifier[0] = GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_STAND, ITEMMODIFIER_AIMLEVELS ); if(UsingNewCTHSystem() )
iModifier[1] = GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS );
iModifier[2] = GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS );
if( fComparisonMode )
{
iComparedModifier[0] = GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_STAND, ITEMMODIFIER_AIMLEVELS );
iComparedModifier[1] = GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS );
iComparedModifier[2] = GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS );
}
if ( ( (iModifier[0] != 0 || iModifier[1] != 0 || iModifier[2] != 0) ) ||
( fComparisonMode && (iComparedModifier[0] != 0 || iComparedModifier[1] != 0 || iComparedModifier[2] != 0) ) )
{
if (cnt >= sFirstLine && cnt < sLastLine)
{ {
// Set Y coordinates iModifier[0] = GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_STAND, ITEMMODIFIER_AIMLEVELS );
sTop = gItemDescAdvRegions[cnt-sFirstLine][1].sTop; iModifier[1] = GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS );
sHeight = gItemDescAdvRegions[cnt-sFirstLine][1].sBottom - sTop; iModifier[2] = GetObjectModifier( gpItemDescSoldier, gpItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS );
if( fComparisonMode )
{
iComparedModifier[0] = GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_STAND, ITEMMODIFIER_AIMLEVELS );
iComparedModifier[1] = GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_CROUCH, ITEMMODIFIER_AIMLEVELS );
iComparedModifier[2] = GetObjectModifier( gpItemDescSoldier, gpComparedItemDescObject, ANIM_PRONE, ITEMMODIFIER_AIMLEVELS );
}
if ( ( (iModifier[0] != 0 || iModifier[1] != 0 || iModifier[2] != 0) ) ||
( fComparisonMode && (iComparedModifier[0] != 0 || iComparedModifier[1] != 0 || iComparedModifier[2] != 0) ) )
{
if (cnt >= sFirstLine && cnt < sLastLine)
{
// Set Y coordinates
sTop = gItemDescAdvRegions[cnt-sFirstLine][1].sTop;
sHeight = gItemDescAdvRegions[cnt-sFirstLine][1].sBottom - sTop;
// Print Values // Print Values
for (UINT8 cnt2 = 0; cnt2 < 3; cnt2++) for (UINT8 cnt2 = 0; cnt2 < 3; cnt2++)
{
if (UsingNewCTHSystem() == false && cnt2 > 0)
break;
SetFontForeground( 5 );
sLeft = gItemDescAdvRegions[cnt-sFirstLine][cnt2+1].sLeft;
sWidth = gItemDescAdvRegions[cnt-sFirstLine][cnt2+1].sRight - sLeft;
if( fComparisonMode )
{ {
iModifier[cnt2] = iComparedModifier[cnt2] - iModifier[cnt2]; if (UsingNewCTHSystem() == false && cnt2 > 0)
} break;
if (iModifier[cnt2] > 0) SetFontForeground( 5 );
{ sLeft = gItemDescAdvRegions[cnt-sFirstLine][cnt2+1].sLeft;
SetFontForeground( ITEMDESC_FONTNEGATIVE ); sWidth = gItemDescAdvRegions[cnt-sFirstLine][cnt2+1].sRight - sLeft;
swprintf( pStr, L"+%d", iModifier[cnt2] ); if( fComparisonMode )
FindFontCenterCoordinates( sLeft, sTop, sWidth, sHeight, pStr, BLOCKFONT2, &usX, &usY); {
} iModifier[cnt2] = iComparedModifier[cnt2] - iModifier[cnt2];
else if (iModifier[cnt2] < 0) }
{
SetFontForeground( ITEMDESC_FONTPOSITIVE ); if (iModifier[cnt2] > 0)
swprintf( pStr, L"%d", iModifier[cnt2] ); {
FindFontCenterCoordinates( sLeft, sTop, sWidth, sHeight, pStr, BLOCKFONT2, &usX, &usY); SetFontForeground( ITEMDESC_FONTNEGATIVE );
} swprintf( pStr, L"+%d", iModifier[cnt2] );
else if( fComparisonMode ) }
{ else if (iModifier[cnt2] < 0)
swprintf( pStr, L"=" ); {
FindFontCenterCoordinates( sLeft, sTop, sWidth, sHeight, pStr, BLOCKFONT2, &usX, &usY); SetFontForeground( ITEMDESC_FONTPOSITIVE );
} swprintf( pStr, L"%d", iModifier[cnt2] );
else }
{ else if( fComparisonMode )
swprintf( pStr, L"--" ); {
swprintf( pStr, L"=" );
}
else
{
swprintf( pStr, L"--" );
}
FindFontCenterCoordinates( sLeft, sTop, sWidth, sHeight, pStr, BLOCKFONT2, &usX, &usY); FindFontCenterCoordinates( sLeft, sTop, sWidth, sHeight, pStr, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, pStr );
} }
mprintf( usX, usY, pStr );
} }
cnt++;
} }
cnt++;
} }
///////////////////// AIM BONUS MODIFIER ///////////////////// AIM BONUS MODIFIER
@@ -10788,8 +10792,10 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject )
iModifier[0] = (GetDamageBonus( gpItemDescObject ) * gGameExternalOptions.iExplosivesDamageModifier) / 100; iModifier[0] = (GetDamageBonus( gpItemDescObject ) * gGameExternalOptions.iExplosivesDamageModifier) / 100;
else else
iModifier[0] = GetDamageBonus( gpItemDescObject ); iModifier[0] = GetDamageBonus( gpItemDescObject );
iModifier[1] = iModifier[0]; iModifier[1] = iModifier[0];
iModifier[2] = iModifier[0]; iModifier[2] = iModifier[0];
if( fComparisonMode ) if( fComparisonMode )
{ {
if (Item[gpComparedItemDescObject->usItem].usItemClass & (IC_GUN|IC_THROWING_KNIFE)) if (Item[gpComparedItemDescObject->usItem].usItemClass & (IC_GUN|IC_THROWING_KNIFE))
@@ -10799,9 +10805,12 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject )
else if (Item[gpComparedItemDescObject->usItem].usItemClass & (IC_EXPLOSV|IC_LAUNCHER)) else if (Item[gpComparedItemDescObject->usItem].usItemClass & (IC_EXPLOSV|IC_LAUNCHER))
iComparedModifier[0] = (GetDamageBonus( gpComparedItemDescObject ) * gGameExternalOptions.iExplosivesDamageModifier) / 100; iComparedModifier[0] = (GetDamageBonus( gpComparedItemDescObject ) * gGameExternalOptions.iExplosivesDamageModifier) / 100;
else else
iComparedModifier[0] = GetDamageBonus( gpComparedItemDescObject );
iComparedModifier[1] = iComparedModifier[0]; iComparedModifier[1] = iComparedModifier[0];
iComparedModifier[2] = iComparedModifier[0]; iComparedModifier[2] = iComparedModifier[0];
} }
if (iModifier[0] != 0 || ( fComparisonMode && iComparedModifier[0] != 0 ) ) if (iModifier[0] != 0 || ( fComparisonMode && iComparedModifier[0] != 0 ) )
{ {
if (cnt >= sFirstLine && cnt < sLastLine) if (cnt >= sFirstLine && cnt < sLastLine)
+3 -1
View File
@@ -10343,7 +10343,9 @@ INT32 GetItemModifier(OBJECTTYPE* pObj, UINT8 ubRef, UINT8 usType)
iModifier += BonusReduceMore( Item[pObj->usItem].targettrackingmodifier[ubRef], (*pObj)[0]->data.objectStatus ); iModifier += BonusReduceMore( Item[pObj->usItem].targettrackingmodifier[ubRef], (*pObj)[0]->data.objectStatus );
break; break;
case ITEMMODIFIER_AIMLEVELS: case ITEMMODIFIER_AIMLEVELS:
iModifier += Item[pObj->usItem].aimlevelsmodifier[ubRef]; // silversurfer: NCTH system only
if ( UsingNewCTHSystem() )
iModifier += Item[pObj->usItem].aimlevelsmodifier[ubRef];
break; break;
case ITEMMODIFIER_SPOTTER: case ITEMMODIFIER_SPOTTER:
+1 -1
View File
@@ -6831,7 +6831,7 @@ UINT32 CalcChanceToHitGun(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 ubAimTime,
UINT16 usInHand, usShockPenalty, MIN_RANGE_FOR_FULL_COWER, MAX_TARGET_COWERING_PENALTY; UINT16 usInHand, usShockPenalty, MIN_RANGE_FOR_FULL_COWER, MAX_TARGET_COWERING_PENALTY;
UINT16 iBulletsLeft, iTracersFired = 0, iBulletsPerTracer, iBulletsSinceLastTracer=0, iRoundsFiredPreviously; UINT16 iBulletsLeft, iTracersFired = 0, iBulletsPerTracer, iBulletsSinceLastTracer=0, iRoundsFiredPreviously;
INT8 bBandaged, maxClickBonus = 10, AIM_PENALTY_PER_TARGET_SHOCK; INT8 bBandaged, maxClickBonus = 10, AIM_PENALTY_PER_TARGET_SHOCK;
UINT8 ubAdjAimPos, ubTargetID, bLightLevel, ubCoweringDivisor, ubAutoPenaltySinceLastTracer=0; UINT8 ubTargetID, bLightLevel, ubCoweringDivisor, ubAutoPenaltySinceLastTracer=0;
FLOAT maxBonus, aimTimeBonus, scopeRangeMod = 0.0f, iAimBonus; FLOAT maxBonus, aimTimeBonus, scopeRangeMod = 0.0f, iAimBonus;
bool fCantSeeTarget = false, fCoverObscured = false; bool fCantSeeTarget = false, fCoverObscured = false;