Files
source/Tactical/Interface Enhanced.cpp
T
Wanne 09ad70f868 *************************************************************************
** Merged source code from development (MP+BMP) trunk (Revision: 3352) **
** https://81.169.133.124/source/ja2/branches/Wanne/JA2%201.13%20MP    **
*************************************************************************

1 (Rev. 3343)
Changes:
	Control hardcoded list of unclickable ("bad") sectors via XML file. (by Realist)
	On the strategic map, the player cannot click or highlight specific
	sectors (e.g. A4, A5). Introduce a <BadSector> tag in MovementCosts.xml
	that flags a sector as "bad". (<BadSector>1</BadSector>)
Files:
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Map Screen Interface Map.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Strategic Movement Costs.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/mapscreen.cpp
	/branches/Wanne/JA2 1.13 MP/GameDir/Data/TableData/Map
	/branches/Wanne/JA2 1.13 MP/GameDir/Data/TableData/Map/MovementCosts.xml
	/branches/Wanne/JA2 1.13 MP/GameDir/Data-1.13/TableData/Map
	/branches/Wanne/JA2 1.13 MP/GameDir/Data-1.13/TableData/Map/MovementCosts.xml

2 (Rev. 3344)
Changes:
	Move hardcoded underground sectors initialization to Lua script file. (by Realist)
	Locate "initunderground.lua" at data-xyz\scripts ("xyz" subject to change).
	Lua script allows easily adding underground sectors at arbitrary locations and defining enemy garrisons and creature population.
	Also enables underground bloodcat population.
Files:
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Campaign Init.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Campaign Types.h
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Queen Command.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Strategic AI.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Strategic_2005Express.vcproj
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Strategic_VS2008.vcproj
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/UndergroundInit.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/UndergroundInit.h
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/strategicmap.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Soldier Init List.cpp
	/branches/Wanne/JA2 1.13 MP/GameDir/Data/Scripts
	/branches/Wanne/JA2 1.13 MP/GameDir/Data/Scripts/initunderground.lua
	/branches/Wanne/JA2 1.13 MP/GameDir/Data-1.13/Scripts
	/branches/Wanne/JA2 1.13 MP/GameDir/Data-1.13/Scripts/initunderground.lua

3 (Rev. 3345)
Changes:
	Bugfix: In Method CreateDestroyMouseRegionsForFacilityAssignmentMenu() (by Headrock)
Files:
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Assignments.cpp

4 (Rev. 3346)
Changes:
	Changed order of properties in GameSettings.cpp (by Headrock)
	HAM 3.6 fixes (by Headrock)
	Sorted Data-1.13\ja2_options.ini (by Headrock)
Files:
	/branches/Wanne/JA2 1.13 MP/Build/GameSettings.cpp
	/branches/Wanne/JA2 1.13 MP/Build/GameSettings.h
	/branches/Wanne/JA2 1.13 MP/Build/Laptop/BobbyRGuns.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Assignments.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/MilitiaSquads.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Strategic Mines.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Strategic/Town Militia.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Campaign.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Interface Enhanced.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Interface Items.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Items.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Items.h
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Overhead.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Soldier Control.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Soldier Profile.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Weapons.cpp
	/branches/Wanne/JA2 1.13 MP/Build/TileEngine/Explosion Control.cpp
	/branches/Wanne/JA2 1.13 MP/GameDir/Data-1.13/Ja2_Options.INI
	/branches/Wanne/JA2 1.13 MP/GameDir/INIEditorJA2Options.xml

5 (Rev. 3347)
Changes:
	Bugfix: Turns out that the program is saving the number of used Placement Slots to the temp file fine, 
	but if that number is equal to the limit of how many enemies/civvies are allowed in a sector by the INI settings, 
	it leads to an assertion error instead when trying to re-load that sector. (by Headrock)
	Re-ordered Data/Ja2_Options.INI (by Headrock)
Files:
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Enemy Soldier Save.cpp
	/branches/Wanne/JA2 1.13 MP/GameDir/Data/Ja2_Options.INI

6 (Rev. 3348)
Changes:
	Translated missing HAM 3.6 German Texts (by systemfehler)
Files:
	/branches/Wanne/JA2 1.13 MP/Build/Utils/_GermanText.cpp

7 (Rev. 3351)
Changes:
	PlusAI 1.0 Patch (by Headrock)
Files:
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Points.cpp
	/branches/Wanne/JA2 1.13 MP/Build/Tactical/Points.h
	/branches/Wanne/JA2 1.13 MP/Build/TacticalAI/Attacks.cpp
	/branches/Wanne/JA2 1.13 MP/Build/TacticalAI/DecideAction.cpp
	/branches/Wanne/JA2 1.13 MP/Build/TacticalAI/FindLocations.cpp
	/branches/Wanne/JA2 1.13 MP/Build/TacticalAI/ai.h

8 (Rev. 3352)
Changes:
	Bugfix: The DEBUG only setting "fEnableInventoryPoolQ" is now only enabled in a DEBUG version. In all other builds it is set to FALSE.
Files:
	/branches/Wanne/JA2 1.13 MP/Build/GameSettings.cpp

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@3354 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2010-03-07 11:37:32 +00:00

7164 lines
318 KiB
C++

#ifdef PRECOMPILEDHEADERS
#include "Tactical All.h"
#include "language defines.h"
#else
#include "builddefines.h"
#include <stdio.h>
#include <stdarg.h>
#include <time.h>
#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.iEnhancedDescriptionBox == 0)
return 1;
if(gGameExternalOptions.iEnhancedDescriptionBox == 1)
return 1;
}
else //Tactical
{
if(gGameExternalOptions.iEnhancedDescriptionBox == 0)
return (UsingNewInventorySystem()==true?1:2);
if(gGameExternalOptions.iEnhancedDescriptionBox == 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 = 268; gWeaponStats[21].sY = 172; gWeaponStats[21].sValDx = 30; // 21) COL 4; ROW 4
gWeaponStats[22].sX = 203; gWeaponStats[22].sY = 172; gWeaponStats[22].sValDx = 30; // 22) COL 3; 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 = 300; gWeaponStats[42].sY = 172; gWeaponStats[42].sValDx = 0; // 42) COL 4; ROW 4
gWeaponStats[43].sX = 235; gWeaponStats[43].sY = 172; gWeaponStats[43].sValDx = 0; // 43) COL 3; 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 )
{
// BURST PENALTY
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; cnt<cntval; cnt++ )
{
MSYS_EnableRegion( &gStatsFasthelpRegions[ cnt ] );
}
}
}
// HEADROCK: TACTICAL description box tooltips
else 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 + 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 )
{
// BURST PENALTY
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<cntval; cnt++ )
{
MSYS_EnableRegion( &gStatsFasthelpRegions[ cnt ] );
}
}
}
}
void DeleteEnhancedDescBox( UINT32 guiCurrentItemDescriptionScreen )
{
INT32 cnt;
DeleteVideoObjectFromIndex( guiItemInfoWeaponIcon );
DeleteVideoObjectFromIndex( guiItemInfoAmmoIcon );
DeleteVideoObjectFromIndex( guiItemInfoArmorIcon );
DeleteVideoObjectFromIndex( guiItemInfoExplosiveIcon );
DeleteVideoObjectFromIndex( guiItemInfoMiscIcon );
if ( guiCurrentItemDescriptionScreen ==MAP_SCREEN && UsingEDBSystem() > 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[ 41 ].sX + gsInvDescX, gWeaponStats[ 41 ].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 );
// HEADROCK HAM 3.6: Can now use negative modifier.
UINT16 explDamage = (UINT16) GetModifiedExplosiveDamage( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage );
//swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage + ( (Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubDamage * gGameExternalOptions.ubExplosivesDamageMultiplier ) / 100 ));
swprintf( pStr, L"%2d", explDamage );
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 );
// HEADROCK HAM 3.6: Can now use negative modifier.
UINT16 explStunDamage = (UINT16) GetModifiedExplosiveDamage( Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage );
//swprintf( pStr, L"%2d", Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage + ( (Explosive[Item[ gpItemDescObject->usItem ].ubClassIndex ].ubStunDamage * gGameExternalOptions.ubExplosivesDamageMultiplier ) / 100 ));
swprintf( pStr, L"%2d", explStunDamage );
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.
// HEADROCK HAM 3.5 - Fixed this, because the count needs to be increased to skip a line!
if ( Item[ gpItemDescObject->usItem ].hidemuzzleflash > 0 && cnt<=27 )
{
cnt++;
}
// 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++;
}
}