- bugfix: Bobby Rays filter buttons (again). Now it should work

- bugfix: Hand to hand combat (knifes, claws, ...) was disabled in auto battle. This was done in revision 51 because of CTDs that always occured there. I enabled hand to hand combat and tested ~50 auto battles. No single CTD. It seems that the CTD has been fixed since revision 51.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1788 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2008-02-09 09:41:24 +00:00
parent df8b135b52
commit c55b927f8b
2 changed files with 21 additions and 18 deletions
+4 -4
View File
@@ -3058,14 +3058,14 @@ void CalcFirstIndexForPage( STORE_INVENTORY *pInv, UINT32 uiItemClass )
//Get to the first index on the page //Get to the first index on the page
for(i=gusFirstItemIndex; i<=gusLastItemIndex; i++) for(i=gusFirstItemIndex; i<=gusLastItemIndex; i++)
{ {
bCntItem = FALSE;
if (guiCurrentUsedFilterMode == -1) if (guiCurrentUsedFilterMode == -1)
{ {
bCntItem = TRUE; bCntItem = TRUE;
} }
else else
{ {
bCntItem = FALSE;
usItemIndex = pInv[ i ].usItemIndex; usItemIndex = pInv[ i ].usItemIndex;
switch (guiCurrentUsedFilterMode) switch (guiCurrentUsedFilterMode)
@@ -3130,6 +3130,8 @@ void CalcFirstIndexForPage( STORE_INVENTORY *pInv, UINT32 uiItemClass )
//Get to the first index on the page //Get to the first index on the page
for(i=gusFirstItemIndex; i<=gusLastItemIndex; i++) for(i=gusFirstItemIndex; i<=gusLastItemIndex; i++)
{ {
bCntItem = FALSE;
if( Item[ pInv[ i ].usItemIndex ].usItemClass & uiItemClass ) if( Item[ pInv[ i ].usItemIndex ].usItemClass & uiItemClass )
{ {
if (uiItemClass == IC_BOBBY_GUN) if (uiItemClass == IC_BOBBY_GUN)
@@ -3140,8 +3142,6 @@ void CalcFirstIndexForPage( STORE_INVENTORY *pInv, UINT32 uiItemClass )
} }
else else
{ {
bCntItem = FALSE;
usItemIndex = LaptopSaveInfo.BobbyRayInventory[ i ].usItemIndex; usItemIndex = LaptopSaveInfo.BobbyRayInventory[ i ].usItemIndex;
if (Weapon[ Item[usItemIndex].ubClassIndex ].ubWeaponType == guiCurrentGunFilterMode) if (Weapon[ Item[usItemIndex].ubClassIndex ].ubWeaponType == guiCurrentGunFilterMode)
+17 -14
View File
@@ -4128,7 +4128,8 @@ void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
else else
{ {
OBJECTTYPE *pItem; OBJECTTYPE *pItem;
//OBJECTTYPE tempItem; OBJECTTYPE tempItem;
PlayAutoResolveSample( (UINT8)(BULLET_IMPACT_1+PreRandom(3)), RATE_11025, 50, 1, MIDDLEPAN ); PlayAutoResolveSample( (UINT8)(BULLET_IMPACT_1+PreRandom(3)), RATE_11025, 50, 1, MIDDLEPAN );
if( !pTarget->pSoldier->bLife ) if( !pTarget->pSoldier->bLife )
{ //Soldier already dead (can't kill him again!) { //Soldier already dead (can't kill him again!)
@@ -4146,19 +4147,21 @@ void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
pAttacker->pSoldier->usAttackingWeapon = pAttacker->pSoldier->inv[ pAttacker->bWeaponSlot ].usItem; pAttacker->pSoldier->usAttackingWeapon = pAttacker->pSoldier->inv[ pAttacker->bWeaponSlot ].usItem;
} }
//if( pAttacker->bWeaponSlot != HANDPOS ) // WANNE: Does this lead to a CTD -> no I did not get any CTD, so I reenabled it
//{ //switch items if( pAttacker->bWeaponSlot != HANDPOS )
// memcpy( &tempItem, &pAttacker->pSoldier->inv[ HANDPOS ], sizeof( OBJECTTYPE ) ); {
// memcpy( &pAttacker->pSoldier->inv[ HANDPOS ], &pAttacker->pSoldier->inv[ pAttacker->bWeaponSlot ], sizeof( OBJECTTYPE ) ); //CTD //switch items
// iImpact = HTHImpact( pAttacker->pSoldier, pTarget->pSoldier, ubAccuracy, (BOOLEAN)(fKnife | fClaw) ); memcpy( &tempItem, &pAttacker->pSoldier->inv[ HANDPOS ], sizeof( OBJECTTYPE ) );
// memcpy( &pAttacker->pSoldier->inv[ pAttacker->bWeaponSlot ], &pAttacker->pSoldier->inv[ HANDPOS ], sizeof( OBJECTTYPE ) ); memcpy( &pAttacker->pSoldier->inv[ HANDPOS ], &pAttacker->pSoldier->inv[ pAttacker->bWeaponSlot ], sizeof( OBJECTTYPE ) ); //CTD
// memcpy( &pAttacker->pSoldier->inv[ HANDPOS ], &tempItem, sizeof( OBJECTTYPE ) ); iImpact = HTHImpact( pAttacker->pSoldier, pTarget->pSoldier, ubAccuracy, (BOOLEAN)(fKnife | fClaw) );
//} memcpy( &pAttacker->pSoldier->inv[ pAttacker->bWeaponSlot ], &pAttacker->pSoldier->inv[ HANDPOS ], sizeof( OBJECTTYPE ) );
//else memcpy( &pAttacker->pSoldier->inv[ HANDPOS ], &tempItem, sizeof( OBJECTTYPE ) );
//{ }
// iImpact = HTHImpact( pAttacker->pSoldier, pTarget->pSoldier, ubAccuracy, (BOOLEAN)(fKnife || fClaw) ); else
//} {
iImpact = 0; iImpact = HTHImpact( pAttacker->pSoldier, pTarget->pSoldier, ubAccuracy, (BOOLEAN)(fKnife || fClaw) );
}
iNewLife = pTarget->pSoldier->bLife - iImpact; iNewLife = pTarget->pSoldier->bLife - iImpact;
if( pAttacker->uiFlags & CELL_MERC ) if( pAttacker->uiFlags & CELL_MERC )