]> git.sesse.net Git - stockfish/blobdiff - src/endgame.h
Remove even more redundancy in endgame functions handling
[stockfish] / src / endgame.h
index 271490b186436395947fdf173c3c48cb5dad9a83..4426ef186c5bacd4347bf94f712cbe08fef7a88a 100644 (file)
@@ -68,6 +68,7 @@ public:
   EndgameFunctionBase(Color c) : strongerSide(c), weakerSide(opposite_color(c)) {}
   virtual ~EndgameFunctionBase() {}
   virtual T apply(const Position&) = 0;
   EndgameFunctionBase(Color c) : strongerSide(c), weakerSide(opposite_color(c)) {}
   virtual ~EndgameFunctionBase() {}
   virtual T apply(const Position&) = 0;
+  Color color() const { return strongerSide; }
 
 protected:
   Color strongerSide, weakerSide;
 
 protected:
   Color strongerSide, weakerSide;
@@ -81,12 +82,14 @@ typedef EndgameFunctionBase<ScaleFactor> EndgameScalingFunctionBase;
 
 template<EndgameType>
 struct EvaluationFunction : public EndgameEvaluationFunctionBase {
 
 template<EndgameType>
 struct EvaluationFunction : public EndgameEvaluationFunctionBase {
+  typedef EndgameEvaluationFunctionBase Base;
   explicit EvaluationFunction(Color c): EndgameEvaluationFunctionBase(c) {}
   Value apply(const Position&);
 };
 
 template<EndgameType>
 struct ScalingFunction : public EndgameScalingFunctionBase {
   explicit EvaluationFunction(Color c): EndgameEvaluationFunctionBase(c) {}
   Value apply(const Position&);
 };
 
 template<EndgameType>
 struct ScalingFunction : public EndgameScalingFunctionBase {
+  typedef EndgameScalingFunctionBase Base;
   explicit ScalingFunction(Color c) : EndgameScalingFunctionBase(c) {}
   ScaleFactor apply(const Position&);
 };
   explicit ScalingFunction(Color c) : EndgameScalingFunctionBase(c) {}
   ScaleFactor apply(const Position&);
 };