author | rubidium |
Wed, 19 Dec 2007 20:45:46 +0000 | |
changeset 8603 | 88c5ce6a5215 |
parent 8602 | 9e75e594a068 |
child 8604 | 8afdd9877afd |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6889
f7f6d9cb07a0
(svn r9523) -Cleanup: doxygen changes. Time to take care of "R"
belugas
parents:
6573
diff
changeset
|
3 |
/** @file road_gui.cpp */ |
f7f6d9cb07a0
(svn r9523) -Cleanup: doxygen changes. Time to take care of "R"
belugas
parents:
6573
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
92a3b0aa0946
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1363
diff
changeset
|
6 |
#include "openttd.h" |
1363
01d3de5d8039
(svn r1867) Include tables/sprites.h only in files which need it
tron
parents:
1217
diff
changeset
|
7 |
#include "table/sprites.h" |
507
8aa8100b0b22
(svn r815) Include strings.h only in the files which need it.
tron
parents:
337
diff
changeset
|
8 |
#include "table/strings.h" |
7762
03721db0ac1c
(svn r10587) -Codechange: move the string/dparam related stuff from variables.h to strings.h
rubidium
parents:
7737
diff
changeset
|
9 |
#include "strings.h" |
2163
637ec3c361f5
(svn r2673) Include functions.h directly, not globally via openttd.h
tron
parents:
2159
diff
changeset
|
10 |
#include "functions.h" |
679
e959706a3e4d
(svn r1117) Move map arrays and some related macros into their own files map.c and map.h
tron
parents:
661
diff
changeset
|
11 |
#include "map.h" |
1209
a1ac96655b79
(svn r1713) Split off several functions which query/set information about a single tile from map.h and put them into a seperate file tile.h
tron
parents:
1116
diff
changeset
|
12 |
#include "tile.h" |
0 | 13 |
#include "gui.h" |
8603
88c5ce6a5215
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8602
diff
changeset
|
14 |
#include "window_gui.h" |
88c5ce6a5215
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8602
diff
changeset
|
15 |
#include "station_gui.h" |
0 | 16 |
#include "viewport.h" |
17 |
#include "gfx.h" |
|
337
66647f97e7c0
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
193
diff
changeset
|
18 |
#include "sound.h" |
0 | 19 |
#include "command.h" |
2159
3b634157c3b2
(svn r2669) Shuffle some more stuff around to reduce dependencies
tron
parents:
2049
diff
changeset
|
20 |
#include "variables.h" |
7162
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
21 |
#include "road_cmd.h" |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
22 |
#include "road_map.h" |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
23 |
#include "station_map.h" |
568
6eb7d394fb35
(svn r979) Allow more realistically sized catchment areas
Celestar
parents:
543
diff
changeset
|
24 |
//needed for catchments |
6eb7d394fb35
(svn r979) Allow more realistically sized catchment areas
Celestar
parents:
543
diff
changeset
|
25 |
#include "station.h" |
6eb7d394fb35
(svn r979) Allow more realistically sized catchment areas
Celestar
parents:
543
diff
changeset
|
26 |
|
0 | 27 |
|
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
28 |
static void ShowRVStationPicker(RoadStop::Type rs); |
6573 | 29 |
static void ShowRoadDepotPicker(); |
0 | 30 |
|
31 |
static bool _remove_button_clicked; |
|
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
32 |
static bool _one_way_button_clicked; |
0 | 33 |
|
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
34 |
/** |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
35 |
* Define the values of the RoadFlags |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
36 |
* @see CmdBuildLongRoad |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
37 |
*/ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
38 |
enum RoadFlags { |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
39 |
RF_NONE = 0x00, |
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
40 |
RF_START_HALFROAD_Y = 0x01, // The start tile in Y-dir should have only a half road |
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
41 |
RF_END_HALFROAD_Y = 0x02, // The end tile in Y-dir should have only a half road |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
42 |
RF_DIR_Y = 0x04, // The direction is Y-dir |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
43 |
RF_DIR_X = RF_NONE, // Dummy; Dir X is set when RF_DIR_Y is not set |
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
44 |
RF_START_HALFROAD_X = 0x08, // The start tile in X-dir should have only a half road |
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
45 |
RF_END_HALFROAD_X = 0x10, // The end tile in X-dir should have only a half road |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
46 |
}; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
47 |
DECLARE_ENUM_AS_BIT_SET(RoadFlags); |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
48 |
|
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
49 |
static RoadFlags _place_road_flag; |
0 | 50 |
|
7162
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
51 |
static RoadType _cur_roadtype; |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
52 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
53 |
static DiagDirection _road_depot_orientation; |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
54 |
static DiagDirection _road_station_picker_orientation; |
0 | 55 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
56 |
void CcPlaySound1D(bool success, TileIndex tile, uint32 p1, uint32 p2) |
0 | 57 |
{ |
541 | 58 |
if (success) SndPlayTileFx(SND_1F_SPLAT, tile); |
0 | 59 |
} |
60 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
61 |
/** |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
62 |
* Set the initial flags for the road constuction. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
63 |
* The flags are: |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
64 |
* @li The direction is the X-dir |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
65 |
* @li The first tile has a partitial RoadBit (true or false) |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
66 |
* |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
67 |
* @param tile The start tile |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
68 |
*/ |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
69 |
static void PlaceRoad_X_Dir(TileIndex tile) |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
70 |
{ |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
71 |
_place_road_flag = RF_DIR_X; |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
72 |
if (_tile_fract_coords.x >= 8) _place_road_flag |= RF_START_HALFROAD_X; |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
73 |
VpStartPlaceSizing(tile, VPM_FIX_Y, DDSP_PLACE_ROAD_X_DIR); |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
74 |
} |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
75 |
|
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
76 |
/** |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
77 |
* Set the initial flags for the road constuction. |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
78 |
* The flags are: |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
79 |
* @li The direction is the Y-dir |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
80 |
* @li The first tile has a partitial RoadBit (true or false) |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
81 |
* |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
82 |
* @param tile The start tile |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
83 |
*/ |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
84 |
static void PlaceRoad_Y_Dir(TileIndex tile) |
0 | 85 |
{ |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
86 |
_place_road_flag = RF_DIR_Y; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
87 |
if (_tile_fract_coords.y >= 8) _place_road_flag |= RF_START_HALFROAD_Y; |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
88 |
VpStartPlaceSizing(tile, VPM_FIX_X, DDSP_PLACE_ROAD_Y_DIR); |
0 | 89 |
} |
90 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
91 |
/** |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
92 |
* Set the initial flags for the road constuction. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
93 |
* The flags are: |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
94 |
* @li The direction is not set. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
95 |
* @li The first tile has a partitial RoadBit (true or false) |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
96 |
* |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
97 |
* @param tile The start tile |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
98 |
*/ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
99 |
static void PlaceRoad_AutoRoad(TileIndex tile) |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
100 |
{ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
101 |
_place_road_flag = RF_NONE; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
102 |
if (_tile_fract_coords.x >= 8) _place_road_flag |= RF_START_HALFROAD_X; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
103 |
if (_tile_fract_coords.y >= 8) _place_road_flag |= RF_START_HALFROAD_Y; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
104 |
VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_PLACE_AUTOROAD); |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
105 |
} |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
106 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
107 |
static void PlaceRoad_Bridge(TileIndex tile) |
0 | 108 |
{ |
7166
3937d5ea59df
(svn r9901) -Codechange: Decide what to do with selected land areas based on the specific variable, not how it was highlighted.
maedhros
parents:
7165
diff
changeset
|
109 |
VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_BUILD_BRIDGE); |
0 | 110 |
} |
111 |
||
112 |
||
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
113 |
void CcBuildRoadTunnel(bool success, TileIndex tile, uint32 p1, uint32 p2) |
0 | 114 |
{ |
115 |
if (success) { |
|
541 | 116 |
SndPlayTileFx(SND_20_SPLAT_2, tile); |
0 | 117 |
ResetObjectToPlace(); |
118 |
} else { |
|
119 |
SetRedErrorSquare(_build_tunnel_endtile); |
|
120 |
} |
|
121 |
} |
|
122 |
||
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
123 |
/** Structure holding information per roadtype for several functions */ |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
124 |
struct RoadTypeInfo { |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
125 |
StringID err_build_road; ///< Building a normal piece of road |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
126 |
StringID err_remove_road; ///< Removing a normal piece of road |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
127 |
StringID err_depot; ///< Building a depot |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
128 |
StringID err_build_station[2]; ///< Building a bus or truck station |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
129 |
StringID err_remove_station[2]; ///< Removing of a bus or truck station |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
130 |
|
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
131 |
StringID picker_title[2]; ///< Title for the station picker for bus or truck stations |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
132 |
StringID picker_tooltip[2]; ///< Tooltip for the station picker for bus or truck stations |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
133 |
|
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
134 |
SpriteID cursor_nesw; ///< Cursor for building NE and SW bits |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
135 |
SpriteID cursor_nwse; ///< Cursor for building NW and SE bits |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
136 |
SpriteID cursor_autoroad; ///< Cursor for building autoroad |
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
137 |
}; |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
138 |
|
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
139 |
/** What errors/cursors must be shown for several types of roads */ |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
140 |
static const RoadTypeInfo _road_type_infos[] = { |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
141 |
{ |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
142 |
STR_1804_CAN_T_BUILD_ROAD_HERE, |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
143 |
STR_1805_CAN_T_REMOVE_ROAD_FROM, |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
144 |
STR_1807_CAN_T_BUILD_ROAD_VEHICLE, |
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
145 |
{ STR_1808_CAN_T_BUILD_BUS_STATION, STR_1809_CAN_T_BUILD_TRUCK_STATION }, |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
146 |
{ STR_CAN_T_REMOVE_BUS_STATION, STR_CAN_T_REMOVE_TRUCK_STATION }, |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
147 |
{ STR_3042_BUS_STATION_ORIENTATION, STR_3043_TRUCK_STATION_ORIENT }, |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
148 |
{ STR_3051_SELECT_BUS_STATION_ORIENTATION, STR_3052_SELECT_TRUCK_LOADING_BAY }, |
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
149 |
|
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
150 |
SPR_CURSOR_ROAD_NESW, |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
151 |
SPR_CURSOR_ROAD_NWSE, |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
152 |
SPR_CURSOR_AUTOROAD, |
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
153 |
}, |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
154 |
{ |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
155 |
STR_1804_CAN_T_BUILD_TRAMWAY_HERE, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
156 |
STR_1805_CAN_T_REMOVE_TRAMWAY_FROM, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
157 |
STR_1807_CAN_T_BUILD_TRAM_VEHICLE, |
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
158 |
{ STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION, STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION }, |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
159 |
{ STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION, STR_CAN_T_REMOVE_CARGO_TRAM_STATION }, |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
160 |
{ STR_3042_PASSENGER_TRAM_STATION_ORIENTATION, STR_3043_CARGO_TRAM_STATION_ORIENT }, |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
161 |
{ STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION, STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION }, |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
162 |
|
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
163 |
SPR_CURSOR_TRAMWAY_NESW, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
164 |
SPR_CURSOR_TRAMWAY_NWSE, |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
165 |
SPR_CURSOR_AUTOTRAM, |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
166 |
}, |
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
167 |
}; |
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
168 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
169 |
static void PlaceRoad_Tunnel(TileIndex tile) |
0 | 170 |
{ |
8017
8c46e61c510f
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7866
diff
changeset
|
171 |
DoCommandP(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, CcBuildRoadTunnel, CMD_BUILD_TUNNEL | CMD_MSG(STR_5016_CAN_T_BUILD_TUNNEL_HERE)); |
0 | 172 |
} |
173 |
||
3151 | 174 |
static void BuildRoadOutsideStation(TileIndex tile, DiagDirection direction) |
0 | 175 |
{ |
4559
c853d2440065
(svn r6406) -Codechange: Rename TileOffsByDir to TileOffsByDiagDir because it accepts
Darkvater
parents:
4435
diff
changeset
|
176 |
tile += TileOffsByDiagDir(direction); |
5
539c9743d999
(svn r6) -Fix [1006530] BuildRoadOutsideStation fix. Fix bug [994720] road depot - bus/lorry station (Truelight+Darkvater :P )
darkvater
parents:
0
diff
changeset
|
177 |
// if there is a roadpiece just outside of the station entrance, build a connecting route |
7866
e19fda04e8d3
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
7837
diff
changeset
|
178 |
if (IsTileType(tile, MP_ROAD) && GetRoadTileType(tile) == ROAD_TILE_NORMAL) { |
7162
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
179 |
if (GetRoadBits(tile, _cur_roadtype) != ROAD_NONE) { |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
180 |
DoCommandP(tile, _cur_roadtype << 4 | DiagDirToRoadBits(ReverseDiagDir(direction)), 0, NULL, CMD_BUILD_ROAD); |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
181 |
} |
0 | 182 |
} |
183 |
} |
|
184 |
||
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
185 |
void CcRoadDepot(bool success, TileIndex tile, uint32 p1, uint32 p2) |
0 | 186 |
{ |
187 |
if (success) { |
|
7158
ffb31324aa5e
(svn r9893) -Fix (r9892): various small bugs that only act up when using something different than plain roads.
rubidium
parents:
7157
diff
changeset
|
188 |
DiagDirection dir = (DiagDirection)GB(p1, 0, 2); |
541 | 189 |
SndPlayTileFx(SND_1F_SPLAT, tile); |
0 | 190 |
ResetObjectToPlace(); |
7158
ffb31324aa5e
(svn r9893) -Fix (r9892): various small bugs that only act up when using something different than plain roads.
rubidium
parents:
7157
diff
changeset
|
191 |
BuildRoadOutsideStation(tile, dir); |
6428
f018110cdd9a
(svn r8837) -Fix [FS#626]: drive through stations did not connect to neighbouring roads (mart3p).
rubidium
parents:
6365
diff
changeset
|
192 |
/* For a drive-through road stop build connecting road for other entrance */ |
8424
4a488a90ccab
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
8409
diff
changeset
|
193 |
if (HasBit(p2, 1)) BuildRoadOutsideStation(tile, ReverseDiagDir(dir)); |
0 | 194 |
} |
195 |
} |
|
196 |
||
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
197 |
static void PlaceRoad_Depot(TileIndex tile) |
0 | 198 |
{ |
8017
8c46e61c510f
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7866
diff
changeset
|
199 |
DoCommandP(tile, _cur_roadtype << 2 | _road_depot_orientation, 0, CcRoadDepot, CMD_BUILD_ROAD_DEPOT | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_depot)); |
0 | 200 |
} |
201 |
||
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
202 |
static void PlaceRoadStop(TileIndex tile, uint32 p2, uint32 cmd) |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
203 |
{ |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
204 |
uint32 p1 = _road_station_picker_orientation; |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
205 |
|
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
206 |
if (p1 >= DIAGDIR_END) { |
8427
143b0be22af1
(svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13
parents:
8424
diff
changeset
|
207 |
SetBit(p2, 1); // It's a drive-through stop |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
208 |
p1 -= DIAGDIR_END; // Adjust picker result to actual direction |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
209 |
} |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
210 |
DoCommandP(tile, p1, p2, CcRoadDepot, cmd); |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
211 |
} |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
212 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
213 |
static void PlaceRoad_BusStation(TileIndex tile) |
0 | 214 |
{ |
8452
93186e0f15cb
(svn r11512) -Change: make the subsidy window able to resize to something smaller than 640x127 (especially the 640 part) when the screen is really too small.
rubidium
parents:
8445
diff
changeset
|
215 |
if (_remove_button_clicked) { |
7172
40781792e25f
(svn r9907) -Codechange: prepare the road gui for more road types.
rubidium
parents:
7170
diff
changeset
|
216 |
DoCommandP(tile, 0, RoadStop::BUS, CcPlaySound1D, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[RoadStop::BUS])); |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
217 |
} else { |
8017
8c46e61c510f
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7866
diff
changeset
|
218 |
PlaceRoadStop(tile, (_ctrl_pressed << 5) | RoadTypeToRoadTypes(_cur_roadtype) << 2 | RoadStop::BUS, CMD_BUILD_ROAD_STOP | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_station[RoadStop::BUS])); |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
219 |
} |
0 | 220 |
} |
221 |
||
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
222 |
static void PlaceRoad_TruckStation(TileIndex tile) |
0 | 223 |
{ |
8452
93186e0f15cb
(svn r11512) -Change: make the subsidy window able to resize to something smaller than 640x127 (especially the 640 part) when the screen is really too small.
rubidium
parents:
8445
diff
changeset
|
224 |
if (_remove_button_clicked) { |
7835
1178f1162f77
(svn r10702) -Fix: "Can't build ..." instead of "Can't remove ..." message shown for road stops for trucks/cargo trams.
rubidium
parents:
7768
diff
changeset
|
225 |
DoCommandP(tile, 0, RoadStop::TRUCK, CcPlaySound1D, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[RoadStop::TRUCK])); |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
226 |
} else { |
8017
8c46e61c510f
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7866
diff
changeset
|
227 |
PlaceRoadStop(tile, (_ctrl_pressed << 5) | RoadTypeToRoadTypes(_cur_roadtype) << 2 | RoadStop::TRUCK, CMD_BUILD_ROAD_STOP | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_station[RoadStop::TRUCK])); |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
228 |
} |
0 | 229 |
} |
230 |
||
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
231 |
static void PlaceRoad_DemolishArea(TileIndex tile) |
0 | 232 |
{ |
7166
3937d5ea59df
(svn r9901) -Codechange: Decide what to do with selected land areas based on the specific variable, not how it was highlighted.
maedhros
parents:
7165
diff
changeset
|
233 |
VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_DEMOLISH_AREA); |
0 | 234 |
} |
235 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
236 |
/** Enum referring to the widgets of the build road toolbar */ |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
237 |
enum RoadToolbarWidgets { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
238 |
RTW_CLOSEBOX = 0, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
239 |
RTW_CAPTION, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
240 |
RTW_STICKY, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
241 |
RTW_ROAD_X, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
242 |
RTW_ROAD_Y, |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
243 |
RTW_AUTOROAD, |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
244 |
RTW_DEMOLISH, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
245 |
RTW_DEPOT, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
246 |
RTW_BUS_STATION, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
247 |
RTW_TRUCK_STATION, |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
248 |
RTW_ONE_WAY, |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
249 |
RTW_BUILD_BRIDGE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
250 |
RTW_BUILD_TUNNEL, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
251 |
RTW_REMOVE, |
5147
db717cde801d
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5105
diff
changeset
|
252 |
}; |
db717cde801d
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5105
diff
changeset
|
253 |
|
0 | 254 |
typedef void OnButtonClick(Window *w); |
255 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
256 |
/** |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
257 |
* Function that handles the click on the |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
258 |
* X road placement button. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
259 |
* |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
260 |
* @param w The current window |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
261 |
*/ |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
262 |
static void BuildRoadClick_X_Dir(Window *w) |
0 | 263 |
{ |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
264 |
HandlePlacePushButton(w, RTW_ROAD_X, _road_type_infos[_cur_roadtype].cursor_nwse, VHM_RECT, PlaceRoad_X_Dir); |
0 | 265 |
} |
266 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
267 |
/** |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
268 |
* Function that handles the click on the |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
269 |
* Y road placement button. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
270 |
* |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
271 |
* @param w The current window |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
272 |
*/ |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
273 |
static void BuildRoadClick_Y_Dir(Window *w) |
0 | 274 |
{ |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
275 |
HandlePlacePushButton(w, RTW_ROAD_Y, _road_type_infos[_cur_roadtype].cursor_nesw, VHM_RECT, PlaceRoad_Y_Dir); |
0 | 276 |
} |
277 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
278 |
/** |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
279 |
* Function that handles the click on the |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
280 |
* autoroad placement button. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
281 |
* |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
282 |
* @param w The current window |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
283 |
*/ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
284 |
static void BuildRoadClick_AutoRoad(Window *w) |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
285 |
{ |
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
286 |
HandlePlacePushButton(w, RTW_AUTOROAD, _road_type_infos[_cur_roadtype].cursor_autoroad, VHM_RECT, PlaceRoad_AutoRoad); |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
287 |
} |
0 | 288 |
|
289 |
static void BuildRoadClick_Demolish(Window *w) |
|
290 |
{ |
|
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
291 |
HandlePlacePushButton(w, RTW_DEMOLISH, ANIMCURSOR_DEMOLISH, VHM_RECT, PlaceRoad_DemolishArea); |
0 | 292 |
} |
293 |
||
294 |
static void BuildRoadClick_Depot(Window *w) |
|
295 |
{ |
|
7582
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7275
diff
changeset
|
296 |
if (_game_mode == GM_EDITOR || !CanBuildVehicleInfrastructure(VEH_ROAD)) return; |
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
297 |
if (HandlePlacePushButton(w, RTW_DEPOT, SPR_CURSOR_ROAD_DEPOT, VHM_RECT, PlaceRoad_Depot)) ShowRoadDepotPicker(); |
0 | 298 |
} |
299 |
||
300 |
static void BuildRoadClick_BusStation(Window *w) |
|
301 |
{ |
|
7582
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7275
diff
changeset
|
302 |
if (_game_mode == GM_EDITOR || !CanBuildVehicleInfrastructure(VEH_ROAD)) return; |
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
303 |
if (HandlePlacePushButton(w, RTW_BUS_STATION, SPR_CURSOR_BUS_STATION, VHM_RECT, PlaceRoad_BusStation)) ShowRVStationPicker(RoadStop::BUS); |
0 | 304 |
} |
305 |
||
306 |
static void BuildRoadClick_TruckStation(Window *w) |
|
307 |
{ |
|
7582
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7275
diff
changeset
|
308 |
if (_game_mode == GM_EDITOR || !CanBuildVehicleInfrastructure(VEH_ROAD)) return; |
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
309 |
if (HandlePlacePushButton(w, RTW_TRUCK_STATION, SPR_CURSOR_TRUCK_STATION, VHM_RECT, PlaceRoad_TruckStation)) ShowRVStationPicker(RoadStop::TRUCK); |
0 | 310 |
} |
311 |
||
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
312 |
/** |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
313 |
* Function that handles the click on the |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
314 |
* one way road button. |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
315 |
* |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
316 |
* @param w The current window |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
317 |
*/ |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
318 |
static void BuildRoadClick_OneWay(Window *w) |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
319 |
{ |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
320 |
if (w->IsWidgetDisabled(RTW_ONE_WAY)) return; |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
321 |
SetWindowDirty(w); |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
322 |
w->ToggleWidgetLoweredState(RTW_ONE_WAY); |
8403
6686d3705b2c
(svn r11459) -Fix: (r11457) The selection highlight color hasn't been reset
skidd13
parents:
8402
diff
changeset
|
323 |
SetSelectionRed(false); |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
324 |
} |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
325 |
|
0 | 326 |
static void BuildRoadClick_Bridge(Window *w) |
327 |
{ |
|
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
328 |
HandlePlacePushButton(w, RTW_BUILD_BRIDGE, SPR_CURSOR_BRIDGE, VHM_RECT, PlaceRoad_Bridge); |
0 | 329 |
} |
330 |
||
331 |
static void BuildRoadClick_Tunnel(Window *w) |
|
332 |
{ |
|
8290
2d3d2f515439
(svn r11344) -Codechange: Removes some magic numbers referring the highlighting mode in road_gui.cpp
belugas
parents:
8285
diff
changeset
|
333 |
HandlePlacePushButton(w, RTW_BUILD_TUNNEL, SPR_CURSOR_ROAD_TUNNEL, VHM_SPECIAL, PlaceRoad_Tunnel); |
0 | 334 |
} |
335 |
||
336 |
static void BuildRoadClick_Remove(Window *w) |
|
337 |
{ |
|
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
338 |
if (w->IsWidgetDisabled(RTW_REMOVE)) return; |
0 | 339 |
SetWindowDirty(w); |
541 | 340 |
SndPlayFx(SND_15_BEEP); |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
341 |
w->ToggleWidgetLoweredState(RTW_REMOVE); |
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
342 |
SetSelectionRed(w->IsWidgetLowered(RTW_REMOVE)); |
0 | 343 |
} |
344 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
345 |
/** Array with the handlers of the button-clicks for the road-toolbar */ |
2639 | 346 |
static OnButtonClick* const _build_road_button_proc[] = { |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
347 |
BuildRoadClick_X_Dir, |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
348 |
BuildRoadClick_Y_Dir, |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
349 |
BuildRoadClick_AutoRoad, |
0 | 350 |
BuildRoadClick_Demolish, |
351 |
BuildRoadClick_Depot, |
|
352 |
BuildRoadClick_BusStation, |
|
353 |
BuildRoadClick_TruckStation, |
|
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
354 |
BuildRoadClick_OneWay, |
0 | 355 |
BuildRoadClick_Bridge, |
356 |
BuildRoadClick_Tunnel, |
|
5933
0835f3342b79
(svn r8143) Remove the landscaping button from the build toolbars.
tron
parents:
5838
diff
changeset
|
357 |
BuildRoadClick_Remove |
0 | 358 |
}; |
359 |
||
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
360 |
/** Array with the keycode of the button-clicks for the road-toolbar */ |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
361 |
static const uint16 _road_keycodes[] = { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
362 |
'1', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
363 |
'2', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
364 |
'3', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
365 |
'4', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
366 |
'5', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
367 |
'6', |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
368 |
'7', |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
369 |
'8', |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
370 |
'B', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
371 |
'T', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
372 |
'R', |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
373 |
}; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
374 |
|
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
375 |
/** |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
376 |
* Update the remove button lowered state of the road toolbar |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
377 |
* |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
378 |
* @param w The toolbar window |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
379 |
* @param clicked_widget The widget which the player clicked just now |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
380 |
*/ |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
381 |
static void UpdateOptionWidgetStatus(Window *w, int clicked_widget) |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
382 |
{ |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
383 |
/* The remove and the one way button state is driven |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
384 |
* by the other buttons so they don't act on themselfs. |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
385 |
* Both are only valid if they are able to apply as options. */ |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
386 |
switch (clicked_widget) { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
387 |
case RTW_REMOVE: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
388 |
w->RaiseWidget(RTW_ONE_WAY); |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
389 |
break; |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
390 |
case RTW_ONE_WAY: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
391 |
w->RaiseWidget(RTW_REMOVE); |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
392 |
break; |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
393 |
case RTW_BUS_STATION: |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
394 |
case RTW_TRUCK_STATION: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
395 |
w->DisableWidget(RTW_ONE_WAY); |
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
396 |
w->SetWidgetDisabledState(RTW_REMOVE, !w->IsWidgetLowered(clicked_widget)); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
397 |
break; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
398 |
case RTW_ROAD_X: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
399 |
case RTW_ROAD_Y: |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
400 |
case RTW_AUTOROAD: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
401 |
w->SetWidgetsDisabledState(!w->IsWidgetLowered(clicked_widget), |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
402 |
RTW_REMOVE, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
403 |
RTW_ONE_WAY, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
404 |
WIDGET_LIST_END); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
405 |
break; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
406 |
default: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
407 |
/* When any other buttons than road/station, raise and |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
408 |
* disable the removal button */ |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
409 |
w->SetWidgetsDisabledState(true, |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
410 |
RTW_REMOVE, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
411 |
RTW_ONE_WAY, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
412 |
WIDGET_LIST_END); |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
413 |
w->SetWidgetsLoweredState (false, |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
414 |
RTW_REMOVE, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
415 |
RTW_ONE_WAY, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
416 |
WIDGET_LIST_END); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
417 |
break; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
418 |
} |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
419 |
} |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
420 |
|
4171 | 421 |
static void BuildRoadToolbWndProc(Window *w, WindowEvent *e) |
2639 | 422 |
{ |
423 |
switch (e->event) { |
|
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
424 |
case WE_CREATE: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
425 |
w->SetWidgetsDisabledState(true, |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
426 |
RTW_REMOVE, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
427 |
RTW_ONE_WAY, |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
428 |
WIDGET_LIST_END); |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
429 |
break; |
5105
4332193c0aec
(svn r7176) -Fix: remove button was not always disabled when it should have been (rail/road build toolbar)
glx
parents:
5072
diff
changeset
|
430 |
|
0 | 431 |
case WE_PAINT: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
432 |
w->SetWidgetsDisabledState(!CanBuildVehicleInfrastructure(VEH_ROAD), |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
433 |
RTW_DEPOT, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
434 |
RTW_BUS_STATION, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
435 |
RTW_TRUCK_STATION, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
436 |
WIDGET_LIST_END); |
0 | 437 |
DrawWindowWidgets(w); |
438 |
break; |
|
439 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
440 |
case WE_CLICK: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
441 |
if (e->we.click.widget >= RTW_ROAD_X) { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
442 |
_remove_button_clicked = false; |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
443 |
_one_way_button_clicked = false; |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
444 |
_build_road_button_proc[e->we.click.widget - RTW_ROAD_X](w); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
445 |
} |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
446 |
UpdateOptionWidgetStatus(w, e->we.click.widget); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
447 |
break; |
0 | 448 |
|
449 |
case WE_KEYPRESS: |
|
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
450 |
for (uint8 i = 0; i != lengthof(_road_keycodes); i++) { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
451 |
if (e->we.keypress.keycode == _road_keycodes[i]) { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
452 |
e->we.keypress.cont = false; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
453 |
_remove_button_clicked = false; |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
454 |
_one_way_button_clicked = false; |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
455 |
_build_road_button_proc[i](w); |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
456 |
UpdateOptionWidgetStatus(w, i + RTW_ROAD_X); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
457 |
break; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
458 |
} |
0 | 459 |
} |
756
d1f1dc31b6f4
(svn r1212) -Feature: sticky windows all build-toolbars
darkvater
parents:
679
diff
changeset
|
460 |
MarkTileDirty(_thd.pos.x, _thd.pos.y); // redraw tile selection |
0 | 461 |
break; |
462 |
||
463 |
case WE_PLACE_OBJ: |
|
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
464 |
_remove_button_clicked = w->IsWidgetLowered(RTW_REMOVE); |
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
465 |
_one_way_button_clicked = w->IsWidgetLowered(RTW_ONE_WAY); |
4634
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
466 |
_place_proc(e->we.place.tile); |
0 | 467 |
break; |
468 |
||
469 |
case WE_ABORT_PLACE_OBJ: |
|
8523
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
470 |
w->RaiseButtons(); |
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
471 |
w->SetWidgetsDisabledState(true, |
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
472 |
RTW_REMOVE, |
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
473 |
RTW_ONE_WAY, |
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
474 |
WIDGET_LIST_END); |
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
475 |
w->InvalidateWidget(RTW_REMOVE); |
b20d30c6ae9f
(svn r11587) -Fix (r11457): The one way road button wasn't reset on abort
skidd13
parents:
8493
diff
changeset
|
476 |
w->InvalidateWidget(RTW_ONE_WAY); |
0 | 477 |
|
478 |
w = FindWindowById(WC_BUS_STATION, 0); |
|
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
479 |
if (w != NULL) WP(w, def_d).close = true; |
0 | 480 |
w = FindWindowById(WC_TRUCK_STATION, 0); |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
481 |
if (w != NULL) WP(w, def_d).close = true; |
0 | 482 |
w = FindWindowById(WC_BUILD_DEPOT, 0); |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
483 |
if (w != NULL) WP(w, def_d).close = true; |
0 | 484 |
break; |
485 |
||
7165
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
486 |
case WE_PLACE_DRAG: |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
487 |
/* Here we update the end tile flags |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
488 |
* of the road placement actions. |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
489 |
* At first we reset the end halfroad |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
490 |
* bits and if needed we set them again. */ |
7166
3937d5ea59df
(svn r9901) -Codechange: Decide what to do with selected land areas based on the specific variable, not how it was highlighted.
maedhros
parents:
7165
diff
changeset
|
491 |
switch (e->we.place.select_proc) { |
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
492 |
case DDSP_PLACE_ROAD_X_DIR: |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
493 |
_place_road_flag &= ~RF_END_HALFROAD_X; |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
494 |
if (e->we.place.pt.x & 8) _place_road_flag |= RF_END_HALFROAD_X; |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
495 |
break; |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
496 |
|
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
497 |
case DDSP_PLACE_ROAD_Y_DIR: |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
498 |
_place_road_flag &= ~RF_END_HALFROAD_Y; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
499 |
if (e->we.place.pt.y & 8) _place_road_flag |= RF_END_HALFROAD_Y; |
4435
cde1d8fc5c8f
(svn r6205) -CodeChange : use a switch case instead of a cascade of if
belugas
parents:
4434
diff
changeset
|
500 |
break; |
cde1d8fc5c8f
(svn r6205) -CodeChange : use a switch case instead of a cascade of if
belugas
parents:
4434
diff
changeset
|
501 |
|
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
502 |
case DDSP_PLACE_AUTOROAD: |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
503 |
_place_road_flag &= ~(RF_END_HALFROAD_Y | RF_END_HALFROAD_X); |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
504 |
if (e->we.place.pt.y & 8) _place_road_flag |= RF_END_HALFROAD_Y; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
505 |
if (e->we.place.pt.x & 8) _place_road_flag |= RF_END_HALFROAD_X; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
506 |
|
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
507 |
/* For autoroad we need to update the |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
508 |
* direction of the road */ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
509 |
if (_thd.size.x > _thd.size.y || (_thd.size.x == _thd.size.y && |
8409
5c92516290c9
(svn r11466) -Fix (r11339): operator priority problem resulting in problematic autoroad placement in some cases
smatz
parents:
8403
diff
changeset
|
510 |
( (_tile_fract_coords.x < _tile_fract_coords.y && (_tile_fract_coords.x + _tile_fract_coords.y) < 16) || |
5c92516290c9
(svn r11466) -Fix (r11339): operator priority problem resulting in problematic autoroad placement in some cases
smatz
parents:
8403
diff
changeset
|
511 |
(_tile_fract_coords.x > _tile_fract_coords.y && (_tile_fract_coords.x + _tile_fract_coords.y) > 16) ))) { |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
512 |
/* Set dir = X */ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
513 |
_place_road_flag &= ~RF_DIR_Y; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
514 |
} else { |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
515 |
/* Set dir = Y */ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
516 |
_place_road_flag |= RF_DIR_Y; |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
517 |
} |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
518 |
|
4435
cde1d8fc5c8f
(svn r6205) -CodeChange : use a switch case instead of a cascade of if
belugas
parents:
4434
diff
changeset
|
519 |
break; |
0 | 520 |
} |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
521 |
|
7165
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
522 |
VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.select_method); |
0 | 523 |
return; |
524 |
||
525 |
case WE_PLACE_MOUSEUP: |
|
4634
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
526 |
if (e->we.place.pt.x != -1) { |
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
527 |
TileIndex start_tile = e->we.place.starttile; |
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
528 |
TileIndex end_tile = e->we.place.tile; |
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
529 |
|
7166
3937d5ea59df
(svn r9901) -Codechange: Decide what to do with selected land areas based on the specific variable, not how it was highlighted.
maedhros
parents:
7165
diff
changeset
|
530 |
switch (e->we.place.select_proc) { |
3937d5ea59df
(svn r9901) -Codechange: Decide what to do with selected land areas based on the specific variable, not how it was highlighted.
maedhros
parents:
7165
diff
changeset
|
531 |
case DDSP_BUILD_BRIDGE: |
7165
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
532 |
ResetObjectToPlace(); |
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
533 |
ShowBuildBridgeWindow(start_tile, end_tile, 0x80 | RoadTypeToRoadTypes(_cur_roadtype)); |
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
534 |
break; |
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
535 |
|
7166
3937d5ea59df
(svn r9901) -Codechange: Decide what to do with selected land areas based on the specific variable, not how it was highlighted.
maedhros
parents:
7165
diff
changeset
|
536 |
case DDSP_DEMOLISH_AREA: |
7165
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
537 |
DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA)); |
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
538 |
break; |
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
539 |
|
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
540 |
case DDSP_PLACE_ROAD_X_DIR: |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
541 |
case DDSP_PLACE_ROAD_Y_DIR: |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
542 |
case DDSP_PLACE_AUTOROAD: |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
543 |
/* Flag description: |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
544 |
* Use the first three bits (0x07) if dir == Y |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
545 |
* else use the last 2 bits (X dir has |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
546 |
* not the 3rd bit set) */ |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
547 |
_place_road_flag = (RoadFlags)((_place_road_flag & RF_DIR_Y) ? (_place_road_flag & 0x07) : (_place_road_flag >> 3)); |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
548 |
|
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
549 |
DoCommandP(end_tile, start_tile, _place_road_flag | (_cur_roadtype << 3) | (_one_way_button_clicked << 5), CcPlaySound1D, |
8400
89e1ee0c796c
(svn r11455) -Codechange: make autoroad, 'normal' road building and 'normal' rail building all react the same on CTRL as autorail.
rubidium
parents:
8391
diff
changeset
|
550 |
(_ctrl_pressed || _remove_button_clicked) ? |
8017
8c46e61c510f
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7866
diff
changeset
|
551 |
CMD_REMOVE_LONG_ROAD | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_road) : |
8c46e61c510f
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7866
diff
changeset
|
552 |
CMD_BUILD_LONG_ROAD | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_road)); |
7165
37eb253f3c06
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
7162
diff
changeset
|
553 |
break; |
0 | 554 |
} |
555 |
} |
|
556 |
break; |
|
557 |
||
558 |
case WE_PLACE_PRESIZE: { |
|
4634
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
559 |
TileIndex tile = e->we.place.tile; |
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
560 |
|
7174
96c2db032ade
(svn r9909) -Fix (r9897): Highlight road tunnels properly when building them.
maedhros
parents:
7173
diff
changeset
|
561 |
DoCommand(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, DC_AUTO, CMD_BUILD_TUNNEL); |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3793
diff
changeset
|
562 |
VpSetPresizeRange(tile, _build_tunnel_endtile == 0 ? tile : _build_tunnel_endtile); |
0 | 563 |
break; |
564 |
} |
|
2619
c2f488e400b1
(svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars.
peter1138
parents:
2186
diff
changeset
|
565 |
|
c2f488e400b1
(svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars.
peter1138
parents:
2186
diff
changeset
|
566 |
case WE_DESTROY: |
c2f488e400b1
(svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars.
peter1138
parents:
2186
diff
changeset
|
567 |
if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0); |
c2f488e400b1
(svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars.
peter1138
parents:
2186
diff
changeset
|
568 |
break; |
0 | 569 |
} |
570 |
} |
|
571 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
572 |
/** Widget definition of the build road toolbar */ |
0 | 573 |
static const Widget _build_road_widgets[] = { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
574 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // RTW_CLOSEBOX |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
575 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 250, 0, 13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // RTW_CAPTION |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
576 |
{ WWT_STICKYBOX, RESIZE_NONE, 7, 251, 262, 0, 13, 0x0, STR_STICKY_BUTTON}, // RTW_STICKY |
606
0e507bb0f63a
(svn r1030) Some toolbar icons are arranged differently:
dominik
parents:
568
diff
changeset
|
577 |
|
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
578 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_ROAD_X_DIR, STR_180B_BUILD_ROAD_SECTION}, // RTW_ROAD_X |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
579 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_ROAD_Y_DIR, STR_180B_BUILD_ROAD_SECTION}, // RTW_ROAD_Y |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
580 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_AUTOROAD, STR_BUILD_AUTOROAD_TIP}, // RTW_AUTOROAD |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
581 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, // RTW_DEMOLISH |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
582 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_ROAD_DEPOT, STR_180C_BUILD_ROAD_VEHICLE_DEPOT}, // RTW_DEPOT |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
583 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 110, 131, 14, 35, SPR_IMG_BUS_STATION, STR_180D_BUILD_BUS_STATION}, // RTW_BUS_STATION |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
584 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 132, 153, 14, 35, SPR_IMG_TRUCK_BAY, STR_180E_BUILD_TRUCK_LOADING_BAY}, // RTW_TRUCK_STATION |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
585 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 154, 175, 14, 35, SPR_IMG_ROAD_ONE_WAY, STR_TOGGLE_ONE_WAY_ROAD}, // RTW_ONE_WAY |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
586 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 176, 218, 14, 35, SPR_IMG_BRIDGE, STR_180F_BUILD_ROAD_BRIDGE}, // RTW_BUILD_BRIDGE |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
587 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 219, 240, 14, 35, SPR_IMG_ROAD_TUNNEL, STR_1810_BUILD_ROAD_TUNNEL}, // RTW_BUILD_TUNNEL |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
588 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 241, 262, 14, 35, SPR_IMG_REMOVE, STR_1811_TOGGLE_BUILD_REMOVE_FOR}, // RTW_REMOVE |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
589 |
|
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
5
diff
changeset
|
590 |
{ WIDGETS_END}, |
0 | 591 |
}; |
592 |
||
593 |
static const WindowDesc _build_road_desc = { |
|
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
594 |
WDP_ALIGN_TBR, 22, 263, 36, 263, 36, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
6111
diff
changeset
|
595 |
WC_BUILD_TOOLBAR, WC_NONE, |
756
d1f1dc31b6f4
(svn r1212) -Feature: sticky windows all build-toolbars
darkvater
parents:
679
diff
changeset
|
596 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
0 | 597 |
_build_road_widgets, |
598 |
BuildRoadToolbWndProc |
|
599 |
}; |
|
600 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
601 |
/** Widget definition of the build tram toolbar */ |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
602 |
static const Widget _build_tramway_widgets[] = { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
603 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // RTW_CLOSEBOX |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
604 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 228, 0, 13, STR_1802_TRAMWAY_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // RTW_CAPTION |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
605 |
{ WWT_STICKYBOX, RESIZE_NONE, 7, 229, 240, 0, 13, 0x0, STR_STICKY_BUTTON}, // RTW_STICKY |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
606 |
|
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
607 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_TRAMWAY_X_DIR, STR_180B_BUILD_TRAMWAY_SECTION}, // RTW_ROAD_X |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
608 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_TRAMWAY_Y_DIR, STR_180B_BUILD_TRAMWAY_SECTION}, // RTW_ROAD_Y |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
609 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_AUTOTRAM, STR_BUILD_AUTOTRAM_TIP}, // RTW_AUTOROAD |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
610 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, // RTW_DEMOLISH |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
611 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_ROAD_DEPOT, STR_180C_BUILD_TRAM_VEHICLE_DEPOT}, // RTW_DEPOT |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
612 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 110, 131, 14, 35, SPR_IMG_BUS_STATION, STR_180D_BUILD_PASSENGER_TRAM_STATION}, // RTW_BUS_STATION |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
613 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 132, 153, 14, 35, SPR_IMG_TRUCK_BAY, STR_180E_BUILD_CARGO_TRAM_STATION}, // RTW_TRUCK_STATION |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
614 |
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, // RTW_ONE_WAY |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
615 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 154, 196, 14, 35, SPR_IMG_BRIDGE, STR_180F_BUILD_TRAMWAY_BRIDGE}, // RTW_BUILD_BRIDGE |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
616 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 197, 218, 14, 35, SPR_IMG_ROAD_TUNNEL, STR_1810_BUILD_TRAMWAY_TUNNEL}, // RTW_BUILD_TUNNEL |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
617 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 219, 240, 14, 35, SPR_IMG_REMOVE, STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS}, // RTW_REMOVE |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
618 |
|
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
619 |
{ WIDGETS_END}, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
620 |
}; |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
621 |
|
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
622 |
static const WindowDesc _build_tramway_desc = { |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
623 |
WDP_ALIGN_TBR, 22, 241, 36, 241, 36, |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
624 |
WC_BUILD_TOOLBAR, WC_NONE, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
625 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
626 |
_build_tramway_widgets, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
627 |
BuildRoadToolbWndProc |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
628 |
}; |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
629 |
|
7162
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
630 |
void ShowBuildRoadToolbar(RoadType roadtype) |
0 | 631 |
{ |
5005
21e84e53c732
(svn r7022) -Fix [FS#292]: Properly guard against viewing company-sensitive information from
Darkvater
parents:
4938
diff
changeset
|
632 |
if (!IsValidPlayer(_current_player)) return; |
7162
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
633 |
_cur_roadtype = roadtype; |
5005
21e84e53c732
(svn r7022) -Fix [FS#292]: Properly guard against viewing company-sensitive information from
Darkvater
parents:
4938
diff
changeset
|
634 |
|
0 | 635 |
DeleteWindowById(WC_BUILD_TOOLBAR, 0); |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
636 |
Window *w = AllocateWindowDesc(roadtype == ROADTYPE_ROAD ? &_build_road_desc : &_build_tramway_desc); |
6111 | 637 |
if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w); |
0 | 638 |
} |
639 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
640 |
/** Widget definition of the build road toolbar in the scenario editor */ |
0 | 641 |
static const Widget _build_road_scen_widgets[] = { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
642 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // RTW_CLOSEBOX |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
643 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 184, 0, 13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // RTW_CAPTION |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
644 |
{ WWT_STICKYBOX, RESIZE_NONE, 7, 185, 196, 0, 13, 0x0, STR_STICKY_BUTTON}, // RTW_STICKY |
661
a0bdbdffb06a
(svn r1095) -Fix: scenario editor road-build-gui works again altough shortcuts are screwed.
darkvater
parents:
651
diff
changeset
|
645 |
|
8391
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
646 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_ROAD_X_DIR, STR_180B_BUILD_ROAD_SECTION}, // RTW_ROAD_X |
533d149e52a9
(svn r11446) -Codechange: change the naming of road related code parts to something more descriptive
skidd13
parents:
8290
diff
changeset
|
647 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_ROAD_Y_DIR, STR_180B_BUILD_ROAD_SECTION}, // RTW_ROAD_Y |
8285
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
648 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_AUTOROAD, STR_BUILD_AUTOROAD_TIP}, // RTW_AUTOROAD |
1f026f023f27
(svn r11339) -Add: autoroad; same as autorail, but for road and trams and only on X and Y direction. Patch by Octopussy and skidd13.
rubidium
parents:
8225
diff
changeset
|
649 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, // RTW_DEMOLISH |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
650 |
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, // RTW_DEPOT |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
651 |
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, // RTW_BUS_STATION |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
652 |
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, // RTW_TRUCK_STATION |
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
653 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_ROAD_ONE_WAY, STR_TOGGLE_ONE_WAY_ROAD}, // RTW_ONE_WAY |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
654 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 110, 152, 14, 35, SPR_IMG_BRIDGE, STR_180F_BUILD_ROAD_BRIDGE}, // RTW_BUILD_BRIDGE |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
655 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 153, 174, 14, 35, SPR_IMG_ROAD_TUNNEL, STR_1810_BUILD_ROAD_TUNNEL}, // RTW_BUILD_TUNNEL |
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
656 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 175, 196, 14, 35, SPR_IMG_REMOVE, STR_1811_TOGGLE_BUILD_REMOVE_FOR}, // RTW_REMOVE |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
5
diff
changeset
|
657 |
{ WIDGETS_END}, |
0 | 658 |
}; |
659 |
||
660 |
static const WindowDesc _build_road_scen_desc = { |
|
8402
d2f50a0bac7f
(svn r11457) -Fix: (r11455) Reenable the accidentaly removed one way roads option
skidd13
parents:
8400
diff
changeset
|
661 |
WDP_AUTO, WDP_AUTO, 197, 36, 197, 36, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
6111
diff
changeset
|
662 |
WC_SCEN_BUILD_ROAD, WC_NONE, |
777
3d7798da0f10
(svn r1243) -Fix: Scenario road-building toolbar also stickified. Thx for the notice teeone
darkvater
parents:
756
diff
changeset
|
663 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
0 | 664 |
_build_road_scen_widgets, |
665 |
BuildRoadToolbWndProc |
|
666 |
}; |
|
667 |
||
6573 | 668 |
void ShowBuildRoadScenToolbar() |
0 | 669 |
{ |
7275
301967cc2351
(svn r10015) -Fix: one could build (only) tram tracks when that was the last built roadtype (in a normal game).
rubidium
parents:
7260
diff
changeset
|
670 |
_cur_roadtype = ROADTYPE_ROAD; |
0 | 671 |
AllocateWindowDescFront(&_build_road_scen_desc, 0); |
672 |
} |
|
673 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
674 |
/** Enum referring to the widgets of the build road depot window */ |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
675 |
enum BuildRoadDepotWidgets { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
676 |
BRDW_CLOSEBOX = 0, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
677 |
BRDW_CAPTION, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
678 |
BRDW_BACKGROUND, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
679 |
BRDW_DEPOT_NE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
680 |
BRDW_DEPOT_SE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
681 |
BRDW_DEPOT_SW, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
682 |
BRDW_DEPOT_NW, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
683 |
}; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
684 |
|
4171 | 685 |
static void BuildRoadDepotWndProc(Window *w, WindowEvent *e) |
2639 | 686 |
{ |
687 |
switch (e->event) { |
|
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
688 |
case WE_CREATE: w->LowerWidget(_road_depot_orientation + BRDW_DEPOT_NE); break; |
4719
413b21513ef7
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4709
diff
changeset
|
689 |
|
0 | 690 |
case WE_PAINT: |
691 |
DrawWindowWidgets(w); |
|
692 |
||
7162
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
693 |
DrawRoadDepotSprite(70, 17, DIAGDIR_NE, _cur_roadtype); |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
694 |
DrawRoadDepotSprite(70, 69, DIAGDIR_SE, _cur_roadtype); |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
695 |
DrawRoadDepotSprite( 2, 69, DIAGDIR_SW, _cur_roadtype); |
b769c2b45103
(svn r9897) -Codechange: prepare the toolbar for more road types.
rubidium
parents:
7158
diff
changeset
|
696 |
DrawRoadDepotSprite( 2, 17, DIAGDIR_NW, _cur_roadtype); |
0 | 697 |
break; |
698 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
699 |
case WE_CLICK: |
4634
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
700 |
switch (e->we.click.widget) { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
701 |
case BRDW_DEPOT_NW: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
702 |
case BRDW_DEPOT_NE: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
703 |
case BRDW_DEPOT_SW: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
704 |
case BRDW_DEPOT_SE: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
705 |
w->RaiseWidget(_road_depot_orientation + BRDW_DEPOT_NE); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
706 |
_road_depot_orientation = (DiagDirection)(e->we.click.widget - BRDW_DEPOT_NE); |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
707 |
w->LowerWidget(_road_depot_orientation + BRDW_DEPOT_NE); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
708 |
SndPlayFx(SND_15_BEEP); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
709 |
SetWindowDirty(w); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
710 |
break; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
711 |
} |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
712 |
break; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
713 |
|
0 | 714 |
case WE_MOUSELOOP: |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
715 |
if (WP(w, def_d).close) DeleteWindow(w); |
0 | 716 |
break; |
1072
01bf9fc64236
(svn r1573) -Fix: Station and depot building mode is now terminated if the
celestar
parents:
1035
diff
changeset
|
717 |
|
01bf9fc64236
(svn r1573) -Fix: Station and depot building mode is now terminated if the
celestar
parents:
1035
diff
changeset
|
718 |
case WE_DESTROY: |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
719 |
if (!WP(w, def_d).close) ResetObjectToPlace(); |
1072
01bf9fc64236
(svn r1573) -Fix: Station and depot building mode is now terminated if the
celestar
parents:
1035
diff
changeset
|
720 |
break; |
0 | 721 |
} |
722 |
} |
|
723 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
724 |
/** Widget definition of the build road depot window */ |
0 | 725 |
static const Widget _build_road_depot_widgets[] = { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
726 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // BRDW_CLOSEBOX |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
727 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1806_ROAD_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // BRDW_CAPTION |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
728 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL}, // BRDW_BACKGROUND |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
729 |
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_NE |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
730 |
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_SE |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
731 |
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_SW |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
732 |
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_NW |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
5
diff
changeset
|
733 |
{ WIDGETS_END}, |
0 | 734 |
}; |
735 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
736 |
/** Widget definition of the build tram depot window */ |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
737 |
static const Widget _build_tram_depot_widgets[] = { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
738 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // BRDW_CLOSEBOX |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
739 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1806_TRAM_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // BRDW_CAPTION |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
740 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL}, // BRDW_BACKGROUND |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
741 |
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_NE |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
742 |
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_SE |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
743 |
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_SW |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
744 |
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_NW |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
745 |
{ WIDGETS_END}, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
746 |
}; |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
747 |
|
0 | 748 |
static const WindowDesc _build_road_depot_desc = { |
7837
65d7362153a6
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium
parents:
7835
diff
changeset
|
749 |
WDP_AUTO, WDP_AUTO, 140, 122, 140, 122, |
5070
0bbf5264bfb7
(svn r7128) -Codechange: Replace magic numbers by magic enums (windowdesc positioning WDP_AUTO = -1)
Darkvater
parents:
5005
diff
changeset
|
750 |
WC_BUILD_DEPOT, WC_BUILD_TOOLBAR, |
0 | 751 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, |
752 |
_build_road_depot_widgets, |
|
753 |
BuildRoadDepotWndProc |
|
754 |
}; |
|
755 |
||
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
756 |
static const WindowDesc _build_tram_depot_desc = { |
7837
65d7362153a6
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium
parents:
7835
diff
changeset
|
757 |
WDP_AUTO, WDP_AUTO, 140, 122, 140, 122, |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
758 |
WC_BUILD_DEPOT, WC_BUILD_TOOLBAR, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
759 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
760 |
_build_tram_depot_widgets, |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
761 |
BuildRoadDepotWndProc |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
762 |
}; |
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
763 |
|
6573 | 764 |
static void ShowRoadDepotPicker() |
0 | 765 |
{ |
7187
f7dc3204d457
(svn r9923) -Add: support for Action 0 Road vehicles, property 1C, bit 0.
rubidium
parents:
7174
diff
changeset
|
766 |
AllocateWindowDesc(_cur_roadtype == ROADTYPE_ROAD ? &_build_road_depot_desc : &_build_tram_depot_desc); |
0 | 767 |
} |
768 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
769 |
/** Enum referring to the widgets of the build road station window */ |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
770 |
enum BuildRoadStationWidgets { |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
771 |
BRSW_CLOSEBOX = 0, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
772 |
BRSW_CAPTION, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
773 |
BRSW_BACKGROUND, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
774 |
BRSW_STATION_NE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
775 |
BRSW_STATION_SE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
776 |
BRSW_STATION_SW, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
777 |
BRSW_STATION_NW, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
778 |
BRSW_STATION_X, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
779 |
BRSW_STATION_Y, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
780 |
BRSW_LT_OFF, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
781 |
BRSW_LT_ON, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
782 |
BRSW_INFO, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
783 |
}; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
784 |
|
987
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
785 |
static void RoadStationPickerWndProc(Window *w, WindowEvent *e) |
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
786 |
{ |
2952 | 787 |
switch (e->event) { |
4719
413b21513ef7
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4709
diff
changeset
|
788 |
case WE_CREATE: |
7173
0a9b13debedf
(svn r9908) -Codechange: prepare the station picker for more road types.
rubidium
parents:
7172
diff
changeset
|
789 |
/* Trams don't have non-drivethrough stations */ |
0a9b13debedf
(svn r9908) -Codechange: prepare the station picker for more road types.
rubidium
parents:
7172
diff
changeset
|
790 |
if (_cur_roadtype == ROADTYPE_TRAM && _road_station_picker_orientation < DIAGDIR_END) { |
0a9b13debedf
(svn r9908) -Codechange: prepare the station picker for more road types.
rubidium
parents:
7172
diff
changeset
|
791 |
_road_station_picker_orientation = DIAGDIR_END; |
0a9b13debedf
(svn r9908) -Codechange: prepare the station picker for more road types.
rubidium
parents:
7172
diff
changeset
|
792 |
} |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
793 |
w->SetWidgetsDisabledState(_cur_roadtype == ROADTYPE_TRAM, |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
794 |
BRSW_STATION_NE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
795 |
BRSW_STATION_SE, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
796 |
BRSW_STATION_SW, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
797 |
BRSW_STATION_NW, |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
798 |
WIDGET_LIST_END); |
7173
0a9b13debedf
(svn r9908) -Codechange: prepare the station picker for more road types.
rubidium
parents:
7172
diff
changeset
|
799 |
|
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
800 |
w->LowerWidget(_road_station_picker_orientation + BRSW_STATION_NE); |
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
801 |
w->LowerWidget(_station_show_coverage + BRSW_LT_OFF); |
4719
413b21513ef7
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4709
diff
changeset
|
802 |
break; |
413b21513ef7
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4709
diff
changeset
|
803 |
|
0 | 804 |
case WE_PAINT: { |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
805 |
if (WP(w, def_d).close) return; |
987
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
806 |
|
0 | 807 |
DrawWindowWidgets(w); |
808 |
||
987
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
809 |
if (_station_show_coverage) { |
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
810 |
int rad = _patches.modified_catchment ? CA_TRUCK /* = CA_BUS */ : 4; |
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
811 |
SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4008
diff
changeset
|
812 |
} else { |
987
ea47ad079de8
(svn r1485) -Fix: [1031451] Catchment area shows when buying sign. Catchment area wasn't reset when road station window was unselected
darkvater
parents:
946
diff
changeset
|
813 |
SetTileSelectSize(1, 1); |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4008
diff
changeset
|
814 |
} |
0 | 815 |
|
7768
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
816 |
StationType st = (w->window_class == WC_BUS_STATION) ? STATION_BUS : STATION_TRUCK; |
0 | 817 |
|
7768
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
818 |
StationPickerDrawSprite(103, 35, st, RAILTYPE_BEGIN, ROADTYPE_ROAD, 0); |
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
819 |
StationPickerDrawSprite(103, 85, st, RAILTYPE_BEGIN, ROADTYPE_ROAD, 1); |
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
820 |
StationPickerDrawSprite( 35, 85, st, RAILTYPE_BEGIN, ROADTYPE_ROAD, 2); |
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
821 |
StationPickerDrawSprite( 35, 35, st, RAILTYPE_BEGIN, ROADTYPE_ROAD, 3); |
0 | 822 |
|
7768
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
823 |
StationPickerDrawSprite(171, 35, st, RAILTYPE_BEGIN, _cur_roadtype, 4); |
2060e8d65a72
(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
rubidium
parents:
7762
diff
changeset
|
824 |
StationPickerDrawSprite(171, 85, st, RAILTYPE_BEGIN, _cur_roadtype, 5); |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6144
diff
changeset
|
825 |
|
0 | 826 |
DrawStationCoverageAreaText(2, 146, |
7737
7ab95e599292
(svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium
parents:
7582
diff
changeset
|
827 |
(w->window_class == WC_BUS_STATION) ? SCT_PASSENGERS_ONLY : SCT_NON_PASSENGERS_ONLY, |
568
6eb7d394fb35
(svn r979) Allow more realistically sized catchment areas
Celestar
parents:
543
diff
changeset
|
828 |
3); |
0 | 829 |
|
830 |
} break; |
|
831 |
||
832 |
case WE_CLICK: { |
|
4634
897461a3e9ca
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4559
diff
changeset
|
833 |
switch (e->we.click.widget) { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
834 |
case BRSW_STATION_NE: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
835 |
case BRSW_STATION_SE: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
836 |
case BRSW_STATION_SW: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
837 |
case BRSW_STATION_NW: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
838 |
case BRSW_STATION_X: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
839 |
case BRSW_STATION_Y: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
840 |
w->RaiseWidget(_road_station_picker_orientation + BRSW_STATION_NE); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
841 |
_road_station_picker_orientation = (DiagDirection)(e->we.click.widget - BRSW_STATION_NE); |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
842 |
w->LowerWidget(_road_station_picker_orientation + BRSW_STATION_NE); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
843 |
SndPlayFx(SND_15_BEEP); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
844 |
SetWindowDirty(w); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
845 |
break; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
846 |
|
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
847 |
case BRSW_LT_OFF: |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
848 |
case BRSW_LT_ON: |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
849 |
w->RaiseWidget(_station_show_coverage + BRSW_LT_OFF); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
850 |
_station_show_coverage = (e->we.click.widget != BRSW_LT_OFF); |
8493
3ab458f7cff4
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
8452
diff
changeset
|
851 |
w->LowerWidget(_station_show_coverage + BRSW_LT_OFF); |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
852 |
SndPlayFx(SND_15_BEEP); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
853 |
SetWindowDirty(w); |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
854 |
break; |
0 | 855 |
} |
856 |
} break; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
857 |
|
0 | 858 |
case WE_MOUSELOOP: { |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
859 |
if (WP(w, def_d).close) { |
0 | 860 |
DeleteWindow(w); |
861 |
return; |
|
862 |
} |
|
863 |
||
864 |
CheckRedrawStationCoverage(w); |
|
865 |
} break; |
|
1109
1bab892228cd
(svn r1610) Remove trailing whitespace (last time ever, i hope)
tron
parents:
1093
diff
changeset
|
866 |
|
1072
01bf9fc64236
(svn r1573) -Fix: Station and depot building mode is now terminated if the
celestar
parents:
1035
diff
changeset
|
867 |
case WE_DESTROY: |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6889
diff
changeset
|
868 |
if (!WP(w, def_d).close) ResetObjectToPlace(); |
1072
01bf9fc64236
(svn r1573) -Fix: Station and depot building mode is now terminated if the
celestar
parents:
1035
diff
changeset
|
869 |
break; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
870 |
} |
0 | 871 |
} |
872 |
||
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
873 |
/** Widget definition of the build raod station window */ |
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
874 |
static const Widget _rv_station_picker_widgets[] = { |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
875 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // BRSW_CLOSEBOX |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
876 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 206, 0, 13, STR_NULL, STR_018C_WINDOW_TITLE_DRAG_THIS}, // BRSW_CAPTION |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
877 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 206, 14, 176, 0x0, STR_NULL}, // BRSW_BACKGROUND |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
878 |
|
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
879 |
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_NULL}, // BRSW_STATION_NE |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
880 |
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_NULL}, // BRSW_STATION_SE |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
881 |
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_NULL}, // BRSW_STATION_SW |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
882 |
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_NULL}, // BRSW_STATION_NW |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
883 |
{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 17, 66, 0x0, STR_NULL}, // BRSW_STATION_X |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
884 |
{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 69, 118, 0x0, STR_NULL}, // BRSW_STATION_Y |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
885 |
|
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
886 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE}, // BRSW_LT_OFF |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
887 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA}, // BRSW_LT_ON |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
888 |
{ WWT_LABEL, RESIZE_NONE, 7, 0, 139, 120, 133, STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL}, // BRSW_INFO |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
5
diff
changeset
|
889 |
{ WIDGETS_END}, |
0 | 890 |
}; |
891 |
||
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
892 |
static const WindowDesc _rv_station_picker_desc = { |
7837
65d7362153a6
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium
parents:
7835
diff
changeset
|
893 |
WDP_AUTO, WDP_AUTO, 207, 177, 207, 177, |
5070
0bbf5264bfb7
(svn r7128) -Codechange: Replace magic numbers by magic enums (windowdesc positioning WDP_AUTO = -1)
Darkvater
parents:
5005
diff
changeset
|
894 |
WC_BUS_STATION, WC_BUILD_TOOLBAR, |
0 | 895 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, |
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
896 |
_rv_station_picker_widgets, |
0 | 897 |
RoadStationPickerWndProc |
898 |
}; |
|
899 |
||
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
900 |
static void ShowRVStationPicker(RoadStop::Type rs) |
0 | 901 |
{ |
7189
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
902 |
Window *w = AllocateWindowDesc(&_rv_station_picker_desc); |
38df4f4e68ef
(svn r9925) -Fix: wrong tooltips in station picker.
rubidium
parents:
7187
diff
changeset
|
903 |
if (w == NULL) return; |
0 | 904 |
|
7197
292134da6f79
(svn r9933) -Fix (9925): unified a little too much.
rubidium
parents:
7189
diff
changeset
|
905 |
w->window_class = (rs == RoadStop::BUS) ? WC_BUS_STATION : WC_TRUCK_STATION; |
8225
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
906 |
w->widget[BRSW_CAPTION].data = _road_type_infos[_cur_roadtype].picker_title[rs]; |
7cf635a89c7d
(svn r11264) -Codechange: replace a lot of magic numbers with enums for the rail and road GUIs. Patch by skidd13.
rubidium
parents:
8017
diff
changeset
|
907 |
for (uint i = BRSW_STATION_NE; i < BRSW_LT_OFF; i++) w->widget[i].tooltips = _road_type_infos[_cur_roadtype].picker_tooltip[rs]; |
0 | 908 |
} |
909 |
||
6573 | 910 |
void InitializeRoadGui() |
0 | 911 |
{ |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
912 |
_road_depot_orientation = DIAGDIR_NW; |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
913 |
_road_station_picker_orientation = DIAGDIR_NW; |
0 | 914 |
} |