- animateobjs LIFT UP / DN

This commit is contained in:
Christoph Oelckers 2021-11-21 12:04:12 +01:00
parent b5704131eb
commit f44465f1a9

View file

@ -501,38 +501,39 @@ void animateobjs(PLAYER& plr) {
// LIFT UP // LIFT UP
for (i = headspritestat[LIFTUP]; i >= 0; i = nextsprite) { for (i = headspritestat[LIFTUP]; i >= 0; i = nextsprite) {
nextsprite = nextspritestat[i]; nextsprite = nextspritestat[i];
auto& spr = sprite[i];
switch (sprite[i].lotag) { switch (spr.lotag) {
case 1821: case 1821:
sprite[i].z -= (TICSPERFRAME << 6); spr.z -= (TICSPERFRAME << 6);
setsprite(i, sprite[i].x, sprite[i].y, sprite[i].z); setsprite(i, spr.x, spr.y, spr.z);
if (sprite[i].z <= sector[sprite[i].sectnum].ceilingz + 32768) { if (spr.z <= sector[spr.sectnum].ceilingz + 32768) {
soundEngine->StopSound(CHAN_CART); soundEngine->StopSound(CHAN_CART);
spritesound(S_CLUNK, &sprite[i]); spritesound(S_CLUNK, &spr);
changespritestat(i, (short) 0); changespritestat(i, (short) 0);
sprite[i].lotag = 1820; spr.lotag = 1820;
sprite[i].z = sector[sprite[i].sectnum].ceilingz + 32768; spr.z = sector[spr.sectnum].ceilingz + 32768;
} }
break; break;
case 1811: case 1811:
sprite[i].z -= (TICSPERFRAME << 6); spr.z -= (TICSPERFRAME << 6);
setsprite(i, sprite[i].x, sprite[i].y, sprite[i].z); setsprite(i, spr.x, spr.y, spr.z);
if (sprite[i].z <= sector[sprite[i].sectnum].ceilingz + 65536) { if (spr.z <= sector[spr.sectnum].ceilingz + 65536) {
changespritestat(i, (short) 0); changespritestat(i, (short) 0);
sprite[i].lotag = 1810; spr.lotag = 1810;
sprite[i].z = sector[sprite[i].sectnum].ceilingz + 65536; spr.z = sector[spr.sectnum].ceilingz + 65536;
} }
break; break;
case 1801: case 1801:
sprite[i].z -= (TICSPERFRAME << 6); spr.z -= (TICSPERFRAME << 6);
setsprite(i, sprite[i].x, sprite[i].y, sprite[i].z); setsprite(i, spr.x, spr.y, spr.z);
if (sprite[i].z <= sector[sprite[i].sectnum].ceilingz + 65536) { if (spr.z <= sector[spr.sectnum].ceilingz + 65536) {
changespritestat(i, (short) 0); changespritestat(i, (short) 0);
sprite[i].lotag = 1800; spr.lotag = 1800;
sprite[i].z = sector[sprite[i].sectnum].ceilingz + 65536; spr.z = sector[spr.sectnum].ceilingz + 65536;
} }
break; break;
} }
@ -542,40 +543,41 @@ void animateobjs(PLAYER& plr) {
for (i = headspritestat[LIFTDN]; i >= 0; i = nextsprite) { for (i = headspritestat[LIFTDN]; i >= 0; i = nextsprite) {
nextsprite = nextspritestat[i]; nextsprite = nextspritestat[i];
int ironbarmove = 0; int ironbarmove = 0;
auto& spr = sprite[i];
switch (sprite[i].lotag) { switch (spr.lotag) {
case 1820: case 1820:
ironbarmove = TICSPERFRAME << 6; ironbarmove = TICSPERFRAME << 6;
sprite[i].z += ironbarmove; spr.z += ironbarmove;
setsprite(i, sprite[i].x, sprite[i].y, sprite[i].z); setsprite(i, spr.x, spr.y, spr.z);
if (sprite[i].z >= (sector[sprite[i].sectnum].floorz - 32768)) { if (spr.z >= (sector[spr.sectnum].floorz - 32768)) {
soundEngine->StopSound(CHAN_CART); soundEngine->StopSound(CHAN_CART);
spritesound(S_CLUNK, &sprite[i]); spritesound(S_CLUNK, &spr);
changespritestat(i, (short) 0); changespritestat(i, (short) 0);
sprite[i].lotag = 1821; spr.lotag = 1821;
sprite[i].z = sector[sprite[i].sectnum].floorz - 32768; spr.z = sector[spr.sectnum].floorz - 32768;
} }
break; break;
case 1810: case 1810:
ironbarmove = TICSPERFRAME << 6; ironbarmove = TICSPERFRAME << 6;
sprite[i].z += ironbarmove; spr.z += ironbarmove;
setsprite(i, sprite[i].x, sprite[i].y, sprite[i].z); setsprite(i, spr.x, spr.y, spr.z);
if (sprite[i].z >= sector[sprite[i].sectnum].floorz) { if (spr.z >= sector[spr.sectnum].floorz) {
changespritestat(i, (short) 0); changespritestat(i, (short) 0);
sprite[i].lotag = 1811; spr.lotag = 1811;
sprite[i].z = sector[sprite[i].sectnum].floorz; spr.z = sector[spr.sectnum].floorz;
} }
break; break;
case 1800: case 1800:
ironbarmove = TICSPERFRAME << 6; ironbarmove = TICSPERFRAME << 6;
sprite[i].z += ironbarmove; spr.z += ironbarmove;
setsprite(i, sprite[i].x, sprite[i].y, sprite[i].z); setsprite(i, spr.x, spr.y, spr.z);
if (sprite[i].z >= sector[sprite[i].sectnum].floorz) { if (spr.z >= sector[spr.sectnum].floorz) {
changespritestat(i, (short) 0); changespritestat(i, (short) 0);
sprite[i].lotag = 1801; spr.lotag = 1801;
sprite[i].z = sector[sprite[i].sectnum].floorz; spr.z = sector[spr.sectnum].floorz;
} }
break; break;
} }