foxygit / doom Log in
commit ad3e1a25f971bea771960bb9efee75a277e56e2c
Author:     James Haley <haleyjd@hotmail.com>
AuthorDate: Mon Dec 15 10:47:07 2014 -0600
Commit:     James Haley <haleyjd@hotmail.com>
CommitDate: Mon Dec 15 10:47:07 2014 -0600

    Upstream fix from SVE: MF_MVIS flag

    The MVIS flag, if set on an object *without* MF_SHADOW, imparts total
    invisibility. This is the intended effect on players using double Shadow
    Armors.
---
 src/strife/r_things.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/strife/r_things.c b/src/strife/r_things.c
index 23089985..2acb238c 100644
--- a/src/strife/r_things.c
+++ b/src/strife/r_things.c
@@ -445,7 +445,17 @@ R_DrawVisSprite
             dc_translation = translationtables - 256 + (translation >> (MF_TRANSSHIFT - 8));
         }
     }
-    else if (translation)     // villsa [STRIFE] new translation tables
+    else if(vis->mobjflags & MF_MVIS)
+    {
+        // haleyjd 20141215: [STRIFE] Objects which are *only* MF_MVIS (players
+        // using double Shadow Armors, in particular) are totally invisible.
+        // Upstreamed after discovered in SVE. Note this causes a
+        // vanilla-accurate glitch with Shadow Acolytes - if they die while
+        // MF_MVIS is set, A_Fall fails to remove it and their corpse will
+        // completely disappear (that's also fixed in SVE, but not here).
+        return;
+    }
+    else if(translation)     // villsa [STRIFE] new translation tables
     {
         colfunc = transcolfunc;
         dc_translation = translationtables - 256 + (translation >> (MF_TRANSSHIFT - 8));