Skip to content

Latest commit

 

History

History
59 lines (52 loc) · 7.95 KB

GLOSSARY.md

File metadata and controls

59 lines (52 loc) · 7.95 KB

Глоссарий

Термины и сокращения, которые встречаются в коде и документах проекта. Подробности - по ссылкам.

Файлы и ресурсы

Термин Что это Где подробнее
NRes внутренний архивный формат игры (.lib, .rlb, Land.map, Land.msh...): заголовок, элементы, каталог NResLib
MSH меш: дерево деталей (pieces), вершины, материалы, анимация MshLib
WEA / .wea текстовая таблица материалов и карт освещения объекта WeaLib, MaterialLib
MAT0 один материал в Material.lib: стадии (цвета, текстура) и анимации MaterialLib
TEXM текстура игры (форматы, мип-уровни, страницы атласа) TexmLib
PAL палитра: 256 цветов и таблица индексов PalLib
FXID эффект: заголовок и компоненты (свет, звук, объекты, частицы, шлейф) в effects.rlb FxidLib
EXPL (.exp) описание взрыва: эффект по классу поверхности, масштаб, урон ExplLib
CPT контрольные точки объекта: якоря эффектов, дула, контакты колёс, камера ControlLib
NDP повреждения: вклад деталей в жизнь/подвижность и ресурс взрыва ControlLib
CTL управление объектом: лимиты, состояния, привязки, предметы, списки команд ControlLib
Агент (agent record) запись objects.rlb/fortif.rlb со ссылками MSH + WEA + CPT + NDP + CTL ControlLib, §4
BTLU / INTO / EXTO / BULL / STAT / FORT / WPNS / SUNO типы записей агентов: юнит, внутренний узел, внешний узел, снаряд, статический объект, укрепление, оружие, солнце ControlLib, §4
.dat схема (cp) дерево частей объекта: шасси, башни, орудия, броня, боеприпасы CpDatLib
BAS (.bas) контуры основания здания BasLib
TMA (.tma) файл миссии: ареалы, кланы, объекты MissionTmaLib
SCR / FML / VAR скрипты ИИ: инструкции, формулы, переменные ScrLib, VarsetLib
TRF дерево исследований ResTreeLib
SKE расписание атмосферы (солнце, дождь, снег, молнии) SkeLib

Игровая логика

Термин Что это
Предмет (item) запись CTL: двигатель, радар, щит, батарея, ремонт, орудие, броня и т. д.; класс CItemType* в Control.dll
CP0..CP15 (common_params) 16 параметров предмета; смысл зависит от типа предмета (см. ControlLib, §5.7 и §10)
Привязка детали (piece binding) связь локальной детали с точками CPT, диапазоном анимации и значением по умолчанию; предметы ссылаются на привязки
Хук (hook) слот таблицы CTL: список команд, который игра выполняет в определённый момент (загрузка, критическое разрушение, поверхность под юнитом)
Strength (сила эффекта) число 0..1, от которого зависят окна активности компонентов эффекта; источник задан в заголовке FXID (EffectStrengthSource)
Клан сторона в миссии; индекс клана хранится в объекте (clan_index); у клана свой ИИ (SuperAI)
SuperAI стратегический ИИ клана (ai.dll), исполняет скрипты .scr
Problem (проблема) запрос клана к ИИ (нужен рудник, защита базы, захват...), по которому ИИ назначает юнитов и выдаёт приказы
Areal (ареал) область карты в миссии (с ареалами работает ArealMap.dll)
LogicID идентификатор объекта в миссии, по которому скрипты и ИИ ссылаются на него
Шаг ИИ выполнение ИИ клана примерно раз в 8-9 секунд реального времени: обновление, секции _Continue, Problems0, секции _Start (см. ScrLib)
Секция (entry) именованный список инструкций в .scr: Init, Problems0, PBM_*_Start, события юнитов и зданий
Инструкция одна запись секции .scr (ScrInstruction): вызов встроенной функции, сравнение, переход, возврат, запись переменной
Встроенная функция (action_N) функция движка, которую скрипт вызывает по номеру; таблица из 59 функций в SuperAI::ctor
Ум (Mind) слот управляемого меха в ИИ клана; занимает мех при привязке к ИИ
Схема (scheme) файл .dat юнита или здания; ИИ ведёт каталог схем (класс, уровень, прочность, множитель) и по критериям SELECT_* выбирает лучшую для строительства
Вес объекта оценка силы (прочность с множителем), которой ИИ сравнивает цели и свои войска (CalcWeightAroundPoint, GetProblemAssignedWeight)
Отношение к клану враждебный (0), нейтральный (1) или дружественный (2); у ИИ каждого клана своё, изменяется настроением 0..1
BehaviourCommand команда (приказ) поведению юнита: тип приказа, цель, параметры success, survive, time, independence

Реверс

Термин Что это
Ghidra / .i64 дизассемблер; проект с Control.dll, World3D.dll, Effect.dll, AniMesh.dll, Terrain.dll, Behavior.dll, ai.dll и другими
vtable / слот таблица виртуальных методов интерфейса игры; в документах «слот 0x28» значит смещение метода в таблице
Статус утверждения «проверено» (по коду и данным), «гипотеза» (данные согласуются, кода нет), «не выяснено»