Merge branch 'master' into newrenderer2

This commit is contained in:
Christoph Oelckers 2021-04-07 15:12:27 +02:00
commit 3a34043267

View file

@ -110,8 +110,10 @@ static void so_setpointinterpolation(so_interp *interp, int element)
return; return;
for (i = 0; i < interp->numinterpolations; i++) for (i = 0; i < interp->numinterpolations; i++)
{
if (interp->data[i].curelement == element) if (interp->data[i].curelement == element)
return; return;
}
so_interp::interp_data *data = &interp->data[interp->numinterpolations++]; so_interp::interp_data *data = &interp->data[interp->numinterpolations++];
@ -129,7 +131,7 @@ static void so_setspriteanginterpolation(so_interp *interp, int32_t spritenum)
return; return;
for (i = 0; i < interp->numinterpolations; i++) for (i = 0; i < interp->numinterpolations; i++)
if (interp->data[i].curelement == -1) if (interp->data[i].curelement == -1 && interp->data[i].spriteofang == spritenum)
return; return;
so_interp::interp_data *data = &interp->data[interp->numinterpolations++]; so_interp::interp_data *data = &interp->data[interp->numinterpolations++];
@ -148,9 +150,16 @@ static void so_stopdatainterpolation(so_interp *interp, int element)
int32_t i; int32_t i;
for (i = 0; i < interp->numinterpolations; i++) for (i = 0; i < interp->numinterpolations; i++)
if (interp->data[i].curelement == element) {
if (interp->data[i].curelement == -1)
{
if (interp->data[i].spriteofang == element) break;
}
else if (interp->data[i].curelement == element)
break; break;
}
if (i == interp->numinterpolations) if (i == interp->numinterpolations)
return; return;
@ -219,7 +228,7 @@ void so_setspriteinterpolation(SECTOR_OBJECTp sop, spritetype *sp)
so_setpointinterpolation(interp, snum | soi_spry); so_setpointinterpolation(interp, snum | soi_spry);
if (!interp->hasvator) if (!interp->hasvator)
so_setpointinterpolation(interp, snum | soi_sprz); so_setpointinterpolation(interp, snum | soi_sprz);
so_setspriteanginterpolation(interp, int(sp - sprite)); so_setspriteanginterpolation(interp, snum);
} }
void so_stopspriteinterpolation(SECTOR_OBJECTp sop, spritetype *sp) void so_stopspriteinterpolation(SECTOR_OBJECTp sop, spritetype *sp)