src/game.h

changeset 16
a298c6637c30
parent 14
970748b9a73b
child 18
6008840b859e
equal deleted inserted replaced
15:7ffd66591afe 16:a298c6637c30
76 _Bool checkmate; 76 _Bool checkmate;
77 _Bool capture; 77 _Bool capture;
78 } Move; 78 } Move;
79 79
80 #define POS_UNSPECIFIED UINT8_MAX 80 #define POS_UNSPECIFIED UINT8_MAX
81 #define mdst(b,m) b[m->torow][m->tofile] 81 #define mdst(b,m) b[(m)->torow][(m)->tofile]
82 #define msrc(b,m) b[m->fromrow][m->fromfile] 82 #define msrc(b,m) b[(m)->fromrow][(m)->fromfile]
83 83
84 #define isidx(idx) ((uint8_t)idx < 8) 84 #define isidx(idx) ((uint8_t)idx < 8)
85 85
86 #define isfile(file) (file >= 'a' && file <= 'h') 86 #define isfile(file) (file >= 'a' && file <= 'h')
87 #define isrow(row) (row >= '1' && row <= '8') 87 #define isrow(row) (row >= '1' && row <= '8')
88 88
89 #define rowidx(row) (row-'1') 89 #define rowidx(row) (row-'1')
90 #define fileidx(file) (file-'a') 90 #define fileidx(file) (file-'a')
91 91
92 #define chkidx(move) (isidx(move->fromfile) && isidx(move->fromrow) && \ 92 #define chkidx(move) (isidx((move)->fromfile) && isidx((move)->fromrow) && \
93 isidx(move->tofile) && isidx(move->torow)) 93 isidx((move)->tofile) && isidx((move)->torow))
94 94
95 /* secure versions - use, if index is not checked with isidx() */ 95 /* secure versions - use, if index is not checked with isidx() */
96 #define fileidx_s(c) (isfile(c)?fileidx(c):POS_UNSPECIFIED) 96 #define fileidx_s(c) (isfile(c)?fileidx(c):POS_UNSPECIFIED)
97 #define rowidx_s(c) (isrow(c)?rowidx(c):POS_UNSPECIFIED) 97 #define rowidx_s(c) (isrow(c)?rowidx(c):POS_UNSPECIFIED)
98 98

mercurial