Merged from revision: 7548

Bugfix: Place inventory on same bLevel as merc when dropping items through map screen inventory (by Ocular)
- see: http://www.ja-galaxy-forum.com/ubbthreads.php/ubb/showflat/Number/336500/gonew/1/[PATCH]_Place_inventory_on_sam#UNREAD

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7549 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2014-10-09 11:34:54 +00:00
parent 6c2273f4eb
commit 06367419c0
4 changed files with 12 additions and 10 deletions
@@ -2535,7 +2535,7 @@ BOOLEAN PlaceObjectInInventoryStash( OBJECTTYPE *pInventorySlot, OBJECTTYPE *pIt
}
BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo )
BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo, INT8 ubLevel )
{
OBJECTTYPE *pInventorySlot;
INT32 cnt = 0;
@@ -2563,6 +2563,7 @@ BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo )
{
pInventoryPoolList[cnt].sGridNo = sGridNo;
pInventoryPoolList[cnt].usFlags |= WORLD_ITEM_REACHABLE;
pInventoryPoolList[cnt].ubLevel = ubLevel;
pInventoryPoolList[cnt].bVisible = 1;
pInventoryPoolList[cnt].fExists = TRUE;
}
@@ -49,7 +49,7 @@ void HandleFlashForHighLightedItem( void );
extern std::vector<WORLDITEM> pInventoryPoolList;
// autoplace down object
BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo=0 );
BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo=0, INT8 ubLevel=0 );
// the current inventory item
extern INT32 iCurrentlyHighLightedItem;
+5 -5
View File
@@ -7654,7 +7654,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{
if(pSoldier->inv[i].exists() == true)
{
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo);
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo, pSoldier->pathing.bLevel);
DeleteObj(&pSoldier->inv[i]);
}
fTeamPanelDirty = TRUE;
@@ -7665,7 +7665,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{
if(pSoldier->inv[i].exists() == true)
{
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo);
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo, pSoldier->pathing.bLevel);
DeleteObj(&pSoldier->inv[i]);
}
fTeamPanelDirty = TRUE;
@@ -7683,7 +7683,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{
if(pSoldier->inv[i].exists() == true)
{
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo);
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo, pSoldier->pathing.bLevel);
DeleteObj(&pSoldier->inv[i]);
}
fTeamPanelDirty = TRUE;
@@ -8241,7 +8241,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{
if(pSoldier->inv[i].exists() == true)
{
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo);
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo, pSoldier->pathing.bLevel);
DeleteObj(&pSoldier->inv[i]);
}
fTeamPanelDirty = TRUE;
@@ -8252,7 +8252,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{
if(pSoldier->inv[i].exists() == true)
{
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo);
AutoPlaceObjectInInventoryStash(&pSoldier->inv[i], pSoldier->sGridNo, pSoldier->pathing.bLevel);
DeleteObj(&pSoldier->inv[i]);
}
fTeamPanelDirty = TRUE;
+4 -3
View File
@@ -85,7 +85,7 @@ extern OBJECTTYPE *gpItemDescOrigAttachmentObject;
extern OBJECTTYPE gCloneItemDescObject;
extern BOOLEAN fShowMapInventoryPool;
extern UINT32 guiCurrentItemDescriptionScreen;
extern BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo );
extern BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo, INT8 ubLevel );
// HEADROCK HAM 5: Also need these to trigger Map Inventory changes appropriately.
extern BOOLEAN fMapInventoryZoom;
// HEADROCK HAM 5: And this, for checking whether an item is in the pool.
@@ -5775,7 +5775,7 @@ void RemoveProhibitedAttachments(SOLDIERTYPE* pSoldier, OBJECTTYPE* pObj, UINT16
if(sGridNo != NOWHERE)
{
if(guiCurrentItemDescriptionScreen == MAP_SCREEN && fShowMapInventoryPool)
AutoPlaceObjectInInventoryStash(&(*iter), sGridNo);
AutoPlaceObjectInInventoryStash(&(*iter), sGridNo, ubLevel);
else
AddItemToPool(sGridNo, &(*iter), 1, ubLevel, WORLD_ITEM_REACHABLE, 0);
}
@@ -6930,6 +6930,7 @@ BOOLEAN AutoPlaceObjectToWorld(SOLDIERTYPE * pSoldier, OBJECTTYPE * pObj, INT8 b
if( pInventoryPoolList[i].bVisible == 1 && pInventoryPoolList[i].fExists == TRUE && pInventoryPoolList[i].usFlags & WORLD_ITEM_REACHABLE )
{
sGridNo = pInventoryPoolList[i].sGridNo;
bLevel = pInventoryPoolList[i].ubLevel;
break;
}
}
@@ -6940,7 +6941,7 @@ BOOLEAN AutoPlaceObjectToWorld(SOLDIERTYPE * pSoldier, OBJECTTYPE * pObj, INT8 b
}
fMapPanelDirty = TRUE;
return( AutoPlaceObjectInInventoryStash(pObj, sGridNo) );
return( AutoPlaceObjectInInventoryStash(pObj, sGridNo, bLevel) );
}
else
{