Objects in the Dungeon ---------------------- Objects in the Dungeon are stored as a block of memory. This block of memory contains both objects that are in the players inventory as well as objects that are on the Dungeon floor. Objects have varying lengths with some containing "effects" that use a sort of macro language (which I've not attempted to decode yet). All values below are in hex. There are various object types. Worn items are type 85. Corpses are type 07. Scrolls and cards are type 90. Weapons seem to be type 83 and 03 - doesn't seem to represent 1 or 2 handed weapons which I thought was a possibility. Weapons have "Hit Points" (CP below). The CP value decreases by 1 every few turns of use. When this value reaches 0 it will break. Getting the weapon repaired (using the Whetstone or a Renew scroll) sets CP back to MP (Maximum "Hit Points"). For other objects (Eyes or Horns)these values represent the number of times the object can be used before it disappears from your inventory. Weapons with effects (E.g. Unholy Sword) still have the same 16 bytes for damage etc that follow the 00 00 FF 00 of standard weapons - look for ?? 00 FF 00 to identify where this begins in a weapon with effects. For my own AR port I have assumed that the first digit in a damage value represents the number of dice and the second digit the value of the die. E.g. Battle Axe has blunt damage 12 and sharp damage 27 - (1 x 2 sided) + (2 x 7 sided) giving a potential damage value of between 3 - 16. Not sure if this is correct usage of the damage values though and don't know how other modifiers work here such as Strength. Object Structure (using a standard weapon as an example) -------------------------------------------------------- Object type - 1 byte Overall object length - byte ?? - 1 byte (Always seems to be 00) ?? - 1 byte (Always seems to be 00) ?? - 1 byte Offset (in bytes) from 1st byte in object to 1st byte following the text description - 1 byte Name - variable length ?? - 1 byte (These 4 bytes are usually 00 00 FF 00) ?? - 1 byte ?? - 1 byte ?? - 1 byte Blunt damage - 1 byte Sharp damage - 1 byte Earth damage - 1 byte Air damage - 1 byte Fire damage - 1 byte Water damage - 1 byte Power damage - 1 byte Magic damage - 1 byte Good damage - 1 byte Evil damage - 1 byte Cold damage - 1 byte ?? - 1 byte - possibly parrying ability ?? - 1 byte Current Hit Points - 1 byte Maximum Hit Points - 1 byte ?? - 1 byte ?? - 1 byte Examples -------- Ty Ln ?? ?? ?? Of Name ?? ?? ?? ?? Bl Sh Ea Ai Fi Wa Po Ma Go Ev Co ?? ?? CP MP ?? ?? -- -- -- -- -- -- ---------- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 83 25 00 00 0A 11 Battle Axe 00 00 FF 00 12 27 00 00 00 00 00 00 00 00 00 16 10 29 37 00 10 83 24 00 00 07 10 Razor Ice 00 00 FF 00 00 27 00 00 00 00 00 00 00 00 18 00 00 14 20 90 50 Key for charts -------------- Ty = Object Type Name = Text description of object Bl = Blunt damage Sh = Sharp damage Ea = Earth damage Ai = Air damage Fi = Fire damage Wa = Water damage Po = Power damage Ma = Magic damage Go = Good damage (against Evil encounters) Ev = Evil damage (against Good encounters) Co = Cold damage CP = Current "Hit Points" for object MP = Maximum "Hit Points" for an object if repaired ?? = possibly 1 or 2 handed, bonus to hit, minimum strength to wield, minimum dexterity to wield, parrying ability or weight Example Weapons (minus structure, lengths and effect information) ---------------------------------------------------------------- Ty Name ?? ?? ?? ?? Bl Sh Ea Ai Fi Wa Po Ma Go Ev Co ?? ?? CP MP ?? ?? 83 Claymore 00 00 FF 00 13 28 00 00 00 00 00 00 00 00 00 28 0D 30 30 80 15 83 Halberd 00 00 FF 00 11 26 00 00 00 00 00 00 00 00 00 14 06 28 28 C0 20 03 serp staff 00 00 FF 00 26 16 00 00 00 00 00 00 00 00 00 12 18 20 20 CA 40 83 spear 00 00 FF 00 00 16 1A 00 00 00 00 00 00 00 00 14 07 28 28 C3 30 83 stilletto 00 00 FF 00 00 15 00 00 00 00 00 00 00 00 00 04 08 10 10 A9 01 83 dagger 00 00 FF 00 00 15 00 00 00 00 00 00 00 00 00 04 06 10 10 81 02 83 Kris Knife 00 00 FF 00 00 24 00 00 00 00 00 00 00 00 00 04 07 18 18 A8 08 83 Razor Ice 00 00 FF 00 00 27 00 00 00 00 00 00 00 00 18 00 00 14 20 90 50 83 Broadsword 00 00 FF 00 00 18 00 00 00 00 00 00 00 00 00 0C 0A 3D 3D 80 11 83 Glaive 00 00 FF 00 00 25 00 00 00 00 00 00 00 00 00 14 01 22 24 C0 25 83 Trident 00 00 FF 00 00 18 00 00 00 00 00 00 00 00 00 10 03 20 20 C3 20 83 Scep.Chaos 00 00 FF 00 24 00 00 00 00 00 00 16 00 16 00 00 00 40 40 02 08 83 StaffAmber 00 00 FF 00 24 00 24 00 00 00 00 00 00 00 00 00 00 FF FF DA FF 83 Sickle 00 00 FF 00 00 23 00 00 00 00 00 00 00 00 00 0A 03 14 14 80 04 83 St Ps Mace 00 00 FF 00 38 00 00 00 00 00 00 16 38 00 00 0E 10 FF FF 9A 10