OSDN Git Service

[Refactor] #37287 #37353 型の置換。 / Type replacement.
[hengband/hengband.git] / src / z-rand.c
index 8f9ce59..258aa67 100644 (file)
@@ -192,10 +192,11 @@ void Rand_state_init(void)
 #ifdef RNG_DEVICE
 
        FILE *fp = fopen(RNG_DEVICE, "r");
+       int n;
        
        do {
-               fread(Rand_state, sizeof(Rand_state[0]), 4, fp);
-       } while ((Rand_state[0] | Rand_state[1] | Rand_state[2] | Rand_state[3]) == 0);
+               n = fread(Rand_state, sizeof(Rand_state[0]), 4, fp);
+       } while (n != 4 || (Rand_state[0] | Rand_state[1] | Rand_state[2] | Rand_state[3]) == 0);
        
        fclose(fp);
 
@@ -362,7 +363,7 @@ s16b randnor(int mean, int stand)
        s16b high = RANDNOR_NUM;
 
        /* Paranoia */
-       if (stand < 1) return (mean);
+       if (stand < 1) return (s16b)(mean);
 
        /* Roll for probability */
        tmp = (s16b)randint0(32768);
@@ -381,7 +382,7 @@ s16b randnor(int mean, int stand)
                /* Move left otherwise */
                else
                {
-                       high = mid;
+                       high = (s16b)mid;
                }
        }
 
@@ -404,7 +405,7 @@ s16b damroll(int num, int sides)
 {
        int i, sum = 0;
        for (i = 0; i < num; i++) sum += randint1(sides);
-       return (sum);
+       return (s16b)(sum);
 }
 
 
@@ -463,7 +464,7 @@ s32b Rand_external(s32b m)
        if (!initialized)
        {
                /* Initialize with new seed */
-               u32b seed = time(NULL);
+               u32b seed = (u32b)time(NULL);
                Rand_Xorshift_seed(seed, Rand_state_external);
                initialized = TRUE;
        }