From 63a09bba5f7eefdd82873c2fb7f3e5826f39b081 Mon Sep 17 00:00:00 2001 From: Flugente Date: Sun, 21 Oct 2012 16:57:45 +0000 Subject: [PATCH] - 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 --- Strategic/Hourly Update.cpp | 38 ++++++++++++++++----- Strategic/Map Screen Interface.h | 2 ++ Tactical/Militia Control.cpp | 58 ++++++++++++++++++++++++++++++-- Utils/_ChineseText.cpp | 2 ++ Utils/_DutchText.cpp | 2 ++ Utils/_EnglishText.cpp | 6 ++-- Utils/_FrenchText.cpp | 2 ++ Utils/_GermanText.cpp | 2 ++ Utils/_ItalianText.cpp | 4 ++- Utils/_PolishText.cpp | 2 ++ Utils/_RussianText.cpp | 2 ++ Utils/_TaiwaneseText.cpp | 2 ++ 12 files changed, 108 insertions(+), 14 deletions(-) diff --git a/Strategic/Hourly Update.cpp b/Strategic/Hourly Update.cpp index d8458c35..1b0d516a 100644 --- a/Strategic/Hourly Update.cpp +++ b/Strategic/Hourly Update.cpp @@ -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 ); } } } diff --git a/Strategic/Map Screen Interface.h b/Strategic/Map Screen Interface.h index e7da46a8..16ba1164 100644 --- a/Strategic/Map Screen Interface.h +++ b/Strategic/Map Screen Interface.h @@ -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, diff --git a/Tactical/Militia Control.cpp b/Tactical/Militia Control.cpp index 582ecff5..a0635ac3 100644 --- a/Tactical/Militia Control.cpp +++ b/Tactical/Militia Control.cpp @@ -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; diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index 75ed38e8..400ea9fe 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -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 diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index 466295dd..36fd32f0 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -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 diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index 2de48b82..28c5fce1 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -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 diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index 23c6c539..3a66a44e 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -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 diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index ab88688f..92278fd5 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -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 diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index a4b25b25..7b034a04 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -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 diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index 27808823..070e9c0a 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -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 diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index e24c8409..80f27d51 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -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 diff --git a/Utils/_TaiwaneseText.cpp b/Utils/_TaiwaneseText.cpp index 72c49a11..18029932 100644 --- a/Utils/_TaiwaneseText.cpp +++ b/Utils/_TaiwaneseText.cpp @@ -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