Fix SE17 warp elevator transition jumps.

git-svn-id: https://svn.eduke32.com/eduke32@5393 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2015-10-20 07:15:21 +00:00
parent 72cea8b6b8
commit 3975df6d2d

View file

@ -6816,9 +6816,11 @@ ACTOR_STATIC void G_MoveEffectors(void) //STATNUM 3
if (numplayers < 2 && !g_netServer) if (numplayers < 2 && !g_netServer)
ps->opos.z = ps->pos.z; ps->opos.z = ps->pos.z;
ps->pos.z += q; ps->pos.z += q;
ps->truefz += q; ps->truefz += q;
ps->truecz += q; ps->truecz += q;
if (g_netServer || numplayers > 1) if (g_netServer || numplayers > 1)
ps->opos.z = ps->pos.z; ps->opos.z = ps->pos.z;
} }
@ -6870,14 +6872,14 @@ ACTOR_STATIC void G_MoveEffectors(void) //STATNUM 3
ps->pos.x += sprite[j].x-s->x; ps->pos.x += sprite[j].x-s->x;
ps->pos.y += sprite[j].y-s->y; ps->pos.y += sprite[j].y-s->y;
ps->opos.z -= ps->pos.z;
ps->pos.z = sector[sprite[j].sectnum].floorz-(sc->floorz-ps->pos.z); ps->pos.z = sector[sprite[j].sectnum].floorz-(sc->floorz-ps->pos.z);
ps->opos.z += ps->pos.z;
actor[k].floorz = sector[sprite[j].sectnum].floorz; actor[k].floorz = sector[sprite[j].sectnum].floorz;
actor[k].ceilingz = sector[sprite[j].sectnum].ceilingz; actor[k].ceilingz = sector[sprite[j].sectnum].ceilingz;
ps->bobpos.x = ps->opos.x = ps->pos.x; ps->bobpos.x = ps->opos.x = ps->pos.x;
ps->bobpos.y = ps->opos.y = ps->pos.y; ps->bobpos.y = ps->opos.y = ps->pos.y;
ps->opos.z = ps->pos.z;
ps->truefz = actor[k].floorz; ps->truefz = actor[k].floorz;
ps->truecz = actor[k].ceilingz; ps->truecz = actor[k].ceilingz;
@ -6890,10 +6892,13 @@ ACTOR_STATIC void G_MoveEffectors(void) //STATNUM 3
{ {
sprite[k].x += sprite[j].x-s->x; sprite[k].x += sprite[j].x-s->x;
sprite[k].y += sprite[j].y-s->y; sprite[k].y += sprite[j].y-s->y;
Bmemcpy(&actor[k].bpos, &sprite[k], sizeof(vec2_t));
actor[k].bpos.z -= sprite[k].z;
sprite[k].z = sector[sprite[j].sectnum].floorz- sprite[k].z = sector[sprite[j].sectnum].floorz-
(sc->floorz-sprite[k].z); (sc->floorz-sprite[k].z);
actor[k].bpos.z += sprite[k].z;
Bmemcpy(&actor[k].bpos, &sprite[k], sizeof(vec3_t));
changespritesect(k,sprite[j].sectnum); changespritesect(k,sprite[j].sectnum);
setsprite(k,(vec3_t *)&sprite[k]); setsprite(k,(vec3_t *)&sprite[k]);