Дядя Миша писал: Crystallize ты боишься посмотреть как fl->numsamples вычисляется?
Там где она вычисляется, в функцию изначально передается указатeль на lightinfo_t по которому можно сразу посмотреть l->texsize. А в FinalLightFace передан только facenum, и сама функция запускается многопоточно, так что я не знаю как дописать новый переметр. Можно наверное сдвигаться на facenum*sizeof(lightinfo_t) или искать совпадение facenum и l->surfnum, но пока не получалось.
SNMetamorph если есть доступ к сорцам - передавай класснейм мессагой. Если сорцев нету - тады ой. Даже пев->хелс не передаётся на клиент. На мой взгляд весьма сомнительная оптимизация. Пиши я сам движок, я бы все энтварсы передавал на клиент. И выборочно бы регулировал для каждой энтити, какие точно передавать через delta.lst, без лазания в код дллок. Да вообще, по-хорошему, лучше было бы иметь не фиксированный набор энтварсов, зашитый в движок, а изменяемый средствами дллок и дельты.
Дядя Миша писал: А, я понял, тебя наверное вот это смутило, да?
C++ Source Code:
pFaceLight->numsamples = pSamples - samples;
Это апчхимизатор такой. Пытается по рёбрам полигона подрезать лайтмапу и сэкономить немного люкселей.
Ты думаешь поэтому у меня площадь лайтмапы по экстентам немного не совпадала с fl->numsamples?
Что-то я там даже близко ничего похожего не наблюдаю. Либо его там нет, либо оно записано совершенно иначе.
Ванильная халва. Есть вышка - func_door_rotating, которая должна упасть от взрыва, когда func_button получает урон. Вышка в высоту 500 юнитов: 64х64х64 юнита - origin браш, на котором стоит простой браш высотой 436 и сторонами 64 юнитов. Общая высота вышки ровно 500 юнитов. На расстоянии в 500 юнитов от центра этой вышки поставил два func_pushable размерами 64х64х64. Вышка отказывается падать. Оказывается, дело в том, что эти пушабли стояли впритык друг к другу и углами соприкасались, из-за чего вышка не падала. Стоило отодвинуть эти пушабли на расстояние более 500 юнитов от его центра, как вышка стала падать. Или разнести пушабли подальше друг от друга на расстояние более 3 юнитов. Это что за баг такой и почему так происходит? На ксаше работает все отлично.
Я таки сделал динамическую смену тумана https://youtu.be/NNCDCs2i93Y
Но в одном не могу никак разобраться. Как мне достать 4 заветные числа тумана из g_pWorld->pev->impulse? И если доставать надо не оттуда, то откуда, и как?
На данный момент в моей энтити 2 поля - стартовый туман и конечный.
Это костыльно, но хотя бы уже работает. Энтитя прописывает туман в Update-packed-fog и в g_pWorld (чтобы в сейвресторе сохранялось). Так вот как мне достать текущее значение тумана из карты?