- Blood: Add interpolation repair and properties for kQAVLITEFLAM (res_id: 5).

This commit is contained in:
Mitchell Richters 2021-08-22 15:03:20 +10:00
parent 6256de8013
commit a681aad281

View file

@ -171,6 +171,14 @@ void qavBuildInterpProps(QAV* const pQAV)
} }
case kQAVLITEFLAM: case kQAVLITEFLAM:
{ {
QAVInterpProps interp{};
interp.flags = 0;
interp.PrevTileFinder = qavGetInterpType("interpolate-index");
qavInterpProps.Insert(pQAV->res_id, std::move(interp));
for (int i = 3; i < pQAV->nFrames; i++)
{
qavSetNonInterpFrameTile(pQAV->res_id, i, 1);
}
break; break;
} }
case kQAVCANFIRE2: case kQAVCANFIRE2:
@ -447,6 +455,15 @@ static void qavRepairTileData(QAV* pQAV)
switch (pQAV->res_id) switch (pQAV->res_id)
{ {
case kQAVLITEFLAM:
// LITEFLAM doesn't look right when interpolating. Move frames around to cause it not to interpolate.
// Move frames 1 and 2 tile 0 to tile 1 and disable original index of 0.
for (i = 1; i < 3; i++)
{
pQAV->frames[i].tiles[1] = pQAV->frames[i].tiles[0];
pQAV->frames[i].tiles[0].picnum = -1;
}
break;
case kQAVCANDOWN: case kQAVCANDOWN:
// CANDOWN interpolates fine, but the starting frame in bringing the can down is lower than the can while idle. // CANDOWN interpolates fine, but the starting frame in bringing the can down is lower than the can while idle.
// Do linear interpolation from 2nd last frame through to first frame, ending with coordinates of CANIDLE. // Do linear interpolation from 2nd last frame through to first frame, ending with coordinates of CANIDLE.