Disable backpack climb check for non-player soldiers (#117)

This commit is contained in:
rftrdev
2023-01-27 17:56:46 -08:00
committed by GitHub
parent 30fe4bd33b
commit b5ec955324
9 changed files with 35 additions and 88 deletions
+12 -4
View File
@@ -9430,10 +9430,7 @@ void MoveMercFacingDirection( SOLDIERTYPE *pSoldier, BOOLEAN fReverse, FLOAT dMo
void SOLDIERTYPE::BeginSoldierClimbUpRoof(void)
{
//CHRISL: Disable climbing up to a roof while wearing a backpack
if ((UsingNewInventorySystem() == true) && this->inv[BPACKPOCKPOS].exists() == true
//JMich.BackpackClimb
&& ((gGameExternalOptions.sBackpackWeightToClimb == -1) || (INT16)this->inv[BPACKPOCKPOS].GetWeightOfObjectInStack() + Item[this->inv[BPACKPOCKPOS].usItem].sBackpackWeightModifier > gGameExternalOptions.sBackpackWeightToClimb)
&& ((gGameExternalOptions.fUseGlobalBackpackSettings == TRUE) || (Item[this->inv[BPACKPOCKPOS].usItem].fAllowClimbing == FALSE)))
if (!this->CanClimbWithCurrentBackpack())
{
ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_NO_CLIMB]);
return;
@@ -9727,6 +9724,17 @@ UINT32 SleepDartSuccumbChance( SOLDIERTYPE * pSoldier )
return(uiChance);
}
BOOLEAN SOLDIERTYPE::CanClimbWithCurrentBackpack()
{
// only apply backpack climbing limitations to player mercs
if (UsingNewInventorySystem() == true && this->inv[BPACKPOCKPOS].exists() == true && this->bTeam == OUR_TEAM
&& ((gGameExternalOptions.sBackpackWeightToClimb == -1) || (INT16)this->inv[BPACKPOCKPOS].GetWeightOfObjectInStack() + Item[this->inv[BPACKPOCKPOS].usItem].sBackpackWeightModifier > gGameExternalOptions.sBackpackWeightToClimb)
&& ((gGameExternalOptions.fUseGlobalBackpackSettings == TRUE) || (Item[this->inv[BPACKPOCKPOS].usItem].fAllowClimbing == FALSE)))
return FALSE;
return TRUE;
}
void SOLDIERTYPE::BeginSoldierGetup( void )
{
// RETURN IF WE ARE BEING SERVICED