XaeroX писал: Можно сделать лумп произвольных данных, и детектить контент по расширению
У вадов нет расширения, у них есть тип данных, в виде одного байта. Причём Кармак решил оформить эти типы данных в виде печатных символов, т.е. они начинаются с 65-го. Впрочем там есть еще свободные места в структуре описания лумпов.
Добавлено 07-07-2017 в 20:51:
Ну чтоже, приступил к имплементации. Весьма интересная задачка для меня.
И ЧСХ, тоже первый случай в мире такого сращивания. До меня еще никто не делал
В чистой халфе скорее всего этот фокус не провернуть, но с ксашевскими интерфейсами всё должно пройти гладко.
А я продолжаю операцию по сращиванию. Пока что всё проходит гладко, но впереди самая сложная часть - с посылкой мессаг на клиент. Чтобы было легче заценить мосштаб трогедии, приведу код посылки мессаги из кваки и халфы, для наглядности:
А это халфа.
В чём заключается основная проблема? SVC_ и TE_ скорее всего не совпадут у кваки с халфой. А если даже и совпадут, мы всё равно не сможем грамотно перенаправить поток в нужном нам направлении, т.к. в кваке нет понятия END_MESSAGE, из-за чего не получится по нормальному узнать где она закончилась и где началась следующая. Из-за чего их ремап сопряжён с серъезными трудностями. Единственный боле-мене грамотный выход из ситуации заключается в том, чтобы парсить мессагу на сервере, ремапить и посылать её. Но при таком подходе будет проблематично восстановить их порядок при условии, что они запишутся в разные буффера. Возможно это и не имеет особого значения. Вообщем потенциальных проблем вышыкрышы.
Добавлено 08-07-2017 в 15:55:
А в сорцах хипнотика еще и вот такое грёбаное чудо встречается
Так товарищи, вчера состоялся первый полноценный запуск враппера под квейком. Полноценный, это который не окончился вылетом, как можно догадаться. Выглядит пока что всё грустно, монстры не ходят, двери не открываются, факелы выглядят как артефакты, а игрок не слушается комманд. Но начало положено - виртуальная машинка работает правильно.
А многочисленные баги связаны с наличием двух наборов entvars и необходимостью теперь постоянно копировать из движкового в игровой и обратно. Это одна из основных неприятностей. Когда я её устраню, то скорее всего это примет уже достаточно играбельный вид. Но самое главное уже сделано и апробировано. К слову сказать, если кто-то полагает, что достаточно скопировать из кваки pr_exec, pr_edict и pr_cmds, то он очень сильно ошибается. Портированию препятствует масса архитектурных различий, решения для которых приходится изобретать находу. Да вон спросите у Ксерокса.
Добавлено 11-07-2017 в 17:37:
А где этот товарищ, который всё прогрессом интерисовался и писал что у него руки чешутся.
Ну вот, теперь у меня наконец-то появился повод перепройти кваку, пройти первый раз Quake Remake, и сравнить эти дела с "чистой" квакой под ксашем. Заодно и моды будем вспаиграть. Ждём-с.
KiQ так дублирование не затрагивает собственно движок, оно на уровне игровой дллки. На уровне движка пришлось сделать один-единственный хак - отключить флаг FL_FROZEN через систему features. Потому что в квкаке это флаг FL_JUMPRELEASED и всякий раз отпуская кнопку прыжка игрок замораживается.
В целом польза враппера для отладки движка несомненна, я только вчера вычистил из него около десятка мелких багов, которые там сидели с 2010-го года. Ну там даже не то что баги - несоответствия. Ну например, дефолтовый бинд кнопки SPACE был +moveup, а должен был быть +jump. Вот такого плана.
Cybermax писал: Моды на квейк вспоиграть можно будет?
Ну так-то да, ведь ксаш теперь умеет грузить progs.dat, кодить новые фичи из модов не надо. Как и перемоделивать модели, т.к. alias-модели теперь поддерживаются нативно. Оно конечно ещё неизвестно, как скоро всё будет играбельно, и насколько играбельно. Надо будет помочь тестированием.
Cybermax писал: Моды на квейк вспоиграть можно будет?
Дык затем и делается
Цитата:
Ku2zoff писал: Оно конечно ещё неизвестно, как скоро всё будет играбельно, и насколько играбельно.
Ненавижу проблемы, которые нельзя решить приложив голову. Вот в данном случае я столкнулся именно с такой. Когда надо гонять данные из одной копии энтварсов в другую. Это меня очень сильно затормозило. Я вчера почти два часа с этим мудохался и почти без эффекта. Видимо придётся большую часть кода перетащить в дллку, чтобы не мучаться с этим копированием.