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