home *** CD-ROM | disk | FTP | other *** search
/ Igromania 1999 August / Igromania_1999-08.iso / DLH / dlh_8_99.exe / 1398.DLM / diablo / STRUCT.TXT < prev   
Text File  |  1997-05-21  |  6KB  |  166 lines

  1. // Structure of Diablo character
  2.  
  3. typedef struct_diablo_equip
  4. {
  5.     long Id1;
  6.     long Id2; 
  7.     long Id3;
  8. // Id3 : 0 => Books, Potions, Elixirs, Scrolls
  9. //     1 => Daggers, Swords, Falchions, Scimitars
  10. //     2 => Axes
  11. //     3 => Bows
  12. //     4 => Clubs, Flails, Maces
  13. //     5 => Shields
  14. //     6 => Cloaks, Capes, Armors
  15. //     7 => Caps, Skull Caps, Helms, Crowns
  16. //     8 => Mails
  17. //     9 => Plates
  18. //     A => Staves
  19. //     B => 
  20. //     C => Rings
  21. //     D => Amulets
  22. //     E => 
  23. //     F => 
  24.     long Unknown0C [11];
  25.     long Flag_Identified;    // 0 => Not Identified/Normal Item, 1 => Identified
  26.     unsigned char Item_Type;// 0 => Normal, 1 => Special (blue), 2 => Unique (Yellow)
  27.     char Description[64];// Normal Name / Not Identified Name
  28.     char Name[64];// Identified Name
  29.     unsigned char Placement;
  30.     //    1 => One Handed Weapon
  31.     //    2 => Two Handed Weapon
  32.     //    3 => Armor
  33.     //    4 => Head Gear
  34.     //    5 => Ring
  35.     //    6 => Amulet
  36.     //    7 => None
  37.     unsigned char Classifies;
  38.     //    1 => Damage (Weapons)
  39.     //    1 => Armor Class (Armors)
  40.     //    1 => None
  41.     unsigned char UnknownBF;
  42.     unsigned char Graphic;// see crymson list
  43.     unsigned char UnknownC1;
  44.     unsigned char UnknownC2;
  45.     unsigned char UnknownC3;
  46.     long UnknownPrice;
  47.     long KnownPrice;
  48.     long MinDamage;
  49.     long MaxDamage;
  50.     long ArmorClass;
  51.     unsigned char UnknownD8;
  52.     unsigned char MagigSpecialAbility;
  53.     unsigned char CombatSpecialAbility;
  54.     unsigned char AdditionalDamage;
  55.     long MagicType;
  56.     long SpellType;
  57.     long StaffChargesNow;
  58.     long StaffChargesMax;
  59.     long DurabilityNow;    //255
  60.     long DurabilityMax;    //255 => Indestructible
  61.     long DamageBonus;    // * 100 => 0xC4 give 1% etc...
  62.     long ToHitBonus;    //%
  63.     long ArmorBonus;
  64.     long StrengthBonus;
  65.     long MagicBonus;
  66.     long DexterityBonus;
  67.     long VitalityBonus;
  68.     long ResistFire;    //% 75% => Max
  69.     long ResistLightning;    //%
  70.     long ResistMagic;    //%
  71.     long ManaBonus;        // * 64 => 0x40 give 1 point etc...
  72.     long LifeBonus;        // * 64
  73.     long DamageBonus2;    // No Blue HighLight
  74.     long Abs_AngelBonus;    // 1 => Spell Level + 1
  75.                 // 2 => Spell Level + 2 etc...
  76.                 // 0xFFFFFFFF => -1 damage from ennemis
  77.                 // 0xFFFFFFFE => -2 damage from ennemis etc...
  78.     long RadianceBonus;    //10% => 1 give 10% radiance
  79.     long Unknown130;
  80.     long UniqueItemNumber;
  81.         //0x00 => for Normal item or Butcher's Cleaver for special item
  82.         // to 0x59
  83.     long Unknown138;
  84.     long MinAddDamage;
  85.     long MaxAddDamage;
  86.     long Unknown144;
  87.     long Unknown148;
  88.     unsigned char ItemPrefix;
  89.     unsigned char ItemSuffix;
  90.     unsigned char Unknown14E;
  91.     unsigned char Unknown14F;
  92.     long Unknown150; 
  93.     long Unknown154; 
  94.     long Unknown158; 
  95.     long Unknown15C; 
  96.     char MinStrengthReq;
  97.     char MinMagicReq;
  98.     char MinDexterityReq;
  99.     char MinVitalityReq;
  100.     long ItemUseAllowed;    // 0 => Use Not Allowed, 1 => Use Allowed
  101.     long Unknown168; 
  102.     long Unknown16C; 
  103. } DIABLO_EQUIPMENT;        // 368 bytes (0x170)
  104.  
  105. typedef struct _diablo_char
  106. {
  107.   char          iddumpfile[21];
  108.   unsigned char SpellLevels[70];    //0 to 35 only        (offset 0)
  109.   unsigned char SpellFlags[8];        //            (offset 0x46)
  110.   unsigned char Unknown4E[48];        //            (offset 0x4E)
  111.   char          HeroName[32];        //16 bytes + NULL    (offset 0x7E)
  112.   char          CharacterType;        //0: Warrior        (offset 0x7E + 0x20)
  113.                     //1: Rogue
  114.                     //2: Sorcerer
  115. //***** in reverse byte order ie High/xx/xx/Low ***********************
  116. //***** High order byte is don't care (0x03 if win against Diablo)
  117.   long          Strength[2];        // [0]: Now        (offset 0x7E + 0x21)
  118.                     // [1]: Base        (offset 0x7E + 0x25)
  119.   long        Magic[2];        // [0]: Now        (offset 0x7E + 0x29)
  120.                     // [1]: Base        (offset 0x7E + 0x2D)
  121.   long        Dexterity[2];        // [0]: Now        (offset 0x7E + 0x31)
  122.                     // [1]: Base        (offset 0x7E + 0x35)
  123.   long        Vitality[2];        // [0]: Now        (offset 0x7E + 0x39)
  124.                     // [1]: Base        (offset 0x7E + 0x3D)
  125. //*********************************************************************
  126.   long          LevelUp;        //Points to Distribute    (offset 0x7E + 0x44)
  127.   long        BaseDamage;        //            (offset 0x7E + 0x48)
  128.   long          Unknown4C;        //            (offset 0x7E + 0x4C)
  129.   long          BaseLifeNow;        //Hit Points * 64    (offset 0x7E + 0x50)
  130.   long          BaseLifeMax;        //            (offset 0x7E + 0x54)
  131.   long          ModifiedLife[2];    //Hit Points * 64
  132.                     // [0]: Now        (offset 0x7E + 0x58)
  133.                     // [1]: Max        (offset 0x7E + 0x5C)
  134.   long          Unknown60;        //            (offset 0x7E + 0x60)
  135.   long          BaseManaNow;        //Mana * 64        (offset 0x7E + 0x64)
  136.   long          BaseManaMax;        //            (offset 0x7E + 0x68)
  137.   long          ModifiedMana[2];    //Mana * 64
  138.                     // [0]: Now        (offset 0x7E + 0x6C)
  139.                     // [1]: Max        (offset 0x7E + 0x70)
  140.   long          Unknown74;        //            (offset 0x7E + 0x74)
  141.   long          CharacterLevel;        //High order byte is don't care (!= 0 if win against Diablo)
  142.                     //            (offset 0x7E + 0x78)
  143.   long          Experience;        //            (offset 0x7E + 0x7C)
  144.   long          Unknown80;        //            (offset 0x7E + 0x80)
  145.   long          NextLevelExpPoints;    //            (offset 0x7E + 0x84)
  146.   char          Unknown88;        //            (offset 0x7E + 0x88)
  147.   char          ResistMagic;        //            (offset 0x7E + 0x89)
  148.   char          ResistFire;        //            (offset 0x7E + 0x8A)
  149.   char          ResistLightning;    //            (offset 0x7E + 0x8B)
  150.   long          TotalGold;        //            (offset 0x7E + 0x8C)
  151.  
  152.   long        Unknown90[107];        //            (offset 0x7E + 0x90)
  153.   EQUIPMENT     Head;            //            (offset 0x7E + 0x23C)
  154.   EQUIPMENT     RightRing;        //            (offset 0x7E + 0x3AC)
  155.   EQUIPMENT     LeftRing;        //            (offset 0x7E + 0x51C)
  156.   EQUIPMENT     Neck;            //            (offset 0x7E + 0x68C)
  157.   EQUIPMENT     RightHand;        //            (offset 0x7E + 0x7FC)
  158.   EQUIPMENT     LeftHand;        //            (offset 0x7E + 0x96C)
  159.   EQUIPMENT     Body;            //            (offset 0x7E + 0xADC)
  160.   EQUIPMENT     Inventory[40];        //            (offset 0x7E + 0xC4C)
  161.   long          InventoryCount;        //            (offset 0x7E + 0x45CC)
  162.   unsigned char Location[40];        //            (offset 0x7E + 0x45D0)
  163.   EQUIPMENT     Belt[8];        //            (offset 0x7E + 0x45F8)
  164.   char          eos[1];            //            (offset 0x7E + 0x5178)
  165. } DIABLO_CHAR;
  166.