replaced a few bitmask operations by modulo operations
authorHolger Schemel <info@artsoft.org>
Wed, 22 Apr 2020 22:22:42 +0000 (00:22 +0200)
committerHolger Schemel <info@artsoft.org>
Tue, 19 May 2020 16:21:19 +0000 (18:21 +0200)
src/game_em/logic.c

index 6d6f0e1b6769c6fb5dccb065d353219254fbb144..de3966c1b137e44ab3ed66e17f693ab86788b37f 100644 (file)
@@ -13,7 +13,7 @@
 #define ACID_PLAYER    /* player gets killed by acid, but without explosion */
 
 #define RANDOM_RAW     (seed = seed << 31 | seed >> 1)
 #define ACID_PLAYER    /* player gets killed by acid, but without explosion */
 
 #define RANDOM_RAW     (seed = seed << 31 | seed >> 1)
-#define RANDOM(x)      (RANDOM_RAW & (x - 1))
+#define RANDOM(x)      (RANDOM_RAW % x)
 
 static short **cave, **next, **boom;
 static unsigned int seed;
 
 static short **cave, **next, **boom;
 static unsigned int seed;
@@ -151,7 +151,7 @@ static void Lboom_eater(int x, int y)
   boom[x][y+1]   = lev.eater_array[lev.eater_pos][7];
   boom[x+1][y+1] = lev.eater_array[lev.eater_pos][8];
 
   boom[x][y+1]   = lev.eater_array[lev.eater_pos][7];
   boom[x+1][y+1] = lev.eater_array[lev.eater_pos][8];
 
-  lev.eater_pos = (lev.eater_pos + 1) & 7;
+  lev.eater_pos = (lev.eater_pos + 1) % 8;
 
 #if PLAY_ELEMENT_SOUND
   play_element_sound(x, y, SOUND_boom, Xeater_n);
 
 #if PLAY_ELEMENT_SOUND
   play_element_sound(x, y, SOUND_boom, Xeater_n);