Subversion Repositories Games.Chess Giants

Rev

Rev 11 | Rev 18 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 11 Rev 14
Line 35... Line 35...
35
   int array_index;
35
   int array_index;
36
   bool is_success;
36
   bool is_success;
37
   char *endptr;
37
   char *endptr;
38
   wchar_t app_pathname[MAX_PATH];
38
   wchar_t app_pathname[MAX_PATH];
39
   wchar_t font_pathname[MAX_PATH];
39
   wchar_t font_pathname[MAX_PATH];
-
 
40
   wchar_t window_title[100];
40
   struct _stat fileinfo;
41
   struct _stat fileinfo;
41
   HACCEL hAccelerators;
42
   HACCEL hAccelerators;
42
   ACCEL accelerators[] =
43
   ACCEL accelerators[] =
43
   {
44
   {
44
      {FVIRTKEY | FCONTROL, L'O',     MENUID_GAME_LOAD},
45
      {FVIRTKEY | FCONTROL, L'O',     MENUID_GAME_LOAD},
Line 71... Line 72...
71
   GetModuleFileName (NULL, app_pathname, WCHAR_SIZEOF (app_pathname));
72
   GetModuleFileName (NULL, app_pathname, WCHAR_SIZEOF (app_pathname));
72
   GetDirectoryPath (app_pathname, app_path);
73
   GetDirectoryPath (app_pathname, app_path);
73
   SetCurrentDirectoryW (app_path);
74
   SetCurrentDirectoryW (app_path);
74
 
75
 
75
   // initialize stuff
76
   // initialize stuff
-
 
77
   is_registered = false;
76
   terminate_everything = false;
78
   terminate_everything = false;
77
   hMainWnd = NULL;
79
   hMainWnd = NULL;
78
   hChatterChannelsWnd = NULL;
80
   hChatterChannelsWnd = NULL;
79
   hGamesWnd = NULL;
81
   hGamesWnd = NULL;
80
   hMOTDWnd = NULL;
82
   hMOTDWnd = NULL;
Line 114... Line 116...
114
   save_pathname[0] = 0;
116
   save_pathname[0] = 0;
115
   srand ((unsigned int) time (NULL)); // initialize PRNG
117
   srand ((unsigned int) time (NULL)); // initialize PRNG
116
 
118
 
117
   // read configuration data
119
   // read configuration data
118
   Config_Load ();
120
   Config_Load ();
-
 
121
 
-
 
122
   // see if the program is registered
-
 
123
   is_registered = IsRegistrationCorrect (options.registration.user_email, options.registration.activation_code);
119
 
124
 
120
   // read texts in the right language, if such a translation exists
125
   // read texts in the right language, if such a translation exists
121
   is_success = false;
126
   is_success = false;
122
   GetLocaleInfo (LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, os_language, WCHAR_SIZEOF (os_language));
127
   GetLocaleInfo (LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, os_language, WCHAR_SIZEOF (os_language));
123
   is_success = LocalizedTexts_Init (L"%s/data/languages/%s.ini", app_path, os_language);
128
   is_success = LocalizedTexts_Init (L"%s/data/languages/%s.ini", app_path, os_language);
Line 199... Line 204...
199
   wc.hInstance = hAppInstance;
204
   wc.hInstance = hAppInstance;
200
   wc.hIcon = LoadIcon (hAppInstance, (wchar_t *) ICON_MAIN);
205
   wc.hIcon = LoadIcon (hAppInstance, (wchar_t *) ICON_MAIN);
201
   wc.hCursor = LoadCursor (NULL, IDC_ARROW);
206
   wc.hCursor = LoadCursor (NULL, IDC_ARROW);
202
   wc.lpszClassName = PROGRAM_NAME L" WndClass";
207
   wc.lpszClassName = PROGRAM_NAME L" WndClass";
203
   RegisterClassEx (&wc);
208
   RegisterClassEx (&wc);
-
 
209
   swprintf_s (window_title, WCHAR_SIZEOF (window_title), PROGRAM_NAME L"%s", (is_registered ? L"" : LOCALIZE (L"EvaluationMode")));
204
   if (options.want_fullscreen)
210
   if (options.want_fullscreen)
205
      hMainWnd = CreateWindowEx (0, wc.lpszClassName, PROGRAM_NAME, WS_POPUPWINDOW,
211
      hMainWnd = CreateWindowEx (0, wc.lpszClassName, window_title, WS_POPUPWINDOW,
206
                                 0, 0, GetSystemMetrics (SM_CXSCREEN), GetSystemMetrics (SM_CYSCREEN),
212
                                 0, 0, GetSystemMetrics (SM_CXSCREEN), GetSystemMetrics (SM_CYSCREEN),
207
                                 NULL, hMenu, hAppInstance, NULL);
213
                                 NULL, hMenu, hAppInstance, NULL);
208
   else
214
   else
209
   {
215
   {
210
      // in windowed mode, ensure window width and height aren't greater than screen size nor lower than a safe minimum
216
      // in windowed mode, ensure window width and height aren't greater than screen size nor lower than a safe minimum
Line 215... Line 221...
215
      if (options.window_width < 640)
221
      if (options.window_width < 640)
216
         options.window_width = 640; // check this secondly in case screen size is reported incorrect
222
         options.window_width = 640; // check this secondly in case screen size is reported incorrect
217
      if (options.window_height < 480)
223
      if (options.window_height < 480)
218
         options.window_height = 480;
224
         options.window_height = 480;
219
 
225
 
220
      hMainWnd = CreateWindowEx (0, wc.lpszClassName, PROGRAM_NAME, WS_OVERLAPPEDWINDOW,
226
      hMainWnd = CreateWindowEx (0, wc.lpszClassName, window_title, WS_OVERLAPPEDWINDOW,
221
                                 GetSystemMetrics (SM_CXSCREEN) / 2 - options.window_width / 2,
227
                                 GetSystemMetrics (SM_CXSCREEN) / 2 - options.window_width / 2,
222
                                 GetSystemMetrics (SM_CYSCREEN) / 2 - options.window_height / 2,
228
                                 GetSystemMetrics (SM_CYSCREEN) / 2 - options.window_height / 2,
223
                                 options.window_width,
229
                                 options.window_width,
224
                                 options.window_height,
230
                                 options.window_height,
225
                                 NULL, hMenu, hAppInstance, NULL);
231
                                 NULL, hMenu, hAppInstance, NULL);
Line 334... Line 340...
334
   while (!terminate_everything)
340
   while (!terminate_everything)
335
   {
341
   {
336
      // see what time it is
342
      // see what time it is
337
      current_time = ProcessTime ();
343
      current_time = ProcessTime ();
338
 
344
 
339
#ifdef DEMO
-
 
340
      // are we in demo mode and is it time to quit ?
345
      // are we in demo mode and is it time to quit ?
341
      if (current_time > DEMO_TIMEOUT)
346
      if (!is_registered && (current_time > DEMO_TIMEOUT))
342
         terminate_everything = true; // if so, send a quit message in order to break the loop
347
         terminate_everything = true; // if so, send a quit message in order to break the loop
343
#endif
-
 
344
 
348
 
345
      // grab the current window size
349
      // grab the current window size
346
      GetWindowRect (hMainWnd, &rect);
350
      GetWindowRect (hMainWnd, &rect);
347
      options.window_width = rect.right - rect.left;
351
      options.window_width = rect.right - rect.left;
348
      options.window_height = rect.bottom - rect.top;
352
      options.window_height = rect.bottom - rect.top;
Line 487... Line 491...
487
 
491
 
488
   // destroy the game menu
492
   // destroy the game menu
489
   if (IsMenu (hMenu))
493
   if (IsMenu (hMenu))
490
      DestroyMenu (hMenu);
494
      DestroyMenu (hMenu);
491
   hMenu = NULL;
495
   hMenu = NULL;
-
 
496
 
-
 
497
   // are we not registered yet ?
-
 
498
   if (!is_registered)
-
 
499
      DialogBox_Registration ();
492
 
500
 
493
   // save configuration data
501
   // save configuration data
494
   Config_Save ();
502
   Config_Save ();
495
 
503
 
496
   // unload localized texts
504
   // unload localized texts
Line 700... Line 708...
700
      EnableMenuItem (GetMenu (hMainWnd), MENUID_CHESSBOARD_SWAPSIDES, MF_GRAYED);
708
      EnableMenuItem (GetMenu (hMainWnd), MENUID_CHESSBOARD_SWAPSIDES, MF_GRAYED);
701
 
709
 
702
   // update window title
710
   // update window title
703
   if ((the_board.players[COLOR_WHITE].name[0] != 0) && (the_board.players[COLOR_BLACK].name[0] != 0))
711
   if ((the_board.players[COLOR_WHITE].name[0] != 0) && (the_board.players[COLOR_BLACK].name[0] != 0))
704
   {
712
   {
705
      swprintf_s (window_title, WCHAR_SIZEOF (window_title), L"%s %s %s - " PROGRAM_NAME, the_board.players[COLOR_WHITE].name, LOCALIZE (L"Versus"), the_board.players[COLOR_BLACK].name);
713
      swprintf_s (window_title, WCHAR_SIZEOF (window_title), L"%s %s %s - " PROGRAM_NAME L"%s", the_board.players[COLOR_WHITE].name, LOCALIZE (L"Versus"), the_board.players[COLOR_BLACK].name, (is_registered ? L"" : LOCALIZE (L"EvaluationMode")));
706
      SetWindowText (hMainWnd, window_title); // update window title
714
      SetWindowText (hMainWnd, window_title); // update window title
707
   }
715
   }
708
   else if (the_board.players[COLOR_WHITE].name[0] != 0)
716
   else if (the_board.players[COLOR_WHITE].name[0] != 0)
709
   {
717
   {
710
      swprintf_s (window_title, WCHAR_SIZEOF (window_title), L"%s - " PROGRAM_NAME, the_board.players[COLOR_WHITE].name);
718
      swprintf_s (window_title, WCHAR_SIZEOF (window_title), L"%s - " PROGRAM_NAME L"%s", the_board.players[COLOR_WHITE].name, (is_registered ? L"" : LOCALIZE (L"EvaluationMode")));
711
      SetWindowText (hMainWnd, window_title); // update window title
719
      SetWindowText (hMainWnd, window_title); // update window title
712
   }
720
   }
713
 
721
 
714
   // are we in internet mode AND are we logged in ?
722
   // are we in internet mode AND are we logged in ?
715
   if ((network_player != NULL) && network_player->is_logged_in)
723
   if ((network_player != NULL) && network_player->is_logged_in)