mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- fixed Ctrl+M not moving items from/to the roof
- fixed Ctrl+S, Ctrl+F, Ctrl+M, Ctrl+R affect not visible items git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1078 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+1
-1
@@ -23,7 +23,7 @@ CHAR16 zVersionLabel[256] = { L"Beta v. 0.98" };
|
||||
#else
|
||||
|
||||
//RELEASE BUILD VERSION
|
||||
CHAR16 zVersionLabel[256] = { L"Release v1.13.1052" };
|
||||
CHAR16 zVersionLabel[256] = { L"Release v1.13.1078L" };
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -474,7 +474,7 @@ void HandleDelayedItemsArrival( UINT32 uiReason )
|
||||
{
|
||||
// sector is loaded!
|
||||
// just move the hidden item pool
|
||||
MoveItemPools( sStartGridNo, BOBBYR_SHIPPING_DEST_GRIDNO );
|
||||
MoveItemPools( sStartGridNo, BOBBYR_SHIPPING_DEST_GRIDNO, 0, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -3050,18 +3050,19 @@ BOOLEAN RemoveItemFromPool( INT16 sGridNo, INT32 iItemIndex, UINT8 ubLevel )
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
BOOLEAN MoveItemPools( INT16 sStartPos, INT16 sEndPos )
|
||||
BOOLEAN MoveItemPools( INT16 sStartPos, INT16 sEndPos, INT8 bStartLevel, INT8 bEndLevel )
|
||||
{
|
||||
// note, only works between locations on the ground
|
||||
ITEM_POOL *pItemPool;
|
||||
WORLDITEM TempWorldItem;
|
||||
|
||||
// While there is an existing pool
|
||||
while( GetItemPool( sStartPos, &pItemPool, 0 ) )
|
||||
while( GetItemPool( sStartPos, &pItemPool, bStartLevel ) )
|
||||
{
|
||||
memcpy( &TempWorldItem, &(gWorldItems[ pItemPool->iItemIndex ]), sizeof( WORLDITEM ) );
|
||||
RemoveItemFromPool( sStartPos, pItemPool->iItemIndex, 0 );
|
||||
AddItemToPool( sEndPos, &(TempWorldItem.o), -1, TempWorldItem.ubLevel, TempWorldItem.usFlags, TempWorldItem.bRenderZHeightAboveLevel );
|
||||
RemoveItemFromPool( sStartPos, pItemPool->iItemIndex, bStartLevel );
|
||||
//AddItemToPool( sEndPos, &(TempWorldItem.o), -1, TempWorldItem.ubLevel, TempWorldItem.usFlags, TempWorldItem.bRenderZHeightAboveLevel );
|
||||
AddItemToPool( sEndPos, &(TempWorldItem.o), -1, bEndLevel, TempWorldItem.usFlags, TempWorldItem.bRenderZHeightAboveLevel );
|
||||
}
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ BOOLEAN GetItemPool( UINT16 usMapPos, ITEM_POOL **ppItemPool, UINT8 ubLevel );
|
||||
BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT16 sGridNo, UINT8 bCommand, INT8 bZLevel, INT16 sXPos, INT16 sYPos );
|
||||
BOOLEAN RemoveItemFromPool( INT16 sGridNo, INT32 iItemIndex, UINT8 ubLevel );
|
||||
BOOLEAN ItemExistsAtLocation( INT16 sGridNo, INT32 iItemIndex, UINT8 ubLevel );
|
||||
BOOLEAN MoveItemPools( INT16 sStartPos, INT16 sEndPos );
|
||||
BOOLEAN MoveItemPools( INT16 sStartPos, INT16 sEndPos, INT8 bStartLevel, INT8 bEndLevel );
|
||||
|
||||
void SetItemPoolLocator( ITEM_POOL *pItemPool );
|
||||
void SetItemPoolLocatorWithCallback( ITEM_POOL *pItemPool, ITEM_POOL_LOCATOR_HOOK Callback );
|
||||
|
||||
@@ -2579,7 +2579,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
|
||||
|
||||
for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; uiLoop++ ) //for all items in sector
|
||||
{
|
||||
if ( (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) )//item exists and is reachable
|
||||
if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped
|
||||
{
|
||||
if (( Item[ gWorldItems[ uiLoop ].o.usItem ].usItemClass == IC_GUN ) && (gGameExternalOptions.gfShiftFUnloadWeapons == TRUE) )//item is a gun and unloading is allowed
|
||||
{
|
||||
@@ -2980,12 +2980,13 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
|
||||
|
||||
for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; uiLoop++ ) //for all items in sector
|
||||
{
|
||||
if ( (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && (gWorldItems[ uiLoop ].sGridNo != pSoldier->sGridNo) )//item exists and is reachable
|
||||
if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) && (gWorldItems[ uiLoop ].sGridNo != pSoldier->sGridNo) )//item exists and is reachable and is not already on soldiers tile
|
||||
{
|
||||
MoveItemPools(gWorldItems[ uiLoop ].sGridNo, pSoldier->sGridNo);
|
||||
NotifySoldiersToLookforItems( );
|
||||
MoveItemPools(gWorldItems[ uiLoop ].sGridNo, pSoldier->sGridNo, gWorldItems[ uiLoop ].ubLevel, pSoldier->bLevel);
|
||||
}
|
||||
}
|
||||
|
||||
NotifySoldiersToLookforItems( );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3304,7 +3305,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
|
||||
// Search for ammo in sector
|
||||
for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; uiLoop++ )
|
||||
{
|
||||
if ( (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) )//item exists
|
||||
if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped
|
||||
{
|
||||
if ( ( Item[ gWorldItems[ uiLoop ].o.usItem ].usItemClass & IC_AMMO ) ) // the item is ammo
|
||||
{
|
||||
@@ -3449,7 +3450,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
|
||||
|
||||
for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; uiLoop++ )
|
||||
{
|
||||
if ( ( gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) )//item exists and is reachable
|
||||
if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped
|
||||
{
|
||||
//find out how many items can be put in a big slot
|
||||
INT8 ubSlotLimit = ItemSlotLimit( gWorldItems[ uiLoop ].o.usItem, BIGPOCK1POS );
|
||||
|
||||
Reference in New Issue
Block a user