Subversion Repositories Games.Chess Giants

Rev

Rev 130 | Rev 147 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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)
  10. //#define PROGRAM_VERSION L"2.8" // no longer used. Version comes in the form YYYYMMDD and is built in dialog_about.cpp
  11. #define PROGRAM_COPYRIGHT L"© 2010-2015"
  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"
  15. ///////////////////////
  16. // PayPal stuff - BEGIN
  17. #define PAYPAL_BUTTONID_FR L"DC5JKRXQQFNKQ" // french version of the button
  18. #define PAYPAL_BUTTONID_XX L"XEQFUPRM5WN68" // english and other languages
  19. #define PAYPAL_NOTIFYURL PROGRAM_URL L"/notify.php"
  20. #define PAYPAL_RETURNURL PROGRAM_URL L"/thankyou.php"
  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
  23. #define NOPAYPAL_URL PROGRAM_URL L"/nopaypal.php"
  24. // PayPal stuff - END
  25. /////////////////////
  26. #define ACCOUNTCREATION_URL L"http://www.freechess.org/cgi-bin/Register/FICS_register.cgi?Language=%s"
  27. #define MAX_STACKABLE_PARTS 7
  28. #define MAX_PITCH_FOR_FLAT_ICONS 75.0f
  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
  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))
  39. #define FENSTARTUP_STANDARDCHESS L"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
  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)
  56. #define RGBACOLOR_TO_ARGBCOLOR(rgba) ((((rgba) & 0xFFFFFF00) >> 8) | (((rgba) & 0x00FFFFFF) << 24))
  57.  
  58.  
  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.  
  64. // menu item IDs
  65. #define MENUID_RESOURCEBASE 20000
  66. #define MENUID_GAME_NEWGAME                     (MENUID_RESOURCEBASE + 101)
  67. #define MENUID_GAME_SETUPPOSITION               (MENUID_RESOURCEBASE + 102)
  68. #define MENUID_GAME_LOAD                        (MENUID_RESOURCEBASE + 103)
  69. #define MENUID_GAME_SAVE                        (MENUID_RESOURCEBASE + 104)
  70. #define MENUID_GAME_SAVEAS                      (MENUID_RESOURCEBASE + 105)
  71. #define MENUID_GAME_SAVEPOSITIONAS              (MENUID_RESOURCEBASE + 106)
  72. #define MENUID_GAME_PAUSE                       (MENUID_RESOURCEBASE + 107)
  73. #define MENUID_GAME_RESIGN                      (MENUID_RESOURCEBASE + 108)
  74. #define MENUID_GAME_STATISTICS                  (MENUID_RESOURCEBASE + 109)
  75. #define MENUID_GAME_OPTIONS                     (MENUID_RESOURCEBASE + 110)
  76. #define MENUID_GAME_QUIT                        (MENUID_RESOURCEBASE + 111)
  77. #define MENUID_MOVE_CANCELLASTMOVE              (MENUID_RESOURCEBASE + 201)
  78. #define MENUID_MOVE_SUGGESTMOVE                 (MENUID_RESOURCEBASE + 202)
  79. #define MENUID_MOVE_COMMENTMOVE                 (MENUID_RESOURCEBASE + 203)
  80. #define MENUID_MOVE_GOTOMOVE                    (MENUID_RESOURCEBASE + 204)
  81. #define MENUID_CHESSBOARD_SWAPSIDES             (MENUID_RESOURCEBASE + 205)
  82. #define MENUID_CHESSBOARD_RENAMESIDES           (MENUID_RESOURCEBASE + 206)
  83. #define MENUID_CHESSBOARD_BEGINNINGOFGAME       (MENUID_RESOURCEBASE + 207)
  84. #define MENUID_CHESSBOARD_PREVIOUSMOVE          (MENUID_RESOURCEBASE + 208)
  85. #define MENUID_CHESSBOARD_NEXTMOVE              (MENUID_RESOURCEBASE + 209)
  86. #define MENUID_CHESSBOARD_CURRENTSTATEOFGAME    (MENUID_RESOURCEBASE + 210)
  87. #define MENUID_CHESSBOARD_TOPVIEW               (MENUID_RESOURCEBASE + 211)
  88. #define MENUID_CHESSBOARD_DEFAULTVIEW           (MENUID_RESOURCEBASE + 212)
  89. #define MENUID_CHESSBOARD_RESETVIEW             (MENUID_RESOURCEBASE + 213)
  90. #define MENUID_CHESSBOARD_ZOOMIN                (MENUID_RESOURCEBASE + 214)
  91. #define MENUID_CHESSBOARD_ZOOMOUT               (MENUID_RESOURCEBASE + 215)
  92. #define MENUID_CHESSBOARD_CHANGEAPPEARANCE      (MENUID_RESOURCEBASE + 216)
  93. #define MENUID_CHESSBOARD_DISPLAYWINDOWSDESKTOP (MENUID_RESOURCEBASE + 217)
  94. #define MENUID_INTERNET_SHOWONLINEPLAYERS       (MENUID_RESOURCEBASE + 301)
  95. #define MENUID_INTERNET_SHOWSOUGHTGAMES         (MENUID_RESOURCEBASE + 302)
  96. #define MENUID_INTERNET_SEEKGAME                (MENUID_RESOURCEBASE + 303)
  97. #define MENUID_INTERNET_CHATTERCHANNELS         (MENUID_RESOURCEBASE + 304)
  98. #define MENUID_INTERNET_ENTERCHATTEXT           (MENUID_RESOURCEBASE + 305)
  99. #define MENUID_INTERNET_DISPLAYPLAYERCARD       (MENUID_RESOURCEBASE + 306)
  100. #define MENUID_INTERNET_DISPLAYYOURCARD         (MENUID_RESOURCEBASE + 307)
  101. #define MENUID_INTERNET_MOTD                    (MENUID_RESOURCEBASE + 308)
  102. #define MENUID_HELP_HELP                        (MENUID_RESOURCEBASE + 401)
  103. #define MENUID_HELP_GETCHESSGAMES               (MENUID_RESOURCEBASE + 402)
  104. #define MENUID_HELP_ADDMODIFYVISUALTHEMES       (MENUID_RESOURCEBASE + 403)
  105. #define MENUID_HELP_ADDMODIFYENGINES            (MENUID_RESOURCEBASE + 404)
  106. #define MENUID_HELP_ADDMODIFYTRANSLATIONS       (MENUID_RESOURCEBASE + 405)
  107. #define MENUID_HELP_ABOUT                       (MENUID_RESOURCEBASE + 406)
  108.  
  109.  
  110. // sound IDs
  111. #define SOUNDTYPE_NONE 0
  112. #define SOUNDTYPE_MOVE 1
  113. #define SOUNDTYPE_ILLEGALMOVE 2
  114. #define SOUNDTYPE_PIECETAKEN 3
  115. #define SOUNDTYPE_CHECK 4
  116. #define SOUNDTYPE_VICTORY 5
  117. #define SOUNDTYPE_DEFEAT 6
  118. #define SOUNDTYPE_CLICK 7
  119. #define SOUNDTYPE_SLIDE 8
  120.  
  121.  
  122. // text alignments
  123. #define ALIGN_LEFT 0
  124. #define ALIGN_TOP 0
  125. #define ALIGN_RIGHT 1
  126. #define ALIGN_BOTTOM 1
  127. #define ALIGN_CENTER 2
  128.  
  129.  
  130. // in case this ever changes...
  131. #define MATH_PI 3.14159265358979323846f
  132. #define TO_RADIANS (MATH_PI / 180.0f)
  133. #define TO_DEGREES (180.0f / MATH_PI)
  134.  
  135.  
  136. // light types
  137. #define LIGHT_NONE 0
  138. #define LIGHT_DIRECTIONAL 1
  139. #define LIGHT_POINT 2
  140. #define LIGHT_SPOT 3
  141.  
  142.  
  143. // chess colors
  144. #define COLOR_UNSPECIFIED -1 // used in dialog_sendchallenge.cpp and dialog_sendseek.cpp
  145. #define COLOR_BLACK 0
  146. #define COLOR_WHITE 1
  147.  
  148.  
  149. // chess parts
  150. #define PART_NONE 0
  151. #define PART_KING 1
  152. #define PART_QUEEN 2
  153. #define PART_BISHOP 3
  154. #define PART_KNIGHT 4
  155. #define PART_ROOK 5
  156. #define PART_PAWN 6
  157.  
  158.  
  159. // slot flags
  160. #define FLAG_NONE 0
  161. #define FLAG_SELECTED (1 << 0)
  162. #define FLAG_POSSIBLEMOVE (1 << 1)
  163. #define FLAG_TAKEABLE (1 << 2)
  164. #define FLAG_THREAT (1 << 3)
  165. #define FLAG_CHECK (1 << 4)
  166.  
  167.  
  168. // game states
  169. #define STATE_UNKNOWN 0
  170. #define STATE_SETUPPOSITION 1
  171. #define STATE_PLAYING 2
  172. #define STATE_WHITEWIN_CHECKMATE 3
  173. #define STATE_WHITEWIN_RESIGNORFORFEIT 4
  174. #define STATE_BLACKWIN_CHECKMATE 5
  175. #define STATE_BLACKWIN_RESIGNORFORFEIT 6
  176. #define STATE_DRAW_STALEMATE 7
  177. #define STATE_DRAW_AGREEMENT 8
  178. #define STATE_DRAW_OTHER 9
  179. #define STATE_ADJOURNED 10
  180.  
  181.  
  182. // resign types
  183. #define RESIGNTYPE_UNDEFINED 0
  184. #define RESIGNTYPE_NEWGAME 1
  185. #define RESIGNTYPE_LOADGAME 2
  186.  
  187.  
  188. // player types
  189. #define PLAYER_HUMAN 0
  190. #define PLAYER_COMPUTER 1
  191. #define PLAYER_INTERNET 2
  192.  
  193.  
  194. // network opponent rating types
  195. #define OPPONENTRATINGTYPE_DEFAULT 0
  196. #define OPPONENTRATINGTYPE_ESTIMATED 1 // E character
  197. #define OPPONENTRATINGTYPE_PROVISIONAL 2 // P character
  198.  
  199.  
  200. // network opponent handle status
  201. #define HANDLESTATUS_UNDEFINED 0
  202. #define HANDLESTATUS_AVAILABLE 1 // (space) character
  203. #define HANDLESTATUS_INGAME 2 // ^ character
  204. #define HANDLESTATUS_INSIMULATION 3 // ~ character
  205. #define HANDLESTATUS_INTOURNAMENT 4 // & character
  206. #define HANDLESTATUS_EXAMININGAGAME 5 // # character
  207. #define HANDLESTATUS_NOTOPENFORAMATCH 6 // : character
  208. #define HANDLESTATUS_INACTIVEORBUSY 7 // . character
  209. #define HANDLESTATUS_OFFLINE 8 // no representation in player list
  210.  
  211.  
  212. // network opponent handle codes
  213. #define HANDLECODE_NONE 0
  214. #define HANDLECODE_ADMINISTRATOR (1 << 0) // (*)
  215. #define HANDLECODE_BLINDFOLD (1 << 1) // (B)
  216. #define HANDLECODE_COMPUTER (1 << 2) // (C)
  217. #define HANDLECODE_TEAM (1 << 3) // (T)
  218. #define HANDLECODE_UNREGISTERED (1 << 4) // (U)
  219. #define HANDLECODE_CHESSADVISOR (1 << 5) // (CA)
  220. #define HANDLECODE_SERVICEREPRESENTATIVE (1 << 6) // (SR)
  221. #define HANDLECODE_TOURNAMENTDIRECTOR (1 << 7) // (TD)
  222. #define HANDLECODE_MAMERMANAGER (1 << 8) // (TM)
  223. #define HANDLECODE_FIDEMASTER (1 << 9) // (FM)
  224. #define HANDLECODE_FIDEINTERNATIONALMASTER (1 << 10) // (IM)
  225. #define HANDLECODE_FIDEGREATMASTER (1 << 11) // (GM)
  226. #define HANDLECODE_FIDEWOMENSINTERNATIONALMASTER (1 << 12) // (WIM)
  227. #define HANDLECODE_FIDEWOMENSGREATMASTER (1 << 13) // (WGM)
  228.  
  229.  
  230. // rating types
  231. #define GAMERATINGTYPE_UNSUPPORTED 0
  232. #define GAMERATINGTYPE_SUPPORTEDRATED 1
  233. #define GAMERATINGTYPE_SUPPORTEDUNRATED 2
  234.  
  235.  
  236. #endif // DEFINES_H
  237.