Rev 161 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 161 | Rev 172 | ||
|---|---|---|---|
| Line 9... | Line 9... | ||
| 9 | 9 | ||
| 10 | // local type definitions |
10 | // local type definitions |
| 11 | typedef struct sendchallenge_s |
11 | typedef struct sendchallenge_s |
| 12 | { |
12 | { |
| 13 | wchar_t challengee[32]; // challengee's nickname |
13 | wchar_t challengee[32]; // challengee's nickname |
| - | 14 | wchar_t game_rules[32]; // the rules with which to play (standard, losers, etc) |
|
| 14 | int color; // color we want to play |
15 | int color; // color we want to play |
| 15 | bool is_rated; // whether this game is rated or not |
16 | bool is_rated; // whether this game is rated or not |
| 16 | int initial_time; // initial time of the game for each color |
17 | int initial_time; // initial time of the game for each color |
| 17 | int increment; // eventual time increment (Fischer pace) |
18 | int increment; // eventual time increment (Fischer pace) |
| 18 | } sendchallenge_t; |
19 | } sendchallenge_t; |
| 19 | 20 | ||
| 20 | 21 | ||
| 21 | // global variables used in this module only |
22 | // global variables used in this module only |
| 22 | static sendchallenge_t sendchallenge = { L"", COLOR_UNSPECIFIED, false, 2, 12}; |
23 | static sendchallenge_t sendchallenge = { L"", L"", COLOR_UNSPECIFIED, false, 2, 12}; |
| 23 | static HWND hThisWnd = NULL; |
24 | static HWND hThisWnd = NULL; |
| 24 | 25 | ||
| 25 | 26 | ||
| 26 | // prototypes of local functions |
27 | // prototypes of local functions |
| 27 | static void StartThread_ThisDialog (void *thread_parms); |
28 | static void StartThread_ThisDialog (void *thread_parms); |
| Line 32... | Line 33... | ||
| 32 | { |
33 | { |
| 33 | // helper function to fire up the modeless dialog box |
34 | // helper function to fire up the modeless dialog box |
| 34 | 35 | ||
| 35 | // prepare the sendchallenge structure |
36 | // prepare the sendchallenge structure |
| 36 | wcscpy_s (sendchallenge.challengee, WCHAR_SIZEOF (sendchallenge.challengee), challengee_name); |
37 | wcscpy_s (sendchallenge.challengee, WCHAR_SIZEOF (sendchallenge.challengee), challengee_name); |
| - | 38 | sendchallenge.game_rules[0] = 0; // no special rules until told otherwise |
|
| 37 | 39 | ||
| 38 | is_dialogbox_displayed = true; |
40 | is_dialogbox_displayed = true; |
| 39 | _beginthread (StartThread_ThisDialog, 0, NULL); // fire up the thread |
41 | _beginthread (StartThread_ThisDialog, 0, NULL); // fire up the thread |
| 40 | return; // return as soon as the thread is fired up |
42 | return; // return as soon as the thread is fired up |
| 41 | } |
43 | } |
| Line 53... | Line 55... | ||
| 53 | network_player = Player_FindByType (PLAYER_INTERNET); // quick access to network player |
55 | network_player = Player_FindByType (PLAYER_INTERNET); // quick access to network player |
| 54 | if (network_player == NULL) |
56 | if (network_player == NULL) |
| 55 | return; // consistency check |
57 | return; // consistency check |
| 56 | 58 | ||
| 57 | // send the challenge |
59 | // send the challenge |
| 58 | Player_SendBuffer_Add (network_player, 1000, L"match %s %s %d %d %s\n", |
60 | Player_SendBuffer_Add (network_player, 1000, L"match %s %s %d %d %s %s\n", |
| 59 | sendchallenge.challengee, |
61 | sendchallenge.challengee, |
| 60 | (sendchallenge.is_rated ? L"rated" : L"unrated"), |
62 | (sendchallenge.is_rated ? L"rated" : L"unrated"), |
| 61 | sendchallenge.initial_time, |
63 | sendchallenge.initial_time, |
| 62 | sendchallenge.increment, |
64 | sendchallenge.increment, |
| 63 | (sendchallenge.color == COLOR_BLACK ? L"black" : (sendchallenge.color == COLOR_WHITE ? L"white" : L"")) |
65 | (sendchallenge.color == COLOR_BLACK ? L"black" : (sendchallenge.color == COLOR_WHITE ? L"white" : L"")), |
| - | 66 | sendchallenge.game_rules); |
|
| 64 | 67 | ||
| 65 | // send a notification to this player's chat window |
68 | // send a notification to this player's chat window |
| 66 | Interlocutor_Notify (Interlocutor_FindOrCreate (sendchallenge.challengee), LOCALIZE (L"Chat_InvitationSent"), sendchallenge.challengee); |
69 | Interlocutor_Notify (Interlocutor_FindOrCreate (sendchallenge.challengee), LOCALIZE (L"Chat_InvitationSent"), sendchallenge.challengee); |
| 67 | return; // finished, invitation is sent |
70 | return; // finished, invitation is sent |
| 68 | } |
71 | } |
| Line 157... | Line 160... | ||
| 157 | sendchallenge.initial_time = 2; // default value |
160 | sendchallenge.initial_time = 2; // default value |
| 158 | sendchallenge.increment = GetDlgItemInt (hWnd, EDITBOX_SENDCHALLENGE_INCREMENT, &was_translated, false); |
161 | sendchallenge.increment = GetDlgItemInt (hWnd, EDITBOX_SENDCHALLENGE_INCREMENT, &was_translated, false); |
| 159 | if (!was_translated) |
162 | if (!was_translated) |
| 160 | sendchallenge.increment = 12; // default value |
163 | sendchallenge.increment = 12; // default value |
| 161 | sendchallenge.is_rated = (Button_GetCheck (GetDlgItem (hWnd, CHECKBOX_SENDCHALLENGE_RATETHISGAME)) != 0); |
164 | sendchallenge.is_rated = (Button_GetCheck (GetDlgItem (hWnd, CHECKBOX_SENDCHALLENGE_RATETHISGAME)) != 0); |
| - | 165 | ||
| - | 166 | sendchallenge.game_rules[0] = 0; // TODO: support other game rules |
|
| 162 | 167 | ||
| 163 | EndDialog (hWnd, 1); // close the dialog box and return OK |
168 | EndDialog (hWnd, 1); // close the dialog box and return OK |
| 164 | } |
169 | } |
| 165 | 170 | ||
| 166 | // else was it the status bar hyperlink ? |
171 | // else was it the status bar hyperlink ? |