JACoders / OpenJK

Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software
GNU General Public License v2.0
2.03k stars 614 forks source link

Moving entities with ICARUS doesn't update their PVS leaf #265

Closed eezstreet closed 6 years ago

eezstreet commented 11 years ago

As demonstrated here: http://jkhub.org/topic/2127-npc-death-splash-damage/#entry26217

ensiform commented 11 years ago

Using the move feature is not correct, because it sets all entities as an ET_MOVER which will disable it being an effect in network terms and processing terms on client side.

As for the SET(SET_ORIGIN) this is because it only sets ent->r.currentOrigin. Dunno if this should be changed because lots of ents have different origin values used.

eezstreet commented 11 years ago

It possibly works correctly in SP since SP doesn't make use of ent->r.anything, rather it's redistributed elsewhere (see hacky CPP ports)

Sent from my Windows Phone


From: Ensiformmailto:notifications@github.com Sent: ‎5/‎20/‎2013 1:30 PM To: Razish/OpenJKmailto:OpenJK@noreply.github.com Cc: eezstreetmailto:eezstreet@live.com Subject: Re: [OpenJK] Moving entities with ICARUS doesn't update their PVS leaf (#265)

Using the move feature is not correct, because it sets all entities as an ET_MOVER which will disable it being an effect in network terms and processing terms on client side.

As for the SET(SET_ORIGIN) this is because it only sets ent->r.currentOrigin. Dunno if this should be changed because lots of ents have different origin values used.


Reply to this email directly or view it on GitHub: https://github.com/Razish/OpenJK/issues/265#issuecomment-18160471

SzicoVII commented 11 years ago

Id be nice if you could fix this. Pwetty please?

ensiform commented 11 years ago

SP sets fx runner to be an ET_MOVER, and it does the FX playing on the game code. Where as in MP it needs to be an ET_FX and handled in the cgame for playing.

There is no good way of doing SET_ORIGIN either because not all things use s.origin, r->currentOrigin etc and theres good possibility you could mess some other ents up by using G_SetOrigin too.

xycaleth commented 11 years ago

Considering closing this: is the wontfix tag there because the problem was the wrong command being used, and not because the command used is buggy?

ensiform commented 11 years ago

The wontfix tag is there because it breaks all kinds of compatibility if you wish to "fix" it fully afaik.

ensiform commented 11 years ago

I mean you might be able to fix set origin but not move()