Subversion Repositories Games.Chess Giants

Rev

Rev 124 | Rev 136 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
// defines.h
2
 
3
#ifndef DEFINES_H
4
#define DEFINES_H
5
 
6
 
7
// common definitions
8
#define PROGRAM_NAME L"Chess Giants"
9
#define DEMO_TIMEOUT (6.0f * 60.0f)
74 pmbaty 10
//#define PROGRAM_VERSION L"2.8" // no longer used. Version comes in the form YYYYMMDD and is built in dialog_about.cpp
59 pmbaty 11
#define PROGRAM_COPYRIGHT L"© 2010-2015"
1 pmbaty 12
#define PROGRAM_URL L"http://www.pmbaty.com/chess"
13
#define AUTHOR_NAME L"Pierre-Marie Baty"
14
#define AUTHOR_EMAIL L"pm@pmbaty.com"
14 pmbaty 15
///////////////////////
16
// PayPal stuff - BEGIN
89 pmbaty 17
#define PAYPAL_BUTTONID_FR L"DC5JKRXQQFNKQ" // french version of the button
18
#define PAYPAL_BUTTONID_XX L"XEQFUPRM5WN68" // english and other languages
14 pmbaty 19
#define PAYPAL_NOTIFYURL PROGRAM_URL L"/notify.php"
20
#define PAYPAL_RETURNURL PROGRAM_URL L"/thankyou.php"
89 pmbaty 21
#define PAYPAL_URL_FR L"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=" PAYPAL_BUTTONID_FR L"&notify_url=" PAYPAL_NOTIFYURL L"&return=" PAYPAL_RETURNURL
22
#define PAYPAL_URL_XX L"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=" PAYPAL_BUTTONID_XX L"&notify_url=" PAYPAL_NOTIFYURL L"&return=" PAYPAL_RETURNURL
14 pmbaty 23
#define NOPAYPAL_URL PROGRAM_URL L"/nopaypal.php"
24
// PayPal stuff - END
25
/////////////////////
1 pmbaty 26
#define ACCOUNTCREATION_URL L"http://www.freechess.org/cgi-bin/Register/FICS_register.cgi?Language=%s"
25 pmbaty 27
#define MAX_STACKABLE_PARTS 7
1 pmbaty 28
#define MAX_PITCH_FOR_FLAT_ICONS 75.0f
124 pmbaty 29
#define CLOSEUP_VIEW_DISTANCE 40.0f
30
#define CLOSEUP_VIEW_PITCH 6.0f
31
#define MIN_VIEW_PITCH 10.0f
32
#define MIN_VIEW_DISTANCE 48.0f
33
#define MAX_VIEW_PITCH 89.99f
34
#define MAX_VIEW_DISTANCE 100.0f
1 pmbaty 35
#define ANIMATION_DURATION 1.0f
36
#define WCHAR_SIZEOF(a) (sizeof (a) / sizeof (wchar_t))
37
#define LOCALIZE(a) LocalizedTexts_GetLocalizedTextFor (a)
38
#define IS_VALID_POSITION(pos) (((pos)[0] >= 0) && ((pos)[0] < 8) && ((pos)[1] >= 0) && ((pos)[1] < 8))
44 pmbaty 39
#define FENSTARTUP_STANDARDCHESS L"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
1 pmbaty 40
#define PGNMOVENUMBER_TO_MOVEINDEX(move,color) (2 * ((move) - 1) + ((color) == COLOR_BLACK ? 1 : 0))
41
#define MOVEINDEX_TO_PGNMOVENUMBER(moveindex) (1 + ((moveindex) - ((moveindex) % 2)) / 2)
42
 
43
 
44
// color handling macros
45
#define RGB_TO_RGBACOLOR(r,g,b)    ((((unsigned long) (r)) << 24) | (((unsigned long) (g)) << 16) | (((unsigned long) (b)) << 8) | 0x000000FF)
46
#define RGBA_TO_RGBACOLOR(r,g,b,a) ((((unsigned long) (r)) << 24) | (((unsigned long) (g)) << 16) | (((unsigned long) (b)) << 8) | ((unsigned long) (a)))
47
#define RGBACOLOR_RED(rgba)   ((unsigned char) (((rgba) & 0xFF000000) >> 24))
48
#define RGBACOLOR_GREEN(rgba) ((unsigned char) (((rgba) & 0x00FF0000) >> 16))
49
#define RGBACOLOR_BLUE(rgba)  ((unsigned char) (((rgba) & 0x0000FF00) >> 8))
50
#define RGBACOLOR_ALPHA(rgba) ((unsigned char)  ((rgba) & 0x000000FF))
51
#define RGBACOLOR_SETRED(rgba,red)     (((rgba) & 0x00FFFFFF) | (((unsigned long) (red))   << 24))
52
#define RGBACOLOR_SETGREEN(rgba,green) (((rgba) & 0xFF00FFFF) | (((unsigned long) (green)) << 16))
53
#define RGBACOLOR_SETBLUE(rgba,blue)   (((rgba) & 0xFFFF00FF) | (((unsigned long) (blue))  <<  8))
54
#define RGBACOLOR_SETALPHA(rgba,alpha) (((rgba) & 0xFFFFFF00) |  ((unsigned long) (alpha)))
55
#define RGBACOLOR_FULLALPHA(rgba)      ((rgba) | 0x000000FF)
124 pmbaty 56
#define RGBACOLOR_TO_ARGBCOLOR(rgba) ((((rgba) & 0xFFFFFF00) >> 8) | (((rgba) & 0x00FFFFFF) << 24))
1 pmbaty 57
 
58
 
124 pmbaty 59
// handy macros
60
#define GUIBUTTON_ENABLE(button) { if ((button).state == 0) { (button).state = 1; /*the_board.reevaluate =*/ the_scene.update = true; } }
61
#define GUIBUTTON_DISABLE(button) { if ((button).state > 0) { (button).state = 0; /*the_board.reevaluate =*/ the_scene.update = true; } }
62
 
63
 
1 pmbaty 64
// menu item IDs
65
#define MENUID_GAME_NEWGAME 101
66
#define MENUID_GAME_SETUPPOSITION 102
67
#define MENUID_GAME_LOAD 103
68
#define MENUID_GAME_SAVE 104
69
#define MENUID_GAME_SAVEAS 105
70
#define MENUID_GAME_SAVEPOSITIONAS 106
75 pmbaty 71
#define MENUID_GAME_PAUSE 107
72
#define MENUID_GAME_RESIGN 108
73
#define MENUID_GAME_STATISTICS 109
74
#define MENUID_GAME_OPTIONS 110
75
#define MENUID_GAME_QUIT 111
1 pmbaty 76
#define MENUID_CHESSBOARD_SUGGESTMOVE 201
77
#define MENUID_CHESSBOARD_CANCELLASTMOVE 202
78
#define MENUID_CHESSBOARD_COMMENTMOVE 203
79
#define MENUID_CHESSBOARD_GOTOMOVE 204
80
#define MENUID_CHESSBOARD_SWAPSIDES 205
75 pmbaty 81
#define MENUID_CHESSBOARD_RENAMESIDES 206
82
#define MENUID_CHESSBOARD_BEGINNINGOFGAME 207
83
#define MENUID_CHESSBOARD_PREVIOUSMOVE 208
84
#define MENUID_CHESSBOARD_NEXTMOVE 209
85
#define MENUID_CHESSBOARD_CURRENTSTATEOFGAME 210
86
#define MENUID_CHESSBOARD_TOPVIEW 211
87
#define MENUID_CHESSBOARD_DEFAULTVIEW 212
88
#define MENUID_CHESSBOARD_RESETVIEW 213
89
#define MENUID_CHESSBOARD_ZOOMIN 214
90
#define MENUID_CHESSBOARD_ZOOMOUT 215
91
#define MENUID_CHESSBOARD_CHANGEAPPEARANCE 216
92
#define MENUID_CHESSBOARD_DISPLAYWINDOWSDESKTOP 217
1 pmbaty 93
#define MENUID_INTERNET_SHOWONLINEPLAYERS 301
94
#define MENUID_INTERNET_SHOWSOUGHTGAMES 302
95
#define MENUID_INTERNET_SEEKGAME 303
96
#define MENUID_INTERNET_CHATTERCHANNELS 304
97
#define MENUID_INTERNET_ENTERCHATTEXT 305
98
#define MENUID_INTERNET_DISPLAYPLAYERCARD 306
99
#define MENUID_INTERNET_DISPLAYYOURCARD 307
100
#define MENUID_INTERNET_MOTD 308
101
#define MENUID_HELP_HELP 401
102
#define MENUID_HELP_GETCHESSGAMES 402
21 pmbaty 103
#define MENUID_HELP_ADDMODIFYVISUALTHEMES 403
50 pmbaty 104
#define MENUID_HELP_ADDMODIFYENGINES 404
105
#define MENUID_HELP_ADDMODIFYTRANSLATIONS 405
106
#define MENUID_HELP_ABOUT 406
1 pmbaty 107
 
108
 
109
// sound IDs
110
#define SOUNDTYPE_NONE 0
111
#define SOUNDTYPE_MOVE 1
112
#define SOUNDTYPE_ILLEGALMOVE 2
113
#define SOUNDTYPE_PIECETAKEN 3
114
#define SOUNDTYPE_CHECK 4
115
#define SOUNDTYPE_VICTORY 5
116
#define SOUNDTYPE_DEFEAT 6
117
#define SOUNDTYPE_CLICK 7
130 pmbaty 118
#define SOUNDTYPE_SLIDE 8
1 pmbaty 119
 
120
 
121
// text alignments
122
#define ALIGN_LEFT 0
123
#define ALIGN_TOP 0
124
#define ALIGN_RIGHT 1
125
#define ALIGN_BOTTOM 1
126
#define ALIGN_CENTER 2
127
 
128
 
129
// in case this ever changes...
130
#define MATH_PI 3.14159265358979323846f
131
#define TO_RADIANS (MATH_PI / 180.0f)
132
#define TO_DEGREES (180.0f / MATH_PI)
133
 
134
 
135
// light types
136
#define LIGHT_NONE 0
137
#define LIGHT_DIRECTIONAL 1
138
#define LIGHT_POINT 2
139
#define LIGHT_SPOT 3
140
 
141
 
142
// chess colors
143
#define COLOR_UNSPECIFIED -1 // used in dialog_sendchallenge.cpp and dialog_sendseek.cpp
144
#define COLOR_BLACK 0
145
#define COLOR_WHITE 1
146
 
147
 
148
// chess parts
149
#define PART_NONE 0
150
#define PART_KING 1
151
#define PART_QUEEN 2
152
#define PART_BISHOP 3
153
#define PART_KNIGHT 4
154
#define PART_ROOK 5
155
#define PART_PAWN 6
156
 
157
 
158
// slot flags
159
#define FLAG_NONE 0
160
#define FLAG_SELECTED (1 << 0)
161
#define FLAG_POSSIBLEMOVE (1 << 1)
162
#define FLAG_TAKEABLE (1 << 2)
163
#define FLAG_THREAT (1 << 3)
164
#define FLAG_CHECK (1 << 4)
165
 
166
 
167
// game states
168
#define STATE_UNKNOWN 0
169
#define STATE_SETUPPOSITION 1
170
#define STATE_PLAYING 2
171
#define STATE_WHITEWIN_CHECKMATE 3
172
#define STATE_WHITEWIN_RESIGNORFORFEIT 4
173
#define STATE_BLACKWIN_CHECKMATE 5
174
#define STATE_BLACKWIN_RESIGNORFORFEIT 6
175
#define STATE_DRAW_STALEMATE 7
176
#define STATE_DRAW_AGREEMENT 8
177
#define STATE_DRAW_OTHER 9
178
#define STATE_ADJOURNED 10
179
 
180
 
181
// player types
182
#define PLAYER_HUMAN 0
183
#define PLAYER_COMPUTER 1
184
#define PLAYER_INTERNET 2
185
 
186
 
187
// network opponent rating types
188
#define OPPONENTRATINGTYPE_DEFAULT 0
189
#define OPPONENTRATINGTYPE_ESTIMATED 1 // E character
190
#define OPPONENTRATINGTYPE_PROVISIONAL 2 // P character
191
 
192
 
193
// network opponent handle status
194
#define HANDLESTATUS_UNDEFINED 0
195
#define HANDLESTATUS_AVAILABLE 1 // (space) character
196
#define HANDLESTATUS_INGAME 2 // ^ character
197
#define HANDLESTATUS_INSIMULATION 3 // ~ character
198
#define HANDLESTATUS_INTOURNAMENT 4 // & character
199
#define HANDLESTATUS_EXAMININGAGAME 5 // # character
200
#define HANDLESTATUS_NOTOPENFORAMATCH 6 // : character
201
#define HANDLESTATUS_INACTIVEORBUSY 7 // . character
202
#define HANDLESTATUS_OFFLINE 8 // no representation in player list
203
 
204
 
205
// network opponent handle codes
206
#define HANDLECODE_NONE 0
207
#define HANDLECODE_ADMINISTRATOR (1 << 0) // (*)
208
#define HANDLECODE_BLINDFOLD (1 << 1) // (B)
209
#define HANDLECODE_COMPUTER (1 << 2) // (C)
210
#define HANDLECODE_TEAM (1 << 3) // (T)
211
#define HANDLECODE_UNREGISTERED (1 << 4) // (U)
212
#define HANDLECODE_CHESSADVISOR (1 << 5) // (CA)
213
#define HANDLECODE_SERVICEREPRESENTATIVE (1 << 6) // (SR)
214
#define HANDLECODE_TOURNAMENTDIRECTOR (1 << 7) // (TD)
215
#define HANDLECODE_MAMERMANAGER (1 << 8) // (TM)
216
#define HANDLECODE_FIDEMASTER (1 << 9) // (FM)
217
#define HANDLECODE_FIDEINTERNATIONALMASTER (1 << 10) // (IM)
218
#define HANDLECODE_FIDEGREATMASTER (1 << 11) // (GM)
219
#define HANDLECODE_FIDEWOMENSINTERNATIONALMASTER (1 << 12) // (WIM)
220
#define HANDLECODE_FIDEWOMENSGREATMASTER (1 << 13) // (WGM)
221
 
222
 
223
// rating types
224
#define GAMERATINGTYPE_UNSUPPORTED 0
225
#define GAMERATINGTYPE_SUPPORTEDRATED 1
226
#define GAMERATINGTYPE_SUPPORTEDUNRATED 2
227
 
228
 
229
#endif // DEFINES_H