ITM файлы

Описание

ITM-файл описывает любой предмет, который может быть размещен в инвентаре любого же существа. Некоторые ITM-файлы не описывают объекты, которые игрок обычно может размещать в своем инвентаре -- так например, многие монстры имеют атакующий элемент, являющийся особым предметом, никогда не появляющимся в чистом виде в игровом мире. В Torment есть дополнительная сложность из-за того, что такие объекты могут иметь ассоциацию с ресурсами диалога; следовательно, возможно создать предметы с которыми персонаж может вести диалоги.

версии ITM-файла

ITM V1

Общая структура

Заголовок ITM V1

СмещениеРазмер (тип данных)Описание
0x00004 (символ. массив)Сигнатура ('ITM ')
0x00044 (символ. массив)Версия ('V1 ')
0x00084 (строковая ссылка)Имя предмета (основное)
0x000c4 (строковая ссылка)Имя предмета (определенное)
0x00108 (ссылка на ресурс)"Предмет израсходован" -- (т.е. во что превращается предмет, когда он ломается или истощается?)
0x00184 (двойное слово)Флаги:
  • бит 0: неразрушимый
  • бит 1: 2-ручный
  • бит 2: опускаемый
  • бит 3: отображаемый на экране
  • бит 4: проклятый
  • бит 5: копируемый (свиток) -- различное значение для различных типов предметов, или не используется для прочих типов предметов (не свитков)?
  • бит 6: магический
  • бит 7: (устанавливается если предмет является луком?)
  • бит 8: серебряный
  • бит 9: железный
  • бит 10: неизвестен
  • бит 11: непокупаемый
  • бит 12: неизвестен
0x001c2 (слово)Код индекса в предметной категории, как указано в этой таблице
0x001e4 (двойное слово)Карта пригодности Предмета:
  • бит 0: Не используется Хаотичными
  • бит 1: Не используется Злыми
  • бит 2: Не используется Добрыми
  • бит 3: Не используется Нейтрально-Добрыми или -Злыми
  • бит 4: Не используется Упорядоченными
  • бит 5: Не используется Упорядоченно- или Хаотично-Нейтральными
  • бит 6: Не используется Бардами
  • бит 7: Не используется Клериками
  • бит 8: Не используется Клериками-Магами
  • бит 9: Не используется Клериками-Ворами
  • бит 10: Не используется Клериками-Следопытами
  • бит 11: Не используется Бойцами
  • бит 12: Не используется Бойцами-Друидами
  • бит 13: Не используется Бойцами-Магами
  • бит 14: Не используется Бойцами-Клериками
  • бит 15: Не используется Бойцами-Магами-Клериками
  • бит 16: Не используется Бойцами-Магами-Ворами
  • бит 17: Не используется Бойцами-Ворами
  • бит 18: Не используется Магами
  • бит 19: Не используется Ворами-Магами
  • бит 20: Не используется Паладинами
  • бит 21: Не используется Следопытами
  • бит 22: Не используется Ворами
  • бит 23: Не используется Эльфами
  • бит 24: Не используется Дварфами
  • бит 25: Не используется Полуэльфами
  • бит 26: Не используется Полуросликами
  • бит 27: Не используется Людьми
  • бит 28: Не используется Гномами
  • бит 29: ?
  • бит 30: Не используется Друидами
  • бит 31: ?
0x00222 (символы)Символьный индекс BAM-ресурса для портрета в инвентаре. BAM-ресурс используется на экране инвентаря следующим образом: если эти символы являются пробелами, то ресурс не используется. Иначе, - в зависимости от того, какой из префиксов Small, Medium, или Large, WPS, WPM, или WPL используется для символов. Индекс используется как имя BAM-ресурса для графики, которая накладывается поверх портрета персонажа. Для согласования указателей (графики) с их отображением, слева от каждого графического элемента оставляются пробелы. Схожая процедура используется для выбора анимации ресурсов другой графики и анимаций, необходимых для указания на особые типы экипировки и/или типы персонажа.
0x00242 (слово)Минимально необходимый Уровень
0x00262 (слово)Минимально необходимая Сила
0x00282 (слово)Минимально необходимое улучшение Силы
0x002a2 (слово)Минимально необходимый Интеллект
0x002c2 (слово)Минимально необходимая Ловкость
0x002e2 (слово)Минимально необходимая Мудрость
0x00302 (слово)Минимально необходимое Телосложение
0x00322 (слово)Минимально необходимая Харизма
0x00344 (двойное слово)Базовое значение цены (это значение отдельно взятого предмета)
0x00382 (слово)Число допустимых совмещений
0x003a8 (ссылка на ресурс)Иконка предмета
0x00422 (слово)Знание (т.е. навык Знания, необходимый для определения этого предмета)
0x00448 (ссылка на ресурс)Иконка предмета, брошенного на землю
0x004c4 (двойное слово)Базовый вес (т.е. вес для отдельно взятого предмета)
0x00504 (строковая ссылка)Описание предмета (базовое)
0x00544 (строковая ссылка)Описание предмета (определенное)
0x00588 (ссылка на ресурс)Иконка носимого предмета (т.е. графика, которая появляется в руках персонажа при экипировке этим предметом).
0x00604 (двойное слово)"Зачарованный"
0x00644 (двойное слово)Смещение структур Способностей
0x00682 (слово)Число структур Способностей count
0x006a4 (двойное слово)Смещение структур Эффектов
0x006e2 (слово)Неизвестно. Может быть индексом первой "глобальной" (т.е. не присоединенной к указанной способности) структуры Эффектов
0x00702 (слово)Число "глобальных" (т.е. не присоединенных к указанной способности) структур Эффектов

Способности ITM V1

Грубо говоря, каждая "способность" (я полагаю, что эта терминология используется в инструментах от Bioware) соответствует определенному способу использования предмета. Например, в BG (Врата Балдура), есть топор, который может быть использован как в ближнем бою (рука-к-руке), так и метательным образом. Или же "Палочка огня" ("wand of fire"), котрая испускает как огненный шар, так и "Выжигатель Аганназара" ("aganazzar's scorcher"). Для использования способности, вы щелкаете на выбранном предмете и получаете меню для выбора способа использования -- аналогичная процедура производится и для выбора различных типов стрел для стрелкового оружия. (Также отметьте, что для лука возможно получить и информационный экран, в котором, например, приведены все "способности" лука -- а именно различные типы амуниции, используемой для стрельбы. Я полагаю, что нет точного соответствия между одинаковыми интерфейсами, используемыми для выбора "способностей" предмета, или различных типов амуниции запускателя; вероятно игровой движок управляет типами амуниции через схожий интерфейс.).

СмещениеРазмер (тип данных)Описание
0x00001 (байт)"Тип" способности:
  • 0: тип по умолчанию? (большинство зелий и разносторонних предметов)
  • 1: рукопашная атака (недистанционная)
  • 2: дистанционная атака (как для амуниции, так и для метательного оружия)
  • 3: магический эффект?
  • 4: запускаемая -- для использования некоторых "дистанционных атак" предмету необходим т.н. запускатель
0x00011 (байт)1 - если предмет должен быть определен перед использованием этой способности, 0 - в противном случае
0x00022 (слово)Неизвестно!
0x00048 (ссылка на ресурс)иконка для представлений этой способности при отображении в GUI (графический интерфейс пользователя)
0x000c2 (слово)Выбираемый тип цели для этой способности:
  • 1: живой субъект
  • 2: инвентарь
  • 3: мертвый субъект
  • 4: любой из всего диапазона
  • 5: заклинатель
  • прочие значения?
0x000e2 (слово)Дальность для этой способности
0x00102 (слово)Тип запускателя, необходимого для этой способности:
  • 0: Нет
  • 1: Лук
  • 2: Арбалет
  • 3: Праща
0x00122 (слово)Фактор скорости для этой способности
0x00142 (слово)Улучшение к атаке (THAC0) при использовании этой способности
0x00162 (слово)Число сторон игральной кости при определении урона от этой способности
0x00182 (слово)Число броской игральной кости при определении урона от этой способности
0x001a2 (слово)"Зачарованный" (т.е. улучшение к урону -- постоянное улучшение, добавляемое к результату игральной(ых) кости(ей))
0x001c2 (слово)Тип урона:
  • 0: нет?
  • 1: колющий (также используется для некоторых магических атак, хотя возможно и просто игнорируется в таких случаях -- т.е. урон указывается как 0d6+0)
  • 2: дробящий
  • 3: рубящий
  • 4: стрелковый
0x001e2 (слово)Число прикрепленных Структур эффектов для этой способности. Отметьте, что не все способности описываются в терминах эффектов. Так например, стандартный оружейный урон не требует никаких эффектов, просто - улучшение атаки (THAC0), спецификацию игральной кости, улучшение урона и тип урона.
0x00202 (слово)Индекс первой прикрепленной Структуры эффектов для этой способности.
0x00222 (слово)Число использований этой способности до ее исчерпания
0x00242 (слово)Неизвестно. Похоже должно быть связано с предыдущим полем...
0x00262 (слово)Неизвестно.
0x00282 (слово)Неизвестно.
0x002a2 (слово)Снарядный тип (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.)
0x002c2*3 (массив слов)Неизвестно. Это выглядит как тройная процентовка. Для дистанционного оружия все слова 0, а для всех других типов предметов, - в сумме соответствуют 100, каждое находится в диапазоне 0-100. Неизвестно, для чего служит этот код.
0x00322 (слово)1 - если снарядный тип есть "стрела", 0 - в противном случае.
0x00342 (слово)1 - если снарядный тип есть "болт", 0 - в противном случае.
0x00362 (слово)1 - если дистанционное оружие относится к разностороннему (метательное или запускаемое из пращи). 0 - в противном случае.

ITM V1.1

Примечание: Эта структура во многом аналогична структуре 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.

Общая структура

Заголовок ITM V1.1

СмещениеРазмер (тип данных)Описание
0x00004 (символ. массив)Сигнатура ('ITM ')
0x00044 (символ. массив)Версия ('V1.1')
0x00084 (строковая ссылка)Item name (generic)
0x000c4 (строковая ссылка)Item name (identified)
0x00108 (ссылка на ресурс)"Used Up Item" -- (i.e. what does this become when it breaks or is used up?)
0x00184 (двойное слово)Flags:
  • бит 0: indestructible
  • бит 1: two-handed
  • бит 2: droppable
  • бит 3: displayable
  • бит 4: cursed
  • бит 5: copyable (scroll)
  • бит 6: magical
  • бит 7: (set iff item is a bow?)
  • бит 8: silver
  • бит 9: cold iron
0x001c2 (слово)Item category index, as specified in this table
0x001e4 (двойное слово)Item usability bitmap:
  • бит 0: Не используется Chaotic
  • бит 1: Не используется Evil
  • бит 2: Не используется Good
  • бит 3: Не используется Good-Evil Neutral
  • бит 4: Не используется Lawful
  • бит 5: Не используется Lawful-Chaotic Neutral
  • бит 6: Не используется Sensates
  • бит 7: Не используется Priest
  • бит 8: Не используется Godsmen
  • бит 9: ???
  • бит 10: Не используется Chaosmen
  • бит 11: Не используется Fighter
  • бит 12: ???
  • бит 13: Не используется ???
  • бит 14: Не используется Dustmen
  • бит 15: ???
  • бит 16: Не используется Indeps
  • бит 17: ???
  • бит 18: Не используется Mage
  • бит 19: Не используется ???
  • бит 20: Не используется Dak'kon
  • бит 21: Не используется Fall-From-Grace
  • бит 22: Не используется Thief
  • бит 23: Не используется Vhailor
  • бит 24: Не используется Ignus
  • бит 25: Не используется Morte
  • бит 26: Не используется Nordom
  • бит 27: ???
  • бит 28: Не используется Annah
  • бит 29: ???
  • бит 30: Не используется Nameless One
  • бит 31: ???
0x00222 (символы)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.
0x00242 (слово)Minimum level requirement
0x00262 (слово)Minimum strength requirement
0x00282 (слово)Minimum strength bonus requirement
0x002a2 (слово)Minimum intelligence requirement
0x002c2 (слово)Minimum dexterity requirement
0x002e2 (слово)Minimum wisdom requirement
0x00302 (слово)Minimum constitution requirement
0x00322 (слово)Minimum charisma requirement
0x00344 (двойное слово)Base value (i.e. before modification, this is the market value of a single unit of this item)
0x00382 (слово)Max stackable
0x003a8 (ссылка на ресурс)Item Icon
0x00422 (слово)Lore (i.e. Lore skill required to identify this item)
0x00448 (ссылка на ресурс)Ground Icon
0x004c4 (двойное слово)Base weight (i.e. weight for a single unit of this item)
0x00504 (строковая ссылка)Item description (generic)
0x00544 (строковая ссылка)Item description (identified)
0x00588 (ссылка на ресурс)Carried Icon (i.e. graphic as it appears in your hand when you are walking).
0x00604 (двойное слово)"Зачарование"
0x00644 (двойное слово)Ability structs offset
0x00682 (слово)Ability structs count
0x006a4 (двойное слово)Effect structs offset
0x006e2 (слово)Unknown. Could be index of first "global" (i.e. not attached to a specific ability) effect structs
0x00702 (слово)Count of "global" (i.e. not attached to a specific ability) effect structs
0x00724 (двойное слово)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.
0x00764*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.

Способности ITM V1.1

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.).

СмещениеРазмер (тип данных)Описание
0x00001 (байт)Ability "type":
  • 0: default type? (mostly potions and miscellaneous items)
  • 1: melee attack (non-ranged attacks)
  • 2: ranged attack (both for ammunition and for throw weapon types)
  • 3: magical effect?
  • 4: launcher -- enables use of some "ranged attack" items which require a launcher
0x00011 (байт)1 if item must be identified before this ability can be used, 0 otherwise
0x00022 (слово)Unknown!
0x00048 (ссылка на ресурс)icon to represent this ability wherever it needs to be displayed in the GUI
0x000c2 (слово)Selectable target type for this ability:
  • 1: living actor
  • 2: inventory
  • 3: dead actor
  • 4: any point within range
  • 5: caster
  • other values?
0x000e2 (слово)Range for this ability
0x00102 (слово)Launcher type required for this ability:
  • 0: None
  • 1: bow
  • 2: crossbow
  • 3: sling
0x00122 (слово)Speed factor for this ability
0x00142 (слово)To-hit bonus when using this ability
0x00162 (слово)Number of sides on damage dice to be rolled for this ability
0x00182 (слово)Number of damage dice to be rolled for this ability
0x001a2 (слово)"Enchanted" (i.e. bonus to damage -- constant bonus added to hit dice)
0x001c2 (слово)Damage type:
  • 0: none?
  • 1: piercing (also appears to be set for some magical attacks, though it is likely ignored in these cases -- i.e. damage specified as 0d6+0)
  • 2: crushing
  • 3: slashing
  • 4: missile
0x001e2 (слово)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.
0x00202 (слово)Index of first attached Effect structs for this ability.
0x00222 (слово)Number of times this ability can be used before it is exhausted
0x00242 (слово)Unknown. Appears that it might be related to the previous field...
0x00262 (слово)Unknown.
0x00282 (слово)Unknown.
0x002a2 (слово)Unknown.
0x002c2*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.
0x00322 (слово)1 if this is an "arrow" type projectile, 0 else
0x00342 (слово)1 if this is an "bolt" type projectile, 0 else
0x00362 (слово)1 if this is a miscellaneous missile weapon (thrown, or launched from a sling). 0 else