Bugfixes (by Buggler)

- Fixed shopkeeper ignoring stack prices
- Fixed missing initialize for uiDiscountValue
- Fixed auto-attach in tactical screen for equipped slots


git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6371 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
silversurfer
2013-09-07 13:41:42 +00:00
parent 4808850814
commit 6c9c3045f4
2 changed files with 30 additions and 32 deletions
+29 -29
View File
@@ -3516,32 +3516,6 @@ BOOLEAN HandleNailsVestFetish( SOLDIERTYPE *pSoldier, UINT32 uiHandPos, UINT16 u
BOOLEAN UIHandleItemPlacement( UINT8 ubHandPos, UINT16 usOldItemIndex, UINT16 usNewItemIndex, BOOLEAN fDeductPoints )
{
if ( _KeyDown(CTRL) )
{
if ( gpItemPointer->exists() && gpSMCurrentMerc->inv[ ubHandPos ].exists() )
{
if ( gpItemPointer->usItem == gpSMCurrentMerc->inv[ ubHandPos ].usItem )
CleanUpStack( &( gpSMCurrentMerc->inv[ ubHandPos ] ), gpItemPointer );
else // Madd: attach / merge object, merge only works on single objects for now
{
UINT8 cnt = gpSMCurrentMerc->inv[ ubHandPos ].ubNumberOfObjects;
if ( gpItemPointer->ubNumberOfObjects < cnt )
cnt = gpItemPointer->ubNumberOfObjects;
for (UINT8 i = 0; i<cnt;i++)
{
gpSMCurrentMerc->inv[ ubHandPos ].AttachObject(gpSMCurrentMerc,gpItemPointer,TRUE,i);
}
}
}
if ( gpItemPointer->exists() == false )
{
EndItemPointer( );
}
return( TRUE );
}
// Try to place here
if ( PlaceObject( gpSMCurrentMerc, ubHandPos, gpItemPointer ) )
{
@@ -3943,15 +3917,41 @@ void SMInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason )
if ( fOKToGo )
{
usOldItemIndex = gpSMCurrentMerc->inv[ uiHandPos ].usItem;
usNewItemIndex = gpItemPointer->usItem;
// OK, check if this is Nails, and we're in the vest position , don't allow it to come off....
if ( HandleNailsVestFetish( gpSMCurrentMerc, uiHandPos, gpItemPointer->usItem ) )
if ( HandleNailsVestFetish( gpSMCurrentMerc, uiHandPos, usNewItemIndex ) )
{
return;
}
usOldItemIndex = gpSMCurrentMerc->inv[ uiHandPos ].usItem;
usNewItemIndex = gpItemPointer->usItem;
if ( _KeyDown(CTRL) )
{
if ( gpItemPointer->exists() && gpSMCurrentMerc->inv[ uiHandPos ].exists() )
{
if ( gpItemPointer->usItem == gpSMCurrentMerc->inv[ uiHandPos ].usItem )
CleanUpStack( &( gpSMCurrentMerc->inv[ uiHandPos ] ), gpItemPointer );
else // Madd: attach / merge object, merge only works on single objects for now
{
UINT8 cnt = gpSMCurrentMerc->inv[ uiHandPos ].ubNumberOfObjects;
if ( gpItemPointer->ubNumberOfObjects < cnt )
cnt = gpItemPointer->ubNumberOfObjects;
for (UINT8 i = 0; i<cnt;i++)
{
gpSMCurrentMerc->inv[ uiHandPos ].AttachObject(gpSMCurrentMerc,gpItemPointer,TRUE,i);
}
}
}
if ( gpItemPointer->exists() == false )
{
EndItemPointer( );
}
return;
}
if ( uiHandPos == HANDPOS || uiHandPos == SECONDHANDPOS || uiHandPos == HELMETPOS || uiHandPos == VESTPOS || uiHandPos == LEGPOS )
{
//if ( ValidAttachmentClass( usNewItemIndex, usOldItemIndex ) )
+1 -3
View File
@@ -3275,7 +3275,7 @@ UINT32 CalcShopKeeperItemPrice( BOOLEAN fDealerSelling, BOOLEAN fUnitPriceOnly,
UINT8 ubCnt;
UINT32 uiUnitPrice = 0;
UINT32 uiTotalPrice = 0;
UINT32 uiDiscountValue;
UINT32 uiDiscountValue = 0;
// UINT32 uiDifFrom10 = 0;
#ifdef JA2UB
UINT8 ubItemsNotCounted = 0; //ja25 UB
@@ -3387,7 +3387,6 @@ UINT8 ubItemsNotCounted = 0; //ja25 UB
// and sells for more!
uiItemPrice[ubCnt] += uiDiscountValue;
}
break;
}
// Flugente: backgrounds
else if ( Item [ usItemID ].usItemClass & (IC_MAPFILTER_MELEE|IC_MAPFILTER_KIT|IC_MAPFILTER_LBE|IC_MAPFILTER_ARMOR|IC_MAPFILTER_MISC) )
@@ -3404,7 +3403,6 @@ UINT8 ubItemsNotCounted = 0; //ja25 UB
// and sell for more!
uiItemPrice[ubCnt] += uiDiscountValue;
}
break;
}
// if it's the dealer selling this, make sure the item is worth at least $1