changes from H.G. Muller; version 4.3.7
[xboard.git] / common.h
index be6d4e8..9d3fd41 100644 (file)
--- a/common.h
+++ b/common.h
@@ -185,29 +185,26 @@ typedef enum {
   } GameMode;\r
 \r
 typedef enum {\r
-    WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, \r
-#ifdef FAIRY\r
     /* [HGM] the order here is crucial for Crazyhouse & Shogi: */\r
     /* only the first N pieces can go into the holdings, and   */\r
-    /* promotions in those variants shift P-W to E-M           */\r
-    WhiteFerz, WhiteWazir, WhiteAlfil, WhiteNightrider, WhiteCardinal,\r
-    WhiteMarshall, WhiteGrasshopper, WhiteCannon, WhiteMan, WhiteUnicorn,\r
-#endif\r
-    WhiteKing, BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen, \r
-#ifdef FAIRY\r
-    BlackFerz, BlackWazir, BlackAlfil, BlackNightrider, BlackCardinal,\r
-    BlackMarshall, BlackGrasshopper, BlackCannon, BlackMan, BlackUnicorn,\r
-#endif\r
-    BlackKing,\r
+    /* promotions in those variants shift P-W to U-S           */\r
+    WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, \r
+    WhiteFerz, WhiteWazir, WhiteAlfil, WhiteMan, WhiteCannon, WhiteUnicorn,\r
+    WhiteNightrider, WhiteCardinal, WhiteMarshall, WhiteGrasshopper,\r
+    WhiteSilver, WhiteKing,\r
+    BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen,\r
+    BlackFerz, BlackWazir, BlackAlfil, BlackMan, BlackCannon, BlackUnicorn,\r
+    BlackNightrider, BlackCardinal, BlackMarshall, BlackGrasshopper,\r
+    BlackSilver, BlackKing,\r
     EmptySquare, \r
-    ClearBoard, WhitePlay, BlackPlay /*for use on EditPosition menus*/\r
+    ClearBoard, WhitePlay, BlackPlay, PromotePiece, DemotePiece /*for use on EditPosition menus*/\r
   } ChessSquare;\r
 \r
 /* [HGM] some macros that can be used as prefixes to convert piece types */\r
 #define WHITE_TO_BLACK (int)BlackPawn - (int)WhitePawn + (int)\r
 #define BLACK_TO_WHITE (int)WhitePawn - (int)BlackPawn + (int)\r
-#define PROMOTED       (int)WhiteAlfil - (int)WhitePawn + (int)\r
-#define DEMOTED        (int)WhitePawn - (int)WhiteAlfil + (int)\r
+#define PROMOTED       (int)WhiteUnicorn - (int)WhitePawn + (int)\r
+#define DEMOTED        (int)WhitePawn - (int)WhiteUnicorn + (int)\r
 #define SHOGI          (int)EmptySquare + (int)\r
 \r
 \r
@@ -222,14 +219,10 @@ typedef enum {
     BlackHSideCastleFR, BlackASideCastleFR, \r
     WhitePromotionKnight, WhitePromotionBishop,\r
     WhitePromotionRook, WhitePromotionQueen, WhitePromotionKing,\r
-#ifdef FAIRY\r
     WhitePromotionChancellor, WhitePromotionArchbishop,\r
-#endif\r
     BlackPromotionKnight, BlackPromotionBishop,\r
     BlackPromotionRook, BlackPromotionQueen, BlackPromotionKing,\r
-#ifdef FAIRY\r
     BlackPromotionChancellor, BlackPromotionArchbishop,\r
-#endif\r
     WhiteCapturesEnPassant, BlackCapturesEnPassant,\r
     WhiteDrop, BlackDrop, \r
     NormalMove, AmbiguousMove, IllegalMove, ImpossibleMove,\r
@@ -521,6 +514,9 @@ typedef struct {
     int NrRanks;\r
     int holdingsSize;\r
     int matchPause;\r
+    char * pieceToCharTable;\r
+    Boolean allWhite;\r
+    Boolean upsideDown;\r
     Boolean alphaRank;\r
     Boolean testClaims;\r
     Boolean checkMates;\r
@@ -528,7 +524,6 @@ typedef struct {
     Boolean trivialDraws;\r
     int ruleMoves;\r
     int drawRepeats;\r
-    char * pieceToCharTable;\r
 \r
 #if ZIPPY\r
     char *zippyLines;\r
@@ -599,6 +594,3 @@ typedef struct {
 \r
 #endif\r
 \r
-/* extern int holdingsWidth;  \r
-extern int holdingsHeight; \r
-/*extern int holdings[(int) EmptySquare];*/\r