ITM-файл описывает любой предмет, который может быть размещен в инвентаре любого же существа. Некоторые ITM-файлы не описывают объекты, которые игрок обычно может размещать в своем инвентаре -- так например, многие монстры имеют атакующий элемент, являющийся особым предметом, никогда не появляющимся в чистом виде в игровом мире. В Torment есть дополнительная сложность из-за того, что такие объекты могут иметь ассоциацию с ресурсами диалога; следовательно, возможно создать предметы с которыми персонаж может вести диалоги.
Общая структура
Смещение | Размер (тип данных) | Описание |
---|---|---|
0x0000 | 4 (символ. массив) | Сигнатура ('ITM ') |
0x0004 | 4 (символ. массив) | Версия ('V1 ') |
0x0008 | 4 (строковая ссылка) | Имя предмета (основное) |
0x000c | 4 (строковая ссылка) | Имя предмета (определенное) |
0x0010 | 8 (ссылка на ресурс) | "Предмет израсходован" -- (т.е. во что превращается предмет, когда он ломается или истощается?) |
0x0018 | 4 (двойное слово) | Флаги:
|
0x001c | 2 (слово) | Код индекса в предметной категории, как указано в этой таблице |
0x001e | 4 (двойное слово) | Карта пригодности Предмета:
|
0x0022 | 2 (символы) | Символьный индекс BAM-ресурса для портрета в инвентаре. BAM-ресурс используется на экране инвентаря следующим образом: если эти символы являются пробелами, то ресурс не используется. Иначе, - в зависимости от того, какой из префиксов Small, Medium, или Large, WPS , WPM , или WPL используется для символов. Индекс используется как имя BAM-ресурса для графики, которая накладывается поверх портрета персонажа. Для согласования указателей (графики) с их отображением, слева от каждого графического элемента оставляются пробелы. Схожая процедура используется для выбора анимации ресурсов другой графики и анимаций, необходимых для указания на особые типы экипировки и/или типы персонажа. |
0x0024 | 2 (слово) | Минимально необходимый Уровень |
0x0026 | 2 (слово) | Минимально необходимая Сила |
0x0028 | 2 (слово) | Минимально необходимое улучшение Силы |
0x002a | 2 (слово) | Минимально необходимый Интеллект |
0x002c | 2 (слово) | Минимально необходимая Ловкость |
0x002e | 2 (слово) | Минимально необходимая Мудрость |
0x0030 | 2 (слово) | Минимально необходимое Телосложение |
0x0032 | 2 (слово) | Минимально необходимая Харизма |
0x0034 | 4 (двойное слово) | Базовое значение цены (это значение отдельно взятого предмета) |
0x0038 | 2 (слово) | Число допустимых совмещений |
0x003a | 8 (ссылка на ресурс) | Иконка предмета |
0x0042 | 2 (слово) | Знание (т.е. навык Знания, необходимый для определения этого предмета) |
0x0044 | 8 (ссылка на ресурс) | Иконка предмета, брошенного на землю |
0x004c | 4 (двойное слово) | Базовый вес (т.е. вес для отдельно взятого предмета) |
0x0050 | 4 (строковая ссылка) | Описание предмета (базовое) |
0x0054 | 4 (строковая ссылка) | Описание предмета (определенное) |
0x0058 | 8 (ссылка на ресурс) | Иконка носимого предмета (т.е. графика, которая появляется в руках персонажа при экипировке этим предметом). |
0x0060 | 4 (двойное слово) | "Зачарованный" |
0x0064 | 4 (двойное слово) | Смещение структур Способностей |
0x0068 | 2 (слово) | Число структур Способностей count |
0x006a | 4 (двойное слово) | Смещение структур Эффектов |
0x006e | 2 (слово) | Неизвестно. Может быть индексом первой "глобальной" (т.е. не присоединенной к указанной способности) структуры Эффектов |
0x0070 | 2 (слово) | Число "глобальных" (т.е. не присоединенных к указанной способности) структур Эффектов |
Грубо говоря, каждая "способность" (я полагаю, что эта терминология используется в инструментах от Bioware) соответствует определенному способу использования предмета. Например, в BG (Врата Балдура), есть топор, который может быть использован как в ближнем бою (рука-к-руке), так и метательным образом. Или же "Палочка огня" ("wand of fire"), котрая испускает как огненный шар, так и "Выжигатель Аганназара" ("aganazzar's scorcher"). Для использования способности, вы щелкаете на выбранном предмете и получаете меню для выбора способа использования -- аналогичная процедура производится и для выбора различных типов стрел для стрелкового оружия. (Также отметьте, что для лука возможно получить и информационный экран, в котором, например, приведены все "способности" лука -- а именно различные типы амуниции, используемой для стрельбы. Я полагаю, что нет точного соответствия между одинаковыми интерфейсами, используемыми для выбора "способностей" предмета, или различных типов амуниции запускателя; вероятно игровой движок управляет типами амуниции через схожий интерфейс.).
Смещение | Размер (тип данных) | Описание |
---|---|---|
0x0000 | 1 (байт) | "Тип" способности:
|
0x0001 | 1 (байт) | 1 - если предмет должен быть определен перед использованием этой способности, 0 - в противном случае |
0x0002 | 2 (слово) | Неизвестно! |
0x0004 | 8 (ссылка на ресурс) | иконка для представлений этой способности при отображении в GUI (графический интерфейс пользователя) |
0x000c | 2 (слово) | Выбираемый тип цели для этой способности:
|
0x000e | 2 (слово) | Дальность для этой способности |
0x0010 | 2 (слово) | Тип запускателя, необходимого для этой способности:
|
0x0012 | 2 (слово) | Фактор скорости для этой способности |
0x0014 | 2 (слово) | Улучшение к атаке (THAC0) при использовании этой способности |
0x0016 | 2 (слово) | Число сторон игральной кости при определении урона от этой способности |
0x0018 | 2 (слово) | Число броской игральной кости при определении урона от этой способности |
0x001a | 2 (слово) | "Зачарованный" (т.е. улучшение к урону -- постоянное улучшение, добавляемое к результату игральной(ых) кости(ей)) |
0x001c | 2 (слово) | Тип урона:
|
0x001e | 2 (слово) | Число прикрепленных Структур эффектов для этой способности. Отметьте, что не все способности описываются в терминах эффектов. Так например, стандартный оружейный урон не требует никаких эффектов, просто - улучшение атаки (THAC0), спецификацию игральной кости, улучшение урона и тип урона. |
0x0020 | 2 (слово) | Индекс первой прикрепленной Структуры эффектов для этой способности. |
0x0022 | 2 (слово) | Число использований этой способности до ее исчерпания |
0x0024 | 2 (слово) | Неизвестно. Похоже должно быть связано с предыдущим полем... |
0x0026 | 2 (слово) | Неизвестно. |
0x0028 | 2 (слово) | Неизвестно. |
0x002a | 2 (слово) | Снарядный тип (Projectile type). (До-BG2, было глубоко закодировано; согласно Дмитрию Жемерову (Dmitry Jemerov), здесь были 296 глубоко закодированных типов из IWD. В BG2, некоторые типы все еще глубоко закодированы, но они похоже присутствуют в файлах VEFPROJ.IDS и PROJECTL.IDS. Файл PROJECTL.IDS отображает id на .PRO файл, описывающий снаряды. Файл VEFPROJ.IDS возможно отображает id на .VEF файл, который описывает "визуальный эффект" ('visual effect'), и вероятно используется в новых 3D OpenGL элементах. Точное функционировании этого файла неизвестно, хотя описываемое поле пусто в BG2.) |
0x002c | 2*3 (массив слов) | Неизвестно. Это выглядит как тройная процентовка. Для дистанционного оружия все слова 0, а для всех других типов предметов, - в сумме соответствуют 100, каждое находится в диапазоне 0-100. Неизвестно, для чего служит этот код. |
0x0032 | 2 (слово) | 1 - если снарядный тип есть "стрела", 0 - в противном случае. |
0x0034 | 2 (слово) | 1 - если снарядный тип есть "болт", 0 - в противном случае. |
0x0036 | 2 (слово) | 1 - если дистанционное оружие относится к разностороннему (метательное или запускаемое из пращи). 0 - в противном случае. |
Примечание: Эта структура во многом аналогична структуре V1.0. As such, I've cut'n'pasted this part and made appropriate changes. There may still be a few more changes which need to be made.
Общая структура
Смещение | Размер (тип данных) | Описание |
---|---|---|
0x0000 | 4 (символ. массив) | Сигнатура ('ITM ') |
0x0004 | 4 (символ. массив) | Версия ('V1.1') |
0x0008 | 4 (строковая ссылка) | Item name (generic) |
0x000c | 4 (строковая ссылка) | Item name (identified) |
0x0010 | 8 (ссылка на ресурс) | "Used Up Item" -- (i.e. what does this become when it breaks or is used up?) |
0x0018 | 4 (двойное слово) | Flags:
|
0x001c | 2 (слово) | Item category index, as specified in this table |
0x001e | 4 (двойное слово) | Item usability bitmap:
|
0x0022 | 2 (символы) | Chars for inventory portrait BAM resource index. The BAM resource used on the inventory screen is determined as follows: If these characters are spaces, no resource is used. Otherwise, depending on whether the character is Small, Medium, or Large, WPS , WPM , or WPL is prepended to the characters. This is then used as a BAM resource name for graphics which are superposed on top of the character portrait. To accomodate hands and the like, empty spaces are left in these graphics. Similar procedures are used to choose animation resources for other graphics and animations which need to be specific to particular equipment types and/or character types. |
0x0024 | 2 (слово) | Minimum level requirement |
0x0026 | 2 (слово) | Minimum strength requirement |
0x0028 | 2 (слово) | Minimum strength bonus requirement |
0x002a | 2 (слово) | Minimum intelligence requirement |
0x002c | 2 (слово) | Minimum dexterity requirement |
0x002e | 2 (слово) | Minimum wisdom requirement |
0x0030 | 2 (слово) | Minimum constitution requirement |
0x0032 | 2 (слово) | Minimum charisma requirement |
0x0034 | 4 (двойное слово) | Base value (i.e. before modification, this is the market value of a single unit of this item) |
0x0038 | 2 (слово) | Max stackable |
0x003a | 8 (ссылка на ресурс) | Item Icon |
0x0042 | 2 (слово) | Lore (i.e. Lore skill required to identify this item) |
0x0044 | 8 (ссылка на ресурс) | Ground Icon |
0x004c | 4 (двойное слово) | Base weight (i.e. weight for a single unit of this item) |
0x0050 | 4 (строковая ссылка) | Item description (generic) |
0x0054 | 4 (строковая ссылка) | Item description (identified) |
0x0058 | 8 (ссылка на ресурс) | Carried Icon (i.e. graphic as it appears in your hand when you are walking). |
0x0060 | 4 (двойное слово) | "Зачарование" |
0x0064 | 4 (двойное слово) | Ability structs offset |
0x0068 | 2 (слово) | Ability structs count |
0x006a | 4 (двойное слово) | Effect structs offset |
0x006e | 2 (слово) | Unknown. Could be index of first "global" (i.e. not attached to a specific ability) effect structs |
0x0070 | 2 (слово) | Count of "global" (i.e. not attached to a specific ability) effect structs |
0x0072 | 4 (двойное слово) | These appear to be more flags, similar to the flags appearing earlier in the header. It is unclear what their function may be; they appear to be highly correlated with the earlier flags. Notably, many "important" items, like "Celestial Fire" have different flags here. |
0x0076 | 4*6 (dмассив слов) | These are still completely mysterious. (There are only a few data points which have these set to a non-zero value, which means that it is very difficult to establish any real meaning behind these fields; I'm looking into the purpose of these fields. |
Roughly speaking, each "ability" (I believe this to be the terminology used in the Bioware tools) corresponds to a different way to use the item. For instance, in BG, there is an item which can be either a melee (hand-to-hand) axe, or a throwing axe. Or the "wand of fire" which fires either fireballs or "aganazzar's scorcher". To choose which, you click on the item while it is selected, and you are given a menu to choose the ammunition type -- the same procedure used for selecting different missile types for a missile weapon. (Note, also, that it is possible to get an info screen for a bow, for instance, in which all of the "abilities" of the bow are listed -- namely the different types of ammunition it fires. I suspect that it is no coincidence that the same interfaces are used to select "abilities" of an item, and differing ammunition types of a launcher; likely the game internally handles different ammunition types via the same interface it uses for abilities.).
Смещение | Размер (тип данных) | Описание |
---|---|---|
0x0000 | 1 (байт) | Ability "type":
|
0x0001 | 1 (байт) | 1 if item must be identified before this ability can be used, 0 otherwise |
0x0002 | 2 (слово) | Unknown! |
0x0004 | 8 (ссылка на ресурс) | icon to represent this ability wherever it needs to be displayed in the GUI |
0x000c | 2 (слово) | Selectable target type for this ability:
|
0x000e | 2 (слово) | Range for this ability |
0x0010 | 2 (слово) | Launcher type required for this ability:
|
0x0012 | 2 (слово) | Speed factor for this ability |
0x0014 | 2 (слово) | To-hit bonus when using this ability |
0x0016 | 2 (слово) | Number of sides on damage dice to be rolled for this ability |
0x0018 | 2 (слово) | Number of damage dice to be rolled for this ability |
0x001a | 2 (слово) | "Enchanted" (i.e. bonus to damage -- constant bonus added to hit dice) |
0x001c | 2 (слово) | Damage type:
|
0x001e | 2 (слово) | Number of attached Effect structs for this ability. Note that not all abilities are designed in terms of effects. For instance, standard weapon damage doesn't require any effects, since it is just a to-hit bonus, a die specification, a damage bonus, and a damage type. |
0x0020 | 2 (слово) | Index of first attached Effect structs for this ability. |
0x0022 | 2 (слово) | Number of times this ability can be used before it is exhausted |
0x0024 | 2 (слово) | Unknown. Appears that it might be related to the previous field... |
0x0026 | 2 (слово) | Unknown. |
0x0028 | 2 (слово) | Unknown. |
0x002a | 2 (слово) | Unknown. |
0x002c | 2*3 (массив слов) | Unknown. This appears to be three percentages, though. For missile weapons they are all 0, and for all other types of items, they add up to exactly 100, each being in the range 0-100. It is unknown what these code for. |
0x0032 | 2 (слово) | 1 if this is an "arrow" type projectile, 0 else |
0x0034 | 2 (слово) | 1 if this is an "bolt" type projectile, 0 else |
0x0036 | 2 (слово) | 1 if this is a miscellaneous missile weapon (thrown, or launched from a sling). 0 else |