#include <cstddef>
#include <stdint.h>
#include "error.h"
#include <assert.h>
Go to the source code of this file.
|  | 
| enum | fileModeT { FMODE_None = 0, 
FMODE_ReadOnly, 
FMODE_WriteOnly, 
FMODE_Both,
 FMODE_Create, 
FMODE_Memory
 }
 | 
|  | 
| enum | { NAME_PLAYER, 
NAME_EVENT, 
NAME_SITE, 
NAME_ROUND,
 NUM_NAME_TYPES, 
NAME_INVALID = 99
 }
 | 
|  | 
|  | 
| const versionT | SCID_VERSION = 400 | 
|  | 
| const versionT | SCID_OLDEST_VERSION = 300 | 
|  | 
| const char | SCID_VERSION_STRING [] = "4.7.0" | 
|  | 
| const char | SCID_WEBSITE [] = "http://scid.sourceforge.net/" | 
|  | 
| const char | PGN_SUFFIX [] = ".pgn" | 
|  | 
| const compareT | LESS_THAN = -1 | 
|  | 
| const compareT | EQUAL_TO = 0 | 
|  | 
| const compareT | GREATER_THAN = 1 | 
|  | 
| const ecoT | ECO_None = 0 | 
|  | 
| const byte | RATING_Elo = 0 | 
|  | 
| const byte | RATING_Rating = 1 | 
|  | 
| const byte | RATING_Rapid = 2 | 
|  | 
| const byte | RATING_ICCF = 3 | 
|  | 
| const byte | RATING_USCF = 4 | 
|  | 
| const byte | RATING_DWZ = 5 | 
|  | 
| const byte | RATING_BCF = 6 | 
|  | 
| const char * | ratingTypeNames [17] | 
|  | 
| const uint | NUM_RESULT_TYPES = 4 | 
|  | 
| const resultT | RESULT_None = 0 | 
|  | 
| const resultT | RESULT_White = 1 | 
|  | 
| const resultT | RESULT_Black = 2 | 
|  | 
| const resultT | RESULT_Draw = 3 | 
|  | 
| const uint | RESULT_SCORE [4] = { 1, 2, 0, 1 } | 
|  | 
| const char | RESULT_CHAR [4] = { '*', '1', '0', '=' } | 
|  | 
| const char | RESULT_STR [4][4] = { "*", "1-0", "0-1", "=-=" } | 
|  | 
| const char | RESULT_LONGSTR [4][8] = { "*", "1-0", "0-1", "1/2-1/2" } | 
|  | 
| const resultT | RESULT_OPPOSITE [4] | 
|  | 
| const uint | NUM_COLOR_TYPES = 2 | 
|  | 
| const colorT | WHITE = 0 | 
|  | 
| const colorT | BLACK = 1 | 
|  | 
| const colorT | NOCOLOR = 2 | 
|  | 
| const char | COLOR_CHAR [3] = {'W', 'B', '_' } | 
|  | 
| const castleDirT | QSIDE = 0 | 
|  | 
| const castleDirT | KSIDE = 1 | 
|  | 
| const pieceT | INVALID_PIECE = 0 | 
|  | 
| const pieceT | KING = 1 | 
|  | 
| const pieceT | QUEEN = 2 | 
|  | 
| const pieceT | ROOK = 3 | 
|  | 
| const pieceT | BISHOP = 4 | 
|  | 
| const pieceT | KNIGHT = 5 | 
|  | 
| const pieceT | PAWN = 6 | 
|  | 
| const pieceT | EMPTY = 7 | 
|  | 
| const pieceT | END_OF_BOARD = 0 | 
|  | 
| const pieceT | WK = 1 | 
|  | 
| const pieceT | WQ = 2 | 
|  | 
| const pieceT | WR = 3 | 
|  | 
| const pieceT | WB = 4 | 
|  | 
| const pieceT | WN = 5 | 
|  | 
| const pieceT | WP = 6 | 
|  | 
| const pieceT | BK = 9 | 
|  | 
| const pieceT | BQ = 10 | 
|  | 
| const pieceT | BR = 11 | 
|  | 
| const pieceT | BB = 12 | 
|  | 
| const pieceT | BN = 13 | 
|  | 
| const pieceT | BP = 14 | 
|  | 
| const pieceT | WM = 16 | 
|  | 
| const pieceT | BM = 17 | 
|  | 
| const uint | MAX_PIECE_TYPES = 18 | 
|  | 
| const char | PIECE_CHAR [] = "xKQRBNP.xkqrbnpxMm" | 
|  | 
| const pieceT | PIECE_FLIP [MAX_PIECE_TYPES] | 
|  | 
| const bool | PIECE_IS_SLIDER [8] | 
|  | 
| const int | PIECE_VALUE [MAX_PIECE_TYPES] | 
|  | 
| const squareT | A1 = 0 | 
|  | 
| const squareT | B1 = 1 | 
|  | 
| const squareT | C1 = 2 | 
|  | 
| const squareT | D1 = 3 | 
|  | 
| const squareT | E1 = 4 | 
|  | 
| const squareT | F1 = 5 | 
|  | 
| const squareT | G1 = 6 | 
|  | 
| const squareT | H1 = 7 | 
|  | 
| const squareT | A2 = 8 | 
|  | 
| const squareT | B2 = 9 | 
|  | 
| const squareT | C2 =10 | 
|  | 
| const squareT | D2 =11 | 
|  | 
| const squareT | E2 =12 | 
|  | 
| const squareT | F2 =13 | 
|  | 
| const squareT | G2 =14 | 
|  | 
| const squareT | H2 =15 | 
|  | 
| const squareT | A3 =16 | 
|  | 
| const squareT | B3 =17 | 
|  | 
| const squareT | C3 =18 | 
|  | 
| const squareT | D3 =19 | 
|  | 
| const squareT | E3 =20 | 
|  | 
| const squareT | F3 =21 | 
|  | 
| const squareT | G3 =22 | 
|  | 
| const squareT | H3 =23 | 
|  | 
| const squareT | A4 =24 | 
|  | 
| const squareT | B4 =25 | 
|  | 
| const squareT | C4 =26 | 
|  | 
| const squareT | D4 =27 | 
|  | 
| const squareT | E4 =28 | 
|  | 
| const squareT | F4 =29 | 
|  | 
| const squareT | G4 =30 | 
|  | 
| const squareT | H4 =31 | 
|  | 
| const squareT | A5 =32 | 
|  | 
| const squareT | B5 =33 | 
|  | 
| const squareT | C5 =34 | 
|  | 
| const squareT | D5 =35 | 
|  | 
| const squareT | E5 =36 | 
|  | 
| const squareT | F5 =37 | 
|  | 
| const squareT | G5 =38 | 
|  | 
| const squareT | H5 =39 | 
|  | 
| const squareT | A6 =40 | 
|  | 
| const squareT | B6 =41 | 
|  | 
| const squareT | C6 =42 | 
|  | 
| const squareT | D6 =43 | 
|  | 
| const squareT | E6 =44 | 
|  | 
| const squareT | F6 =45 | 
|  | 
| const squareT | G6 =46 | 
|  | 
| const squareT | H6 =47 | 
|  | 
| const squareT | A7 =48 | 
|  | 
| const squareT | B7 =49 | 
|  | 
| const squareT | C7 =50 | 
|  | 
| const squareT | D7 =51 | 
|  | 
| const squareT | E7 =52 | 
|  | 
| const squareT | F7 =53 | 
|  | 
| const squareT | G7 =54 | 
|  | 
| const squareT | H7 =55 | 
|  | 
| const squareT | A8 =56 | 
|  | 
| const squareT | B8 =57 | 
|  | 
| const squareT | C8 =58 | 
|  | 
| const squareT | D8 =59 | 
|  | 
| const squareT | E8 =60 | 
|  | 
| const squareT | F8 =61 | 
|  | 
| const squareT | G8 =62 | 
|  | 
| const squareT | H8 =63 | 
|  | 
| const squareT | COLOR_SQUARE = 64 | 
|  | 
| const squareT | NULL_SQUARE = 65 | 
|  | 
| const squareT | NS = 65 | 
|  | 
| const rankT | RANK_1 = 0 | 
|  | 
| const rankT | RANK_2 = 1 | 
|  | 
| const rankT | RANK_3 = 2 | 
|  | 
| const rankT | RANK_4 = 3 | 
|  | 
| const rankT | RANK_5 = 4 | 
|  | 
| const rankT | RANK_6 = 5 | 
|  | 
| const rankT | RANK_7 = 6 | 
|  | 
| const rankT | RANK_8 = 7 | 
|  | 
| const rankT | NO_RANK = 64 | 
|  | 
| const fyleT | A_FYLE = 0 | 
|  | 
| const fyleT | B_FYLE = 1 | 
|  | 
| const fyleT | C_FYLE = 2 | 
|  | 
| const fyleT | D_FYLE = 3 | 
|  | 
| const fyleT | E_FYLE = 4 | 
|  | 
| const fyleT | F_FYLE = 5 | 
|  | 
| const fyleT | G_FYLE = 6 | 
|  | 
| const fyleT | H_FYLE = 7 | 
|  | 
| const fyleT | NO_FYLE = 64 | 
|  | 
| const uint | rankFyleDist [64] | 
|  | 
| const int | edgeDist [66] | 
|  | 
| const directionT | NULL_DIR = 0 | 
|  | 
| const directionT | UP = 1 | 
|  | 
| const directionT | DOWN = 2 | 
|  | 
| const directionT | LEFT = 4 | 
|  | 
| const directionT | RIGHT = 8 | 
|  | 
| const directionT | UP_LEFT = (UP | LEFT) | 
|  | 
| const directionT | UP_RIGHT = (UP | RIGHT) | 
|  | 
| const directionT | DOWN_LEFT = (DOWN | LEFT) | 
|  | 
| const directionT | DOWN_RIGHT = (DOWN | RIGHT) | 
|  | 
| const directionT | dirOpposite [11] | 
|  | 
| const bool | dirIsDiagonal [11] | 
|  | 
| const int | dirDelta [11] | 
|  | 
| const boardT | START_BOARD | 
|  | 
| const colorT | BOARD_SQUARECOLOR [66] | 
|  | 
◆ ASSERT
      
        
          | #define ASSERT | ( |  | f | ) | assert(f) | 
      
 
 
◆ BBUF_SIZE
◆ BIT_0
      
        
          | #define BIT_0 | ( |  | x | ) | ((x) &   1) | 
      
 
 
◆ BIT_1
      
        
          | #define BIT_1 | ( |  | x | ) | ((x) &   2) | 
      
 
 
◆ BIT_2
      
        
          | #define BIT_2 | ( |  | x | ) | ((x) &   4) | 
      
 
 
◆ BIT_3
      
        
          | #define BIT_3 | ( |  | x | ) | ((x) &   8) | 
      
 
 
◆ BIT_4
      
        
          | #define BIT_4 | ( |  | x | ) | ((x) &  16) | 
      
 
 
◆ BIT_5
      
        
          | #define BIT_5 | ( |  | x | ) | ((x) &  32) | 
      
 
 
◆ BIT_6
      
        
          | #define BIT_6 | ( |  | x | ) | ((x) &  64) | 
      
 
 
◆ BIT_7
      
        
          | #define BIT_7 | ( |  | x | ) | ((x) & 128) | 
      
 
 
◆ LOWER_12_BITS
      
        
          | #define LOWER_12_BITS | ( |  | x | ) | ((x) &  4095) | 
      
 
 
◆ LOWER_4_BITS
      
        
          | #define LOWER_4_BITS | ( |  | x | ) | ((x) &  15) | 
      
 
 
◆ UPPER_12_BITS
      
        
          | #define UPPER_12_BITS | ( |  | x | ) | (((x) & (4096 * 4095)) >> 12) | 
      
 
 
◆ UPPER_4_BITS
      
        
          | #define UPPER_4_BITS | ( |  | x | ) | (((x) & 240) >> 4) | 
      
 
 
◆ boardT
◆ byte
      
        
          | typedef unsigned char byte | 
      
 
 
◆ castleDirT
◆ colorT
◆ compareT
◆ dateT
◆ directionT
◆ ecoStringT
      
        
          | typedef char ecoStringT[6] | 
      
 
 
◆ ecoT
◆ eloT
◆ fileLengthT
◆ fileNameT
      
        
          | typedef char fileNameT[512] | 
      
 
 
◆ fyleT
◆ gamenumT
◆ idNumberT
◆ leftDiagT
◆ nameT
◆ pieceT
◆ rankT
◆ resultT
◆ rightDiagT
◆ sanStringT
      
        
          | typedef char sanStringT[10] | 
      
 
 
◆ sint
◆ smallBoardT
      
        
          | typedef byte smallBoardT[32] | 
      
 
 
◆ squareT
◆ statusT
◆ uint
◆ ushort
◆ versionT
◆ anonymous enum
| Enumerator | 
|---|
| NAME_PLAYER |  | 
| NAME_EVENT |  | 
| NAME_SITE |  | 
| NAME_ROUND |  | 
| NUM_NAME_TYPES |  | 
| NAME_INVALID |  | 
Definition at line 154 of file common.h.
 
 
◆ fileModeT
| Enumerator | 
|---|
| FMODE_None |  | 
| FMODE_ReadOnly |  | 
| FMODE_WriteOnly |  | 
| FMODE_Both |  | 
| FMODE_Create |  | 
| FMODE_Memory |  | 
Definition at line 136 of file common.h.
 
 
◆ board_Compare()
◆ color_Char()
◆ color_Flip()
◆ direction_Delta()
◆ direction_IsDiagonal()
◆ direction_Opposite()
◆ fyle_FromChar()
  
  | 
        
          | fyleT fyle_FromChar | ( | char | c | ) |  |  | inline | 
 
 
◆ piece_Char()
◆ piece_Color()
◆ piece_Color_NotEmpty()
◆ piece_FromChar()
  
  | 
        
          | pieceT piece_FromChar | ( | int | x | ) |  |  | inline | 
 
 
◆ piece_IsBishop()
  
  | 
        
          | bool piece_IsBishop | ( | pieceT | p | ) |  |  | inline | 
 
 
◆ piece_IsBlack()
  
  | 
        
          | bool piece_IsBlack | ( | pieceT | p | ) |  |  | inline | 
 
 
◆ piece_IsKing()
◆ piece_IsKnight()
  
  | 
        
          | bool piece_IsKnight | ( | pieceT | p | ) |  |  | inline | 
 
 
◆ piece_IsPawn()
◆ piece_IsQueen()
  
  | 
        
          | bool piece_IsQueen | ( | pieceT | p | ) |  |  | inline | 
 
 
◆ piece_IsRook()
◆ piece_IsSlider()
  
  | 
        
          | bool piece_IsSlider | ( | pieceT | p | ) |  |  | inline | 
 
 
◆ piece_IsWhite()
  
  | 
        
          | bool piece_IsWhite | ( | pieceT | p | ) |  |  | inline | 
 
 
◆ piece_Make()
◆ piece_Type()
◆ piece_Value()
◆ rank_FromChar()
  
  | 
        
          | rankT rank_FromChar | ( | char | c | ) |  |  | inline | 
 
 
◆ square_Adjacent()
◆ square_Color()
◆ square_Distance()
◆ square_EdgeDistance()
  
  | 
        
          | int square_EdgeDistance | ( | squareT | sq | ) |  |  | inline | 
 
 
◆ square_FlipDiag()
◆ square_FlipFyle()
◆ square_FlipRank()
◆ square_Fyle()
◆ square_FyleChar()
◆ square_IsCornerSquare()
  
  | 
        
          | bool square_IsCornerSquare | ( | squareT | sq | ) |  |  | inline | 
 
 
◆ square_IsEdgeSquare()
  
  | 
        
          | bool square_IsEdgeSquare | ( | squareT | sq | ) |  |  | inline | 
 
 
◆ square_IsKnightHop()
◆ square_LeftDiag()
◆ square_Make()
◆ square_NearestCorner()
◆ square_Print()
  
  | 
        
          | void square_Print | ( | squareT | sq, |  
          |  |  | char * | str |  
          |  | ) |  |  |  | inline | 
 
 
◆ square_Rank()
◆ square_RankChar()
◆ square_RightDiag()
◆ A1
◆ A2
◆ A3
◆ A4
◆ A5
◆ A6
◆ A7
◆ A8
◆ A_FYLE
◆ B1
◆ B2
◆ B3
◆ B4
◆ B5
◆ B6
◆ B7
◆ B8
◆ B_FYLE
◆ BB
◆ BISHOP
◆ BK
◆ BLACK
◆ BM
◆ BN
◆ BOARD_SQUARECOLOR
      
        
          | const colorT BOARD_SQUARECOLOR[66] | 
      
 
Initial value:
Definition at line 650 of file common.h.
 
 
◆ BP
◆ BQ
◆ BR
◆ C1
◆ C2
◆ C3
◆ C4
◆ C5
◆ C6
◆ C7
◆ C8
◆ C_FYLE
◆ COLOR_CHAR
      
        
          | const char COLOR_CHAR[3] = {'W', 'B', '_' } | 
      
 
 
◆ COLOR_SQUARE
◆ D1
◆ D2
◆ D3
◆ D4
◆ D5
◆ D6
◆ D7
◆ D8
◆ D_FYLE
◆ dirDelta
Initial value:= {
    0,    
    8,    
   -8,    
    0,    
   -1,    
    7,    
   -9,    
    0,    
    1,    
    9,    
   -7     
}
Definition at line 609 of file common.h.
 
 
◆ dirIsDiagonal
      
        
          | const bool dirIsDiagonal[11] | 
      
 
Initial value:= {
    false,   
    false,   
    false,   
    false,   
    false,   
    true,    
    true,    
    false,   
    false,   
    true,    
    true     
}
Definition at line 585 of file common.h.
 
 
◆ dirOpposite
Initial value:= {
}
const directionT UP_RIGHT
const directionT NULL_DIR
const directionT DOWN_RIGHT
const directionT DOWN_LEFT
Definition at line 561 of file common.h.
 
 
◆ DOWN
◆ DOWN_LEFT
◆ DOWN_RIGHT
◆ E1
◆ E2
◆ E3
◆ E4
◆ E5
◆ E6
◆ E7
◆ E8
◆ E_FYLE
◆ ECO_None
◆ edgeDist
Initial value:= {
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 1, 1, 1, 1, 1, 1, 0,
    0, 1, 2, 2, 2, 2, 1, 0,
    0, 1, 2, 3, 3, 2, 1, 0,
    0, 1, 2, 3, 3, 2, 1, 0,
    0, 1, 2, 2, 2, 2, 1, 0,
    0, 1, 1, 1, 1, 1, 1, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    -1, -1
}
Definition at line 490 of file common.h.
 
 
◆ EMPTY
◆ END_OF_BOARD
◆ EQUAL_TO
◆ F1
◆ F2
◆ F3
◆ F4
◆ F5
◆ F6
◆ F7
◆ F8
◆ F_FYLE
◆ G1
◆ G2
◆ G3
◆ G4
◆ G5
◆ G6
◆ G7
◆ G8
◆ G_FYLE
◆ GREATER_THAN
◆ H1
◆ H2
◆ H3
◆ H4
◆ H5
◆ H6
◆ H7
◆ H8
◆ H_FYLE
◆ INVALID_PIECE
      
        
          | const pieceT INVALID_PIECE = 0 | 
      
 
 
◆ KING
◆ KNIGHT
◆ KSIDE
◆ LEFT
◆ LESS_THAN
◆ MAX_PIECE_TYPES
      
        
          | const uint MAX_PIECE_TYPES = 18 | 
      
 
 
◆ NO_FYLE
◆ NO_RANK
◆ NOCOLOR
◆ NS
◆ NULL_DIR
◆ NULL_SQUARE
◆ NUM_COLOR_TYPES
      
        
          | const uint NUM_COLOR_TYPES = 2 | 
      
 
 
◆ NUM_RESULT_TYPES
      
        
          | const uint NUM_RESULT_TYPES = 4 | 
      
 
 
◆ PAWN
◆ PGN_SUFFIX
      
        
          | const char PGN_SUFFIX[] = ".pgn" | 
      
 
 
◆ PIECE_CHAR
      
        
          | const char PIECE_CHAR[] = "xKQRBNP.xkqrbnpxMm" | 
      
 
 
◆ PIECE_FLIP
Initial value:= {
}
const pieceT END_OF_BOARD
Definition at line 256 of file common.h.
 
 
◆ PIECE_IS_SLIDER
      
        
          | const bool PIECE_IS_SLIDER[8] | 
      
 
Initial value:= {
    false,
    false, true, true, true, false, false,
    false,
}
Definition at line 264 of file common.h.
 
 
◆ PIECE_VALUE
Initial value:= {
    0,
    100, 9, 5, 3, 3, 1,
    0, 0,
    -100, -9, -5, -3, -3, -1,
    0, 3, -3
}
Definition at line 272 of file common.h.
 
 
◆ QSIDE
◆ QUEEN
◆ RANK_1
◆ RANK_2
◆ RANK_3
◆ RANK_4
◆ RANK_5
◆ RANK_6
◆ RANK_7
◆ RANK_8
◆ rankFyleDist
      
        
          | const uint rankFyleDist[64] | 
      
 
Initial value:= {
    0, 1, 2, 3, 4, 5, 6, 7,
    1, 0, 1, 2, 3, 4, 5, 6,
    2, 1, 0, 1, 2, 3, 4, 5,
    3, 2, 1, 0, 1, 2, 3, 4,
    4, 3, 2, 1, 0, 1, 2, 3,
    5, 4, 3, 2, 1, 0, 1, 2,
    6, 5, 4, 3, 2, 1, 0, 1,
    7, 6, 5, 4, 3, 2, 1, 0
}
Definition at line 440 of file common.h.
 
 
◆ RATING_BCF
      
        
          | const byte RATING_BCF = 6 | 
      
 
 
◆ RATING_DWZ
      
        
          | const byte RATING_DWZ = 5 | 
      
 
 
◆ RATING_Elo
      
        
          | const byte RATING_Elo = 0 | 
      
 
 
◆ RATING_ICCF
      
        
          | const byte RATING_ICCF = 3 | 
      
 
 
◆ RATING_Rapid
      
        
          | const byte RATING_Rapid = 2 | 
      
 
 
◆ RATING_Rating
      
        
          | const byte RATING_Rating = 1 | 
      
 
 
◆ RATING_USCF
      
        
          | const byte RATING_USCF = 4 | 
      
 
 
◆ ratingTypeNames
      
        
          | const char* ratingTypeNames[17] | 
      
 
 
◆ RESULT_Black
◆ RESULT_CHAR
      
        
          | const char RESULT_CHAR[4] = { '*', '1', '0', '=' } | 
      
 
 
◆ RESULT_Draw
◆ RESULT_LONGSTR
      
        
          | const char RESULT_LONGSTR[4][8] = { "*", "1-0", "0-1", "1/2-1/2" } | 
      
 
 
◆ RESULT_None
◆ RESULT_OPPOSITE
Initial value:= {
}
const resultT RESULT_Black
const resultT RESULT_Draw
const resultT RESULT_White
const resultT RESULT_None
Definition at line 198 of file common.h.
 
 
◆ RESULT_SCORE
      
        
          | const uint RESULT_SCORE[4] = { 1, 2, 0, 1 } | 
      
 
 
◆ RESULT_STR
      
        
          | const char RESULT_STR[4][4] = { "*", "1-0", "0-1", "=-=" } | 
      
 
 
◆ RESULT_White
◆ RIGHT
◆ ROOK
◆ SCID_OLDEST_VERSION
      
        
          | const versionT SCID_OLDEST_VERSION = 300 | 
      
 
 
◆ SCID_VERSION
◆ SCID_VERSION_STRING
      
        
          | const char SCID_VERSION_STRING[] = "4.7.0" | 
      
 
 
◆ SCID_WEBSITE
      
        
          | const char SCID_WEBSITE[] = "http://scid.sourceforge.net/" | 
      
 
 
◆ START_BOARD
Initial value:=
{
}
const pieceT END_OF_BOARD
Definition at line 632 of file common.h.
 
 
◆ UP
◆ UP_LEFT
◆ UP_RIGHT
◆ WB
◆ WHITE
◆ WK
◆ WM
◆ WN
◆ WP
◆ WQ
◆ WR