Баг, про который уже скорее всего известно т.к XDM пытались запустить.
baseline для world по какой-то причине не доходит до клиента. Почему так - пока определить не удаётся, по коду всё выглядит вполне корректно.
[ADDED=mittorn]1469991782[/ADDED]
Возможное решение: изменить условие в функции отправки baseline так, чтобы он принудительно отправлял baseline для 0 ентити:
Code:
if( ( !start || base->number ) && ( base->modelindex || base->effects != EF_NODRAW ))
это исправляет гравитацию темпентитей в XDM
но торопиться не стоит, следует глянуть, как это работает в goldsource.
[ADDED=mittorn]1469992713[/ADDED]
Условие из goldsource:
Code:
if ( !ent->free && ( maxclients >= entnum || ent->v.modelindex ) )
[ADDED=mittorn]1469993644[/ADDED]
тут уже интересный вопрос. Xash в отличие от GS не отправляет baseline для всего, у чего есть EF_NODRAW
Причём, в отличие от goldsource он строит baseline отдельной функцией, а не сразу при отправке.
по этому вместо приведённого выше условия имеет смысл оставить только ( !start || base->number )
Ибо остальные проверки выполнены при построении baseline.
base->number в данном случае определяет, что baseline валиден. Можно предположить, что для worldspawn он валиден всегда ибо вряд ли кто-то может его сломать.
возможео, это исправит ещё какие-то проблемы, ведь для клиентов baseline должен отправляться всегда.