network_gui.c
changeset 4300 c7e43c47a2b9
parent 4299 91f5d2bedcff
child 4315 2e634e3ecd02
equal deleted inserted replaced
4299:91f5d2bedcff 4300:c7e43c47a2b9
    22 #include "gfx.h"
    22 #include "gfx.h"
    23 #include "command.h"
    23 #include "command.h"
    24 #include "variables.h"
    24 #include "variables.h"
    25 #include "network_server.h"
    25 #include "network_server.h"
    26 #include "network_udp.h"
    26 #include "network_udp.h"
       
    27 #include "settings.h"
    27 #include "string.h"
    28 #include "string.h"
    28 
    29 
    29 #define BGC 5
    30 #define BGC 5
    30 #define BTC 15
    31 #define BTC 15
    31 
    32 
    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: {