55 |
56 |
56 static char _edit_str_buf[64]; |
57 static char _edit_str_buf[64]; |
57 |
58 |
58 static void ShowNetworkStartServerWindow(void); |
59 static void ShowNetworkStartServerWindow(void); |
59 static void ShowNetworkLobbyWindow(NetworkGameList *ngl); |
60 static void ShowNetworkLobbyWindow(NetworkGameList *ngl); |
|
61 extern void SwitchMode(int new_mode); |
60 |
62 |
61 static const StringID _connection_types_dropdown[] = { |
63 static const StringID _connection_types_dropdown[] = { |
62 STR_NETWORK_LAN_INTERNET, |
64 STR_NETWORK_LAN_INTERNET, |
63 STR_NETWORK_INTERNET_ADVERTISE, |
65 STR_NETWORK_INTERNET_ADVERTISE, |
64 INVALID_STRING_ID |
66 INVALID_STRING_ID |
681 break; |
683 break; |
682 case 17: /* Start game */ |
684 case 17: /* Start game */ |
683 _is_network_server = true; |
685 _is_network_server = true; |
684 |
686 |
685 if (nd->map == NULL) { // start random new game |
687 if (nd->map == NULL) { // start random new game |
686 GenRandomNewGame(Random(), InteractiveRandom()); |
688 ShowGenerateLandscape(); |
687 } else { // load a scenario |
689 } else { // load a scenario |
688 char *name = FiosBrowseTo(nd->map); |
690 char *name = FiosBrowseTo(nd->map); |
689 if (name != NULL) { |
691 if (name != NULL) { |
690 SetFiosType(nd->map->type); |
692 SetFiosType(nd->map->type); |
691 ttd_strlcpy(_file_to_saveload.name, name, sizeof(_file_to_saveload.name)); |
693 ttd_strlcpy(_file_to_saveload.name, name, sizeof(_file_to_saveload.name)); |
692 ttd_strlcpy(_file_to_saveload.title, nd->map->title, sizeof(_file_to_saveload.title)); |
694 ttd_strlcpy(_file_to_saveload.title, nd->map->title, sizeof(_file_to_saveload.title)); |
693 |
695 |
694 DeleteWindow(w); |
696 DeleteWindow(w); |
695 StartScenarioEditor(Random(), InteractiveRandom()); |
697 SwitchMode(SM_START_SCENARIO); |
696 } |
698 } |
697 } |
699 } |
698 break; |
700 break; |
699 case 18: /* Load game */ |
701 case 18: /* Load game */ |
700 _is_network_server = true; |
702 _is_network_server = true; |
1389 void ShowClientList(void) |
1391 void ShowClientList(void) |
1390 { |
1392 { |
1391 Window *w = AllocateWindowDescFront(&_client_list_desc, 0); |
1393 Window *w = AllocateWindowDescFront(&_client_list_desc, 0); |
1392 if (w != NULL) w->window_number = 0; |
1394 if (w != NULL) w->window_number = 0; |
1393 } |
1395 } |
1394 |
|
1395 extern void SwitchMode(int new_mode); |
|
1396 |
1396 |
1397 static void NetworkJoinStatusWindowWndProc(Window *w, WindowEvent *e) |
1397 static void NetworkJoinStatusWindowWndProc(Window *w, WindowEvent *e) |
1398 { |
1398 { |
1399 switch (e->event) { |
1399 switch (e->event) { |
1400 case WE_PAINT: { |
1400 case WE_PAINT: { |