intro_gui.c
changeset 543 946badd71033
parent 534 306bc86eb23e
child 569 1e1755ba1572
equal deleted inserted replaced
542:de27e74b11bd 543:946badd71033
     6 #include "viewport.h"
     6 #include "viewport.h"
     7 #include "gfx.h"
     7 #include "gfx.h"
     8 #include "player.h"
     8 #include "player.h"
     9 #include "command.h"
     9 #include "command.h"
    10 #include "console.h"
    10 #include "console.h"
    11 
    11 #include "network.h"
    12 extern void MakeNewGame();
    12 
    13 extern void StartScenario();
    13 extern void SwitchMode(int new_mode);
    14 
    14 
    15 /*
    15 /*
    16 static void ShowSelectTutorialWindow()
    16 static void ShowSelectTutorialWindow()
    17 {
    17 {
    18 }
    18 }
    37 {    WWT_PANEL_2,    12,   170,   245,    69,   122, 0x1316,									STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
    37 {    WWT_PANEL_2,    12,   170,   245,    69,   122, 0x1316,									STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
    38 {    WWT_PANEL_2,    12,   250,   325,    69,   122, 0x1318,									STR_0311_SELECT_TOYLAND_LANDSCAPE},
    38 {    WWT_PANEL_2,    12,   250,   325,    69,   122, 0x1318,									STR_0311_SELECT_TOYLAND_LANDSCAPE},
    39 {   WIDGETS_END},
    39 {   WIDGETS_END},
    40 };
    40 };
    41 
    41 
       
    42 extern void HandleOnEditText(WindowEvent *e);
       
    43 extern void HandleOnEditTextCancel();
       
    44 
    42 static void SelectGameWndProc(Window *w, WindowEvent *e) {
    45 static void SelectGameWndProc(Window *w, WindowEvent *e) {
    43 	switch(e->event) {
    46 	switch(e->event) {
    44 	case WE_PAINT:
    47 	case WE_PAINT:
    45 		w->click_state = (w->click_state & ~(0xC0) & ~(0xF << 12)) | (1 << (_new_opt.landscape+12)) | (!_networking?(1<<6):(1<<7));
    48 		w->click_state = (w->click_state & ~(0xC0) & ~(0xF << 12)) | (1 << (_new_opt.landscape+12)) | (1<<6);
    46 		w->disabled_state = _networking ? 0x30 : 0;
       
    47 		SetDParam(0, STR_6801_EASY + _new_opt.diff_level);
    49 		SetDParam(0, STR_6801_EASY + _new_opt.diff_level);
    48 		DrawWindowWidgets(w);
    50 		DrawWindowWidgets(w);
    49 		break;
    51 		break;
    50 
    52 
    51 	case WE_CLICK:
    53 	case WE_CLICK:
    52 		switch(e->click.widget) {
    54 		switch(e->click.widget) {
    53 		case 2: DoCommandP(0, 0, 0, NULL, CMD_START_NEW_GAME); break;
    55 		case 2: DoCommandP(0, 0, 0, NULL, CMD_START_NEW_GAME); break;
    54 		case 3: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
    56 		case 3: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
    55 		case 4: ShowPatchesSelection(); break;
    57 		case 4: ShowPatchesSelection(); break;
    56 		case 5: DoCommandP(0, InteractiveRandom(), 0, NULL, CMD_CREATE_SCENARIO); break;
    58 		case 5: DoCommandP(0, InteractiveRandom(), 0, NULL, CMD_CREATE_SCENARIO); break;
    57 		case 6:
       
    58 			if (_networking)
       
    59 				DoCommandP(0, 0, 0, NULL, CMD_SET_SINGLE_PLAYER);
       
    60 			break;
       
    61 		case 7:
    59 		case 7:
       
    60 #ifdef ENABLE_NETWORK
    62 			if (!_network_available) {
    61 			if (!_network_available) {
    63 				ShowErrorMessage(-1,STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
    62 				ShowErrorMessage(-1,STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
    64 			} else {
    63 			} else {
    65 				ShowNetworkGameWindow();
    64 				ShowNetworkGameWindow();
    66 				ShowErrorMessage(-1, TEMP_STRING_NO_NETWORK, 0, 0);
       
    67 			}
    65 			}
       
    66 #else
       
    67 			ShowErrorMessage(-1,STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
       
    68 #endif /* ENABLE_NETWORK */
    68 			break;
    69 			break;
    69 		case 8: ShowGameOptions(); break;
    70 		case 8: ShowGameOptions(); break;
    70 		case 9: ShowGameDifficulty(); break;
    71 		case 9: ShowGameDifficulty(); break;
    71 		case 10:ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break;
    72 		case 10:ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break;
    72 		case 11:AskExitGame(); break;
    73 		case 11:AskExitGame(); break;
    77 	case WE_KEYPRESS:
    78 	case WE_KEYPRESS:
    78 		switch(e->keypress.keycode) {
    79 		switch(e->keypress.keycode) {
    79 		case WKC_BACKQUOTE: IConsoleSwitch(); break;
    80 		case WKC_BACKQUOTE: IConsoleSwitch(); break;
    80 		}
    81 		}
    81 		break;
    82 		break;
    82 	}
    83 
       
    84 	case WE_ON_EDIT_TEXT: HandleOnEditText(e); break;
       
    85 	case WE_ON_EDIT_TEXT_CANCEL: HandleOnEditTextCancel(); break;
       
    86 	}
       
    87 
    83 }
    88 }
    84 
    89 
    85 static const WindowDesc _select_game_desc = {
    90 static const WindowDesc _select_game_desc = {
    86 	WDP_CENTER, WDP_CENTER, 336, 197,
    91 	WDP_CENTER, WDP_CENTER, 336, 197,
    87 	WC_SELECT_GAME,0,
    92 	WC_SELECT_GAME,0,
   126 	_docommand_recursive = 0;
   131 	_docommand_recursive = 0;
   127 
   132 
   128 	_random_seeds[0][0] = p1;
   133 	_random_seeds[0][0] = p1;
   129 	_random_seeds[0][1] = p2;
   134 	_random_seeds[0][1] = p2;
   130 
   135 
   131 	if (_networking) { NetworkStartSync(true); }
   136 	SwitchMode(SM_NEWGAME);
   132 
       
   133 	MakeNewGame();
       
   134 	return 0;
   137 	return 0;
   135 }
   138 }
   136 
   139 
   137 int32 CmdLoadGame(int x, int y, uint32 flags, uint32 p1, uint32 p2)
   140 int32 CmdLoadGame(int x, int y, uint32 flags, uint32 p1, uint32 p2)
   138 {
   141 {
   167 	_docommand_recursive = 0;
   170 	_docommand_recursive = 0;
   168 
   171 
   169 	_random_seeds[0][0] = p1;
   172 	_random_seeds[0][0] = p1;
   170 	_random_seeds[0][1] = p2;
   173 	_random_seeds[0][1] = p2;
   171 
   174 
   172 	if (_networking) { NetworkStartSync(true); }
   175 	SwitchMode(SM_START_SCENARIO);
   173 
       
   174 	StartScenario();
       
   175 	return 0;
   176 	return 0;
   176 }
   177 }
   177 
   178 
   178 
   179 
   179 static const Widget _ask_abandon_game_widgets[] = {
   180 static const Widget _ask_abandon_game_widgets[] = {