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; OBJECTTYPE *pInventorySlot;
INT32 cnt = 0; INT32 cnt = 0;
@@ -2563,6 +2563,7 @@ BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo )
{ {
pInventoryPoolList[cnt].sGridNo = sGridNo; pInventoryPoolList[cnt].sGridNo = sGridNo;
pInventoryPoolList[cnt].usFlags |= WORLD_ITEM_REACHABLE; pInventoryPoolList[cnt].usFlags |= WORLD_ITEM_REACHABLE;
pInventoryPoolList[cnt].ubLevel = ubLevel;
pInventoryPoolList[cnt].bVisible = 1; pInventoryPoolList[cnt].bVisible = 1;
pInventoryPoolList[cnt].fExists = TRUE; pInventoryPoolList[cnt].fExists = TRUE;
} }
@@ -49,7 +49,7 @@ void HandleFlashForHighLightedItem( void );
extern std::vector<WORLDITEM> pInventoryPoolList; extern std::vector<WORLDITEM> pInventoryPoolList;
// autoplace down object // autoplace down object
BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo=0 ); BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo=0, INT8 ubLevel=0 );
// the current inventory item // the current inventory item
extern INT32 iCurrentlyHighLightedItem; extern INT32 iCurrentlyHighLightedItem;
+5 -5
View File
@@ -7654,7 +7654,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if(pSoldier->inv[i].exists() == true) 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]); DeleteObj(&pSoldier->inv[i]);
} }
fTeamPanelDirty = TRUE; fTeamPanelDirty = TRUE;
@@ -7665,7 +7665,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if(pSoldier->inv[i].exists() == true) 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]); DeleteObj(&pSoldier->inv[i]);
} }
fTeamPanelDirty = TRUE; fTeamPanelDirty = TRUE;
@@ -7683,7 +7683,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if(pSoldier->inv[i].exists() == true) 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]); DeleteObj(&pSoldier->inv[i]);
} }
fTeamPanelDirty = TRUE; fTeamPanelDirty = TRUE;
@@ -8241,7 +8241,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if(pSoldier->inv[i].exists() == true) 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]); DeleteObj(&pSoldier->inv[i]);
} }
fTeamPanelDirty = TRUE; fTeamPanelDirty = TRUE;
@@ -8252,7 +8252,7 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
{ {
if(pSoldier->inv[i].exists() == true) 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]); DeleteObj(&pSoldier->inv[i]);
} }
fTeamPanelDirty = TRUE; fTeamPanelDirty = TRUE;
+4 -3
View File
@@ -85,7 +85,7 @@ extern OBJECTTYPE *gpItemDescOrigAttachmentObject;
extern OBJECTTYPE gCloneItemDescObject; extern OBJECTTYPE gCloneItemDescObject;
extern BOOLEAN fShowMapInventoryPool; extern BOOLEAN fShowMapInventoryPool;
extern UINT32 guiCurrentItemDescriptionScreen; 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. // HEADROCK HAM 5: Also need these to trigger Map Inventory changes appropriately.
extern BOOLEAN fMapInventoryZoom; extern BOOLEAN fMapInventoryZoom;
// HEADROCK HAM 5: And this, for checking whether an item is in the pool. // 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(sGridNo != NOWHERE)
{ {
if(guiCurrentItemDescriptionScreen == MAP_SCREEN && fShowMapInventoryPool) if(guiCurrentItemDescriptionScreen == MAP_SCREEN && fShowMapInventoryPool)
AutoPlaceObjectInInventoryStash(&(*iter), sGridNo); AutoPlaceObjectInInventoryStash(&(*iter), sGridNo, ubLevel);
else else
AddItemToPool(sGridNo, &(*iter), 1, ubLevel, WORLD_ITEM_REACHABLE, 0); 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 ) if( pInventoryPoolList[i].bVisible == 1 && pInventoryPoolList[i].fExists == TRUE && pInventoryPoolList[i].usFlags & WORLD_ITEM_REACHABLE )
{ {
sGridNo = pInventoryPoolList[i].sGridNo; sGridNo = pInventoryPoolList[i].sGridNo;
bLevel = pInventoryPoolList[i].ubLevel;
break; break;
} }
} }
@@ -6940,7 +6941,7 @@ BOOLEAN AutoPlaceObjectToWorld(SOLDIERTYPE * pSoldier, OBJECTTYPE * pObj, INT8 b
} }
fMapPanelDirty = TRUE; fMapPanelDirty = TRUE;
return( AutoPlaceObjectInInventoryStash(pObj, sGridNo) ); return( AutoPlaceObjectInInventoryStash(pObj, sGridNo, bLevel) );
} }
else else
{ {