From 358fc9e31c7ddb026d0e055196fa4f6f72d7540c Mon Sep 17 00:00:00 2001 From: Wanne Date: Sun, 7 Jan 2007 21:03:32 +0000 Subject: [PATCH] - feature: Added filter buttons for Misc items to Bobby Rays new exe build (656) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@657 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameVersion.cpp | 6 +- JA2.suo | Bin 197632 -> 197632 bytes JA2.vcproj | 4 +- Laptop/BobbyRGuns.cpp | 268 ++++++++++++++++++++++++++++++++++++----- Laptop/BobbyRGuns.h | 3 + Laptop/BobbyRMisc.cpp | 24 ++-- Utils/Text.h | 10 ++ Utils/_DutchText.cpp | 19 ++- Utils/_EnglishText.cpp | 19 ++- Utils/_FrenchText.cpp | 19 ++- Utils/_GermanText.cpp | 21 +++- Utils/_ItalianText.cpp | 19 ++- Utils/_PolishText.cpp | 19 ++- Utils/_RussianText.cpp | 19 ++- 14 files changed, 382 insertions(+), 68 deletions(-) diff --git a/GameVersion.cpp b/GameVersion.cpp index c6afb8d9..8479f23a 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -23,12 +23,12 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" }; #else //RELEASE BUILD VERSION - INT16 zVersionLabel[256] = { L"Release v1.13.654" }; + INT16 zVersionLabel[256] = { L"Release v1.13.656" }; #endif - -INT8 czVersionNumber[16] = { "Build 06.12.17" }; + +INT8 czVersionNumber[16] = { "Build 07.01.07" }; //YY.MM.DD INT16 zTrackingNumber[16] = { L"Z" }; diff --git a/JA2.suo b/JA2.suo index 0c795df1fa22149ca01f3f7643be4827e0f1da9b..ab0f82714effcb0d4f89dbf698a683fe873f7795 100644 GIT binary patch delta 2011 zcmc&!T}&KR6h7bVu*=VOD6ssvyL8!wwonWpL5o5xMPd~xu8sO&n$#j_ummVn6vTG* zMT|+qW@7Jyi6U3Y>a{Qo6mEi1OJA*b3Q-*zRI;vw7IOY?;PUtU&)t;shIY_^mcU)0PA90PqW&G{RvgONU72Z_Ycp8=OYX)}wj>#$~k5M2x z`G7L%c1D`MKnO;tBBXxS_==_|X~sxv=ZGl#7y=0kUIsNC^ePX5zst8t~>YXuY z`oMg>e*CtkUoYQgbk3#M+q$U1=vxaz_?Hkkdk#eq1=H9i`bSZtj~`LRv;!`EKCB9L z8jWJ246e@=v>{`WKg~=pe0WMc(}jTeXBw^I*;TZs@x72c^0kT!iU_J`ip)4Lo{Mng z2{)oA#hEq?i2mKs#PS6=efziyy);Nw^c?l`L-e>TV0^3;N1L&n0^iTKImpl?{J|KS zYd5k9fY`20Udlpgx?XUu3UWUKNknk0qViB-Cn;VRTI^$WVCEnb^o6o@K7T$(bwh zmU1YN%MRrKBhju*)#a|7|L8}PP0usKdPVRu4vFFgq$d(Czf-~rm6!?3YO003CKnHL z-$fuR-J&&nl+h<9%w!|%6xNTusE^!~awk+Xz9{>NG-1I Uvs5=iq*PD7iA6-Ps6?y(1qIyK;{X5v delta 1727 zcma)5YiL|W6rOYUy?gg=vb$zCo0#U+blaxQ8YRRUBrPpX+q9-iQ>4^xnuJ=r7}-2X zBQ%Q$1|MnaP)eIPl$j z=9_QMIdkSrqDM~j$b(@CviN4H$mwT{JwR|WUT-ZIJ<@leR1ZfTZRKBpiTK3JqRTu6 zW~;=Q*lkTnk7=xz@B({^wXhg#Vy9U%ixX2rI7R$X;^X>CEviWgJYzI#!17PeRxvwWMo~ig8g=B;X0c|F#6%X*JC)+I(b%eE1ycla0?VfJ4 zb(*Nz0H61rlV*T-`MW?Czx!RLJtlG{5iA5V!A)3HRnf(zdoo|lDv3CF}d3>UhpZiPUGx>RjO}O zBLI(*~% zNtzX0BugeO^?^Qaz5j@J_S1oBygUr~7+ruvShWCg*vA`216TzR?rxxn|8Br->~SjP zUTVG5)Rc#)36GPzPQrgSB{k;%^R=BK9@JaC5f5iW5h`YQW?v044HQp{-p)?aqj*-I zH?!5|Upm(E_Y~##Jnh;}Poq&ME%XiQl`W&!wS$nW&t$4dfRL}3b0eurvEUj6+z*lY zFd>J)@U;Orz;{*b;1yeHc_iZ0TP@>uvADT)$c2R-2&3mSknyq^^00aVhVUgDJc{4^ z1jl?ErIoS|o>5Kdm}>^&JTMf)b;Q^|922;M?m^1FI=+SV!{KO{iOw zV!lzbHpN{SnW5u4yE;3&7 zYJ7=RV1|HkZ2w@jEsBjhF3y_n^OHZ9;&B0U`1Ul|e4C7_WXp%Jf2BRbMgh`6rtr!T Tbl@*($a}>-2}$>)^lRDQ+rYeJ diff --git a/JA2.vcproj b/JA2.vcproj index dbc0aa15..9f5f3311 100644 --- a/JA2.vcproj +++ b/JA2.vcproj @@ -43,7 +43,7 @@ 7) + { + usPosX = FILTER_BUTTONS_MISC_START_X; + usYOffset = 25; + } + + // Filter buttons + guiBobbyRFilterMisc[i] = CreateIconAndTextButton( guiBobbyRFilterImage, BobbyRFilter[BOBBYR_FILTER_MISC_BLADE+i], BOBBYR_GUNS_BUTTON_FONT, + BOBBYR_GUNS_TEXT_COLOR_ON, BOBBYR_GUNS_SHADOW_COLOR, + BOBBYR_GUNS_TEXT_COLOR_OFF, BOBBYR_GUNS_SHADOW_COLOR, + TEXT_CJUSTIFIED, + usPosX, FILTER_BUTTONS_Y + usYOffset, BUTTON_TOGGLE, MSYS_PRIORITY_HIGH, + DEFAULT_MOVE_CALLBACK, BtnBobbyRFilterMiscCallback); + + SetButtonCursor(guiBobbyRFilterMisc[i], CURSOR_LAPTOP_SCREEN); + + MSYS_SetBtnUserData( guiBobbyRFilterMisc[i], 0, ubFilterMiscButtonValues[bCurMode]); + + usPosX += BOBBYR_MISC_FILTER_BUTTON_GAP; + bCurMode++; + } + + + return(TRUE); +} + BOOLEAN InitBobbyMenuBar( ) { @@ -781,6 +840,21 @@ BOOLEAN DeleteBobbyRArmourFilter() return (TRUE); } +// WANNE +BOOLEAN DeleteBobbyRMiscFilter() +{ + UINT8 i; + + UnloadButtonImage( guiBobbyRFilterImage ); + + for (i=0; iuiFlags & BUTTON_ENABLED)) + return; + + if(reason & MSYS_CALLBACK_REASON_LBUTTON_DWN ) + { + btn->uiFlags |= BUTTON_CLICKED_ON; + + InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); + } + if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) + { + btn->uiFlags &= (~BUTTON_CLICKED_ON ); + + guiPrevMiscFilterMode = guiCurrentMiscFilterMode; + + switch (bNewValue) + { + case BOBBYR_FILTER_MISC_BLADE: + guiCurrentMiscFilterMode = IC_BLADE; + break; + case BOBBYR_FILTER_MISC_THROWING_KNIFE: + guiCurrentMiscFilterMode = IC_THROWING_KNIFE; + break; + case BOBBYR_FILTER_MISC_PUNCH: + guiCurrentMiscFilterMode = IC_PUNCH; + break; + case BOBBYR_FILTER_MISC_GRENADE: + guiCurrentMiscFilterMode = IC_GRENADE; + break; + case BOBBYR_FILTER_MISC_BOMB: + guiCurrentMiscFilterMode = IC_BOMB; + break; + case BOBBYR_FILTER_MISC_MEDKIT: + guiCurrentMiscFilterMode = IC_MEDKIT; + break; + case BOBBYR_FILTER_MISC_KIT: + guiCurrentMiscFilterMode = IC_KIT; + break; + case BOBBYR_FILTER_MISC_FACE: + guiCurrentMiscFilterMode = IC_FACE; + break; + case BOBBYR_FILTER_MISC_MISC: + guiCurrentMiscFilterMode = IC_MISC; + break; + } + + SetFirstLastPagesForNew(IC_BOBBY_MISC, guiCurrentMiscFilterMode); + + // WANNE: TODO + UpdateMiscFilterButtons(); + + DeleteMouseRegionForBigImage(); + fReDrawScreenFlag = TRUE; + fPausedReDrawScreenFlag = TRUE; + } + if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE) + { + btn->uiFlags &= (~BUTTON_CLICKED_ON ); + InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); + } +} + void BtnBobbyRNextPreviousPageCallback(GUI_BUTTON *btn,INT32 reason) { UINT32 bNewValue; @@ -1405,7 +1541,10 @@ BOOLEAN DisplayItemInfo(UINT32 uiItemClass, INT32 iFilter) { if (iFilter > -1) { - // TODO + if (Item[usItemIndex].usItemClass == iFilter) + { + bAddItem = true; + } } } @@ -1453,7 +1592,10 @@ BOOLEAN DisplayItemInfo(UINT32 uiItemClass, INT32 iFilter) { if (iFilter > -1) { - // TODO + if (Item[usItemIndex].usItemClass == iFilter) + { + bAddItem = TRUE; + } } } @@ -1995,12 +2137,18 @@ void SetFirstLastPagesForNew( UINT32 uiClassMask, INT32 iFilter ) break; // Armour case IC_ARMOUR: - // WANNE: TODO if (Armour[ Item[usItemIndex].ubClassIndex ].ubArmourClass == iFilter) { bCntNumItems = TRUE; } break; + // Misc + case IC_BOBBY_MISC: + if (Item[usItemIndex].usItemClass == iFilter) + { + bCntNumItems = TRUE; + } + break; } } @@ -2694,7 +2842,14 @@ void UpdateButtonText(UINT32 uiCurPage) break; case LAPTOP_MODE_BOBBY_R_MISC: - DisableButton( guiBobbyRPageMenu[3] ); + if (guiCurrentMiscFilterMode != -1) + { + EnableButton( guiBobbyRPageMenu[3] ); + } + else + { + DisableButton( guiBobbyRPageMenu[3] ); + } break; case LAPTOP_MODE_BOBBY_R_USED: @@ -2749,25 +2904,20 @@ void UpdateGunFilterButtons(INT32 iNewButton, INT32 iOldButton) void UpdateUsedFilterButtons() { + EnableButton(guiBobbyRFilterUsed[0]); + EnableButton(guiBobbyRFilterUsed[1]); + EnableButton(guiBobbyRFilterUsed[2]); + switch (guiCurrentUsedFilterMode) { case IC_BOBBY_GUN: DisableButton(guiBobbyRFilterUsed[0]); - - EnableButton(guiBobbyRFilterUsed[1]); - EnableButton(guiBobbyRFilterUsed[2]); break; case IC_ARMOUR: DisableButton(guiBobbyRFilterUsed[1]); - - EnableButton(guiBobbyRFilterUsed[0]); - EnableButton(guiBobbyRFilterUsed[2]); break; case IC_BOBBY_MISC: DisableButton(guiBobbyRFilterUsed[2]); - - EnableButton(guiBobbyRFilterUsed[0]); - EnableButton(guiBobbyRFilterUsed[1]); break; } } @@ -2790,6 +2940,65 @@ void UpdateArmourFilterButtons(INT32 iNewButton, INT32 iOldButton) } } +void UpdateMiscFilterButtons() +{ + EnableButton(guiBobbyRFilterMisc[0]); + EnableButton(guiBobbyRFilterMisc[1]); + EnableButton(guiBobbyRFilterMisc[2]); + EnableButton(guiBobbyRFilterMisc[3]); + EnableButton(guiBobbyRFilterMisc[4]); + EnableButton(guiBobbyRFilterMisc[5]); + EnableButton(guiBobbyRFilterMisc[6]); + EnableButton(guiBobbyRFilterMisc[7]); + EnableButton(guiBobbyRFilterMisc[8]); + + switch (guiCurrentMiscFilterMode) + { + case IC_BLADE: + DisableButton(guiBobbyRFilterMisc[0]); + break; + case IC_THROWING_KNIFE: + DisableButton(guiBobbyRFilterMisc[1]); + break; + case IC_PUNCH: + DisableButton(guiBobbyRFilterMisc[2]); + break; + case IC_GRENADE: + DisableButton(guiBobbyRFilterMisc[3]); + break; + case IC_BOMB: + DisableButton(guiBobbyRFilterMisc[4]); + break; + case IC_MEDKIT: + DisableButton(guiBobbyRFilterMisc[5]); + break; + case IC_KIT: + DisableButton(guiBobbyRFilterMisc[6]); + break; + case IC_FACE: + DisableButton(guiBobbyRFilterMisc[7]); + break; + case IC_MISC: + DisableButton(guiBobbyRFilterMisc[8]); + break; + } + + //if (iNewButton != iOldButton) + //{ + // if (iNewButton > -1) + // { + // // Disable new Button + // DisableButton(guiBobbyRFilterMisc[iNewButton]); + // } + + // if (iOldButton > -1) + // { + // // Enable old Button + // EnableButton(guiBobbyRFilterMisc[iOldButton]); + // } + //} +} + UINT16 CalcBobbyRayCost( UINT16 usIndex, UINT16 usBobbyIndex, BOOLEAN fUsed) { DOUBLE value; @@ -3005,7 +3214,12 @@ void CalcFirstIndexForPage( STORE_INVENTORY *pInv, UINT32 uiItemClass ) } else { - // TODO + usItemIndex = LaptopSaveInfo.BobbyRayInventory[ i ].usItemIndex; + + if (Item[usItemIndex].usItemClass == guiCurrentMiscFilterMode) + { + bCntItem = TRUE; + } } } diff --git a/Laptop/BobbyRGuns.h b/Laptop/BobbyRGuns.h index 4280fb59..19acdf34 100644 --- a/Laptop/BobbyRGuns.h +++ b/Laptop/BobbyRGuns.h @@ -42,10 +42,12 @@ BOOLEAN DeleteBobbyRGunsFilter(); BOOLEAN DeleteBobbyRAmmoFilter(); BOOLEAN DeleteBobbyRUsedFilter(); BOOLEAN DeleteBobbyRArmourFilter(); +BOOLEAN DeleteBobbyRMiscFilter(); BOOLEAN InitBobbyRGunsFilterBar(); BOOLEAN InitBobbyRAmmoFilterBar(); BOOLEAN InitBobbyRUsedFilterBar(); BOOLEAN InitBobbyRArmourFilterBar(); +BOOLEAN InitBobbyRMiscFilterBar(); BOOLEAN DisplayBobbyRBrTitle(); BOOLEAN DeleteBobbyBrTitle(); @@ -64,6 +66,7 @@ void UpdateAmmoFilterButtons(INT32 iNewButton, INT32 iOldButton); void UpdateGunFilterButtons(INT32 iNewButton, INT32 iOldButton); void UpdateUsedFilterButtons(); void UpdateArmourFilterButtons(INT32 iNewButton, INT32 iOldButton); +void UpdateMiscFilterButtons(); void EnterInitBobbyRGuns(); void DailyUpdateOfBobbyRaysUsedInventory(); diff --git a/Laptop/BobbyRMisc.cpp b/Laptop/BobbyRMisc.cpp index 8fd0a96a..1f70118d 100644 --- a/Laptop/BobbyRMisc.cpp +++ b/Laptop/BobbyRMisc.cpp @@ -42,10 +42,15 @@ BOOLEAN EnterBobbyRMisc() guiPrevMiscFilterMode = -1; guiCurrentMiscFilterMode = -1; + SetFirstLastPagesForNew( IC_BOBBY_MISC, guiCurrentMiscFilterMode ); + //Draw menu bar InitBobbyMenuBar( ); + // WANNE + InitBobbyRMiscFilterBar(); - SetFirstLastPagesForNew( IC_BOBBY_MISC, guiCurrentMiscFilterMode ); + + // CalculateFirstAndLastIndexs(); RenderBobbyRMisc( ); @@ -58,9 +63,14 @@ void ExitBobbyRMisc() DeleteVideoObjectFromIndex(guiMiscBackground); DeleteVideoObjectFromIndex(guiMiscGrid); DeleteBobbyBrTitle(); - DeleteMouseRegionForBigImage(); + DeleteBobbyMenuBar(); + // WANNE + DeleteBobbyRMiscFilter(); + + DeleteMouseRegionForBigImage(); + guiLastBobbyRayPage = LAPTOP_MODE_BOBBY_R_MISC; } @@ -79,16 +89,16 @@ void RenderBobbyRMisc() // GunForm GetVideoObject(&hPixHandle, guiMiscGrid); - BltVideoObject(FRAME_BUFFER, hPixHandle, 0, BOBBYR_GRIDLOC_X, BOBBYR_GRIDLOC_Y, VO_BLT_SRCTRANSPARENCY,NULL); + BltVideoObject(FRAME_BUFFER, hPixHandle, 0, BOBBYR_GRIDLOC_X, BOBBYR_GRIDLOC_Y, VO_BLT_SRCTRANSPARENCY,NULL); + // WANNE DisplayItemInfo(IC_BOBBY_MISC, guiCurrentMiscFilterMode); - UpdateButtonText(guiCurrentLaptopMode); - // TODO + UpdateMiscFilterButtons(); - MarkButtonsDirty( ); + MarkButtonsDirty( ); RenderWWWProgramTitleBar( ); - InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); + InvalidateRegion(LAPTOP_SCREEN_UL_X,LAPTOP_SCREEN_WEB_UL_Y,LAPTOP_SCREEN_LR_X,LAPTOP_SCREEN_WEB_LR_Y); fReDrawScreenFlag = TRUE; fPausedReDrawScreenFlag = TRUE; } diff --git a/Utils/Text.h b/Utils/Text.h index bf465460..c7449990 100644 --- a/Utils/Text.h +++ b/Utils/Text.h @@ -825,6 +825,16 @@ enum BOBBYR_FILTER_ARMOUR_VEST, BOBBYR_FILTER_ARMOUR_LEGGING, BOBBYR_FILTER_ARMOUR_PLATE, + // Misc + BOBBYR_FILTER_MISC_BLADE, + BOBBYR_FILTER_MISC_THROWING_KNIFE, + BOBBYR_FILTER_MISC_PUNCH, + BOBBYR_FILTER_MISC_GRENADE, + BOBBYR_FILTER_MISC_BOMB, + BOBBYR_FILTER_MISC_MEDKIT, + BOBBYR_FILTER_MISC_KIT, + BOBBYR_FILTER_MISC_FACE, + BOBBYR_FILTER_MISC_MISC, }; diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index 57c13758..8584235c 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -2835,10 +2835,21 @@ STR16 BobbyRFilter[] = L"Misc", // Armour - L"Helm", - L"Vest", - L"Legging", - L"Plate", + L"Helmets", + L"Vests", + L"Leggings", + L"Plates", + + // Misc + L"Blades", + L"Th. Knives", + L"Punch. W.", + L"Grenades", + L"Bombs", + L"Med. Kits", + L"Kits", + L"Face Items", + L"Misc.", }; diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index 77c1d3cc..22479401 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -2835,10 +2835,21 @@ STR16 BobbyRFilter[] = L"Misc", // Armour - L"Helm", - L"Vest", - L"Legging", - L"Plate", + L"Helmets", + L"Vests", + L"Leggings", + L"Plates", + + // Misc + L"Blades", + L"Th. Knives", + L"Punch. W.", + L"Grenades", + L"Bombs", + L"Med. Kits", + L"Kits", + L"Face Items", + L"Misc.", }; diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index 83681f9e..7d94f10e 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -2824,10 +2824,21 @@ STR16 BobbyRFilter[] = L"Misc", // Armour - L"Helm", - L"Vest", - L"Legging", - L"Plate", + L"Helmets", + L"Vests", + L"Leggings", + L"Plates", + + // Misc + L"Blades", + L"Th. Knives", + L"Punch. W.", + L"Grenades", + L"Bombs", + L"Med. Kits", + L"Kits", + L"Face Items", + L"Misc.", }; diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index 0116fe47..e4c57ffd 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -2692,14 +2692,25 @@ STR16 BobbyRFilter[] = // Used L"Feuerwfn.", - L"Rüstung", + L"Rüstungen", L"Sonstiges", // Armour - L"Helm", - L"Weste", - L"Hose", - L"Platte", + L"Helme", + L"Westen", + L"Hosen", + L"Platten", + + // Misc + L"Klingen", + L"Wurfmesser", + L"Schlagwaf.", + L"Granaten", + L"Bomben", + L"Verbandsk.", + L"Taschen", + L"Gesicht G.", + L"Sonstiges", }; // This text is used when on the various Bobby Ray Web site pages that sell items diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index de871352..c162dcd1 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -2819,10 +2819,21 @@ STR16 BobbyRFilter[] = L"Misc", // Armour - L"Helm", - L"Vest", - L"Legging", - L"Plate", + L"Helmets", + L"Vests", + L"Leggings", + L"Plates", + + // Misc + L"Blades", + L"Th. Knives", + L"Punch. W.", + L"Grenades", + L"Bombs", + L"Med. Kits", + L"Kits", + L"Face Items", + L"Misc.", }; // This text is used when on the various Bobby Ray Web site pages that sell items diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index 77a05239..38422e2c 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -2817,10 +2817,21 @@ STR16 BobbyRFilter[] = L"Misc", // Armour - L"Helm", - L"Vest", - L"Legging", - L"Plate", + L"Helmets", + L"Vests", + L"Leggings", + L"Plates", + + // Misc + L"Blades", + L"Th. Knives", + L"Punch. W.", + L"Grenades", + L"Bombs", + L"Med. Kits", + L"Kits", + L"Face Items", + L"Misc.", }; diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index 54a64593..a12367be 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -2827,10 +2827,21 @@ STR16 BobbyRFilter[] = L"Misc", // Armour - L"Helm", - L"Vest", - L"Legging", - L"Plate", + L"Helmets", + L"Vests", + L"Leggings", + L"Plates", + + // Misc + L"Blades", + L"Th. Knives", + L"Punch. W.", + L"Grenades", + L"Bombs", + L"Med. Kits", + L"Kits", + L"Face Items", + L"Misc.", };