foxygit / doom Log in
commit ea5f633fe42c7693e30106a306b376ec169a4809
Author:     Fabian Greffrath <fabian@greffrath.com>
AuthorDate: Thu Dec 18 10:53:49 2014 +0100
Commit:     Fabian Greffrath <fabian@greffrath.com>
CommitDate: Thu Dec 18 10:53:49 2014 +0100

    fix a bug that causes monsters to become partly invisible

    when walking inside liquids like water -- on big-endian systems

    Originally reported by Ronald Lasmanowicz and fixed in his
    wii-hexen port: https://code.google.com/p/wii-hexen/source/detail?r=17
---
 src/heretic/r_things.c | 2 +-
 src/hexen/r_things.c   | 2 +-
 src/strife/r_things.c  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/heretic/r_things.c b/src/heretic/r_things.c
index b4cd19af..489c94bc 100644
--- a/src/heretic/r_things.c
+++ b/src/heretic/r_things.c
@@ -417,7 +417,7 @@ void R_DrawVisSprite(vissprite_t * vis, int x1, int x2)

     if (vis->footclip && !vis->psprite)
     {
-        sprbotscreen = sprtopscreen + FixedMul(patch->height << FRACBITS,
+        sprbotscreen = sprtopscreen + FixedMul(SHORT(patch->height) << FRACBITS,
                                                spryscale);
         baseclip = (sprbotscreen - FixedMul(vis->footclip << FRACBITS,
                                             spryscale)) >> FRACBITS;
diff --git a/src/hexen/r_things.c b/src/hexen/r_things.c
index 7a05651a..aae6dc60 100644
--- a/src/hexen/r_things.c
+++ b/src/hexen/r_things.c
@@ -426,7 +426,7 @@ void R_DrawVisSprite(vissprite_t * vis, int x1, int x2)

     if (vis->floorclip && !vis->psprite)
     {
-        sprbotscreen = sprtopscreen + FixedMul(patch->height << FRACBITS,
+        sprbotscreen = sprtopscreen + FixedMul(SHORT(patch->height) << FRACBITS,
                                                spryscale);
         baseclip = (sprbotscreen - FixedMul(vis->floorclip,
                                             spryscale)) >> FRACBITS;
diff --git a/src/strife/r_things.c b/src/strife/r_things.c
index 2acb238c..6d37ca09 100644
--- a/src/strife/r_things.c
+++ b/src/strife/r_things.c
@@ -470,7 +470,7 @@ R_DrawVisSprite
     // villsa [STRIFE] clip sprite's feet if needed
     if(vis->mobjflags & MF_FEETCLIPPED)
     {
-        sprbotscreen = sprtopscreen + FixedMul(spryscale, patch->height << FRACBITS);
+        sprbotscreen = sprtopscreen + FixedMul(spryscale, SHORT(patch->height) << FRACBITS);
         clip = (sprbotscreen - FixedMul(10*FRACUNIT, spryscale)) >> FRACBITS;
     }
     else