src/roadveh_cmd.cpp
changeset 7375 e8639f73a615
parent 7367 a0499d5cb8e5
child 7439 0c0e2945c890
equal deleted inserted replaced
7374:54c06f06ecc8 7375:e8639f73a615
  1083 	}
  1083 	}
  1084 }
  1084 }
  1085 
  1085 
  1086 static int PickRandomBit(uint bits)
  1086 static int PickRandomBit(uint bits)
  1087 {
  1087 {
  1088 	uint num = 0;
       
  1089 	uint b = bits;
       
  1090 	uint i;
  1088 	uint i;
  1091 
  1089 	uint num = RandomRange(CountBitsSet(bits));
  1092 	do {
       
  1093 		if (b & 1) num++;
       
  1094 	} while (b >>= 1);
       
  1095 
       
  1096 	num = RandomRange(num);
       
  1097 
  1090 
  1098 	for (i = 0; !(bits & 1) || (int)--num >= 0; bits >>= 1, i++) {}
  1091 	for (i = 0; !(bits & 1) || (int)--num >= 0; bits >>= 1, i++) {}
  1099 	return i;
  1092 	return i;
  1100 }
  1093 }
  1101 
  1094