#ifdef PRECOMPILEDHEADERS #include "Tactical All.h" #include "language defines.h" #else #include "builddefines.h" #include #include #include #include "sgp.h" #include "gameloop.h" #include "himage.h" #include "vobject.h" #include "sysutil.h" #include "overhead.h" #include "mousesystem.h" #include "Button System.h" #include "interface.h" #include "vsurface.h" #include "wcheck.h" #include "input.h" #include "Handle UI.h" #include "renderworld.h" #include "sys globals.h" #include "cursors.h" #include "radar screen.h" #include "worldman.h" #include "Font Control.h" #include "render dirty.h" #include "utilities.h" #include "Sound Control.h" #include "Interface Panels.h" #include "Animation Control.h" #include "Soldier Control.h" #include "pathai.h" #include "weapons.h" #include "lighting.h" #include "faces.h" #include "mapscreen.h" #include "message.h" #include "text.h" #include "Interface Items.h" #include "Font Control.h" #include "Cursor Control.h" #include "interface cursors.h" #include "interface utils.h" #include "interface items.h" #include "wordwrap.h" #include "interface control.h" #include "vobject_blitters.h" #include "world items.h" #include "points.h" #include "physics.h" #include "finances.h" #include "ui cursors.h" #include "handle ui.h" #include "ShopKeeper Interface.h" #include "dialogue control.h" #include "english.h" #include "keys.h" #include "Strategicmap.h" #include "Arms Dealer Init.h" #include "soldier macros.h" #include "game clock.h" #include "squads.h" #include "LaptopSave.h" #include "MessageBoxScreen.h" #include "Language Defines.h" #include "GameSettings.h" #include "Map Screen Interface Map Inventory.h" #include "Quests.h" #include "Map Screen Interface.h" #include "Campaign Types.h" #include "opplist.h" #include "los.h" #include "Map Screen Interface Map.h" #endif //forward declarations of common classes to eliminate includes class OBJECTTYPE; class SOLDIERTYPE; // HEADROCK: Defined two new color pointers for the Enhanced Description Box #define ITEMDESC_FONTPOSITIVE FONT_MCOLOR_LTGREEN #define ITEMDESC_FONTNEGATIVE FONT_MCOLOR_LTRED #define BULLET_WIDTH 3 #define BULLET_GAP 5 // HEADROCK: Added these STIs for the icons used in the Enhanced Description Box UINT32 guiItemInfoWeaponIcon; UINT32 guiItemInfoAmmoIcon; UINT32 guiItemInfoExplosiveIcon; UINT32 guiItemInfoArmorIcon; UINT32 guiItemInfoMiscIcon; // HEADROCK: Start additional values. INT16 BULLET_DRAW_X; INT16 BULLET_DRAW_Y; INT16 BULLET_AUTO_X; INT16 BULLET_AUTO_Y; INT16 BULLET_RELOAD_X; INT16 BULLET_RELOAD_Y; INT16 BULLET_MRELOAD_X; INT16 BULLET_MRELOAD_Y; INT16 BULLET_RANGE_X; INT16 BULLET_RANGE_Y; INT16 BULLET_DAMAGE_X; INT16 BULLET_DAMAGE_Y; INT16 BULLET_AUTOPEN_X; INT16 BULLET_AUTOPEN_Y; INT16 BULLET_AUTO5AP_X; INT16 BULLET_AUTO5AP_Y; INT16 BULLET_ACC_X; INT16 BULLET_ACC_Y; INT16 BULLET_RELIABILITY_X; INT16 BULLET_RELIABILITY_Y; INT16 BULLET_REPAIR_X; INT16 BULLET_REPAIR_Y; INT16 BULLET_LOUDNESS_X; INT16 BULLET_LOUDNESS_Y; INT16 BULLET_FLASH_X; INT16 BULLET_FLASH_Y; INT16 BULLET_TOHIT_X; INT16 BULLET_TOHIT_Y; INT16 BULLET_BESTLASERRANGE_X; INT16 BULLET_BESTLASERRANGE_Y; INT16 BULLET_AIMBONUS_X; INT16 BULLET_AIMBONUS_Y; INT16 BULLET_MINRANGEAIMBONUS_X; INT16 BULLET_MINRANGEAIMBONUS_Y; INT16 BULLET_BIPOD_X; INT16 BULLET_BIPOD_Y; // HEADROCK: Icon Locations for AMMO stats INT16 BULLET_ARMORPEN_X; INT16 BULLET_ARMORPEN_Y; INT16 BULLET_TUMBLE_X; INT16 BULLET_TUMBLE_Y; INT16 BULLET_PREARMOR_X; INT16 BULLET_PREARMOR_Y; INT16 BULLET_TRACER_X; INT16 BULLET_TRACER_Y; INT16 BULLET_ANTITANK_X; INT16 BULLET_ANTITANK_Y; INT16 BULLET_LOCKBUSTER_X; INT16 BULLET_LOCKBUSTER_Y; INT16 BULLET_IGNOREARMOR_X; INT16 BULLET_IGNOREARMOR_Y; INT16 BULLET_ACIDIC_X; INT16 BULLET_ACIDIC_Y; INT16 BULLET_AMMORANGEBON_X; INT16 BULLET_AMMORANGEBON_Y; INT16 BULLET_AMMODAMAGEBON_X; INT16 BULLET_AMMODAMAGEBON_Y; INT16 BULLET_AMMOTOHITBON_X; INT16 BULLET_AMMOTOHITBON_Y; INT16 BULLET_AMMOBURSTBON_X; INT16 BULLET_AMMOBURSTBON_Y; INT16 BULLET_AMMOAUTOBON_X; INT16 BULLET_AMMOAUTOBON_Y; INT16 BULLET_AMMORELIABILITYBON_X; INT16 BULLET_AMMORELIABILITYBON_Y; INT16 BULLET_AMMONOISESUPP_X; INT16 BULLET_AMMONOISESUPP_Y; // HEADROCK: Icon Locations for EXPLOSIVES stats INT16 BULLET_EXPLOSIVEDAMAGE_X; INT16 BULLET_EXPLOSIVEDAMAGE_Y; INT16 BULLET_EXPLOSIVESTUNDAMAGE_X; INT16 BULLET_EXPLOSIVESTUNDAMAGE_Y; INT16 BULLET_EXPLOSIVELOUDNESS_X; INT16 BULLET_EXPLOSIVELOUDNESS_Y; INT16 BULLET_EXPLOSIVEVOLATILITY_X; INT16 BULLET_EXPLOSIVEVOLATILITY_Y; INT16 BULLET_EXPLOSIVERADIUS_X; INT16 BULLET_EXPLOSIVERADIUS_Y; INT16 BULLET_EXPLOSIVESTARTRADIUS_X; INT16 BULLET_EXPLOSIVESTARTRADIUS_Y; INT16 BULLET_EXPLOSIVEARROW_X; INT16 BULLET_EXPLOSIVEARROW_Y; INT16 BULLET_EXPLOSIVEENDRADIUS_X; INT16 BULLET_EXPLOSIVEENDRADIUS_Y; INT16 BULLET_EXPLOSIVEDURATION_X; INT16 BULLET_EXPLOSIVEDURATION_Y; // HEADROCK: Icon Locations for ARMOR stats INT16 BULLET_ARMOR_X; INT16 BULLET_ARMOR_Y; INT16 BULLET_ARMORCOVERAGE_X; INT16 BULLET_ARMORCOVERAGE_Y; INT16 BULLET_ARMORDEGRADE_X; INT16 BULLET_ARMORDEGRADE_Y; INT16 BULLET_ARMORAPBONUS_X; INT16 BULLET_ARMORAPBONUS_Y; INT16 BULLET_ARMORAIMBONUS_X; INT16 BULLET_ARMORAIMBONUS_Y; INT16 BULLET_ARMORWOODCAMO_X; INT16 BULLET_ARMORWOODCAMO_Y; INT16 BULLET_ARMORURBANCAMO_X; INT16 BULLET_ARMORURBANCAMO_Y; INT16 BULLET_ARMORDESERTCAMO_X; INT16 BULLET_ARMORDESERTCAMO_Y; INT16 BULLET_ARMORSNOWCAMO_X; INT16 BULLET_ARMORSNOWCAMO_Y; INT16 BULLET_ARMORSTEALTH_X; INT16 BULLET_ARMORSTEALTH_Y; INT16 BULLET_ARMORVISIONRANGEBONUS_X; INT16 BULLET_ARMORVISIONRANGEBONUS_Y; INT16 BULLET_ARMORDAYVISIONRANGEBONUS_X; INT16 BULLET_ARMORDAYVISIONRANGEBONUS_Y; INT16 BULLET_ARMORNIGHTVISIONRANGEBONUS_X; INT16 BULLET_ARMORNIGHTVISIONRANGEBONUS_Y; INT16 BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_X; INT16 BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_Y; INT16 BULLET_ARMORCAVEVISIONRANGEBONUS_X; INT16 BULLET_ARMORCAVEVISIONRANGEBONUS_Y; INT16 BULLET_ARMORPERCENTTUNNELVISION_X; INT16 BULLET_ARMORPERCENTTUNNELVISION_Y; INT16 BULLET_ARMORHEARINGRANGEBONUS_X; INT16 BULLET_ARMORHEARINGRANGEBONUS_Y; // HEADROCK: Generic Icon Locations for MISC Item Stats INT16 BULLET_COL1ROW1_X; INT16 BULLET_COL1ROW1_Y; INT16 BULLET_COL1ROW2_X; INT16 BULLET_COL1ROW2_Y; INT16 BULLET_COL1ROW3_X; INT16 BULLET_COL1ROW3_Y; INT16 BULLET_COL1ROW4_X; INT16 BULLET_COL1ROW4_Y; INT16 BULLET_COL1ROW5_X; INT16 BULLET_COL1ROW5_Y; INT16 BULLET_COL1ROW6_X; INT16 BULLET_COL1ROW6_Y; INT16 BULLET_COL1ROW7_X; INT16 BULLET_COL1ROW7_Y; INT16 BULLET_COL1ROW8_X; INT16 BULLET_COL1ROW8_Y; INT16 BULLET_COL1ROW9_X; INT16 BULLET_COL1ROW9_Y; INT16 BULLET_COL1ROW10_X; INT16 BULLET_COL1ROW10_Y; INT16 BULLET_COL1ROW11_X; INT16 BULLET_COL1ROW11_Y; INT16 BULLET_COL1ROW12_X; INT16 BULLET_COL1ROW12_Y; INT16 BULLET_COL2ROW1_X; INT16 BULLET_COL2ROW1_Y; INT16 BULLET_COL2ROW2_X; INT16 BULLET_COL2ROW2_Y; INT16 BULLET_COL2ROW3_X; INT16 BULLET_COL2ROW3_Y; INT16 BULLET_COL2ROW4_X; INT16 BULLET_COL2ROW4_Y; INT16 BULLET_COL2ROW5_X; INT16 BULLET_COL2ROW5_Y; INT16 BULLET_COL2ROW6_X; INT16 BULLET_COL2ROW6_Y; INT16 BULLET_COL2ROW7_X; INT16 BULLET_COL2ROW7_Y; // HEADROCK: End additional values. // HEADROCK: New regions for stats tooltips MOUSE_REGION gStatsFasthelpRegions[20]; extern INV_DESC_STATS gWeaponStats[]; extern INV_DESC_STATS gMoneyStats[]; extern SGPRect gItemDescProsConsRects[]; extern INV_DESC_STATS gLBEStats[]; extern INV_ATTACHXY gItemDescAttachmentsXY[]; // HEADROCK: New array to contain locations for MiscItem stats. INV_DESC_STATS gMiscItemStatsEDB[28]; // WEAPON stat tooltips SGPRect gWeaponDescStatsRects[20]; // Ammo Stat Tooltips SGPRect gAmmoDescStatsRects[20]; // ARMOR Stat Tooltips SGPRect gArmorDescStatsRects[20]; // EXPLOSIVES Stat Tooltips SGPRect gExplosiveDescStatsRects[20]; // MISC ITEM Stat Tooltips SGPRect gMiscItemDescStatsRects[20]; extern void HelpTextDoneCallback( void ); UINT8 UsingEDBSystem() { if(iResolution == 0) //640x480, never allow EDB return 0; if(gGameSettings.fOptions[ TOPTION_ENHANCED_DESC_BOX ] == TRUE) { if(guiCurrentScreen == MAP_SCREEN) //Strategic { if(gGameExternalOptions.fEnhancedDescriptionBox == 0) return 1; if(gGameExternalOptions.fEnhancedDescriptionBox == 1) return 1; } else //Tactical { if(gGameExternalOptions.fEnhancedDescriptionBox == 0) return (UsingNewInventorySystem()==true?1:2); if(gGameExternalOptions.fEnhancedDescriptionBox == 2) return (UsingNewInventorySystem()==true?1:2); } } return 0; } void InitEDBCoords() { if(UsingEDBSystem() == 0) return; if(guiCurrentScreen == MAP_SCREEN) { // Icon Locations gMiscItemStatsEDB[0].sX = 47; gMiscItemStatsEDB[0].sY = 124; gMiscItemStatsEDB[0].sValDx = 0; // COL 1; ROW 1 gMiscItemStatsEDB[1].sX = 47; gMiscItemStatsEDB[1].sY = 136; gMiscItemStatsEDB[1].sValDx = 0; // COL 1; ROW 2 gMiscItemStatsEDB[2].sX = 47; gMiscItemStatsEDB[2].sY = 148; gMiscItemStatsEDB[2].sValDx = 0; // COL 1; ROW 3 gMiscItemStatsEDB[3].sX = 47; gMiscItemStatsEDB[3].sY = 160; gMiscItemStatsEDB[3].sValDx = 0; // COL 1; ROW 4 gMiscItemStatsEDB[4].sX = 47; gMiscItemStatsEDB[4].sY = 172; gMiscItemStatsEDB[4].sValDx = 0; // COL 1; ROW 5 gMiscItemStatsEDB[5].sX = 47; gMiscItemStatsEDB[5].sY = 184; gMiscItemStatsEDB[5].sValDx = 0; // COL 1; ROW 6 gMiscItemStatsEDB[6].sX = 47; gMiscItemStatsEDB[6].sY = 196; gMiscItemStatsEDB[6].sValDx = 0; // COL 1; ROW 7 gMiscItemStatsEDB[7].sX = 144; gMiscItemStatsEDB[7].sY = 124; gMiscItemStatsEDB[7].sValDx = 0; // COL 2; ROW 1 gMiscItemStatsEDB[8].sX = 144; gMiscItemStatsEDB[8].sY = 136; gMiscItemStatsEDB[8].sValDx = 0; // COL 2; ROW 2 gMiscItemStatsEDB[9].sX = 144; gMiscItemStatsEDB[9].sY = 148; gMiscItemStatsEDB[9].sValDx = 0; // COL 2; ROW 3 gMiscItemStatsEDB[10].sX = 144; gMiscItemStatsEDB[10].sY = 160; gMiscItemStatsEDB[10].sValDx = 0; // COL 2; ROW 4 gMiscItemStatsEDB[11].sX = 144; gMiscItemStatsEDB[11].sY = 172; gMiscItemStatsEDB[11].sValDx = 0; // COL 2; ROW 5 gMiscItemStatsEDB[12].sX = 144; gMiscItemStatsEDB[12].sY = 184; gMiscItemStatsEDB[12].sValDx = 0; // COL 2; ROW 6 gMiscItemStatsEDB[13].sX = 144; gMiscItemStatsEDB[13].sY = 196; gMiscItemStatsEDB[13].sValDx = 0; // COL 2; ROW 7 // EQUALS signs Locations gMiscItemStatsEDB[14].sX = 97; gMiscItemStatsEDB[14].sY = 124; gMiscItemStatsEDB[14].sValDx = 12; // COL 1; ROW 1 gMiscItemStatsEDB[15].sX = 97; gMiscItemStatsEDB[15].sY = 136; gMiscItemStatsEDB[15].sValDx = 12; // COL 1; ROW 2 gMiscItemStatsEDB[16].sX = 97; gMiscItemStatsEDB[16].sY = 148; gMiscItemStatsEDB[16].sValDx = 12; // COL 1; ROW 3 gMiscItemStatsEDB[17].sX = 97; gMiscItemStatsEDB[17].sY = 160; gMiscItemStatsEDB[17].sValDx = 12; // COL 1; ROW 4 gMiscItemStatsEDB[18].sX = 97; gMiscItemStatsEDB[18].sY = 172; gMiscItemStatsEDB[18].sValDx = 12; // COL 1; ROW 5 gMiscItemStatsEDB[19].sX = 97; gMiscItemStatsEDB[19].sY = 184; gMiscItemStatsEDB[19].sValDx = 12; // COL 1; ROW 6 gMiscItemStatsEDB[20].sX = 97; gMiscItemStatsEDB[20].sY = 196; gMiscItemStatsEDB[20].sValDx = 12; // COL 1; ROW 7 gMiscItemStatsEDB[21].sX = 194; gMiscItemStatsEDB[21].sY = 124; gMiscItemStatsEDB[21].sValDx = 12; // COL 2; ROW 1 gMiscItemStatsEDB[22].sX = 194; gMiscItemStatsEDB[22].sY = 136; gMiscItemStatsEDB[22].sValDx = 12; // COL 2; ROW 2 gMiscItemStatsEDB[23].sX = 194; gMiscItemStatsEDB[23].sY = 148; gMiscItemStatsEDB[23].sValDx = 12; // COL 2; ROW 3 gMiscItemStatsEDB[24].sX = 194; gMiscItemStatsEDB[24].sY = 160; gMiscItemStatsEDB[24].sValDx = 12; // COL 2; ROW 4 gMiscItemStatsEDB[25].sX = 194; gMiscItemStatsEDB[25].sY = 172; gMiscItemStatsEDB[25].sValDx = 12; // COL 2; ROW 5 gMiscItemStatsEDB[26].sX = 194; gMiscItemStatsEDB[26].sY = 184; gMiscItemStatsEDB[26].sValDx = 12; // COL 2; ROW 6 gMiscItemStatsEDB[27].sX = 194; gMiscItemStatsEDB[27].sY = 196; gMiscItemStatsEDB[27].sValDx = 12; // COL 2; ROW 7 gWeaponDescStatsRects[0].iLeft = 46; gWeaponDescStatsRects[0].iTop = 229; gWeaponDescStatsRects[0].iRight = 103; gWeaponDescStatsRects[0].iBottom = 240; // First Column gWeaponDescStatsRects[1].iLeft = 46; gWeaponDescStatsRects[1].iTop = 241; gWeaponDescStatsRects[1].iRight = 103; gWeaponDescStatsRects[1].iBottom = 252; gWeaponDescStatsRects[2].iLeft = 46; gWeaponDescStatsRects[2].iTop = 253; gWeaponDescStatsRects[2].iRight = 103; gWeaponDescStatsRects[2].iBottom = 264; gWeaponDescStatsRects[3].iLeft = 46; gWeaponDescStatsRects[3].iTop = 265; gWeaponDescStatsRects[3].iRight = 103; gWeaponDescStatsRects[3].iBottom = 276; gWeaponDescStatsRects[4].iLeft = 46; gWeaponDescStatsRects[4].iTop = 277; gWeaponDescStatsRects[4].iRight = 103; gWeaponDescStatsRects[4].iBottom = 288; gWeaponDescStatsRects[5].iLeft = 46; gWeaponDescStatsRects[5].iTop = 289; gWeaponDescStatsRects[5].iRight = 103; gWeaponDescStatsRects[5].iBottom = 300; gWeaponDescStatsRects[6].iLeft = 46; gWeaponDescStatsRects[6].iTop = 301; gWeaponDescStatsRects[6].iRight = 103; gWeaponDescStatsRects[6].iBottom = 312; gWeaponDescStatsRects[7].iLeft = 111; gWeaponDescStatsRects[7].iTop = 241; gWeaponDescStatsRects[7].iRight = 168; gWeaponDescStatsRects[7].iBottom = 252; // Second Column gWeaponDescStatsRects[8].iLeft = 111; gWeaponDescStatsRects[8].iTop = 253; gWeaponDescStatsRects[8].iRight = 168; gWeaponDescStatsRects[8].iBottom = 264; gWeaponDescStatsRects[9].iLeft = 111; gWeaponDescStatsRects[9].iTop = 265; gWeaponDescStatsRects[9].iRight = 168; gWeaponDescStatsRects[9].iBottom = 276; gWeaponDescStatsRects[10].iLeft = 111; gWeaponDescStatsRects[10].iTop = 277; gWeaponDescStatsRects[10].iRight = 168; gWeaponDescStatsRects[10].iBottom = 288; gWeaponDescStatsRects[11].iLeft = 111; gWeaponDescStatsRects[11].iTop = 289; gWeaponDescStatsRects[11].iRight = 168; gWeaponDescStatsRects[11].iBottom = 300; gWeaponDescStatsRects[12].iLeft = 111; gWeaponDescStatsRects[12].iTop = 301; gWeaponDescStatsRects[12].iRight = 168; gWeaponDescStatsRects[12].iBottom = 312; gWeaponDescStatsRects[13].iLeft = 173; gWeaponDescStatsRects[13].iTop = 229; gWeaponDescStatsRects[13].iRight = 230; gWeaponDescStatsRects[13].iBottom = 240; // Third Column gWeaponDescStatsRects[14].iLeft = 173; gWeaponDescStatsRects[14].iTop = 241; gWeaponDescStatsRects[14].iRight = 230; gWeaponDescStatsRects[14].iBottom = 252; gWeaponDescStatsRects[15].iLeft = 173; gWeaponDescStatsRects[15].iTop = 253; gWeaponDescStatsRects[15].iRight = 230; gWeaponDescStatsRects[15].iBottom = 264; gWeaponDescStatsRects[16].iLeft = 173; gWeaponDescStatsRects[16].iTop = 265; gWeaponDescStatsRects[16].iRight = 230; gWeaponDescStatsRects[16].iBottom = 276; gWeaponDescStatsRects[17].iLeft = 173; gWeaponDescStatsRects[17].iTop = 277; gWeaponDescStatsRects[17].iRight = 230; gWeaponDescStatsRects[17].iBottom = 288; gWeaponDescStatsRects[18].iLeft = 173; gWeaponDescStatsRects[18].iTop = 289; gWeaponDescStatsRects[18].iRight = 230; gWeaponDescStatsRects[18].iBottom = 300; gWeaponDescStatsRects[19].iLeft = 173; gWeaponDescStatsRects[19].iTop = 301; gWeaponDescStatsRects[19].iRight = 230; gWeaponDescStatsRects[19].iBottom = 312; gAmmoDescStatsRects[0].iLeft = 46; gAmmoDescStatsRects[0].iTop = 229; gAmmoDescStatsRects[0].iRight = 103; gAmmoDescStatsRects[0].iBottom = 240; // First Column gAmmoDescStatsRects[1].iLeft = 46; gAmmoDescStatsRects[1].iTop = 241; gAmmoDescStatsRects[1].iRight = 103; gAmmoDescStatsRects[1].iBottom = 252; gAmmoDescStatsRects[2].iLeft = 46; gAmmoDescStatsRects[2].iTop = 253; gAmmoDescStatsRects[2].iRight = 103; gAmmoDescStatsRects[2].iBottom = 264; gAmmoDescStatsRects[3].iLeft = 113; gAmmoDescStatsRects[3].iTop = 229; gAmmoDescStatsRects[3].iRight = 135; gAmmoDescStatsRects[3].iBottom = 252; // Second Column gAmmoDescStatsRects[4].iLeft = 140; gAmmoDescStatsRects[4].iTop = 229; gAmmoDescStatsRects[4].iRight = 165; gAmmoDescStatsRects[4].iBottom = 252; gAmmoDescStatsRects[5].iLeft = 113; gAmmoDescStatsRects[5].iTop = 253; gAmmoDescStatsRects[5].iRight = 135; gAmmoDescStatsRects[5].iBottom = 276; gAmmoDescStatsRects[6].iLeft = 140; gAmmoDescStatsRects[6].iTop = 253; gAmmoDescStatsRects[6].iRight = 165; gAmmoDescStatsRects[6].iBottom = 276; gAmmoDescStatsRects[7].iLeft = 113; gAmmoDescStatsRects[7].iTop = 277; gAmmoDescStatsRects[7].iRight = 135; gAmmoDescStatsRects[7].iBottom = 300; gAmmoDescStatsRects[8].iLeft = 173; gAmmoDescStatsRects[8].iTop = 229; gAmmoDescStatsRects[8].iRight = 230; gAmmoDescStatsRects[8].iBottom = 240; // Third Column gAmmoDescStatsRects[9].iLeft = 173; gAmmoDescStatsRects[9].iTop = 241; gAmmoDescStatsRects[9].iRight = 230; gAmmoDescStatsRects[9].iBottom = 252; gAmmoDescStatsRects[10].iLeft = 173; gAmmoDescStatsRects[10].iTop = 253; gAmmoDescStatsRects[10].iRight = 230; gAmmoDescStatsRects[10].iBottom = 264; gAmmoDescStatsRects[11].iLeft = 173; gAmmoDescStatsRects[11].iTop = 265; gAmmoDescStatsRects[11].iRight = 230; gAmmoDescStatsRects[11].iBottom = 276; gAmmoDescStatsRects[12].iLeft = 173; gAmmoDescStatsRects[12].iTop = 277; gAmmoDescStatsRects[12].iRight = 230; gAmmoDescStatsRects[12].iBottom = 288; // Fourth Column gAmmoDescStatsRects[13].iLeft = 173; gAmmoDescStatsRects[13].iTop = 289; gAmmoDescStatsRects[13].iRight = 230; gAmmoDescStatsRects[13].iBottom = 300; gAmmoDescStatsRects[14].iLeft = 173; gAmmoDescStatsRects[14].iTop = 301; gAmmoDescStatsRects[14].iRight = 230; gAmmoDescStatsRects[14].iBottom = 312; // Placeholders gAmmoDescStatsRects[15].iLeft = 0; gAmmoDescStatsRects[15].iTop = 0; gAmmoDescStatsRects[15].iRight = 1; gAmmoDescStatsRects[15].iBottom = 1; gAmmoDescStatsRects[16].iLeft = 0; gAmmoDescStatsRects[16].iTop = 0; gAmmoDescStatsRects[16].iRight = 1; gAmmoDescStatsRects[16].iBottom = 1; gAmmoDescStatsRects[17].iLeft = 0; gAmmoDescStatsRects[17].iTop = 0; gAmmoDescStatsRects[17].iRight = 1; gAmmoDescStatsRects[17].iBottom = 1; gAmmoDescStatsRects[18].iLeft = 0; gAmmoDescStatsRects[18].iTop = 0; gAmmoDescStatsRects[18].iRight = 1; gAmmoDescStatsRects[18].iBottom = 1; gAmmoDescStatsRects[19].iLeft = 0; gAmmoDescStatsRects[19].iTop = 0; gAmmoDescStatsRects[19].iRight = 1; gAmmoDescStatsRects[19].iBottom = 1; gArmorDescStatsRects[0].iLeft = 46; gArmorDescStatsRects[0].iTop = 229; gArmorDescStatsRects[0].iRight = 103; gArmorDescStatsRects[0].iBottom = 240; // First Column gArmorDescStatsRects[1].iLeft = 46; gArmorDescStatsRects[1].iTop = 241; gArmorDescStatsRects[1].iRight = 103; gArmorDescStatsRects[1].iBottom = 252; gArmorDescStatsRects[2].iLeft = 46; gArmorDescStatsRects[2].iTop = 253; gArmorDescStatsRects[2].iRight = 103; gArmorDescStatsRects[2].iBottom = 264; gArmorDescStatsRects[3].iLeft = 111; gArmorDescStatsRects[3].iTop = 229; gArmorDescStatsRects[3].iRight = 168; gArmorDescStatsRects[3].iBottom = 240; // Second Column gArmorDescStatsRects[4].iLeft = 111; gArmorDescStatsRects[4].iTop = 241; gArmorDescStatsRects[4].iRight = 168; gArmorDescStatsRects[4].iBottom = 252; gArmorDescStatsRects[5].iLeft = 111; gArmorDescStatsRects[5].iTop = 253; gArmorDescStatsRects[5].iRight = 168; gArmorDescStatsRects[5].iBottom = 264; gArmorDescStatsRects[6].iLeft = 111; gArmorDescStatsRects[6].iTop = 265; gArmorDescStatsRects[6].iRight = 168; gArmorDescStatsRects[6].iBottom = 276; gArmorDescStatsRects[7].iLeft = 111; gArmorDescStatsRects[7].iTop = 277; gArmorDescStatsRects[7].iRight = 168; gArmorDescStatsRects[7].iBottom = 288; gArmorDescStatsRects[8].iLeft = 111; gArmorDescStatsRects[8].iTop = 289; gArmorDescStatsRects[8].iRight = 168; gArmorDescStatsRects[8].iBottom = 300; gArmorDescStatsRects[9].iLeft = 111; gArmorDescStatsRects[9].iTop = 301; gArmorDescStatsRects[9].iRight = 168; gArmorDescStatsRects[9].iBottom = 312; gArmorDescStatsRects[10].iLeft = 173; gArmorDescStatsRects[10].iTop = 229; gArmorDescStatsRects[10].iRight = 230; gArmorDescStatsRects[10].iBottom = 240; // Third Column gArmorDescStatsRects[11].iLeft = 173; gArmorDescStatsRects[11].iTop = 241; gArmorDescStatsRects[11].iRight = 230; gArmorDescStatsRects[11].iBottom = 252; gArmorDescStatsRects[12].iLeft = 173; gArmorDescStatsRects[12].iTop = 253; gArmorDescStatsRects[12].iRight = 230; gArmorDescStatsRects[12].iBottom = 264; gArmorDescStatsRects[13].iLeft = 173; gArmorDescStatsRects[13].iTop = 265; gArmorDescStatsRects[13].iRight = 230; gArmorDescStatsRects[13].iBottom = 276; gArmorDescStatsRects[14].iLeft = 173; gArmorDescStatsRects[14].iTop = 277; gArmorDescStatsRects[14].iRight = 230; gArmorDescStatsRects[14].iBottom = 288; gArmorDescStatsRects[15].iLeft = 173; gArmorDescStatsRects[15].iTop = 289; gArmorDescStatsRects[15].iRight = 230; gArmorDescStatsRects[15].iBottom = 300; gArmorDescStatsRects[16].iLeft = 173; gArmorDescStatsRects[16].iTop = 301; gArmorDescStatsRects[16].iRight = 230; gArmorDescStatsRects[16].iBottom = 312; gArmorDescStatsRects[17].iLeft = 0; gArmorDescStatsRects[17].iTop = 0; gArmorDescStatsRects[17].iRight = 1; gArmorDescStatsRects[17].iBottom = 1; // Placeholders gArmorDescStatsRects[18].iLeft = 0; gArmorDescStatsRects[18].iTop = 0; gArmorDescStatsRects[18].iRight = 1; gArmorDescStatsRects[18].iBottom = 1; gArmorDescStatsRects[19].iLeft = 0; gArmorDescStatsRects[19].iTop = 0; gArmorDescStatsRects[19].iRight = 1; gArmorDescStatsRects[19].iBottom = 1; gExplosiveDescStatsRects[0].iLeft = 46; gExplosiveDescStatsRects[0].iTop = 229; gExplosiveDescStatsRects[0].iRight = 103; gExplosiveDescStatsRects[0].iBottom = 240; // First Column gExplosiveDescStatsRects[1].iLeft = 46; gExplosiveDescStatsRects[1].iTop = 241; gExplosiveDescStatsRects[1].iRight = 103; gExplosiveDescStatsRects[1].iBottom = 252; gExplosiveDescStatsRects[2].iLeft = 46; gExplosiveDescStatsRects[2].iTop = 253; gExplosiveDescStatsRects[2].iRight = 103; gExplosiveDescStatsRects[2].iBottom = 264; gExplosiveDescStatsRects[3].iLeft = 46; gExplosiveDescStatsRects[3].iTop = 265; gExplosiveDescStatsRects[3].iRight = 103; gExplosiveDescStatsRects[3].iBottom = 276; gExplosiveDescStatsRects[4].iLeft = 131; gExplosiveDescStatsRects[4].iTop = 229; gExplosiveDescStatsRects[4].iRight = 147; gExplosiveDescStatsRects[4].iBottom = 264; // Second Column gExplosiveDescStatsRects[5].iLeft = 113; gExplosiveDescStatsRects[5].iTop = 229; gExplosiveDescStatsRects[5].iRight = 129; gExplosiveDescStatsRects[5].iBottom = 264; gExplosiveDescStatsRects[6].iLeft = 145; gExplosiveDescStatsRects[6].iTop = 229; gExplosiveDescStatsRects[6].iRight = 165; gExplosiveDescStatsRects[6].iBottom = 264; gExplosiveDescStatsRects[7].iLeft = 111; gExplosiveDescStatsRects[7].iTop = 277; gExplosiveDescStatsRects[7].iRight = 168; gExplosiveDescStatsRects[7].iBottom = 288; gExplosiveDescStatsRects[8].iLeft = 0; gExplosiveDescStatsRects[8].iTop = 0; gExplosiveDescStatsRects[8].iRight = 1; gExplosiveDescStatsRects[8].iBottom = 1; // Placeholders gExplosiveDescStatsRects[9].iLeft = 0; gExplosiveDescStatsRects[9].iTop = 0; gExplosiveDescStatsRects[9].iRight = 1; gExplosiveDescStatsRects[9].iBottom = 1; gExplosiveDescStatsRects[10].iLeft = 0; gExplosiveDescStatsRects[10].iTop = 0; gExplosiveDescStatsRects[10].iRight = 1; gExplosiveDescStatsRects[10].iBottom = 1; gExplosiveDescStatsRects[11].iLeft = 0; gExplosiveDescStatsRects[11].iTop = 0; gExplosiveDescStatsRects[11].iRight = 1; gExplosiveDescStatsRects[11].iBottom = 1; gExplosiveDescStatsRects[12].iLeft = 0; gExplosiveDescStatsRects[12].iTop = 0; gExplosiveDescStatsRects[12].iRight = 1; gExplosiveDescStatsRects[12].iBottom = 1; gExplosiveDescStatsRects[13].iLeft = 0; gExplosiveDescStatsRects[13].iTop = 0; gExplosiveDescStatsRects[13].iRight = 1; gExplosiveDescStatsRects[13].iBottom = 1; gExplosiveDescStatsRects[14].iLeft = 0; gExplosiveDescStatsRects[14].iTop = 0; gExplosiveDescStatsRects[14].iRight = 1; gExplosiveDescStatsRects[14].iBottom = 1; gExplosiveDescStatsRects[15].iLeft = 0; gExplosiveDescStatsRects[15].iTop = 0; gExplosiveDescStatsRects[15].iRight = 1; gExplosiveDescStatsRects[15].iBottom = 1; gExplosiveDescStatsRects[16].iLeft = 0; gExplosiveDescStatsRects[16].iTop = 0; gExplosiveDescStatsRects[16].iRight = 1; gExplosiveDescStatsRects[16].iBottom = 1; gExplosiveDescStatsRects[17].iLeft = 0; gExplosiveDescStatsRects[17].iTop = 0; gExplosiveDescStatsRects[17].iRight = 1; gExplosiveDescStatsRects[17].iBottom = 1; gExplosiveDescStatsRects[18].iLeft = 0; gExplosiveDescStatsRects[18].iTop = 0; gExplosiveDescStatsRects[18].iRight = 1; gExplosiveDescStatsRects[18].iBottom = 1; gExplosiveDescStatsRects[19].iLeft = 0; gExplosiveDescStatsRects[19].iTop = 0; gExplosiveDescStatsRects[19].iRight = 1; gExplosiveDescStatsRects[19].iBottom = 1; gMiscItemDescStatsRects[0].iLeft = 46; gMiscItemDescStatsRects[0].iTop = 229; gMiscItemDescStatsRects[0].iRight = 103; gMiscItemDescStatsRects[0].iBottom = 240; // First Column gMiscItemDescStatsRects[1].iLeft = 46; gMiscItemDescStatsRects[1].iTop = 241; gMiscItemDescStatsRects[1].iRight = 103; gMiscItemDescStatsRects[1].iBottom = 252; gMiscItemDescStatsRects[2].iLeft = 46; gMiscItemDescStatsRects[2].iTop = 253; gMiscItemDescStatsRects[2].iRight = 103; gMiscItemDescStatsRects[2].iBottom = 264; gMiscItemDescStatsRects[3].iLeft = 46; gMiscItemDescStatsRects[3].iTop = 265; gMiscItemDescStatsRects[3].iRight = 103; gMiscItemDescStatsRects[3].iBottom = 276; gMiscItemDescStatsRects[4].iLeft = 46; gMiscItemDescStatsRects[4].iTop = 277; gMiscItemDescStatsRects[4].iRight = 103; gMiscItemDescStatsRects[4].iBottom = 288; gMiscItemDescStatsRects[5].iLeft = 46; gMiscItemDescStatsRects[5].iTop = 289; gMiscItemDescStatsRects[5].iRight = 103; gMiscItemDescStatsRects[5].iBottom = 300; gMiscItemDescStatsRects[6].iLeft = 46; gMiscItemDescStatsRects[6].iTop = 301; gMiscItemDescStatsRects[6].iRight = 103; gMiscItemDescStatsRects[6].iBottom = 312; gMiscItemDescStatsRects[7].iLeft = 144; gMiscItemDescStatsRects[7].iTop = 229; gMiscItemDescStatsRects[7].iRight = 230; gMiscItemDescStatsRects[7].iBottom = 240; // First Column gMiscItemDescStatsRects[8].iLeft = 144; gMiscItemDescStatsRects[8].iTop = 241; gMiscItemDescStatsRects[8].iRight = 230; gMiscItemDescStatsRects[8].iBottom = 252; gMiscItemDescStatsRects[9].iLeft = 144; gMiscItemDescStatsRects[9].iTop = 253; gMiscItemDescStatsRects[9].iRight = 230; gMiscItemDescStatsRects[9].iBottom = 264; gMiscItemDescStatsRects[10].iLeft = 144; gMiscItemDescStatsRects[10].iTop = 265; gMiscItemDescStatsRects[10].iRight = 230; gMiscItemDescStatsRects[10].iBottom = 276; gMiscItemDescStatsRects[11].iLeft = 144; gMiscItemDescStatsRects[11].iTop = 277; gMiscItemDescStatsRects[11].iRight = 230; gMiscItemDescStatsRects[11].iBottom = 288; gMiscItemDescStatsRects[12].iLeft = 144; gMiscItemDescStatsRects[12].iTop = 289; gMiscItemDescStatsRects[12].iRight = 230; gMiscItemDescStatsRects[12].iBottom = 300; gMiscItemDescStatsRects[13].iLeft = 144; gMiscItemDescStatsRects[13].iTop = 301; gMiscItemDescStatsRects[13].iRight = 230; gMiscItemDescStatsRects[13].iBottom = 312; gMiscItemDescStatsRects[14].iLeft = 0; gMiscItemDescStatsRects[14].iTop = 0; gMiscItemDescStatsRects[14].iRight = 1; gMiscItemDescStatsRects[14].iBottom = 1; // Placeholders gMiscItemDescStatsRects[15].iLeft = 0; gMiscItemDescStatsRects[15].iTop = 0; gMiscItemDescStatsRects[15].iRight = 1; gMiscItemDescStatsRects[15].iBottom = 1; gMiscItemDescStatsRects[16].iLeft = 0; gMiscItemDescStatsRects[16].iTop = 0; gMiscItemDescStatsRects[16].iRight = 1; gMiscItemDescStatsRects[16].iBottom = 1; gMiscItemDescStatsRects[17].iLeft = 0; gMiscItemDescStatsRects[17].iTop = 0; gMiscItemDescStatsRects[17].iRight = 1; gMiscItemDescStatsRects[17].iBottom = 1; gMiscItemDescStatsRects[18].iLeft = 0; gMiscItemDescStatsRects[18].iTop = 0; gMiscItemDescStatsRects[18].iRight = 1; gMiscItemDescStatsRects[18].iBottom = 1; gMiscItemDescStatsRects[19].iLeft = 0; gMiscItemDescStatsRects[19].iTop = 0; gMiscItemDescStatsRects[19].iRight = 1; gMiscItemDescStatsRects[19].iBottom = 1; } else { if (UsingEDBSystem() == 1) { // Icon Locations gMiscItemStatsEDB[0].sX = 203; gMiscItemStatsEDB[0].sY = 44; gMiscItemStatsEDB[0].sValDx = 0; // 0) COL 1; ROW 1 gMiscItemStatsEDB[1].sX = 203; gMiscItemStatsEDB[1].sY = 56; gMiscItemStatsEDB[1].sValDx = 0; // 1) COL 1; ROW 2 gMiscItemStatsEDB[2].sX = 203; gMiscItemStatsEDB[2].sY = 68; gMiscItemStatsEDB[2].sValDx = 0; // 2) COL 1; ROW 3 gMiscItemStatsEDB[3].sX = 203; gMiscItemStatsEDB[3].sY = 80; gMiscItemStatsEDB[3].sValDx = 0; // 3) COL 1; ROW 4 gMiscItemStatsEDB[4].sX = 203; gMiscItemStatsEDB[4].sY = 92; gMiscItemStatsEDB[4].sValDx = 0; // 4) COL 1; ROW 5 gMiscItemStatsEDB[5].sX = 203; gMiscItemStatsEDB[5].sY = 104; gMiscItemStatsEDB[5].sValDx = 0; // 5) COL 1; ROW 6 gMiscItemStatsEDB[6].sX = 203; gMiscItemStatsEDB[6].sY = 116; gMiscItemStatsEDB[6].sValDx = 0; // 6) COL 1; ROW 7 gMiscItemStatsEDB[7].sX = 203; gMiscItemStatsEDB[7].sY = 128; gMiscItemStatsEDB[7].sValDx = 0; // 7) COL 1; ROW 8 gMiscItemStatsEDB[8].sX = 203; gMiscItemStatsEDB[8].sY = 140; gMiscItemStatsEDB[8].sValDx = 0; // 8) COL 1; ROW 9 gMiscItemStatsEDB[9].sX = 203; gMiscItemStatsEDB[9].sY = 152; gMiscItemStatsEDB[9].sValDx = 0; // 9) COL 1; ROW 10 gMiscItemStatsEDB[10].sX = 203; gMiscItemStatsEDB[10].sY = 164; gMiscItemStatsEDB[10].sValDx = 0; // 10) COL 1; ROW 11 gMiscItemStatsEDB[11].sX = 203; gMiscItemStatsEDB[11].sY = 176; gMiscItemStatsEDB[11].sValDx = 0; // 11) COL 1; ROW 12 // EQUALS signs Locations gMiscItemStatsEDB[12].sX = 283; gMiscItemStatsEDB[12].sY = 44; gMiscItemStatsEDB[12].sValDx = 12; // 12) COL 1; ROW 1 gMiscItemStatsEDB[13].sX = 283; gMiscItemStatsEDB[13].sY = 56; gMiscItemStatsEDB[13].sValDx = 12; // 13) COL 1; ROW 2 gMiscItemStatsEDB[14].sX = 283; gMiscItemStatsEDB[14].sY = 68; gMiscItemStatsEDB[14].sValDx = 12; // 14) COL 1; ROW 3 gMiscItemStatsEDB[15].sX = 283; gMiscItemStatsEDB[15].sY = 80; gMiscItemStatsEDB[15].sValDx = 12; // 15) COL 1; ROW 4 gMiscItemStatsEDB[16].sX = 283; gMiscItemStatsEDB[16].sY = 92; gMiscItemStatsEDB[16].sValDx = 12; // 16) COL 1; ROW 5 gMiscItemStatsEDB[17].sX = 283; gMiscItemStatsEDB[17].sY = 104; gMiscItemStatsEDB[17].sValDx = 12; // 17) COL 1; ROW 6 gMiscItemStatsEDB[18].sX = 283; gMiscItemStatsEDB[18].sY = 116; gMiscItemStatsEDB[18].sValDx = 12; // 18) COL 1; ROW 7 gMiscItemStatsEDB[19].sX = 283; gMiscItemStatsEDB[19].sY = 128; gMiscItemStatsEDB[19].sValDx = 12; // 19) COL 1; ROW 8 gMiscItemStatsEDB[20].sX = 283; gMiscItemStatsEDB[20].sY = 140; gMiscItemStatsEDB[20].sValDx = 12; // 20) COL 1; ROW 9 gMiscItemStatsEDB[21].sX = 283; gMiscItemStatsEDB[21].sY = 152; gMiscItemStatsEDB[21].sValDx = 12; // 21) COL 1; ROW 10 gMiscItemStatsEDB[22].sX = 283; gMiscItemStatsEDB[22].sY = 164; gMiscItemStatsEDB[22].sValDx = 12; // 22) COL 1; ROW 11 gMiscItemStatsEDB[23].sX = 283; gMiscItemStatsEDB[23].sY = 176; gMiscItemStatsEDB[23].sValDx = 12; // 23) COL 1; ROW 12 // MISC gMiscItemStatsEDB[24].sX = 0; gMiscItemStatsEDB[24].sY = 0; gMiscItemStatsEDB[24].sValDx = 0; gMiscItemStatsEDB[25].sX = 0; gMiscItemStatsEDB[25].sY = 0; gMiscItemStatsEDB[25].sValDx = 0; gMiscItemStatsEDB[26].sX = 0; gMiscItemStatsEDB[26].sY = 0; gMiscItemStatsEDB[26].sValDx = 0; gMiscItemStatsEDB[27].sX = 0; gMiscItemStatsEDB[27].sY = 0; gMiscItemStatsEDB[27].sValDx = 0; gWeaponDescStatsRects[0].iLeft = 202; gWeaponDescStatsRects[0].iTop = 42; gWeaponDescStatsRects[0].iRight = 260; gWeaponDescStatsRects[0].iBottom = 53; // First Column gWeaponDescStatsRects[1].iLeft = 202; gWeaponDescStatsRects[1].iTop = 54; gWeaponDescStatsRects[1].iRight = 260; gWeaponDescStatsRects[1].iBottom = 65; gWeaponDescStatsRects[2].iLeft = 202; gWeaponDescStatsRects[2].iTop = 66; gWeaponDescStatsRects[2].iRight = 260; gWeaponDescStatsRects[2].iBottom = 77; gWeaponDescStatsRects[3].iLeft = 202; gWeaponDescStatsRects[3].iTop = 78; gWeaponDescStatsRects[3].iRight = 260; gWeaponDescStatsRects[3].iBottom = 89; gWeaponDescStatsRects[4].iLeft = 202; gWeaponDescStatsRects[4].iTop = 90; gWeaponDescStatsRects[4].iRight = 260; gWeaponDescStatsRects[4].iBottom = 101; gWeaponDescStatsRects[5].iLeft = 202; gWeaponDescStatsRects[5].iTop = 102; gWeaponDescStatsRects[5].iRight = 260; gWeaponDescStatsRects[5].iBottom = 113; gWeaponDescStatsRects[6].iLeft = 202; gWeaponDescStatsRects[6].iTop = 114; gWeaponDescStatsRects[6].iRight = 260; gWeaponDescStatsRects[6].iBottom = 125; gWeaponDescStatsRects[7].iLeft = 267; gWeaponDescStatsRects[7].iTop = 54; gWeaponDescStatsRects[7].iRight = 325; gWeaponDescStatsRects[7].iBottom = 65; // Second Column gWeaponDescStatsRects[8].iLeft = 267; gWeaponDescStatsRects[8].iTop = 66; gWeaponDescStatsRects[8].iRight = 325; gWeaponDescStatsRects[8].iBottom = 77; gWeaponDescStatsRects[9].iLeft = 267; gWeaponDescStatsRects[9].iTop = 78; gWeaponDescStatsRects[9].iRight = 325; gWeaponDescStatsRects[9].iBottom = 89; gWeaponDescStatsRects[10].iLeft = 267; gWeaponDescStatsRects[10].iTop = 90; gWeaponDescStatsRects[10].iRight = 325; gWeaponDescStatsRects[10].iBottom = 101; gWeaponDescStatsRects[11].iLeft = 267; gWeaponDescStatsRects[11].iTop = 102; gWeaponDescStatsRects[11].iRight = 325; gWeaponDescStatsRects[11].iBottom = 113; gWeaponDescStatsRects[12].iLeft = 267; gWeaponDescStatsRects[12].iTop = 114; gWeaponDescStatsRects[12].iRight = 325; gWeaponDescStatsRects[12].iBottom = 125; gWeaponDescStatsRects[13].iLeft = 267; gWeaponDescStatsRects[13].iTop = 134; gWeaponDescStatsRects[13].iRight = 325; gWeaponDescStatsRects[13].iBottom = 145; gWeaponDescStatsRects[14].iLeft = 267; gWeaponDescStatsRects[14].iTop = 146; gWeaponDescStatsRects[14].iRight = 325; gWeaponDescStatsRects[14].iBottom = 157; gWeaponDescStatsRects[15].iLeft = 267; gWeaponDescStatsRects[15].iTop = 158; gWeaponDescStatsRects[15].iRight = 325; gWeaponDescStatsRects[15].iBottom = 169; gWeaponDescStatsRects[16].iLeft = 267; gWeaponDescStatsRects[16].iTop = 170; gWeaponDescStatsRects[16].iRight = 325; gWeaponDescStatsRects[16].iBottom = 181; gWeaponDescStatsRects[17].iLeft = 225; gWeaponDescStatsRects[17].iTop = 134; gWeaponDescStatsRects[17].iRight = 241; gWeaponDescStatsRects[17].iBottom = 157; gWeaponDescStatsRects[18].iLeft = 202; gWeaponDescStatsRects[18].iTop = 158; gWeaponDescStatsRects[18].iRight = 260; gWeaponDescStatsRects[18].iBottom = 169; gWeaponDescStatsRects[19].iLeft = 202; gWeaponDescStatsRects[19].iTop = 170; gWeaponDescStatsRects[19].iRight = 260; gWeaponDescStatsRects[19].iBottom = 181; gAmmoDescStatsRects[0].iLeft = 202; gAmmoDescStatsRects[0].iTop = 42; gAmmoDescStatsRects[0].iRight = 260; gAmmoDescStatsRects[0].iBottom = 53; // First Column gAmmoDescStatsRects[1].iLeft = 202; gAmmoDescStatsRects[1].iTop = 54; gAmmoDescStatsRects[1].iRight = 260; gAmmoDescStatsRects[1].iBottom = 65; gAmmoDescStatsRects[2].iLeft = 202; gAmmoDescStatsRects[2].iTop = 66; gAmmoDescStatsRects[2].iRight = 260; gAmmoDescStatsRects[2].iBottom = 77; gAmmoDescStatsRects[3].iLeft = 269; gAmmoDescStatsRects[3].iTop = 42; gAmmoDescStatsRects[3].iRight = 291; gAmmoDescStatsRects[3].iBottom = 65; // Second Column gAmmoDescStatsRects[4].iLeft = 296; gAmmoDescStatsRects[4].iTop = 42; gAmmoDescStatsRects[4].iRight = 321; gAmmoDescStatsRects[4].iBottom = 65; gAmmoDescStatsRects[5].iLeft = 269; gAmmoDescStatsRects[5].iTop = 66; gAmmoDescStatsRects[5].iRight = 291; gAmmoDescStatsRects[5].iBottom = 89; gAmmoDescStatsRects[6].iLeft = 296; gAmmoDescStatsRects[6].iTop = 66; gAmmoDescStatsRects[6].iRight = 321; gAmmoDescStatsRects[6].iBottom = 89; gAmmoDescStatsRects[7].iLeft = 269; gAmmoDescStatsRects[7].iTop = 90; gAmmoDescStatsRects[7].iRight = 291; gAmmoDescStatsRects[7].iBottom = 113; gAmmoDescStatsRects[8].iLeft = 202; gAmmoDescStatsRects[8].iTop = 134; gAmmoDescStatsRects[8].iRight = 260; gAmmoDescStatsRects[8].iBottom = 145; // Third Column gAmmoDescStatsRects[9].iLeft = 202; gAmmoDescStatsRects[9].iTop = 158; gAmmoDescStatsRects[9].iRight = 260; gAmmoDescStatsRects[9].iBottom = 169; gAmmoDescStatsRects[10].iLeft = 267; gAmmoDescStatsRects[10].iTop = 134; gAmmoDescStatsRects[10].iRight = 325; gAmmoDescStatsRects[10].iBottom = 145; gAmmoDescStatsRects[11].iLeft = 267; gAmmoDescStatsRects[11].iTop = 146; gAmmoDescStatsRects[11].iRight = 325; gAmmoDescStatsRects[11].iBottom = 157; gAmmoDescStatsRects[12].iLeft = 267; gAmmoDescStatsRects[12].iTop = 158; gAmmoDescStatsRects[12].iRight = 325; gAmmoDescStatsRects[12].iBottom = 169; // Fourth Column gAmmoDescStatsRects[13].iLeft = 202; gAmmoDescStatsRects[13].iTop = 170; gAmmoDescStatsRects[13].iRight = 260; gAmmoDescStatsRects[13].iBottom = 181; gAmmoDescStatsRects[14].iLeft = 267; gAmmoDescStatsRects[14].iTop = 170; gAmmoDescStatsRects[14].iRight = 325; gAmmoDescStatsRects[14].iBottom = 181; // Placeholders gAmmoDescStatsRects[15].iLeft = 0; gAmmoDescStatsRects[15].iTop = 0; gAmmoDescStatsRects[15].iRight = 1; gAmmoDescStatsRects[15].iBottom = 1; gAmmoDescStatsRects[16].iLeft = 0; gAmmoDescStatsRects[16].iTop = 0; gAmmoDescStatsRects[16].iRight = 1; gAmmoDescStatsRects[16].iBottom = 1; gAmmoDescStatsRects[17].iLeft = 0; gAmmoDescStatsRects[17].iTop = 0; gAmmoDescStatsRects[17].iRight = 1; gAmmoDescStatsRects[17].iBottom = 1; gAmmoDescStatsRects[18].iLeft = 0; gAmmoDescStatsRects[18].iTop = 0; gAmmoDescStatsRects[18].iRight = 1; gAmmoDescStatsRects[18].iBottom = 1; gAmmoDescStatsRects[19].iLeft = 0; gAmmoDescStatsRects[19].iTop = 0; gAmmoDescStatsRects[19].iRight = 1; gAmmoDescStatsRects[19].iBottom = 1; gArmorDescStatsRects[0].iLeft = 202; gArmorDescStatsRects[0].iTop = 42; gArmorDescStatsRects[0].iRight = 260; gArmorDescStatsRects[0].iBottom = 53; // First Column gArmorDescStatsRects[1].iLeft = 202; gArmorDescStatsRects[1].iTop = 54; gArmorDescStatsRects[1].iRight = 260; gArmorDescStatsRects[1].iBottom = 65; gArmorDescStatsRects[2].iLeft = 202; gArmorDescStatsRects[2].iTop = 66; gArmorDescStatsRects[2].iRight = 260; gArmorDescStatsRects[2].iBottom = 77; gArmorDescStatsRects[3].iLeft = 267; gArmorDescStatsRects[3].iTop = 42; gArmorDescStatsRects[3].iRight = 325; gArmorDescStatsRects[3].iBottom = 53; // Second Column gArmorDescStatsRects[4].iLeft = 267; gArmorDescStatsRects[4].iTop = 54; gArmorDescStatsRects[4].iRight = 325; gArmorDescStatsRects[4].iBottom = 65; gArmorDescStatsRects[5].iLeft = 267; gArmorDescStatsRects[5].iTop = 66; gArmorDescStatsRects[5].iRight = 325; gArmorDescStatsRects[5].iBottom = 77; gArmorDescStatsRects[6].iLeft = 267; gArmorDescStatsRects[6].iTop = 78; gArmorDescStatsRects[6].iRight = 325; gArmorDescStatsRects[6].iBottom = 89; gArmorDescStatsRects[7].iLeft = 267; gArmorDescStatsRects[7].iTop = 90; gArmorDescStatsRects[7].iRight = 325; gArmorDescStatsRects[7].iBottom = 101; gArmorDescStatsRects[8].iLeft = 267; gArmorDescStatsRects[8].iTop = 102; gArmorDescStatsRects[8].iRight = 325; gArmorDescStatsRects[8].iBottom = 113; gArmorDescStatsRects[9].iLeft = 267; gArmorDescStatsRects[9].iTop = 114; gArmorDescStatsRects[9].iRight = 325; gArmorDescStatsRects[9].iBottom = 125; gArmorDescStatsRects[10].iLeft = 202; gArmorDescStatsRects[10].iTop = 134; gArmorDescStatsRects[10].iRight = 260; gArmorDescStatsRects[10].iBottom = 145; // Third Column gArmorDescStatsRects[11].iLeft = 202; gArmorDescStatsRects[11].iTop = 146; gArmorDescStatsRects[11].iRight = 260; gArmorDescStatsRects[11].iBottom = 157; gArmorDescStatsRects[12].iLeft = 202; gArmorDescStatsRects[12].iTop = 158; gArmorDescStatsRects[12].iRight = 260; gArmorDescStatsRects[12].iBottom = 169; gArmorDescStatsRects[13].iLeft = 202; gArmorDescStatsRects[13].iTop = 170; gArmorDescStatsRects[13].iRight = 260; gArmorDescStatsRects[13].iBottom = 181; gArmorDescStatsRects[14].iLeft = 267; gArmorDescStatsRects[14].iTop = 134; gArmorDescStatsRects[14].iRight = 325; gArmorDescStatsRects[14].iBottom = 145; // Fourth Column gArmorDescStatsRects[15].iLeft = 267; gArmorDescStatsRects[15].iTop = 146; gArmorDescStatsRects[15].iRight = 325; gArmorDescStatsRects[15].iBottom = 157; gArmorDescStatsRects[16].iLeft = 267; gArmorDescStatsRects[16].iTop = 158; gArmorDescStatsRects[16].iRight = 325; gArmorDescStatsRects[16].iBottom = 169; gArmorDescStatsRects[17].iLeft = 0; gArmorDescStatsRects[17].iTop = 0; gArmorDescStatsRects[17].iRight = 1; gArmorDescStatsRects[17].iBottom = 1; // Placeholders gArmorDescStatsRects[18].iLeft = 0; gArmorDescStatsRects[18].iTop = 0; gArmorDescStatsRects[18].iRight = 1; gArmorDescStatsRects[18].iBottom = 1; gArmorDescStatsRects[19].iLeft = 0; gArmorDescStatsRects[19].iTop = 0; gArmorDescStatsRects[19].iRight = 1; gArmorDescStatsRects[19].iBottom = 1; gExplosiveDescStatsRects[0].iLeft = 202; gExplosiveDescStatsRects[0].iTop = 42; gExplosiveDescStatsRects[0].iRight = 260; gExplosiveDescStatsRects[0].iBottom = 53; // First Column gExplosiveDescStatsRects[1].iLeft = 202; gExplosiveDescStatsRects[1].iTop = 54; gExplosiveDescStatsRects[1].iRight = 260; gExplosiveDescStatsRects[1].iBottom = 65; gExplosiveDescStatsRects[2].iLeft = 202; gExplosiveDescStatsRects[2].iTop = 66; gExplosiveDescStatsRects[2].iRight = 260; gExplosiveDescStatsRects[2].iBottom = 77; gExplosiveDescStatsRects[3].iLeft = 202; gExplosiveDescStatsRects[3].iTop = 78; gExplosiveDescStatsRects[3].iRight = 260; gExplosiveDescStatsRects[3].iBottom = 89; gExplosiveDescStatsRects[4].iLeft = 290; gExplosiveDescStatsRects[4].iTop = 42; gExplosiveDescStatsRects[4].iRight = 306; gExplosiveDescStatsRects[4].iBottom = 77; // Second Column gExplosiveDescStatsRects[5].iLeft = 269; gExplosiveDescStatsRects[5].iTop = 42; gExplosiveDescStatsRects[5].iRight = 285; gExplosiveDescStatsRects[5].iBottom = 77; gExplosiveDescStatsRects[6].iLeft = 301; gExplosiveDescStatsRects[6].iTop = 42; gExplosiveDescStatsRects[6].iRight = 321; gExplosiveDescStatsRects[6].iBottom = 77; gExplosiveDescStatsRects[7].iLeft = 267; gExplosiveDescStatsRects[7].iTop = 90; gExplosiveDescStatsRects[7].iRight = 325; gExplosiveDescStatsRects[7].iBottom = 101; gExplosiveDescStatsRects[8].iLeft = 0; gExplosiveDescStatsRects[8].iTop = 0; gExplosiveDescStatsRects[8].iRight = 1; gExplosiveDescStatsRects[8].iBottom = 1; // Placeholders gExplosiveDescStatsRects[9].iLeft = 0; gExplosiveDescStatsRects[9].iTop = 0; gExplosiveDescStatsRects[9].iRight = 1; gExplosiveDescStatsRects[9].iBottom = 1; gExplosiveDescStatsRects[10].iLeft = 0; gExplosiveDescStatsRects[10].iTop = 0; gExplosiveDescStatsRects[10].iRight = 1; gExplosiveDescStatsRects[10].iBottom = 1; gExplosiveDescStatsRects[11].iLeft = 0; gExplosiveDescStatsRects[11].iTop = 0; gExplosiveDescStatsRects[11].iRight = 1; gExplosiveDescStatsRects[11].iBottom = 1; gExplosiveDescStatsRects[12].iLeft = 0; gExplosiveDescStatsRects[12].iTop = 0; gExplosiveDescStatsRects[12].iRight = 1; gExplosiveDescStatsRects[12].iBottom = 1; gExplosiveDescStatsRects[13].iLeft = 0; gExplosiveDescStatsRects[13].iTop = 0; gExplosiveDescStatsRects[13].iRight = 1; gExplosiveDescStatsRects[13].iBottom = 1; gExplosiveDescStatsRects[14].iLeft = 0; gExplosiveDescStatsRects[14].iTop = 0; gExplosiveDescStatsRects[14].iRight = 1; gExplosiveDescStatsRects[14].iBottom = 1; gExplosiveDescStatsRects[15].iLeft = 0; gExplosiveDescStatsRects[15].iTop = 0; gExplosiveDescStatsRects[15].iRight = 1; gExplosiveDescStatsRects[15].iBottom = 1; gExplosiveDescStatsRects[16].iLeft = 0; gExplosiveDescStatsRects[16].iTop = 0; gExplosiveDescStatsRects[16].iRight = 1; gExplosiveDescStatsRects[16].iBottom = 1; gExplosiveDescStatsRects[17].iLeft = 0; gExplosiveDescStatsRects[17].iTop = 0; gExplosiveDescStatsRects[17].iRight = 1; gExplosiveDescStatsRects[17].iBottom = 1; gExplosiveDescStatsRects[18].iLeft = 0; gExplosiveDescStatsRects[18].iTop = 0; gExplosiveDescStatsRects[18].iRight = 1; gExplosiveDescStatsRects[18].iBottom = 1; gExplosiveDescStatsRects[19].iLeft = 0; gExplosiveDescStatsRects[19].iTop = 0; gExplosiveDescStatsRects[19].iRight = 1; gExplosiveDescStatsRects[19].iBottom = 1; gMiscItemDescStatsRects[0].iLeft = 202; gMiscItemDescStatsRects[0].iTop = 42; gMiscItemDescStatsRects[0].iRight = 325; gMiscItemDescStatsRects[0].iBottom = 53; // Only one column for misc items in tactical - 12 fields. gMiscItemDescStatsRects[1].iLeft = 202; gMiscItemDescStatsRects[1].iTop = 54; gMiscItemDescStatsRects[1].iRight = 325; gMiscItemDescStatsRects[1].iBottom = 65; gMiscItemDescStatsRects[2].iLeft = 202; gMiscItemDescStatsRects[2].iTop = 66; gMiscItemDescStatsRects[2].iRight = 325; gMiscItemDescStatsRects[2].iBottom = 77; gMiscItemDescStatsRects[3].iLeft = 202; gMiscItemDescStatsRects[3].iTop = 78; gMiscItemDescStatsRects[3].iRight = 325; gMiscItemDescStatsRects[3].iBottom = 89; gMiscItemDescStatsRects[4].iLeft = 202; gMiscItemDescStatsRects[4].iTop = 90; gMiscItemDescStatsRects[4].iRight = 325; gMiscItemDescStatsRects[4].iBottom = 101; gMiscItemDescStatsRects[5].iLeft = 202; gMiscItemDescStatsRects[5].iTop = 102; gMiscItemDescStatsRects[5].iRight = 325; gMiscItemDescStatsRects[5].iBottom = 113; gMiscItemDescStatsRects[6].iLeft = 202; gMiscItemDescStatsRects[6].iTop = 114; gMiscItemDescStatsRects[6].iRight = 325; gMiscItemDescStatsRects[6].iBottom = 125; gMiscItemDescStatsRects[7].iLeft = 202; gMiscItemDescStatsRects[7].iTop = 126; gMiscItemDescStatsRects[7].iRight = 325; gMiscItemDescStatsRects[7].iBottom = 137; gMiscItemDescStatsRects[8].iLeft = 202; gMiscItemDescStatsRects[8].iTop = 138; gMiscItemDescStatsRects[8].iRight = 325; gMiscItemDescStatsRects[8].iBottom = 149; gMiscItemDescStatsRects[9].iLeft = 202; gMiscItemDescStatsRects[9].iTop = 150; gMiscItemDescStatsRects[9].iRight = 325; gMiscItemDescStatsRects[9].iBottom = 161; gMiscItemDescStatsRects[10].iLeft = 202; gMiscItemDescStatsRects[10].iTop = 162; gMiscItemDescStatsRects[10].iRight = 325; gMiscItemDescStatsRects[10].iBottom = 173; gMiscItemDescStatsRects[11].iLeft = 202; gMiscItemDescStatsRects[11].iTop = 174; gMiscItemDescStatsRects[11].iRight = 325; gMiscItemDescStatsRects[11].iBottom = 185; gMiscItemDescStatsRects[12].iLeft = 0; gMiscItemDescStatsRects[12].iTop = 0; gMiscItemDescStatsRects[12].iRight = 1; gMiscItemDescStatsRects[12].iBottom = 1; // Placeholders gMiscItemDescStatsRects[13].iLeft = 0; gMiscItemDescStatsRects[13].iTop = 0; gMiscItemDescStatsRects[13].iRight = 1; gMiscItemDescStatsRects[13].iBottom = 1; gMiscItemDescStatsRects[14].iLeft = 0; gMiscItemDescStatsRects[14].iTop = 0; gMiscItemDescStatsRects[14].iRight = 1; gMiscItemDescStatsRects[14].iBottom = 1; gMiscItemDescStatsRects[15].iLeft = 0; gMiscItemDescStatsRects[15].iTop = 0; gMiscItemDescStatsRects[15].iRight = 1; gMiscItemDescStatsRects[15].iBottom = 1; gMiscItemDescStatsRects[16].iLeft = 0; gMiscItemDescStatsRects[16].iTop = 0; gMiscItemDescStatsRects[16].iRight = 1; gMiscItemDescStatsRects[16].iBottom = 1; gMiscItemDescStatsRects[17].iLeft = 0; gMiscItemDescStatsRects[17].iTop = 0; gMiscItemDescStatsRects[17].iRight = 1; gMiscItemDescStatsRects[17].iBottom = 1; gMiscItemDescStatsRects[18].iLeft = 0; gMiscItemDescStatsRects[18].iTop = 0; gMiscItemDescStatsRects[18].iRight = 1; gMiscItemDescStatsRects[18].iBottom = 1; gMiscItemDescStatsRects[19].iLeft = 0; gMiscItemDescStatsRects[19].iTop = 0; gMiscItemDescStatsRects[19].iRight = 1; gMiscItemDescStatsRects[19].iBottom = 1; } else if (UsingEDBSystem() == 2) // Tactical OIV-EDB { // Icon Locations gMiscItemStatsEDB[0].sX = 274; gMiscItemStatsEDB[0].sY = 14; gMiscItemStatsEDB[0].sValDx = 0; // 0) COL 1; ROW 1 gMiscItemStatsEDB[1].sX = 274; gMiscItemStatsEDB[1].sY = 26; gMiscItemStatsEDB[1].sValDx = 0; // 1) COL 1; ROW 2 gMiscItemStatsEDB[2].sX = 274; gMiscItemStatsEDB[2].sY = 38; gMiscItemStatsEDB[2].sValDx = 0; // 2) COL 1; ROW 3 gMiscItemStatsEDB[3].sX = 274; gMiscItemStatsEDB[3].sY = 50; gMiscItemStatsEDB[3].sValDx = 0; // 3) COL 1; ROW 4 gMiscItemStatsEDB[4].sX = 274; gMiscItemStatsEDB[4].sY = 62; gMiscItemStatsEDB[4].sValDx = 0; // 4) COL 1; ROW 5 gMiscItemStatsEDB[5].sX = 274; gMiscItemStatsEDB[5].sY = 74; gMiscItemStatsEDB[5].sValDx = 0; // 5) COL 1; ROW 6 gMiscItemStatsEDB[6].sX = 274; gMiscItemStatsEDB[6].sY = 86; gMiscItemStatsEDB[6].sValDx = 0; // 6) COL 1; ROW 7 gMiscItemStatsEDB[7].sX = 375; gMiscItemStatsEDB[7].sY = 14; gMiscItemStatsEDB[7].sValDx = 0; // 7) COL 1; ROW 8 gMiscItemStatsEDB[8].sX = 375; gMiscItemStatsEDB[8].sY = 26; gMiscItemStatsEDB[8].sValDx = 0; // 8) COL 1; ROW 9 gMiscItemStatsEDB[9].sX = 375; gMiscItemStatsEDB[9].sY = 38; gMiscItemStatsEDB[9].sValDx = 0; // 9) COL 1; ROW 10 gMiscItemStatsEDB[10].sX = 375; gMiscItemStatsEDB[10].sY = 50; gMiscItemStatsEDB[10].sValDx = 0; // 10) COL 1; ROW 11 gMiscItemStatsEDB[11].sX = 375; gMiscItemStatsEDB[11].sY = 62; gMiscItemStatsEDB[11].sValDx = 0; // 11) COL 1; ROW 12 // EQUALS signs Locations gMiscItemStatsEDB[12].sX = 324; gMiscItemStatsEDB[12].sY = 14; gMiscItemStatsEDB[12].sValDx = 12; // 12) COL 1; ROW 1 gMiscItemStatsEDB[13].sX = 324; gMiscItemStatsEDB[13].sY = 26; gMiscItemStatsEDB[13].sValDx = 12; // 13) COL 1; ROW 2 gMiscItemStatsEDB[14].sX = 324; gMiscItemStatsEDB[14].sY = 38; gMiscItemStatsEDB[14].sValDx = 12; // 14) COL 1; ROW 3 gMiscItemStatsEDB[15].sX = 324; gMiscItemStatsEDB[15].sY = 50; gMiscItemStatsEDB[15].sValDx = 12; // 15) COL 1; ROW 4 gMiscItemStatsEDB[16].sX = 324; gMiscItemStatsEDB[16].sY = 62; gMiscItemStatsEDB[16].sValDx = 12; // 16) COL 1; ROW 5 gMiscItemStatsEDB[17].sX = 324; gMiscItemStatsEDB[17].sY = 74; gMiscItemStatsEDB[17].sValDx = 12; // 17) COL 1; ROW 6 gMiscItemStatsEDB[18].sX = 324; gMiscItemStatsEDB[18].sY = 86; gMiscItemStatsEDB[18].sValDx = 12; // 18) COL 1; ROW 7 gMiscItemStatsEDB[19].sX = 425; gMiscItemStatsEDB[19].sY = 14; gMiscItemStatsEDB[19].sValDx = 12; // 19) COL 1; ROW 8 gMiscItemStatsEDB[20].sX = 425; gMiscItemStatsEDB[20].sY = 26; gMiscItemStatsEDB[20].sValDx = 12; // 20) COL 1; ROW 9 gMiscItemStatsEDB[21].sX = 425; gMiscItemStatsEDB[21].sY = 38; gMiscItemStatsEDB[21].sValDx = 12; // 21) COL 1; ROW 10 gMiscItemStatsEDB[22].sX = 425; gMiscItemStatsEDB[22].sY = 50; gMiscItemStatsEDB[22].sValDx = 12; // 22) COL 1; ROW 11 gMiscItemStatsEDB[23].sX = 425; gMiscItemStatsEDB[23].sY = 62; gMiscItemStatsEDB[23].sValDx = 12; // 23) COL 1; ROW 12 // MISC gMiscItemStatsEDB[24].sX = 0; gMiscItemStatsEDB[24].sY = 0; gMiscItemStatsEDB[24].sValDx = 0; gMiscItemStatsEDB[25].sX = 0; gMiscItemStatsEDB[25].sY = 0; gMiscItemStatsEDB[25].sValDx = 0; gMiscItemStatsEDB[26].sX = 0; gMiscItemStatsEDB[26].sY = 0; gMiscItemStatsEDB[26].sValDx = 0; gMiscItemStatsEDB[27].sX = 0; gMiscItemStatsEDB[27].sY = 0; gMiscItemStatsEDB[27].sValDx = 0; gWeaponDescStatsRects[0].iLeft = 273; gWeaponDescStatsRects[0].iTop = 12; gWeaponDescStatsRects[0].iRight = 331; gWeaponDescStatsRects[0].iBottom = 23; // First Column gWeaponDescStatsRects[1].iLeft = 273; gWeaponDescStatsRects[1].iTop = 24; gWeaponDescStatsRects[1].iRight = 331; gWeaponDescStatsRects[1].iBottom = 35; gWeaponDescStatsRects[2].iLeft = 273; gWeaponDescStatsRects[2].iTop = 36; gWeaponDescStatsRects[2].iRight = 331; gWeaponDescStatsRects[2].iBottom = 47; gWeaponDescStatsRects[3].iLeft = 273; gWeaponDescStatsRects[3].iTop = 48; gWeaponDescStatsRects[3].iRight = 331; gWeaponDescStatsRects[3].iBottom = 59; gWeaponDescStatsRects[4].iLeft = 273; gWeaponDescStatsRects[4].iTop = 60; gWeaponDescStatsRects[4].iRight = 331; gWeaponDescStatsRects[4].iBottom = 71; gWeaponDescStatsRects[5].iLeft = 273; gWeaponDescStatsRects[5].iTop = 72; gWeaponDescStatsRects[5].iRight = 331; gWeaponDescStatsRects[5].iBottom = 83; gWeaponDescStatsRects[6].iLeft = 273; gWeaponDescStatsRects[6].iTop = 84; gWeaponDescStatsRects[6].iRight = 331; gWeaponDescStatsRects[6].iBottom = 95; gWeaponDescStatsRects[7].iLeft = 340; gWeaponDescStatsRects[7].iTop = 24; gWeaponDescStatsRects[7].iRight = 398; gWeaponDescStatsRects[7].iBottom = 35; // Second Column gWeaponDescStatsRects[8].iLeft = 340; gWeaponDescStatsRects[8].iTop = 36; gWeaponDescStatsRects[8].iRight = 398; gWeaponDescStatsRects[8].iBottom = 47; gWeaponDescStatsRects[9].iLeft = 340; gWeaponDescStatsRects[9].iTop = 48; gWeaponDescStatsRects[9].iRight = 398; gWeaponDescStatsRects[9].iBottom = 59; gWeaponDescStatsRects[10].iLeft = 340; gWeaponDescStatsRects[10].iTop = 60; gWeaponDescStatsRects[10].iRight = 398; gWeaponDescStatsRects[10].iBottom = 71; gWeaponDescStatsRects[11].iLeft = 340; gWeaponDescStatsRects[11].iTop = 72; gWeaponDescStatsRects[11].iRight = 398; gWeaponDescStatsRects[11].iBottom = 83; gWeaponDescStatsRects[12].iLeft = 340; gWeaponDescStatsRects[12].iTop = 84; gWeaponDescStatsRects[12].iRight = 398; gWeaponDescStatsRects[12].iBottom = 95; gWeaponDescStatsRects[13].iLeft = 407; gWeaponDescStatsRects[13].iTop = 36; gWeaponDescStatsRects[13].iRight = 465; gWeaponDescStatsRects[13].iBottom = 47; // These are non-sequential! gWeaponDescStatsRects[14].iLeft = 407; gWeaponDescStatsRects[14].iTop = 48; gWeaponDescStatsRects[14].iRight = 465; gWeaponDescStatsRects[14].iBottom = 59; gWeaponDescStatsRects[15].iLeft = 407; gWeaponDescStatsRects[15].iTop = 60; gWeaponDescStatsRects[15].iRight = 465; gWeaponDescStatsRects[15].iBottom = 71; gWeaponDescStatsRects[16].iLeft = 407; gWeaponDescStatsRects[16].iTop = 72; gWeaponDescStatsRects[16].iRight = 465; gWeaponDescStatsRects[16].iBottom = 83; gWeaponDescStatsRects[17].iLeft = 407; gWeaponDescStatsRects[17].iTop = 12; gWeaponDescStatsRects[17].iRight = 465; gWeaponDescStatsRects[17].iBottom = 23; gWeaponDescStatsRects[18].iLeft = 407; gWeaponDescStatsRects[18].iTop = 24; gWeaponDescStatsRects[18].iRight = 465; gWeaponDescStatsRects[18].iBottom = 35; gWeaponDescStatsRects[19].iLeft = 407; gWeaponDescStatsRects[19].iTop = 84; gWeaponDescStatsRects[19].iRight = 465; gWeaponDescStatsRects[19].iBottom = 95; gAmmoDescStatsRects[0].iLeft = 273; gAmmoDescStatsRects[0].iTop = 12; gAmmoDescStatsRects[0].iRight = 331; gAmmoDescStatsRects[0].iBottom = 23; // First Column gAmmoDescStatsRects[1].iLeft = 273; gAmmoDescStatsRects[1].iTop = 24; gAmmoDescStatsRects[1].iRight = 331; gAmmoDescStatsRects[1].iBottom = 35; gAmmoDescStatsRects[2].iLeft = 273; gAmmoDescStatsRects[2].iTop = 36; gAmmoDescStatsRects[2].iRight = 331; gAmmoDescStatsRects[2].iBottom = 47; gAmmoDescStatsRects[3].iLeft = 342; gAmmoDescStatsRects[3].iTop = 12; gAmmoDescStatsRects[3].iRight = 364; gAmmoDescStatsRects[3].iBottom = 35; // Second Column gAmmoDescStatsRects[4].iLeft = 369; gAmmoDescStatsRects[4].iTop = 12; gAmmoDescStatsRects[4].iRight = 391; gAmmoDescStatsRects[4].iBottom = 35; gAmmoDescStatsRects[5].iLeft = 342; gAmmoDescStatsRects[5].iTop = 36; gAmmoDescStatsRects[5].iRight = 364; gAmmoDescStatsRects[5].iBottom = 59; gAmmoDescStatsRects[6].iLeft = 369; gAmmoDescStatsRects[6].iTop = 36; gAmmoDescStatsRects[6].iRight = 391; gAmmoDescStatsRects[6].iBottom = 59; gAmmoDescStatsRects[7].iLeft = 342; gAmmoDescStatsRects[7].iTop = 60; gAmmoDescStatsRects[7].iRight = 364; gAmmoDescStatsRects[7].iBottom = 83; gAmmoDescStatsRects[8].iLeft = 407; gAmmoDescStatsRects[8].iTop = 12; gAmmoDescStatsRects[8].iRight = 465; gAmmoDescStatsRects[8].iBottom = 23; // Third Column gAmmoDescStatsRects[9].iLeft = 407; gAmmoDescStatsRects[9].iTop = 24; gAmmoDescStatsRects[9].iRight = 465; gAmmoDescStatsRects[9].iBottom = 35; gAmmoDescStatsRects[10].iLeft = 407; gAmmoDescStatsRects[10].iTop = 36; gAmmoDescStatsRects[10].iRight = 465; gAmmoDescStatsRects[10].iBottom = 47; gAmmoDescStatsRects[11].iLeft = 407; gAmmoDescStatsRects[11].iTop = 48; gAmmoDescStatsRects[11].iRight = 465; gAmmoDescStatsRects[11].iBottom = 59; gAmmoDescStatsRects[12].iLeft = 407; gAmmoDescStatsRects[12].iTop = 60; gAmmoDescStatsRects[12].iRight = 465; gAmmoDescStatsRects[12].iBottom = 71; gAmmoDescStatsRects[13].iLeft = 407; gAmmoDescStatsRects[13].iTop = 72; gAmmoDescStatsRects[13].iRight = 465; gAmmoDescStatsRects[13].iBottom = 83; gAmmoDescStatsRects[14].iLeft = 407; gAmmoDescStatsRects[14].iTop = 84; gAmmoDescStatsRects[14].iRight = 465; gAmmoDescStatsRects[14].iBottom = 95; // Placeholders gAmmoDescStatsRects[15].iLeft = 0; gAmmoDescStatsRects[15].iTop = 0; gAmmoDescStatsRects[15].iRight = 1; gAmmoDescStatsRects[15].iBottom = 1; gAmmoDescStatsRects[16].iLeft = 0; gAmmoDescStatsRects[16].iTop = 0; gAmmoDescStatsRects[16].iRight = 1; gAmmoDescStatsRects[16].iBottom = 1; gAmmoDescStatsRects[17].iLeft = 0; gAmmoDescStatsRects[17].iTop = 0; gAmmoDescStatsRects[17].iRight = 1; gAmmoDescStatsRects[17].iBottom = 1; gAmmoDescStatsRects[18].iLeft = 0; gAmmoDescStatsRects[18].iTop = 0; gAmmoDescStatsRects[18].iRight = 1; gAmmoDescStatsRects[18].iBottom = 1; gAmmoDescStatsRects[19].iLeft = 0; gAmmoDescStatsRects[19].iTop = 0; gAmmoDescStatsRects[19].iRight = 1; gAmmoDescStatsRects[19].iBottom = 1; gArmorDescStatsRects[0].iLeft = 273; gArmorDescStatsRects[0].iTop = 12; gArmorDescStatsRects[0].iRight = 331; gArmorDescStatsRects[0].iBottom = 23; // First Column gArmorDescStatsRects[1].iLeft = 273; gArmorDescStatsRects[1].iTop = 24; gArmorDescStatsRects[1].iRight = 331; gArmorDescStatsRects[1].iBottom = 35; gArmorDescStatsRects[2].iLeft = 273; gArmorDescStatsRects[2].iTop = 36; gArmorDescStatsRects[2].iRight = 331; gArmorDescStatsRects[2].iBottom = 47; gArmorDescStatsRects[3].iLeft = 340; gArmorDescStatsRects[3].iTop = 12; gArmorDescStatsRects[3].iRight = 398; gArmorDescStatsRects[3].iBottom = 23; // Second Column gArmorDescStatsRects[4].iLeft = 340; gArmorDescStatsRects[4].iTop = 24; gArmorDescStatsRects[4].iRight = 398; gArmorDescStatsRects[4].iBottom = 35; gArmorDescStatsRects[5].iLeft = 340; gArmorDescStatsRects[5].iTop = 36; gArmorDescStatsRects[5].iRight = 398; gArmorDescStatsRects[5].iBottom = 47; gArmorDescStatsRects[6].iLeft = 340; gArmorDescStatsRects[6].iTop = 48; gArmorDescStatsRects[6].iRight = 398; gArmorDescStatsRects[6].iBottom = 59; gArmorDescStatsRects[7].iLeft = 340; gArmorDescStatsRects[7].iTop = 50; gArmorDescStatsRects[7].iRight = 398; gArmorDescStatsRects[7].iBottom = 71; gArmorDescStatsRects[8].iLeft = 340; gArmorDescStatsRects[8].iTop = 62; gArmorDescStatsRects[8].iRight = 398; gArmorDescStatsRects[8].iBottom = 83; gArmorDescStatsRects[9].iLeft = 340; gArmorDescStatsRects[9].iTop = 74; gArmorDescStatsRects[9].iRight = 398; gArmorDescStatsRects[9].iBottom = 95; gArmorDescStatsRects[10].iLeft = 407; gArmorDescStatsRects[10].iTop = 12; gArmorDescStatsRects[10].iRight = 465; gArmorDescStatsRects[10].iBottom = 23; // Third Column gArmorDescStatsRects[11].iLeft = 407; gArmorDescStatsRects[11].iTop = 24; gArmorDescStatsRects[11].iRight = 465; gArmorDescStatsRects[11].iBottom = 35; gArmorDescStatsRects[12].iLeft = 407; gArmorDescStatsRects[12].iTop = 36; gArmorDescStatsRects[12].iRight = 465; gArmorDescStatsRects[12].iBottom = 47; gArmorDescStatsRects[13].iLeft = 407; gArmorDescStatsRects[13].iTop = 48; gArmorDescStatsRects[13].iRight = 465; gArmorDescStatsRects[13].iBottom = 59; gArmorDescStatsRects[14].iLeft = 407; gArmorDescStatsRects[14].iTop = 60; gArmorDescStatsRects[14].iRight = 465; gArmorDescStatsRects[14].iBottom = 71; gArmorDescStatsRects[15].iLeft = 407; gArmorDescStatsRects[15].iTop = 72; gArmorDescStatsRects[15].iRight = 465; gArmorDescStatsRects[15].iBottom = 83; gArmorDescStatsRects[16].iLeft = 407; gArmorDescStatsRects[16].iTop = 84; gArmorDescStatsRects[16].iRight = 465; gArmorDescStatsRects[16].iBottom = 95; gArmorDescStatsRects[17].iLeft = 0; gArmorDescStatsRects[17].iTop = 0; gArmorDescStatsRects[17].iRight = 1; gArmorDescStatsRects[17].iBottom = 1; // Placeholders gArmorDescStatsRects[18].iLeft = 0; gArmorDescStatsRects[18].iTop = 0; gArmorDescStatsRects[18].iRight = 1; gArmorDescStatsRects[18].iBottom = 1; gArmorDescStatsRects[19].iLeft = 0; gArmorDescStatsRects[19].iTop = 0; gArmorDescStatsRects[19].iRight = 1; gArmorDescStatsRects[19].iBottom = 1; gExplosiveDescStatsRects[0].iLeft = 273; gExplosiveDescStatsRects[0].iTop = 12; gExplosiveDescStatsRects[0].iRight = 331; gExplosiveDescStatsRects[0].iBottom = 23; // First Column gExplosiveDescStatsRects[1].iLeft = 273; gExplosiveDescStatsRects[1].iTop = 24; gExplosiveDescStatsRects[1].iRight = 331; gExplosiveDescStatsRects[1].iBottom = 35; gExplosiveDescStatsRects[2].iLeft = 273; gExplosiveDescStatsRects[2].iTop = 36; gExplosiveDescStatsRects[2].iRight = 331; gExplosiveDescStatsRects[2].iBottom = 47; gExplosiveDescStatsRects[3].iLeft = 273; gExplosiveDescStatsRects[3].iTop = 48; gExplosiveDescStatsRects[3].iRight = 331; gExplosiveDescStatsRects[3].iBottom = 59; gExplosiveDescStatsRects[4].iLeft = 358; gExplosiveDescStatsRects[4].iTop = 12; gExplosiveDescStatsRects[4].iRight = 374; gExplosiveDescStatsRects[4].iBottom = 47; // Second Column gExplosiveDescStatsRects[5].iLeft = 342; gExplosiveDescStatsRects[5].iTop = 12; gExplosiveDescStatsRects[5].iRight = 358; gExplosiveDescStatsRects[5].iBottom = 47; gExplosiveDescStatsRects[6].iLeft = 376; gExplosiveDescStatsRects[6].iTop = 12; gExplosiveDescStatsRects[6].iRight = 395; gExplosiveDescStatsRects[6].iBottom = 47; gExplosiveDescStatsRects[7].iLeft = 341; gExplosiveDescStatsRects[7].iTop = 60; gExplosiveDescStatsRects[7].iRight = 465; gExplosiveDescStatsRects[7].iBottom = 71; gExplosiveDescStatsRects[8].iLeft = 0; gExplosiveDescStatsRects[8].iTop = 0; gExplosiveDescStatsRects[8].iRight = 1; gExplosiveDescStatsRects[8].iBottom = 1; // Placeholders gExplosiveDescStatsRects[9].iLeft = 0; gExplosiveDescStatsRects[9].iTop = 0; gExplosiveDescStatsRects[9].iRight = 1; gExplosiveDescStatsRects[9].iBottom = 1; gExplosiveDescStatsRects[10].iLeft = 0; gExplosiveDescStatsRects[10].iTop = 0; gExplosiveDescStatsRects[10].iRight = 1; gExplosiveDescStatsRects[10].iBottom = 1; gExplosiveDescStatsRects[11].iLeft = 0; gExplosiveDescStatsRects[11].iTop = 0; gExplosiveDescStatsRects[11].iRight = 1; gExplosiveDescStatsRects[11].iBottom = 1; gExplosiveDescStatsRects[12].iLeft = 0; gExplosiveDescStatsRects[12].iTop = 0; gExplosiveDescStatsRects[12].iRight = 1; gExplosiveDescStatsRects[12].iBottom = 1; gExplosiveDescStatsRects[13].iLeft = 0; gExplosiveDescStatsRects[13].iTop = 0; gExplosiveDescStatsRects[13].iRight = 1; gExplosiveDescStatsRects[13].iBottom = 1; gExplosiveDescStatsRects[14].iLeft = 0; gExplosiveDescStatsRects[14].iTop = 0; gExplosiveDescStatsRects[14].iRight = 1; gExplosiveDescStatsRects[14].iBottom = 1; gExplosiveDescStatsRects[15].iLeft = 0; gExplosiveDescStatsRects[15].iTop = 0; gExplosiveDescStatsRects[15].iRight = 1; gExplosiveDescStatsRects[15].iBottom = 1; gExplosiveDescStatsRects[16].iLeft = 0; gExplosiveDescStatsRects[16].iTop = 0; gExplosiveDescStatsRects[16].iRight = 1; gExplosiveDescStatsRects[16].iBottom = 1; gExplosiveDescStatsRects[17].iLeft = 0; gExplosiveDescStatsRects[17].iTop = 0; gExplosiveDescStatsRects[17].iRight = 1; gExplosiveDescStatsRects[17].iBottom = 1; gExplosiveDescStatsRects[18].iLeft = 0; gExplosiveDescStatsRects[18].iTop = 0; gExplosiveDescStatsRects[18].iRight = 1; gExplosiveDescStatsRects[18].iBottom = 1; gExplosiveDescStatsRects[19].iLeft = 0; gExplosiveDescStatsRects[19].iTop = 0; gExplosiveDescStatsRects[19].iRight = 1; gExplosiveDescStatsRects[19].iBottom = 1; gMiscItemDescStatsRects[0].iLeft = 273; gMiscItemDescStatsRects[0].iTop = 12; gMiscItemDescStatsRects[0].iRight = 370; gMiscItemDescStatsRects[0].iBottom = 23; // Column 1 gMiscItemDescStatsRects[1].iLeft = 273; gMiscItemDescStatsRects[1].iTop = 24; gMiscItemDescStatsRects[1].iRight = 370; gMiscItemDescStatsRects[1].iBottom = 35; gMiscItemDescStatsRects[2].iLeft = 273; gMiscItemDescStatsRects[2].iTop = 36; gMiscItemDescStatsRects[2].iRight = 370; gMiscItemDescStatsRects[2].iBottom = 47; gMiscItemDescStatsRects[3].iLeft = 273; gMiscItemDescStatsRects[3].iTop = 48; gMiscItemDescStatsRects[3].iRight = 370; gMiscItemDescStatsRects[3].iBottom = 59; gMiscItemDescStatsRects[4].iLeft = 273; gMiscItemDescStatsRects[4].iTop = 60; gMiscItemDescStatsRects[4].iRight = 370; gMiscItemDescStatsRects[4].iBottom = 71; gMiscItemDescStatsRects[5].iLeft = 273; gMiscItemDescStatsRects[5].iTop = 72; gMiscItemDescStatsRects[5].iRight = 370; gMiscItemDescStatsRects[5].iBottom = 83; gMiscItemDescStatsRects[6].iLeft = 273; gMiscItemDescStatsRects[6].iTop = 84; gMiscItemDescStatsRects[6].iRight = 370; gMiscItemDescStatsRects[6].iBottom = 95; gMiscItemDescStatsRects[7].iLeft = 374; gMiscItemDescStatsRects[7].iTop = 12; gMiscItemDescStatsRects[7].iRight = 471; gMiscItemDescStatsRects[7].iBottom = 23; // Column Two gMiscItemDescStatsRects[8].iLeft = 374; gMiscItemDescStatsRects[8].iTop = 24; gMiscItemDescStatsRects[8].iRight = 471; gMiscItemDescStatsRects[8].iBottom = 35; gMiscItemDescStatsRects[9].iLeft = 374; gMiscItemDescStatsRects[9].iTop = 36; gMiscItemDescStatsRects[9].iRight = 471; gMiscItemDescStatsRects[9].iBottom = 47; gMiscItemDescStatsRects[10].iLeft = 374; gMiscItemDescStatsRects[10].iTop = 48; gMiscItemDescStatsRects[10].iRight = 471; gMiscItemDescStatsRects[10].iBottom = 59; gMiscItemDescStatsRects[11].iLeft = 374; gMiscItemDescStatsRects[11].iTop = 60; gMiscItemDescStatsRects[11].iRight = 471; gMiscItemDescStatsRects[11].iBottom = 71; gMiscItemDescStatsRects[12].iLeft = 0; gMiscItemDescStatsRects[12].iTop = 0; gMiscItemDescStatsRects[12].iRight = 1; gMiscItemDescStatsRects[12].iBottom = 1; // Placeholders gMiscItemDescStatsRects[13].iLeft = 0; gMiscItemDescStatsRects[13].iTop = 0; gMiscItemDescStatsRects[13].iRight = 1; gMiscItemDescStatsRects[13].iBottom = 1; gMiscItemDescStatsRects[14].iLeft = 0; gMiscItemDescStatsRects[14].iTop = 0; gMiscItemDescStatsRects[14].iRight = 1; gMiscItemDescStatsRects[14].iBottom = 1; gMiscItemDescStatsRects[15].iLeft = 0; gMiscItemDescStatsRects[15].iTop = 0; gMiscItemDescStatsRects[15].iRight = 1; gMiscItemDescStatsRects[15].iBottom = 1; gMiscItemDescStatsRects[16].iLeft = 0; gMiscItemDescStatsRects[16].iTop = 0; gMiscItemDescStatsRects[16].iRight = 1; gMiscItemDescStatsRects[16].iBottom = 1; gMiscItemDescStatsRects[17].iLeft = 0; gMiscItemDescStatsRects[17].iTop = 0; gMiscItemDescStatsRects[17].iRight = 1; gMiscItemDescStatsRects[17].iBottom = 1; gMiscItemDescStatsRects[18].iLeft = 0; gMiscItemDescStatsRects[18].iTop = 0; gMiscItemDescStatsRects[18].iRight = 1; gMiscItemDescStatsRects[18].iBottom = 1; gMiscItemDescStatsRects[19].iLeft = 0; gMiscItemDescStatsRects[19].iTop = 0; gMiscItemDescStatsRects[19].iRight = 1; gMiscItemDescStatsRects[19].iBottom = 1; } } } void SetupItemDescAttachmentsXY(UINT8 ID, INT16 sX, INT16 sY, INT16 sHeight, INT16 sWidth, INT16 sBarDx, INT16 sBarDy) { gItemDescAttachmentsXY[ID].sX = sX; gItemDescAttachmentsXY[ID].sY = sY; gItemDescAttachmentsXY[ID].sHeight = sHeight; gItemDescAttachmentsXY[ID].sWidth = sWidth; gItemDescAttachmentsXY[ID].sBarDx = sBarDx; gItemDescAttachmentsXY[ID].sBarDy = sBarDy; } void InitDescStatCoords() { if( guiCurrentScreen == MAP_SCREEN ) { SetupItemDescAttachmentsXY(0, 175, 9, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-9, INV_BAR_DY); SetupItemDescAttachmentsXY(1, 213, 9, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-9, INV_BAR_DY); SetupItemDescAttachmentsXY(2, 175, 37, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-9, INV_BAR_DY); SetupItemDescAttachmentsXY(3, 213, 37, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-9, INV_BAR_DY); } else { SetupItemDescAttachmentsXY(0, 133, 11, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-8, INV_BAR_DY+1); SetupItemDescAttachmentsXY(1, 167, 11, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-8, INV_BAR_DY+1); SetupItemDescAttachmentsXY(2, 133, 38, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-8, INV_BAR_DY+1); SetupItemDescAttachmentsXY(3, 167, 38, SM_INV_SLOT_HEIGHT, ATTACH_SLOT_WIDTH, INV_BAR_DX-8, INV_BAR_DY+1); } if(UsingEDBSystem() > 0) { if( guiCurrentScreen == MAP_SCREEN ) { gWeaponStats[0].sX = 52; gWeaponStats[0].sY = 98; gWeaponStats[0].sValDx = 76; // 0) STATUS gWeaponStats[1].sX = 52; gWeaponStats[1].sY = 108; gWeaponStats[1].sValDx = 76; // 1) WEIGHT // Labels and Values gWeaponStats[2].sX = 47; gWeaponStats[2].sY = 124; gWeaponStats[2].sValDx = 30; // 2) COL 1; ROW 1 gWeaponStats[3].sX = 47; gWeaponStats[3].sY = 136; gWeaponStats[3].sValDx = 30; // 3) COL 1; ROW 2 gWeaponStats[4].sX = 47; gWeaponStats[4].sY = 148; gWeaponStats[4].sValDx = 30; // 4) COL 1; ROW 3 gWeaponStats[5].sX = 47; gWeaponStats[5].sY = 160; gWeaponStats[5].sValDx = 30; // 5) COL 1; ROW 4 gWeaponStats[6].sX = 47; gWeaponStats[6].sY = 172; gWeaponStats[6].sValDx = 30; // 6) COL 1; ROW 5 gWeaponStats[7].sX = 47; gWeaponStats[7].sY = 184; gWeaponStats[7].sValDx = 30; // 7) COL 1; ROW 6 gWeaponStats[8].sX = 47; gWeaponStats[8].sY = 196; gWeaponStats[8].sValDx = 30; // 8) COL 1; ROW 7 gWeaponStats[9].sX = 112; gWeaponStats[9].sY = 124; gWeaponStats[9].sValDx = 29; // 9) COL 2; ROW 1 gWeaponStats[10].sX = 112; gWeaponStats[10].sY = 136; gWeaponStats[10].sValDx = 29; // 10) COL 2; ROW 2 gWeaponStats[11].sX = 112; gWeaponStats[11].sY = 148; gWeaponStats[11].sValDx = 29; // 11) COL 2; ROW 3 gWeaponStats[12].sX = 112; gWeaponStats[12].sY = 160; gWeaponStats[12].sValDx = 29; // 12) COL 2; ROW 4 gWeaponStats[13].sX = 112; gWeaponStats[13].sY = 172; gWeaponStats[13].sValDx = 29; // 13) COL 2; ROW 5 gWeaponStats[14].sX = 112; gWeaponStats[14].sY = 184; gWeaponStats[14].sValDx = 29; // 14) COL 2; ROW 6 gWeaponStats[15].sX = 112; gWeaponStats[15].sY = 196; gWeaponStats[15].sValDx = 29; // 15) COL 2; ROW 7 gWeaponStats[16].sX = 174; gWeaponStats[16].sY = 124; gWeaponStats[16].sValDx = 30; // 16) COL 3; ROW 1 gWeaponStats[17].sX = 174; gWeaponStats[17].sY = 136; gWeaponStats[17].sValDx = 30; // 17) COL 3; ROW 2 gWeaponStats[18].sX = 174; gWeaponStats[18].sY = 148; gWeaponStats[18].sValDx = 30; // 18) COL 3; ROW 3 gWeaponStats[19].sX = 174; gWeaponStats[19].sY = 160; gWeaponStats[19].sValDx = 30; // 19) COL 3; ROW 4 gWeaponStats[20].sX = 174; gWeaponStats[20].sY = 172; gWeaponStats[20].sValDx = 30; // 20) COL 3; ROW 5 gWeaponStats[21].sX = 174; gWeaponStats[21].sY = 184; gWeaponStats[21].sValDx = 30; // 21) COL 3; ROW 6 gWeaponStats[22].sX = 174; gWeaponStats[22].sY = 196; gWeaponStats[22].sValDx = 30; // 22) COL 3; ROW 7 // EQUALS signs gWeaponStats[23].sX = 79; gWeaponStats[23].sY = 124; gWeaponStats[23].sValDx = 0; // 23) COL 1; ROW 1 gWeaponStats[24].sX = 79; gWeaponStats[24].sY = 136; gWeaponStats[24].sValDx = 0; // 24) COL 1; ROW 2 gWeaponStats[25].sX = 79; gWeaponStats[25].sY = 148; gWeaponStats[25].sValDx = 0; // 25) COL 1; ROW 3 gWeaponStats[26].sX = 79; gWeaponStats[26].sY = 160; gWeaponStats[26].sValDx = 0; // 26) COL 1; ROW 4 gWeaponStats[27].sX = 79; gWeaponStats[27].sY = 172; gWeaponStats[27].sValDx = 0; // 27) COL 1; ROW 5 gWeaponStats[28].sX = 79; gWeaponStats[28].sY = 184; gWeaponStats[28].sValDx = 0; // 28) COL 1; ROW 6 gWeaponStats[29].sX = 79; gWeaponStats[29].sY = 196; gWeaponStats[29].sValDx = 0; // 29) COL 1; ROW 7 gWeaponStats[30].sX = 145; gWeaponStats[30].sY = 124; gWeaponStats[30].sValDx = 0; // 30) COL 2; ROW 1 gWeaponStats[31].sX = 145; gWeaponStats[31].sY = 136; gWeaponStats[31].sValDx = 0; // 31) COL 2; ROW 2 gWeaponStats[32].sX = 145; gWeaponStats[32].sY = 148; gWeaponStats[32].sValDx = 0; // 32) COL 2; ROW 3 gWeaponStats[33].sX = 145; gWeaponStats[33].sY = 160; gWeaponStats[33].sValDx = 0; // 33) COL 2; ROW 4 gWeaponStats[34].sX = 145; gWeaponStats[34].sY = 172; gWeaponStats[34].sValDx = 0; // 34) COL 2; ROW 5 gWeaponStats[35].sX = 145; gWeaponStats[35].sY = 184; gWeaponStats[35].sValDx = 0; // 35) COL 2; ROW 6 gWeaponStats[36].sX = 145; gWeaponStats[36].sY = 196; gWeaponStats[36].sValDx = 0; // 36) COL 2; ROW 7 gWeaponStats[37].sX = 206; gWeaponStats[37].sY = 124; gWeaponStats[37].sValDx = 0; // 37) COL 3; ROW 1 gWeaponStats[38].sX = 206; gWeaponStats[38].sY = 136; gWeaponStats[38].sValDx = 0; // 38) COL 3; ROW 2 gWeaponStats[39].sX = 206; gWeaponStats[39].sY = 148; gWeaponStats[39].sValDx = 0; // 39) COL 3; ROW 3 gWeaponStats[40].sX = 206; gWeaponStats[40].sY = 160; gWeaponStats[40].sValDx = 0; // 40) COL 3; ROW 4 gWeaponStats[41].sX = 206; gWeaponStats[41].sY = 172; gWeaponStats[41].sValDx = 0; // 41) COL 3; ROW 5 gWeaponStats[42].sX = 206; gWeaponStats[42].sY = 184; gWeaponStats[42].sValDx = 0; // 42) COL 3; ROW 6 gWeaponStats[43].sX = 206; gWeaponStats[43].sY = 196; gWeaponStats[43].sValDx = 0; // 43) COL 3; ROW 7 // Nonregular locations for explosive data (COL 2; ROW 3) gWeaponStats[44].sX = 116; gWeaponStats[44].sY = 148; gWeaponStats[44].sValDx = 0; // 44) COL 2; ROW 3; LOC 1 gWeaponStats[45].sX = 134; gWeaponStats[45].sY = 148; gWeaponStats[45].sValDx = 0; // 45) COL 2; ROW 3; LOC 2 gWeaponStats[46].sX = 150; gWeaponStats[46].sY = 148; gWeaponStats[46].sValDx = 0; // 46) COL 2; ROW 3; LOC 3 gMoneyStats[0].sX = 51; gMoneyStats[0].sY = 124; gMoneyStats[0].sValDx = 45; // Money gMoneyStats[1].sX = 61; gMoneyStats[1].sY = 136; gMoneyStats[1].sValDx = 65; // Remaining gMoneyStats[2].sX = 51; gMoneyStats[2].sY = 172; gMoneyStats[2].sValDx = 45; // Money gMoneyStats[3].sX = 61; gMoneyStats[3].sY = 184; gMoneyStats[3].sValDx = 65; // Removing gMoneyStats[4].sX = 47; gMoneyStats[4].sY = 148; gMoneyStats[4].sValDx = 62; // AMT remaining gMoneyStats[5].sX = 47; gMoneyStats[5].sY = 196; gMoneyStats[5].sValDx = 62; // AMT removing gItemDescProsConsRects[0].iLeft = 14; gItemDescProsConsRects[0].iTop = 291; gItemDescProsConsRects[0].iRight = 250; gItemDescProsConsRects[0].iBottom = 298; gItemDescProsConsRects[1].iLeft = 14; gItemDescProsConsRects[1].iTop = 299; gItemDescProsConsRects[1].iRight = 250; gItemDescProsConsRects[1].iBottom = 306; } else { if (UsingEDBSystem() == 1) // NIV EDB { gWeaponStats[0].sX = 205; gWeaponStats[0].sY = 14; gWeaponStats[0].sValDx = 91; // 0) STATUS gWeaponStats[1].sX = 205; gWeaponStats[1].sY = 24; gWeaponStats[1].sValDx = 91; // 1) WEIGHT // Labels and Values gWeaponStats[2].sX = 203; gWeaponStats[2].sY = 44; gWeaponStats[2].sValDx = 30; // 2) COL 1; ROW 1 gWeaponStats[3].sX = 203; gWeaponStats[3].sY = 56; gWeaponStats[3].sValDx = 30; // 3) COL 1; ROW 2 gWeaponStats[4].sX = 203; gWeaponStats[4].sY = 68; gWeaponStats[4].sValDx = 30; // 4) COL 1; ROW 3 gWeaponStats[5].sX = 203; gWeaponStats[5].sY = 80; gWeaponStats[5].sValDx = 30; // 5) COL 1; ROW 4 gWeaponStats[6].sX = 203; gWeaponStats[6].sY = 92; gWeaponStats[6].sValDx = 30; // 6) COL 1; ROW 5 gWeaponStats[7].sX = 203; gWeaponStats[7].sY = 104; gWeaponStats[7].sValDx = 30; // 7) COL 1; ROW 6 gWeaponStats[8].sX = 203; gWeaponStats[8].sY = 116; gWeaponStats[8].sValDx = 30; // 8) COL 1; ROW 7 gWeaponStats[9].sX = 268; gWeaponStats[9].sY = 44; gWeaponStats[9].sValDx = 30; // 9) COL 2; ROW 1 gWeaponStats[10].sX = 268; gWeaponStats[10].sY = 56; gWeaponStats[10].sValDx = 30; // 10) COL 2; ROW 2 gWeaponStats[11].sX = 268; gWeaponStats[11].sY = 68; gWeaponStats[11].sValDx = 30; // 11) COL 2; ROW 3 gWeaponStats[12].sX = 268; gWeaponStats[12].sY = 80; gWeaponStats[12].sValDx = 30; // 12) COL 2; ROW 4 gWeaponStats[13].sX = 268; gWeaponStats[13].sY = 92; gWeaponStats[13].sValDx = 30; // 13) COL 2; ROW 5 gWeaponStats[14].sX = 268; gWeaponStats[14].sY = 104; gWeaponStats[14].sValDx = 30; // 14) COL 2; ROW 6 gWeaponStats[15].sX = 268; gWeaponStats[15].sY = 116; gWeaponStats[15].sValDx = 30; // 15) COL 2; ROW 7 gWeaponStats[16].sX = 203; gWeaponStats[16].sY = 136; gWeaponStats[16].sValDx = 30; // 16) COL 3; ROW 1 gWeaponStats[17].sX = 203; gWeaponStats[17].sY = 160; gWeaponStats[17].sValDx = 30; // 17) COL 3; ROW 3 gWeaponStats[18].sX = 268; gWeaponStats[18].sY = 136; gWeaponStats[18].sValDx = 30; // 18) COL 4; ROW 1 gWeaponStats[19].sX = 268; gWeaponStats[19].sY = 148; gWeaponStats[19].sValDx = 30; // 19) COL 4; ROW 2 gWeaponStats[20].sX = 268; gWeaponStats[20].sY = 160; gWeaponStats[20].sValDx = 30; // 20) COL 4; ROW 3 gWeaponStats[21].sX = 203; gWeaponStats[21].sY = 172; gWeaponStats[21].sValDx = 30; // 21) COL 3; ROW 4 gWeaponStats[22].sX = 268; gWeaponStats[22].sY = 172; gWeaponStats[22].sValDx = 30; // 22) COL 4; ROW 4 // EQUALS signs gWeaponStats[23].sX = 235; gWeaponStats[23].sY = 44; gWeaponStats[23].sValDx = 0; // 23) COL 1; ROW 1 gWeaponStats[24].sX = 235; gWeaponStats[24].sY = 56; gWeaponStats[24].sValDx = 0; // 24) COL 1; ROW 2 gWeaponStats[25].sX = 235; gWeaponStats[25].sY = 68; gWeaponStats[25].sValDx = 0; // 25) COL 1; ROW 3 gWeaponStats[26].sX = 235; gWeaponStats[26].sY = 80; gWeaponStats[26].sValDx = 0; // 26) COL 1; ROW 4 gWeaponStats[27].sX = 235; gWeaponStats[27].sY = 92; gWeaponStats[27].sValDx = 0; // 27) COL 1; ROW 5 gWeaponStats[28].sX = 235; gWeaponStats[28].sY = 104; gWeaponStats[28].sValDx = 0; // 28) COL 1; ROW 6 gWeaponStats[29].sX = 235; gWeaponStats[29].sY = 116; gWeaponStats[29].sValDx = 0; // 29) COL 1; ROW 7 gWeaponStats[30].sX = 300; gWeaponStats[30].sY = 44; gWeaponStats[30].sValDx = 0; // 30) COL 2; ROW 1 gWeaponStats[31].sX = 300; gWeaponStats[31].sY = 56; gWeaponStats[31].sValDx = 0; // 31) COL 2; ROW 2 gWeaponStats[32].sX = 300; gWeaponStats[32].sY = 68; gWeaponStats[32].sValDx = 0; // 32) COL 2; ROW 3 gWeaponStats[33].sX = 300; gWeaponStats[33].sY = 80; gWeaponStats[33].sValDx = 0; // 33) COL 2; ROW 4 gWeaponStats[34].sX = 300; gWeaponStats[34].sY = 92; gWeaponStats[34].sValDx = 0; // 34) COL 2; ROW 5 gWeaponStats[35].sX = 300; gWeaponStats[35].sY = 104; gWeaponStats[35].sValDx = 0; // 35) COL 2; ROW 6 gWeaponStats[36].sX = 300; gWeaponStats[36].sY = 116; gWeaponStats[36].sValDx = 0; // 36) COL 2; ROW 7 gWeaponStats[37].sX = 235; gWeaponStats[37].sY = 136; gWeaponStats[37].sValDx = 0; // 37) COL 3; ROW 1 gWeaponStats[38].sX = 235; gWeaponStats[38].sY = 160; gWeaponStats[38].sValDx = 0; // 38) COL 3; ROW 3 gWeaponStats[39].sX = 300; gWeaponStats[39].sY = 136; gWeaponStats[39].sValDx = 0; // 39) COL 4; ROW 1 gWeaponStats[40].sX = 300; gWeaponStats[40].sY = 148; gWeaponStats[40].sValDx = 0; // 40) COL 4; ROW 2 gWeaponStats[41].sX = 300; gWeaponStats[41].sY = 160; gWeaponStats[41].sValDx = 0; // 41) COL 4; ROW 3 gWeaponStats[42].sX = 235; gWeaponStats[42].sY = 172; gWeaponStats[42].sValDx = 0; // 42) COL 3; ROW 4 gWeaponStats[43].sX = 300; gWeaponStats[43].sY = 172; gWeaponStats[43].sValDx = 0; // 43) COL 4; ROW 4 // Nonregular locations for explosive radius values (COL 2; ROW 3) gWeaponStats[44].sX = 273; gWeaponStats[44].sY = 68; gWeaponStats[44].sValDx = 0; // 44) COL 2; ROW 3; LOC 1 - Starting Radius gWeaponStats[45].sX = 291; gWeaponStats[45].sY = 68; gWeaponStats[45].sValDx = 0; // 45) COL 2; ROW 3; LOC 2 - Single Radius gWeaponStats[46].sX = 307; gWeaponStats[46].sY = 68; gWeaponStats[46].sValDx = 0; // 46) COL 2; ROW 3; LOC 3 - Final Radius gMoneyStats[0].sX = 203; gMoneyStats[0].sY = 44; gMoneyStats[0].sValDx = 45; // Money gMoneyStats[1].sX = 213; gMoneyStats[1].sY = 56; gMoneyStats[1].sValDx = 65; // Remaining gMoneyStats[2].sX = 203; gMoneyStats[2].sY = 92; gMoneyStats[2].sValDx = 45; // Money gMoneyStats[3].sX = 213; gMoneyStats[3].sY = 104; gMoneyStats[3].sValDx = 65; // Removing gMoneyStats[4].sX = 203; gMoneyStats[4].sY = 56; gMoneyStats[4].sValDx = 100; // AMT remaining gMoneyStats[5].sX = 203; gMoneyStats[5].sY = 104; gMoneyStats[5].sValDx = 100; // AMT removing gItemDescProsConsRects[0].iLeft = 14; gItemDescProsConsRects[0].iTop = 169; gItemDescProsConsRects[0].iRight = 188; gItemDescProsConsRects[0].iBottom = 176; gItemDescProsConsRects[1].iLeft = 14; gItemDescProsConsRects[1].iTop = 177; gItemDescProsConsRects[1].iRight = 188; gItemDescProsConsRects[1].iBottom = 184; } if (UsingEDBSystem() == 2) // OIV EDB { gWeaponStats[0].sX = 202; gWeaponStats[0].sY = 16; gWeaponStats[0].sValDx = 36; // 0) STATUS gWeaponStats[1].sX = 202; gWeaponStats[1].sY = 64; gWeaponStats[1].sValDx = 36; // 1) WEIGHT // Labels and Values gWeaponStats[2].sX = 274; gWeaponStats[2].sY = 14; gWeaponStats[2].sValDx = 30; // 2) COL 1; ROW 1 gWeaponStats[3].sX = 274; gWeaponStats[3].sY = 26; gWeaponStats[3].sValDx = 30; // 3) COL 1; ROW 2 gWeaponStats[4].sX = 274; gWeaponStats[4].sY = 38; gWeaponStats[4].sValDx = 30; // 4) COL 1; ROW 3 gWeaponStats[5].sX = 274; gWeaponStats[5].sY = 50; gWeaponStats[5].sValDx = 30; // 5) COL 1; ROW 4 gWeaponStats[6].sX = 274; gWeaponStats[6].sY = 62; gWeaponStats[6].sValDx = 30; // 6) COL 1; ROW 5 gWeaponStats[7].sX = 274; gWeaponStats[7].sY = 74; gWeaponStats[7].sValDx = 30; // 7) COL 1; ROW 6 gWeaponStats[8].sX = 274; gWeaponStats[8].sY = 86; gWeaponStats[8].sValDx = 30; // 8) COL 1; ROW 7 gWeaponStats[9].sX = 341; gWeaponStats[9].sY = 14; gWeaponStats[9].sValDx = 30; // 9) COL 2; ROW 1 gWeaponStats[10].sX = 341; gWeaponStats[10].sY = 26; gWeaponStats[10].sValDx = 30; // 10) COL 2; ROW 2 gWeaponStats[11].sX = 341; gWeaponStats[11].sY = 38; gWeaponStats[11].sValDx = 30; // 11) COL 2; ROW 3 gWeaponStats[12].sX = 341; gWeaponStats[12].sY = 50; gWeaponStats[12].sValDx = 30; // 12) COL 2; ROW 4 gWeaponStats[13].sX = 341; gWeaponStats[13].sY = 62; gWeaponStats[13].sValDx = 30; // 13) COL 2; ROW 5 gWeaponStats[14].sX = 341; gWeaponStats[14].sY = 74; gWeaponStats[14].sValDx = 30; // 14) COL 2; ROW 6 gWeaponStats[15].sX = 341; gWeaponStats[15].sY = 86; gWeaponStats[15].sValDx = 30; // 15) COL 2; ROW 7 gWeaponStats[16].sX = 408; gWeaponStats[16].sY = 14; gWeaponStats[16].sValDx = 30; // 16) COL 3; ROW 1 gWeaponStats[17].sX = 408; gWeaponStats[17].sY = 26; gWeaponStats[17].sValDx = 30; // 17) COL 3; ROW 2 gWeaponStats[18].sX = 408; gWeaponStats[18].sY = 38; gWeaponStats[18].sValDx = 30; // 18) COL 3; ROW 3 gWeaponStats[19].sX = 408; gWeaponStats[19].sY = 50; gWeaponStats[19].sValDx = 30; // 19) COL 3; ROW 4 gWeaponStats[20].sX = 408; gWeaponStats[20].sY = 62; gWeaponStats[20].sValDx = 30; // 20) COL 3; ROW 5 gWeaponStats[21].sX = 408; gWeaponStats[21].sY = 74; gWeaponStats[21].sValDx = 30; // 21) COL 3; ROW 6 gWeaponStats[22].sX = 408; gWeaponStats[22].sY = 86; gWeaponStats[22].sValDx = 30; // 22) COL 3; ROW 7 // EQUALS signs gWeaponStats[23].sX = 306; gWeaponStats[23].sY = 14; gWeaponStats[23].sValDx = 0; // 23) COL 1; ROW 1 gWeaponStats[24].sX = 306; gWeaponStats[24].sY = 26; gWeaponStats[24].sValDx = 0; // 24) COL 1; ROW 2 gWeaponStats[25].sX = 306; gWeaponStats[25].sY = 38; gWeaponStats[25].sValDx = 0; // 25) COL 1; ROW 3 gWeaponStats[26].sX = 306; gWeaponStats[26].sY = 50; gWeaponStats[26].sValDx = 0; // 26) COL 1; ROW 4 gWeaponStats[27].sX = 306; gWeaponStats[27].sY = 62; gWeaponStats[27].sValDx = 0; // 27) COL 1; ROW 5 gWeaponStats[28].sX = 306; gWeaponStats[28].sY = 74; gWeaponStats[28].sValDx = 0; // 28) COL 1; ROW 6 gWeaponStats[29].sX = 306; gWeaponStats[29].sY = 86; gWeaponStats[29].sValDx = 0; // 39) COL 1; ROW 7 gWeaponStats[30].sX = 373; gWeaponStats[30].sY = 14; gWeaponStats[30].sValDx = 0; // 30) COL 2; ROW 1 gWeaponStats[31].sX = 373; gWeaponStats[31].sY = 26; gWeaponStats[31].sValDx = 0; // 31) COL 2; ROW 2 gWeaponStats[32].sX = 373; gWeaponStats[32].sY = 38; gWeaponStats[32].sValDx = 0; // 32) COL 2; ROW 3 gWeaponStats[33].sX = 373; gWeaponStats[33].sY = 50; gWeaponStats[33].sValDx = 0; // 33) COL 2; ROW 4 gWeaponStats[34].sX = 373; gWeaponStats[34].sY = 62; gWeaponStats[34].sValDx = 0; // 34) COL 2; ROW 5 gWeaponStats[35].sX = 373; gWeaponStats[35].sY = 74; gWeaponStats[35].sValDx = 0; // 35) COL 2; ROW 6 gWeaponStats[36].sX = 373; gWeaponStats[36].sY = 86; gWeaponStats[36].sValDx = 0; // 36) COL 2; ROW 7 gWeaponStats[37].sX = 440; gWeaponStats[37].sY = 14; gWeaponStats[37].sValDx = 0; // 37) COL 3; ROW 1 gWeaponStats[38].sX = 440; gWeaponStats[38].sY = 26; gWeaponStats[38].sValDx = 0; // 48) COL 3; ROW 2 gWeaponStats[39].sX = 440; gWeaponStats[39].sY = 38; gWeaponStats[39].sValDx = 0; // 49) COL 3; ROW 3 gWeaponStats[40].sX = 440; gWeaponStats[40].sY = 50; gWeaponStats[40].sValDx = 0; // 40) COL 3; ROW 4 gWeaponStats[41].sX = 440; gWeaponStats[41].sY = 62; gWeaponStats[41].sValDx = 0; // 41) COL 3; ROW 5 gWeaponStats[42].sX = 440; gWeaponStats[42].sY = 74; gWeaponStats[42].sValDx = 0; // 42) COL 3; ROW 6 gWeaponStats[43].sX = 440; gWeaponStats[43].sY = 86; gWeaponStats[43].sValDx = 0; // 43) COL 3; ROW 7 // Nonregular locations for explosive radius values (COL 2; ROW 3) gWeaponStats[44].sX = 345; gWeaponStats[44].sY = 38; gWeaponStats[44].sValDx = 0; // 44) COL 2; ROW 3; LOC 1 - Starting Radius gWeaponStats[45].sX = 362; gWeaponStats[45].sY = 38; gWeaponStats[45].sValDx = 0; // 45) COL 2; ROW 3; LOC 2 - Single Radius gWeaponStats[46].sX = 381; gWeaponStats[46].sY = 38; gWeaponStats[46].sValDx = 0; // 46) COL 2; ROW 3; LOC 3 - Final Radius gMoneyStats[0].sX = 202; gMoneyStats[0].sY = 14; gMoneyStats[0].sValDx = 45; // Money gMoneyStats[1].sX = 202; gMoneyStats[1].sY = 26; gMoneyStats[1].sValDx = 65; // Remaining gMoneyStats[2].sX = 202; gMoneyStats[2].sY = 62; gMoneyStats[2].sValDx = 45; // Money gMoneyStats[3].sX = 202; gMoneyStats[3].sY = 74; gMoneyStats[3].sValDx = 65; // Removing gMoneyStats[4].sX = 202; gMoneyStats[4].sY = 38; gMoneyStats[4].sValDx = 100; // AMT remaining gMoneyStats[5].sX = 202; gMoneyStats[5].sY = 86; gMoneyStats[5].sValDx = 100; // AMT removing gItemDescProsConsRects[0].iLeft = 433; gItemDescProsConsRects[0].iTop = 104; gItemDescProsConsRects[0].iRight = 467; gItemDescProsConsRects[0].iBottom = 115; gItemDescProsConsRects[1].iLeft = 433; gItemDescProsConsRects[1].iTop = 116; gItemDescProsConsRects[1].iRight = 467; gItemDescProsConsRects[1].iBottom = 127; } } } else { if(guiCurrentScreen ==MAP_SCREEN) { gWeaponStats[0].sX = 52; gWeaponStats[0].sY = 98; gWeaponStats[0].sValDx = 89; // 0) STATUS gWeaponStats[1].sX = 52; gWeaponStats[1].sY = 108; gWeaponStats[1].sValDx = 89; // 1) WEIGHT gWeaponStats[2].sX = 117; gWeaponStats[2].sY = 124; gWeaponStats[2].sValDx = 21; // 2) RANGE gWeaponStats[3].sX = 52; gWeaponStats[3].sY = 124; gWeaponStats[3].sValDx = 30; // 3) DAMAGE gWeaponStats[4].sX = 52; gWeaponStats[4].sY = 98; gWeaponStats[4].sValDx = 80; gWeaponStats[5].sX = 52; gWeaponStats[5].sY = 135; gWeaponStats[5].sValDx = 30; // 5) AP gWeaponStats[6].sX = 117; gWeaponStats[6].sY = 135; gWeaponStats[6].sValDx = 25; gWeaponStats[7].sX = 86; gWeaponStats[7].sY = 135; gWeaponStats[7].sValDx = 0; // 7) = gWeaponStats[8].sX = 145; gWeaponStats[8].sY = 135; gWeaponStats[8].sValDx = 0; // 8) = gWeaponStats[9].sX = 0; gWeaponStats[9].sY = 0; gWeaponStats[9].sValDx = 0; gWeaponStats[10].sX = 0; gWeaponStats[10].sY = 0; gWeaponStats[10].sValDx = 0; gWeaponStats[11].sX = 0; gWeaponStats[11].sY = 0; gWeaponStats[11].sValDx = 0; gWeaponStats[12].sX = 0; gWeaponStats[12].sY = 0; gWeaponStats[12].sValDx = 0; gWeaponStats[13].sX = 0; gWeaponStats[13].sY = 0; gWeaponStats[13].sValDx = 0; gWeaponStats[14].sX = 0; gWeaponStats[14].sY = 0; gWeaponStats[14].sValDx = 0; gWeaponStats[15].sX = 0; gWeaponStats[15].sY = 0; gWeaponStats[15].sValDx = 0; gWeaponStats[16].sX = 0; gWeaponStats[16].sY = 0; gWeaponStats[16].sValDx = 0; gWeaponStats[17].sX = 0; gWeaponStats[17].sY = 0; gWeaponStats[17].sValDx = 0; gWeaponStats[18].sX = 0; gWeaponStats[18].sY = 0; gWeaponStats[18].sValDx = 0; gWeaponStats[19].sX = 0; gWeaponStats[19].sY = 0; gWeaponStats[19].sValDx = 0; gWeaponStats[20].sX = 0; gWeaponStats[20].sY = 0; gWeaponStats[20].sValDx = 0; gWeaponStats[21].sX = 0; gWeaponStats[21].sY = 0; gWeaponStats[21].sValDx = 0; gWeaponStats[22].sX = 0; gWeaponStats[22].sY = 0; gWeaponStats[22].sValDx = 0; gWeaponStats[23].sX = 0; gWeaponStats[23].sY = 0; gWeaponStats[23].sValDx = 0; gWeaponStats[24].sX = 0; gWeaponStats[24].sY = 0; gWeaponStats[24].sValDx = 0; gWeaponStats[25].sX = 0; gWeaponStats[25].sY = 0; gWeaponStats[25].sValDx = 0; gWeaponStats[26].sX = 0; gWeaponStats[26].sY = 0; gWeaponStats[26].sValDx = 0; gWeaponStats[27].sX = 0; gWeaponStats[27].sY = 0; gWeaponStats[27].sValDx = 0; gWeaponStats[28].sX = 0; gWeaponStats[28].sY = 0; gWeaponStats[28].sValDx = 0; gWeaponStats[29].sX = 0; gWeaponStats[29].sY = 0; gWeaponStats[29].sValDx = 0; gWeaponStats[30].sX = 0; gWeaponStats[30].sY = 0; gWeaponStats[30].sValDx = 0; gWeaponStats[31].sX = 0; gWeaponStats[31].sY = 0; gWeaponStats[31].sValDx = 0; gWeaponStats[32].sX = 0; gWeaponStats[32].sY = 0; gWeaponStats[32].sValDx = 0; gWeaponStats[33].sX = 0; gWeaponStats[33].sY = 0; gWeaponStats[33].sValDx = 0; gWeaponStats[34].sX = 0; gWeaponStats[34].sY = 0; gWeaponStats[34].sValDx = 0; gWeaponStats[35].sX = 0; gWeaponStats[35].sY = 0; gWeaponStats[35].sValDx = 0; gWeaponStats[36].sX = 0; gWeaponStats[36].sY = 0; gWeaponStats[36].sValDx = 0; gWeaponStats[37].sX = 0; gWeaponStats[37].sY = 0; gWeaponStats[37].sValDx = 0; gWeaponStats[38].sX = 0; gWeaponStats[38].sY = 0; gWeaponStats[38].sValDx = 0; gWeaponStats[39].sX = 0; gWeaponStats[39].sY = 0; gWeaponStats[39].sValDx = 0; gWeaponStats[40].sX = 0; gWeaponStats[40].sY = 0; gWeaponStats[40].sValDx = 0; gWeaponStats[41].sX = 0; gWeaponStats[41].sY = 0; gWeaponStats[41].sValDx = 0; gWeaponStats[42].sX = 0; gWeaponStats[42].sY = 0; gWeaponStats[42].sValDx = 0; gWeaponStats[43].sX = 0; gWeaponStats[43].sY = 0; gWeaponStats[43].sValDx = 0; gWeaponStats[44].sX = 0; gWeaponStats[44].sY = 0; gWeaponStats[44].sValDx = 0; gWeaponStats[45].sX = 0; gWeaponStats[45].sY = 0; gWeaponStats[45].sValDx = 0; gWeaponStats[46].sX = 0; gWeaponStats[46].sY = 0; gWeaponStats[46].sValDx = 0; gMoneyStats[0].sX = 51; gMoneyStats[0].sY = 97; gMoneyStats[0].sValDx = 45; gMoneyStats[1].sX = 61; gMoneyStats[1].sY = 107; gMoneyStats[1].sValDx = 75; gMoneyStats[2].sX = 51; gMoneyStats[2].sY = 125; gMoneyStats[2].sValDx = 45; gMoneyStats[3].sX = 61; gMoneyStats[3].sY = 135; gMoneyStats[3].sValDx = 70; gMoneyStats[4].sX = 0; gMoneyStats[4].sY = 0; gMoneyStats[4].sValDx = 0; gMoneyStats[5].sX = 0; gMoneyStats[5].sY = 0; gMoneyStats[5].sValDx = 0; gItemDescProsConsRects[0].iLeft = 14; gItemDescProsConsRects[0].iTop = 231; gItemDescProsConsRects[0].iRight = 240; gItemDescProsConsRects[0].iBottom = 238; gItemDescProsConsRects[1].iLeft = 14; gItemDescProsConsRects[1].iTop = 239; gItemDescProsConsRects[1].iRight = 240; gItemDescProsConsRects[1].iBottom = 246; } else { gWeaponStats[0].sX = 202; gWeaponStats[0].sY = 15; gWeaponStats[0].sValDx = 83; // 0) STATUS gWeaponStats[1].sX = 202; gWeaponStats[1].sY = 25; gWeaponStats[1].sValDx = 83; // 1) WEIGHT gWeaponStats[2].sX = 265; gWeaponStats[2].sY = 40; gWeaponStats[2].sValDx = 20; // 2) RANGE gWeaponStats[3].sX = 202; gWeaponStats[3].sY = 40; gWeaponStats[3].sValDx = 32; // 3) DAMAGE gWeaponStats[4].sX = 202; gWeaponStats[4].sY = 15; gWeaponStats[4].sValDx = 83; // 4) KEY gWeaponStats[5].sX = 202; gWeaponStats[5].sY = 50; gWeaponStats[5].sValDx = 32; // 5) AP gWeaponStats[6].sX = 265; gWeaponStats[6].sY = 50; gWeaponStats[6].sValDx = 20; gWeaponStats[7].sX = 234; gWeaponStats[7].sY = 50; gWeaponStats[7].sValDx = 0; // 7) = gWeaponStats[8].sX = 290; gWeaponStats[8].sY = 50; gWeaponStats[8].sValDx = 0; // 8) = gWeaponStats[9].sX = 0; gWeaponStats[9].sY = 0; gWeaponStats[9].sValDx = 0; gWeaponStats[10].sX = 0; gWeaponStats[10].sY = 0; gWeaponStats[10].sValDx = 0; gWeaponStats[11].sX = 0; gWeaponStats[11].sY = 0; gWeaponStats[11].sValDx = 0; gWeaponStats[12].sX = 0; gWeaponStats[12].sY = 0; gWeaponStats[12].sValDx = 0; gWeaponStats[13].sX = 0; gWeaponStats[13].sY = 0; gWeaponStats[13].sValDx = 0; gWeaponStats[14].sX = 0; gWeaponStats[14].sY = 0; gWeaponStats[14].sValDx = 0; gWeaponStats[15].sX = 0; gWeaponStats[15].sY = 0; gWeaponStats[15].sValDx = 0; gWeaponStats[16].sX = 0; gWeaponStats[16].sY = 0; gWeaponStats[16].sValDx = 0; gWeaponStats[17].sX = 0; gWeaponStats[17].sY = 0; gWeaponStats[17].sValDx = 0; gWeaponStats[18].sX = 0; gWeaponStats[18].sY = 0; gWeaponStats[18].sValDx = 0; gWeaponStats[19].sX = 0; gWeaponStats[19].sY = 0; gWeaponStats[19].sValDx = 0; gWeaponStats[20].sX = 0; gWeaponStats[20].sY = 0; gWeaponStats[20].sValDx = 0; gWeaponStats[21].sX = 0; gWeaponStats[21].sY = 0; gWeaponStats[21].sValDx = 0; gWeaponStats[22].sX = 0; gWeaponStats[22].sY = 0; gWeaponStats[22].sValDx = 0; gWeaponStats[23].sX = 0; gWeaponStats[23].sY = 0; gWeaponStats[23].sValDx = 0; gWeaponStats[24].sX = 0; gWeaponStats[24].sY = 0; gWeaponStats[24].sValDx = 0; gWeaponStats[25].sX = 0; gWeaponStats[25].sY = 0; gWeaponStats[25].sValDx = 0; gWeaponStats[26].sX = 0; gWeaponStats[26].sY = 0; gWeaponStats[26].sValDx = 0; gWeaponStats[27].sX = 0; gWeaponStats[27].sY = 0; gWeaponStats[27].sValDx = 0; gWeaponStats[28].sX = 0; gWeaponStats[28].sY = 0; gWeaponStats[28].sValDx = 0; gWeaponStats[29].sX = 0; gWeaponStats[29].sY = 0; gWeaponStats[29].sValDx = 0; gWeaponStats[30].sX = 0; gWeaponStats[30].sY = 0; gWeaponStats[30].sValDx = 0; gWeaponStats[31].sX = 0; gWeaponStats[31].sY = 0; gWeaponStats[31].sValDx = 0; gWeaponStats[32].sX = 0; gWeaponStats[32].sY = 0; gWeaponStats[32].sValDx = 0; gWeaponStats[33].sX = 0; gWeaponStats[33].sY = 0; gWeaponStats[33].sValDx = 0; gWeaponStats[34].sX = 0; gWeaponStats[34].sY = 0; gWeaponStats[34].sValDx = 0; gWeaponStats[35].sX = 0; gWeaponStats[35].sY = 0; gWeaponStats[35].sValDx = 0; gWeaponStats[36].sX = 0; gWeaponStats[36].sY = 0; gWeaponStats[36].sValDx = 0; gWeaponStats[37].sX = 0; gWeaponStats[37].sY = 0; gWeaponStats[37].sValDx = 0; gWeaponStats[38].sX = 0; gWeaponStats[38].sY = 0; gWeaponStats[38].sValDx = 0; gWeaponStats[39].sX = 0; gWeaponStats[39].sY = 0; gWeaponStats[39].sValDx = 0; gWeaponStats[40].sX = 0; gWeaponStats[40].sY = 0; gWeaponStats[40].sValDx = 0; gWeaponStats[41].sX = 0; gWeaponStats[41].sY = 0; gWeaponStats[41].sValDx = 0; gWeaponStats[42].sX = 0; gWeaponStats[42].sY = 0; gWeaponStats[42].sValDx = 0; gWeaponStats[43].sX = 0; gWeaponStats[43].sY = 0; gWeaponStats[43].sValDx = 0; gWeaponStats[44].sX = 0; gWeaponStats[44].sY = 0; gWeaponStats[44].sValDx = 0; gWeaponStats[45].sX = 0; gWeaponStats[45].sY = 0; gWeaponStats[45].sValDx = 0; gWeaponStats[46].sX = 0; gWeaponStats[46].sY = 0; gWeaponStats[46].sValDx = 0; gMoneyStats[0].sX = 202; gMoneyStats[0].sY = 14; gMoneyStats[0].sValDx = 78; gMoneyStats[1].sX = 212; gMoneyStats[1].sY = 25; gMoneyStats[1].sValDx = 78; gMoneyStats[2].sX = 203; gMoneyStats[2].sY = 40; gMoneyStats[2].sValDx = 78; gMoneyStats[3].sX = 212; gMoneyStats[3].sY = 51; gMoneyStats[3].sValDx = 78; gMoneyStats[4].sX = 0; gMoneyStats[4].sY = 0; gMoneyStats[4].sValDx = 0; gMoneyStats[5].sX = 0; gMoneyStats[5].sY = 0; gMoneyStats[5].sValDx = 0; gItemDescProsConsRects[0].iLeft = 7; gItemDescProsConsRects[0].iTop = 111; gItemDescProsConsRects[0].iRight = 313; gItemDescProsConsRects[0].iBottom = 118; gItemDescProsConsRects[1].iLeft = 7; gItemDescProsConsRects[1].iTop = 119; gItemDescProsConsRects[1].iRight = 313; gItemDescProsConsRects[1].iBottom = 126; } } } void InitLBECoords() { if(guiCurrentScreen ==MAP_SCREEN) //Strategic { if(UsingEDBSystem() > 0) { gLBEStats[0].sX = 65; gLBEStats[0].sY = 367; gLBEStats[0].sValDx = 0; //Thigh 1 gLBEStats[1].sX = 101; gLBEStats[1].sY = 367; gLBEStats[1].sValDx = 0; //Thigh 2 gLBEStats[2].sX = 65; gLBEStats[2].sY = 391; gLBEStats[2].sValDx = 0; //Thigh 3 gLBEStats[3].sX = 101; gLBEStats[3].sY = 391; gLBEStats[3].sValDx = 0; //Thigh 4 gLBEStats[4].sX = 77; gLBEStats[4].sY = 415; gLBEStats[4].sValDx = 0; //Thigh 5 gLBEStats[5].sX = 0; gLBEStats[5].sY = 0; gLBEStats[5].sValDx = 0; //Thigh 6 gLBEStats[6].sX = 0; gLBEStats[6].sY = 0; gLBEStats[6].sValDx = 0; //Thigh 7 gLBEStats[7].sX = 0; gLBEStats[7].sY = 0; gLBEStats[7].sValDx = 0; //Thigh 8 gLBEStats[8].sX = 0; gLBEStats[8].sY = 0; gLBEStats[8].sValDx = 0; //Thigh 9 gLBEStats[9].sX = 0; gLBEStats[9].sY = 0; gLBEStats[9].sValDx = 0; //Thigh 10 gLBEStats[10].sX = 0; gLBEStats[10].sY = 0; gLBEStats[10].sValDx = 0; //Thigh 11 gLBEStats[11].sX = 0; gLBEStats[11].sY = 0; gLBEStats[11].sValDx = 0; //Thigh 12 gLBEStats[12].sX = 22; gLBEStats[12].sY = 417; gLBEStats[12].sValDx = 0; //Vest 1 gLBEStats[13].sX = 58; gLBEStats[13].sY = 417; gLBEStats[13].sValDx = 0; //Vest 2 gLBEStats[14].sX = 94; gLBEStats[14].sY = 417; gLBEStats[14].sValDx = 0; //Vest 3 gLBEStats[15].sX = 130; gLBEStats[15].sY = 417; gLBEStats[15].sValDx = 0; //Vest 4 gLBEStats[16].sX = 166; gLBEStats[16].sY = 417; gLBEStats[16].sValDx = 0; //Vest 5 gLBEStats[17].sX = 22; gLBEStats[17].sY = 441; gLBEStats[17].sValDx = 0; //Vest 6 gLBEStats[18].sX = 58; gLBEStats[18].sY = 441; gLBEStats[18].sValDx = 0; //Vest 7 gLBEStats[19].sX = 94; gLBEStats[19].sY = 441; gLBEStats[19].sValDx = 0; //Vest 8 gLBEStats[20].sX = 130; gLBEStats[20].sY = 441; gLBEStats[20].sValDx = 0; //Vest 9 gLBEStats[21].sX = 166; gLBEStats[21].sY = 441; gLBEStats[21].sValDx = 0; //Vest 10 gLBEStats[22].sX = 202; gLBEStats[22].sY = 417; gLBEStats[22].sValDx = 0; //Vest 11 gLBEStats[23].sX = 202; gLBEStats[23].sY = 441; gLBEStats[23].sValDx = 0; //Vest 12 gLBEStats[24].sX = 66; gLBEStats[24].sY = 341; gLBEStats[24].sValDx = 0; //CPack 1 gLBEStats[25].sX = 102; gLBEStats[25].sY = 341; gLBEStats[25].sValDx = 0; //CPack 2 gLBEStats[26].sX = 66; gLBEStats[26].sY = 365; gLBEStats[26].sValDx = 0; //CPack 3 gLBEStats[27].sX = 102; gLBEStats[27].sY = 365; gLBEStats[27].sValDx = 0; //CPack 4 gLBEStats[28].sX = 69; gLBEStats[28].sY = 389; gLBEStats[28].sValDx = 0; //CPack 5 gLBEStats[29].sX = 69; gLBEStats[29].sY = 413; gLBEStats[29].sValDx = 0; //CPack 6 gLBEStats[30].sX = 69; gLBEStats[30].sY = 437; gLBEStats[30].sValDx = 0; //CPack 7 gLBEStats[31].sX = 0; gLBEStats[31].sY = 0; gLBEStats[31].sValDx = 0; //CPack 8 gLBEStats[32].sX = 0; gLBEStats[32].sY = 0; gLBEStats[32].sValDx = 0; //CPack 9 gLBEStats[33].sX = 0; gLBEStats[33].sY = 0; gLBEStats[33].sValDx = 0; //CPack 10 gLBEStats[34].sX = 0; gLBEStats[34].sY = 0; gLBEStats[34].sValDx = 0; //CPack 11 gLBEStats[35].sX = 0; gLBEStats[35].sY = 0; gLBEStats[35].sValDx = 0; //CPack 12 gLBEStats[36].sX = 32; gLBEStats[36].sY = 347; gLBEStats[36].sValDx = 0; //BPack 1 gLBEStats[37].sX = 32; gLBEStats[37].sY = 371; gLBEStats[37].sValDx = 0; //BPack 2 gLBEStats[38].sX = 32; gLBEStats[38].sY = 395; gLBEStats[38].sValDx = 0; //BPack 3 gLBEStats[39].sX = 32; gLBEStats[39].sY = 419; gLBEStats[39].sValDx = 0; //BPack 4 gLBEStats[40].sX = 68; gLBEStats[40].sY = 347; gLBEStats[40].sValDx = 0; //BPack 5 gLBEStats[41].sX = 68; gLBEStats[41].sY = 371; gLBEStats[41].sValDx = 0; //BPack 6 gLBEStats[42].sX = 68; gLBEStats[42].sY = 395; gLBEStats[42].sValDx = 0; //BPack 7 gLBEStats[43].sX = 68; gLBEStats[43].sY = 419; gLBEStats[43].sValDx = 0; //BPack 8 gLBEStats[44].sX = 104; gLBEStats[44].sY = 347; gLBEStats[44].sValDx = 0; //BPack 9 gLBEStats[45].sX = 104; gLBEStats[45].sY = 371; gLBEStats[45].sValDx = 0; //BPack 10 gLBEStats[46].sX = 104; gLBEStats[46].sY = 395; gLBEStats[46].sValDx = 0; //BPack 11 gLBEStats[47].sX = 104; gLBEStats[47].sY = 419; gLBEStats[47].sValDx = 0; //BPack 12 } else { gLBEStats[0].sX = 101; gLBEStats[0].sY = 287; gLBEStats[0].sValDx = 0; //Thigh 1 gLBEStats[1].sX = 137; gLBEStats[1].sY = 287; gLBEStats[1].sValDx = 0; //Thigh 2 gLBEStats[2].sX = 101; gLBEStats[2].sY = 311; gLBEStats[2].sValDx = 0; //Thigh 3 gLBEStats[3].sX = 137; gLBEStats[3].sY = 311; gLBEStats[3].sValDx = 0; //Thigh 4 gLBEStats[4].sX = 112; gLBEStats[4].sY = 335; gLBEStats[4].sValDx = 0; //Thigh 5 gLBEStats[5].sX = 0; gLBEStats[5].sY = 0; gLBEStats[5].sValDx = 0; //Thigh 6 gLBEStats[6].sX = 0; gLBEStats[6].sY = 0; gLBEStats[6].sValDx = 0; //Thigh 7 gLBEStats[7].sX = 0; gLBEStats[7].sY = 0; gLBEStats[7].sValDx = 0; //Thigh 8 gLBEStats[8].sX = 0; gLBEStats[8].sY = 0; gLBEStats[8].sValDx = 0; //Thigh 9 gLBEStats[9].sX = 0; gLBEStats[9].sY = 0; gLBEStats[9].sValDx = 0; //Thigh 10 gLBEStats[10].sX = 0; gLBEStats[10].sY = 0; gLBEStats[10].sValDx = 0; //Thigh 11 gLBEStats[11].sX = 0; gLBEStats[11].sY = 0; gLBEStats[11].sValDx = 0; //Thigh 12 gLBEStats[12].sX = 22; gLBEStats[12].sY = 299; gLBEStats[12].sValDx = 0; //Vest 1 gLBEStats[13].sX = 58; gLBEStats[13].sY = 299; gLBEStats[13].sValDx = 0; //Vest 2 gLBEStats[14].sX = 94; gLBEStats[14].sY = 299; gLBEStats[14].sValDx = 0; //Vest 3 gLBEStats[15].sX = 130; gLBEStats[15].sY = 299; gLBEStats[15].sValDx = 0; //Vest 4 gLBEStats[16].sX = 166; gLBEStats[16].sY = 299; gLBEStats[16].sValDx = 0; //Vest 5 gLBEStats[17].sX = 22; gLBEStats[17].sY = 323; gLBEStats[17].sValDx = 0; //Vest 6 gLBEStats[18].sX = 58; gLBEStats[18].sY = 323; gLBEStats[18].sValDx = 0; //Vest 7 gLBEStats[19].sX = 94; gLBEStats[19].sY = 323; gLBEStats[19].sValDx = 0; //Vest 8 gLBEStats[20].sX = 130; gLBEStats[20].sY = 323; gLBEStats[20].sValDx = 0; //Vest 9 gLBEStats[21].sX = 166; gLBEStats[21].sY = 323; gLBEStats[21].sValDx = 0; //Vest 10 gLBEStats[22].sX = 202; gLBEStats[22].sY = 299; gLBEStats[22].sValDx = 0; //Vest 11 gLBEStats[23].sX = 202; gLBEStats[23].sY = 323; gLBEStats[23].sValDx = 0; //Vest 12 gLBEStats[24].sX = 101; gLBEStats[24].sY = 287; gLBEStats[24].sValDx = 0; //CPack 1 gLBEStats[25].sX = 137; gLBEStats[25].sY = 287; gLBEStats[25].sValDx = 0; //CPack 2 gLBEStats[26].sX = 101; gLBEStats[26].sY = 311; gLBEStats[26].sValDx = 0; //CPack 3 gLBEStats[27].sX = 137; gLBEStats[27].sY = 311; gLBEStats[27].sValDx = 0; //CPack 4 gLBEStats[28].sX = 104; gLBEStats[28].sY = 335; gLBEStats[28].sValDx = 0; //CPack 5 gLBEStats[29].sX = 104; gLBEStats[29].sY = 359; gLBEStats[29].sValDx = 0; //CPack 6 gLBEStats[30].sX = 104; gLBEStats[30].sY = 383; gLBEStats[30].sValDx = 0; //CPack 7 gLBEStats[31].sX = 0; gLBEStats[31].sY = 0; gLBEStats[31].sValDx = 0; //CPack 8 gLBEStats[32].sX = 0; gLBEStats[32].sY = 0; gLBEStats[32].sValDx = 0; //CPack 9 gLBEStats[33].sX = 0; gLBEStats[33].sY = 0; gLBEStats[33].sValDx = 0; //CPack 10 gLBEStats[34].sX = 0; gLBEStats[34].sY = 0; gLBEStats[34].sValDx = 0; //CPack 11 gLBEStats[35].sX = 0; gLBEStats[35].sY = 0; gLBEStats[35].sValDx = 0; //CPack 12 gLBEStats[36].sX = 68; gLBEStats[36].sY = 275; gLBEStats[36].sValDx = 0; //BPack 1 gLBEStats[37].sX = 68; gLBEStats[37].sY = 299; gLBEStats[37].sValDx = 0; //BPack 2 gLBEStats[38].sX = 68; gLBEStats[38].sY = 323; gLBEStats[38].sValDx = 0; //BPack 3 gLBEStats[39].sX = 68; gLBEStats[39].sY = 347; gLBEStats[39].sValDx = 0; //BPack 4 gLBEStats[40].sX = 104; gLBEStats[40].sY = 275; gLBEStats[40].sValDx = 0; //BPack 5 gLBEStats[41].sX = 104; gLBEStats[41].sY = 299; gLBEStats[41].sValDx = 0; //BPack 6 gLBEStats[42].sX = 104; gLBEStats[42].sY = 323; gLBEStats[42].sValDx = 0; //BPack 7 gLBEStats[43].sX = 104; gLBEStats[43].sY = 347; gLBEStats[43].sValDx = 0; //BPack 8 gLBEStats[44].sX = 140; gLBEStats[44].sY = 275; gLBEStats[44].sValDx = 0; //BPack 9 gLBEStats[45].sX = 140; gLBEStats[45].sY = 299; gLBEStats[45].sValDx = 0; //BPack 10 gLBEStats[46].sX = 140; gLBEStats[46].sY = 323; gLBEStats[46].sValDx = 0; //BPack 11 gLBEStats[47].sX = 140; gLBEStats[47].sY = 347; gLBEStats[47].sValDx = 0; //BPack 12 } } else { if(UsingEDBSystem() > 0) { gLBEStats[0].sX = 456; gLBEStats[0].sY = 10; gLBEStats[0].sValDx = 0; //Thigh 1 gLBEStats[1].sX = 492; gLBEStats[1].sY = 10; gLBEStats[1].sValDx = 0; //Thigh 2 gLBEStats[2].sX = 456; gLBEStats[2].sY = 34; gLBEStats[2].sValDx = 0; //Thigh 3 gLBEStats[3].sX = 492; gLBEStats[3].sY = 34; gLBEStats[3].sValDx = 0; //Thigh 4 gLBEStats[4].sX = 467; gLBEStats[4].sY = 58; gLBEStats[4].sValDx = 0; //Thigh 5 gLBEStats[5].sX = 0; gLBEStats[5].sY = 0; gLBEStats[5].sValDx = 0; //Thigh 6 gLBEStats[6].sX = 0; gLBEStats[6].sY = 0; gLBEStats[6].sValDx = 0; //Thigh 7 gLBEStats[7].sX = 0; gLBEStats[7].sY = 0; gLBEStats[7].sValDx = 0; //Thigh 8 gLBEStats[8].sX = 0; gLBEStats[8].sY = 0; gLBEStats[8].sValDx = 0; //Thigh 9 gLBEStats[9].sX = 0; gLBEStats[9].sY = 0; gLBEStats[9].sValDx = 0; //Thigh 10 gLBEStats[10].sX = 0; gLBEStats[10].sY = 0; gLBEStats[10].sValDx = 0; //Thigh 11 gLBEStats[11].sX = 0; gLBEStats[11].sY = 0; gLBEStats[11].sValDx = 0; //Thigh 12 gLBEStats[12].sX = 456; gLBEStats[12].sY = 10; gLBEStats[12].sValDx = 0; //Vest 1 gLBEStats[13].sX = 492; gLBEStats[13].sY = 10; gLBEStats[13].sValDx = 0; //Vest 2 gLBEStats[14].sX = 528; gLBEStats[14].sY = 10; gLBEStats[14].sValDx = 0; //Vest 3 gLBEStats[15].sX = 564; gLBEStats[15].sY = 10; gLBEStats[15].sValDx = 0; //Vest 4 gLBEStats[16].sX = 600; gLBEStats[16].sY = 10; gLBEStats[16].sValDx = 0; //Vest 5 gLBEStats[17].sX = 456; gLBEStats[17].sY = 34; gLBEStats[17].sValDx = 0; //Vest 6 gLBEStats[18].sX = 492; gLBEStats[18].sY = 34; gLBEStats[18].sValDx = 0; //Vest 7 gLBEStats[19].sX = 528; gLBEStats[19].sY = 34; gLBEStats[19].sValDx = 0; //Vest 8 gLBEStats[20].sX = 564; gLBEStats[20].sY = 34; gLBEStats[20].sValDx = 0; //Vest 9 gLBEStats[21].sX = 600; gLBEStats[21].sY = 34; gLBEStats[21].sValDx = 0; //Vest 10 gLBEStats[22].sX = 636; gLBEStats[22].sY = 10; gLBEStats[22].sValDx = 0; //Vest 11 gLBEStats[23].sX = 636; gLBEStats[23].sY = 34; gLBEStats[23].sValDx = 0; //Vest 12 gLBEStats[24].sX = 456; gLBEStats[24].sY = 10; gLBEStats[24].sValDx = 0; //CPack 1 gLBEStats[25].sX = 492; gLBEStats[25].sY = 10; gLBEStats[25].sValDx = 0; //CPack 2 gLBEStats[26].sX = 456; gLBEStats[26].sY = 34; gLBEStats[26].sValDx = 0; //CPack 3 gLBEStats[27].sX = 492; gLBEStats[27].sY = 34; gLBEStats[27].sValDx = 0; //CPack 4 gLBEStats[28].sX = 528; gLBEStats[28].sY = 10; gLBEStats[28].sValDx = 0; //CPack 5 gLBEStats[29].sX = 528; gLBEStats[29].sY = 34; gLBEStats[29].sValDx = 0; //CPack 6 gLBEStats[30].sX = 528; gLBEStats[30].sY = 58; gLBEStats[30].sValDx = 0; //CPack 7 gLBEStats[31].sX = 0; gLBEStats[31].sY = 0; gLBEStats[31].sValDx = 0; //CPack 8 gLBEStats[32].sX = 0; gLBEStats[32].sY = 0; gLBEStats[32].sValDx = 0; //CPack 9 gLBEStats[33].sX = 0; gLBEStats[33].sY = 0; gLBEStats[33].sValDx = 0; //CPack 10 gLBEStats[34].sX = 0; gLBEStats[34].sY = 0; gLBEStats[34].sValDx = 0; //CPack 11 gLBEStats[35].sX = 0; gLBEStats[35].sY = 0; gLBEStats[35].sValDx = 0; //CPack 12 gLBEStats[36].sX = 456; gLBEStats[36].sY = 10; gLBEStats[36].sValDx = 0; //BPack 1 gLBEStats[37].sX = 456; gLBEStats[37].sY = 34; gLBEStats[37].sValDx = 0; //BPack 2 gLBEStats[38].sX = 456; gLBEStats[38].sY = 58; gLBEStats[38].sValDx = 0; //BPack 3 gLBEStats[39].sX = 456; gLBEStats[39].sY = 82; gLBEStats[39].sValDx = 0; //BPack 4 gLBEStats[40].sX = 492; gLBEStats[40].sY = 10; gLBEStats[40].sValDx = 0; //BPack 5 gLBEStats[41].sX = 492; gLBEStats[41].sY = 34; gLBEStats[41].sValDx = 0; //BPack 6 gLBEStats[42].sX = 492; gLBEStats[42].sY = 58; gLBEStats[42].sValDx = 0; //BPack 7 gLBEStats[43].sX = 492; gLBEStats[43].sY = 82; gLBEStats[43].sValDx = 0; //BPack 8 gLBEStats[44].sX = 528; gLBEStats[44].sY = 10; gLBEStats[44].sValDx = 0; //BPack 9 gLBEStats[45].sX = 528; gLBEStats[45].sY = 34; gLBEStats[45].sValDx = 0; //BPack 10 gLBEStats[46].sX = 528; gLBEStats[46].sY = 58; gLBEStats[46].sValDx = 0; //BPack 11 gLBEStats[47].sX = 528; gLBEStats[47].sY = 82; gLBEStats[47].sValDx = 0; //BPack 12 } else { gLBEStats[0].sX = 586; gLBEStats[0].sY = 10; gLBEStats[0].sValDx = 0; //Thigh 1 gLBEStats[1].sX = 622; gLBEStats[1].sY = 10; gLBEStats[1].sValDx = 0; //Thigh 2 gLBEStats[2].sX = 586; gLBEStats[2].sY = 34; gLBEStats[2].sValDx = 0; //Thigh 3 gLBEStats[3].sX = 622; gLBEStats[3].sY = 34; gLBEStats[3].sValDx = 0; //Thigh 4 gLBEStats[4].sX = 597; gLBEStats[4].sY = 58; gLBEStats[4].sValDx = 0; //Thigh 5 gLBEStats[5].sX = 0; gLBEStats[5].sY = 0; gLBEStats[5].sValDx = 0; //Thigh 6 gLBEStats[6].sX = 0; gLBEStats[6].sY = 0; gLBEStats[6].sValDx = 0; //Thigh 7 gLBEStats[7].sX = 0; gLBEStats[7].sY = 0; gLBEStats[7].sValDx = 0; //Thigh 8 gLBEStats[8].sX = 0; gLBEStats[8].sY = 0; gLBEStats[8].sValDx = 0; //Thigh 9 gLBEStats[9].sX = 0; gLBEStats[9].sY = 0; gLBEStats[9].sValDx = 0; //Thigh 10 gLBEStats[10].sX = 0; gLBEStats[10].sY = 0; gLBEStats[10].sValDx = 0; //Thigh 11 gLBEStats[11].sX = 0; gLBEStats[11].sY = 0; gLBEStats[11].sValDx = 0; //Thigh 12 gLBEStats[12].sX = 269; gLBEStats[12].sY = 139; gLBEStats[12].sValDx = 0; //Vest 1 gLBEStats[13].sX = 305; gLBEStats[13].sY = 139; gLBEStats[13].sValDx = 0; //Vest 2 gLBEStats[14].sX = 341; gLBEStats[14].sY = 139; gLBEStats[14].sValDx = 0; //Vest 3 gLBEStats[15].sX = 377; gLBEStats[15].sY = 139; gLBEStats[15].sValDx = 0; //Vest 4 gLBEStats[16].sX = 413; gLBEStats[16].sY = 139; gLBEStats[16].sValDx = 0; //Vest 5 gLBEStats[17].sX = 269; gLBEStats[17].sY = 163; gLBEStats[17].sValDx = 0; //Vest 6 gLBEStats[18].sX = 305; gLBEStats[18].sY = 163; gLBEStats[18].sValDx = 0; //Vest 7 gLBEStats[19].sX = 341; gLBEStats[19].sY = 163; gLBEStats[19].sValDx = 0; //Vest 8 gLBEStats[20].sX = 377; gLBEStats[20].sY = 163; gLBEStats[20].sValDx = 0; //Vest 9 gLBEStats[21].sX = 413; gLBEStats[21].sY = 163; gLBEStats[21].sValDx = 0; //Vest 10 gLBEStats[22].sX = 449; gLBEStats[22].sY = 139; gLBEStats[22].sValDx = 0; //Vest 11 gLBEStats[23].sX = 449; gLBEStats[23].sY = 163; gLBEStats[23].sValDx = 0; //Vest 12 gLBEStats[24].sX = 585; gLBEStats[24].sY = 10; gLBEStats[24].sValDx = 0; //CPack 1 gLBEStats[25].sX = 621; gLBEStats[25].sY = 10; gLBEStats[25].sValDx = 0; //CPack 2 gLBEStats[26].sX = 585; gLBEStats[26].sY = 34; gLBEStats[26].sValDx = 0; //CPack 3 gLBEStats[27].sX = 621; gLBEStats[27].sY = 34; gLBEStats[27].sValDx = 0; //CPack 4 gLBEStats[28].sX = 657; gLBEStats[28].sY = 10; gLBEStats[28].sValDx = 0; //CPack 5 gLBEStats[29].sX = 657; gLBEStats[29].sY = 34; gLBEStats[29].sValDx = 0; //CPack 6 gLBEStats[30].sX = 657; gLBEStats[30].sY = 58; gLBEStats[30].sValDx = 0; //CPack 7 gLBEStats[31].sX = 0; gLBEStats[31].sY = 0; gLBEStats[31].sValDx = 0; //CPack 8 gLBEStats[32].sX = 0; gLBEStats[32].sY = 0; gLBEStats[32].sValDx = 0; //CPack 9 gLBEStats[33].sX = 0; gLBEStats[33].sY = 0; gLBEStats[33].sValDx = 0; //CPack 10 gLBEStats[34].sX = 0; gLBEStats[34].sY = 0; gLBEStats[34].sValDx = 0; //CPack 11 gLBEStats[35].sX = 0; gLBEStats[35].sY = 0; gLBEStats[35].sValDx = 0; //CPack 12 gLBEStats[36].sX = 585; gLBEStats[36].sY = 10; gLBEStats[36].sValDx = 0; //BPack 1 gLBEStats[37].sX = 585; gLBEStats[37].sY = 34; gLBEStats[37].sValDx = 0; //BPack 2 gLBEStats[38].sX = 585; gLBEStats[38].sY = 58; gLBEStats[38].sValDx = 0; //BPack 3 gLBEStats[39].sX = 585; gLBEStats[39].sY = 82; gLBEStats[39].sValDx = 0; //BPack 4 gLBEStats[40].sX = 621; gLBEStats[40].sY = 10; gLBEStats[40].sValDx = 0; //BPack 5 gLBEStats[41].sX = 621; gLBEStats[41].sY = 34; gLBEStats[41].sValDx = 0; //BPack 6 gLBEStats[42].sX = 621; gLBEStats[42].sY = 58; gLBEStats[42].sValDx = 0; //BPack 7 gLBEStats[43].sX = 621; gLBEStats[43].sY = 82; gLBEStats[43].sValDx = 0; //BPack 8 gLBEStats[44].sX = 657; gLBEStats[44].sY = 10; gLBEStats[44].sValDx = 0; //BPack 9 gLBEStats[45].sX = 657; gLBEStats[45].sY = 34; gLBEStats[45].sValDx = 0; //BPack 10 gLBEStats[46].sX = 657; gLBEStats[46].sY = 58; gLBEStats[46].sValDx = 0; //BPack 11 gLBEStats[47].sX = 657; gLBEStats[47].sY = 82; gLBEStats[47].sValDx = 0; //BPack 12 } } } void InitItemDescriptionBoxOffsets() { // Initiate variables for Enhanced Item Description Box system if(guiCurrentScreen ==MAP_SCREEN) //Strategic { if(UsingEDBSystem() > 0) { // STRATEGIC Description Box Icons BULLET_DRAW_X = (112 + gsInvDescX); BULLET_DRAW_Y = (136 + gsInvDescY); BULLET_SING_X = (112 + gsInvDescX); BULLET_SING_Y = (148 + gsInvDescY); BULLET_BURST_X = (112 + gsInvDescX); BULLET_BURST_Y = (160 + gsInvDescY); BULLET_AUTO_X = (112 + gsInvDescX); BULLET_AUTO_Y = (172 + gsInvDescY); BULLET_RELOAD_X = (112 + gsInvDescX); BULLET_RELOAD_Y = (184 + gsInvDescY); BULLET_MRELOAD_X = (112 + gsInvDescX); BULLET_MRELOAD_Y = (196 + gsInvDescY); BULLET_RANGE_X = (47 + gsInvDescX); BULLET_RANGE_Y = (124 + gsInvDescY); BULLET_DAMAGE_X = (47 + gsInvDescX); BULLET_DAMAGE_Y = (136 + gsInvDescY); BULLET_AUTOPEN_X = (47 + gsInvDescX); BULLET_AUTOPEN_Y = (148 + gsInvDescY); BULLET_AUTO5AP_X = (47 + gsInvDescX); BULLET_AUTO5AP_Y = (160 + gsInvDescY); BULLET_ACC_X = (47 + gsInvDescX); BULLET_ACC_Y = (172 + gsInvDescY); BULLET_RELIABILITY_X = (47 + gsInvDescX); BULLET_RELIABILITY_Y = (184 + gsInvDescY); BULLET_REPAIR_X = (47 + gsInvDescX); BULLET_REPAIR_Y = (196 + gsInvDescY); BULLET_LOUDNESS_X = (174 + gsInvDescX); BULLET_LOUDNESS_Y = (136 + gsInvDescY); BULLET_FLASH_X = (198 + gsInvDescX); BULLET_FLASH_Y = (124 + gsInvDescY); BULLET_TOHIT_X = (174 + gsInvDescX); BULLET_TOHIT_Y = (148 + gsInvDescY); BULLET_BESTLASERRANGE_X = (174 + gsInvDescX); BULLET_BESTLASERRANGE_Y = (160 + gsInvDescY); BULLET_AIMBONUS_X = (174 + gsInvDescX); BULLET_AIMBONUS_Y = (172 + gsInvDescY); BULLET_MINRANGEAIMBONUS_X = (174 + gsInvDescX); BULLET_MINRANGEAIMBONUS_Y = (184 + gsInvDescY); BULLET_BIPOD_X = (174 + gsInvDescX); BULLET_BIPOD_Y = (196 + gsInvDescY); // Icon Locations for AMMO stats BULLET_ARMORPEN_X = (47 + gsInvDescX); BULLET_ARMORPEN_Y = (124 + gsInvDescY); BULLET_TUMBLE_X = (47 + gsInvDescX); BULLET_TUMBLE_Y = (136 + gsInvDescY); BULLET_PREARMOR_X = (47 + gsInvDescX); BULLET_PREARMOR_Y = (148 + gsInvDescY); BULLET_TRACER_X = (115 + gsInvDescX); BULLET_TRACER_Y = (124 + gsInvDescY); BULLET_ANTITANK_X = (140 + gsInvDescX); BULLET_ANTITANK_Y = (124 + gsInvDescY); BULLET_LOCKBUSTER_X = (115 + gsInvDescX); BULLET_LOCKBUSTER_Y = (148 + gsInvDescY); BULLET_IGNOREARMOR_X = (140 + gsInvDescX); BULLET_IGNOREARMOR_Y = (148 + gsInvDescY); BULLET_ACIDIC_X = (115 + gsInvDescX); BULLET_ACIDIC_Y = (172 + gsInvDescY); BULLET_AMMORANGEBON_X = (174 + gsInvDescX); BULLET_AMMORANGEBON_Y = (124 + gsInvDescY); BULLET_AMMODAMAGEBON_X = (174 + gsInvDescX); BULLET_AMMODAMAGEBON_Y = (136 + gsInvDescY); BULLET_AMMOTOHITBON_X = (174 + gsInvDescX); BULLET_AMMOTOHITBON_Y = (148 + gsInvDescY); BULLET_AMMOAUTOBON_X = (174 + gsInvDescX); BULLET_AMMOAUTOBON_Y = (160 + gsInvDescY); BULLET_AMMOBURSTBON_X = (174 + gsInvDescX); BULLET_AMMOBURSTBON_Y = (172 + gsInvDescY); BULLET_AMMORELIABILITYBON_X = (174 + gsInvDescX); BULLET_AMMORELIABILITYBON_Y = (184 + gsInvDescY); BULLET_AMMONOISESUPP_X = (174 + gsInvDescX); BULLET_AMMONOISESUPP_Y = (196 + gsInvDescY); // Icon Locations for EXPLOSIVES stats BULLET_EXPLOSIVEDAMAGE_X = (47 + gsInvDescX); BULLET_EXPLOSIVEDAMAGE_Y = (124 + gsInvDescY); BULLET_EXPLOSIVESTUNDAMAGE_X = (47 + gsInvDescX); BULLET_EXPLOSIVESTUNDAMAGE_Y = (136 + gsInvDescY); BULLET_EXPLOSIVELOUDNESS_X = (47 + gsInvDescX); BULLET_EXPLOSIVELOUDNESS_Y = (148 + gsInvDescY); BULLET_EXPLOSIVEVOLATILITY_X = (47 + gsInvDescX); BULLET_EXPLOSIVEVOLATILITY_Y = (160 + gsInvDescY); BULLET_EXPLOSIVERADIUS_X = (131 + gsInvDescX); BULLET_EXPLOSIVERADIUS_Y = (124 + gsInvDescY); BULLET_EXPLOSIVESTARTRADIUS_X = (113 + gsInvDescX); BULLET_EXPLOSIVESTARTRADIUS_Y = (124 + gsInvDescY); BULLET_EXPLOSIVEARROW_X = (131 + gsInvDescX); BULLET_EXPLOSIVEARROW_Y = (130 + gsInvDescY); BULLET_EXPLOSIVEENDRADIUS_X = (146 + gsInvDescX); BULLET_EXPLOSIVEENDRADIUS_Y = (124 + gsInvDescY); BULLET_EXPLOSIVEDURATION_X = (112 + gsInvDescX); BULLET_EXPLOSIVEDURATION_Y = (172 + gsInvDescY); // Icon Locations for ARMOR stats BULLET_ARMOR_X = (47 + gsInvDescX); BULLET_ARMOR_Y = (124 + gsInvDescY); BULLET_ARMORCOVERAGE_X = (47 + gsInvDescX); BULLET_ARMORCOVERAGE_Y = (136 + gsInvDescY); BULLET_ARMORDEGRADE_X = (47 + gsInvDescX); BULLET_ARMORDEGRADE_Y = (148 + gsInvDescY); BULLET_ARMORAPBONUS_X = (112 + gsInvDescX); BULLET_ARMORAPBONUS_Y = (124 + gsInvDescY); BULLET_ARMORAIMBONUS_X = (112 + gsInvDescX); BULLET_ARMORAIMBONUS_Y = (136 + gsInvDescY); BULLET_ARMORWOODCAMO_X = (112 + gsInvDescX); BULLET_ARMORWOODCAMO_Y = (148 + gsInvDescY); BULLET_ARMORURBANCAMO_X = (112 + gsInvDescX); BULLET_ARMORURBANCAMO_Y = (160 + gsInvDescY); BULLET_ARMORDESERTCAMO_X = (112 + gsInvDescX); BULLET_ARMORDESERTCAMO_Y = (172 + gsInvDescY); BULLET_ARMORSNOWCAMO_X = (112 + gsInvDescX); BULLET_ARMORSNOWCAMO_Y = (184 + gsInvDescY); BULLET_ARMORSTEALTH_X = (112 + gsInvDescX); BULLET_ARMORSTEALTH_Y = (196 + gsInvDescY); BULLET_ARMORVISIONRANGEBONUS_X = (174 + gsInvDescX); BULLET_ARMORVISIONRANGEBONUS_Y = (124 + gsInvDescY); BULLET_ARMORDAYVISIONRANGEBONUS_X = (175 + gsInvDescX); BULLET_ARMORDAYVISIONRANGEBONUS_Y = (136 + gsInvDescY); BULLET_ARMORNIGHTVISIONRANGEBONUS_X = (175 + gsInvDescX); BULLET_ARMORNIGHTVISIONRANGEBONUS_Y = (148 + gsInvDescY); BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_X = (175 + gsInvDescX); BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_Y = (160 + gsInvDescY); BULLET_ARMORCAVEVISIONRANGEBONUS_X = (175 + gsInvDescX); BULLET_ARMORCAVEVISIONRANGEBONUS_Y = (172 + gsInvDescY); BULLET_ARMORPERCENTTUNNELVISION_X = (175 + gsInvDescX); BULLET_ARMORPERCENTTUNNELVISION_Y = (184 + gsInvDescY); BULLET_ARMORHEARINGRANGEBONUS_X = (174 + gsInvDescX); BULLET_ARMORHEARINGRANGEBONUS_Y = (196 + gsInvDescY); // Generic Icon Locations for MISC Item Stats BULLET_COL1ROW1_X = (47 + gsInvDescX); BULLET_COL1ROW1_Y = (124 + gsInvDescY); BULLET_COL1ROW2_X = (47 + gsInvDescX); BULLET_COL1ROW2_Y = (136 + gsInvDescY); BULLET_COL1ROW3_X = (47 + gsInvDescX); BULLET_COL1ROW3_Y = (148 + gsInvDescY); BULLET_COL1ROW4_X = (47 + gsInvDescX); BULLET_COL1ROW4_Y = (160 + gsInvDescY); BULLET_COL1ROW5_X = (47 + gsInvDescX); BULLET_COL1ROW5_Y = (172 + gsInvDescY); BULLET_COL1ROW6_X = (47 + gsInvDescX); BULLET_COL1ROW6_Y = (184 + gsInvDescY); BULLET_COL1ROW7_X = (47 + gsInvDescX); BULLET_COL1ROW7_Y = (196 + gsInvDescY); BULLET_COL2ROW1_X = (144 + gsInvDescX); BULLET_COL2ROW1_Y = (124 + gsInvDescY); BULLET_COL2ROW2_X = (144 + gsInvDescX); BULLET_COL2ROW2_Y = (136 + gsInvDescY); BULLET_COL2ROW3_X = (144 + gsInvDescX); BULLET_COL2ROW3_Y = (148 + gsInvDescY); BULLET_COL2ROW4_X = (144 + gsInvDescX); BULLET_COL2ROW4_Y = (160 + gsInvDescY); BULLET_COL2ROW5_X = (144 + gsInvDescX); BULLET_COL2ROW5_Y = (172 + gsInvDescY); BULLET_COL2ROW6_X = (144 + gsInvDescX); BULLET_COL2ROW6_Y = (184 + gsInvDescY); BULLET_COL2ROW7_X = (144 + gsInvDescX); BULLET_COL2ROW7_Y = (196 + gsInvDescY); ITEMDESC_CALIBER_X = (105 + gsInvDescX); ITEMDESC_CALIBER_Y = ( 66 + gsInvDescY); ITEMDESC_CALIBER_WIDTH = 149; ITEMDESC_NAME_X = ( 7 + gsInvDescX); ITEMDESC_NAME_Y = ( 65 + gsInvDescY); ITEMDESC_ITEM_X = ( 25 + gsInvDescX); ITEMDESC_ITEM_Y = ( 6 + gsInvDescY); // END ICONS SEGMENT ITEMDESC_DESC_START_X = ( 23 + gsInvDescX ); ITEMDESC_DESC_START_Y = (230 + gsInvDescY); ITEMDESC_PROS_START_X = ( 23 + gsInvDescX ); ITEMDESC_PROS_START_Y = (290 + gsInvDescY); ITEMDESC_CONS_START_X = ( 23 + gsInvDescX ); ITEMDESC_CONS_START_Y = (300 + gsInvDescY); ITEMDESC_DESC_WIDTH = 220; ITEMDESC_ITEM_STATUS_X = ( 18 + gsInvDescX ); ITEMDESC_ITEM_STATUS_Y = ( 53 + gsInvDescY ); ITEMDESC_ITEM_STATUS_HEIGHT = 40; } else { // STRATEGIC Description Box Icon locations BULLET_SING_X = ( 77 + gsInvDescX); BULLET_SING_Y = (135 + gsInvDescY); BULLET_BURST_X = (117 + gsInvDescX); BULLET_BURST_Y = (135 + gsInvDescY); ITEMDESC_CALIBER_X = (105 + gsInvDescX); ITEMDESC_CALIBER_Y = ( 66 + gsInvDescY); ITEMDESC_CALIBER_WIDTH = 149; ITEMDESC_NAME_X = ( 7 + gsInvDescX); ITEMDESC_NAME_Y = ( 65 + gsInvDescY); ITEMDESC_ITEM_X = ( 25 + gsInvDescX); ITEMDESC_ITEM_Y = ( 6 + gsInvDescY); // END ICONS SEGMENT ITEMDESC_DESC_START_X = ( 23 + gsInvDescX ); // Description Text Box, Strategic ITEMDESC_DESC_START_Y = (170 + gsInvDescY); ITEMDESC_PROS_START_X = ( 23 + gsInvDescX ); // Pros, Strategic ITEMDESC_PROS_START_Y = (230 + gsInvDescY); ITEMDESC_CONS_START_X = ( 23 + gsInvDescX ); // Cons, Strategic ITEMDESC_CONS_START_Y = (240 + gsInvDescY); ITEMDESC_DESC_WIDTH = 220; ITEMDESC_ITEM_STATUS_X = ( 18 + gsInvDescX ); ITEMDESC_ITEM_STATUS_Y = ( 53 + gsInvDescY ); ITEMDESC_ITEM_STATUS_HEIGHT = 40; } } else //Tactical { if(UsingEDBSystem() == 1) // NIV EDB { // Icon locations, Tactical BULLET_DRAW_X = (268 + gsInvDescX); BULLET_DRAW_Y = (56 + gsInvDescY); BULLET_SING_X = (268 + gsInvDescX); BULLET_SING_Y = (68 + gsInvDescY); BULLET_BURST_X = (268 + gsInvDescX); BULLET_BURST_Y = (80 + gsInvDescY); BULLET_AUTO_X = (268 + gsInvDescX); BULLET_AUTO_Y = (92 + gsInvDescY); BULLET_RELOAD_X = (268 + gsInvDescX); BULLET_RELOAD_Y = (104 + gsInvDescY); BULLET_MRELOAD_X = (268 + gsInvDescX); BULLET_MRELOAD_Y = (116 + gsInvDescY); BULLET_RANGE_X = (203 + gsInvDescX); BULLET_RANGE_Y = (44 + gsInvDescY); BULLET_DAMAGE_X = (203 + gsInvDescX); BULLET_DAMAGE_Y = (56 + gsInvDescY); BULLET_AUTOPEN_X = (203 + gsInvDescX); BULLET_AUTOPEN_Y = (68 + gsInvDescY); BULLET_AUTO5AP_X = (203 + gsInvDescX); BULLET_AUTO5AP_Y = (80 + gsInvDescY); BULLET_ACC_X = (203 + gsInvDescX); BULLET_ACC_Y = (92 + gsInvDescY); BULLET_RELIABILITY_X = (203 + gsInvDescX); BULLET_RELIABILITY_Y = (104 + gsInvDescY); BULLET_REPAIR_X = (203 + gsInvDescX); BULLET_REPAIR_Y = (116 + gsInvDescY); BULLET_FLASH_X = (226 + gsInvDescX); //291 BULLET_FLASH_Y = (136 + gsInvDescY); //136 BULLET_LOUDNESS_X = (203 + gsInvDescX); //268 BULLET_LOUDNESS_Y = (160 + gsInvDescY); //159 BULLET_TOHIT_X = (268 + gsInvDescX); //203 BULLET_TOHIT_Y = (136 + gsInvDescY); //136 BULLET_BESTLASERRANGE_X = (268 + gsInvDescX); //203 BULLET_BESTLASERRANGE_Y = (148 + gsInvDescY); //148 BULLET_AIMBONUS_X = (268 + gsInvDescX); //203 BULLET_AIMBONUS_Y = (160 + gsInvDescY); //160 BULLET_MINRANGEAIMBONUS_X = (268 + gsInvDescX); //203 BULLET_MINRANGEAIMBONUS_Y = (172 + gsInvDescY); //172 BULLET_BIPOD_X = (203 + gsInvDescX); //268 BULLET_BIPOD_Y = (172 + gsInvDescY); //171 // Icon Locations for AMMO stats BULLET_ARMORPEN_X = (203 + gsInvDescX); BULLET_ARMORPEN_Y = (44 + gsInvDescY); BULLET_TUMBLE_X = (203 + gsInvDescX); BULLET_TUMBLE_Y = (56 + gsInvDescY); BULLET_PREARMOR_X = (203 + gsInvDescX); BULLET_PREARMOR_Y = (68 + gsInvDescY); BULLET_TRACER_X = (271 + gsInvDescX); BULLET_TRACER_Y = (44 + gsInvDescY); BULLET_ANTITANK_X = (296 + gsInvDescX); BULLET_ANTITANK_Y = (44 + gsInvDescY); BULLET_LOCKBUSTER_X = (271 + gsInvDescX); BULLET_LOCKBUSTER_Y = (68 + gsInvDescY); BULLET_IGNOREARMOR_X = (296 + gsInvDescX); BULLET_IGNOREARMOR_Y = (68 + gsInvDescY); BULLET_ACIDIC_X = (271 + gsInvDescX); BULLET_ACIDIC_Y = (92 + gsInvDescY); BULLET_AMMORANGEBON_X = (203 + gsInvDescX); BULLET_AMMORANGEBON_Y = (136 + gsInvDescY); BULLET_AMMODAMAGEBON_X = (203 + gsInvDescX); BULLET_AMMODAMAGEBON_Y = (160 + gsInvDescY); BULLET_AMMOTOHITBON_X = (268 + gsInvDescX); BULLET_AMMOTOHITBON_Y = (136 + gsInvDescY); BULLET_AMMORELIABILITYBON_X = (203 + gsInvDescX); BULLET_AMMORELIABILITYBON_Y = (172 + gsInvDescY); BULLET_AMMOAUTOBON_X = (268 + gsInvDescX); BULLET_AMMOAUTOBON_Y = (148 + gsInvDescY); BULLET_AMMOBURSTBON_X = (268 + gsInvDescX); BULLET_AMMOBURSTBON_Y = (160 + gsInvDescY); BULLET_AMMONOISESUPP_X = (268 + gsInvDescX); BULLET_AMMONOISESUPP_Y = (172 + gsInvDescY); // Icon Locations for EXPLOSIVES stats BULLET_EXPLOSIVEDAMAGE_X = (203 + gsInvDescX); BULLET_EXPLOSIVEDAMAGE_Y = (44 + gsInvDescY); BULLET_EXPLOSIVESTUNDAMAGE_X = (203 + gsInvDescX); BULLET_EXPLOSIVESTUNDAMAGE_Y = (56 + gsInvDescY); BULLET_EXPLOSIVELOUDNESS_X = (203 + gsInvDescX); BULLET_EXPLOSIVELOUDNESS_Y = (68 + gsInvDescY); BULLET_EXPLOSIVEVOLATILITY_X = (203 + gsInvDescX); BULLET_EXPLOSIVEVOLATILITY_Y = (80 + gsInvDescY); BULLET_EXPLOSIVERADIUS_X = (288 + gsInvDescX); BULLET_EXPLOSIVERADIUS_Y = (44 + gsInvDescY); BULLET_EXPLOSIVESTARTRADIUS_X = (270 + gsInvDescX); BULLET_EXPLOSIVESTARTRADIUS_Y = (44 + gsInvDescY); BULLET_EXPLOSIVEARROW_X = (287 + gsInvDescX); BULLET_EXPLOSIVEARROW_Y = (50 + gsInvDescY); BULLET_EXPLOSIVEENDRADIUS_X = (303 + gsInvDescX); BULLET_EXPLOSIVEENDRADIUS_Y = (44 + gsInvDescY); BULLET_EXPLOSIVEDURATION_X = (268 + gsInvDescX); BULLET_EXPLOSIVEDURATION_Y = (92 + gsInvDescY); // Icon Locations for ARMOR stats BULLET_ARMOR_X = (203 + gsInvDescX); BULLET_ARMOR_Y = (44 + gsInvDescY); BULLET_ARMORCOVERAGE_X = (203 + gsInvDescX); BULLET_ARMORCOVERAGE_Y = (56 + gsInvDescY); BULLET_ARMORDEGRADE_X = (203 + gsInvDescX); BULLET_ARMORDEGRADE_Y = (68 + gsInvDescY); BULLET_ARMORAPBONUS_X = (268 + gsInvDescX); BULLET_ARMORAPBONUS_Y = (44 + gsInvDescY); BULLET_ARMORAIMBONUS_X = (268 + gsInvDescX); BULLET_ARMORAIMBONUS_Y = (56 + gsInvDescY); BULLET_ARMORWOODCAMO_X = (268 + gsInvDescX); BULLET_ARMORWOODCAMO_Y = (68 + gsInvDescY); BULLET_ARMORURBANCAMO_X = (268 + gsInvDescX); BULLET_ARMORURBANCAMO_Y = (80 + gsInvDescY); BULLET_ARMORDESERTCAMO_X = (268 + gsInvDescX); BULLET_ARMORDESERTCAMO_Y = (92 + gsInvDescY); BULLET_ARMORSNOWCAMO_X = (268 + gsInvDescX); BULLET_ARMORSNOWCAMO_Y = (104 + gsInvDescY); BULLET_ARMORSTEALTH_X = (268 + gsInvDescX); BULLET_ARMORSTEALTH_Y = (116 + gsInvDescY); BULLET_ARMORVISIONRANGEBONUS_X = (203 + gsInvDescX); BULLET_ARMORVISIONRANGEBONUS_Y = (136 + gsInvDescY); BULLET_ARMORDAYVISIONRANGEBONUS_X = (203 + gsInvDescX); BULLET_ARMORDAYVISIONRANGEBONUS_Y = (148 + gsInvDescY); BULLET_ARMORNIGHTVISIONRANGEBONUS_X = (203 + gsInvDescX); BULLET_ARMORNIGHTVISIONRANGEBONUS_Y = (160 + gsInvDescY); BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_X = (203 + gsInvDescX); BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_Y = (172 + gsInvDescY); BULLET_ARMORCAVEVISIONRANGEBONUS_X = (268 + gsInvDescX); BULLET_ARMORCAVEVISIONRANGEBONUS_Y = (136 + gsInvDescY); BULLET_ARMORPERCENTTUNNELVISION_X = (268 + gsInvDescX); BULLET_ARMORPERCENTTUNNELVISION_Y = (148 + gsInvDescY); BULLET_ARMORHEARINGRANGEBONUS_X = (268 + gsInvDescX); BULLET_ARMORHEARINGRANGEBONUS_Y = (160 + gsInvDescY); // Generic Icon Locations for MISC Item Stats BULLET_COL1ROW1_X = (203 + gsInvDescX); BULLET_COL1ROW1_Y = (44 + gsInvDescY); BULLET_COL1ROW2_X = (203 + gsInvDescX); BULLET_COL1ROW2_Y = (56 + gsInvDescY); BULLET_COL1ROW3_X = (203 + gsInvDescX); BULLET_COL1ROW3_Y = (68 + gsInvDescY); BULLET_COL1ROW4_X = (203 + gsInvDescX); BULLET_COL1ROW4_Y = (80 + gsInvDescY); BULLET_COL1ROW5_X = (203 + gsInvDescX); BULLET_COL1ROW5_Y = (92 + gsInvDescY); BULLET_COL1ROW6_X = (203 + gsInvDescX); BULLET_COL1ROW6_Y = (104 + gsInvDescY); BULLET_COL1ROW7_X = (203 + gsInvDescX); BULLET_COL1ROW7_Y = (116 + gsInvDescY); BULLET_COL1ROW8_X = (203 + gsInvDescX); BULLET_COL1ROW8_Y = (128 + gsInvDescY); BULLET_COL1ROW9_X = (203 + gsInvDescX); BULLET_COL1ROW9_Y = (140 + gsInvDescY); BULLET_COL1ROW10_X = (203 + gsInvDescX); BULLET_COL1ROW10_Y = (152 + gsInvDescY); BULLET_COL1ROW11_X = (203 + gsInvDescX); BULLET_COL1ROW11_Y = (164 + gsInvDescY); BULLET_COL1ROW12_X = (203 + gsInvDescX); BULLET_COL1ROW12_Y = (176 + gsInvDescY); ITEMDESC_CALIBER_X = ( 50 + gsInvDescX); ITEMDESC_CALIBER_Y = ( 78 + gsInvDescY); ITEMDESC_CALIBER_WIDTH = 142; ITEMDESC_NAME_X = ( 16 + gsInvDescX); ITEMDESC_NAME_Y = ( 67 + gsInvDescY); ITEMDESC_ITEM_X = ( 8 + gsInvDescX); ITEMDESC_ITEM_Y = ( 11 + gsInvDescY); ITEMDESC_DESC_START_X = ( 11 + gsInvDescX); ITEMDESC_DESC_START_Y = ( 94 + gsInvDescY); ITEMDESC_PROS_START_X = ( 11 + gsInvDescX ); ITEMDESC_PROS_START_Y = (168 + gsInvDescY); ITEMDESC_CONS_START_X = ( 11 + gsInvDescX ); ITEMDESC_CONS_START_Y = (178 + gsInvDescY); ITEMDESC_DESC_WIDTH = 180; ITEMDESC_ITEM_STATUS_X = ( 6 + gsInvDescX ); ITEMDESC_ITEM_STATUS_Y = ( 60 + gsInvDescY ); ITEMDESC_ITEM_STATUS_HEIGHT = 50; } else if(UsingEDBSystem() == 2) // OIV EDB { // Icon locations, Tactical BULLET_DRAW_X = (341 + gsInvDescX); BULLET_DRAW_Y = (26 + gsInvDescY); BULLET_SING_X = (341 + gsInvDescX); BULLET_SING_Y = (38 + gsInvDescY); BULLET_BURST_X = (341 + gsInvDescX); BULLET_BURST_Y = (50 + gsInvDescY); BULLET_AUTO_X = (341 + gsInvDescX); BULLET_AUTO_Y = (62 + gsInvDescY); BULLET_RELOAD_X = (341 + gsInvDescX); BULLET_RELOAD_Y = (74 + gsInvDescY); BULLET_MRELOAD_X = (341 + gsInvDescX); BULLET_MRELOAD_Y = (86 + gsInvDescY); BULLET_RANGE_X = (274 + gsInvDescX); BULLET_RANGE_Y = (14 + gsInvDescY); BULLET_DAMAGE_X = (274 + gsInvDescX); BULLET_DAMAGE_Y = (26 + gsInvDescY); BULLET_AUTOPEN_X = (274 + gsInvDescX); BULLET_AUTOPEN_Y = (38 + gsInvDescY); BULLET_AUTO5AP_X = (274 + gsInvDescX); BULLET_AUTO5AP_Y = (50 + gsInvDescY); BULLET_ACC_X = (274 + gsInvDescX); BULLET_ACC_Y = (62 + gsInvDescY); BULLET_RELIABILITY_X = (274 + gsInvDescX); BULLET_RELIABILITY_Y = (74 + gsInvDescY); BULLET_REPAIR_X = (274 + gsInvDescX); BULLET_REPAIR_Y = (86 + gsInvDescY); BULLET_FLASH_X = (431 + gsInvDescX); //291 BULLET_FLASH_Y = (14 + gsInvDescY); //136 BULLET_LOUDNESS_X = (408 + gsInvDescX); //268 BULLET_LOUDNESS_Y = (26 + gsInvDescY); //159 BULLET_TOHIT_X = (408 + gsInvDescX); //203 BULLET_TOHIT_Y = (38 + gsInvDescY); //136 BULLET_BESTLASERRANGE_X = (408 + gsInvDescX); //203 BULLET_BESTLASERRANGE_Y = (50 + gsInvDescY); //148 BULLET_AIMBONUS_X = (408 + gsInvDescX); //203 BULLET_AIMBONUS_Y = (62 + gsInvDescY); //160 BULLET_MINRANGEAIMBONUS_X = (408 + gsInvDescX); //203 BULLET_MINRANGEAIMBONUS_Y = (74 + gsInvDescY); //172 BULLET_BIPOD_X = (408 + gsInvDescX); //268 BULLET_BIPOD_Y = (86 + gsInvDescY); //171 // Icon Locations for AMMO stats BULLET_ARMORPEN_X = (274 + gsInvDescX); BULLET_ARMORPEN_Y = (14 + gsInvDescY); BULLET_TUMBLE_X = (274 + gsInvDescX); BULLET_TUMBLE_Y = (26 + gsInvDescY); BULLET_PREARMOR_X = (274 + gsInvDescX); BULLET_PREARMOR_Y = (38 + gsInvDescY); BULLET_TRACER_X = (344 + gsInvDescX); BULLET_TRACER_Y = (14 + gsInvDescY); BULLET_ANTITANK_X = (369 + gsInvDescX); BULLET_ANTITANK_Y = (14 + gsInvDescY); BULLET_LOCKBUSTER_X = (344 + gsInvDescX); BULLET_LOCKBUSTER_Y = (38 + gsInvDescY); BULLET_IGNOREARMOR_X = (369 + gsInvDescX); BULLET_IGNOREARMOR_Y = (38 + gsInvDescY); BULLET_ACIDIC_X = (344 + gsInvDescX); BULLET_ACIDIC_Y = (62 + gsInvDescY); BULLET_AMMORANGEBON_X = (408 + gsInvDescX); BULLET_AMMORANGEBON_Y = (14 + gsInvDescY); BULLET_AMMODAMAGEBON_X = (408 + gsInvDescX); BULLET_AMMODAMAGEBON_Y = (26 + gsInvDescY); BULLET_AMMOTOHITBON_X = (408 + gsInvDescX); BULLET_AMMOTOHITBON_Y = (38 + gsInvDescY); BULLET_AMMOAUTOBON_X = (408 + gsInvDescX); BULLET_AMMOAUTOBON_Y = (50 + gsInvDescY); BULLET_AMMOBURSTBON_X = (408 + gsInvDescX); BULLET_AMMOBURSTBON_Y = (62 + gsInvDescY); BULLET_AMMORELIABILITYBON_X = (408 + gsInvDescX); BULLET_AMMORELIABILITYBON_Y = (74 + gsInvDescY); BULLET_AMMONOISESUPP_X = (408 + gsInvDescX); BULLET_AMMONOISESUPP_Y = (86 + gsInvDescY); // Icon Locations for EXPLOSIVES stats BULLET_EXPLOSIVEDAMAGE_X = (274 + gsInvDescX); BULLET_EXPLOSIVEDAMAGE_Y = (14 + gsInvDescY); BULLET_EXPLOSIVESTUNDAMAGE_X = (274 + gsInvDescX); BULLET_EXPLOSIVESTUNDAMAGE_Y = (26 + gsInvDescY); BULLET_EXPLOSIVELOUDNESS_X = (274 + gsInvDescX); BULLET_EXPLOSIVELOUDNESS_Y = (38 + gsInvDescY); BULLET_EXPLOSIVEVOLATILITY_X = (274 + gsInvDescX); BULLET_EXPLOSIVEVOLATILITY_Y = (50 + gsInvDescY); BULLET_EXPLOSIVERADIUS_X = (359 + gsInvDescX); BULLET_EXPLOSIVERADIUS_Y = (14 + gsInvDescY); BULLET_EXPLOSIVESTARTRADIUS_X = (343 + gsInvDescX); BULLET_EXPLOSIVESTARTRADIUS_Y = (14 + gsInvDescY); BULLET_EXPLOSIVEARROW_X = (362 + gsInvDescX); BULLET_EXPLOSIVEARROW_Y = (20 + gsInvDescY); BULLET_EXPLOSIVEENDRADIUS_X = (378 + gsInvDescX); BULLET_EXPLOSIVEENDRADIUS_Y = (14 + gsInvDescY); BULLET_EXPLOSIVEDURATION_X = (341 + gsInvDescX); BULLET_EXPLOSIVEDURATION_Y = (62 + gsInvDescY); // Icon Locations for ARMOR stats BULLET_ARMOR_X = (274 + gsInvDescX); BULLET_ARMOR_Y = (14 + gsInvDescY); BULLET_ARMORCOVERAGE_X = (274 + gsInvDescX); BULLET_ARMORCOVERAGE_Y = (26 + gsInvDescY); BULLET_ARMORDEGRADE_X = (274 + gsInvDescX); BULLET_ARMORDEGRADE_Y = (38 + gsInvDescY); BULLET_ARMORAPBONUS_X = (341 + gsInvDescX); BULLET_ARMORAPBONUS_Y = (14 + gsInvDescY); BULLET_ARMORAIMBONUS_X = (341 + gsInvDescX); BULLET_ARMORAIMBONUS_Y = (26 + gsInvDescY); BULLET_ARMORWOODCAMO_X = (341 + gsInvDescX); BULLET_ARMORWOODCAMO_Y = (38 + gsInvDescY); BULLET_ARMORURBANCAMO_X = (341 + gsInvDescX); BULLET_ARMORURBANCAMO_Y = (50 + gsInvDescY); BULLET_ARMORDESERTCAMO_X = (341 + gsInvDescX); BULLET_ARMORDESERTCAMO_Y = (62 + gsInvDescY); BULLET_ARMORSNOWCAMO_X = (341 + gsInvDescX); BULLET_ARMORSNOWCAMO_Y = (74 + gsInvDescY); BULLET_ARMORSTEALTH_X = (341 + gsInvDescX); BULLET_ARMORSTEALTH_Y = (86 + gsInvDescY); BULLET_ARMORVISIONRANGEBONUS_X = (408 + gsInvDescX); BULLET_ARMORVISIONRANGEBONUS_Y = (14 + gsInvDescY); BULLET_ARMORDAYVISIONRANGEBONUS_X = (408 + gsInvDescX); BULLET_ARMORDAYVISIONRANGEBONUS_Y = (26 + gsInvDescY); BULLET_ARMORNIGHTVISIONRANGEBONUS_X = (408 + gsInvDescX); BULLET_ARMORNIGHTVISIONRANGEBONUS_Y = (38 + gsInvDescY); BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_X = (408 + gsInvDescX); BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_Y = (50 + gsInvDescY); BULLET_ARMORCAVEVISIONRANGEBONUS_X = (408 + gsInvDescX); BULLET_ARMORCAVEVISIONRANGEBONUS_Y = (68 + gsInvDescY); BULLET_ARMORPERCENTTUNNELVISION_X = (408 + gsInvDescX); BULLET_ARMORPERCENTTUNNELVISION_Y = (72 + gsInvDescY); BULLET_ARMORHEARINGRANGEBONUS_X = (408 + gsInvDescX); BULLET_ARMORHEARINGRANGEBONUS_Y = (86 + gsInvDescY); // Generic Icon Locations for MISC Item Stats BULLET_COL1ROW1_X = (274 + gsInvDescX); BULLET_COL1ROW1_Y = (14 + gsInvDescY); BULLET_COL1ROW2_X = (274 + gsInvDescX); BULLET_COL1ROW2_Y = (26 + gsInvDescY); BULLET_COL1ROW3_X = (274 + gsInvDescX); BULLET_COL1ROW3_Y = (38 + gsInvDescY); BULLET_COL1ROW4_X = (274 + gsInvDescX); BULLET_COL1ROW4_Y = (50 + gsInvDescY); BULLET_COL1ROW5_X = (274 + gsInvDescX); BULLET_COL1ROW5_Y = (62 + gsInvDescY); BULLET_COL1ROW6_X = (274 + gsInvDescX); BULLET_COL1ROW6_Y = (74 + gsInvDescY); BULLET_COL1ROW7_X = (274 + gsInvDescX); BULLET_COL1ROW7_Y = (86 + gsInvDescY); BULLET_COL1ROW8_X = (375 + gsInvDescX); BULLET_COL1ROW8_Y = (14 + gsInvDescY); BULLET_COL1ROW9_X = (375 + gsInvDescX); BULLET_COL1ROW9_Y = (26 + gsInvDescY); BULLET_COL1ROW10_X = (375 + gsInvDescX); BULLET_COL1ROW10_Y = (38 + gsInvDescY); BULLET_COL1ROW11_X = (375 + gsInvDescX); BULLET_COL1ROW11_Y = (50 + gsInvDescY); BULLET_COL1ROW12_X = (375 + gsInvDescX); BULLET_COL1ROW12_Y = (62 + gsInvDescY); ITEMDESC_CALIBER_X = ( 53 + gsInvDescX); // Caliber text moved two lines below item name, and pulled closer ITEMDESC_CALIBER_Y = ( 78 + gsInvDescY); ITEMDESC_CALIBER_WIDTH = 142; ITEMDESC_NAME_X = ( 16 + gsInvDescX); ITEMDESC_NAME_Y = ( 67 + gsInvDescY); ITEMDESC_ITEM_X = ( 8 + gsInvDescX); ITEMDESC_ITEM_Y = ( 11 + gsInvDescY); ITEMDESC_DESC_START_X = (11 + gsInvDescX); // Description text Y moved downwards one line. ITEMDESC_DESC_START_Y = (102 + gsInvDescY); ITEMDESC_PROS_START_X = (438 + gsInvDescX ); // Pros and cons moved to the extreme right of the text box. They ITEMDESC_PROS_START_Y = (106 + gsInvDescY); // now show just the words "PROS" and "CONS", and have a tooltip ITEMDESC_CONS_START_X = (438 + gsInvDescX ); // region over them for expanded text. :D ITEMDESC_CONS_START_Y = (118 + gsInvDescY); ITEMDESC_DESC_WIDTH = 415; // Much wider in OIV tactical than other shapes ITEMDESC_ITEM_STATUS_X = ( 6 + gsInvDescX ); ITEMDESC_ITEM_STATUS_Y = ( 60 + gsInvDescY ); ITEMDESC_ITEM_STATUS_HEIGHT = 50; } else { // Icon locations, TACTICAL BULLET_SING_X = (222 + gsInvDescX); BULLET_SING_Y = (49 + gsInvDescY); BULLET_BURST_X = (263 + gsInvDescX); BULLET_BURST_Y = (49 + gsInvDescY); ITEMDESC_CALIBER_X = (162 + gsInvDescX); // Gun Caliber string location, Tactical ITEMDESC_CALIBER_Y = ( 67 + gsInvDescY); ITEMDESC_CALIBER_WIDTH = 142; ITEMDESC_NAME_X = ( 16 + gsInvDescX); ITEMDESC_NAME_Y = ( 67 + gsInvDescY); ITEMDESC_ITEM_X = ( 8 + gsInvDescX); ITEMDESC_ITEM_Y = ( 11 + gsInvDescY); ITEMDESC_DESC_START_X = (11 + gsInvDescX); // Item Desc Box offset, tactical ITEMDESC_DESC_START_Y = (80 + gsInvDescY); ITEMDESC_PROS_START_X = ( 11 + gsInvDescX ); // Pros, tactical ITEMDESC_PROS_START_Y = (110 + gsInvDescY); ITEMDESC_CONS_START_X = ( 11 + gsInvDescX ); // Cons, Tactical ITEMDESC_CONS_START_Y = (120 + gsInvDescY); ITEMDESC_DESC_WIDTH = 301; // Text box width, Tactical ITEMDESC_ITEM_STATUS_X = ( 6 + gsInvDescX ); ITEMDESC_ITEM_STATUS_Y = ( 60 + gsInvDescY ); ITEMDESC_ITEM_STATUS_HEIGHT = 50; } } } BOOLEAN InternalInitEnhancedDescBox() { VOBJECT_DESC VObjectDesc; if(UsingEDBSystem() > 0) { VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoWeaponIcons.STI" ); CHECKF( AddVideoObject( &VObjectDesc, &guiItemInfoWeaponIcon) ); VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoAmmoIcons.STI" ); CHECKF( AddVideoObject( &VObjectDesc, &guiItemInfoAmmoIcon ) ); VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoExplosiveIcons.STI" ); CHECKF( AddVideoObject( &VObjectDesc, &guiItemInfoExplosiveIcon ) ); VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoArmorIcons.STI" ); CHECKF( AddVideoObject( &VObjectDesc, &guiItemInfoArmorIcon ) ); VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; strcpy( VObjectDesc.ImageFile, "INTERFACE\\ItemInfoMiscIcons.STI" ); CHECKF( AddVideoObject( &VObjectDesc, &guiItemInfoMiscIcon ) ); } return (TRUE); } void InternalInitEDBTooltipRegion( OBJECTTYPE * gpItemDescObject, UINT32 guiCurrentItemDescriptionScreen ) { INT32 cnt; INT32 threshold; InitEDBCoords(); //start by deleting the currently defined regions if they exist for ( cnt = 0; cnt < 20; cnt++ ) { if( gStatsFasthelpRegions[ cnt ].IDNumber != 0 ) MSYS_RemoveRegion( &gStatsFasthelpRegions[ cnt ]); } if( guiCurrentScreen == MAP_SCREEN ) threshold = 13; else threshold = 11; // Strategic EDB if ( guiCurrentItemDescriptionScreen == MAP_SCREEN ) { /////////////////////////////////////////// // Begin Weapon Item Tooltip Regions if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_WEAPON || Item[ gpItemDescObject->usItem ].usItemClass & IC_PUNCH ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gWeaponDescStatsRects[ cnt ].iLeft), (INT16)(gWeaponDescStatsRects[ cnt ].iTop), (INT16)(gWeaponDescStatsRects[ cnt ].iRight), (INT16)(gWeaponDescStatsRects[ cnt ].iBottom), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzWeaponStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // Enable regions one-by-one as necessary // Relevant to all weapons // RELIABILITY MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); // REPAIR EASE MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); ////////////////////////////////// // BEGIN SINGLE ATTACK SEGMENT // Non-Launcher Guns and Grenade-Launchers only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER|IC_PUNCH) && !Item[gpItemDescObject->usItem].rocketlauncher ) { // SINGLE-SHOT AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); if ( Weapon[gpItemDescObject->usItem].NoSemiAuto ) { // "NO SINGLE-SHOT" SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelp[ 23 ] ); } } // Rocket-Launchers Only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER) && Item[gpItemDescObject->usItem].rocketlauncher ) { // SINGLE ROCKET-LAUNCH AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelp[ 21 ] ); } // Throwing-Knives Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_THROWING_KNIFE ) { // THROW KNIFE AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelp[ 20 ] ); } // Blades Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_BLADE ) { // SLASH AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelp[ 22 ] ); } // Blunts Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_PUNCH ) { // SLASH AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelp[ 26 ] ); } // END SINGLE ATTACK SEGMENT //////////////////////////////////// //////////////////////////////////// // BEGIN BURST ATTACK SEGMENT // Non-Launcher Guns and Grenade-Launchers only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[gpItemDescObject->usItem].rocketlauncher ) { // BURST MSYS_EnableRegion( &gStatsFasthelpRegions[ 9 ] ); if (GetShotsPerBurst(gpItemDescObject) <= 0 ) { // "NO BURST" SetRegionFastHelpText( &(gStatsFasthelpRegions[ 9 ]), gzWeaponStatsFasthelp[ 24 ] ); } } // END BURST ATTACK SEGMENT //////////////////////////////////// //////////////////////////////////// // BEGIN AUTO ATTACK SEGMENT // Non-Launcher Guns Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_GUN && !Item[gpItemDescObject->usItem].rocketlauncher ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 10 ] ); if (GetAutofireShotsPerFiveAPs(gpItemDescObject) <= 0 ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ 10 ]), gzWeaponStatsFasthelp[ 25 ] ); } } // END AUTO ATTACK SEGMENT /////////////////////////////////// // Guns, Throwing knives and Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER|IC_THROWING_KNIFE) ) { // RANGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); } // Guns and Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) ) { // ACCURACY MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // Guns and Multi-use Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // RELOAD AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 11 ] ); if ( Weapon[gpItemDescObject->usItem].APsToReloadManually > 0 ) { // RELOAD MANUALLY AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 12 ] ); } } // Guns and Grenade Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER|IC_PUNCH) && !Item[ gpItemDescObject->usItem].rocketlauncher ) { // DRAW AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); } // Non-Launcher Guns, Blades, and Throwing Knives only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_BLADE|IC_PUNCH|IC_THROWING_KNIFE) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // DAMAGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); } // Non-Launcher Guns Only if ( Item[ gpItemDescObject->usItem ].usItemClass == IC_GUN && !Item[ gpItemDescObject->usItem].rocketlauncher ) { if ( GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 || GetShotsPerBurst(gpItemDescObject) > 0 ) { // AUTO/BURST PENALTY TOOLTIP activated MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); if ( GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 && GetShotsPerBurst(gpItemDescObject) <= 0 ) { // Change help text to "Autofire Penalty" (no burst) SetRegionFastHelpText( &(gStatsFasthelpRegions[ 2 ]), gzWeaponStatsFasthelp[ 27 ] ); } if ( GetShotsPerBurst(gpItemDescObject) > 0 && GetAutofireShotsPerFiveAPs(gpItemDescObject) <= 0 ) { // Change help text to "Burst Penalty" (no autofire) SetRegionFastHelpText( &(gStatsFasthelpRegions[ 2 ]), gzWeaponStatsFasthelp[ 28 ] ); } } if ( GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 ) { // AUTOFIRE SHOTS PER 5 AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } } ////////////////////////////////////////////////////////////////////// // Begin non-type-specific icons. These are not type specific because they represent bonuses // which may one day be added to various types of weapons by modders... if (Weapon[ Item[ gpItemDescObject->usItem ].ubClassIndex ].ubAttackVolume > 0 ) { // NOISE REDUCTION MSYS_EnableRegion( &gStatsFasthelpRegions[ 14 ] ); } if (IsFlashSuppressorAlt( gpItemDescObject ) == TRUE) { // HIDE FLASH MSYS_EnableRegion( &gStatsFasthelpRegions[ 13 ] ); } if (GetFlatToHitBonus( gpItemDescObject ) != 0) { // HIT BONUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 15 ] ); if (GetFlatToHitBonus( gpItemDescObject ) > 0 && GetAverageBestLaserRange( gpItemDescObject ) / 10 > 0 ) { // LASER RANGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 16 ] ); } } if (GetBipodBonus( gpItemDescObject ) != 0) { // BIPOD BONUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 19 ] ); } if (IsScoped( gpItemDescObject )) { // SCOPE AIM BONUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 17 ] ); if (GetMinRangeForAimBonus( gpItemDescObject ) > 0) { // LASER RANGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 18 ] ); } } } /////////////////////////////////////////////////// // Begin Ammo Item Tooltip Section else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_AMMO ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gAmmoDescStatsRects[ cnt ]. iLeft), (INT16)(gAmmoDescStatsRects[ cnt ].iTop), (INT16)(gAmmoDescStatsRects[ cnt ].iRight), (INT16)(gAmmoDescStatsRects[ cnt ].iBottom), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzAmmoStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // AMMO PENETRATION MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); // AMMO TUMBLE MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); // AMMO PRE-IMPACT EXPLOSION MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); // TRACER if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].tracerEffect ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } // ANTI-TANK if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].antiTank ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // LOCKBUSTER if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].lockBustingPower ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); } // IGNORE ARMOR if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].ignoreArmour ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); } // ACIDIC ICON if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].acidic ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); } // RANGE BONUS if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); } // DAMAGE BONUS if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 9 ] ); } // TO HIT BONUS if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 10 ] ); } // AUTO BONUS if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 11 ] ); } // BURST BONUS if ( Item[ gpItemDescObject->usItem ].bursttohitbonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 12 ] ); } // RELIABILITY BONUS if ( Item[ gpItemDescObject->usItem ].bReliability != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 13 ] ); } // NOISE SUPPRESSION if ( Item[ gpItemDescObject->usItem ].percentnoisereduction > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 14 ] ); } } /////////////////////////////////////////////////// // Begin Armor Item Tooltip Section else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_ARMOUR ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gArmorDescStatsRects[ cnt ]. iLeft), (INT16)(gArmorDescStatsRects[ cnt ].iTop), (INT16)(gArmorDescStatsRects[ cnt ].iRight), (INT16)(gArmorDescStatsRects[ cnt ].iBottom), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzArmorStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // PROTECTION MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); // COVERAGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); // ARMOR DEGRADE MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); // AP BONUS if ( GetAPBonus ( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } // AIM BONUS if ( GetFlatAimBonus( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // WOODLAND CAMO if ( GetCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); } // URBAN CAMO if ( GetUrbanCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); } // DESERT CAMO if ( GetDesertCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); } // SNOW CAMO if ( GetSnowCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); } // STEALTH if ( GetStealthBonus( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 9 ] ); } // VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 10 ] ); } // DAY VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 1 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 11 ] ); } // NIGHT VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 12 ] ); } // BRIGHT LIGHT VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 13 ] ); } // CAVE VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 14 ] ); } // PERCENT TUNNEL VISION if ( GetItemPercentTunnelVision( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 15 ] ); } // HEARING RANGE BONUS if ( GetItemHearingRangeBonus( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 16 ] ); } } ////////////////////////////////////// // Begin Explosive Item Tooltips Section else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_EXPLOSV ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gExplosiveDescStatsRects[ cnt ]. iLeft), (INT16)(gExplosiveDescStatsRects[ cnt ].iTop), (INT16)(gExplosiveDescStatsRects[ cnt ].iRight), (INT16)(gExplosiveDescStatsRects[ cnt ].iBottom), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzExplosiveStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // DAMAGE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); } // STUN DAMAGE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); } // LOUDNESS MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); // VOLATILITY if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubVolatility > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } // SINGLE-EVENT EXPLOSION data if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration == 0 ) { // RADIUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // PROLONGED EXPLOSION data else if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration > 0 ) { // DURATION MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); // STARTING RADIUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); // FINAL RADIUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); } } ////////////////////////////////////////////////////////// // The following is more complex - it sets up tooltip regions based not on predetermined order but on how much data there is on the chart. // It begins with defining all regions, then goes on to set the helptext of each one based on each value encountered in the item's stats. // At the very end, it enables as many tooltips as values encountered. else { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gMiscItemDescStatsRects[ cnt ]. iLeft), (INT16)(gMiscItemDescStatsRects[ cnt ].iTop), (INT16)(gMiscItemDescStatsRects[ cnt ].iRight), (INT16)(gMiscItemDescStatsRects[ cnt ].iBottom), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } cnt=0; // ITEM SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].itemsizebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 0 ] ); cnt++; } // RELIABILITY MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].bReliability != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 1 ] ); cnt++; } // NOISE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentnoisereduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 2 ] ); cnt++; } // HIDE MUZZLE FLASH ICON if ( Item[ gpItemDescObject->usItem ].hidemuzzleflash > 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 3 ] ); cnt++; } // BIPOD ICON if ( Item[ gpItemDescObject->usItem ].bipod != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 4 ] ); cnt++; } // RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 5 ] ); cnt++; } // TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 6 ] ); cnt++; } // LASER RANGE if ( Item[ gpItemDescObject->usItem ].bestlaserrange > 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 7 ] ); cnt++; } // AIMING MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].aimbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 8 ] ); cnt++; } // MINIMUM RANGE FOR AIMING BONUS ICON if ( Item[ gpItemDescObject->usItem ].minrangeforaimbonus > 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 33 ] ); cnt++; } // MAGAZINE SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].magsizebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 17 ] ); cnt++; } // BURST SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].burstsizebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 9 ] ); cnt++; } // BURST TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].bursttohitbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 10 ] ); cnt++; } // AUTO TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 11 ] ); cnt++; } // AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].APBonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 12 ] ); cnt++; } // BURST AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentburstfireapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 13 ] ); cnt++; } // AUTOFIRE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentautofireapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 14 ] ); cnt++; } // READY AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreadytimeapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 15 ] ); cnt++; } // RELOAD AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreloadtimeapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 16 ] ); cnt++; } // SINGLE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 18 ] ); cnt++; } // DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 19 ] ); cnt++; } // MELEE DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].meleedamagebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 20 ] ); cnt++; } // WOOD CAMO ICON if ( Item[ gpItemDescObject->usItem ].camobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 21 ] ); cnt++; } // URBAN CAMO ICON if ( Item[ gpItemDescObject->usItem ].urbanCamobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 22 ] ); cnt++; } // DESERT CAMO ICON if ( Item[ gpItemDescObject->usItem ].desertCamobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 23 ] ); cnt++; } // SNOW CAMO ICON if ( Item[ gpItemDescObject->usItem ].snowCamobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 24 ] ); cnt++; } // STEALTH MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].stealthbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 25 ] ); cnt++; } // HEARING RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].hearingrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 26 ] ); cnt++; } // VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].visionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 27 ] ); cnt++; } // DAY VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].dayvisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 28 ] ); cnt++; } // NIGHT VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].nightvisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 29 ] ); cnt++; } // BRIGHT LIGHT VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 30 ] ); cnt++; } // CAVE VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].cavevisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 31 ] ); cnt++; } // PERCENT TUNNEL VISION MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percenttunnelvision != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 32 ] ); cnt++; } UINT8 cntval = cnt; // Enable as many regions as required for ( cnt = 0; cntusItem ].usItemClass & IC_WEAPON || Item[ gpItemDescObject->usItem ].usItemClass & IC_PUNCH ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gWeaponDescStatsRects[ cnt ].iLeft + gsInvDescX), (INT16)(gWeaponDescStatsRects[ cnt ].iTop + gsInvDescY), (INT16)(gWeaponDescStatsRects[ cnt ].iRight + gsInvDescX), (INT16)(gWeaponDescStatsRects[ cnt ].iBottom + gsInvDescY), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzWeaponStatsFasthelpTactical[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // Enable regions one-by-one as necessary // Relevant to all weapons // RELIABILITY MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); // REPAIR EASE MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); ////////////////////////////////// // BEGIN SINGLE ATTACK SEGMENT // Non-Launcher Guns and Grenade-Launchers only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER|IC_PUNCH) && !Item[gpItemDescObject->usItem].rocketlauncher ) { // SINGLE-SHOT AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); if ( Weapon[gpItemDescObject->usItem].NoSemiAuto ) { // "NO SINGLE-SHOT" SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelpTactical[ 23 ] ); } } // Rocket-Launchers Only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER) && Item[gpItemDescObject->usItem].rocketlauncher ) { // SINGLE ROCKET-LAUNCH AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelpTactical[ 21 ] ); } // Throwing-Knives Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_THROWING_KNIFE ) { // THROW KNIFE AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelpTactical[ 20 ] ); } // Blades Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_BLADE ) { // SLASH AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelpTactical[ 22 ] ); } // Blunts Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_PUNCH ) { // SLASH AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); SetRegionFastHelpText( &(gStatsFasthelpRegions[ 8 ]), gzWeaponStatsFasthelpTactical[ 26 ] ); } // END SINGLE ATTACK SEGMENT //////////////////////////////////// //////////////////////////////////// // BEGIN BURST ATTACK SEGMENT // Non-Launcher Guns and Grenade-Launchers only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[gpItemDescObject->usItem].rocketlauncher ) { // BURST MSYS_EnableRegion( &gStatsFasthelpRegions[ 9 ] ); if (GetShotsPerBurst(gpItemDescObject) <= 0 ) { // "NO BURST" SetRegionFastHelpText( &(gStatsFasthelpRegions[ 9 ]), gzWeaponStatsFasthelpTactical[ 24 ] ); } } // END BURST ATTACK SEGMENT //////////////////////////////////// //////////////////////////////////// // BEGIN AUTO ATTACK SEGMENT // Non-Launcher Guns Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_GUN && !Item[gpItemDescObject->usItem].rocketlauncher ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 10 ] ); if (GetAutofireShotsPerFiveAPs(gpItemDescObject) <= 0 ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ 10 ]), gzWeaponStatsFasthelpTactical[ 25 ] ); } } // END AUTO ATTACK SEGMENT /////////////////////////////////// // Guns, Throwing knives and Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER|IC_THROWING_KNIFE) ) { // RANGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); } // Guns and Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) ) { // ACCURACY MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // Guns and Multi-use Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // RELOAD AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 11 ] ); if ( Weapon[gpItemDescObject->usItem].APsToReloadManually > 0 ) { // RELOAD MANUALLY AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 12 ] ); } } // Guns and Grenade Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER|IC_PUNCH) && !Item[ gpItemDescObject->usItem].rocketlauncher ) { // DRAW AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); } // Non-Launcher Guns, Blades, and Throwing Knives only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_BLADE|IC_PUNCH|IC_THROWING_KNIFE) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // DAMAGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); } // Non-Launcher Guns Only if ( Item[ gpItemDescObject->usItem ].usItemClass == IC_GUN && !Item[ gpItemDescObject->usItem].rocketlauncher ) { if ( GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 || GetShotsPerBurst(gpItemDescObject) > 0 ) { // AUTO/BURST PENALTY TOOLTIP activated MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); if ( GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 && GetShotsPerBurst(gpItemDescObject) <= 0 ) { // Change help text to "Autofire Penalty" (no burst) SetRegionFastHelpText( &(gStatsFasthelpRegions[ 2 ]), gzWeaponStatsFasthelp[ 27 ] ); } if ( GetShotsPerBurst(gpItemDescObject) > 0 && GetAutofireShotsPerFiveAPs(gpItemDescObject) <= 0 ) { // Change help text to "Burst Penalty" (no autofire) SetRegionFastHelpText( &(gStatsFasthelpRegions[ 2 ]), gzWeaponStatsFasthelp[ 28 ] ); } } if ( GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 ) { // AUTOFIRE SHOTS PER 5 AP MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } } ////////////////////////////////////////////////////////////////////// // Begin non-type-specific icons. These are not type specific because they represent bonuses // which may one day be added to various types of weapons by modders... if (Weapon[ Item[ gpItemDescObject->usItem ].ubClassIndex ].ubAttackVolume > 0 ) { // NOISE REDUCTION MSYS_EnableRegion( &gStatsFasthelpRegions[ 18 ] ); //14 } if (IsFlashSuppressorAlt( gpItemDescObject ) == TRUE) { // HIDE FLASH MSYS_EnableRegion( &gStatsFasthelpRegions[ 17 ] ); //13 } if (GetFlatToHitBonus( gpItemDescObject ) != 0) { // HIT BONUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 13 ] ); //15 if (GetFlatToHitBonus( gpItemDescObject ) > 0 && GetAverageBestLaserRange( gpItemDescObject ) / 10 > 0 ) { // LASER RANGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 14 ] ); //16 } } if (GetBipodBonus( gpItemDescObject ) != 0) { // BIPOD BONUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 19 ] ); } if (IsScoped( gpItemDescObject )) { // SCOPE AIM BONUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 15 ] ); //17 if (GetMinRangeForAimBonus( gpItemDescObject ) / 10 > 0 ) { // LASER RANGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 16 ] ); //18 } } } /////////////////////////////////////////////////// // Begin Ammo Item Tooltip Section else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_AMMO ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gAmmoDescStatsRects[ cnt ]. iLeft + gsInvDescX), (INT16)(gAmmoDescStatsRects[ cnt ].iTop + gsInvDescY), (INT16)(gAmmoDescStatsRects[ cnt ].iRight + gsInvDescX), (INT16)(gAmmoDescStatsRects[ cnt ].iBottom + gsInvDescY), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzAmmoStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // AMMO PENETRATION MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); // AMMO TUMBLE MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); // AMMO PRE-IMPACT EXPLOSION MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); // TRACER if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].tracerEffect ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } // ANTI-TANK if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].antiTank ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // LOCKBUSTER if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].lockBustingPower ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); } // IGNORE ARMOR if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].ignoreArmour ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); } // ACIDIC ICON if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].acidic ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); } // RANGE BONUS if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); } // DAMAGE BONUS if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 9 ] ); } // TO HIT BONUS if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 10 ] ); } // AUTO BONUS if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 11 ] ); } // BURST BONUS if ( Item[ gpItemDescObject->usItem ].bursttohitbonus ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 12 ] ); } // RELIABILITY BONUS if ( Item[ gpItemDescObject->usItem ].bReliability != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 13 ] ); } // NOISE SUPPRESSION if ( Item[ gpItemDescObject->usItem ].percentnoisereduction > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 14 ] ); } } /////////////////////////////////////////////////// // Begin Armor Item Tooltip Section else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_ARMOUR ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gArmorDescStatsRects[ cnt ]. iLeft + gsInvDescX), (INT16)(gArmorDescStatsRects[ cnt ].iTop + gsInvDescY), (INT16)(gArmorDescStatsRects[ cnt ].iRight + gsInvDescX), (INT16)(gArmorDescStatsRects[ cnt ].iBottom + gsInvDescY), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzArmorStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // PROTECTION MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); // COVERAGE MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); // ARMOR DEGRADE MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); // AP BONUS if ( GetAPBonus ( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } // AIM BONUS if ( GetFlatAimBonus( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // WOODLAND CAMO if ( GetCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); } // URBAN CAMO if ( GetUrbanCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); } // DESERT CAMO if ( GetDesertCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); } // SNOW CAMO if ( GetSnowCamoBonus( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 8 ] ); } // STEALTH if ( GetStealthBonus( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 9 ] ); } // VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 10 ] ); } // DAY VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 1 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 11 ] ); } // NIGHT VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 12 ] ); } // BRIGHT LIGHT VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 13 ] ); } // CAVE VISION RANGE BONUS if ( GetItemVisionRangeBonus( gpItemDescObject, 0 ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 14 ] ); } // PERCENT TUNNEL VISION if ( GetItemPercentTunnelVision( gpItemDescObject ) > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 15 ] ); } // HEARING RANGE BONUS if ( GetItemHearingRangeBonus( gpItemDescObject ) != 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 16 ] ); } } ////////////////////////////////////// // Begin Explosive Item Tooltips Section else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_EXPLOSV ) { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gExplosiveDescStatsRects[ cnt ]. iLeft + gsInvDescX), (INT16)(gExplosiveDescStatsRects[ cnt ].iTop + gsInvDescY), (INT16)(gExplosiveDescStatsRects[ cnt ].iRight + gsInvDescX), (INT16)(gExplosiveDescStatsRects[ cnt ].iBottom + gsInvDescY), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzExplosiveStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } // DAMAGE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 0 ] ); } // STUN DAMAGE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 1 ] ); } // LOUDNESS MSYS_EnableRegion( &gStatsFasthelpRegions[ 2 ] ); // VOLATILITY if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubVolatility > 0 ) { MSYS_EnableRegion( &gStatsFasthelpRegions[ 3 ] ); } // SINGLE-EVENT EXPLOSION data if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration == 0 ) { // RADIUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 4 ] ); } // PROLONGED EXPLOSION data else if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration > 0 ) { // DURATION MSYS_EnableRegion( &gStatsFasthelpRegions[ 7 ] ); // STARTING RADIUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 5 ] ); // FINAL RADIUS MSYS_EnableRegion( &gStatsFasthelpRegions[ 6 ] ); } } ////////////////////////////////////////////////////////// // The following is more complex - it sets up tooltip regions based not on predetermined order but on how much data there is on the chart. // It begins with defining all regions, then goes on to set the helptext of each one based on each value encountered in the item's stats. // At the very end, it enables as many tooltips as values encountered. else { // Create all regions for (cnt = 0; cnt < 20; cnt++) { MSYS_DefineRegion( &gStatsFasthelpRegions[ cnt ], (INT16)(gMiscItemDescStatsRects[ cnt ].iLeft + gsInvDescX), (INT16)(gMiscItemDescStatsRects[ cnt ].iTop + gsInvDescY), (INT16)(gMiscItemDescStatsRects[ cnt ].iRight + gsInvDescX), (INT16)(gMiscItemDescStatsRects[ cnt ].iBottom + gsInvDescY), MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, ItemDescCallback ); MSYS_AddRegion( &gStatsFasthelpRegions[ cnt ]); SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ cnt ] ); SetRegionHelpEndCallback( &(gStatsFasthelpRegions[ cnt ]), HelpTextDoneCallback ); MSYS_DisableRegion( &gStatsFasthelpRegions[ cnt ] ); } cnt=0; // ITEM SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].itemsizebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 0 ] ); cnt++; } // RELIABILITY MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].bReliability != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 1 ] ); cnt++; } // NOISE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentnoisereduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 2 ] ); cnt++; } // HIDE MUZZLE FLASH ICON if ( Item[ gpItemDescObject->usItem ].hidemuzzleflash > 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 3 ] ); cnt++; } // BIPOD ICON if ( Item[ gpItemDescObject->usItem ].bipod != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 4 ] ); cnt++; } // RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 5 ] ); cnt++; } // TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 6 ] ); cnt++; } // LASER RANGE if ( Item[ gpItemDescObject->usItem ].bestlaserrange > 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 7 ] ); cnt++; } // AIMING MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].aimbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 8 ] ); cnt++; } // MINIMUM RANGE FOR AIMING BONUS ICON if ( Item[ gpItemDescObject->usItem ].minrangeforaimbonus > 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 33 ] ); cnt++; } // MAGAZINE SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].magsizebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 17 ] ); cnt++; } // BURST SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].burstsizebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 9 ] ); cnt++; } // BURST TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].bursttohitbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 10 ] ); cnt++; } // AUTO TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 11 ] ); cnt++; } // AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].APBonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 12 ] ); cnt++; } // BURST AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentburstfireapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 13 ] ); cnt++; } // AUTOFIRE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentautofireapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 14 ] ); cnt++; } // READY AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreadytimeapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 15 ] ); cnt++; } // RELOAD AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreloadtimeapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 16 ] ); cnt++; } // SINGLE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentapreduction != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 18 ] ); cnt++; } // DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 19 ] ); cnt++; } // MELEE DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].meleedamagebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 20 ] ); cnt++; } // WOOD CAMO ICON if ( Item[ gpItemDescObject->usItem ].camobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 21 ] ); cnt++; } // URBAN CAMO ICON if ( Item[ gpItemDescObject->usItem ].urbanCamobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 22 ] ); cnt++; } // DESERT CAMO ICON if ( Item[ gpItemDescObject->usItem ].desertCamobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 23 ] ); cnt++; } // SNOW CAMO ICON if ( Item[ gpItemDescObject->usItem ].snowCamobonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 24 ] ); cnt++; } // STEALTH MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].stealthbonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 25 ] ); cnt++; } // HEARING RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].hearingrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 26 ] ); cnt++; } // VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].visionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 27 ] ); cnt++; } // DAY VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].dayvisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 28 ] ); cnt++; } // NIGHT VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].nightvisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 29 ] ); cnt++; } // BRIGHT LIGHT VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 30 ] ); cnt++; } // CAVE VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].cavevisionrangebonus != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 31 ] ); cnt++; } // PERCENT TUNNEL VISION MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percenttunnelvision != 0 && cnt<=threshold ) { SetRegionFastHelpText( &(gStatsFasthelpRegions[ cnt ]), gzMiscItemStatsFasthelp[ 32 ] ); cnt++; } UINT8 cntval = cnt; // Enable as many regions as required for ( cnt = 0; cnt 0 ) { UINT16 RegionsToRemove = 20; for (cnt = 0; cnt < RegionsToRemove; cnt++) { MSYS_RemoveRegion( &gStatsFasthelpRegions[cnt] ); } } if ( guiCurrentItemDescriptionScreen !=MAP_SCREEN && UsingEDBSystem() > 0 ) { UINT16 RegionsToRemove = 20; for (cnt = 0; cnt < RegionsToRemove; cnt++) { MSYS_RemoveRegion( &gStatsFasthelpRegions[cnt] ); } } } void DrawWeaponStats( OBJECTTYPE * gpItemDescObject ) { INT32 cnt; if( UsingEDBSystem() == 0 ) return; // Start with icons relevant to all weapons // RELIABILITY ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 9, BULLET_RELIABILITY_X, BULLET_RELIABILITY_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // REPAIR EASE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 10, BULLET_REPAIR_X, BULLET_REPAIR_Y, VO_BLT_SRCTRANSPARENCY, NULL ); ////////////////////////////////// // BEGIN SINGLE ATTACK SEGMENT // Non-Launcher Guns only if ( Item[gpItemDescObject->usItem].usItemClass == IC_GUN && !Item[gpItemDescObject->usItem].rocketlauncher ) { // "NO SINGLE-SHOT" ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 19, BULLET_SING_X, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if ( !Weapon[gpItemDescObject->usItem].NoSemiAuto ) { // SINGLE SHOT AP ICON overwrites shadow BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 0, BULLET_SING_X+1, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } // Rocket-Launchers Only if ( Item[gpItemDescObject->usItem].usItemClass & (IC_GUN|IC_LAUNCHER) && Item[gpItemDescObject->usItem].rocketlauncher ) { // SINGLE ROCKET-LAUNCH AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 21, BULLET_SING_X, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // Grenade-Launchers Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_LAUNCHER && !Item[gpItemDescObject->usItem].rocketlauncher ) { if ( !Weapon[gpItemDescObject->usItem].NoSemiAuto ) { // SINGLE GRENADE-LAUNCH AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 24, BULLET_SING_X, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } // Throwing-Knives Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_THROWING_KNIFE ) { // THROW KNIFE AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 22, BULLET_SING_X, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // Blades Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_BLADE ) { // SLASH AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 20, BULLET_SING_X, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // Blunts Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_PUNCH ) { // BASH AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 26, BULLET_SING_X, BULLET_SING_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // END SINGLE ATTACK SEGMENT //////////////////////////////////// //////////////////////////////////// // BEGIN BURST ATTACK SEGMENT // Non-Launcher Guns Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_GUN && !Item[gpItemDescObject->usItem].rocketlauncher ) { // "NO BURST" ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 11, BULLET_BURST_X, BULLET_BURST_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if (GetShotsPerBurst(gpItemDescObject)> 0) { for ( cnt = 0; cnt < GetShotsPerBurst(gpItemDescObject); cnt++ ) { // BURST FIRE ICON overwrites shadow BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 0, BULLET_BURST_X + cnt * (BULLET_WIDTH/2 + 1) +1, BULLET_BURST_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } } // Grenade-Launchers Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_LAUNCHER && !Item[gpItemDescObject->usItem].rocketlauncher ) { if (GetShotsPerBurst(gpItemDescObject)> 0) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 25, BULLET_BURST_X, BULLET_BURST_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } // END BURST ATTACK SEGMENT //////////////////////////////////// //////////////////////////////////// // BEGIN AUTO ATTACK SEGMENT // Non-Launcher Guns Only if ( Item[gpItemDescObject->usItem].usItemClass == IC_GUN && !Item[gpItemDescObject->usItem].rocketlauncher ) { // "NO-AUTO" ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 12, BULLET_AUTO_X, BULLET_AUTO_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 ) { for ( cnt = 0; cnt < 10; cnt++ ) { // AUTO FIRE ICON overwrites shadow BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 0, BULLET_AUTO_X + cnt * (BULLET_WIDTH/2 + 1) +1, BULLET_AUTO_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } } // END AUTO ATTACK SEGMENT /////////////////////////////////// // Guns, Throwing knives and Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER|IC_THROWING_KNIFE) ) { // RANGE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 4, BULLET_RANGE_X, BULLET_RANGE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // Guns and Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) ) { // ACCURACY ICON (Always displayed for these items, even if accuracy is 0) BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 8, BULLET_ACC_X, BULLET_ACC_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // NOISE REDUCTION ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 17, BULLET_LOUDNESS_X, BULLET_LOUDNESS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // Guns and Multi-use Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // RELOAD AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 2, BULLET_RELOAD_X, BULLET_RELOAD_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if ( Weapon[gpItemDescObject->usItem].APsToReloadManually > 0 ) { // AP to Reload Manually ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 3, BULLET_MRELOAD_X, BULLET_MRELOAD_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } // Guns and Grenade Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[ gpItemDescObject->usItem].rocketlauncher ) { // DRAW AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 1, BULLET_DRAW_X, BULLET_DRAW_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // Non-Launcher Guns, Blades, and Throwing Knives only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_PUNCH|IC_BLADE|IC_THROWING_KNIFE) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // DAMAGE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 5, BULLET_DAMAGE_X, BULLET_DAMAGE_Y-1, VO_BLT_SRCTRANSPARENCY, NULL ); } // Non-Launcher Guns Only if ( Item[ gpItemDescObject->usItem ].usItemClass == IC_GUN && !Item[ gpItemDescObject->usItem].rocketlauncher ) { if (GetShotsPerBurst(gpItemDescObject)> 0 && GetAutofireShotsPerFiveAPs(gpItemDescObject) <= 0 ) // BURST PENALTY ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 30, BULLET_AUTOPEN_X, BULLET_AUTOPEN_Y, VO_BLT_SRCTRANSPARENCY, NULL ); else if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 && GetShotsPerBurst(gpItemDescObject) <= 0) // AUTO PENALTY ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 6, BULLET_AUTOPEN_X, BULLET_AUTOPEN_Y, VO_BLT_SRCTRANSPARENCY, NULL ); else if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 && GetShotsPerBurst(gpItemDescObject) > 0 ) // BURST/AUTO PENALTY ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 29, BULLET_AUTOPEN_X, BULLET_AUTOPEN_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 || GetShotsPerBurst(gpItemDescObject)> 0 ) { if ( Weapon[ gpItemDescObject->usItem ].bAutofireShotsPerFiveAP > 0 ) { // AUTOFIRE SHOTS PER 5 AP ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 7, BULLET_AUTO5AP_X, BULLET_AUTO5AP_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } } ////////////////////////////////////////////////////////////////////// // Begin non-type-specific icons. These are not type specific because they represent bonuses // which may one day be added to various types of weapons by modders... if (IsFlashSuppressorAlt( gpItemDescObject ) == TRUE) { UINT8 icon = 28; if(guiCurrentScreen != MAP_SCREEN && UsingNewInventorySystem() == true) icon = 18; // HIDE FLASH ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, icon, BULLET_FLASH_X, BULLET_FLASH_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } if (GetFlatToHitBonus( gpItemDescObject ) != 0) { // HIT BONUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 13, BULLET_TOHIT_X, BULLET_TOHIT_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if (GetFlatToHitBonus( gpItemDescObject ) > 0 && GetAverageBestLaserRange( gpItemDescObject ) / 10 > 0) { // LASER RANGE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 14, BULLET_BESTLASERRANGE_X, BULLET_BESTLASERRANGE_Y-1, VO_BLT_SRCTRANSPARENCY, NULL ); } } if (GetBipodBonus( gpItemDescObject ) != 0) { // BIPOD BONUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 16, BULLET_BIPOD_X, BULLET_BIPOD_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } if (IsScoped( gpItemDescObject )) { // SCOPE AIM BONUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 15, BULLET_AIMBONUS_X, BULLET_AIMBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if (GetMinRangeForAimBonus( gpItemDescObject )) { // SCOPE MIN RANGE FOR AIM BONUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoWeaponIcon, 27, BULLET_MINRANGEAIMBONUS_X, BULLET_MINRANGEAIMBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } } void DrawAmmoStats( OBJECTTYPE * gpItemDescObject ) { // ARMOR PIERCING ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 0, BULLET_ARMORPEN_X, BULLET_ARMORPEN_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // TUMBLE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 1, BULLET_TUMBLE_X, BULLET_TUMBLE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // PRE-ARMOR EXPLOSION ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 2, BULLET_PREARMOR_X, BULLET_PREARMOR_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // ANTI-TANK ICON if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].antiTank ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 3, BULLET_ANTITANK_X, BULLET_ANTITANK_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // IGNORE ARMOR ICON if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].ignoreArmour ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 4, BULLET_IGNOREARMOR_X, BULLET_IGNOREARMOR_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // ACIDIC ICON if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].acidic ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 5, BULLET_ACIDIC_X, BULLET_ACIDIC_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // LOCKBUSTER ICON if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].lockBustingPower ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 6, BULLET_LOCKBUSTER_X, BULLET_LOCKBUSTER_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // TRACER if ( AmmoTypes[Magazine[Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].tracerEffect ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 7, BULLET_TRACER_X, BULLET_TRACER_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // RANGE BONUS if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 8, BULLET_AMMORANGEBON_X, BULLET_AMMORANGEBON_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // DAMAGE BONUS if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 9, BULLET_AMMODAMAGEBON_X, BULLET_AMMODAMAGEBON_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // TO HIT BONUS if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 11, BULLET_AMMOTOHITBON_X, BULLET_AMMOTOHITBON_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // AUTO PENALTY BONUS if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 10, BULLET_AMMOAUTOBON_X, BULLET_AMMOAUTOBON_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // BURST PENALTY BONUS if ( Item[ gpItemDescObject->usItem ].bursttohitbonus > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 15, BULLET_AMMOBURSTBON_X, BULLET_AMMOBURSTBON_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // RELIABILITY BONUS if ( Item[ gpItemDescObject->usItem ].bReliability != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 12, BULLET_AMMORELIABILITYBON_X, BULLET_AMMORELIABILITYBON_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // NOISE SUPPRESSION if ( Item[ gpItemDescObject->usItem ].percentnoisereduction > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoAmmoIcon, 13, BULLET_AMMONOISESUPP_X, BULLET_AMMONOISESUPP_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } void DrawExplosiveStats( OBJECTTYPE * gpItemDescObject ) { if( UsingEDBSystem() == 0 ) return; // DAMAGE ICON if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 0, BULLET_EXPLOSIVEDAMAGE_X, BULLET_EXPLOSIVEDAMAGE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // STUN DAMAGE ICON if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 1, BULLET_EXPLOSIVESTUNDAMAGE_X, BULLET_EXPLOSIVESTUNDAMAGE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // LOUDNESS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 2, BULLET_EXPLOSIVELOUDNESS_X, BULLET_EXPLOSIVELOUDNESS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // VOLATILITY ICON if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubVolatility > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 3, BULLET_EXPLOSIVEVOLATILITY_X, BULLET_EXPLOSIVEVOLATILITY_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // SINGLE-EVENT EXPLOSION data if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration == 0 ) { // SOUND RADIUS ICON if ( Explosive[Item[ gpItemDescObject->usItem].ubClassIndex ].ubType == 5 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 6, BULLET_EXPLOSIVERADIUS_X, BULLET_EXPLOSIVERADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } else if ( Explosive[Item[ gpItemDescObject->usItem].ubClassIndex ].ubType == 1 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 5, BULLET_EXPLOSIVERADIUS_X, BULLET_EXPLOSIVERADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } else { // RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 4, BULLET_EXPLOSIVERADIUS_X, BULLET_EXPLOSIVERADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } // PROLONGED EXPLOSION data else if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration > 0 ) { // ARROW BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 8, BULLET_EXPLOSIVEARROW_X, BULLET_EXPLOSIVEARROW_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // DURATION ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 7, BULLET_EXPLOSIVEDURATION_X, BULLET_EXPLOSIVEDURATION_Y, VO_BLT_SRCTRANSPARENCY, NULL ); if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubType == 2) { // STARTING RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 9, BULLET_EXPLOSIVESTARTRADIUS_X, BULLET_EXPLOSIVESTARTRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // FINAL RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 10, BULLET_EXPLOSIVEENDRADIUS_X, BULLET_EXPLOSIVEENDRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // MUSTARD GAS if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubType == 3) { // STARTING RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 13, BULLET_EXPLOSIVESTARTRADIUS_X, BULLET_EXPLOSIVESTARTRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // FINAL RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 14, BULLET_EXPLOSIVEENDRADIUS_X, BULLET_EXPLOSIVEENDRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // LIGHT if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubType == 4) { // HEADROCK: Please note that these two are reversed for lights, as for some reason lights start // at larger radius and decay to a smaller one. // STARTING RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 18, BULLET_EXPLOSIVESTARTRADIUS_X, BULLET_EXPLOSIVESTARTRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // FINAL RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 17, BULLET_EXPLOSIVEENDRADIUS_X, BULLET_EXPLOSIVEENDRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // SMOKE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubType == 6) { // STARTING RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 11, BULLET_EXPLOSIVESTARTRADIUS_X, BULLET_EXPLOSIVESTARTRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // FINAL RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 12, BULLET_EXPLOSIVEENDRADIUS_X, BULLET_EXPLOSIVEENDRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // NAPALM if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubType == 8) { // STARTING RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 15, BULLET_EXPLOSIVESTARTRADIUS_X, BULLET_EXPLOSIVESTARTRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // FINAL RADIUS ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoExplosiveIcon, 16, BULLET_EXPLOSIVEENDRADIUS_X, BULLET_EXPLOSIVEENDRADIUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } } void DrawArmorStats( OBJECTTYPE * gpItemDescObject ) { if( UsingEDBSystem() == 0 ) return; // HELMET if ( Armour[ Item[ gpItemDescObject->usItem ].ubClassIndex ].ubArmourClass == 0 ) { // ARMOR VALUE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 1, BULLET_ARMOR_X, BULLET_ARMOR_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // ARMOR COVERAGE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 4, BULLET_ARMORCOVERAGE_X, BULLET_ARMORCOVERAGE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // LEGGINGS else if ( Armour[ Item[ gpItemDescObject->usItem ].ubClassIndex ].ubArmourClass == 2 ) { // ARMOR VALUE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 2, BULLET_ARMOR_X, BULLET_ARMOR_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // ARMOR COVERAGE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 5, BULLET_ARMORCOVERAGE_X, BULLET_ARMORCOVERAGE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // VEST and anything else else { // ARMOR VALUE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 0, BULLET_ARMOR_X, BULLET_ARMOR_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // ARMOR COVERAGE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 3, BULLET_ARMORCOVERAGE_X, BULLET_ARMORCOVERAGE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // ARMOR DEGRADE ICON BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 6, BULLET_ARMORDEGRADE_X, BULLET_ARMORDEGRADE_Y, VO_BLT_SRCTRANSPARENCY, NULL ); // AP BONUS ICON if ( GetAPBonus ( gpItemDescObject ) != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 11, BULLET_ARMORAPBONUS_X, BULLET_ARMORAPBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // AIM BONUS ICON if ( GetFlatAimBonus( gpItemDescObject ) != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 12, BULLET_ARMORAIMBONUS_X, BULLET_ARMORAIMBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // WOODLAND CAMO ICON if ( GetCamoBonus( gpItemDescObject ) > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 7, BULLET_ARMORWOODCAMO_X, BULLET_ARMORWOODCAMO_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // URBAN CAMO ICON if ( GetUrbanCamoBonus( gpItemDescObject ) > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 8, BULLET_ARMORURBANCAMO_X, BULLET_ARMORURBANCAMO_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // DESERT CAMO ICON if ( GetDesertCamoBonus( gpItemDescObject ) > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 9, BULLET_ARMORDESERTCAMO_X, BULLET_ARMORDESERTCAMO_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // SNOW CAMO ICON if ( GetSnowCamoBonus( gpItemDescObject ) > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 10, BULLET_ARMORSNOWCAMO_X, BULLET_ARMORSNOWCAMO_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // STEALTH ICON if ( GetStealthBonus( gpItemDescObject ) != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 18, BULLET_ARMORSTEALTH_X, BULLET_ARMORSTEALTH_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].visionrangebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 17, BULLET_ARMORVISIONRANGEBONUS_X, BULLET_ARMORVISIONRANGEBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // DAY VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].dayvisionrangebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 14, BULLET_ARMORDAYVISIONRANGEBONUS_X, BULLET_ARMORDAYVISIONRANGEBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // NIGHT VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].nightvisionrangebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 13, BULLET_ARMORNIGHTVISIONRANGEBONUS_X, BULLET_ARMORNIGHTVISIONRANGEBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // BRIGHT LIGHT VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 15, BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_X, BULLET_ARMORBRIGHTLIGHTVISIONRANGEBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // CAVE VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].cavevisionrangebonus != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 16, BULLET_ARMORCAVEVISIONRANGEBONUS_X, BULLET_ARMORCAVEVISIONRANGEBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // PERCENT TUNNEL VISION ICON if ( Item[ gpItemDescObject->usItem ].percenttunnelvision > 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 19, BULLET_ARMORPERCENTTUNNELVISION_X, BULLET_ARMORPERCENTTUNNELVISION_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } // HEARING RANGE BONUS ICON if ( GetItemHearingRangeBonus( gpItemDescObject ) != 0 ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoArmorIcon, 20, BULLET_ARMORHEARINGRANGEBONUS_X, BULLET_ARMORHEARINGRANGEBONUS_Y, VO_BLT_SRCTRANSPARENCY, NULL ); } } void DrawMiscStats( OBJECTTYPE * gpItemDescObject ) { INT32 cnt = 0; INT32 threshold; if( guiCurrentScreen == MAP_SCREEN ) threshold = 13; else threshold = 11; if( UsingEDBSystem() == 0 ) return; // ITEM SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].itemsizebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 0, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // RELIABILITY MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].bReliability != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 1, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // NOISE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentnoisereduction != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 2, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // HIDE MUZZLE FLASH ICON if ( Item[ gpItemDescObject->usItem ].hidemuzzleflash > 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 3, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // BIPOD ICON if ( Item[ gpItemDescObject->usItem ].bipod != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 4, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 5, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 6, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // LASER RANGE ICON if ( Item[ gpItemDescObject->usItem ].bestlaserrange > 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 7, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY + 2, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // AIMING MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].aimbonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 8, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // MINIMUM RANGE FOR AIMING ICON if ( Item[ gpItemDescObject->usItem ].minrangeforaimbonus > 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 33, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // MAGAZINE SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].magsizebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 17, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // BURST SIZE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].burstsizebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 9, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // BURST TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].bursttohitbonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 10, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // AUTO TO-HIT MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 11, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].APBonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 12, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // BURST AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentburstfireapreduction != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 13, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // AUTOFIRE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentautofireapreduction != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 14, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // READY AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreadytimeapreduction != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 15, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // RELOAD AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreloadtimeapreduction != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 16, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // SINGLE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentapreduction != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 18, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 19, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // MELEE DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].meleedamagebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 20, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // WOOD CAMO ICON if ( Item[ gpItemDescObject->usItem ].camobonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 21, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // URBAN CAMO ICON if ( Item[ gpItemDescObject->usItem ].urbanCamobonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 22, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // DESERT CAMO ICON if ( Item[ gpItemDescObject->usItem ].desertCamobonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 23, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // SNOW CAMO ICON if ( Item[ gpItemDescObject->usItem ].snowCamobonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 24, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // STEALTH MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].stealthbonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 25, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // HEARING RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].hearingrangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 26, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].visionrangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 27, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // DAY VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].dayvisionrangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 29, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // NIGHT VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].nightvisionrangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 28, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // BRIGHT LIGHT VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 30, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // CAVE VISION RANGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].cavevisionrangebonus != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 31, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } // PERCENT TUNNEL VISION MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percenttunnelvision != 0 && cnt<=threshold ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoMiscIcon, 32, gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, VO_BLT_SRCTRANSPARENCY, NULL ); cnt++; } } void DrawWeaponValues( OBJECTTYPE * gpItemDescObject ) { static CHAR16 pStr[ 100 ]; INT16 usX, usY; INT16 ubAttackAPs; if( UsingEDBSystem() == 0 ) return; // Start with data relevant to all weapons // "AP COSTS" header SetFontForeground( FONT_MCOLOR_WHITE ); mprintf( gWeaponStats[ 9 ].sX + gsInvDescX + 2, gWeaponStats[ 9 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 2 ] ); SetFontForeground( 6 ); // RELIABILITY // equals mprintf( gWeaponStats[ 28 ].sX + gsInvDescX, gWeaponStats[ 28 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // Calculate ammo reliability INT8 iAmmoReliability = 0; if ( Item[ gpItemDescObject->usItem ].usItemClass == IC_GUN && (*gpItemDescObject)[0]->data.gun.ubGunShotsLeft > 0 ) { iAmmoReliability = Item[( *gpItemDescObject )[0]->data.gun.usGunAmmoItem].bReliability; } else { iAmmoReliability = 0; } INT8 iReliabilityValue = iAmmoReliability + Item[ gpItemDescObject->usItem ].bReliability; // Determine color for value print SetFontForeground ( 5 ); if (iReliabilityValue < 0) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iReliabilityValue > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iReliabilityValue > 0 ) { swprintf( pStr, L"%+2d", iReliabilityValue ); } else { swprintf( pStr, L"%2d", iReliabilityValue ); } FindFontRightCoordinates( (INT16)(gWeaponStats[ 7 ].sX + gsInvDescX + gWeaponStats[ 7 ].sValDx), (INT16)(gWeaponStats[ 7 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); // REPAIR EASE // equals mprintf( gWeaponStats[ 29 ].sX + gsInvDescX, gWeaponStats[ 29 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // Determine repair ease INT8 iRepairEaseValue = Item[ gpItemDescObject->usItem ].bRepairEase; // Determine color for value printing SetFontForeground ( 5 ); if (iRepairEaseValue < 0) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iRepairEaseValue > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iRepairEaseValue > 0 ) { swprintf( pStr, L"%+2d", iRepairEaseValue ); } else { swprintf( pStr, L"%2d", iRepairEaseValue ); } FindFontRightCoordinates( (INT16)(gWeaponStats[ 8 ].sX + gsInvDescX + gWeaponStats[ 8 ].sValDx), (INT16)(gWeaponStats[ 8 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); // ShotsPer4Turns -> ubAttackAPs, used later for all shot AP values ubAttackAPs = BaseAPsToShootOrStab( APBPConstants[DEFAULT_APS], APBPConstants[DEFAULT_AIMSKILL], gpItemDescObject ); // SINGLE SHOT AP if ( !Weapon[gpItemDescObject->usItem].NoSemiAuto ) { // equals mprintf( gWeaponStats[ 32 ].sX + gsInvDescX, gWeaponStats[ 32 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // Determine color for printing value if (ubAttackAPs <= EXCEPTIONAL_AP_COST) { SetFontForeground( ITEMDESC_FONTHIGHLIGHT ); } else { SetFontForeground( 5 ); } // print value swprintf( pStr, L"%2d", ubAttackAPs ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 11 ].sX + gsInvDescX + gWeaponStats[ 11 ].sValDx), (INT16)(gWeaponStats[ 11 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } // BURST AP if (GetShotsPerBurst(gpItemDescObject)> 0) { // equals mprintf( gWeaponStats[ 33 ].sX + gsInvDescX, gWeaponStats[ 33 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", ubAttackAPs + CalcAPsToBurst( APBPConstants[DEFAULT_APS], gpItemDescObject ) ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 12 ].sX + gsInvDescX + gWeaponStats[ 12 ].sValDx), (INT16)(gWeaponStats[ 12 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } // AUTO AP if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 ) { // equals mprintf( gWeaponStats[ 34 ].sX + gsInvDescX, gWeaponStats[ 34 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", ubAttackAPs + CalcAPsToAutofire( APBPConstants[DEFAULT_APS], gpItemDescObject, 3 ) ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 13 ].sX + gsInvDescX + gWeaponStats[ 13 ].sValDx), (INT16)(gWeaponStats[ 13 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } // PRINT VALUES FOR SPECIFIC WEAPON TYPES // Guns and Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) ) { // ACCURACY // equals mprintf( gWeaponStats[ 27 ].sX + gsInvDescX, gWeaponStats[ 27 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // Get accuracy value INT8 iAccuracyValue = Weapon[ gpItemDescObject->usItem ].bAccuracy; // Determine color for value printing SetFontForeground( 5 ); if (iAccuracyValue < 0) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAccuracyValue > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAccuracyValue > 0 ) { swprintf( pStr, L"%+2d", iAccuracyValue ); } else { swprintf( pStr, L"%2d", iAccuracyValue ); } FindFontRightCoordinates( (INT16)(gWeaponStats[ 6 ].sX + gsInvDescX + gWeaponStats[ 6 ].sValDx), (INT16)(gWeaponStats[ 6 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); // LOUDNESS // equals mprintf( gWeaponStats[ 38 ].sX + gsInvDescX, gWeaponStats[ 38 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // Get loudness value INT16 iLoudnessValue = GetFinalLoudness( gpItemDescObject ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", iLoudnessValue ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 17 ].sX + gsInvDescX + gWeaponStats[ 17 ].sValDx), (INT16)(gWeaponStats[ 17 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } // Guns and Multi-use Launchers Only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[ gpItemDescObject->usItem ].singleshotrocketlauncher ) { // RELOAD AP // equals mprintf( gWeaponStats[ 35 ].sX + gsInvDescX, gWeaponStats[ 35 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); SetFontForeground( 5 ); swprintf( pStr, L"%2d", Weapon[ gpItemDescObject->usItem ].APsToReload ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 14 ].sX + gsInvDescX + gWeaponStats[ 14 ].sValDx), (INT16)(gWeaponStats[ 14 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); if ( Weapon[gpItemDescObject->usItem].APsToReloadManually > 0 ) { // RELOAD MANUALLY AP // equals mprintf( gWeaponStats[ 36 ].sX + gsInvDescX, gWeaponStats[ 36 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Weapon[gpItemDescObject->usItem].APsToReloadManually ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 15 ].sX + gsInvDescX + gWeaponStats[ 15 ].sValDx), (INT16)(gWeaponStats[ 15 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } } // Guns and Grenade Launchers only if ( Item[ gpItemDescObject->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) && !Item[ gpItemDescObject->usItem].rocketlauncher ) { // DRAW AP // equals mprintf( gWeaponStats[ 31 ].sX + gsInvDescX, gWeaponStats[ 31 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // calculate Draw AP INT16 iDrawAP = 0; iDrawAP = (Weapon[ gpItemDescObject->usItem ].ubReadyTime * (100 - GetPercentReadyTimeAPReduction(gpItemDescObject)) / 100); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", iDrawAP ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 10 ].sX + gsInvDescX + gWeaponStats[ 10 ].sValDx), (INT16)(gWeaponStats[ 10 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } // Non-Launcher Guns Only if ( Item[ gpItemDescObject->usItem ].usItemClass == IC_GUN && !Item[ gpItemDescObject->usItem].rocketlauncher ) { if ( GetShotsPerBurst(gpItemDescObject)> 0 && ! GetAutofireShotsPerFiveAPs(gpItemDescObject) ) { // BURST PENALTY // equals mprintf( gWeaponStats[ 25 ].sX + gsInvDescX, gWeaponStats[ 25 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", GetBurstPenalty( gpItemDescObject, FALSE ) ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 4 ].sX + gsInvDescX + gWeaponStats[ 4 ].sValDx), (INT16)(gWeaponStats[ 4 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } // Note "else if" here to avoid displaying both types of penalties... else if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 ) { // AUTO PENALTY // equals mprintf( gWeaponStats[ 25 ].sX + gsInvDescX, gWeaponStats[ 25 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%d", GetAutoPenalty( gpItemDescObject, FALSE ) ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 4 ].sX + gsInvDescX + gWeaponStats[ 4 ].sValDx), (INT16)(gWeaponStats[ 4 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); // Add BurstPenalty if necessary if (GetShotsPerBurst(gpItemDescObject)> 0 ) { // Colored white and placed in front of the auto penalty. static CHAR16 pStr2[ 100 ]; SetFontForeground( FONT_WHITE ); swprintf(pStr2, L"%d/", GetBurstPenalty( gpItemDescObject, FALSE ) ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 4 ].sX + gsInvDescX + gWeaponStats[ 4 ].sValDx) - StringPixLength(pStr,BLOCKFONT2), (INT16)(gWeaponStats[ 4 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr2, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr2 ); SetFontForeground( 6 ); } } // Note "if" here to display this regardless of BURST PENALTY if (GetAutofireShotsPerFiveAPs(gpItemDescObject) > 0 ) { // AUTOFIRE SHOTS PER 5 AP // equals mprintf( gWeaponStats[ 26 ].sX + gsInvDescX, gWeaponStats[ 26 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", GetAutofireShotsPerFiveAPs( gpItemDescObject ) ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 5 ].sX + gsInvDescX + gWeaponStats[ 5 ].sValDx), (INT16)(gWeaponStats[ 5 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } } ////////////////////////////////////////////////////////////////////// // Begin non-weapontype-specific data. These are not type specific because they represent bonuses // which may one day be added to various types of weapons by modders... if (GetFlatToHitBonus( gpItemDescObject ) != 0) { // HIT BONUS // equals mprintf( gWeaponStats[ 39 ].sX + gsInvDescX, gWeaponStats[ 39 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // Determine Color for Value Printing SetFontForeground( 5 ); if (GetFlatToHitBonus ( gpItemDescObject ) < 0) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if (GetFlatToHitBonus ( gpItemDescObject ) > 0) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // Print Value if ( GetFlatToHitBonus ( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d", GetFlatToHitBonus ( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d", GetFlatToHitBonus ( gpItemDescObject ) ); } FindFontRightCoordinates( (INT16)(gWeaponStats[ 18 ].sX + gsInvDescX + gWeaponStats[ 18 ].sValDx), (INT16)(gWeaponStats[ 18 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); if (GetFlatToHitBonus( gpItemDescObject ) > 0 && GetAverageBestLaserRange( gpItemDescObject ) / 10 > 0 ) { // LASER RANGE // equals mprintf( gWeaponStats[ 40 ].sX + gsInvDescX, gWeaponStats[ 40 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", GetAverageBestLaserRange( gpItemDescObject ) / 10 ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 19 ].sX + gsInvDescX + gWeaponStats[ 19 ].sValDx), (INT16)(gWeaponStats[ 19 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } } if (GetBipodBonus( gpItemDescObject ) != 0) { // BIPOD BONUS // equals mprintf( gWeaponStats[ 43 ].sX + gsInvDescX, gWeaponStats[ 43 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if (GetBipodBonus( gpItemDescObject ) < 0) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if (GetBipodBonus( gpItemDescObject ) > 0) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } if ( GetBipodBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d", GetBipodBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d", GetBipodBonus( gpItemDescObject ) ); } FindFontRightCoordinates( (INT16)(gWeaponStats[ 22 ].sX + gsInvDescX + gWeaponStats[ 22 ].sValDx), (INT16)(gWeaponStats[ 22 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } if (IsScoped( gpItemDescObject )) { // SCOPE AIM BONUS // equals mprintf( gWeaponStats[ 41 ].sX + gsInvDescX, gWeaponStats[ 41 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if (GetFlatAimBonus( gpItemDescObject ) < 0) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if (GetFlatAimBonus( gpItemDescObject ) > 0) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } if ( GetFlatAimBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d", GetFlatAimBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d", GetFlatAimBonus( gpItemDescObject ) ); } FindFontRightCoordinates( (INT16)(gWeaponStats[ 20 ].sX + gsInvDescX + gWeaponStats[ 20 ].sValDx), (INT16)(gWeaponStats[ 20 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); if (GetMinRangeForAimBonus(gpItemDescObject) > 0) { // SCOPE MINIMUM RANGE FOR AIM BONUS // equals mprintf( gWeaponStats[ 42 ].sX + gsInvDescX, gWeaponStats[ 42 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", GetMinRangeForAimBonus( gpItemDescObject )/10 ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 21 ].sX + gsInvDescX + gWeaponStats[ 21 ].sValDx), (INT16)(gWeaponStats[ 21 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &usX, &usY); mprintf( usX, usY, pStr ); SetFontForeground( 6 ); } } } void DrawAmmoValues( OBJECTTYPE * gpItemDescObject, int shotsLeft ) { static CHAR16 pStr[ 100 ]; INT16 usY; INT16 sStrX; UINT16 uiStringLength; if( UsingEDBSystem() == 0 ) return; // AMMO AMOUNT // label SetFontForeground( 6 ); mprintf( gWeaponStats[ 0 ].sX + gsInvDescX, gWeaponStats[ 0 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 16 ] ); // data SetFontForeground( 5 ); swprintf( pStr, L"%d/%d", shotsLeft, Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex ].ubMagSize ); //Pulmu: Correct # of rounds for stacked ammo. uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 0 ].sX + gsInvDescX + gWeaponStats[ 0 ].sValDx+6), (INT16)(gWeaponStats[ 0 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); if (UsingEDBSystem() == 2) mprintf( sStrX - 6, gWeaponStats[ 0 ].sY + gsInvDescY + 12, pStr ); else mprintf( sStrX, gWeaponStats[ 0 ].sY + gsInvDescY, pStr ); // AMMO PENETRATION // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 23 ].sX + gsInvDescX -5, gWeaponStats[ 23 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value FLOAT fArmourImpactReduction = 0.0; fArmourImpactReduction = (FLOAT) AmmoTypes[Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].armourImpactReductionMultiplier / (FLOAT) AmmoTypes[Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].armourImpactReductionDivisor; // determine value print color SetFontForeground( 5 ); if ( fArmourImpactReduction > 1.0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( fArmourImpactReduction < 1.0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value swprintf( pStr, L"%1.2f", fArmourImpactReduction ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 2 ].sX + gsInvDescX + gWeaponStats[ 2 ].sValDx), (INT16)(gWeaponStats[ 2 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 2 ].sY + gsInvDescY, pStr ); // AMMO TUMBLE // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 24 ].sX + gsInvDescX -5, gWeaponStats[ 24 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value FLOAT fAfterArmourImpactReduction = 0.0; fAfterArmourImpactReduction = (FLOAT) AmmoTypes[Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].afterArmourDamageMultiplier / (FLOAT) AmmoTypes[Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].afterArmourDamageDivisor; // determine value print color SetFontForeground( 5 ); if ( fAfterArmourImpactReduction < 1.0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( fAfterArmourImpactReduction > 1.0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value swprintf( pStr, L"%1.2f", fAfterArmourImpactReduction ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 3 ].sX + gsInvDescX + gWeaponStats[ 3 ].sValDx), (INT16)(gWeaponStats[ 3 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 3 ].sY + gsInvDescY, pStr ); // AMMO PRE-ARMOR EXPLOSION // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 25 ].sX + gsInvDescX -5, gWeaponStats[ 25 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value FLOAT fBeforeArmourImpactReduction = 0.0; fBeforeArmourImpactReduction = (FLOAT) AmmoTypes[Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].beforeArmourDamageMultiplier / (FLOAT) AmmoTypes[Magazine[ Item[ gpItemDescObject->usItem ].ubClassIndex].ubAmmoType].beforeArmourDamageDivisor; // determine value print color SetFontForeground( 5 ); if ( fBeforeArmourImpactReduction < 1.0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( fBeforeArmourImpactReduction > 1.0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value swprintf( pStr, L"%1.2f", fBeforeArmourImpactReduction ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 4 ].sX + gsInvDescX + gWeaponStats[ 4 ].sValDx), (INT16)(gWeaponStats[ 4 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 4 ].sY + gsInvDescY, pStr ); if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 ) { // AMMO RANGE BONUS // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 37 ].sX + gsInvDescX, gWeaponStats[ 37 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iRangeBonus = 0; iRangeBonus = Item[ gpItemDescObject->usItem ].rangebonus; // determine value print color SetFontForeground( 5 ); if ( iRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 16 ].sX + gsInvDescX + gWeaponStats[ 16 ].sValDx), (INT16)(gWeaponStats[ 16 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 16 ].sY + gsInvDescY, pStr ); } if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 ) { // AMMO DAMAGE BONUS // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 38 ].sX + gsInvDescX, gWeaponStats[ 38 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iDamageBonus = 0; iDamageBonus = Item[ gpItemDescObject->usItem ].damagebonus; // determine value print color SetFontForeground( 5 ); if ( iDamageBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iDamageBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iDamageBonus > 0 ) { swprintf( pStr, L"%+2d", iDamageBonus / 10 ); } else { swprintf( pStr, L"%2d", iDamageBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 17 ].sX + gsInvDescX + gWeaponStats[ 17 ].sValDx), (INT16)(gWeaponStats[ 17 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 17 ].sY + gsInvDescY, pStr ); } if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 ) { // AMMO TO-HIT BONUS // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 39 ].sX + gsInvDescX, gWeaponStats[ 39 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iToHitBonus = 0; iToHitBonus = Item[ gpItemDescObject->usItem ].tohitbonus; // determine value print color SetFontForeground( 5 ); if ( iToHitBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iToHitBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iToHitBonus > 0 ) { swprintf( pStr, L"%+2d", iToHitBonus ); } else { swprintf( pStr, L"%2d", iToHitBonus ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 18 ].sX + gsInvDescX + gWeaponStats[ 18 ].sValDx), (INT16)(gWeaponStats[ 18 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 18 ].sY + gsInvDescY, pStr ); } if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus ) { // AUTO PENALTY MODIFIER // equals mprintf( gWeaponStats[ 40 ].sX + gsInvDescX, gWeaponStats[ 40 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); SetFontForeground( 6 ); // determine value INT16 iAutoBonus = 0; iAutoBonus = Item[ gpItemDescObject->usItem ].autofiretohitbonus; // determine value print color SetFontForeground( 5 ); if ( iAutoBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAutoBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAutoBonus > 0 ) { swprintf( pStr, L"%+2d", iAutoBonus ); } else { swprintf( pStr, L"%2d", iAutoBonus ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 19 ].sX + gsInvDescX + gWeaponStats[ 19 ].sValDx), (INT16)(gWeaponStats[ 19 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 19 ].sY + gsInvDescY, pStr ); } if ( Item[ gpItemDescObject->usItem ].bursttohitbonus ) { // BURST PENALTY MODIFIER // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 41 ].sX + gsInvDescX, gWeaponStats[ 41 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iBurstBonus = 0; iBurstBonus = Item[ gpItemDescObject->usItem ].bursttohitbonus; // determine value print color SetFontForeground( 5 ); if ( iBurstBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iBurstBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iBurstBonus > 0 ) { swprintf( pStr, L"%+2d", iBurstBonus ); } else { swprintf( pStr, L"%2d", iBurstBonus ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 20 ].sX + gsInvDescX + gWeaponStats[ 20 ].sValDx), (INT16)(gWeaponStats[ 20 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 20 ].sY + gsInvDescY, pStr ); } if ( Item[ gpItemDescObject->usItem ].bReliability != 0 ) { // AMMO RELIABILITY BONUS // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 42 ].sX + gsInvDescX, gWeaponStats[ 42 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iReliabilityBonus = 0; iReliabilityBonus = Item[ gpItemDescObject->usItem ].bReliability; // determine value print color SetFontForeground( 5 ); if ( iReliabilityBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iReliabilityBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iReliabilityBonus > 0 ) { swprintf( pStr, L"%+2d", iReliabilityBonus ); } else { swprintf( pStr, L"%2d", iReliabilityBonus ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 21 ].sX + gsInvDescX + gWeaponStats[ 21 ].sValDx), (INT16)(gWeaponStats[ 21 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 21 ].sY + gsInvDescY, pStr ); } if ( Item[ gpItemDescObject->usItem ].percentnoisereduction > 0 ) { // AMMO NOISE SUPPRESSION // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 43 ].sX + gsInvDescX, gWeaponStats[ 43 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iNoiseSuppression = 0; iNoiseSuppression = Item[ gpItemDescObject->usItem ].percentnoisereduction * -1; SetFontForeground( 5 ); if ( iNoiseSuppression > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iNoiseSuppression < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iNoiseSuppression > 0 ) { swprintf( pStr, L"%+2d%%", iNoiseSuppression ); } else { swprintf( pStr, L"%2d%%", iNoiseSuppression ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 22 ].sX + gsInvDescX + gWeaponStats[ 22 ].sValDx), (INT16)(gWeaponStats[ 22 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 22 ].sY + gsInvDescY, pStr ); } } void DrawExplosiveValues( OBJECTTYPE * gpItemDescObject ) { static CHAR16 pStr[ 100 ]; INT16 usY; INT16 sStrX; UINT16 uiStringLength; if( UsingEDBSystem() == 0 ) return; // DAMAGE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage > 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 23 ].sX + gsInvDescX, gWeaponStats[ 23 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage + ( (Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage * gGameExternalOptions.ubExplosivesDamageMultiplier ) / 100 )); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 2 ].sX + gsInvDescX + gWeaponStats[ 2 ].sValDx), (INT16)(gWeaponStats[ 2 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 2 ].sY + gsInvDescY, pStr ); } // STUN DAMAGE if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage > 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 24 ].sX + gsInvDescX, gWeaponStats[ 24 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage + ( (Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage * gGameExternalOptions.ubExplosivesDamageMultiplier ) / 100 )); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 3 ].sX + gsInvDescX + gWeaponStats[ 3 ].sValDx), (INT16)(gWeaponStats[ 3 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 3 ].sY + gsInvDescY, pStr ); } // LOUDNESS // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 25 ].sX + gsInvDescX, gWeaponStats[ 25 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubVolume ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 4 ].sX + gsInvDescX + gWeaponStats[ 4 ].sValDx), (INT16)(gWeaponStats[ 4 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 4 ].sY + gsInvDescY, pStr ); // VOLATILITY if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubVolatility > 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 26 ].sX + gsInvDescX, gWeaponStats[ 26 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubVolatility ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 5 ].sX + gsInvDescX + gWeaponStats[ 5 ].sValDx), (INT16)(gWeaponStats[ 5 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 5 ].sY + gsInvDescY, pStr ); } // SINGLE-EVENT EXPLOSION data if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration == 0 ) { // BLAST RADIUS // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 24 ].sX + gsInvDescX, gWeaponStats[ 24 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%d", 1 + ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubRadius * 2 ) ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontCenterCoordinates( (INT16)(gWeaponStats[ 45 ].sX + gsInvDescX), (INT16)(gWeaponStats[ 45 ].sY + gsInvDescY ), 12 ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 45 ].sY + gsInvDescY, pStr ); } // PROLONGED EXPLOSION data else if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration > 0 ) { // DURATION // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 34 ].sX + gsInvDescX, gWeaponStats[ 34 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDuration ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 13 ].sX + gsInvDescX + gWeaponStats[ 13 ].sValDx), (INT16)(gWeaponStats[ 13 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 13 ].sY + gsInvDescY, pStr ); // Headrock: this integer contains the number of the array item that contains the location // in which to display each radius value. If the explosive is a light, the values are displayed // in reverse locations. INT16 isLightLocation = 0; if ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubType == 4 ) { isLightLocation = 2; } // STARTING RADIUS // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 33 ].sX + gsInvDescX, gWeaponStats[ 33 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%d", 1 + ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStartRadius * 2) ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontCenterCoordinates( (INT16)(gWeaponStats[ 44+isLightLocation ].sX + gsInvDescX), (INT16)(gWeaponStats[ 44+isLightLocation ].sY + gsInvDescY ), 12 ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 44+isLightLocation ].sY + gsInvDescY, pStr ); // FINAL RADIUS // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 33 ].sX + gsInvDescX, gWeaponStats[ 33 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%d", 1 + ( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubRadius * 2) ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontCenterCoordinates( (INT16)(gWeaponStats[ 46-isLightLocation ].sX + gsInvDescX), (INT16)(gWeaponStats[ 46-isLightLocation ].sY + gsInvDescY ), 12 ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 46-isLightLocation ].sY + gsInvDescY, pStr ); } } void DrawArmorValues( OBJECTTYPE * gpItemDescObject ) { static CHAR16 pStr[ 100 ]; INT16 usY; INT16 sStrX; UINT16 uiStringLength; if( UsingEDBSystem() == 0 ) return; // ARMOR VALUE // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 23 ].sX + gsInvDescX, gWeaponStats[ 23 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); // Calculate Value including attachments UINT16 iProtection = 0; iProtection = Armour[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubProtection; for (attachmentList::iterator iter = (*gpItemDescObject)[0]->attachments.begin(); iter != (*gpItemDescObject)[0]->attachments.end(); ++iter) { if (Item[ iter->usItem ].usItemClass == IC_ARMOUR) { iProtection += Armour[Item[iter->usItem].ubClassIndex].ubProtection; } } swprintf( pStr, L"%2d", iProtection ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 2 ].sX + gsInvDescX + gWeaponStats[ 2 ].sValDx), (INT16)(gWeaponStats[ 2 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); //wcscat( pStr, L"%%" ); mprintf( sStrX, gWeaponStats[ 2 ].sY + gsInvDescY, pStr ); // ARMOR COVERAGE // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 23 ].sX + gsInvDescX, gWeaponStats[ 23 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d%%", Armour[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubCoverage ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 3 ].sX + gsInvDescX + gWeaponStats[ 3 ].sValDx), (INT16)(gWeaponStats[ 3 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 3 ].sY + gsInvDescY, pStr ); // ARMOR DEGRADE // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 25 ].sX + gsInvDescX, gWeaponStats[ 25 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d", Armour[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDegradePercent ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 4 ].sX + gsInvDescX + gWeaponStats[ 4 ].sValDx), (INT16)(gWeaponStats[ 4 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 4 ].sY + gsInvDescY, pStr ); // AP BONUS if ( GetAPBonus ( gpItemDescObject ) != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 30 ].sX + gsInvDescX, gWeaponStats[ 30 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iAPBonus = 0; iAPBonus = GetAPBonus( gpItemDescObject ); // determine value print color SetFontForeground( 5 ); if ( iAPBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAPBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAPBonus > 0 ) { swprintf( pStr, L"%+2d", iAPBonus ); } else { swprintf( pStr, L"%2d", iAPBonus ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 9 ].sX + gsInvDescX + gWeaponStats[ 9 ].sValDx), (INT16)(gWeaponStats[ 9 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 9 ].sY + gsInvDescY, pStr ); } // AIM BONUS if ( GetFlatAimBonus( gpItemDescObject ) != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 31 ].sX + gsInvDescX, gWeaponStats[ 31 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iAimBonus = 0; iAimBonus = GetFlatAimBonus( gpItemDescObject ); // determine value print color SetFontForeground( 5 ); if ( iAimBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAimBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAimBonus > 0 ) { swprintf( pStr, L"%+2d", iAimBonus ); } else { swprintf( pStr, L"%2d", iAimBonus ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 10 ].sX + gsInvDescX + gWeaponStats[ 10 ].sValDx), (INT16)(gWeaponStats[ 10 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 10 ].sY + gsInvDescY, pStr ); } // WOODLAND CAMO if ( GetCamoBonus( gpItemDescObject ) > 0 ) { // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 31 ].sX + gsInvDescX, gWeaponStats[ 31 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if ( GetCamoBonus( gpItemDescObject ) < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( GetCamoBonus( gpItemDescObject ) > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( GetCamoBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d%%", GetCamoBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d%%", GetCamoBonus( gpItemDescObject ) ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 11 ].sX + gsInvDescX + gWeaponStats[ 11 ].sValDx), (INT16)(gWeaponStats[ 11 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 11 ].sY + gsInvDescY, pStr ); } // URBAN CAMO if ( GetUrbanCamoBonus( gpItemDescObject ) > 0 ) { // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 32 ].sX + gsInvDescX, gWeaponStats[ 32 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if ( GetUrbanCamoBonus( gpItemDescObject ) < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( GetUrbanCamoBonus( gpItemDescObject ) > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( GetUrbanCamoBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d%%", GetUrbanCamoBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d%%", GetUrbanCamoBonus( gpItemDescObject ) ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 12 ].sX + gsInvDescX + gWeaponStats[ 12 ].sValDx), (INT16)(gWeaponStats[ 12 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 12 ].sY + gsInvDescY, pStr ); } // DESERT CAMO if ( GetDesertCamoBonus( gpItemDescObject ) > 0 ) { // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 34 ].sX + gsInvDescX, gWeaponStats[ 34 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if ( GetDesertCamoBonus( gpItemDescObject ) < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( GetDesertCamoBonus( gpItemDescObject ) > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( GetDesertCamoBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d%%", GetDesertCamoBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d%%", GetDesertCamoBonus( gpItemDescObject ) ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 13 ].sX + gsInvDescX + gWeaponStats[ 13 ].sValDx), (INT16)(gWeaponStats[ 13 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 13 ].sY + gsInvDescY, pStr ); } // SNOW CAMO if ( GetSnowCamoBonus( gpItemDescObject ) > 0 ) { // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 35 ].sX + gsInvDescX, gWeaponStats[ 35 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if ( GetSnowCamoBonus( gpItemDescObject ) < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( GetSnowCamoBonus( gpItemDescObject ) > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( GetSnowCamoBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d%%", GetSnowCamoBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d%%", GetSnowCamoBonus( gpItemDescObject ) ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 14 ].sX + gsInvDescX + gWeaponStats[ 14 ].sValDx), (INT16)(gWeaponStats[ 14 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 14 ].sY + gsInvDescY, pStr ); } // STEALTH if ( GetBasicStealthBonus( gpItemDescObject ) != 0 ) { // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 35 ].sX + gsInvDescX, gWeaponStats[ 35 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); if ( GetBasicStealthBonus( gpItemDescObject ) < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( GetBasicStealthBonus( gpItemDescObject ) > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( GetBasicStealthBonus( gpItemDescObject ) > 0 ) { swprintf( pStr, L"%+2d%%", GetBasicStealthBonus( gpItemDescObject ) ); } else { swprintf( pStr, L"%2d%%", GetBasicStealthBonus( gpItemDescObject ) ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 15 ].sX + gsInvDescX + gWeaponStats[ 15 ].sValDx), (INT16)(gWeaponStats[ 15 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 15 ].sY + gsInvDescY, pStr ); } // VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].visionrangebonus != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 37 ].sX + gsInvDescX, gWeaponStats[ 37 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iVisionRangeBonus = 0; iVisionRangeBonus = Item[ gpItemDescObject->usItem ].visionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iVisionRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iVisionRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iVisionRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iVisionRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iVisionRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 16 ].sX + gsInvDescX + gWeaponStats[ 16 ].sValDx), (INT16)(gWeaponStats[ 16 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 16 ].sY + gsInvDescY, pStr ); } // DAY VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].dayvisionrangebonus != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 38 ].sX + gsInvDescX, gWeaponStats[ 38 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iVisionRangeBonus = 0; iVisionRangeBonus = Item[ gpItemDescObject->usItem ].dayvisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iVisionRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iVisionRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iVisionRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iVisionRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iVisionRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 17 ].sX + gsInvDescX + gWeaponStats[ 17 ].sValDx), (INT16)(gWeaponStats[ 17 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 17 ].sY + gsInvDescY, pStr ); } // NIGHT VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].nightvisionrangebonus != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 39 ].sX + gsInvDescX, gWeaponStats[ 39 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iVisionRangeBonus = 0; iVisionRangeBonus = Item[ gpItemDescObject->usItem ].nightvisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iVisionRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iVisionRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iVisionRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iVisionRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iVisionRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 18 ].sX + gsInvDescX + gWeaponStats[ 18 ].sValDx), (INT16)(gWeaponStats[ 18 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 18 ].sY + gsInvDescY, pStr ); } // BRIGHT LIGHT VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 40 ].sX + gsInvDescX, gWeaponStats[ 40 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iVisionRangeBonus = 0; iVisionRangeBonus = Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iVisionRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iVisionRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iVisionRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iVisionRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iVisionRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 19 ].sX + gsInvDescX + gWeaponStats[ 19 ].sValDx), (INT16)(gWeaponStats[ 19 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 19 ].sY + gsInvDescY, pStr ); } // CAVE VISION RANGE BONUS ICON if ( Item[ gpItemDescObject->usItem ].cavevisionrangebonus != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 41 ].sX + gsInvDescX, gWeaponStats[ 41 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iVisionRangeBonus = 0; iVisionRangeBonus = Item[ gpItemDescObject->usItem ].cavevisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iVisionRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iVisionRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iVisionRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iVisionRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iVisionRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 20 ].sX + gsInvDescX + gWeaponStats[ 20 ].sValDx), (INT16)(gWeaponStats[ 20 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 20 ].sY + gsInvDescY, pStr ); } // PERCENT TUNNEL VISION ICON if ( Item[ gpItemDescObject->usItem ].percenttunnelvision > 0 ) { // equals SetFontForeground( 6 ); //mprintf( gWeaponStats[ 34 ].sX + gsInvDescX, gWeaponStats[ 34 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // print value SetFontForeground( 5 ); swprintf( pStr, L"%2d%%", Item[ gpItemDescObject->usItem ].percenttunnelvision ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 21 ].sX + gsInvDescX + gWeaponStats[ 21 ].sValDx), (INT16)(gWeaponStats[ 21 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gWeaponStats[ 21 ].sY + gsInvDescY, pStr ); } // HEARING RANGE BONUS ICON if ( GetItemHearingRangeBonus( gpItemDescObject ) != 0 ) { // equals SetFontForeground( 6 ); mprintf( gWeaponStats[ 42 ].sX + gsInvDescX, gWeaponStats[ 42 ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iHearingRangeBonus = 0; iHearingRangeBonus = GetItemHearingRangeBonus( gpItemDescObject ); // determine value print color SetFontForeground( 5 ); if ( iHearingRangeBonus < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iHearingRangeBonus > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iHearingRangeBonus > 0 ) { swprintf( pStr, L"%+2d", iHearingRangeBonus / 10 ); } else { swprintf( pStr, L"%2d", iHearingRangeBonus / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gWeaponStats[ 22 ].sX + gsInvDescX + gWeaponStats[ 22 ].sValDx), (INT16)(gWeaponStats[ 22 ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gWeaponStats[ 22 ].sY + gsInvDescY, pStr ); } } void DrawMiscValues( OBJECTTYPE * gpItemDescObject ) { static CHAR16 pStr[ 100 ]; INT16 usY; INT16 sStrX; UINT16 uiStringLength; UINT8 cnt; if( UsingEDBSystem() == 0 ) return; if(guiCurrentScreen ==MAP_SCREEN) cnt = 14; else cnt = 12; // ITEM SIZE MODIFIER if ( Item[ gpItemDescObject->usItem ].itemsizebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iItemSizeModifier = 0; iItemSizeModifier = Item[ gpItemDescObject->usItem ].itemsizebonus; // determine value print color SetFontForeground( 5 ); if ( iItemSizeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iItemSizeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iItemSizeModifier > 0 ) { swprintf( pStr, L"%+2d", iItemSizeModifier ); } else { swprintf( pStr, L"%2d", iItemSizeModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // RELIABILITY MODIFIER if ( Item[ gpItemDescObject->usItem ].bReliability != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iReliabilityModifier = 0; iReliabilityModifier = Item[ gpItemDescObject->usItem ].bReliability; // determine value print color SetFontForeground( 5 ); if ( iReliabilityModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iReliabilityModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iReliabilityModifier > 0 ) { swprintf( pStr, L"%+2d", iReliabilityModifier ); } else { swprintf( pStr, L"%2d", iReliabilityModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // NOISE MODIFIER if ( Item[ gpItemDescObject->usItem ].percentnoisereduction != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iLoudnessModifier = 0; iLoudnessModifier = Item[ gpItemDescObject->usItem ].percentnoisereduction * -1 ; // determine value print color SetFontForeground( 5 ); if ( iLoudnessModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iLoudnessModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iLoudnessModifier > 0 ) { swprintf( pStr, L"%+2d%%", iLoudnessModifier ); } else { swprintf( pStr, L"%2d%%", iLoudnessModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // HIDE MUZZLE FLASH // NO DATA SHOWN, icon either appears or does not appear. // BIPOD if ( Item[ gpItemDescObject->usItem ].bipod != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iBipodModifier = 0; iBipodModifier = Item[ gpItemDescObject->usItem ].bipod; // determine value print color SetFontForeground( 5 ); if ( iBipodModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iBipodModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iBipodModifier > 0 ) { swprintf( pStr, L"%+2d", iBipodModifier ); } else { swprintf( pStr, L"%2d", iBipodModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // RANGE if ( Item[ gpItemDescObject->usItem ].rangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iRangeModifier = 0; iRangeModifier = Item[ gpItemDescObject->usItem ].rangebonus; // determine value print color SetFontForeground( 5 ); if ( iRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iRangeModifier / 10 ); } else { swprintf( pStr, L"%2d", iRangeModifier / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // TO-HIT MODIFIER if ( Item[ gpItemDescObject->usItem ].tohitbonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iToHitModifier = 0; iToHitModifier = Item[ gpItemDescObject->usItem ].tohitbonus; // determine value print color SetFontForeground( 5 ); if ( iToHitModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iToHitModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iToHitModifier > 0 ) { swprintf( pStr, L"%+2d", iToHitModifier ); } else { swprintf( pStr, L"%2d", iToHitModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // LASER RANGE if ( Item[ gpItemDescObject->usItem ].bestlaserrange > 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iLaserRange = 0; iLaserRange = Item[ gpItemDescObject->usItem ].bestlaserrange; // determine value print color SetFontForeground( 5 ); // print value swprintf( pStr, L"%2d", iLaserRange / 10 ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // AIMING MODIFIER if ( Item[ gpItemDescObject->usItem ].aimbonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iAimModifier = 0; iAimModifier = Item[ gpItemDescObject->usItem ].aimbonus; // determine value print color SetFontForeground( 5 ); if ( iAimModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAimModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAimModifier > 0 ) { swprintf( pStr, L"%+2d", iAimModifier ); } else { swprintf( pStr, L"%2d", iAimModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // MINIMUM RANGE FOR AIMING BONUS if ( Item[ gpItemDescObject->usItem ].minrangeforaimbonus > 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iMinRangeAimingBonus = 0; iMinRangeAimingBonus = Item[ gpItemDescObject->usItem ].minrangeforaimbonus; // determine value print color SetFontForeground( 5 ); // print value swprintf( pStr, L"%2d", iMinRangeAimingBonus / 10 ); uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // MAGAZINE SIZE MODIFIER if ( Item[ gpItemDescObject->usItem ].magsizebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iMagSizeModifier = 0; iMagSizeModifier = Item[ gpItemDescObject->usItem ].magsizebonus; // determine value print color SetFontForeground( 5 ); if ( iMagSizeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iMagSizeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iMagSizeModifier > 0 ) { swprintf( pStr, L"%+2d", iMagSizeModifier ); } else { swprintf( pStr, L"%2d", iMagSizeModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // BURST SIZE MODIFIER if ( Item[ gpItemDescObject->usItem ].burstsizebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iBurstSizeModifier = 0; iBurstSizeModifier = Item[ gpItemDescObject->usItem ].burstsizebonus; // determine value print color SetFontForeground( 5 ); if ( iBurstSizeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iBurstSizeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iBurstSizeModifier > 0 ) { swprintf( pStr, L"%+2d", iBurstSizeModifier ); } else { swprintf( pStr, L"%2d", iBurstSizeModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // BURST TO-HIT MODIFIER if ( Item[ gpItemDescObject->usItem ].bursttohitbonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iBurstToHitModifier = 0; iBurstToHitModifier = Item[ gpItemDescObject->usItem ].bursttohitbonus; // determine value print color SetFontForeground( 5 ); if ( iBurstToHitModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iBurstToHitModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iBurstToHitModifier > 0 ) { swprintf( pStr, L"%+2d", iBurstToHitModifier ); } else { swprintf( pStr, L"%2d", iBurstToHitModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // AUTO TO-HIT MODIFIER if ( Item[ gpItemDescObject->usItem ].autofiretohitbonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iAutoToHitModifier = 0; iAutoToHitModifier = Item[ gpItemDescObject->usItem ].autofiretohitbonus; // determine value print color SetFontForeground( 5 ); if ( iAutoToHitModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAutoToHitModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAutoToHitModifier > 0 ) { swprintf( pStr, L"%+2d", iAutoToHitModifier ); } else { swprintf( pStr, L"%2d", iAutoToHitModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // AP MODIFIER if ( Item[ gpItemDescObject->usItem ].APBonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iAPModifier = 0; iAPModifier = Item[ gpItemDescObject->usItem ].APBonus; // determine value print color SetFontForeground( 5 ); if ( iAPModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAPModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAPModifier > 0 ) { swprintf( pStr, L"%+2d", iAPModifier ); } else { swprintf( pStr, L"%2d", iAPModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // BURST AP MODIFIER if ( Item[ gpItemDescObject->usItem ].percentburstfireapreduction != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iBurstAPModifier = 0; iBurstAPModifier = Item[ gpItemDescObject->usItem ].percentburstfireapreduction * -1 ; // determine value print color SetFontForeground( 5 ); if ( iBurstAPModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iBurstAPModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iBurstAPModifier > 0 ) { swprintf( pStr, L"%+2d%%", iBurstAPModifier ); } else { swprintf( pStr, L"%2d%%", iBurstAPModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // AUTOFIRE AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentautofireapreduction != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iAutoAPModifier = 0; iAutoAPModifier = Item[ gpItemDescObject->usItem ].percentautofireapreduction * -1 ; // determine value print color SetFontForeground( 5 ); if ( iAutoAPModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iAutoAPModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iAutoAPModifier > 0 ) { swprintf( pStr, L"%+2d%%", iAutoAPModifier ); } else { swprintf( pStr, L"%2d%%", iAutoAPModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // READY AP MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].percentreadytimeapreduction != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iReadyAPModifier = 0; iReadyAPModifier = Item[ gpItemDescObject->usItem ].percentreadytimeapreduction * -1 ; // determine value print color SetFontForeground( 5 ); if ( iReadyAPModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iReadyAPModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iReadyAPModifier > 0 ) { swprintf( pStr, L"%+2d%%", iReadyAPModifier ); } else { swprintf( pStr, L"%2d%%", iReadyAPModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // RELOAD AP MODIFIER if ( Item[ gpItemDescObject->usItem ].percentreloadtimeapreduction != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iReloadAPModifier = 0; iReloadAPModifier = Item[ gpItemDescObject->usItem ].percentreloadtimeapreduction * -1 ; // determine value print color SetFontForeground( 5 ); if ( iReloadAPModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iReloadAPModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iReloadAPModifier > 0 ) { swprintf( pStr, L"%+2d%%", iReloadAPModifier ); } else { swprintf( pStr, L"%2d%%", iReloadAPModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // SINGLE AP MODIFIER if ( Item[ gpItemDescObject->usItem ].percentapreduction != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iSingleAPModifier = 0; iSingleAPModifier = Item[ gpItemDescObject->usItem ].percentapreduction * -1 ; // determine value print color SetFontForeground( 5 ); if ( iSingleAPModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iSingleAPModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iSingleAPModifier > 0 ) { swprintf( pStr, L"%+2d%%", iSingleAPModifier ); } else { swprintf( pStr, L"%2d%%", iSingleAPModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // DAMAGE MODIFIER if ( Item[ gpItemDescObject->usItem ].damagebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iDamageModifier = 0; iDamageModifier = Item[ gpItemDescObject->usItem ].damagebonus; // determine value print color SetFontForeground( 5 ); if ( iDamageModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iDamageModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iDamageModifier > 0 ) { swprintf( pStr, L"%+2d", iDamageModifier ); } else { swprintf( pStr, L"%2d", iDamageModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // MELEE DAMAGE MODIFIER ICON if ( Item[ gpItemDescObject->usItem ].meleedamagebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iMeleeDamageModifier = 0; iMeleeDamageModifier = Item[ gpItemDescObject->usItem ].meleedamagebonus; // determine value print color SetFontForeground( 5 ); if ( iMeleeDamageModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iMeleeDamageModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iMeleeDamageModifier > 0 ) { swprintf( pStr, L"%+2d", iMeleeDamageModifier ); } else { swprintf( pStr, L"%2d", iMeleeDamageModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // WOOD CAMO if ( Item[ gpItemDescObject->usItem ].camobonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iWoodCamoModifier = 0; iWoodCamoModifier = Item[ gpItemDescObject->usItem ].camobonus; // determine value print color SetFontForeground( 5 ); if ( iWoodCamoModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iWoodCamoModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iWoodCamoModifier > 0 ) { swprintf( pStr, L"%+2d%%", iWoodCamoModifier ); } else { swprintf( pStr, L"%2d%%", iWoodCamoModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // URBAN CAMO if ( Item[ gpItemDescObject->usItem ].urbanCamobonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iUrbanCamoModifier = 0; iUrbanCamoModifier = Item[ gpItemDescObject->usItem ].urbanCamobonus; // determine value print color SetFontForeground( 5 ); if ( iUrbanCamoModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iUrbanCamoModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iUrbanCamoModifier > 0 ) { swprintf( pStr, L"%+2d%%", iUrbanCamoModifier ); } else { swprintf( pStr, L"%2d%%", iUrbanCamoModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // DESERT CAMO if ( Item[ gpItemDescObject->usItem ].desertCamobonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iDesertCamoModifier = 0; iDesertCamoModifier = Item[ gpItemDescObject->usItem ].desertCamobonus; // determine value print color SetFontForeground( 5 ); if ( iDesertCamoModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iDesertCamoModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iDesertCamoModifier > 0 ) { swprintf( pStr, L"%+2d%%", iDesertCamoModifier ); } else { swprintf( pStr, L"%2d%%", iDesertCamoModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // SNOW CAMO if ( Item[ gpItemDescObject->usItem ].snowCamobonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iSnowCamoModifier = 0; iSnowCamoModifier = Item[ gpItemDescObject->usItem ].snowCamobonus; // determine value print color SetFontForeground( 5 ); if ( iSnowCamoModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iSnowCamoModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iSnowCamoModifier > 0 ) { swprintf( pStr, L"%+2d%%", iSnowCamoModifier ); } else { swprintf( pStr, L"%2d%%", iSnowCamoModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // STEALTH MODIFIER if ( Item[ gpItemDescObject->usItem ].stealthbonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iStealthModifier = 0; iStealthModifier = Item[ gpItemDescObject->usItem ].stealthbonus; // determine value print color SetFontForeground( 5 ); if ( iStealthModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iStealthModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iStealthModifier > 0 ) { swprintf( pStr, L"%+2d%%", iStealthModifier ); } else { swprintf( pStr, L"%2d%%", iStealthModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // HEARING RANGE MODIFIER if ( Item[ gpItemDescObject->usItem ].hearingrangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iHearingRangeModifier = 0; iHearingRangeModifier = Item[ gpItemDescObject->usItem ].hearingrangebonus; // determine value print color SetFontForeground( 5 ); if ( iHearingRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iHearingRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iHearingRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iHearingRangeModifier ); } else { swprintf( pStr, L"%2d", iHearingRangeModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // VISION RANGE MODIFIER if ( Item[ gpItemDescObject->usItem ].visionrangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iVisionRangeModifier = 0; iVisionRangeModifier = Item[ gpItemDescObject->usItem ].visionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iVisionRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iVisionRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iVisionRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iVisionRangeModifier / 10 ); } else { swprintf( pStr, L"%2d", iVisionRangeModifier / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // DAY VISION RANGE MODIFIER if ( Item[ gpItemDescObject->usItem ].dayvisionrangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iDayVisionRangeModifier = 0; iDayVisionRangeModifier = Item[ gpItemDescObject->usItem ].dayvisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iDayVisionRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iDayVisionRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iDayVisionRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iDayVisionRangeModifier / 10 ); } else { swprintf( pStr, L"%2d", iDayVisionRangeModifier / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // NIGHT VISION RANGE MODIFIER if ( Item[ gpItemDescObject->usItem ].nightvisionrangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iNightVisionRangeModifier = 0; iNightVisionRangeModifier = Item[ gpItemDescObject->usItem ].nightvisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iNightVisionRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iNightVisionRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iNightVisionRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iNightVisionRangeModifier / 10 ); } else { swprintf( pStr, L"%2d", iNightVisionRangeModifier / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // BRIGHT LIGHT VISION RANGE MODIFIER if ( Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iBrightLightVisionRangeModifier = 0; iBrightLightVisionRangeModifier = Item[ gpItemDescObject->usItem ].brightlightvisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iBrightLightVisionRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iBrightLightVisionRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iBrightLightVisionRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iBrightLightVisionRangeModifier / 10 ); } else { swprintf( pStr, L"%2d", iBrightLightVisionRangeModifier / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // CAVE VISION RANGE MODIFIER if ( Item[ gpItemDescObject->usItem ].cavevisionrangebonus != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iCaveVisionRangeModifier = 0; iCaveVisionRangeModifier = Item[ gpItemDescObject->usItem ].cavevisionrangebonus; // determine value print color SetFontForeground( 5 ); if ( iCaveVisionRangeModifier < 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iCaveVisionRangeModifier > 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iCaveVisionRangeModifier > 0 ) { swprintf( pStr, L"%+2d", iCaveVisionRangeModifier / 10 ); } else { swprintf( pStr, L"%2d", iCaveVisionRangeModifier / 10 ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } // PERCENT TUNNEL VISION MODIFIER if ( Item[ gpItemDescObject->usItem ].percenttunnelvision != 0 && cnt<=27 ) { // equals SetFontForeground( 6 ); mprintf( gMiscItemStatsEDB[ cnt ].sX + gsInvDescX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, L"%s", gWeaponStatsDesc[ 8 ] ); // determine value INT16 iPercentTunnelVisionModifier = 0; iPercentTunnelVisionModifier = Item[ gpItemDescObject->usItem ].percenttunnelvision; // determine value print color SetFontForeground( 5 ); if ( iPercentTunnelVisionModifier > 0 ) { SetFontForeground( ITEMDESC_FONTNEGATIVE ); } else if ( iPercentTunnelVisionModifier < 0 ) { SetFontForeground( ITEMDESC_FONTPOSITIVE ); } // print value if ( iPercentTunnelVisionModifier > 0 ) { swprintf( pStr, L"%+2d%%", iPercentTunnelVisionModifier ); } else { swprintf( pStr, L"%2d%%", iPercentTunnelVisionModifier ); } uiStringLength=StringPixLength(pStr, ITEMDESC_FONT ); FindFontRightCoordinates( (INT16)(gMiscItemStatsEDB[ cnt ].sX + gsInvDescX + gMiscItemStatsEDB[ cnt ].sValDx), (INT16)(gMiscItemStatsEDB[ cnt ].sY + gsInvDescY ), ITEM_STATS_WIDTH ,ITEM_STATS_HEIGHT ,pStr, BLOCKFONT2, &sStrX, &usY); #ifdef CHINESE wcscat( pStr, ChineseSpecString1 ); #else wcscat( pStr, L"%%" ); #endif mprintf( sStrX, gMiscItemStatsEDB[ cnt ].sY + gsInvDescY, pStr ); cnt++; } }