shithub: choc

Download patch

ref: ef848275bcf6dd978499cfc6a28cc81256a82447
parent: 55a39ccab15bfb8082149f9aec2d1273211c1605
author: Simon Howard <[email protected]>
date: Sat Oct 15 09:55:18 EDT 2011

Revert previous change to angle constants and apply a more specific fix.
Changing the angle constants to unsigned causes other problems to occur.

Subversion-branch: /branches/v2-branch
Subversion-revision: 2429

--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -1150,7 +1150,7 @@
 
 // spawn a teleport fog
     ss = R_PointInSubsector(x, y);
-    an = (ANG45 * (mthing->angle / 45)) >> ANGLETOFINESHIFT;
+    an = ((unsigned) ANG45 * (mthing->angle / 45)) >> ANGLETOFINESHIFT;
 
     mo = P_SpawnMobj(x + 20 * finecosine[an], y + 20 * finesine[an],
                      ss->sector->floorheight + TELEFOGHEIGHT, MT_TFOG);
--- a/src/tables.h
+++ b/src/tables.h
@@ -68,11 +68,11 @@
 
 // Binary Angle Measument, BAM.
 
-#define ANG45           0x20000000U
-#define ANG90           0x40000000U
-#define ANG180          0x80000000U
-#define ANG270          0xc0000000U
-#define ANG_MAX         0xffffffffU
+#define ANG45           0x20000000
+#define ANG90           0x40000000
+#define ANG180          0x80000000
+#define ANG270          0xc0000000
+#define ANG_MAX         0xffffffff
 
 #define ANG1            (ANG45 / 45)
 #define ANG60           (ANG180 / 3)
@@ -80,7 +80,7 @@
 // Heretic code uses this definition as though it represents one 
 // degree, but it is not!  This is actually ~1.40 degrees.
 
-#define ANG1_X          0x01000000U
+#define ANG1_X          0x01000000
 
 #define SLOPERANGE		2048
 #define SLOPEBITS		11