author | rubidium |
Fri, 25 May 2007 11:01:44 +0000 | |
changeset 7183 | 23b20a982228 |
parent 7139 | 4ae3ab180d05 |
child 7555 | e20900912fa2 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6443
b8f06d8eb7be
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6206
diff
changeset
|
3 |
/** @file autoreplace_gui.cpp */ |
b8f06d8eb7be
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6206
diff
changeset
|
4 |
|
164
0cbdf3c9bde1
(svn r165) -Feature: Option to sort vehicles in vehicle-list window by different criteria. Total independent sort for all types and players. Periodic resort of list every 10 TTD days. Thank you for your graphical inspiration follow and buxo (since none of you provided any code).
darkvater
parents:
diff
changeset
|
5 |
#include "stdafx.h" |
1891
92a3b0aa0946
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1859
diff
changeset
|
6 |
#include "openttd.h" |
1299
0a6510cc889b
(svn r1803) Move debugging stuff into files of it's own
tron
parents:
1294
diff
changeset
|
7 |
#include "debug.h" |
2163
637ec3c361f5
(svn r2673) Include functions.h directly, not globally via openttd.h
tron
parents:
2159
diff
changeset
|
8 |
#include "functions.h" |
1363
01d3de5d8039
(svn r1867) Include tables/sprites.h only in files which need it
tron
parents:
1309
diff
changeset
|
9 |
#include "table/sprites.h" |
507
8aa8100b0b22
(svn r815) Include strings.h only in the files which need it.
tron
parents:
505
diff
changeset
|
10 |
#include "table/strings.h" |
588 | 11 |
#include "window.h" |
842 | 12 |
#include "gui.h" |
13 |
#include "command.h" |
|
2159
3b634157c3b2
(svn r2669) Shuffle some more stuff around to reduce dependencies
tron
parents:
2154
diff
changeset
|
14 |
#include "variables.h" |
3b634157c3b2
(svn r2669) Shuffle some more stuff around to reduce dependencies
tron
parents:
2154
diff
changeset
|
15 |
#include "vehicle_gui.h" |
2962
dbd168a4703a
(svn r3524) - Split newgrf features from engine.[ch] into newgrf_engine.[ch], and add the new files to project files.
peter1138
parents:
2951
diff
changeset
|
16 |
#include "newgrf_engine.h" |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
17 |
#include "group.h" |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
18 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
19 |
|
6060
8388a1bcb7c8
(svn r8371) -Codechange: [autoreplace GUI] moved the autoreplace GUI to a file of it's own
bjarni
parents:
6059
diff
changeset
|
20 |
static RailType _railtype_selected_in_replace_gui; |
505
11582dcada49
(svn r813) Push two tables from vehicle_gui.h into vehicle_gui.c - they were in the binary 48 (!) times.
tron
parents:
243
diff
changeset
|
21 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
22 |
static bool _rebuild_left_list; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
23 |
static bool _rebuild_right_list; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
24 |
|
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
25 |
static const StringID _rail_types_list[] = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
26 |
STR_RAIL_VEHICLES, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
27 |
STR_ELRAIL_VEHICLES, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
28 |
STR_MONORAIL_VEHICLES, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
29 |
STR_MAGLEV_VEHICLES, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
30 |
INVALID_STRING_ID |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
31 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
32 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
33 |
/* General Vehicle GUI based procedures that are independent of vehicle types */ |
6573 | 34 |
void InitializeVehiclesGuiList() |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
35 |
{ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
36 |
_railtype_selected_in_replace_gui = RAILTYPE_RAIL; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
37 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
38 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
39 |
/** Rebuild the left autoreplace list if an engine is removed or added |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
40 |
* @param e Engine to check if it is removed or added |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
41 |
* Note: this function only works if it is called either |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
42 |
* - when a new vehicle is build, but before it's counted in num_engines |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
43 |
* - when a vehicle is deleted and after it's substracted from num_engines |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
44 |
* - when not changing the count (used when changing replace orders) |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
45 |
*/ |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
46 |
void InvalidateAutoreplaceWindow(EngineID e) |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
47 |
{ |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
48 |
Player *p = GetPlayer(_local_player); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
49 |
byte type = GetEngine(e)->type; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
50 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
51 |
if (p->num_engines[e] == 0) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
52 |
/* We don't have any of this engine type. |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
53 |
* Either we just sold the last one, we build a new one or we stopped replacing it. |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
54 |
* In all cases, we need to update the left list */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
55 |
_rebuild_left_list = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
56 |
} else { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
57 |
_rebuild_left_list = false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
58 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
59 |
_rebuild_right_list = false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
60 |
InvalidateWindowData(WC_REPLACE_VEHICLE, type); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
61 |
} |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
62 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
63 |
/** When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
64 |
* @param type The type of engine |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
65 |
*/ |
7134
c5a90dd41166
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium
parents:
6894
diff
changeset
|
66 |
void AddRemoveEngineFromAutoreplaceAndBuildWindows(VehicleType type) |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
67 |
{ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
68 |
_rebuild_left_list = false; // left list is only for the vehicles the player owns and is not related to being buildable |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
69 |
_rebuild_right_list = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
70 |
InvalidateWindowData(WC_REPLACE_VEHICLE, type); // Update the autoreplace window |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
71 |
InvalidateWindowClassesData(WC_BUILD_VEHICLE); // The build windows needs updating as well |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
72 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
73 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
74 |
/** Get the default cargo type for an engine |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
75 |
* @param engine the EngineID to get the cargo for |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
76 |
* @return the cargo type carried by the engine (CT_INVALID if engine got no cargo capacity) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
77 |
*/ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
78 |
static CargoID EngineCargo(EngineID engine) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
79 |
{ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
80 |
if (engine == INVALID_ENGINE) return CT_INVALID; // surely INVALID_ENGINE can't carry anything but CT_INVALID |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
81 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
82 |
switch (GetEngine(engine)->type) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
83 |
default: NOT_REACHED(); |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
84 |
case VEH_TRAIN: |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
85 |
if (RailVehInfo(engine)->capacity == 0) return CT_INVALID; // no capacity -> can't carry cargo |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
86 |
return RailVehInfo(engine)->cargo_type; |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
87 |
case VEH_ROAD: return RoadVehInfo(engine)->cargo_type; |
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
88 |
case VEH_SHIP: return ShipVehInfo(engine)->cargo_type; |
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
89 |
case VEH_AIRCRAFT: return CT_PASSENGERS; // all planes are build with passengers by default |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
90 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
91 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
92 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
93 |
/** Figure out if an engine should be added to a list |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
94 |
* @param e The EngineID |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
95 |
* @param draw_left If true, then the left list is drawn (the engines specific to the railtype you selected) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
96 |
* @param show_engines if truem then locomotives are drawn, else wagons (never both) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
97 |
* @return true if the engine should be in the list (based on this check) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
98 |
*/ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
99 |
static bool GenerateReplaceRailList(EngineID e, bool draw_left, bool show_engines) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
100 |
{ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
101 |
const RailVehicleInfo *rvi = RailVehInfo(e); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
102 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
103 |
/* Ensure that the wagon/engine selection fits the engine. */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
104 |
if ((rvi->railveh_type == RAILVEH_WAGON) == show_engines) return false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
105 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
106 |
if (draw_left && show_engines) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
107 |
/* Ensure that the railtype is specific to the selected one */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
108 |
if (rvi->railtype != _railtype_selected_in_replace_gui) return false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
109 |
} else { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
110 |
/* Ensure that it's a compatible railtype to the selected one (like electric <-> diesel) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
111 |
* The vehicle do not have to have power on the railtype in question, only able to drive (pulled if needed) */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
112 |
if (!IsCompatibleRail(rvi->railtype, _railtype_selected_in_replace_gui)) return false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
113 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
114 |
return true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
115 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
116 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
117 |
/** Figure out if two engines got at least one type of cargo in common (refitting if needed) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
118 |
* @param engine_a one of the EngineIDs |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
119 |
* @param engine_b the other EngineID |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
120 |
* @return true if they can both carry the same type of cargo (or at least one of them got no capacity at all) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
121 |
*/ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
122 |
static bool EnginesGotCargoInCommon(EngineID engine_a, EngineID engine_b) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
123 |
{ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
124 |
CargoID a = EngineCargo(engine_a); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
125 |
CargoID b = EngineCargo(engine_b); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
126 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
127 |
/* we should always be able to refit to/from locomotives without capacity |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
128 |
* Because of that, CT_INVALID shoudl always return true */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
129 |
if (a == CT_INVALID || b == CT_INVALID || a == b) return true; // they carry no ro the same type by default |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
130 |
if (EngInfo(engine_a)->refit_mask & EngInfo(engine_b)->refit_mask) return true; // both can refit to the same |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
131 |
if (CanRefitTo(engine_a, b) || CanRefitTo(engine_b, a)) return true; // one can refit to what the other one carries |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
132 |
return false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
133 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
134 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
135 |
/** Generate a list |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
136 |
* @param w Window, that contains the list |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
137 |
* @param draw_left true if generating the left list, otherwise false |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
138 |
*/ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
139 |
static void GenerateReplaceVehList(Window *w, bool draw_left) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
140 |
{ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
141 |
Player *p = GetPlayer(_local_player); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
142 |
EngineID e; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
143 |
EngineID selected_engine = INVALID_ENGINE; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
144 |
byte type = w->window_number; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
145 |
byte i = draw_left ? 0 : 1; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
146 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
147 |
EngineList *list = &WP(w, replaceveh_d).list[i]; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
148 |
EngList_RemoveAll(list); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
149 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
150 |
FOR_ALL_ENGINEIDS_OF_TYPE(e, type) { |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
151 |
if (type == VEH_TRAIN && !GenerateReplaceRailList(e, draw_left, WP(w, replaceveh_d).wagon_btnstate)) continue; // special rules for trains |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
152 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
153 |
if (draw_left) { |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
154 |
const GroupID selected_group = WP(w, replaceveh_d).sel_group; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
155 |
const uint num_engines = IsDefaultGroupID(selected_group) ? p->num_engines[e] : GetGroup(selected_group)->num_engines[e]; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
156 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
157 |
/* Skip drawing the engines we don't have any of and haven't set for replacement */ |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
158 |
if (num_engines == 0 && EngineReplacementForPlayer(GetPlayer(_local_player), e, selected_group) == INVALID_ENGINE) continue; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
159 |
} else { |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
160 |
/* This is for engines we can replace to and they should depend on what we selected to replace from */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
161 |
if (!IsEngineBuildable(e, type, _local_player)) continue; // we need to be able to build the engine |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
162 |
if (!EnginesGotCargoInCommon(e, WP(w, replaceveh_d).sel_engine[0])) continue; // the engines needs to be able to carry the same cargo |
7183
23b20a982228
(svn r9919) -Codechange: prepare some more places for more road types.
rubidium
parents:
7139
diff
changeset
|
163 |
|
23b20a982228
(svn r9919) -Codechange: prepare some more places for more road types.
rubidium
parents:
7139
diff
changeset
|
164 |
/* Road vehicles can't be replaced by trams and vice-versa */ |
23b20a982228
(svn r9919) -Codechange: prepare some more places for more road types.
rubidium
parents:
7139
diff
changeset
|
165 |
if (type == VEH_ROAD && HASBIT(EngInfo(WP(w, replaceveh_d).sel_engine[0])->misc_flags, EF_ROAD_TRAM) != HASBIT(EngInfo(e)->misc_flags, EF_ROAD_TRAM)) continue; |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
166 |
if (e == WP(w, replaceveh_d).sel_engine[0]) continue; // we can't replace an engine into itself (that would be autorenew) |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
167 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
168 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
169 |
EngList_Add(list, e); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
170 |
if (e == WP(w, replaceveh_d).sel_engine[i]) selected_engine = e; // The selected engine is still in the list |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
171 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
172 |
WP(w, replaceveh_d).sel_engine[i] = selected_engine; // update which engine we selected (the same or none, if it's not in the list anymore) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
173 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
174 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
175 |
/** Generate the lists |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
176 |
* @param w Window containing the lists |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
177 |
*/ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
178 |
static void GenerateLists(Window *w) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
179 |
{ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
180 |
EngineID e = WP(w, replaceveh_d).sel_engine[0]; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
181 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
182 |
if (WP(w, replaceveh_d).update_left == true) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
183 |
/* We need to rebuild the left list */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
184 |
GenerateReplaceVehList(w, true); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
185 |
SetVScrollCount(w, EngList_Count(&WP(w, replaceveh_d).list[0])); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
186 |
if (WP(w, replaceveh_d).init_lists && WP(w, replaceveh_d).sel_engine[0] == INVALID_ENGINE && EngList_Count(&WP(w, replaceveh_d).list[0]) != 0) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
187 |
WP(w, replaceveh_d).sel_engine[0] = WP(w, replaceveh_d).list[0][0]; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
188 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
189 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
190 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
191 |
if (WP(w, replaceveh_d).update_right || e != WP(w, replaceveh_d).sel_engine[0]) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
192 |
/* Either we got a request to rebuild the right list or the left list selected a different engine */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
193 |
if (WP(w, replaceveh_d).sel_engine[0] == INVALID_ENGINE) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
194 |
/* Always empty the right list when nothing is selected in the left list */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
195 |
EngList_RemoveAll(&WP(w, replaceveh_d).list[1]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
196 |
WP(w, replaceveh_d).sel_engine[1] = INVALID_ENGINE; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
197 |
} else { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
198 |
GenerateReplaceVehList(w, false); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
199 |
SetVScroll2Count(w, EngList_Count(&WP(w, replaceveh_d).list[1])); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
200 |
if (WP(w, replaceveh_d).init_lists && WP(w, replaceveh_d).sel_engine[1] == INVALID_ENGINE && EngList_Count(&WP(w, replaceveh_d).list[1]) != 0) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
201 |
WP(w, replaceveh_d).sel_engine[1] = WP(w, replaceveh_d).list[1][0]; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
202 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
203 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
204 |
} |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
205 |
/* Reset the flags about needed updates */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
206 |
WP(w, replaceveh_d).update_left = false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
207 |
WP(w, replaceveh_d).update_right = false; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
208 |
WP(w, replaceveh_d).init_lists = false; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
209 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
210 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
211 |
|
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
212 |
void DrawEngineList(VehicleType type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count, GroupID selected_group); |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
213 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
214 |
static void ReplaceVehicleWndProc(Window *w, WindowEvent *e) |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
215 |
{ |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
216 |
/* Strings for the pulldown menu */ |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
217 |
static const StringID _vehicle_type_names[] = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
218 |
STR_019F_TRAIN, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
219 |
STR_019C_ROAD_VEHICLE, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
220 |
STR_019E_SHIP, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
221 |
STR_019D_AIRCRAFT |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
222 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
223 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
224 |
switch (e->event) { |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
225 |
case WE_CREATE: |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
226 |
WP(w, replaceveh_d).wagon_btnstate = true; // start with locomotives (all other vehicles will not read this bool) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
227 |
EngList_Create(&WP(w, replaceveh_d).list[0]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
228 |
EngList_Create(&WP(w, replaceveh_d).list[1]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
229 |
WP(w, replaceveh_d).update_left = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
230 |
WP(w, replaceveh_d).update_right = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
231 |
WP(w, replaceveh_d).init_lists = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
232 |
WP(w, replaceveh_d).sel_engine[0] = INVALID_ENGINE; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
233 |
WP(w, replaceveh_d).sel_engine[1] = INVALID_ENGINE; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
234 |
break; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
235 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
236 |
case WE_PAINT: { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
237 |
if (WP(w, replaceveh_d).update_left || WP(w, replaceveh_d).update_right) GenerateLists(w); |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
238 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
239 |
Player *p = GetPlayer(_local_player); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
240 |
EngineID selected_id[2]; |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
241 |
const GroupID selected_group = WP(w,replaceveh_d).sel_group; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
242 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
243 |
selected_id[0] = WP(w, replaceveh_d).sel_engine[0]; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
244 |
selected_id[1] = WP(w, replaceveh_d).sel_engine[1]; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
245 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
246 |
/* Disable the "Start Replacing" button if: |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
247 |
* Either list is empty |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
248 |
* or The selected replacement engine has a replacement (to prevent loops) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
249 |
* or The right list (new replacement) has the existing replacement vehicle selected */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
250 |
SetWindowWidgetDisabledState(w, 4, |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
251 |
selected_id[0] == INVALID_ENGINE || |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
252 |
selected_id[1] == INVALID_ENGINE || |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
253 |
EngineReplacementForPlayer(p, selected_id[1], selected_group) != INVALID_ENGINE || |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
254 |
EngineReplacementForPlayer(p, selected_id[0], selected_group) == selected_id[1]); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
255 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
256 |
/* Disable the "Stop Replacing" button if: |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
257 |
* The left list (existing vehicle) is empty |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
258 |
* or The selected vehicle has no replacement set up */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
259 |
SetWindowWidgetDisabledState(w, 6, |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
260 |
selected_id[0] == INVALID_ENGINE || |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
261 |
!EngineHasReplacementForPlayer(p, selected_id[0], selected_group)); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
262 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
263 |
/* now the actual drawing of the window itself takes place */ |
6206
67358999d80d
(svn r8621) -Codechange: assigned new numbers to the VEH_(type) enum so that VEH_Train is 0, VEH_Road is 1 and so on
bjarni
parents:
6195
diff
changeset
|
264 |
SetDParam(0, _vehicle_type_names[w->window_number]); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
265 |
|
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
266 |
if (w->window_number == VEH_TRAIN) { |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
267 |
/* set on/off for renew_keep_length */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
268 |
SetDParam(1, p->renew_keep_length ? STR_CONFIG_PATCHES_ON : STR_CONFIG_PATCHES_OFF); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
269 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
270 |
/* set wagon/engine button */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
271 |
SetDParam(2, WP(w, replaceveh_d).wagon_btnstate ? STR_ENGINES : STR_WAGONS); |
6894
02bad4ca936e
(svn r9528) -Fix r8610: don't try to modify non-existent widgets (many thanks to Bruce Perence, the libefence developer)
glx
parents:
6585
diff
changeset
|
272 |
|
02bad4ca936e
(svn r9528) -Fix r8610: don't try to modify non-existent widgets (many thanks to Bruce Perence, the libefence developer)
glx
parents:
6585
diff
changeset
|
273 |
/* sets the colour of that art thing */ |
02bad4ca936e
(svn r9528) -Fix r8610: don't try to modify non-existent widgets (many thanks to Bruce Perence, the libefence developer)
glx
parents:
6585
diff
changeset
|
274 |
w->widget[13].color = _player_colors[_local_player]; |
02bad4ca936e
(svn r9528) -Fix r8610: don't try to modify non-existent widgets (many thanks to Bruce Perence, the libefence developer)
glx
parents:
6585
diff
changeset
|
275 |
w->widget[16].color = _player_colors[_local_player]; |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
276 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
277 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
278 |
DrawWindowWidgets(w); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
279 |
|
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
280 |
if (w->window_number == VEH_TRAIN) { |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
281 |
/* Draw the selected railtype in the pulldown menu */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
282 |
RailType railtype = _railtype_selected_in_replace_gui; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
283 |
DrawString(157, w->widget[14].top + 1, _rail_types_list[railtype], 0x10); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
284 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
285 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
286 |
/* sets up the string for the vehicle that is being replaced to */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
287 |
if (selected_id[0] != INVALID_ENGINE) { |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
288 |
if (!EngineHasReplacementForPlayer(p, selected_id[0], selected_group)) { |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
289 |
SetDParam(0, STR_NOT_REPLACING); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
290 |
} else { |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
291 |
SetDParam(0, GetCustomEngineName(EngineReplacementForPlayer(p, selected_id[0], selected_group))); |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
292 |
} |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
293 |
} else { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
294 |
SetDParam(0, STR_NOT_REPLACING_VEHICLE_SELECTED); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
295 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
296 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
297 |
DrawString(145, w->widget[5].top + 1, STR_02BD, 0x10); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
298 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
299 |
/* Draw the lists */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
300 |
for(byte i = 0; i < 2; i++) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
301 |
uint16 x = i == 0 ? 2 : 230; // at what X offset |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
302 |
EngineList list = WP(w, replaceveh_d).list[i]; // which list to draw |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
303 |
EngineID start = i == 0 ? w->vscroll.pos : w->vscroll2.pos; // what is the offset for the start (scrolling) |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
304 |
EngineID end = min((i == 0 ? w->vscroll.cap : w->vscroll2.cap) + start, EngList_Count(&list)); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
305 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
306 |
/* Do the actual drawing */ |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
307 |
DrawEngineList((VehicleType)w->window_number, x, 15, list, start, end, WP(w, replaceveh_d).sel_engine[i], i == 0, selected_group); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
308 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
309 |
/* Also draw the details if an engine is selected */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
310 |
if (WP(w, replaceveh_d).sel_engine[i] != INVALID_ENGINE) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
311 |
const Widget *wi = &w->widget[i == 0 ? 3 : 11]; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
312 |
DrawVehiclePurchaseInfo(wi->left + 2, wi->top + 1, wi->right - wi->left - 2, WP(w, replaceveh_d).sel_engine[i]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
313 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
314 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
315 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
316 |
} break; // end of paint |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
317 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
318 |
case WE_CLICK: { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
319 |
switch (e->we.click.widget) { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
320 |
case 12: |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
321 |
WP(w, replaceveh_d).wagon_btnstate = !(WP(w, replaceveh_d).wagon_btnstate); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
322 |
WP(w, replaceveh_d).update_left = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
323 |
WP(w, replaceveh_d).init_lists = true; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
324 |
SetWindowDirty(w); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
325 |
break; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
326 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
327 |
case 14: |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
328 |
case 15: /* Railtype selection dropdown menu */ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
329 |
ShowDropDownMenu(w, _rail_types_list, _railtype_selected_in_replace_gui, 15, 0, ~GetPlayer(_local_player)->avail_railtypes); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
330 |
break; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
331 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
332 |
case 17: /* toggle renew_keep_length */ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
333 |
DoCommandP(0, 5, GetPlayer(_local_player)->renew_keep_length ? 0 : 1, NULL, CMD_SET_AUTOREPLACE); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
334 |
break; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
335 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
336 |
case 4: { /* Start replacing */ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
337 |
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0]; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
338 |
EngineID veh_to = WP(w, replaceveh_d).sel_engine[1]; |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
339 |
DoCommandP(0, 3 + (WP(w, replaceveh_d).sel_group << 16) , veh_from + (veh_to << 16), NULL, CMD_SET_AUTOREPLACE); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
340 |
} break; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
341 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
342 |
case 6: { /* Stop replacing */ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
343 |
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0]; |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
344 |
DoCommandP(0, 3 + (WP(w, replaceveh_d).sel_group << 16), veh_from + (INVALID_ENGINE << 16), NULL, CMD_SET_AUTOREPLACE); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
345 |
} break; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
346 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
347 |
case 7: |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
348 |
case 9: { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
349 |
uint i = (e->we.click.pt.y - 14) / w->resize.step_height; |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
350 |
uint16 click_scroll_pos = e->we.click.widget == 7 ? w->vscroll.pos : w->vscroll2.pos; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
351 |
uint16 click_scroll_cap = e->we.click.widget == 7 ? w->vscroll.cap : w->vscroll2.cap; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
352 |
byte click_side = e->we.click.widget == 7 ? 0 : 1; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
353 |
uint16 engine_count = EngList_Count(&WP(w, replaceveh_d).list[click_side]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
354 |
|
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
355 |
if (i < click_scroll_cap) { |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
356 |
i += click_scroll_pos; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
357 |
EngineID e = engine_count > i ? WP(w, replaceveh_d).list[click_side][i] : INVALID_ENGINE; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
358 |
if (e == WP(w, replaceveh_d).sel_engine[click_side]) break; // we clicked the one we already selected |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
359 |
WP(w, replaceveh_d).sel_engine[click_side] = e; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
360 |
if (click_side == 0) { |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
361 |
WP(w, replaceveh_d).update_right = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
362 |
WP(w, replaceveh_d).init_lists = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
363 |
} |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
364 |
SetWindowDirty(w); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
365 |
} |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
366 |
break; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
367 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
368 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
369 |
break; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
370 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
371 |
|
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
372 |
case WE_DROPDOWN_SELECT: { /* we have selected a dropdown item in the list */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
373 |
RailType temp = (RailType)e->we.dropdown.index; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
374 |
if (temp == _railtype_selected_in_replace_gui) break; // we didn't select a new one. No need to change anything |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
375 |
_railtype_selected_in_replace_gui = temp; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
376 |
/* Reset scrollbar positions */ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
377 |
w->vscroll.pos = 0; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
378 |
w->vscroll2.pos = 0; |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
379 |
/* Rebuild the lists */ |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
380 |
WP(w, replaceveh_d).update_left = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
381 |
WP(w, replaceveh_d).update_right = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
382 |
WP(w, replaceveh_d).init_lists = true; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
383 |
SetWindowDirty(w); |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
384 |
} break; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
385 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
386 |
case WE_RESIZE: |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
387 |
w->vscroll.cap += e->we.sizing.diff.y / (int)w->resize.step_height; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
388 |
w->vscroll2.cap += e->we.sizing.diff.y / (int)w->resize.step_height; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
389 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
390 |
w->widget[7].data = (w->vscroll.cap << 8) + 1; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
391 |
w->widget[9].data = (w->vscroll2.cap << 8) + 1; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
392 |
break; |
6195
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
393 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
394 |
case WE_INVALIDATE_DATA: |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
395 |
if (_rebuild_left_list) WP(w, replaceveh_d).update_left = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
396 |
if (_rebuild_right_list) WP(w, replaceveh_d).update_right = true; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
397 |
SetWindowDirty(w); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
398 |
break; |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
399 |
|
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
400 |
case WE_DESTROY: |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
401 |
EngList_RemoveAll(&WP(w, replaceveh_d).list[0]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
402 |
EngList_RemoveAll(&WP(w, replaceveh_d).list[1]); |
b90cf92697b9
(svn r8610) -Codechange/Feature: rewrote the list handling in the autoreplace window
bjarni
parents:
6144
diff
changeset
|
403 |
break; |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
404 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
405 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
406 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
407 |
static const Widget _replace_rail_vehicle_widgets[] = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
408 |
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
409 |
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
410 |
{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
411 |
{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 227, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
412 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 240, 251, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
413 |
{ WWT_PANEL, RESIZE_TB, 14, 139, 316, 228, 239, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
414 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 240, 251, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
415 |
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_REPLACE_HELP_LEFT_ARRAY}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
416 |
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
417 |
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 125, 0x801, STR_REPLACE_HELP_RIGHT_ARRAY}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
418 |
{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
419 |
{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 126, 227, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
420 |
// train specific stuff |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
421 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 228, 239, STR_REPLACE_ENGINE_WAGON_SELECT, STR_REPLACE_ENGINE_WAGON_SELECT_HELP}, // widget 12 |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
422 |
{ WWT_PANEL, RESIZE_TB, 14, 139, 153, 240, 251, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
423 |
{ WWT_PANEL, RESIZE_TB, 14, 154, 277, 240, 251, 0x0, STR_REPLACE_HELP_RAILTYPE}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
424 |
{ WWT_TEXTBTN, RESIZE_TB, 14, 278, 289, 240, 251, STR_0225, STR_REPLACE_HELP_RAILTYPE}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
425 |
{ WWT_PANEL, RESIZE_TB, 14, 290, 305, 240, 251, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
426 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 317, 455, 228, 239, STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
427 |
// end of train specific stuff |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
428 |
{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 240, 251, STR_NULL, STR_RESIZE_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
429 |
{ WIDGETS_END}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
430 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
431 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
432 |
static const Widget _replace_road_vehicle_widgets[] = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
433 |
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
434 |
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
435 |
{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
436 |
{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 217, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
437 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 218, 229, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
438 |
{ WWT_PANEL, RESIZE_TB, 14, 139, 305, 218, 229, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
439 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 218, 229, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
440 |
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_REPLACE_HELP_LEFT_ARRAY}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
441 |
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
442 |
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 125, 0x801, STR_REPLACE_HELP_RIGHT_ARRAY}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
443 |
{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
444 |
{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 126, 217, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
445 |
{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 218, 229, STR_NULL, STR_RESIZE_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
446 |
{ WIDGETS_END}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
447 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
448 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
449 |
static const Widget _replace_ship_aircraft_vehicle_widgets[] = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
450 |
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
451 |
{ WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
452 |
{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
453 |
{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 110, 201, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
454 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 202, 213, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
455 |
{ WWT_PANEL, RESIZE_TB, 14, 139, 305, 202, 213, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
456 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 202, 213, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
457 |
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 109, 0x401, STR_REPLACE_HELP_LEFT_ARRAY}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
458 |
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
459 |
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 109, 0x401, STR_REPLACE_HELP_RIGHT_ARRAY}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
460 |
{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
461 |
{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 110, 201, 0x0, STR_NULL}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
462 |
{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 202, 213, STR_NULL, STR_RESIZE_BUTTON}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
463 |
{ WIDGETS_END}, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
464 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
465 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
466 |
static const WindowDesc _replace_rail_vehicle_desc = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
467 |
WDP_AUTO, WDP_AUTO, 456, 252, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
6119
diff
changeset
|
468 |
WC_REPLACE_VEHICLE, WC_NONE, |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
469 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
470 |
_replace_rail_vehicle_widgets, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
471 |
ReplaceVehicleWndProc |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
472 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
473 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
474 |
static const WindowDesc _replace_road_vehicle_desc = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
475 |
WDP_AUTO, WDP_AUTO, 456, 230, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
6119
diff
changeset
|
476 |
WC_REPLACE_VEHICLE, WC_NONE, |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
477 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
478 |
_replace_road_vehicle_widgets, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
479 |
ReplaceVehicleWndProc |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
480 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
481 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
482 |
static const WindowDesc _replace_ship_aircraft_vehicle_desc = { |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
483 |
WDP_AUTO, WDP_AUTO, 456, 214, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
6119
diff
changeset
|
484 |
WC_REPLACE_VEHICLE, WC_NONE, |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
485 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
486 |
_replace_ship_aircraft_vehicle_widgets, |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
487 |
ReplaceVehicleWndProc |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
488 |
}; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
489 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
490 |
|
7134
c5a90dd41166
(svn r9869) -Codechange: replace some bytes with VehicleType, i.e. more type strictness.
rubidium
parents:
6894
diff
changeset
|
491 |
void ShowReplaceVehicleWindow(VehicleType vehicletype) |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
492 |
{ |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
493 |
Window *w; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
494 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
495 |
DeleteWindowById(WC_REPLACE_VEHICLE, vehicletype); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
496 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
497 |
switch (vehicletype) { |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
498 |
case VEH_TRAIN: |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
499 |
w = AllocateWindowDescFront(&_replace_rail_vehicle_desc, vehicletype); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
500 |
w->vscroll.cap = 8; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
501 |
w->resize.step_height = 14; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
502 |
WP(w, replaceveh_d).wagon_btnstate = true; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
503 |
break; |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
504 |
case VEH_ROAD: |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
505 |
w = AllocateWindowDescFront(&_replace_road_vehicle_desc, vehicletype); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
506 |
w->vscroll.cap = 8; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
507 |
w->resize.step_height = 14; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
508 |
break; |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
509 |
case VEH_SHIP: |
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6573
diff
changeset
|
510 |
case VEH_AIRCRAFT: |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
511 |
w = AllocateWindowDescFront(&_replace_ship_aircraft_vehicle_desc, vehicletype); |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
512 |
w->vscroll.cap = 4; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
513 |
w->resize.step_height = 24; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
514 |
break; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
515 |
default: return; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
516 |
} |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
517 |
|
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
518 |
w->caption_color = _local_player; |
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
519 |
w->vscroll2.cap = w->vscroll.cap; // these two are always the same |
7139
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
520 |
WP(w, replaceveh_d).sel_group = DEFAULT_GROUP; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
521 |
} |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
522 |
|
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
523 |
void ShowReplaceGroupVehicleWindow(GroupID id_g, VehicleType vehicletype) |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
524 |
{ |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
525 |
Window *w; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
526 |
|
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
527 |
DeleteWindowById(WC_REPLACE_VEHICLE, vehicletype); |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
528 |
|
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
529 |
switch (vehicletype) { |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
530 |
default: NOT_REACHED(); |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
531 |
case VEH_TRAIN: |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
532 |
w = AllocateWindowDescFront(&_replace_rail_vehicle_desc, vehicletype); |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
533 |
w->vscroll.cap = 8; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
534 |
w->resize.step_height = 14; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
535 |
WP(w, replaceveh_d).wagon_btnstate = true; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
536 |
break; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
537 |
case VEH_ROAD: |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
538 |
w = AllocateWindowDescFront(&_replace_road_vehicle_desc, vehicletype); |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
539 |
w->vscroll.cap = 8; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
540 |
w->resize.step_height = 14; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
541 |
break; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
542 |
case VEH_SHIP: |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
543 |
case VEH_AIRCRAFT: |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
544 |
w = AllocateWindowDescFront(&_replace_ship_aircraft_vehicle_desc, vehicletype); |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
545 |
w->vscroll.cap = 4; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
546 |
w->resize.step_height = 24; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
547 |
break; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
548 |
} |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
549 |
|
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
550 |
w->caption_color = _local_player; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
551 |
WP(w, replaceveh_d).sel_group = id_g; |
4ae3ab180d05
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
7134
diff
changeset
|
552 |
w->vscroll2.cap = w->vscroll.cap; // these two are always the same |
6059
14d457867d5e
(svn r8370) -Revert (r8363): the autoreplace GUI move cleared the file history
bjarni
parents:
6052
diff
changeset
|
553 |
} |