- new option for militia command menu: crouch/all crouch

- Larry now consumes every drug

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5638 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2012-10-21 16:57:45 +00:00
parent 38bcb34702
commit 63a09bba5f
12 changed files with 108 additions and 14 deletions
+29 -9
View File
@@ -296,7 +296,9 @@ void HourlyQuestUpdate( void )
}
#define BAR_TEMPTATION 4
#define NUM_LARRY_ITEMS 6
// Flugente: abandoned the LarryItems for the new drug system
/*#define NUM_LARRY_ITEMS 6
UINT16 LarryItems[ NUM_LARRY_ITEMS ][ 3 ] =
{
// item, temptation, points to use
@@ -306,18 +308,19 @@ UINT16 LarryItems[ NUM_LARRY_ITEMS ][ 3 ] =
{ WINE, 3, 50 },
{ REGEN_BOOSTER, 3, 100 },
{ BEER, 2, 100 },
};
};*/
#define LARRY_FALLS_OFF_WAGON 8
void HourlyLarryUpdate( void )
{
SOLDIERTYPE * pSoldier;
INT8 bSlot = NO_SLOT, bBoozeSlot;
INT8 bLarryItemLoop;
SOLDIERTYPE * pSoldier;
INT8 bSlot = NO_SLOT, bBoozeSlot;
INT8 bLarryItemLoop;
UINT16 usTemptation = 0;
UINT16 usCashAmount;
BOOLEAN fBar = FALSE;
OBJECTTYPE* pObj = NULL;
pSoldier = FindSoldierByProfileID( LARRY_NORMAL, TRUE );
if ( !pSoldier )
@@ -339,8 +342,23 @@ void HourlyLarryUpdate( void )
return;
}
// Flugente: reworked this for the new drug system. We now loop over our entire inventory
INT8 invsize = (INT8)pSoldier->inv.size(); // remember inventorysize, so we don't call size() repeatedly
for ( INT8 bLoop = 0; bLoop < invsize; ++bLoop) // ... for all items in our inventory ...
{
if ( pSoldier->inv[bLoop].exists() && Item[ pSoldier->inv[bLoop].usItem ].drugtype > 0 )
{
pObj = &(pSoldier->inv[bLoop]);
usTemptation = 5;
// any drug will do... I'm not going to create a new tag for sth minor like this
break;
}
}
// look for items in Larry's inventory to maybe use
for ( bLarryItemLoop = 0; bLarryItemLoop < NUM_LARRY_ITEMS; bLarryItemLoop++ )
/*for ( bLarryItemLoop = 0; bLarryItemLoop < NUM_LARRY_ITEMS; bLarryItemLoop++ )
{
bSlot = FindObj( pSoldier, LarryItems[ bLarryItemLoop ][ 0 ] );
if ( bSlot != NO_SLOT )
@@ -348,7 +366,7 @@ void HourlyLarryUpdate( void )
usTemptation = LarryItems[ bLarryItemLoop ][ 1 ];
break;
}
}
}*/
// check to see if we're in a bar sector, if we are, we have access to alcohol
// which may be better than anything we've got...
@@ -397,7 +415,7 @@ void HourlyLarryUpdate( void )
SwapLarrysProfiles( pSoldier );
if ( bSlot != NO_SLOT )
{
UseKitPoints( &(pSoldier->inv[ bSlot ]), LarryItems[ bLarryItemLoop ][ 2 ], pSoldier );
UseKitPoints( &(pSoldier->inv[ bSlot ]), 25/*LarryItems[ bLarryItemLoop ][ 2 ]*/, pSoldier );
}
}
}
@@ -427,8 +445,10 @@ void HourlyLarryUpdate( void )
}
if ( bSlot != NO_SLOT )
{
// Flugente: abandoned LarryItems
// ahhhh!!!
UseKitPoints( &(pSoldier->inv[ bSlot ]), LarryItems[ bLarryItemLoop ][ 2 ], pSoldier );
if ( pObj )
UseKitPoints( pObj, 100/*LarryItems[ bLarryItemLoop ][ 2 ]*/, pSoldier );
}
}
}
+2
View File
@@ -60,6 +60,7 @@ enum{
MILCON_MENU_RETREAT,
MILCON_MENU_COMETOME,
MILCON_MENU_GETDOWN,
MILCON_MENU_CROUCH,
MILCON_MENU_TAKE_COVER,
MILCON_MENU_ALL_ATTACK,
MILCON_MENU_ALL_HOLD,
@@ -67,6 +68,7 @@ enum{
MILCON_MENU_ALL_COMETOME,
MILCON_MENU_ALL_SPREAD,
MILCON_MENU_ALL_GETDOWN,
MILCON_MENU_ALL_CROUCH,
MILCON_MENU_ALL_TAKE_COVER,
//MILCON_MENU_ALL_TAKE_ITEMS,
MILCON_MENU_CANCEL,
+56 -2
View File
@@ -1013,6 +1013,7 @@ void HandleShadingOfLinesForMilitiaControlMenu( void )
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_RETREAT );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_COMETOME );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_GETDOWN );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_CROUCH );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_TAKE_COVER );
}
else
@@ -1022,6 +1023,7 @@ void HandleShadingOfLinesForMilitiaControlMenu( void )
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_RETREAT );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_COMETOME );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_GETDOWN );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_CROUCH );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_TAKE_COVER );
}
}
@@ -1034,6 +1036,7 @@ void HandleShadingOfLinesForMilitiaControlMenu( void )
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_COMETOME );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_SPREAD );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_GETDOWN );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_CROUCH );
UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_TAKE_COVER );
//UnShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_TAKE_ITEMS );
}
@@ -1045,6 +1048,7 @@ void HandleShadingOfLinesForMilitiaControlMenu( void )
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_COMETOME );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_SPREAD );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_GETDOWN );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_CROUCH );
ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_TAKE_COVER );
//ShadeStringInBox( ghMilitiaControlBox, MILCON_MENU_ALL_TAKE_ITEMS );
}
@@ -1437,8 +1441,29 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
}
break;
case( MILCON_MENU_CROUCH ):
{
if ( (pTMilitiaSoldier->bActive) && (pTMilitiaSoldier->bInSector) && (pTMilitiaSoldier->stats.bLife >= OKLIFE) )
SendChangeSoldierStanceEvent( pTMilitiaSoldier, ANIM_CROUCH );
case( MILCON_MENU_TAKE_COVER ):
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
{
DeductPoints( pSoldier, APBPConstants[AP_TALK], 0 );
StatChange( pSoldier, LDRAMT, 1, FALSE );
}
// stop showing menu
fShowMilitiaControlMenu = FALSE;
giAssignHighLine = -1;
// set dirty flag
fTeamPanelDirty = TRUE;
fMapScreenBottomDirty = TRUE;
}
break;
case( MILCON_MENU_TAKE_COVER ):
{
if ( (pTMilitiaSoldier->bActive) && (pTMilitiaSoldier->bInSector) && (pTMilitiaSoldier->stats.bLife >= OKLIFE) )
{
@@ -1749,9 +1774,38 @@ void MilitiaControlMenuBtnCallBack( MOUSE_REGION * pRegion, INT32 iReason )
}
break;
case( MILCON_MENU_ALL_CROUCH ):
{
UINT8 cnt;
SOLDIERTYPE *pTeamSoldier;
cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++cnt, ++pTeamSoldier)
{
if ( (pTeamSoldier->bActive) && (pTeamSoldier->bInSector) && (pTeamSoldier->stats.bLife >= OKLIFE) )
{
SendChangeSoldierStanceEvent( pTeamSoldier, ANIM_CROUCH );
}
}
case( MILCON_MENU_ALL_TAKE_COVER ):
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
{
DeductPoints( pSoldier, APBPConstants[AP_TALK], 0 );
StatChange( pSoldier, LDRAMT, 1, FALSE );
}
// stop showing menu
fShowMilitiaControlMenu = FALSE;
giAssignHighLine = -1;
// set dirty flag
fTeamPanelDirty = TRUE;
fMapScreenBottomDirty = TRUE;
}
break;
case( MILCON_MENU_ALL_TAKE_COVER ):
{
//UINT8 cnt;
//SOLDIERTYPE *pTeamSoldier;
+2
View File
@@ -1905,6 +1905,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"撤退", // retreat militia
L"向我靠拢", // retreat militia
L"卧倒", // retreat militia
L"Crouch", // TODO.Translate
L"隐蔽",
L"全体: 进攻",
L"全体: 原地坚守",
@@ -1912,6 +1913,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"全体: 向我靠拢",
L"全体: 分散",
L"全体: 卧倒",
L"All: Crouch", // TODO.Translate
L"全体: 隐蔽",
//L"All: Find items",
L"取消", // cancel this menu
+2
View File
@@ -1901,6 +1901,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Retreat", // retreat militia
L"Come to me", // retreat militia
L"Get down", // retreat militia
L"Crouch", // TODO.Translate
L"Take cover",
L"All: Attack",
L"All: Hold Position",
@@ -1908,6 +1909,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"All: Come to me",
L"All: Spread out",
L"All: Get down",
L"All: Crouch", // TODO.Translate
L"All: Take cover",
//L"All: Find items",
L"Cancel", // cancel this menu
+4 -2
View File
@@ -1903,8 +1903,9 @@ STR16 pMilitiaControlMenuStrings[] =
L"Attack", // set militia to aggresive
L"Hold Position", // set militia to stationary
L"Retreat", // retreat militia
L"Come to me", // retreat militia
L"Get down", // retreat militia
L"Come to me",
L"Get down",
L"Crouch",
L"Take cover",
L"All: Attack",
L"All: Hold Position",
@@ -1912,6 +1913,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"All: Come to me",
L"All: Spread out",
L"All: Get down",
L"All: Crouch",
L"All: Take cover",
//L"All: Find items",
L"Cancel", // cancel this menu
+2
View File
@@ -1904,6 +1904,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Retraite", // retreat militia
L"Rejoignez moi", // retreat militia
L"Couchez vous", // retreat militia
L"Crouch", // TODO.Translate
L"A couvert!",
L"All: Attaquez",
L"All: Tenez la Position",
@@ -1911,6 +1912,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"All: Rejoignez-moi",
L"All: Dispersez-vous",
L"All: Couchez-vous",
L"All: Crouch", // TODO.Translate
L"All: A couvert!",
//L"All: Trouver materiel",
L"Annuler", // cancel this menu
+2
View File
@@ -1904,6 +1904,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Rückzug", // retreat militia
L"An meine Position", // retreat militia
L"Auf den Boden", // retreat militia
L"Ducken",
L"In Deckung gehen",
L"Alle: Angreifen",
L"Alle: Position halten",
@@ -1911,6 +1912,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Alle: An meine Position",
L"Alle: Ausschwärmen",
L"Alle: Auf den Boden",
L"Alle: Ducken",
L"Alle: In Deckung gehen",
//L"All: Find items",
L"Abbrechen", // cancel this menu
+3 -1
View File
@@ -1896,7 +1896,8 @@ STR16 pMilitiaControlMenuStrings[] =
L"Hold Position", // set militia to stationary
L"Retreat", // retreat militia
L"Come to me", // retreat militia
L"Get down", // retreat militia
L"Get down", // retreat militia
L"Crouch", // TODO.Translate
L"Take cover",
L"All: Attack",
L"All: Hold Position",
@@ -1904,6 +1905,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"All: Come to me",
L"All: Spread out",
L"All: Get down",
L"All: Crouch", // TODO.Translate
L"All: Take cover",
//L"All: Find items",
L"Cancel", // cancel this menu
+2
View File
@@ -1912,6 +1912,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Wycofaj się", // retreat militia
L"Chodź do mnie", // retreat militia
L"Padnij", // retreat militia
L"Crouch", // TODO.Translate
L"Kryj się",
L"Wszyscy: Atakujcie",
L"Wszyscy: Utrzymajcie pozycje",
@@ -1919,6 +1920,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Wszyscy: Chodźcie do mnie",
L"Wszyscy: Rozproszcie się",
L"Wszyscy: Padnijcie",
L"All: Crouch", // TODO.Translate
L"Wszyscy: Kryjcie się",
//L"Wszyscy: Szukajcie przedmiotów",
L"Anuluj", // cancel this menu
+2
View File
@@ -1905,6 +1905,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Отступать", // retreat militia
L"За мной", // retreat militia
L"Ложись", // retreat militia
L"Crouch", // TODO.Translate
L"В укрытие",
L"Все в атаку",
L"Всем держать оборону",
@@ -1912,6 +1913,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Все за мной",
L"Всем рассеяться",
L"Всем залечь",
L"All: Crouch", // TODO.Translate
L"Всем в укрытие",
//L"Всем искать предметы",
L"Отмена", // cancel this menu
+2
View File
@@ -1905,6 +1905,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"Retreat", // retreat militia
L"Come to me", // retreat militia
L"Get down", // retreat militia
L"Crouch", // TODO.Translate
L"Take cover",
L"All: Attack",
L"All: Hold Position",
@@ -1912,6 +1913,7 @@ STR16 pMilitiaControlMenuStrings[] =
L"All: Come to me",
L"All: Spread out",
L"All: Get down",
L"All: Crouch", // TODO.Translate
L"All: Take cover",
//L"All: Find items",
L"Cancel", // cancel this menu