home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Igromania 1999 March
/
18_03_1999.iso
/
DLH.exe
/
1398.DLM
/
diablo
/
STRUCT.TXT
< prev
Wrap
Text File
|
1997-05-21
|
6KB
|
166 lines
// Structure of Diablo character
typedef struct_diablo_equip
{
long Id1;
long Id2;
long Id3;
// Id3 : 0 => Books, Potions, Elixirs, Scrolls
// 1 => Daggers, Swords, Falchions, Scimitars
// 2 => Axes
// 3 => Bows
// 4 => Clubs, Flails, Maces
// 5 => Shields
// 6 => Cloaks, Capes, Armors
// 7 => Caps, Skull Caps, Helms, Crowns
// 8 => Mails
// 9 => Plates
// A => Staves
// B =>
// C => Rings
// D => Amulets
// E =>
// F =>
long Unknown0C [11];
long Flag_Identified; // 0 => Not Identified/Normal Item, 1 => Identified
unsigned char Item_Type;// 0 => Normal, 1 => Special (blue), 2 => Unique (Yellow)
char Description[64];// Normal Name / Not Identified Name
char Name[64];// Identified Name
unsigned char Placement;
// 1 => One Handed Weapon
// 2 => Two Handed Weapon
// 3 => Armor
// 4 => Head Gear
// 5 => Ring
// 6 => Amulet
// 7 => None
unsigned char Classifies;
// 1 => Damage (Weapons)
// 1 => Armor Class (Armors)
// 1 => None
unsigned char UnknownBF;
unsigned char Graphic;// see crymson list
unsigned char UnknownC1;
unsigned char UnknownC2;
unsigned char UnknownC3;
long UnknownPrice;
long KnownPrice;
long MinDamage;
long MaxDamage;
long ArmorClass;
unsigned char UnknownD8;
unsigned char MagigSpecialAbility;
unsigned char CombatSpecialAbility;
unsigned char AdditionalDamage;
long MagicType;
long SpellType;
long StaffChargesNow;
long StaffChargesMax;
long DurabilityNow; //255
long DurabilityMax; //255 => Indestructible
long DamageBonus; // * 100 => 0xC4 give 1% etc...
long ToHitBonus; //%
long ArmorBonus;
long StrengthBonus;
long MagicBonus;
long DexterityBonus;
long VitalityBonus;
long ResistFire; //% 75% => Max
long ResistLightning; //%
long ResistMagic; //%
long ManaBonus; // * 64 => 0x40 give 1 point etc...
long LifeBonus; // * 64
long DamageBonus2; // No Blue HighLight
long Abs_AngelBonus; // 1 => Spell Level + 1
// 2 => Spell Level + 2 etc...
// 0xFFFFFFFF => -1 damage from ennemis
// 0xFFFFFFFE => -2 damage from ennemis etc...
long RadianceBonus; //10% => 1 give 10% radiance
long Unknown130;
long UniqueItemNumber;
//0x00 => for Normal item or Butcher's Cleaver for special item
// to 0x59
long Unknown138;
long MinAddDamage;
long MaxAddDamage;
long Unknown144;
long Unknown148;
unsigned char ItemPrefix;
unsigned char ItemSuffix;
unsigned char Unknown14E;
unsigned char Unknown14F;
long Unknown150;
long Unknown154;
long Unknown158;
long Unknown15C;
char MinStrengthReq;
char MinMagicReq;
char MinDexterityReq;
char MinVitalityReq;
long ItemUseAllowed; // 0 => Use Not Allowed, 1 => Use Allowed
long Unknown168;
long Unknown16C;
} DIABLO_EQUIPMENT; // 368 bytes (0x170)
typedef struct _diablo_char
{
char iddumpfile[21];
unsigned char SpellLevels[70]; //0 to 35 only (offset 0)
unsigned char SpellFlags[8]; // (offset 0x46)
unsigned char Unknown4E[48]; // (offset 0x4E)
char HeroName[32]; //16 bytes + NULL (offset 0x7E)
char CharacterType; //0: Warrior (offset 0x7E + 0x20)
//1: Rogue
//2: Sorcerer
//***** in reverse byte order ie High/xx/xx/Low ***********************
//***** High order byte is don't care (0x03 if win against Diablo)
long Strength[2]; // [0]: Now (offset 0x7E + 0x21)
// [1]: Base (offset 0x7E + 0x25)
long Magic[2]; // [0]: Now (offset 0x7E + 0x29)
// [1]: Base (offset 0x7E + 0x2D)
long Dexterity[2]; // [0]: Now (offset 0x7E + 0x31)
// [1]: Base (offset 0x7E + 0x35)
long Vitality[2]; // [0]: Now (offset 0x7E + 0x39)
// [1]: Base (offset 0x7E + 0x3D)
//*********************************************************************
long LevelUp; //Points to Distribute (offset 0x7E + 0x44)
long BaseDamage; // (offset 0x7E + 0x48)
long Unknown4C; // (offset 0x7E + 0x4C)
long BaseLifeNow; //Hit Points * 64 (offset 0x7E + 0x50)
long BaseLifeMax; // (offset 0x7E + 0x54)
long ModifiedLife[2]; //Hit Points * 64
// [0]: Now (offset 0x7E + 0x58)
// [1]: Max (offset 0x7E + 0x5C)
long Unknown60; // (offset 0x7E + 0x60)
long BaseManaNow; //Mana * 64 (offset 0x7E + 0x64)
long BaseManaMax; // (offset 0x7E + 0x68)
long ModifiedMana[2]; //Mana * 64
// [0]: Now (offset 0x7E + 0x6C)
// [1]: Max (offset 0x7E + 0x70)
long Unknown74; // (offset 0x7E + 0x74)
long CharacterLevel; //High order byte is don't care (!= 0 if win against Diablo)
// (offset 0x7E + 0x78)
long Experience; // (offset 0x7E + 0x7C)
long Unknown80; // (offset 0x7E + 0x80)
long NextLevelExpPoints; // (offset 0x7E + 0x84)
char Unknown88; // (offset 0x7E + 0x88)
char ResistMagic; // (offset 0x7E + 0x89)
char ResistFire; // (offset 0x7E + 0x8A)
char ResistLightning; // (offset 0x7E + 0x8B)
long TotalGold; // (offset 0x7E + 0x8C)
long Unknown90[107]; // (offset 0x7E + 0x90)
EQUIPMENT Head; // (offset 0x7E + 0x23C)
EQUIPMENT RightRing; // (offset 0x7E + 0x3AC)
EQUIPMENT LeftRing; // (offset 0x7E + 0x51C)
EQUIPMENT Neck; // (offset 0x7E + 0x68C)
EQUIPMENT RightHand; // (offset 0x7E + 0x7FC)
EQUIPMENT LeftHand; // (offset 0x7E + 0x96C)
EQUIPMENT Body; // (offset 0x7E + 0xADC)
EQUIPMENT Inventory[40]; // (offset 0x7E + 0xC4C)
long InventoryCount; // (offset 0x7E + 0x45CC)
unsigned char Location[40]; // (offset 0x7E + 0x45D0)
EQUIPMENT Belt[8]; // (offset 0x7E + 0x45F8)
char eos[1]; // (offset 0x7E + 0x5178)
} DIABLO_CHAR;