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; |