mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- Data type changes - Templates removed git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@871 3b4a5df2-a311-0410-b5c6-a8a6f20db521
906 lines
18 KiB
C
906 lines
18 KiB
C
#ifndef ITEM_TYPES_H
|
|
#define ITEM_TYPES_H
|
|
|
|
#include "types.h"
|
|
|
|
#define INVALIDCURS 0
|
|
#define QUESTCURS 1
|
|
#define PUNCHCURS 2
|
|
#define TARGETCURS 3
|
|
#define KNIFECURS 4
|
|
#define AIDCURS 5
|
|
#define TOSSCURS 6
|
|
#define MINECURS 8
|
|
#define LPICKCURS 9
|
|
#define MDETECTCURS 10
|
|
#define CROWBARCURS 11
|
|
#define SURVCAMCURS 12
|
|
#define CAMERACURS 13
|
|
#define KEYCURS 14
|
|
#define SAWCURS 15
|
|
#define WIRECUTCURS 16
|
|
#define REMOTECURS 17
|
|
#define BOMBCURS 18 // ( only calculated, not set item table )
|
|
#define REPAIRCURS 19
|
|
#define TRAJECTORYCURS 20
|
|
#define JARCURS 21
|
|
#define TINCANCURS 22
|
|
#define REFUELCURS 23
|
|
|
|
#define CAMERARANGE 10
|
|
|
|
#define CONDBUL 0
|
|
#define COND 0
|
|
#define SINGLE 0
|
|
#define LIQ 0
|
|
#define USAGE 0
|
|
#define BUCKS 0
|
|
|
|
#define ITEM_NOT_FOUND -1
|
|
|
|
|
|
#define USABLE 10 // minimum work% of items to still be usable
|
|
|
|
#define MAX_OBJECTS_PER_SLOT 8
|
|
#define MAX_ATTACHMENTS 4
|
|
#define MAX_MONEY_PER_SLOT 20000
|
|
|
|
typedef enum
|
|
{
|
|
BOMB_TIMED = 1,
|
|
BOMB_REMOTE,
|
|
BOMB_PRESSURE,
|
|
BOMB_SWITCH
|
|
} DetonatorType;
|
|
|
|
#define FIRST_MAP_PLACED_FREQUENCY 50
|
|
#define PANIC_FREQUENCY 127
|
|
#define PANIC_FREQUENCY_2 126
|
|
#define PANIC_FREQUENCY_3 125
|
|
|
|
#define OBJECT_UNDROPPABLE 0x01
|
|
#define OBJECT_MODIFIED 0x02
|
|
#define OBJECT_AI_UNUSABLE 0x04
|
|
#define OBJECT_ARMED_BOMB 0x08
|
|
#define OBJECT_KNOWN_TO_BE_TRAPPED 0x10
|
|
#define OBJECT_DISABLED_BOMB 0x20
|
|
#define OBJECT_ALARM_TRIGGER 0x40
|
|
#define OBJECT_NO_OVERWRITE 0x80
|
|
|
|
#define GS_CARTRIDGE_IN_CHAMBER 0x01
|
|
|
|
typedef struct
|
|
{
|
|
UINT16 usItem;
|
|
UINT8 ubNumberOfObjects;
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
INT8 bGunStatus; // status % of gun
|
|
UINT8 ubGunAmmoType; // ammo type, as per weapons.h
|
|
UINT8 ubGunShotsLeft; // duh, amount of ammo left
|
|
UINT16 usGunAmmoItem; // the item # for the item table
|
|
INT8 bGunAmmoStatus; // only for "attached ammo" - grenades, mortar shells
|
|
UINT8 ubGunState; // SB manual recharge
|
|
UINT8 ubGunUnused[MAX_OBJECTS_PER_SLOT - 6];
|
|
};
|
|
struct
|
|
{
|
|
UINT8 ubShotsLeft[MAX_OBJECTS_PER_SLOT];
|
|
};
|
|
struct
|
|
{
|
|
INT8 bStatus[MAX_OBJECTS_PER_SLOT];
|
|
};
|
|
struct
|
|
{
|
|
INT8 bMoneyStatus;
|
|
UINT32 uiMoneyAmount;
|
|
UINT8 ubMoneyUnused[MAX_OBJECTS_PER_SLOT - 5];
|
|
};
|
|
struct
|
|
{ // this is used by placed bombs, switches, and the action item
|
|
INT8 bBombStatus; // % status
|
|
INT8 bDetonatorType; // timed, remote, or pressure-activated
|
|
UINT16 usBombItem; // the usItem of the bomb.
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
INT8 bDelay; // >=0 values used only
|
|
};
|
|
struct
|
|
{
|
|
INT8 bFrequency; // >=0 values used only
|
|
};
|
|
};
|
|
UINT8 ubBombOwner; // side which placed the bomb
|
|
UINT8 bActionValue;// this is used by the ACTION_ITEM fake item
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UINT8 ubTolerance; // tolerance value for panic triggers
|
|
};
|
|
struct
|
|
{
|
|
UINT8 ubLocationID; // location value for remote non-bomb (special!) triggers
|
|
};
|
|
};
|
|
};
|
|
struct
|
|
{
|
|
INT8 bKeyStatus[ 6 ];
|
|
UINT8 ubKeyID;
|
|
UINT8 ubKeyUnused[1];
|
|
};
|
|
struct
|
|
{
|
|
UINT8 ubOwnerProfile;
|
|
UINT8 ubOwnerCivGroup;
|
|
UINT8 ubOwnershipUnused[6];
|
|
};
|
|
};
|
|
// attached objects
|
|
UINT16 usAttachItem[MAX_ATTACHMENTS];
|
|
INT8 bAttachStatus[MAX_ATTACHMENTS];
|
|
|
|
INT8 fFlags;
|
|
UINT8 ubMission;
|
|
INT8 bTrap; // 1-10 exp_lvl to detect
|
|
UINT8 ubImprintID; // ID of merc that item is imprinted on
|
|
UINT8 ubWeight;
|
|
UINT8 fUsed; // flags for whether the item is used or not
|
|
} OBJECTTYPE;
|
|
|
|
/*
|
|
typedef struct
|
|
{
|
|
UINT8 ubCursor;
|
|
INT8 bSoundType;
|
|
UINT8 ubGraphicNum;
|
|
INT8 bMaxLoad;
|
|
|
|
UINT8 ubPerPocket;
|
|
UINT8 ubCanDamage;
|
|
UINT8 ubWaterDamage;
|
|
UINT8 ubCanRepair;
|
|
|
|
UINT8 ubSeeMeter;
|
|
UINT8 ubRange;
|
|
UINT8 ubMetal;
|
|
UINT8 ubSinkable;
|
|
|
|
UINT16 ubPrice;
|
|
UINT8 ubMission;
|
|
UINT8 ubCoolness;
|
|
} INVTYPE;
|
|
|
|
*/
|
|
|
|
|
|
|
|
// SUBTYPES
|
|
#define IC_NONE 0x00000001
|
|
#define IC_GUN 0x00000002
|
|
#define IC_BLADE 0x00000004
|
|
#define IC_THROWING_KNIFE 0x00000008
|
|
|
|
#define IC_LAUNCHER 0x00000010
|
|
#define IC_TENTACLES 0x00000020
|
|
|
|
#define IC_THROWN 0x00000040
|
|
#define IC_PUNCH 0x00000080
|
|
|
|
#define IC_GRENADE 0x00000100
|
|
#define IC_BOMB 0x00000200
|
|
#define IC_AMMO 0x00000400
|
|
#define IC_ARMOUR 0x00000800
|
|
|
|
#define IC_MEDKIT 0x00001000
|
|
#define IC_KIT 0x00002000
|
|
#define IC_APPLIABLE 0x00004000
|
|
#define IC_FACE 0x00008000
|
|
|
|
#define IC_KEY 0x00010000
|
|
|
|
#define IC_MISC 0x10000000
|
|
#define IC_MONEY 0x20000000
|
|
|
|
// PARENT TYPES
|
|
#define IC_WEAPON ( IC_GUN | IC_BLADE | IC_THROWING_KNIFE | IC_LAUNCHER | IC_TENTACLES )
|
|
#define IC_EXPLOSV ( IC_GRENADE | IC_BOMB )
|
|
|
|
#define IC_BOBBY_GUN ( IC_GUN | IC_LAUNCHER )
|
|
#define IC_BOBBY_MISC ( IC_GRENADE | IC_BOMB | IC_MISC | IC_MEDKIT | IC_KIT | IC_BLADE | IC_THROWING_KNIFE | IC_PUNCH | IC_FACE )
|
|
|
|
|
|
// replaces candamage
|
|
//#define ITEM_DAMAGEABLE 0x0001
|
|
//// replaces canrepair
|
|
//#define ITEM_REPAIRABLE 0x0002
|
|
//// replaces waterdamage
|
|
//#define ITEM_WATER_DAMAGES 0x0004
|
|
//// replaces metal
|
|
//#define ITEM_METAL 0x0008
|
|
//// replaces sinkable
|
|
//#define ITEM_SINKS 0x0010
|
|
//// replaces seemeter
|
|
//#define ITEM_SHOW_STATUS 0x0020
|
|
//// for attachers/merges, hidden
|
|
//#define ITEM_HIDDEN_ADDON 0x0040
|
|
//// needs two hands
|
|
//#define ITEM_TWO_HANDED 0x0080
|
|
//// can't be found for sale
|
|
//#define ITEM_NOT_BUYABLE 0x0100
|
|
//// item is an attachment for something
|
|
//#define ITEM_ATTACHMENT 0x0200
|
|
//// item only belongs in the "big gun list"
|
|
//#define ITEM_BIGGUNLIST 0x0400
|
|
//// item should not be placed via the editor
|
|
//#define ITEM_NOT_EDITOR 0x0800
|
|
//// item defaults to undroppable
|
|
//#define ITEM_DEFAULT_UNDROPPABLE 0x1000
|
|
//// item is terrible for throwing
|
|
//#define ITEM_UNAERODYNAMIC 0x2000
|
|
//// item is electronic for repair (etc) purposes
|
|
//#define ITEM_ELECTRONIC 0x4000
|
|
//// item is a PERMANENT attachment
|
|
//#define ITEM_INSEPARABLE 0x8000
|
|
//
|
|
//// item flag combinations
|
|
//
|
|
//#define IF_STANDARD_GUN ITEM_DAMAGEABLE | ITEM_WATER_DAMAGES | ITEM_REPAIRABLE | ITEM_SHOW_STATUS | ITEM_METAL | ITEM_SINKS
|
|
//#define IF_TWOHANDED_GUN IF_STANDARD_GUN | ITEM_TWO_HANDED
|
|
//#define IF_STANDARD_BLADE ITEM_DAMAGEABLE | ITEM_WATER_DAMAGES | ITEM_REPAIRABLE | ITEM_SHOW_STATUS | ITEM_METAL | ITEM_SINKS
|
|
//#define IF_STANDARD_ARMOUR ITEM_DAMAGEABLE | ITEM_REPAIRABLE | ITEM_SHOW_STATUS | ITEM_SINKS
|
|
//#define IF_STANDARD_KIT ITEM_DAMAGEABLE | ITEM_SHOW_STATUS | ITEM_SINKS
|
|
//#define IF_STANDARD_CLIP ITEM_SINKS | ITEM_METAL
|
|
|
|
//#define EXPLOSIVE_GUN( x ) ( x == ROCKET_LAUNCHER || x == TANK_CANNON || x == RPG7 )
|
|
|
|
typedef struct
|
|
{
|
|
UINT32 usItemClass;
|
|
UINT16 ubClassIndex;
|
|
UINT8 ubCursor;
|
|
INT8 bSoundType;
|
|
UINT8 ubGraphicType;
|
|
UINT16 ubGraphicNum;
|
|
UINT8 ubWeight; //2 units per kilogram; roughly 1 unit per pound
|
|
UINT8 ubPerPocket;
|
|
UINT16 usPrice;
|
|
UINT8 ubCoolness;
|
|
INT8 bReliability;
|
|
INT8 bRepairEase;
|
|
UINT16 fFlags;
|
|
|
|
UINT32 uiIndex; // added
|
|
CHAR8 szItemName[80]; //+1 for the null terminator //added
|
|
|
|
BOOLEAN damageable;
|
|
BOOLEAN repairable;
|
|
BOOLEAN waterdamages;
|
|
BOOLEAN metal;
|
|
BOOLEAN sinks;
|
|
BOOLEAN showstatus;
|
|
BOOLEAN hiddenaddon;
|
|
BOOLEAN twohanded;
|
|
BOOLEAN notbuyable;
|
|
BOOLEAN attachment;
|
|
BOOLEAN hiddenattachment;
|
|
BOOLEAN biggunlist;
|
|
BOOLEAN notineditor;
|
|
BOOLEAN defaultundroppable;
|
|
BOOLEAN unaerodynamic;
|
|
BOOLEAN electronic;
|
|
BOOLEAN inseparable;
|
|
|
|
CHAR8 szLongItemName[80];
|
|
CHAR8 szItemDesc[400];
|
|
CHAR8 szBRName[80];
|
|
CHAR8 szBRDesc[400];
|
|
|
|
//TODO: quest items, boosters, money
|
|
|
|
// special item/attachment functions:
|
|
BOOLEAN cannon;
|
|
BOOLEAN rocketrifle;
|
|
BOOLEAN fingerprintid;
|
|
BOOLEAN metaldetector;
|
|
BOOLEAN gasmask;
|
|
BOOLEAN lockbomb;
|
|
BOOLEAN flare;
|
|
INT16 percentnoisereduction;
|
|
INT16 bipod;
|
|
INT16 tohitbonus;
|
|
INT16 bestlaserrange;
|
|
INT16 rangebonus;
|
|
INT16 aimbonus;
|
|
INT16 minrangeforaimbonus;
|
|
INT16 percentapreduction;
|
|
INT16 percentstatusdrainreduction;
|
|
BOOLEAN grenadelauncher;
|
|
BOOLEAN mortar;
|
|
BOOLEAN duckbill;
|
|
BOOLEAN detonator;
|
|
BOOLEAN remotedetonator;
|
|
BOOLEAN hidemuzzleflash;
|
|
BOOLEAN rocketlauncher;
|
|
BOOLEAN singleshotrocketlauncher;
|
|
UINT16 discardedlauncheritem;
|
|
BOOLEAN brassknuckles;
|
|
UINT16 bloodieditem;
|
|
BOOLEAN crowbar;
|
|
BOOLEAN glgrenade;
|
|
BOOLEAN flakjacket;
|
|
INT16 hearingrangebonus;
|
|
INT16 visionrangebonus;
|
|
INT16 nightvisionrangebonus;
|
|
INT16 dayvisionrangebonus;
|
|
INT16 cavevisionrangebonus;
|
|
INT16 brightlightvisionrangebonus;
|
|
BOOLEAN leatherjacket;
|
|
BOOLEAN batteries;
|
|
BOOLEAN needsbatteries;
|
|
BOOLEAN xray;
|
|
BOOLEAN wirecutters;
|
|
BOOLEAN toolkit;
|
|
BOOLEAN firstaidkit;
|
|
BOOLEAN medicalkit;
|
|
BOOLEAN canteen;
|
|
BOOLEAN jar;
|
|
BOOLEAN canandstring;
|
|
BOOLEAN marbles;
|
|
BOOLEAN walkman;
|
|
BOOLEAN remotetrigger;
|
|
BOOLEAN robotremotecontrol;
|
|
BOOLEAN camouflagekit;
|
|
BOOLEAN locksmithkit;
|
|
BOOLEAN mine;
|
|
BOOLEAN alcohol;
|
|
BOOLEAN hardware;
|
|
BOOLEAN medical;
|
|
BOOLEAN gascan;
|
|
BOOLEAN containsliquid;
|
|
BOOLEAN rock;
|
|
|
|
INT16 damagebonus;
|
|
INT16 meleedamagebonus;
|
|
|
|
INT16 magsizebonus;
|
|
INT16 percentautofireapreduction;
|
|
INT16 autofiretohitbonus;
|
|
INT16 APBonus;
|
|
INT16 rateoffirebonus;
|
|
INT16 burstsizebonus;
|
|
INT16 bursttohitbonus;
|
|
INT16 percentreadytimeapreduction;
|
|
INT16 bulletspeedbonus;
|
|
BOOLEAN thermaloptics;
|
|
UINT8 percenttunnelvision;
|
|
INT16 percentreloadtimeapreduction;
|
|
INT16 percentburstfireapreduction;
|
|
|
|
INT16 camobonus;
|
|
INT16 stealthbonus;
|
|
INT16 urbanCamobonus;
|
|
INT16 desertCamobonus;
|
|
INT16 snowCamobonus;
|
|
|
|
BOOLEAN scifi; // item only available in scifi mode
|
|
|
|
UINT16 defaultattachment;
|
|
} INVTYPE;
|
|
|
|
#define FIRST_WEAPON 1
|
|
#define FIRST_AMMO 71
|
|
#define FIRST_EXPLOSIVE 131
|
|
#define FIRST_ARMOUR 161
|
|
#define FIRST_MISC 201
|
|
#define FIRST_KEY 271
|
|
|
|
#define NOTHING NONE
|
|
typedef enum
|
|
{
|
|
NONE = 0,
|
|
|
|
// weapons
|
|
GLOCK_17 = FIRST_WEAPON,
|
|
GLOCK_18,
|
|
BERETTA_92F,
|
|
BERETTA_93R,
|
|
SW38,
|
|
BARRACUDA,
|
|
DESERTEAGLE,
|
|
M1911,
|
|
MP5K,
|
|
MAC10, //10
|
|
|
|
THOMPSON,
|
|
COMMANDO,
|
|
MP53,
|
|
AKSU74,
|
|
P90,
|
|
TYPE85,
|
|
SKS,
|
|
DRAGUNOV,
|
|
M24,
|
|
AUG, //20
|
|
|
|
G41,
|
|
MINI14,
|
|
C7,
|
|
FAMAS,
|
|
AK74,
|
|
AKM,
|
|
M14,
|
|
FNFAL,
|
|
G3A3,
|
|
G11, //30
|
|
|
|
M870,
|
|
SPAS15,
|
|
CAWS,
|
|
MINIMI,
|
|
RPK74,
|
|
HK21E,
|
|
COMBAT_KNIFE,
|
|
THROWING_KNIFE,
|
|
ROCK,
|
|
GLAUNCHER, //40
|
|
|
|
MORTAR,
|
|
ROCK2,
|
|
CREATURE_YOUNG_MALE_CLAWS,
|
|
CREATURE_OLD_MALE_CLAWS,
|
|
CREATURE_YOUNG_FEMALE_CLAWS,
|
|
CREATURE_OLD_FEMALE_CLAWS,
|
|
CREATURE_QUEEN_TENTACLES,
|
|
CREATURE_QUEEN_SPIT,
|
|
BRASS_KNUCKLES,
|
|
UNDER_GLAUNCHER, //50
|
|
|
|
ROCKET_LAUNCHER,
|
|
BLOODCAT_CLAW_ATTACK,
|
|
BLOODCAT_BITE,
|
|
MACHETE,
|
|
ROCKET_RIFLE,
|
|
AUTOMAG_III,
|
|
CREATURE_INFANT_SPIT,
|
|
CREATURE_YOUNG_MALE_SPIT,
|
|
CREATURE_OLD_MALE_SPIT,
|
|
TANK_CANNON, //60
|
|
|
|
DART_GUN,
|
|
BLOODY_THROWING_KNIFE,
|
|
FLAMETHROWER,
|
|
CROWBAR,
|
|
AUTO_ROCKET_RIFLE, //65
|
|
// MADD MARKER
|
|
|
|
BARRETT, //previously unused
|
|
VAL_SILENT, //previously unused
|
|
PSG, //previously unused
|
|
TAR21, //previously unused
|
|
|
|
MAX_WEAPONS = ( FIRST_AMMO - 1 ),
|
|
|
|
CLIP9_15 = FIRST_AMMO,
|
|
CLIP9_30,
|
|
CLIP9_15_AP,
|
|
CLIP9_30_AP,
|
|
CLIP9_15_HP,
|
|
CLIP9_30_HP,
|
|
CLIP38_6,
|
|
CLIP38_6_AP,
|
|
CLIP38_6_HP,
|
|
CLIP45_7,
|
|
|
|
CLIP45_30,
|
|
CLIP45_7_AP,
|
|
CLIP45_30_AP,
|
|
CLIP45_7_HP,
|
|
CLIP45_30_HP,
|
|
CLIP357_6,
|
|
CLIP357_9,
|
|
CLIP357_6_AP,
|
|
CLIP357_9_AP,
|
|
CLIP357_6_HP,
|
|
|
|
CLIP357_9_HP,
|
|
CLIP545_30_AP,
|
|
CLIP545_30_HP,
|
|
CLIP556_30_AP,
|
|
CLIP556_30_HP,
|
|
CLIP762W_10_AP,
|
|
CLIP762W_30_AP,
|
|
CLIP762W_10_HP,
|
|
CLIP762W_30_HP,
|
|
CLIP762N_5_AP,
|
|
|
|
CLIP762N_20_AP,
|
|
CLIP762N_5_HP,
|
|
CLIP762N_20_HP,
|
|
CLIP47_50_SAP,
|
|
CLIP57_50_AP,
|
|
CLIP57_50_HP,
|
|
CLIP12G_7,
|
|
CLIP12G_7_BUCKSHOT,
|
|
CLIPCAWS_10_SAP,
|
|
CLIPCAWS_10_FLECH,
|
|
|
|
CLIPROCKET_AP,
|
|
CLIPROCKET_HE,
|
|
CLIPROCKET_HEAT,
|
|
CLIPDART_SLEEP,
|
|
|
|
CLIPFLAME,
|
|
// MADD MARKER
|
|
CLIP50_11, // unused
|
|
CLIP9H_20, // unused
|
|
CLIP9_50,
|
|
CLIP9_50_AP,
|
|
CLIP9_50_HP,
|
|
DRUM545_75_AP,
|
|
DRUM545_75_HP,
|
|
BELT556_200_AP,
|
|
BELT556_200_HP,
|
|
BELT762N_100_AP,
|
|
BELT762N_100_HP,
|
|
CLIP57_20_AP,
|
|
CLIP57_20_HP,
|
|
// unused
|
|
// unused
|
|
|
|
// explosives
|
|
STUN_GRENADE = FIRST_EXPLOSIVE,
|
|
TEARGAS_GRENADE,
|
|
MUSTARD_GRENADE,
|
|
MINI_GRENADE,
|
|
HAND_GRENADE,
|
|
RDX,
|
|
TNT,
|
|
HMX,
|
|
C1,
|
|
MORTAR_SHELL,
|
|
|
|
MINE,
|
|
C4,
|
|
TRIP_FLARE,
|
|
TRIP_KLAXON,
|
|
SHAPED_CHARGE,
|
|
BREAK_LIGHT,
|
|
GL_HE_GRENADE,
|
|
GL_TEARGAS_GRENADE,
|
|
GL_STUN_GRENADE,
|
|
GL_SMOKE_GRENADE,
|
|
|
|
SMOKE_GRENADE,
|
|
TANK_SHELL,
|
|
STRUCTURE_IGNITE,
|
|
CREATURE_COCKTAIL,
|
|
STRUCTURE_EXPLOSION,
|
|
GREAT_BIG_EXPLOSION,
|
|
BIG_TEAR_GAS,
|
|
SMALL_CREATURE_GAS,
|
|
LARGE_CREATURE_GAS,
|
|
VERY_SMALL_CREATURE_GAS,
|
|
|
|
// armor
|
|
FLAK_JACKET, //= FIRST_ARMOUR, ( We're out of space! )
|
|
FLAK_JACKET_18,
|
|
FLAK_JACKET_Y,
|
|
KEVLAR_VEST,
|
|
KEVLAR_VEST_18,
|
|
KEVLAR_VEST_Y,
|
|
SPECTRA_VEST,
|
|
SPECTRA_VEST_18,
|
|
SPECTRA_VEST_Y,
|
|
KEVLAR_LEGGINGS,
|
|
|
|
KEVLAR_LEGGINGS_18,
|
|
KEVLAR_LEGGINGS_Y,
|
|
SPECTRA_LEGGINGS,
|
|
SPECTRA_LEGGINGS_18,
|
|
SPECTRA_LEGGINGS_Y,
|
|
STEEL_HELMET,
|
|
KEVLAR_HELMET,
|
|
KEVLAR_HELMET_18,
|
|
KEVLAR_HELMET_Y,
|
|
SPECTRA_HELMET,
|
|
|
|
SPECTRA_HELMET_18,
|
|
SPECTRA_HELMET_Y,
|
|
CERAMIC_PLATES,
|
|
CREATURE_INFANT_HIDE,
|
|
CREATURE_YOUNG_MALE_HIDE,
|
|
CREATURE_OLD_MALE_HIDE,
|
|
CREATURE_QUEEN_HIDE,
|
|
LEATHER_JACKET,
|
|
LEATHER_JACKET_W_KEVLAR,
|
|
LEATHER_JACKET_W_KEVLAR_18,
|
|
|
|
LEATHER_JACKET_W_KEVLAR_Y,
|
|
CREATURE_YOUNG_FEMALE_HIDE,
|
|
CREATURE_OLD_FEMALE_HIDE,
|
|
TSHIRT,
|
|
TSHIRT_DEIDRANNA,
|
|
KEVLAR2_VEST,
|
|
KEVLAR2_VEST_18,
|
|
KEVLAR2_VEST_Y,
|
|
|
|
// kits
|
|
FIRSTAIDKIT = FIRST_MISC,
|
|
MEDICKIT,
|
|
TOOLKIT,
|
|
LOCKSMITHKIT,
|
|
CAMOUFLAGEKIT,
|
|
BOOBYTRAPKIT,
|
|
// miscellaneous
|
|
SILENCER,
|
|
SNIPERSCOPE,
|
|
BIPOD,
|
|
EXTENDEDEAR,
|
|
|
|
NIGHTGOGGLES,
|
|
SUNGOGGLES,
|
|
GASMASK,
|
|
CANTEEN,
|
|
METALDETECTOR,
|
|
COMPOUND18,
|
|
JAR_QUEEN_CREATURE_BLOOD,
|
|
JAR_ELIXIR,
|
|
MONEY,
|
|
JAR,
|
|
|
|
JAR_CREATURE_BLOOD,
|
|
ADRENALINE_BOOSTER,
|
|
DETONATOR,
|
|
REMDETONATOR,
|
|
VIDEOTAPE,
|
|
DEED,
|
|
LETTER,
|
|
TERRORIST_INFO,
|
|
CHALICE,
|
|
BLOODCAT_CLAWS,
|
|
|
|
BLOODCAT_TEETH,
|
|
BLOODCAT_PELT,
|
|
SWITCH,
|
|
// fake items
|
|
ACTION_ITEM,
|
|
REGEN_BOOSTER,
|
|
SYRINGE_3,
|
|
SYRINGE_4,
|
|
SYRINGE_5,
|
|
JAR_HUMAN_BLOOD,
|
|
OWNERSHIP,
|
|
|
|
// additional items
|
|
LASERSCOPE,
|
|
REMOTEBOMBTRIGGER,
|
|
WIRECUTTERS,
|
|
DUCKBILL,
|
|
ALCOHOL,
|
|
UVGOGGLES,
|
|
DISCARDED_LAW,
|
|
HEAD_1,
|
|
HEAD_2,
|
|
HEAD_3,
|
|
HEAD_4,
|
|
HEAD_5,
|
|
HEAD_6,
|
|
HEAD_7,
|
|
WINE,
|
|
BEER,
|
|
PORNOS,
|
|
VIDEO_CAMERA,
|
|
ROBOT_REMOTE_CONTROL,
|
|
CREATURE_PART_CLAWS,
|
|
CREATURE_PART_FLESH,
|
|
CREATURE_PART_ORGAN,
|
|
REMOTETRIGGER,
|
|
GOLDWATCH,
|
|
GOLFCLUBS,
|
|
WALKMAN,
|
|
PORTABLETV,
|
|
MONEY_FOR_PLAYERS_ACCOUNT,
|
|
CIGARS,
|
|
|
|
KEY_1 = FIRST_KEY,
|
|
KEY_2,
|
|
KEY_3,
|
|
KEY_4,
|
|
KEY_5,
|
|
KEY_6,
|
|
KEY_7,
|
|
KEY_8,
|
|
KEY_9,
|
|
KEY_10,
|
|
|
|
FLASH_SUPPRESSOR,
|
|
RPG7,
|
|
RPG_HE_ROCKET,
|
|
RPG_AP_ROCKET,
|
|
RPG_FRAG_ROCKET,
|
|
REFLEX_SCOPED,
|
|
REFLEX_UNSCOPED,
|
|
KEY_18,
|
|
KEY_19,
|
|
KEY_20,
|
|
|
|
KEY_21,
|
|
KEY_22,
|
|
KEY_23,
|
|
KEY_24,
|
|
KEY_25,
|
|
KEY_26,
|
|
KEY_27,
|
|
KEY_28,
|
|
KEY_29,
|
|
KEY_30,
|
|
|
|
KEY_31,
|
|
KEY_32, // 302
|
|
SILVER_PLATTER,
|
|
DUCT_TAPE,
|
|
ALUMINUM_ROD,
|
|
SPRING,
|
|
SPRING_AND_BOLT_UPGRADE,
|
|
STEEL_ROD,
|
|
QUICK_GLUE,
|
|
GUN_BARREL_EXTENDER,
|
|
|
|
STRING,
|
|
TIN_CAN,
|
|
STRING_TIED_TO_TIN_CAN,
|
|
MARBLES,
|
|
LAME_BOY,
|
|
COPPER_WIRE,
|
|
DISPLAY_UNIT,
|
|
FUMBLE_PAK,
|
|
XRAY_BULB,
|
|
CHEWING_GUM, // 320
|
|
|
|
FLASH_DEVICE,
|
|
BATTERIES,
|
|
ELASTIC,
|
|
XRAY_DEVICE,
|
|
SILVER,
|
|
GOLD,
|
|
GAS_CAN,
|
|
M900, //UNUSED_26,
|
|
M950, //UNUSED_27,
|
|
M960, //UNUSED_28,
|
|
MICRO_UZI, // UNUSED_29,
|
|
|
|
ENFIELD, // UNUSED_30,
|
|
MP5,
|
|
MP5SD,
|
|
MP5N,
|
|
UMP45,
|
|
FIVE7,
|
|
P7M8,
|
|
G36K,
|
|
G36C, // 340
|
|
|
|
MSG90A1,
|
|
BENNELLI,
|
|
AK103,
|
|
UNUSED_42,
|
|
UNUSED_43,
|
|
UNUSED_44,
|
|
UNUSED_45,
|
|
UNUSED_46,
|
|
UNUSED_47,
|
|
UNUSED_48, // 350
|
|
|
|
MAXITEMS = 5001
|
|
} ITEMDEFINE;
|
|
|
|
#define FIRST_HELMET STEEL_HELMET
|
|
#define LAST_HELMET SPECTRA_HELMET_Y
|
|
|
|
#define FIRST_VEST FLAK_JACKET
|
|
#define LAST_VEST KEVLAR2_VEST_Y
|
|
|
|
#define FIRST_LEGGINGS KEVLAR_LEGGINGS
|
|
#define LAST_LEGGINGS SPECTRA_LEGGINGS_Y
|
|
|
|
#define FIRST_HEAD_ITEM EXTENDEDEAR
|
|
#define LAST_HEAD_ITEM SUNGOGGLES
|
|
|
|
#define MAXATTACHMENTS 30000
|
|
|
|
extern INVTYPE Item[MAXITEMS];
|
|
extern UINT16 Attachment[MAXATTACHMENTS][3];
|
|
|
|
typedef struct
|
|
{
|
|
UINT16 usItem;
|
|
UINT32 uiItemClass;
|
|
INT8 bAttachmentSkillCheck;
|
|
INT8 bAttachmentSkillCheckMod;
|
|
UINT32 uiIndex;
|
|
} AttachmentInfoStruct;
|
|
|
|
extern AttachmentInfoStruct AttachmentInfo[MAXITEMS+1];
|
|
|
|
extern UINT16 Launchable[MAXITEMS+1][2];
|
|
extern UINT16 CompatibleFaceItems[MAXITEMS+1][2];
|
|
extern UINT16 IncompatibleAttachments[MAXATTACHMENTS][2];
|
|
|
|
typedef enum
|
|
{
|
|
DESTRUCTION,
|
|
COMBINE_POINTS,
|
|
TREAT_ARMOUR,
|
|
EXPLOSIVE,
|
|
EASY_MERGE,
|
|
ELECTRONIC_MERGE,
|
|
USE_ITEM,
|
|
USE_ITEM_HARD
|
|
} MergeType;
|
|
|
|
extern UINT16 Merge[MAXITEMS+1][6];
|
|
|
|
typedef struct
|
|
{
|
|
UINT16 usItem;
|
|
UINT16 usAttachment[2];
|
|
UINT16 usResult;
|
|
UINT32 uiIndex;
|
|
} ComboMergeInfoStruct;
|
|
|
|
extern ComboMergeInfoStruct AttachmentComboMerge[MAXITEMS+1];
|
|
BOOLEAN EXPLOSIVE_GUN(UINT16 x );
|
|
|
|
typedef struct IMP_ITEM_CHOICE_TYPE
|
|
{
|
|
UINT8 ubChoices; // how many valid choices there are in this category
|
|
INT16 bItemNo[50]; // room for up to 50 choices in each category
|
|
UINT8 ubNumItems; // # of items to select
|
|
|
|
UINT32 uiIndex;
|
|
} IMP_ITEM_CHOICE_TYPE;
|
|
|
|
enum
|
|
{
|
|
IMP_DEFAULT = 0,
|
|
IMP_RANDOMDEFAULT,
|
|
//ATTRIBUTES
|
|
IMP_WISDOM,
|
|
IMP_DEXTERITY,
|
|
IMP_AGILITY,
|
|
IMP_STRENGTH,
|
|
IMP_HEALTH,
|
|
IMP_LEADERSHIP,
|
|
IMP_MARKSMANSHIP,
|
|
IMP_EXPLOSIVE,
|
|
IMP_MECHANICAL,
|
|
IMP_MEDICAL,
|
|
//SKILLS
|
|
IMP_HTH,
|
|
IMP_MARTIALARTS,
|
|
IMP_NIGHTOPS,
|
|
IMP_STEALTHY,
|
|
IMP_ROOFTOPS,
|
|
IMP_LOCKPICKING,
|
|
IMP_ELECTRONICS,
|
|
IMP_THROWING,
|
|
IMP_KNIFING,
|
|
IMP_HEAVYWEAPONS,
|
|
IMP_AUTOWEAPONS,
|
|
IMP_AMBIDEXTROUS,
|
|
IMP_CAMOUFLAGED,
|
|
IMP_TEACHING,
|
|
IMP_THIEF,
|
|
|
|
MAX_IMP_ITEM_TYPES
|
|
};
|
|
|
|
extern IMP_ITEM_CHOICE_TYPE gIMPItemChoices[MAX_IMP_ITEM_TYPES];
|
|
|
|
#endif |