Я разобрал как хранится информация о камерах в Game.exe. Ничего сложного на самом деле.
Для каждой из камер в исполняемом файле игры хранится структура размером 68 байтов. Всего таких структур 17, а из этого следует что все вместе они занимают 68 * 17 = 1156 байтов.
В каждой версии игры смещение на эти структуры разное, именно поэтому MexeR работает только с Mafia 1.0. Найти смещение просто: В Hex редакторе производим поиск текста P Behind и переходим к самому первому совпадению.
Затем выделяем 52 байта перед текстом. Начало выделения и будет являться смещением.
В примере я разбираю 1.0 версию игры, поэтому смещение будет равно 2425944 (0x250458h). Это Crack от Fairlight, размер 2 486 272 байта.
У английской Mafia 1.3 GOG (2 355 200 байта) смещение следующее: 2328316 (0x2386FCh).
Для Steam версии, у первого EXE (2707456 байт) смещение будет то же самое 2328316 (0x2386FCh), и для второго (2 355 200 байт) что в копии игры в подпапке аналогично.
Теперь переходим к разбору непосредственно структуры.
Вначале идут три неизвестных значения типа integer, выделены оранжевым, по четыре байта каждые. Наверное какие то идентификаторы, нам они не важны. А вот дальше следуют десять значений типа float, тоже по четыре байта каждое. Они выделены зеленым. Проверяем первое: значение равно 0.5 , что соответствует параметру BakFront вкладки Person_ из MexerA. Дальше идут 0.31 что равно TopBot-m, 0.09 соответствующее Vertical viewing radius и т.д.
Ну а в конце, желтым по серому, имя структуры ограниченное 16-тью байтами.
Просто? Просто
Имена структур иногда повторяются. Если имя начинается на P - это игрок, C - машина.
Вкладке _Car1 соответствует четвертая по счету, которая вторая с именем C Beh. Hellboy.
Вкладке _Car2 соответствует пятая по счету с именем C Behind Emeth. В MexeR она почему то инвертирована. Первое значение 0.15 равняется последнему пункту Position when turning, а последние значение 0.28 первому пункту AbovBelov соответственно. Не знаю почему так.
Вкладка _Car3 это седьмая по счету C Behind3. Тут данные следуют последовательно.
Вот и всё. Теперь можно распространять модифицированные exe вместо даунгрейдера. А в идеале конечно написать asi плагин, который бы работал со всеми версиями и брал изменения из txt файла. Ну, может разберусь когда нибудь