annotate src/fios_gui.cpp @ 15400:821c26b30fd9 draft

(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
author alberth <alberth@openttd.org>
date Fri, 02 Jul 2010 13:53:05 +0000
parents 51659ba5ab27
children 011c8bee59d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
2
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
3 /*
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
4 * This file is part of OpenTTD.
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
8 */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
9
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
10 /** @file fios_gui.cpp GUIs for loading/saving games, scenarios, heightmaps, ... */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
11
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
12 #include "stdafx.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
13 #include "openttd.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
14 #include "saveload/saveload.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
15 #include "gui.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
16 #include "gfx_func.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
17 #include "command_func.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
18 #include "network/network.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
19 #include "network/network_content.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
20 #include "strings_func.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
21 #include "fileio_func.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
22 #include "fios.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
23 #include "window_func.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
24 #include "tilehighlight_func.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
25 #include "querystring_gui.h"
15298
1028938fd078 (svn r19937) -Codechange: Move some fios related prototypes to fios.h
frosch <frosch@openttd.org>
parents: 15282
diff changeset
26 #include "engine_func.h"
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
27 #include "landscape_type.h"
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
28 #include "date_func.h"
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
29
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
30 #include "table/sprites.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
31 #include "table/strings.h"
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
32
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
33 SaveLoadDialogMode _saveload_mode;
15334
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
34 LoadCheckData _load_check_data; ///< Data loaded from save during SL_LOAD_CHECK.
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
35
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
36 static bool _fios_path_changed;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
37 static bool _savegame_sort_dirty;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
38
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
39
15334
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
40 /**
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
41 * Reset read data.
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
42 */
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
43 void LoadCheckData::Clear()
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
44 {
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
45 this->checkable = false;
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
46 this->error = INVALID_STRING_ID;
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
47 free(this->error_data);
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
48 this->error_data = NULL;
15335
3d75c6abc840 (svn r19976) -Add: Read mapsize during SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15334
diff changeset
49
3d75c6abc840 (svn r19976) -Add: Read mapsize during SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15334
diff changeset
50 this->map_size_x = this->map_size_y = 256; // Default for old savegames which do not store mapsize.
15336
3e790f032a7c (svn r19977) -Add: Read current date during SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15335
diff changeset
51 this->current_date = 0;
15337
c37904846c25 (svn r19978) -Add: Read settings during SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15336
diff changeset
52 memset(&this->settings, 0, sizeof(this->settings));
15339
3a3570b1fd4c (svn r19980) -Add: Load some general data from savegames on SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15337
diff changeset
53
3a3570b1fd4c (svn r19980) -Add: Load some general data from savegames on SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15337
diff changeset
54 const CompanyPropertiesMap::iterator end = this->companies.End();
3a3570b1fd4c (svn r19980) -Add: Load some general data from savegames on SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15337
diff changeset
55 for (CompanyPropertiesMap::iterator it = this->companies.Begin(); it != end; it++) {
3a3570b1fd4c (svn r19980) -Add: Load some general data from savegames on SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15337
diff changeset
56 delete it->second;
3a3570b1fd4c (svn r19980) -Add: Load some general data from savegames on SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15337
diff changeset
57 }
3a3570b1fd4c (svn r19980) -Add: Load some general data from savegames on SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15337
diff changeset
58 companies.Clear();
15340
7113e55b1216 (svn r19981) -Add: Read NewGRF configuration during SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15339
diff changeset
59
7113e55b1216 (svn r19981) -Add: Read NewGRF configuration during SL_LOAD_CHECK.
frosch <frosch@openttd.org>
parents: 15339
diff changeset
60 ClearGRFConfigList(&this->grfconfig);
15334
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
61 }
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
62
09680603c66b (svn r19975) -Add: SL_LOAD_CHECK mode for partial reading of savegames.
frosch <frosch@openttd.org>
parents: 15325
diff changeset
63
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
64 enum SaveLoadWindowWidgets {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
65 SLWW_WINDOWTITLE,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
66 SLWW_SORT_BYNAME,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
67 SLWW_SORT_BYDATE,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
68 SLWW_BACKGROUND,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
69 SLWW_FILE_BACKGROUND,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
70 SLWW_HOME_BUTTON,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
71 SLWW_DRIVES_DIRECTORIES_LIST,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
72 SLWW_SCROLLBAR,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
73 SLWW_CONTENT_DOWNLOAD, ///< only available for play scenario/heightmap (content download)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
74 SLWW_SAVE_OSK_TITLE, ///< only available for save operations
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
75 SLWW_DELETE_SELECTION, ///< same in here
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
76 SLWW_SAVE_GAME, ///< not to mention in here too
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
77 SLWW_CONTENT_DOWNLOAD_SEL, ///< Selection 'stack' to 'hide' the content download
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
78 SLWW_DETAILS, ///< Panel with game details
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
79 SLWW_NEWGRF_INFO, ///< Button to open NewGgrf configuration
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
80 SLWW_LOAD_BUTTON, ///< Button to load game/scenario
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
81 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
82
15342
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
83 /** Load game/scenario with optional content download */
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
84 static const NWidgetPart _nested_load_dialog_widgets[] = {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
85 NWidget(NWID_HORIZONTAL),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
86 NWidget(WWT_CLOSEBOX, COLOUR_GREY),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
87 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
88 EndContainer(),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
89 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetFill(1, 0), SetResize(1, 0), EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
90 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
91 NWidget(NWID_VERTICAL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
92 NWidget(NWID_HORIZONTAL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
93 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
94 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
95 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetDataTip(STR_SORT_BY_CAPTION_DATE, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
96 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
97 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON),
15341
bbb2b959f4a1 (svn r19982) -Codechange: Shuffle some widget positions in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15340
diff changeset
98 EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
99 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
100 NWidget(NWID_HORIZONTAL),
15341
bbb2b959f4a1 (svn r19982) -Codechange: Shuffle some widget positions in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15340
diff changeset
101 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetFill(1, 1), SetPadding(2, 1, 2, 2),
bbb2b959f4a1 (svn r19982) -Codechange: Shuffle some widget positions in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15340
diff changeset
102 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(1, 10), EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
103 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
104 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
105 NWidget(NWID_SELECTION, INVALID_COLOUR, SLWW_CONTENT_DOWNLOAD_SEL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
106 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_CONTENT_DOWNLOAD), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
107 SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
108 EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
109 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
110 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
111 NWidget(WWT_PANEL, COLOUR_GREY),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
112 NWidget(WWT_EMPTY, INVALID_COLOUR, SLWW_DETAILS), SetResize(1, 1), SetFill(1, 1),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
113 NWidget(NWID_HORIZONTAL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
114 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
115 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_NEWGRF_INFO), SetDataTip(STR_INTRO_NEWGRF_SETTINGS, STR_NULL), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
116 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_LOAD_BUTTON), SetDataTip(STR_SAVELOAD_LOAD_BUTTON, STR_SAVELOAD_LOAD_TOOLTIP), SetFill(1, 0), SetResize(1, 0),
15341
bbb2b959f4a1 (svn r19982) -Codechange: Shuffle some widget positions in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15340
diff changeset
117 EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
118 NWidget(WWT_RESIZEBOX, COLOUR_GREY),
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
119 EndContainer(),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
120 EndContainer(),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
121 EndContainer(),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
122 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
123
15342
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
124 /** Load heightmap with content download */
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
125 static const NWidgetPart _nested_load_heightmap_dialog_widgets[] = {
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
126 NWidget(NWID_HORIZONTAL),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
127 NWidget(WWT_CLOSEBOX, COLOUR_GREY),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
128 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
129 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
130 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetFill(1, 0), SetResize(1, 0), EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
131 NWidget(NWID_VERTICAL),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
132 NWidget(NWID_HORIZONTAL),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
133 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
134 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
135 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetDataTip(STR_SORT_BY_CAPTION_DATE, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
136 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
137 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
138 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
139 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
140 NWidget(NWID_HORIZONTAL),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
141 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetFill(1, 1), SetPadding(2, 1, 2, 2),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
142 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(1, 10), EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
143 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
144 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
145 NWidget(NWID_HORIZONTAL),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
146 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_CONTENT_DOWNLOAD), SetResize(1, 0),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
147 SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
148 NWidget(WWT_RESIZEBOX, COLOUR_GREY),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
149 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
150 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
151 EndContainer(),
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
152 };
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
153
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
154 /** Save game/scenario */
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
155 static const NWidgetPart _nested_save_dialog_widgets[] = {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
156 NWidget(NWID_HORIZONTAL),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
157 NWidget(WWT_CLOSEBOX, COLOUR_GREY),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
158 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
159 EndContainer(),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
160 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetFill(1, 0), SetResize(1, 0), EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
161 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
162 NWidget(NWID_VERTICAL),
15341
bbb2b959f4a1 (svn r19982) -Codechange: Shuffle some widget positions in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15340
diff changeset
163 NWidget(NWID_HORIZONTAL),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
164 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
165 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
166 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetDataTip(STR_SORT_BY_CAPTION_DATE, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
167 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
168 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON),
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
169 EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
170 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
171 NWidget(NWID_HORIZONTAL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
172 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetPadding(2, 1, 0, 2),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
173 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(1, 10), EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
174 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
175 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
176 NWidget(WWT_EDITBOX, COLOUR_GREY, SLWW_SAVE_OSK_TITLE), SetPadding(3, 2, 2, 2), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
177 SetDataTip(STR_SAVELOAD_OSKTITLE, STR_SAVELOAD_EDITBOX_TOOLTIP),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
178 EndContainer(),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
179 NWidget(NWID_HORIZONTAL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
180 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_DELETE_SELECTION), SetDataTip(STR_SAVELOAD_DELETE_BUTTON, STR_SAVELOAD_DELETE_TOOLTIP), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
181 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SAVE_GAME), SetDataTip(STR_SAVELOAD_SAVE_BUTTON, STR_SAVELOAD_SAVE_TOOLTIP), SetFill(1, 0), SetResize(1, 0),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
182 EndContainer(),
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
183 EndContainer(),
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
184 NWidget(WWT_PANEL, COLOUR_GREY),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
185 NWidget(WWT_EMPTY, INVALID_COLOUR, SLWW_DETAILS), SetResize(1, 1), SetFill(1, 1),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
186 NWidget(NWID_HORIZONTAL),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
187 NWidget(NWID_SPACER), SetResize(1, 0), SetFill(1, 1),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
188 NWidget(WWT_RESIZEBOX, COLOUR_GREY),
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
189 EndContainer(),
15341
bbb2b959f4a1 (svn r19982) -Codechange: Shuffle some widget positions in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15340
diff changeset
190 EndContainer(),
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
191 EndContainer(),
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
192 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
193
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
194 /* Colours for fios types */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
195 const TextColour _fios_colours[] = {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
196 TC_LIGHT_BLUE, TC_DARK_GREEN, TC_DARK_GREEN, TC_ORANGE, TC_LIGHT_BROWN,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
197 TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
198 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
199
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
200 void BuildFileList()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
201 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
202 _fios_path_changed = true;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
203 FiosFreeSavegameList();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
204
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
205 switch (_saveload_mode) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
206 case SLD_NEW_GAME:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
207 case SLD_LOAD_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
208 case SLD_SAVE_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
209 FiosGetScenarioList(_saveload_mode); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
210 case SLD_LOAD_HEIGHTMAP:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
211 FiosGetHeightmapList(_saveload_mode); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
212
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
213 default: FiosGetSavegameList(_saveload_mode); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
214 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
215 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
216
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
217 static void MakeSortedSaveGameList()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
218 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
219 uint sort_start = 0;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
220 uint sort_end = 0;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
221
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
222 /* Directories are always above the files (FIOS_TYPE_DIR)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
223 * Drives (A:\ (windows only) are always under the files (FIOS_TYPE_DRIVE)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
224 * Only sort savegames/scenarios, not directories
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
225 */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
226 for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
227 switch (item->type) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
228 case FIOS_TYPE_DIR: sort_start++; break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
229 case FIOS_TYPE_PARENT: sort_start++; break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
230 case FIOS_TYPE_DRIVE: sort_end++; break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
231 default: break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
232 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
233 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
234
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
235 uint s_amount = _fios_items.Length() - sort_start - sort_end;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
236 QSortT(_fios_items.Get(sort_start), s_amount, CompareFiosItems);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
237 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
238
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
239 struct SaveLoadWindow : public QueryStringBaseWindow {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
240 private:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
241 FiosItem o_dir;
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
242 const FiosItem *selected;
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
243 public:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
244
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
245 void GenerateFileName()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
246 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
247 GenerateDefaultSaveName(this->edit_str_buf, &this->edit_str_buf[this->edit_str_size - 1]);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
248 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
249
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
250 SaveLoadWindow(const WindowDesc *desc, SaveLoadDialogMode mode) : QueryStringBaseWindow(64)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
251 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
252 static const StringID saveload_captions[] = {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
253 STR_SAVELOAD_LOAD_CAPTION,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
254 STR_SAVELOAD_LOAD_SCENARIO,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
255 STR_SAVELOAD_SAVE_CAPTION,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
256 STR_SAVELOAD_SAVE_SCENARIO,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
257 STR_SAVELOAD_LOAD_HEIGHTMAP,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
258 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
259 assert((uint)mode < lengthof(saveload_captions));
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
260
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
261 /* Use an array to define what will be the current file type being handled
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
262 * by current file mode */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
263 switch (mode) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
264 case SLD_SAVE_GAME: this->GenerateFileName(); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
265 case SLD_SAVE_SCENARIO: strecpy(this->edit_str_buf, "UNNAMED", &this->edit_str_buf[edit_str_size - 1]); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
266 default: break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
267 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
268
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
269 this->afilter = CS_ALPHANUMERAL;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
270 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 240);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
271
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
272 this->CreateNestedTree(desc);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
273 if (mode == SLD_LOAD_GAME) this->GetWidget<NWidgetStacked>(SLWW_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
274 this->GetWidget<NWidgetCore>(SLWW_WINDOWTITLE)->widget_data = saveload_captions[mode];
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
275
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
276 this->FinishInitNested(desc, 0);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
277
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
278 this->LowerWidget(SLWW_DRIVES_DIRECTORIES_LIST);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
279
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
280 /* pause is only used in single-player, non-editor mode, non-menu mode. It
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
281 * will be unpaused in the WE_DESTROY event handler. */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
282 if (_game_mode != GM_MENU && !_networking && _game_mode != GM_EDITOR) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
283 DoCommandP(0, PM_PAUSED_SAVELOAD, 1, CMD_PAUSE);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
284 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
285 SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, HT_NONE, WC_MAIN_WINDOW, 0);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
286
15325
84cad5d4ab8d (svn r19966) -Codechange: Use InvalidateData() in saveload GUI when appropiate.
frosch <frosch@openttd.org>
parents: 15298
diff changeset
287 this->OnInvalidateData(0);
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
288
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
289 ResetObjectToPlace();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
290
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
291 o_dir.type = FIOS_TYPE_DIRECT;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
292 switch (_saveload_mode) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
293 case SLD_SAVE_GAME:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
294 case SLD_LOAD_GAME:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
295 FioGetDirectory(o_dir.name, lengthof(o_dir.name), SAVE_DIR);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
296 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
297
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
298 case SLD_SAVE_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
299 case SLD_LOAD_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
300 FioGetDirectory(o_dir.name, lengthof(o_dir.name), SCENARIO_DIR);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
301 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
302
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
303 case SLD_LOAD_HEIGHTMAP:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
304 FioGetDirectory(o_dir.name, lengthof(o_dir.name), HEIGHTMAP_DIR);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
305 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
306
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
307 default:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
308 strecpy(o_dir.name, _personal_dir, lastof(o_dir.name));
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
309 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
310
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
311 /* Focus the edit box by default in the save windows */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
312 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
313 this->SetFocusedWidget(SLWW_SAVE_OSK_TITLE);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
314 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
315 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
316
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
317 virtual ~SaveLoadWindow()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
318 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
319 /* pause is only used in single-player, non-editor mode, non menu mode */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
320 if (!_networking && _game_mode != GM_EDITOR && _game_mode != GM_MENU) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
321 DoCommandP(0, PM_PAUSED_SAVELOAD, 0, CMD_PAUSE);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
322 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
323 FiosFreeSavegameList();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
324 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
325
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
326 virtual void DrawWidget(const Rect &r, int widget) const
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
327 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
328 switch (widget) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
329 case SLWW_SORT_BYNAME:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
330 case SLWW_SORT_BYDATE:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
331 if (((_savegame_sort_order & SORT_BY_NAME) != 0) == (widget == SLWW_SORT_BYNAME)) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
332 this->DrawSortButtonState(widget, _savegame_sort_order & SORT_DESCENDING ? SBS_DOWN : SBS_UP);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
333 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
334 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
335
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
336 case SLWW_BACKGROUND: {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
337 static const char *path = NULL;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
338 static StringID str = STR_ERROR_UNABLE_TO_READ_DRIVE;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
339 static uint64 tot = 0;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
340
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
341 if (_fios_path_changed) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
342 str = FiosGetDescText(&path, &tot);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
343 _fios_path_changed = false;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
344 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
345
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
346 if (str != STR_ERROR_UNABLE_TO_READ_DRIVE) SetDParam(0, tot);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
347 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP, str);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
348 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, path, TC_BLACK);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
349 } break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
350
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
351 case SLWW_DRIVES_DIRECTORIES_LIST: {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
352 GfxFillRect(r.left + 1, r.top + 1, r.right, r.bottom, 0xD7);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
353
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
354 uint y = r.top + WD_FRAMERECT_TOP;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
355 for (uint pos = this->vscroll.GetPosition(); pos < _fios_items.Length(); pos++) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
356 const FiosItem *item = _fios_items.Get(pos);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
357
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
358 if (item == this->selected) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
359 GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, 156);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
360 }
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
361 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[item->type]);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
362 y += this->resize.step_height;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
363 if (y >= this->vscroll.GetCapacity() * this->resize.step_height + r.top + WD_FRAMERECT_TOP) break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
364 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
365 } break;
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
366
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
367 case SLWW_DETAILS: {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
368 GfxFillRect(r.left + WD_FRAMERECT_LEFT, r.top + WD_FRAMERECT_TOP,
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
369 r.right - WD_FRAMERECT_RIGHT, r.top + FONT_HEIGHT_NORMAL * 2 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM, 0x0A);
15400
821c26b30fd9 (svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents: 15343
diff changeset
370 DrawString(r.left, r.right, r.top + FONT_HEIGHT_NORMAL / 2 + WD_FRAMERECT_TOP, STR_SAVELOAD_DETAIL_CAPTION, TC_FROMSTRING, SA_HOR_CENTER);
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
371
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
372 if (this->selected == NULL) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
373
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
374 uint y = r.top + FONT_HEIGHT_NORMAL * 2 + WD_PAR_VSEP_NORMAL + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
375 uint y_max = r.bottom - FONT_HEIGHT_NORMAL - WD_FRAMERECT_BOTTOM;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
376
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
377 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
378 if (!_load_check_data.checkable) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
379 /* Old savegame, no information available */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
380 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_SAVELOAD_DETAIL_NOT_AVAILABLE);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
381 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
382 } else if (_load_check_data.error != INVALID_STRING_ID) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
383 /* Incompatible / broken savegame */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
384 SetDParamStr(0, _load_check_data.error_data);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
385 y = DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT,
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
386 y, r.bottom - WD_FRAMERECT_BOTTOM, _load_check_data.error, TC_RED);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
387 } else {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
388 /* Mapsize */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
389 SetDParam(0, _load_check_data.map_size_x);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
390 SetDParam(1, _load_check_data.map_size_y);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
391 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_MAP_SIZE);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
392 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
393 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
394
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
395 /* Climate */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
396 byte landscape = _load_check_data.settings.game_creation.landscape;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
397 if (landscape < NUM_LANDSCAPE) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
398 SetDParam(0, STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE + landscape);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
399 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_LANDSCAPE);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
400 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
401 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
402
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
403 y += WD_PAR_VSEP_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
404 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
405
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
406 /* Start date (if available) */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
407 if (_load_check_data.settings.game_creation.starting_year != 0) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
408 SetDParam(0, ConvertYMDToDate(_load_check_data.settings.game_creation.starting_year, 0, 1));
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
409 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_START_DATE);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
410 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
411 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
412 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
413
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
414 /* Hide current date for scenarios */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
415 if (_saveload_mode != SLD_LOAD_SCENARIO && _saveload_mode != SLD_SAVE_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
416 /* Current date */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
417 SetDParam(0, _load_check_data.current_date);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
418 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_CURRENT_DATE);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
419 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
420 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
421
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
422 /* Hide the NewGRF stuff when saving. We also hide the button. */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
423 if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
424 y += WD_PAR_VSEP_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
425 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
426
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
427 /* NewGrf compatibility */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
428 SetDParam(0, _load_check_data.grfconfig == NULL ? STR_NEWGRF_LIST_NONE :
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
429 STR_NEWGRF_LIST_ALL_FOUND + _load_check_data.grf_compatibility);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
430 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_SAVELOAD_DETAIL_GRFSTATUS);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
431 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
432 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
433 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
434
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
435 /* Hide the company stuff for scenarios */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
436 if (_saveload_mode != SLD_LOAD_SCENARIO && _saveload_mode != SLD_SAVE_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
437 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
438 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
439
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
440 /* Companies / AIs */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
441 CompanyPropertiesMap::const_iterator end = _load_check_data.companies.End();
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
442 for (CompanyPropertiesMap::const_iterator it = _load_check_data.companies.Begin(); it != end; it++) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
443 SetDParam(0, it->first + 1);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
444 const CompanyProperties &c = *it->second;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
445 if (c.name != NULL) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
446 SetDParam(1, STR_JUST_RAW_STRING);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
447 SetDParamStr(2, c.name);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
448 } else {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
449 SetDParam(1, c.name_1);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
450 SetDParam(2, c.name_2);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
451 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
452 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_SAVELOAD_DETAIL_COMPANY_INDEX);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
453 y += FONT_HEIGHT_NORMAL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
454 if (y > y_max) break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
455 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
456 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
457 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
458 } break;
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
459 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
460 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
461
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
462 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
463 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
464 switch (widget) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
465 case SLWW_BACKGROUND:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
466 size->height = 2 * FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
467 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
468
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
469 case SLWW_DRIVES_DIRECTORIES_LIST:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
470 resize->height = FONT_HEIGHT_NORMAL;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
471 size->height = resize->height * 10 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
472 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
473 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
474 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
475
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
476 virtual void OnPaint()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
477 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
478 if (_savegame_sort_dirty) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
479 _savegame_sort_dirty = false;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
480 MakeSortedSaveGameList();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
481 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
482
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
483 this->vscroll.SetCount(_fios_items.Length());
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
484 this->DrawWidgets();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
485
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
486 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
487 this->DrawEditBox(SLWW_SAVE_OSK_TITLE);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
488 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
489 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
490
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
491 virtual void OnClick(Point pt, int widget, int click_count)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
492 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
493 switch (widget) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
494 case SLWW_SORT_BYNAME: // Sort save names by name
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
495 _savegame_sort_order = (_savegame_sort_order == SORT_BY_NAME) ?
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
496 SORT_BY_NAME | SORT_DESCENDING : SORT_BY_NAME;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
497 _savegame_sort_dirty = true;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
498 this->SetDirty();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
499 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
500
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
501 case SLWW_SORT_BYDATE: // Sort save names by date
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
502 _savegame_sort_order = (_savegame_sort_order == SORT_BY_DATE) ?
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
503 SORT_BY_DATE | SORT_DESCENDING : SORT_BY_DATE;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
504 _savegame_sort_dirty = true;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
505 this->SetDirty();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
506 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
507
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
508 case SLWW_HOME_BUTTON: // OpenTTD 'button', jumps to OpenTTD directory
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
509 FiosBrowseTo(&o_dir);
15325
84cad5d4ab8d (svn r19966) -Codechange: Use InvalidateData() in saveload GUI when appropiate.
frosch <frosch@openttd.org>
parents: 15298
diff changeset
510 this->InvalidateData();
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
511 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
512
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
513 case SLWW_LOAD_BUTTON:
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
514 if (this->selected != NULL && !_load_check_data.HasErrors()) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
515 _switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_SCENARIO : SM_LOAD;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
516
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
517 const char *name = FiosBrowseTo(this->selected);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
518 SetFiosType(this->selected->type);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
519
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
520 strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
521 strecpy(_file_to_saveload.title, this->selected->title, lastof(_file_to_saveload.title));
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
522
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
523 delete this;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
524 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
525 break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
526
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
527 case SLWW_NEWGRF_INFO:
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
528 if (_load_check_data.HasNewGrfs()) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
529 ShowNewGRFSettings(false, false, false, &_load_check_data.grfconfig);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
530 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
531 break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
532
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
533 case SLWW_DRIVES_DIRECTORIES_LIST: { // Click the listbox
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
534 int y = (pt.y - this->GetWidget<NWidgetBase>(SLWW_DRIVES_DIRECTORIES_LIST)->pos_y - WD_FRAMERECT_TOP) / this->resize.step_height;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
535
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
536 if (y < 0 || (y += this->vscroll.GetPosition()) >= this->vscroll.GetCount()) return;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
537
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
538 const FiosItem *file = _fios_items.Get(y);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
539
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
540 const char *name = FiosBrowseTo(file);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
541 if (name != NULL) {
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
542 if (click_count == 1) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
543 if (this->selected != file) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
544 this->selected = file;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
545 _load_check_data.Clear();
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
546
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
547 if (file->type == FIOS_TYPE_FILE || file->type == FIOS_TYPE_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
548 SaveOrLoad(name, SL_LOAD_CHECK, NO_DIRECTORY, false);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
549 }
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
550
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
551 this->InvalidateData(1);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
552 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
553 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
554 /* Copy clicked name to editbox */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
555 ttd_strlcpy(this->text.buf, file->title, this->text.maxsize);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
556 UpdateTextBufferSize(&this->text);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
557 this->SetWidgetDirty(SLWW_SAVE_OSK_TITLE);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
558 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
559 } else if (!_load_check_data.HasErrors()) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
560 this->selected = file;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
561 if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
562 this->OnClick(pt, SLWW_LOAD_BUTTON, 1);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
563 } else if (_saveload_mode == SLD_LOAD_HEIGHTMAP) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
564 SetFiosType(file->type);
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
565 strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
566 strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title));
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
567
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
568 delete this;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
569 ShowHeightmapLoad();
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
570 }
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
571 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
572 } else {
15325
84cad5d4ab8d (svn r19966) -Codechange: Use InvalidateData() in saveload GUI when appropiate.
frosch <frosch@openttd.org>
parents: 15298
diff changeset
573 /* Changed directory, need refresh. */
84cad5d4ab8d (svn r19966) -Codechange: Use InvalidateData() in saveload GUI when appropiate.
frosch <frosch@openttd.org>
parents: 15298
diff changeset
574 this->InvalidateData();
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
575 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
576 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
577 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
578
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
579 case SLWW_CONTENT_DOWNLOAD:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
580 if (!_network_available) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
581 ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, WL_ERROR);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
582 } else {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
583 #if defined(ENABLE_NETWORK)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
584 switch (_saveload_mode) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
585 default: NOT_REACHED();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
586 case SLD_LOAD_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
587 case SLD_LOAD_HEIGHTMAP: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_HEIGHTMAP); break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
588 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
589 #endif
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
590 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
591 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
592
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
593 case SLWW_DELETE_SELECTION: case SLWW_SAVE_GAME: // Delete, Save game
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
594 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
595 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
596 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
597
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
598 virtual void OnMouseLoop()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
599 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
600 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
601 this->HandleEditBox(SLWW_SAVE_OSK_TITLE);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
602 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
603 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
604
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
605 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
606 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
607 if (keycode == WKC_ESC) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
608 delete this;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
609 return ES_HANDLED;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
610 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
611
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
612 EventState state = ES_NOT_HANDLED;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
613 if ((_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) &&
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
614 this->HandleEditBoxKey(SLWW_SAVE_OSK_TITLE, key, keycode, state) == HEBR_CONFIRM) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
615 this->HandleButtonClick(SLWW_SAVE_GAME);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
616 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
617
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
618 return state;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
619 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
620
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
621 virtual void OnTimeout()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
622 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
623 /* This test protects against using widgets 11 and 12 which are only available
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
624 * in those two saveload mode */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
625 if (!(_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO)) return;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
626
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
627 if (this->IsWidgetLowered(SLWW_DELETE_SELECTION)) { // Delete button clicked
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
628 if (!FiosDelete(this->text.buf)) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
629 ShowErrorMessage(STR_ERROR_UNABLE_TO_DELETE_FILE, INVALID_STRING_ID, WL_ERROR);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
630 } else {
15325
84cad5d4ab8d (svn r19966) -Codechange: Use InvalidateData() in saveload GUI when appropiate.
frosch <frosch@openttd.org>
parents: 15298
diff changeset
631 this->InvalidateData();
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
632 /* Reset file name to current date on successful delete */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
633 if (_saveload_mode == SLD_SAVE_GAME) GenerateFileName();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
634 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
635
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
636 UpdateTextBufferSize(&this->text);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
637 } else if (this->IsWidgetLowered(SLWW_SAVE_GAME)) { // Save button clicked
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
638 _switch_mode = SM_SAVE;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
639 FiosMakeSavegameName(_file_to_saveload.name, this->text.buf, sizeof(_file_to_saveload.name));
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
640
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
641 /* In the editor set up the vehicle engines correctly (date might have changed) */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
642 if (_game_mode == GM_EDITOR) StartupEngines();
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
643 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
644 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
645
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
646 virtual void OnResize()
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
647 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
648 this->vscroll.SetCapacityFromWidget(this, SLWW_DRIVES_DIRECTORIES_LIST);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
649 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
650
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
651 virtual void OnInvalidateData(int data)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
652 {
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
653 switch (data) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
654 case 0:
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
655 /* Rescan files */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
656 this->selected = NULL;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
657 _load_check_data.Clear();
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
658 BuildFileList();
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
659 /* FALL THROUGH */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
660 case 1:
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
661 /* Selection changes */
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
662 if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
663 this->SetWidgetDisabledState(SLWW_LOAD_BUTTON,
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
664 this->selected == NULL || _load_check_data.HasErrors());
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
665 this->SetWidgetDisabledState(SLWW_NEWGRF_INFO,
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
666 !_load_check_data.HasNewGrfs());
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
667 }
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
668 break;
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
669 }
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
670 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
671 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
672
15342
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
673 /** Load game/scenario */
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
674 static const WindowDesc _load_dialog_desc(
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
675 WDP_CENTER, 500, 294,
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
676 WC_SAVELOAD, WC_NONE,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
677 WDF_UNCLICK_BUTTONS,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
678 _nested_load_dialog_widgets, lengthof(_nested_load_dialog_widgets)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
679 );
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
680
15342
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
681 /** Load heightmap */
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
682 static const WindowDesc _load_heightmap_dialog_desc(
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
683 WDP_CENTER, 257, 320,
15342
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
684 WC_SAVELOAD, WC_NONE,
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
685 WDF_UNCLICK_BUTTONS,
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
686 _nested_load_heightmap_dialog_widgets, lengthof(_nested_load_heightmap_dialog_widgets)
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
687 );
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
688
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
689 /** Save game/scenario */
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
690 static const WindowDesc _save_dialog_desc(
15343
51659ba5ab27 (svn r19984) -Feature: Show some savegame details when selecting items in saveload GUIs.
frosch <frosch@openttd.org>
parents: 15342
diff changeset
691 WDP_CENTER, 500, 294,
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
692 WC_SAVELOAD, WC_NONE,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
693 WDF_UNCLICK_BUTTONS,
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
694 _nested_save_dialog_widgets, lengthof(_nested_save_dialog_widgets)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
695 );
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
696
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
697 /** These values are used to convert the file/operations mode into a corresponding file type.
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
698 * So each entry, as expressed by the related comment, is based on the enum */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
699 static const FileType _file_modetotype[] = {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
700 FT_SAVEGAME, ///< used for SLD_LOAD_GAME
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
701 FT_SCENARIO, ///< used for SLD_LOAD_SCENARIO
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
702 FT_SAVEGAME, ///< used for SLD_SAVE_GAME
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
703 FT_SCENARIO, ///< used for SLD_SAVE_SCENARIO
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
704 FT_HEIGHTMAP, ///< used for SLD_LOAD_HEIGHTMAP
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
705 FT_SAVEGAME, ///< SLD_NEW_GAME
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
706 };
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
707
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
708 void ShowSaveLoadDialog(SaveLoadDialogMode mode)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
709 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
710 DeleteWindowById(WC_SAVELOAD, 0);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
711
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
712 const WindowDesc *sld;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
713 switch (mode) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
714 case SLD_SAVE_GAME:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
715 case SLD_SAVE_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
716 sld = &_save_dialog_desc; break;
15342
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
717 case SLD_LOAD_HEIGHTMAP:
f239c675c8dd (svn r19983) -Add: Separate nested widget array for load heightmap GUI.
frosch <frosch@openttd.org>
parents: 15341
diff changeset
718 sld = &_load_heightmap_dialog_desc; break;
15282
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
719 default:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
720 sld = &_load_dialog_desc; break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
721 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
722
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
723 _saveload_mode = mode;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
724 _file_to_saveload.filetype = _file_modetotype[mode];
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
725
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
726 new SaveLoadWindow(sld, mode);
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
727 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
728
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
729 void SetFiosType(const byte fiostype)
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
730 {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
731 switch (fiostype) {
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
732 case FIOS_TYPE_FILE:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
733 case FIOS_TYPE_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
734 _file_to_saveload.mode = SL_LOAD;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
735 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
736
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
737 case FIOS_TYPE_OLDFILE:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
738 case FIOS_TYPE_OLD_SCENARIO:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
739 _file_to_saveload.mode = SL_OLD_LOAD;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
740 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
741
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
742 #ifdef WITH_PNG
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
743 case FIOS_TYPE_PNG:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
744 _file_to_saveload.mode = SL_PNG;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
745 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
746 #endif /* WITH_PNG */
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
747
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
748 case FIOS_TYPE_BMP:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
749 _file_to_saveload.mode = SL_BMP;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
750 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
751
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
752 default:
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
753 _file_to_saveload.mode = SL_INVALID;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
754 break;
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
755 }
4e9378affc1f (svn r19917) -Codechange: Split save/load GUI to separate file.
frosch <frosch@openttd.org>
parents:
diff changeset
756 }