- Bugfix: Fixed CTD when throwing item (grenade, rock, throwing knife, ...) in tactical when item description box is open

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@3299 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2009-10-31 17:33:15 +00:00
parent 8f1f24499b
commit ea1b814e8f
4 changed files with 51 additions and 33 deletions
+36 -27
View File
@@ -4203,26 +4203,10 @@ void RenderItemDescriptionBox( )
ubAttackAPs = BaseAPsToShootOrStab( APBPConstants[DEFAULT_APS], APBPConstants[DEFAULT_AIMSKILL], gpItemDescObject ); ubAttackAPs = BaseAPsToShootOrStab( APBPConstants[DEFAULT_APS], APBPConstants[DEFAULT_AIMSKILL], gpItemDescObject );
if (ubAttackAPs <= EXCEPTIONAL_AP_COST) // WANNE: Fixed CTD when trowing an item with open description box
if (ubAttackAPs != -1)
{ {
SetFontForeground( ITEMDESC_FONTHIGHLIGHT ); if (ubAttackAPs <= EXCEPTIONAL_AP_COST)
}
else
{
SetFontForeground( 5 );
}
//AP's
if ( !Weapon[gpItemDescObject->usItem].NoSemiAuto )
{
swprintf( pStr, L"%2d", ubAttackAPs );
FindFontRightCoordinates( (INT16)(gWeaponStats[ 5 ].sX + gsInvDescX + gWeaponStats[ 5 ].sValDx), (INT16)(gWeaponStats[ 5 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, pStr );
}
if (GetShotsPerBurst(gpItemDescObject) > 0)
{
if (GetShotsPerBurst(gpItemDescObject) >= EXCEPTIONAL_BURST_SIZE )//|| gpItemDescObject->usItem == G11)
{ {
SetFontForeground( ITEMDESC_FONTHIGHLIGHT ); SetFontForeground( ITEMDESC_FONTHIGHLIGHT );
} }
@@ -4230,16 +4214,41 @@ void RenderItemDescriptionBox( )
{ {
SetFontForeground( 5 ); SetFontForeground( 5 );
} }
swprintf( pStr, L"%2d", ubAttackAPs + CalcAPsToBurst( APBPConstants[DEFAULT_APS], gpItemDescObject ) );
FindFontRightCoordinates( (INT16)(gWeaponStats[ 6 ].sX + gsInvDescX + gWeaponStats[ 6 ].sValDx), (INT16)(gWeaponStats[ 6 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); //AP's
mprintf( usX, usY, pStr ); if ( !Weapon[gpItemDescObject->usItem].NoSemiAuto )
{
swprintf( pStr, L"%2d", ubAttackAPs );
FindFontRightCoordinates( (INT16)(gWeaponStats[ 5 ].sX + gsInvDescX + gWeaponStats[ 5 ].sValDx), (INT16)(gWeaponStats[ 5 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, pStr );
}
if (GetShotsPerBurst(gpItemDescObject) > 0)
{
if (GetShotsPerBurst(gpItemDescObject) >= EXCEPTIONAL_BURST_SIZE )//|| gpItemDescObject->usItem == G11)
{
SetFontForeground( ITEMDESC_FONTHIGHLIGHT );
}
else
{
SetFontForeground( 5 );
}
swprintf( pStr, L"%2d", ubAttackAPs + CalcAPsToBurst( APBPConstants[DEFAULT_APS], gpItemDescObject ) );
FindFontRightCoordinates( (INT16)(gWeaponStats[ 6 ].sX + gsInvDescX + gWeaponStats[ 6 ].sValDx), (INT16)(gWeaponStats[ 6 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, pStr );
}
else if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0)
{
SetFontForeground( 5 );
swprintf( pStr, L"%2d", ubAttackAPs + CalcAPsToAutofire( APBPConstants[DEFAULT_APS], gpItemDescObject, 3 ) );
FindFontRightCoordinates( (INT16)(gWeaponStats[ 6 ].sX + gsInvDescX + gWeaponStats[ 6 ].sValDx), (INT16)(gWeaponStats[ 6 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, pStr );
}
} }
else if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0) else
{ {
SetFontForeground( 5 ); // WANNE: Close the description box after we threw the item.
swprintf( pStr, L"%2d", ubAttackAPs + CalcAPsToAutofire( APBPConstants[DEFAULT_APS], gpItemDescObject, 3 ) ); DeleteItemDescriptionBox();
FindFontRightCoordinates( (INT16)(gWeaponStats[ 6 ].sX + gsInvDescX + gWeaponStats[ 6 ].sValDx), (INT16)(gWeaponStats[ 6 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY);
mprintf( usX, usY, pStr );
} }
} }
} }
+11 -2
View File
@@ -1402,9 +1402,18 @@ INT16 BaseAPsToShootOrStab( INT16 bAPs, INT16 bAimSkill, OBJECTTYPE * pObj )
//{ //{
// Top *= 100; // Top *= 100;
//} //}
Bottom = (INT32)(( 100 + bAimSkill ) * rof);
// WANNE : Fixed CTD that occurs when trowing item (grenade, throwing knife, ...)
// with open description box in tactical
INT16 baseAPsToShootOrStab = -1;
if (rof > 0)
{
Bottom = (INT32)(( 100 + bAimSkill ) * rof);
baseAPsToShootOrStab = ( Top + Bottom / 2 ) / Bottom;
}
// (this will round to the nearest integer) // (this will round to the nearest integer)
return ( Top + Bottom / 2 ) / Bottom; return baseAPsToShootOrStab;
} }
void GetAPChargeForShootOrStabWRTGunRaises( SOLDIERTYPE *pSoldier, INT16 sGridNo, UINT8 ubAddTurningCost, BOOLEAN *pfChargeTurning, BOOLEAN *pfChargeRaise ) void GetAPChargeForShootOrStabWRTGunRaises( SOLDIERTYPE *pSoldier, INT16 sGridNo, UINT8 ubAddTurningCost, BOOLEAN *pfChargeTurning, BOOLEAN *pfChargeRaise )
+2 -2
View File
@@ -99,7 +99,7 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="D:\misc\1.13\JA2 1.13 - EN (Actual)" OutputDirectory="C:\Games\Jagged Alliance 2 EN"
IntermediateDirectory="$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets=".\ja2_2005Express.vsprops" InheritedPropertySheets=".\ja2_2005Express.vsprops"
@@ -145,7 +145,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="Winmm.lib .\Multiplayer\raknet\RakNetLibStatic.lib ws2_32.lib" AdditionalDependencies="Winmm.lib .\Multiplayer\raknet\RakNetLibStatic.lib ws2_32.lib"
OutputFile="$(OutDir)\JA2_RU_3287.exe" OutputFile="$(OutDir)\JA2_EN_3287.exe"
LinkIncremental="1" LinkIncremental="1"
GenerateDebugInformation="true" GenerateDebugInformation="true"
GenerateMapFile="true" GenerateMapFile="true"
+2 -2
View File
@@ -95,7 +95,7 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="\games\jagged alliance 2" OutputDirectory="C:\games\jagged alliance 2 EN"
IntermediateDirectory="build\VS2008\$(ProjectName)_$(ConfigurationName)" IntermediateDirectory="build\VS2008\$(ProjectName)_$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets=".\ja2_VS2008.vsprops;.\ja2_VS2008Linker.vsprops;.\ja2_VS2008Libs.vsprops" InheritedPropertySheets=".\ja2_VS2008.vsprops;.\ja2_VS2008Linker.vsprops;.\ja2_VS2008Libs.vsprops"
@@ -141,7 +141,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="Winmm.lib RakNetLibStatic.lib ws2_32.lib" AdditionalDependencies="Winmm.lib RakNetLibStatic.lib ws2_32.lib"
OutputFile="$(OutDir)\JA2_EN_2996.exe" OutputFile="$(OutDir)\JA2_EN_3111_VS2008.exe"
LinkIncremental="1" LinkIncremental="1"
AdditionalLibraryDirectories="Multiplayer\raknet" AdditionalLibraryDirectories="Multiplayer\raknet"
GenerateDebugInformation="false" GenerateDebugInformation="false"