А рельно вынести весь этот код в дллку? Знаю, что реально. Но будет ли работать? Вдруг, после вызова дллки движок выполнит свою собственную функцию, и по-новой пересчитает все размеры?
Дядя Миша писал: не забудь построить новый двусвязный список для энтить. От старого ты корень получить не сможешь.
Это который com_models[MAX_MODELS]?
Добавлено 25-08-2016 в 16:37:
Дядя Миша поправь плиз, если я не прав. Почитав сорцы ксаша, понял примерно следующее:
При загрузке карты строится список брашевых моделей. Корень списка - мир, остальные пункты - его субмодели, то есть брашевые энтити. Каждая модель в списке имеет свой индекс от 1 до 1024. SV_HullForBsp по этому списку ищет нужную модель, и по её размерам выставляет правильный хулл.
Получается, сначала надо придумать, в каком месте в серверной дллке задать корень нового списка. Ну, допустим, PM_Init. Потом пробежаться по всем моделям и загнать их в список. Можно там же, или лучше где-то позже по времени вызова?
А потом надо все вызовы движковых функций, которые отвечают за трассу и заюзаны в дллках заменить своими из дллок.
Я ещё толком не разобрался, очень много кода, особенно касательно самих моделей и их загрузки/выгрузки.
Ku2zoff писал: Это который com_models[MAX_MODELS]?
это который link_t area; в эдикте. Не, ну можно и тупым перебором конечно.
Цитата:
Ku2zoff писал: При загрузке карты строится список брашевых моделей. Корень списка - мир, остальные пункты - его субмодели, то есть брашевые энтити.
Не, список моделей строит компилятор. А при загрузке им просто даются однотипные имена звездочка с номером. К слову мир в этом списке дублируется, т.к. доступен и в виде загруженной карты и в виде сбумодели за нумером *1.
Цитата:
Ku2zoff писал: SV_HullForBsp по этому списку ищет нужную модель
SV_HullForBsp ничего не ищет, ему на вход подается указатель на энтить, которая содержит нужную модель.
Цитата:
Ku2zoff писал: в каком месте в серверной дллке задать корень нового списка.
Сделай для начала без списка, тупым перебором.
И вообще иди перечитай мою статью про колоизацию в кваке, сейчас самое подходящее время.
Дядя Миша писал: Не, список моделей строит компилятор. А при загрузке им просто даются однотипные имена звездочка с номером.
C++ Source Code:
for( i = 1; i < sv.worldmodel->numsubmodels; i++ )
{
Q_sprintf( sv.model_precache[i+1], "*%i", i );
Mod_RegisterModel( sv.model_precache[i+1], i+1 );
}
Оно же?
Цитата:
Дядя Миша писал: SV_HullForBsp ничего не ищет, ему на вход подается указатель на энтить, которая содержит нужную модель.
Я неправильно выразился. Конечно ничего не ищет, а только указывает хулл.
Цитата:
Дядя Миша писал: И вообще иди перечитай мою статью про колоизацию в кваке, сейчас самое подходящее время.
Я раньше читал, но забыл уже, много букаф. Надо перечитать.
C++ Source Code:
#ifdef RANDOM_HULL_NULLIZATION
// author: The FiEctro
hull = &model->hulls[Com_RandomLong( 0, 0 )];
#endif
Поржал
Добавлено 25-08-2016 в 21:56:
Я вот сейчас дочитал до середины статью про физику, и задумался. Для энтить, кроме брашевых (монстров и всяких других) не надо будет ничего такого проделывать? Ну их трассировку тащить из движка. Там вроде бы уже отдельная функция.
Рандомную нуллизацию Скрама придумал, я только колоизацию
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Один говноед на лурочке про меня гадости написал, а Вы повелись.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя МишаXaeroX
Ну гадости же я не писал, я Волатилу пиарил. И не называл Вас малолетними д в отличие от. Но этот вопрос мы с Ксероксом уже решили.
P.S. Убрал Волатилу.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!