Декомпилировать неиспользуемый код мне кажется все же нужно - мало ли где пригодиться это может (к примеру, для анализа как заранее что-либо задумывалось в скриптах). Лучше даже это отключаемым/включаемым сделать. Главное чтобы все это снова не компилировалось
Хорошо, если получится без особых усилий - сделаю. В любом случае, в имеющихся скриптах таких есть два или три фрагмента (в которых нет ничего интересного). OpenIV их показывает (ценой того, что пришлось изряно повоевать с разбором switch).
Как это вообще работает. Пока, предполагается, что это будет маленькая command-line программа, которой на вход скармливается архив, каталог или отдельный файл.А как вообще будет вестись работа со скриптами, т.е. грузиться и компилироваться все содержимое архива или же все же по отдельности? (среди скриптов есть и те где ссылки с одного на другой идут)
В зависимости от того, что ей скормили, производится компиляция или декомпиляция (можно указать что делать, параметром; например, для случая с каталогом, в котором лежат и исходники, и .obj).
Возможные сценарии работы:
* декомпиляция архива: на вход даем параметром архив, опционально - h4 для типов, сигнатурного аналза и т.д.), на выходе получаем пачку c4 и h4 (если хорошо попросили - то еще и a4, чтобы покопаться на уровне байткода)
* декомпиляция файла: на вход даем парметром .sco, globals.h4 и natives.h4 (возможно, еще какие-то хэдеры, чтобы сразу определить библиотечные функции). На выходе получаем .c4 (по запросу - a4)
* компиляция файла: на вход дается один или несколько .c4, архив и соответствующие h4. Скомпилированные файлы добавляются/заменяются в архиве.
* компиляция архива: на вход дается каталог с исходниками, globals.h4, natives.h4. На выходе получаем архив.
Опуская некоторые тонкости, как-то так.
Все скрипты полностью независимы друг от друга. Да, для них всех есть глобальный сегмент (общий для всех), но и только. Единственные методы взаимодействия скриптов - это запуск одного из другого (и проверка на загруженность/запущенность).
В принципе, я предполагаю поделить весь проект на маленький .exe и .dll со всей функциональностью.
В этом случае, .dll можно будет подключать к своим тулзам.
Технических препятствий нет. Есть административные.Самый интересный вопрос который уже давно интересует - можно ли при желании будет написать свой режим для мультиплеера?
Т.е. требуется, чтобы у всех участников был одинаковый набор скриптов, плюс, неизвестно, как отнесется ко всему этому Live (особенно, если будут какие-то дополнения к протоколу; скажем, для нового AI).
А вот это уже крайне интересно. Что касается эпизодов IV было бы не плохо просто перекомпилировать скрипты: свести к минимуму все нововведения вызывающие недостающие на ПК natives, поменять имена моделей даже на первых порах. В общем все чтобы можно было провести работоспособный тест миссий и потом наслаивать добавки в скриптах по мере введения чего-то нового (конвертирования моделей например, катсцен и звуков).
Десятка два нэйтивов все равно придется добавлять (на них геймплей сильно завязан, буквально с первой миссии). Вот пути.. да, пути придется править (там полно путей вида E1:/...). Скорее, имеет смысл начинать с моделей, добавлять их в оригинальную игру, править скрипты, чтобы они использовались и смотреть. А скрипты из TLaD подключать уже на более поздних этапах.