From a015958f66f6a387e60d5e6fa2addf3cc103eca1 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 29 Jan 2022 10:45:36 +0100 Subject: [PATCH] - Duke: had to give the trip bomb yet another flag. Unlike every other actor this has scripted animation logic attached that is not supposed to be used. Weird. --- source/games/duke/src/animatesprites_d.cpp | 2 +- source/games/duke/src/constants.h | 1 + source/games/duke/src/flags_d.cpp | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/source/games/duke/src/animatesprites_d.cpp b/source/games/duke/src/animatesprites_d.cpp index 44b706aee..314024333 100644 --- a/source/games/duke/src/animatesprites_d.cpp +++ b/source/games/duke/src/animatesprites_d.cpp @@ -491,7 +491,7 @@ void animatesprites_d(tspritetype* tsprite, int& spritesortcnt, int x, int y, in break; } - if (gs.actorinfo[h->spr.picnum].scriptaddress) + if (gs.actorinfo[h->spr.picnum].scriptaddress && !actorflag(h, SFLAG2_DONTANIMATE)) { if (t4) { diff --git a/source/games/duke/src/constants.h b/source/games/duke/src/constants.h index 24a05aa4c..5e135a79f 100644 --- a/source/games/duke/src/constants.h +++ b/source/games/duke/src/constants.h @@ -342,6 +342,7 @@ enum sflags2_t SFLAG2_DOUBLEDMGTHRUST = 0x00000040, SFLAG2_BREAKMIRRORS = 0x00000080, SFLAG2_CAMERA = 0x00000100, + SFLAG2_DONTANIMATE = 0x00000200, }; using EDukeFlags2 = TFlags; diff --git a/source/games/duke/src/flags_d.cpp b/source/games/duke/src/flags_d.cpp index 158bcef5d..caf5d2a0b 100644 --- a/source/games/duke/src/flags_d.cpp +++ b/source/games/duke/src/flags_d.cpp @@ -222,6 +222,7 @@ void initactorflags_d() setflag(SFLAG2_DOUBLEDMGTHRUST, { RADIUSEXPLOSION, RPG, HYDRENT, HEAVYHBOMB, SEENINE, OOZFILTER, EXPLODINGBARREL }); setflag(SFLAG2_BREAKMIRRORS, { RADIUSEXPLOSION, RPG, HYDRENT, HEAVYHBOMB, SEENINE, OOZFILTER, EXPLODINGBARREL }); setflag(SFLAG2_CAMERA, { CAMERA1 }); + setflag(SFLAG2_DONTANIMATE, { TRIPBOMB, LASERLINE }); if (isWorldTour()) {