diff --git a/Strategic/mapscreen.cpp b/Strategic/mapscreen.cpp index 371b8acad..5714b759c 100644 --- a/Strategic/mapscreen.cpp +++ b/Strategic/mapscreen.cpp @@ -1008,6 +1008,18 @@ void DumpSectorDifficultyInfo( void ); void DumpItemsList( void ); #endif +BOOLEAN IsMercInActiveSector(SOLDIERTYPE * pSoldier) +{ + if(pSoldier->sSectorX != sSelMapX) + return( FALSE ); + if(pSoldier->sSectorY != sSelMapY) + return( FALSE ); + if(pSoldier->bSectorZ != iCurrentMapSectorZ) + return( FALSE ); + + return( TRUE ); +} + void BeginSellAllCallBack( UINT8 bExitValue ) { INT32 iPrice = 0; diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index c5b938b21..ba712431e 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -6283,6 +6283,7 @@ BOOLEAN AutoPlaceObjectAnywhere(SOLDIERTYPE * pSoldier, OBJECTTYPE * pObj, BOOLE return FALSE; } +extern BOOLEAN IsMercInActiveSector(SOLDIERTYPE * pSoldier); extern void CreateDestroyMapInventoryPoolButtons( BOOLEAN fExitFromMapScreen ); BOOLEAN AutoPlaceObjectToWorld(SOLDIERTYPE * pSoldier, OBJECTTYPE * pObj, INT8 bVisible) { @@ -6294,6 +6295,12 @@ BOOLEAN AutoPlaceObjectToWorld(SOLDIERTYPE * pSoldier, OBJECTTYPE * pObj, INT8 b if( guiCurrentScreen == MAP_SCREEN ) { + if(fShowMapInventoryPool && !IsMercInActiveSector(pSoldier) ) + { + fShowMapInventoryPool = FALSE; + CreateDestroyMapInventoryPoolButtons(FALSE); + } + ChangeSelectedMapSector(pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ); if(!fShowMapInventoryPool) { fShowMapInventoryPool = TRUE;