diff --git a/source/games/blood/src/qav.cpp b/source/games/blood/src/qav.cpp index 15bf2b6b9..2ced51015 100644 --- a/source/games/blood/src/qav.cpp +++ b/source/games/blood/src/qav.cpp @@ -969,6 +969,24 @@ static void qavRepairTileData(QAV* pQAV) pQAV->frames[i].tiles[1].picnum = -1; } break; + case kQAVSGUNFIR1: + { + // SGUNFIR1's overlay sizes vary from tile to tile and don't interpolate properly. + // Use repaired tiles from Phredreeke where the overlays are baked in. + constexpr int tilearray[8] = { 9301, 9302, 9303, 9304, 9300, 9301, 9302, 3227 }; + + // Loop through each frame to remove overlay and replace use of 3227 with that from tilearray. + for (i = 0; i < pQAV->nFrames; i++) + { + pQAV->frames[i].tiles[0] = pQAV->frames[i].tiles[1]; + pQAV->frames[i].tiles[1] = pQAV->frames[i].tiles[3]; + pQAV->frames[i].tiles[0].picnum = tilearray[i]; + pQAV->frames[i].tiles[2].picnum = -1; + pQAV->frames[i].tiles[3].picnum = -1; + + } + break; + } default: return; } diff --git a/wadsrc/static/filter/blood/engine/engine.def b/wadsrc/static/filter/blood/engine/engine.def index e4843725b..2d63f1c5f 100644 --- a/wadsrc/static/filter/blood/engine/engine.def +++ b/wadsrc/static/filter/blood/engine/engine.def @@ -59,3 +59,10 @@ tilefromtexture 9277 { file "tiles/9277.png" } tilefromtexture 9278 { file "tiles/9278.png" } tilefromtexture 9279 { file "tiles/9279.png" } tilefromtexture 9280 { file "tiles/9280.png" } + +// Patched tiles for QAV interpolation, thanks to Phredreeke for supplying these. +tilefromtexture 9300 { file "tiles/9300(3227+3228).png" } +tilefromtexture 9301 { file "tiles/9301(3227+3229).png" } +tilefromtexture 9302 { file "tiles/9302(3227+3230).png" } +tilefromtexture 9303 { file "tiles/9303(3227+3231).png" } +tilefromtexture 9304 { file "tiles/9304(3227+3232).png" } diff --git a/wadsrc/static/filter/blood/tiles/9300(3227+3228).png b/wadsrc/static/filter/blood/tiles/9300(3227+3228).png new file mode 100644 index 000000000..d3d116060 Binary files /dev/null and b/wadsrc/static/filter/blood/tiles/9300(3227+3228).png differ diff --git a/wadsrc/static/filter/blood/tiles/9301(3227+3229).png b/wadsrc/static/filter/blood/tiles/9301(3227+3229).png new file mode 100644 index 000000000..ab2ccc827 Binary files /dev/null and b/wadsrc/static/filter/blood/tiles/9301(3227+3229).png differ diff --git a/wadsrc/static/filter/blood/tiles/9302(3227+3230).png b/wadsrc/static/filter/blood/tiles/9302(3227+3230).png new file mode 100644 index 000000000..58803c418 Binary files /dev/null and b/wadsrc/static/filter/blood/tiles/9302(3227+3230).png differ diff --git a/wadsrc/static/filter/blood/tiles/9303(3227+3231).png b/wadsrc/static/filter/blood/tiles/9303(3227+3231).png new file mode 100644 index 000000000..cc3047253 Binary files /dev/null and b/wadsrc/static/filter/blood/tiles/9303(3227+3231).png differ diff --git a/wadsrc/static/filter/blood/tiles/9304(3227+3232).png b/wadsrc/static/filter/blood/tiles/9304(3227+3232).png new file mode 100644 index 000000000..d4ce051a8 Binary files /dev/null and b/wadsrc/static/filter/blood/tiles/9304(3227+3232).png differ