mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
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:
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user