LOBOT: enemies wear pistol holsters (by Seven) (#271)

This commit is contained in:
Asdow
2024-01-30 22:53:19 +02:00
committed by GitHub
parent 0910dba472
commit d296789929
+28 -12
View File
@@ -2246,29 +2246,45 @@ void ChooseBombsForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bBombClas
void ChooseLBEsForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bLBEClass )
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"ChooseLBEsForSoldierCreateStruct");
//UINT16 i;
//INVTYPE *pItem;
//UINT16 usRandom;
UINT16 usItem = 0;
// CHRISL: If we're using the old inventory system, just return
if((UsingNewInventorySystem() == false))
return;
usItem = PickARandomItem( LBE, pp->ubSoldierClass, bLBEClass, FALSE );
UINT16 usItem = PickARandomItem( LBE, pp->ubSoldierClass, bLBEClass, FALSE );
if ( usItem > 0 )
{
CreateItem( usItem, (INT8)(80 + Random( 21 )), &gTempObject );
gTempObject.fFlags |= OBJECT_UNDROPPABLE;
// put backpacks into the backpack slot for LOBOT
if ((UsingNewInventorySystem()) && (Item[usItem].usItemClass & IC_LBEGEAR) && (LoadBearingEquipment[Item[usItem].ubClassIndex].lbeClass == BACKPACK))
auto isLBEgear = Item[usItem].usItemClass & IC_LBEGEAR;
if (isLBEgear)
{
pp->Inv[BPACKPOCKPOS] = gTempObject;
}
else
{
PlaceObjectInSoldierCreateStruct( pp, &gTempObject );
// put backpacks into the backpack slot for LOBOT
auto lbeClass = LoadBearingEquipment[Item[usItem].ubClassIndex].lbeClass;
if (lbeClass == BACKPACK && !pp->Inv[BPACKPOCKPOS].exists())
{
pp->Inv[BPACKPOCKPOS] = gTempObject;
return;
}
// same for pistol holster
if (lbeClass == THIGH_PACK)
{
if (!pp->Inv[LTHIGHPOCKPOS].exists())
{
pp->Inv[LTHIGHPOCKPOS] = gTempObject;
return;
}
if (!pp->Inv[RTHIGHPOCKPOS].exists())
{
pp->Inv[RTHIGHPOCKPOS] = gTempObject;
return;
}
}
}
// Couldn't find a specific pocket, just stuff it somewhere
PlaceObjectInSoldierCreateStruct( pp, &gTempObject );
}
}