/-/S'pht-Translator-Active/-/


PiD Item Specs
Posted By: Ron HunsingerDate: 6/24/12 10:02 p.m.

The following is a reformatted dump of the internal table that PiD uses to describe item types. The data does not appear in any resources or saved files; it had to be extracted from the data initialization code of the 68K version of PiD (version 2.0).

The formatting will almost certainly come out wrong here. Sorry about that. I did try to add enough punctuation that the lines can still be uniquely parsed, with some extra characters to make it easier to identify the fields even though they don't line up.

00 (Map): 2, instant, 0*, 4oz, 18, $0, none
01 (Watch): 4, watch, 0*, 2oz, 4, $0, none
02 (Flashlight): 5, light, 0*, 10oz, 70, $0, none
03 (Goggles): 6, wear, 1*, 25oz, 450, $0, none
04 (Gasmask): 24, wear, 0*, 15oz, 300, $0, none
05 (): 0, nouse, 0*, 0oz, 0, $0, none
06 (CanvasBag): 9, nouse, 0*, 2oz, 65535, $0, any(400)
07 (): 0, nouse, 0*, 0oz, 0, $0, none
08 (CedarBox): 11, nouse, 2*, 0oz, 100, $0, any(100)
09 (VelvetBag): 12, nouse, 1*, 2oz, 65535, $0, any(12000)
10 (LeadBox): 13, nouse, 2*, 70oz, 190, $0, any(190)
11 (): 0, nouse, 0*, 0oz, 0, $0, none
12 (GlassVial): 15, instant, 0*, 3oz, 12, $0, none
13 (): 0, nouse, 0*, 0oz, 0, $0, none
14 (RedCloak): 23, wear, 1*, 2oz, 60, $0, none
15 (): 0, nouse, 0*, 0oz, 0, $0, none
16 (Nuke): 25, instant, 1*, 220oz, 90, $0, none
17 (Beacon): 26, instant, 1*, 10oz, 60, $0, none
18 (PotionBlue): 17, consume, 0*, 1oz, 10, $0, none
19 (PotionRed): 16, consume, 0*, 1oz, 10, $0, none
20 (PotionBrown): 18, consume, 0*, 2oz, 10, $0, none
21 (PotionViolet): 19, consume, 0*, 1oz, 10, $0, none
22 (MeinKampf): 21, nouse, 0*, 4oz, 0, $0, none
23 (Propaganda): 3, nouse, 0*, 0oz, 0, $0, none
24 (EasterEgg): 22, consume, 2*, 2oz, 0, $0, none
25 (BadM16): 42, nouse, 0*, 115oz, 0, $0, AmmoM16(33)
26 (BadAK47): 46, nouse, 0*, 120oz, 0, $0, AmmoAK*(33)
27 (BadMP41): 43, nouse, 0*, 97oz, 0, $0, AmmoMP(36)
28 (BadP4): 45, nouse, 0*, 46oz, 0, $0, AmmoP4(10)
29 (RingRuby): 28, wear, 0*, 5oz, 2, $380, none
30 (RingAmethyst): 27, wear, 1*, 5oz, 2, $310, none
31 (Necklace): 40, wear, 1*, 20oz, 20, $1201, none
32 (Gemstone): 39, nouse, 5*, 20oz, 40, $540, none
33 (Pipes): 30, instant, 3*, 78oz, 488, $560, none
34 (KeySilver): 32, nouse, 1*, 18oz, 12, $92, none
35 (Bowl): 33, nouse, 1*, 69oz, 260, $150, none
36 (KeyGold): 31, nouse, 1*, 25oz, 12, $11, none
37 (Ingot): 34, nouse, 1*, 365oz, 100, $380, none
38 (Sapphire): 36, nouse, 1*, 2oz, 4, $150, none
39 (): 0, nouse, 0*, 0oz, 0, $0, none
40 (Emerald): 37, nouse, 1*, 3oz, 4, $119, none
41 (Pearl): 38, nouse, 1*, 4oz, 32, $110, none
42 (): 0, nouse, 0*, 0oz, 0, $0, none
43 (): 0, nouse, 0*, 0oz, 0, $0, none
44 (): 0, nouse, 0*, 0oz, 0, $0, none
45 (WeaponKnife): 8, weapon, 0*, 22oz, 40, $0, none
46 (WeaponP4): 45, weapon, 1*, 46oz, 50, $0, AmmoP4(10)
47 (WeaponColt): 44, weapon, 0*, 41oz, 50, $0, AmmoColt(10)
48 (WeaponMP): 43, weapon, 1*, 103oz, 70, $0, AmmoMP(36)
49 (WeaponAK): 46, weapon, 1*, 135oz, 80, $0, AmmoAK*(33)
50 (Weapon40): 47, weapon, 1*, 120oz, 80, $0, Ammo40*(5)
51 (AmmoP4): 48, nouse, 0*, 7oz, 10, $0, none
52 (AmmoMP): 49, nouse, 0*, 19oz, 36, $0, none
53 (AmmoAKPlain): 50, nouse, 0*, 15oz, 33, $0, none
54 (AmmoAKHE): 50, nouse, 0*, 15oz, 33, $0, none
55 (AmmoAKSabot): 50, nouse, 0*, 15oz, 33, $0, none
56 (AmmoM16): 50, nouse, 0*, 19oz, 33, $0, none
57 (AmmoColt): 48, nouse, 0*, 12oz, 10, $0, none
58 (Ammo40HE): 51, nouse, 0*, 2oz, 5, $0, none
59 (Ammo40Frag): 51, nouse, 0*, 2oz, 5, $0, none
60 (Ammo40Proj): 51, nouse, 0*, 4oz, 5, $0, none
61 (SilverMedal): 52, nouse, 0*, 10oz, 70, $1, none
62 (NotePlain): 3, nouse, 0*, 0oz, 0, $0, none
63 (NoteBungie): 3, nouse, 0*, 0oz, 0, $0, none
64 (CrystalYellow): 53, crystal, 2*, 0oz, 0, $0, none
65 (CrystalBlue): 54, crystal, 2*, 0oz, 0, $0, none
66 (CrystalOrange): 55, crystal, 2*, 0oz, 0, $0, none
67 (): 7, nouse, 0*, 0oz, 0, $0, none
68 (CrystalViolet): 56, crystal, 2*, 0oz, 0, $0, none
69 (CrystalGreen): 58, crystal, 2*, 0oz, 0, $0, none
70 (CrystalBlack): 57, crystal, 2*, 0oz, 0, $0, none

The first two columns are just labels (item # and an abbreviated item name). The remaining columns are:

Frame: which image from resource '.256'(128). There is no palette adjustment, since items by definition can be picked up and carried between different levels, which would be using different palettes.

Usage: Each item has its own specific usage, but they fall into groups that have many behaviors in common. (For example, all weapons are different, but they behave alike in that they can be wielded and produce similar messages when you pick them up and put them down.) Internally, the game assigns a "usage number", from 0 to 9, to each item. Each group has specific messages that are displayed when you begin to use one, append to the inventory line while the item is "in use", or displayed when you stop using them. For some groups, the only difference in how they act is that these messages are different. I've arbitrarily picked mnemonic names for these groups:

Usage=0 (nouse): You can't use these items. Double-clicking on such an item in your inventory produces the message "You don't seem to be able to do anything with the ^1." (An unusable item may still be useful. For example, you can open/close the Canvas Bag, and put stuff in it, but you can't "use" it.)

Usage=1 (???): Behaves just like "nouse", but its volume is variable. PiD does not have any items with this usage.

Usage=2 (consume): When you double-click on such an item to "use" it, something unique to the item happens, and then the item is removed from your inventory. Potions and the Easter Egg have this usage.

Usage=3 (weapon): To use a weapon, it must not be in a container, and if it needs ammo you must have some. Your current weapon is put away, and this weapon (if different from what was your current weapon) becomes current. The begin/during/after messages are "ready", "(in hand)", "put away".

Usage=4 (crystal): To use a crystal, it must not be in a container. Your current crystal is put away, and this one (if different) is wielded. The messages are "ready", "(ready)", "put away".

Usage=5 (instant): Using this type of item does something, but the item itself is unaffected and remains in your inventory. Any messages are unique to the item.

Usage=6 (light): To use a light, it must not be in a container. Using a light toggles its "in use" flag, and also toggles a related flag the program can examine without having to search your inventory. The messages are "turned on", "(on)", "turned off".

Usage=7 (wear): Same as usage 6, except the messages are "worn", "(worn)", "removed".

Usage=8 (watch): Same as usage 6, except the messages are "worn", "(on wrist)", "removed".

Usage=9 (???): Same as usage 6, except the messages are "worn", "", "removed". There are no items in PiD with this usage.

The next column is the number of points (gold stars, hence the asterisk) you earn the first time you pick one of these items up.

Then there's the weight of the item, nominally in ounces, but the actual unit is 1/28th of a Kilogram. There will be some rounding error when these weights are converted to decimal for display. Weight is tracked but ignored in PiD.

The next column is the "volume" of the item. Volume determines how many things you can put in a container. The combined volume of all items in a container cannot exceed the container's capacity.

The $value is the value of the item. (Multiply the values in the table by 100. The unit is $0.1K.)

The final column combines two attributes of a container. Each item has a capacity, which is the maximum combined total of all items you put in the container. An item with a capacity of 0 is not a container. The other attribute controls what types of items can go into the container. A non-negative value means only that specific item can go in the container. (For example, the P4 pistol can only contain P4 ammo.) Negative values are wild-cards: -1 matches anything, -5 matches any kind of 40mm ammo, -6 matches any kind of AK ammo. The final column combines these as "none" if the item isn't a container, or itemType(capacity) if it is.

Note that the table says the Cedar Box can contain anything. There's a separate table specifically for the Cedar Box that limits it to holding only these items: Flashlight, Knife, WeaponP4, AmmoP4, AmmoMP, AmmoAKPlain, AmmoAKHE, AmmoAKSabot, AmmoM16, AmmoColt, Ammo40HE, Ammo40Frag, Ammo40Proj, SilverMedal.

Note that many of the "junk" items (notes, pamphlets, etc.) have zero volume. You can add them freely to containers without using up any space. (But they still count toward the hard limit of 256 items in your inventory.)

The table contains a number of unused entries, with all values zeroed out, EXCEPT that they forgot to zero out the frame # for item 67. The corresponding image is a tiny irregularly shaped red something-or-other. The shape dumper programs show a number of similar-appearing unused images in an assortment of colors. Make of that what you will.

For those who don't like my re-formatting, here's the original unformatted hex dump of the table:

fram usg val wt vol $$$ cap cont [kItemtype...]
[ 0]: 0002 0005 0000 0004 0012 0000 0000 0000 Map
[ 1]: 0004 0008 0000 0002 0004 0000 0000 0000 Watch
[ 2]: 0005 0006 0000 000A 0046 0000 0000 0000 Flashlight
[ 3]: 0006 0007 0001 0019 01C2 0000 0000 0000 Goggles
[ 4]: 0018 0007 0000 000F 012C 0000 0000 0000 Gasmask
[ 5]: 0000 0000 0000 0000 0000 0000 0000 0000
[ 6]: 0009 0000 0000 0002 FFFF 0000 0190 FFFF CanvasBag
[ 7]: 0000 0000 0000 0000 0000 0000 0000 0000
[ 8]: 000B 0000 0002 0000 0064 0000 0064 FFFF CedarBox
[ 9]: 000C 0000 0001 0002 FFFF 0000 2EE0 FFFF VelvetBag
[10]: 000D 0000 0002 0046 00BE 0000 00BE FFFF LeadBox
[11]: 0000 0000 0000 0000 0000 0000 0000 0000
[12]: 000F 0005 0000 0003 000C 0000 0000 0000 GlassVial
[13]: 0000 0000 0000 0000 0000 0000 0000 0000
[14]: 0017 0007 0001 0002 003C 0000 0000 0000 RedCloak
[15]: 0000 0000 0000 0000 0000 0000 0000 0000
[16]: 0019 0005 0001 00DC 005A 0000 0000 0000 Nuke
[17]: 001A 0005 0001 000A 003C 0000 0000 0000 Beacon
[18]: 0011 0002 0000 0001 000A 0000 0000 0000 PotionBlue
[19]: 0010 0002 0000 0001 000A 0000 0000 0000 PotionRed
[20]: 0012 0002 0000 0002 000A 0000 0000 0000 PotionBrown
[21]: 0013 0002 0000 0001 000A 0000 0000 0000 PotionViolet
[22]: 0015 0000 0000 0004 0000 0000 0000 0000 MeinKampf
[23]: 0003 0000 0000 0000 0000 0000 0000 0000 Propaganda
[24]: 0016 0002 0002 0002 0000 0000 0000 0000 EasterEgg
[25]: 002A 0000 0000 0073 0000 0000 0021 0038 BadM16
[26]: 002E 0000 0000 0078 0000 0000 0021 FFFA BadAK47
[27]: 002B 0000 0000 0061 0000 0000 0024 0034 BadMP41
[28]: 002D 0000 0000 002E 0000 0000 000A 0033 BadP4
[29]: 001C 0007 0000 0005 0002 017C 0000 0000 RingRuby
[30]: 001B 0007 0001 0005 0002 0136 0000 0000 RingAmethyst
[31]: 0028 0007 0001 0014 0014 04B1 0000 0000 Necklace
[32]: 0027 0000 0005 0014 0028 021C 0000 0000 Gemstone
[33]: 001E 0005 0003 004E 01E8 0230 0000 0000 Pipes
[34]: 0020 0000 0001 0012 000C 005C 0000 0000 KeySilver
[35]: 0021 0000 0001 0045 0104 0096 0000 0000 Bowl
[36]: 001F 0000 0001 0019 000C 000B 0000 0000 KeyGold
[37]: 0022 0000 0001 016D 0064 017C 0000 0000 Ingot
[38]: 0024 0000 0001 0002 0004 0096 0000 0000 Sapphire
[39]: 0000 0000 0000 0000 0000 0000 0000 0000
[40]: 0025 0000 0001 0003 0004 0077 0000 0000 Emerald
[41]: 0026 0000 0001 0004 0020 006E 0000 0000 Pearl
[42]: 0000 0000 0000 0000 0000 0000 0000 0000
[43]: 0000 0000 0000 0000 0000 0000 0000 0000
[44]: 0000 0000 0000 0000 0000 0000 0000 0000
[45]: 0008 0003 0000 0016 0028 0000 0000 0000 WeaponKnife
[46]: 002D 0003 0001 002E 0032 0000 000A 0033 WeaponP4
[47]: 002C 0003 0000 0029 0032 0000 000A 0039 WeaponColt
[48]: 002B 0003 0001 0067 0046 0000 0024 0034 WeaponMP
[49]: 002E 0003 0001 0087 0050 0000 0021 FFFA WeaponAK
[50]: 002F 0003 0001 0078 0050 0000 0005 FFFB Weapon40
[51]: 0030 0000 0000 0007 000A 0000 0000 0000 AmmoP4
[52]: 0031 0000 0000 0013 0024 0000 0000 0000 AmmoMP
[53]: 0032 0000 0000 000F 0021 0000 0000 0000 AmmoAKPlain
[54]: 0032 0000 0000 000F 0021 0000 0000 0000 AmmoAKHE
[55]: 0032 0000 0000 000F 0021 0000 0000 0000 AmmoAKSabot
[56]: 0032 0000 0000 0013 0021 0000 0000 0000 AmmoM16
[57]: 0030 0000 0000 000C 000A 0000 0000 0000 AmmoColt
[58]: 0033 0000 0000 0002 0005 0000 0000 0000 Ammo40HE
[59]: 0033 0000 0000 0002 0005 0000 0000 0000 Ammo40Frag
[60]: 0033 0000 0000 0004 0005 0000 0000 0000 Ammo40Proj
[61]: 0034 0000 0000 000A 0046 0001 0000 0000 SilverMedal
[62]: 0003 0000 0000 0000 0000 0000 0000 0000 NotePlain
[63]: 0003 0000 0000 0000 0000 0000 0000 0000 NoteBungie
[64]: 0035 0004 0002 0000 0000 0000 0000 0000 CrystalYellow
[65]: 0036 0004 0002 0000 0000 0000 0000 0000 CrystalBlue
[66]: 0037 0004 0002 0000 0000 0000 0000 0000 CrystalOrange
[67]: 0007 0000 0000 0000 0000 0000 0000 0000
[68]: 0038 0004 0002 0000 0000 0000 0000 0000 CrystalViolet
[69]: 003A 0004 0002 0000 0000 0000 0000 0000 CrystalGreen
[70]: 0039 0004 0002 0000 0000 0000 0000 0000 CrystalBlack

[ Post a Reply | Message Index | Read Prev Msg | Read Next Msg ]
Pre-2004 Posts

Replies:

PiD Item SpecsRon Hunsinger 6/24/12 10:02 p.m.
     Re: PiD Item SpecsGodot 6/25/12 7:47 a.m.
           Re: PiD Item SpecsPerseusSpartacus 6/25/12 10:37 a.m.
                 Re: PiD Item SpecsRon Hunsinger 6/25/12 5:39 p.m.
                       Re: PiD Item SpecsPerseusSpartacus 6/25/12 6:04 p.m.
                       Re: PiD Item SpecsHopper 6/26/12 8:52 a.m.
                             Re: PiD Item SpecsRon Hunsinger 6/26/12 8:26 p.m.
                                   Re: PiD Item SpecsHopper 6/28/12 8:55 p.m.
           Re: PiD Item Specs *LINK*Ron Hunsinger 6/25/12 2:01 p.m.

[ Post a Reply | Message Index | Read Prev Msg | Read Next Msg ]
Pre-2004 Posts

 

 

Your Name:
Your E-Mail Address:
Subject:
Message:

If you'd like to include a link to another page with your message,
please provide both the URL address and the title of the page:

Optional Link URL:
Optional Link Title:

If necessary, enter your password below:

Password:

 

 

Problems? Suggestions? Comments? Email maintainer@bungie.org

Marathon's Story Forum is maintained with WebBBS 5.12.