Drop/pick up backpacks using Shift+B, Ctrl+Shift+F:

- added check for DropPackFlag
- added message for soldiers changing backpack status

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8260 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2016-06-25 10:24:07 +00:00
parent b1eb11941a
commit eaca08b7e9
10 changed files with 74 additions and 15 deletions
+56 -15
View File
@@ -7932,39 +7932,80 @@ void HandleTBLocatePrevMerc( void )
void HandleTBDropBackpacks( void )
{
if( UsingNewInventorySystem() == true )
//if( UsingNewInventorySystem() && gusSelectedSoldier != NOBODY )
if( UsingNewInventorySystem() )
{
//SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ];
SOLDIERTYPE *pTeamSoldier;
INT8 bLoop;
for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++)
UINT8 ubLoop;
INT16 sAPCost = APBPConstants[AP_BACK_PACK];
INT32 iBPCost = APBPConstants[BP_BACK_PACK];
for( ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++ )
{
//if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) && pTeamSoldier->inv[BPACKPOCKPOS].exists() == true )
if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && OK_INTERRUPT_MERC( pTeamSoldier ) && !AM_A_ROBOT( pTeamSoldier ) && pTeamSoldier->inv[BPACKPOCKPOS].exists() == true )
{
ChangeDropPackStatus(pTeamSoldier, TRUE);
pTeamSoldier=MercPtrs[ ubLoop ];
if( OK_CONTROLLABLE_MERC( pTeamSoldier ) &&
OK_INTERRUPT_MERC( pTeamSoldier ) &&
!AM_A_ROBOT( pTeamSoldier ) &&
EnoughPoints(pTeamSoldier, sAPCost, iBPCost, FALSE) &&
//pTeamSoldier->bAssignment == pSoldier->bAssignment &&
pTeamSoldier->bAssignment < ON_DUTY &&
pTeamSoldier->inv[BPACKPOCKPOS].exists() &&
!pTeamSoldier->flags.DropPackFlag )
{
if( ChangeDropPackStatus(pTeamSoldier, TRUE) )
{
ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_SOLDIER_DROP], pTeamSoldier->GetName());
}
}
}
fCharacterInfoPanelDirty = TRUE;
fInterfacePanelDirty = DIRTYLEVEL2;
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_ALL_DROP] );
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_ALL_DROP] );
}
}
void HandleTBPickUpBackpacks( void )
{
if( UsingNewInventorySystem() == true )
//if( UsingNewInventorySystem() && gusSelectedSoldier != NOBODY )
if( UsingNewInventorySystem() )
{
//SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ];
SOLDIERTYPE *pTeamSoldier;
INT8 bLoop;
for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++)
UINT8 ubLoop;
INT16 sAPCost = APBPConstants[AP_BACK_PACK];
INT32 iBPCost = APBPConstants[BP_BACK_PACK];
for( ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ubLoop++ )
{
if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && !AM_A_ROBOT( pTeamSoldier ) && pTeamSoldier->inv[BPACKPOCKPOS].exists() == false )
{
ChangeDropPackStatus(pTeamSoldier, FALSE);
pTeamSoldier=MercPtrs[ubLoop];
if( OK_CONTROLLABLE_MERC( pTeamSoldier ) &&
OK_INTERRUPT_MERC( pTeamSoldier ) &&
!AM_A_ROBOT( pTeamSoldier ) &&
EnoughPoints(pTeamSoldier, sAPCost, iBPCost, FALSE) &&
//pTeamSoldier->bAssignment == pSoldier->bAssignment &&
pTeamSoldier->bAssignment < ON_DUTY &&
!pTeamSoldier->inv[BPACKPOCKPOS].exists() &&
pTeamSoldier->flags.DropPackFlag )
{
if( ChangeDropPackStatus(pTeamSoldier, FALSE) )
{
ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_SOLDIER_PICKUP], pTeamSoldier->GetName());
}
}
}
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_ALL_PICKUP] );
fCharacterInfoPanelDirty = TRUE;
fInterfacePanelDirty = DIRTYLEVEL2;
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_ALL_PICKUP] );
}
}
void HandleTBSoldierRun( void )
{
SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ];
+2
View File
@@ -2542,6 +2542,8 @@ enum
NIV_NO_CLIMB,
NIV_ALL_DROP,
NIV_ALL_PICKUP,
NIV_SOLDIER_DROP,
NIV_SOLDIER_PICKUP,
TEXT_NUM_NIV,
};
+2
View File
@@ -7528,6 +7528,8 @@ STR16 NewInvMessage[] =
L"装备大背包后无法爬上房顶",
L"所有人的背包已放下",
L"所有人已背起所属的背包",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7536,6 +7536,8 @@ STR16 NewInvMessage[] =
L"Kan beklimmen niet terwijl het dragen van een rugzak",
L"All backpacks dropped", // TODO.Translate
L"All owned backpacks picked up",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7524,6 +7524,8 @@ STR16 NewInvMessage[] =
L"Cannot climb while wearing a backpack",
L"All backpacks dropped",
L"All owned backpacks picked up",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7530,6 +7530,8 @@ STR16 NewInvMessage[] =
L"Ne peut pas escalader avec un sac à dos",
L"Tous les sacs à dos sont posés à terre",
L"Tous les sacs à dos sont ramassés",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7356,6 +7356,8 @@ STR16 NewInvMessage[] =
L"Kann nicht beim Tragen eines Rucksacks klettern",
L"All backpacks dropped", // TODO.Translate
L"All owned backpacks picked up",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7527,6 +7527,8 @@ STR16 NewInvMessage[] =
L"Non può arrampicarsi mentre portano uno zaino",
L"All backpacks dropped", // TODO.Translate
L"All owned backpacks picked up",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7536,6 +7536,8 @@ STR16 NewInvMessage[] =
L"Nie można wspinać się z plecakiem",
L"All backpacks dropped", // TODO.Translate
L"All owned backpacks picked up",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages
+2
View File
@@ -7524,6 +7524,8 @@ STR16 NewInvMessage[] =
L"Тяжеловато будет взбираться с полным рюкзаком на крышу. Может, снимем?",
L"Все рюкзаки сброшены",
L"Все рюкзаки подняты",
L"%s drops backpack",
L"%s picks up backpack",
};
// WANNE - MP: Multiplayer messages