Score enum should be at least 32 bits
[stockfish] / src / value.h
index 4f19cdaa554b64f29a2d9c820dd1e2c77012f632..fec6516a4c8c4014427afeeb3cf22d6b9941d865 100644 (file)
@@ -52,10 +52,11 @@ enum Value {
 };
 
 
-/// Score struct keeps a midgame and an endgame value in a single
-/// ScoreValue 64 bit union.
+/// Score enum keeps a midgame and an endgame value in a single
+/// integer (enum), first LSB 16 bits are used to store endgame
+/// value, while upper bits are used for midgame value.
 
-enum Score {};
+enum Score { ENSURE_32_BIT_SIZE = 1 << 31 };
 
 inline Value eg_value(Score s) { return Value(int16_t(s & 0xffff)); }
 inline Value mg_value(Score s) { return Value((int(s) + 32768) >> 16); }