From 0abef3b8cd0cb39078019ed2d837a799b4993b1a Mon Sep 17 00:00:00 2001
From: Plagman <Plagman@1a8010ca-5511-0410-912e-c29ae57300e0>
Date: Sun, 31 Mar 2013 23:26:40 +0000
Subject: [PATCH] Polymer: Fix ART offset and sprite flipping interaction.

git-svn-id: https://svn.eduke32.com/eduke32@3633 1a8010ca-5511-0410-912e-c29ae57300e0
---
 polymer/eduke32/build/src/polymer.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/polymer/eduke32/build/src/polymer.c b/polymer/eduke32/build/src/polymer.c
index 2bdf09f4b..7b1effe46 100644
--- a/polymer/eduke32/build/src/polymer.c
+++ b/polymer/eduke32/build/src/polymer.c
@@ -3578,6 +3578,15 @@ void                polymer_updatesprite(int32_t snum)
 
     flipu = flipv = 0;
 
+    if ((tspr->cstat & 4) && (((tspr->cstat>>4) & 3) != 2))
+        flipu = !flipu;
+
+    if (!(tspr->cstat & 4) && (((tspr->cstat>>4) & 3) == 2))
+        flipu = !flipu;
+
+    if ((tspr->cstat & 8) && (((tspr->cstat>>4) & 3) != 2))
+        flipv = !flipv;
+
     if (pr_billboardingmode && !((tspr->cstat>>4) & 3))
     {
         // do surgery on the face tspr to make it look like a wall sprite
@@ -3585,6 +3594,14 @@ void                polymer_updatesprite(int32_t snum)
         tspr->ang = (viewangle + 1024) & 2047;
     }
 
+    if (flipu) {
+        xoff = -xoff;
+    }
+
+    if (flipv) {
+        yoff = -yoff;
+    }
+
     switch ((tspr->cstat>>4) & 3)
     {
     case 0:
@@ -3620,15 +3637,6 @@ void                polymer_updatesprite(int32_t snum)
         break;
     }
 
-    if ((tspr->cstat & 4) && (((tspr->cstat>>4) & 3) != 2))
-        flipu = !flipu;
-
-    if (!(tspr->cstat & 4) && (((tspr->cstat>>4) & 3) == 2))
-        flipu = !flipu;
-
-    if ((tspr->cstat & 8) && (((tspr->cstat>>4) & 3) != 2))
-        flipv = !flipv;
-
     bglGetFloatv(GL_MODELVIEW_MATRIX, spritemodelview);
     bglPopMatrix();