intro_gui.c
changeset 1620 a8b502e4b25f
parent 1619 11108fa4b24d
child 1621 890ab08b9855
equal deleted inserted replaced
1619:11108fa4b24d 1620:a8b502e4b25f
    16 static void ShowSelectTutorialWindow()
    16 static void ShowSelectTutorialWindow()
    17 {
    17 {
    18 }
    18 }
    19 */
    19 */
    20 
    20 
    21 /* We go from TOP to the BOTTOM and from LEFT to the RIGHT (scenario
    21 /* We go from TOP to the BOTTOM and from LEFT to the RIGHT. I know this is
    22  * panels are an exception). I know this is a highly unusual concept, guys,
    22  * a highly unusual concept, guys, but I hope you'll manage to follow. --pasky */
    23  * but I hope you'll manage to follow. --pasky */
       
    24 static const Widget _select_game_widgets[] = {
    23 static const Widget _select_game_widgets[] = {
    25 {    WWT_CAPTION, RESIZE_NONE, 13,   0, 335,   0,  13, STR_0307_OPENTTD,       STR_NULL},
    24 {    WWT_CAPTION, RESIZE_NONE, 13,   0, 335,   0,  13, STR_0307_OPENTTD,       STR_NULL},
    26 {     WWT_IMGBTN, RESIZE_NONE, 13,   0, 335,  14, 196, 0x0,                    STR_NULL},
    25 {     WWT_IMGBTN, RESIZE_NONE, 13,   0, 335,  14, 196, 0x0,                    STR_NULL},
    27 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  22,  33, STR_0140_NEW_GAME,      STR_02FB_START_A_NEW_GAME},
    26 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  22,  33, STR_0140_NEW_GAME,      STR_02FB_START_A_NEW_GAME},
    28 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  22,  33, STR_0141_LOAD_GAME,     STR_02FC_LOAD_A_SAVED_GAME},
    27 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  22,  33, STR_0141_LOAD_GAME,     STR_02FC_LOAD_A_SAVED_GAME},
    29 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  40,  51, STR_0220_CREATE_SCENARIO,STR_02FE_CREATE_A_CUSTOMIZED_GAME},
    28 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  40,  51, STR_0220_CREATE_SCENARIO,STR_02FE_CREATE_A_CUSTOMIZED_GAME},
    30 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  40,  51, STR_029A_PLAY_SCENARIO, STR_0303_START_A_NEW_GAME_USING},
    29 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  40,  51, STR_029A_PLAY_SCENARIO, STR_0303_START_A_NEW_GAME_USING},
       
    30 {    WWT_PANEL_2, RESIZE_NONE, 12,  10,  85,  69, 122, 0x1312,                 STR_030E_SELECT_TEMPERATE_LANDSCAPE},
       
    31 {    WWT_PANEL_2, RESIZE_NONE, 12,  90, 165,  69, 122, 0x1314,                 STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
       
    32 {    WWT_PANEL_2, RESIZE_NONE, 12, 170, 245,  69, 122, 0x1316,                 STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
       
    33 {    WWT_PANEL_2, RESIZE_NONE, 12, 250, 325,  69, 122, 0x1318,                 STR_0311_SELECT_TOYLAND_LANDSCAPE},
    31 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 136, 147, STR_SINGLE_PLAYER,      STR_02FF_SELECT_SINGLE_PLAYER_GAME},
    34 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 136, 147, STR_SINGLE_PLAYER,      STR_02FF_SELECT_SINGLE_PLAYER_GAME},
    32 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 136, 147, STR_MULTIPLAYER,        STR_0300_SELECT_MULTIPLAYER_GAME},
    35 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 136, 147, STR_MULTIPLAYER,        STR_0300_SELECT_MULTIPLAYER_GAME},
    33 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 159, 170, STR_0148_GAME_OPTIONS,  STR_0301_DISPLAY_GAME_OPTIONS},
    36 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 159, 170, STR_0148_GAME_OPTIONS,  STR_0301_DISPLAY_GAME_OPTIONS},
    34 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 159, 170, STR_01FE_DIFFICULTY,    STR_0302_DISPLAY_DIFFICULTY_OPTIONS},
    37 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 159, 170, STR_01FE_DIFFICULTY,    STR_0302_DISPLAY_DIFFICULTY_OPTIONS},
    35 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 177, 188, STR_CONFIG_PATCHES,     STR_CONFIG_PATCHES_TIP},
    38 { WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 177, 188, STR_CONFIG_PATCHES,     STR_CONFIG_PATCHES_TIP},
    36 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 177, 188, STR_0304_QUIT,          STR_0305_QUIT_OPENTTD},
    39 { WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 177, 188, STR_0304_QUIT,          STR_0305_QUIT_OPENTTD},
    37 {    WWT_PANEL_2, RESIZE_NONE, 12,  10,  85,  69, 122, 0x1312,                 STR_030E_SELECT_TEMPERATE_LANDSCAPE},
       
    38 {    WWT_PANEL_2, RESIZE_NONE, 12,  90, 165,  69, 122, 0x1314,                 STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
       
    39 {    WWT_PANEL_2, RESIZE_NONE, 12, 170, 245,  69, 122, 0x1316,                 STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
       
    40 {    WWT_PANEL_2, RESIZE_NONE, 12, 250, 325,  69, 122, 0x1318,                 STR_0311_SELECT_TOYLAND_LANDSCAPE},
       
    41 {    WIDGETS_END },
    40 {    WIDGETS_END },
    42 };
    41 };
    43 
    42 
    44 extern void HandleOnEditText(WindowEvent *e);
    43 extern void HandleOnEditText(WindowEvent *e);
    45 extern void HandleOnEditTextCancel(void);
    44 extern void HandleOnEditTextCancel(void);
    46 
    45 
    47 static void SelectGameWndProc(Window *w, WindowEvent *e) {
    46 static void SelectGameWndProc(Window *w, WindowEvent *e) {
    48 	switch(e->event) {
    47 	switch(e->event) {
    49 	case WE_PAINT:
    48 	case WE_PAINT:
    50 		w->click_state = (w->click_state & ~(0xC0) & ~(0xF << 12)) | (1 << (_opt_newgame.landscape + 12)) | (1<<6);
    49 		w->click_state = (w->click_state & ~(1<<10) & ~(0xF << 6)) | (1 << (_opt_newgame.landscape + 6)) | (1<<10);
    51 		SetDParam(0, STR_6801_EASY + _opt_newgame.diff_level);
    50 		SetDParam(0, STR_6801_EASY + _opt_newgame.diff_level);
    52 		DrawWindowWidgets(w);
    51 		DrawWindowWidgets(w);
    53 		break;
    52 		break;
    54 
    53 
    55 	case WE_CLICK:
    54 	case WE_CLICK:
    56 		switch(e->click.widget) {
    55 		switch(e->click.widget) {
    57 		case 2: DoCommandP(0, 0, 0, NULL, CMD_START_NEW_GAME); break;
    56 		case 2: DoCommandP(0, 0, 0, NULL, CMD_START_NEW_GAME); break;
    58 		case 3: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
    57 		case 3: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
    59 		case 4: DoCommandP(0, InteractiveRandom(), 0, NULL, CMD_CREATE_SCENARIO); break;
    58 		case 4: DoCommandP(0, InteractiveRandom(), 0, NULL, CMD_CREATE_SCENARIO); break;
    60 		case 5: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break;
    59 		case 5: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break;
    61 		case 7:
    60 		case 6: case 7: case 8: case 9:
    62 		#ifdef ENABLE_NETWORK
    61 			DoCommandP(0, e->click.widget - 6, 0, NULL, CMD_SET_NEW_LANDSCAPE_TYPE);
       
    62 			break;
       
    63 		case 11:
       
    64 #ifdef ENABLE_NETWORK
    63 			if (!_network_available) {
    65 			if (!_network_available) {
    64 				ShowErrorMessage(-1, STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
    66 				ShowErrorMessage(-1, STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
    65 			} else
    67 			} else
    66 				ShowNetworkGameWindow();
    68 				ShowNetworkGameWindow();
    67 		#else
    69 #else
    68 			ShowErrorMessage(-1 ,STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
    70 			ShowErrorMessage(-1 ,STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
    69 		#endif /* ENABLE_NETWORK */
    71 #endif
    70 			break;
    72 			break;
    71 		case 8: ShowGameOptions(); break;
    73 		case 12: ShowGameOptions(); break;
    72 		case 9: ShowGameDifficulty(); break;
    74 		case 13: ShowGameDifficulty(); break;
    73 		case 10:ShowPatchesSelection(); break;
    75 		case 14: ShowPatchesSelection(); break;
    74 		case 11:AskExitGame(); break;
    76 		case 15: AskExitGame(); break;
    75 		case 12: case 13: case 14: case 15:
       
    76 			DoCommandP(0, e->click.widget - 12, 0, NULL, CMD_SET_NEW_LANDSCAPE_TYPE);
       
    77 			break;
       
    78 		}
    77 		}
    79 		break;
    78 		break;
    80 
    79 
    81 	case WE_ON_EDIT_TEXT: HandleOnEditText(e); break;
    80 	case WE_ON_EDIT_TEXT: HandleOnEditText(e); break;
    82 	case WE_ON_EDIT_TEXT_CANCEL: HandleOnEditTextCancel(); break;
    81 	case WE_ON_EDIT_TEXT_CANCEL: HandleOnEditTextCancel(); break;