author | peter1138 |
Sun, 03 Aug 2008 17:35:08 +0000 | |
changeset 9834 | 7474149531c1 |
parent 9760 | 92202f8b455a |
child 9862 | f801c7d84353 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9111
48ce04029fe4
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
8969
diff
changeset
|
3 |
/** @file order_gui.cpp GUI related to orders. */ |
6351
8d0b6cce8d6d
(svn r9390) -Documentation : correct Doxygen of comments and @file inclusion. This time, brought to you by the letter O
belugas
parents:
6329
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
862800791170
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1857
diff
changeset
|
6 |
#include "openttd.h" |
3144
33e42feae531
(svn r3763) Adapt to the new 'map accessors go in foo_map.h'-scheme
tron
parents:
3071
diff
changeset
|
7 |
#include "road_map.h" |
3315
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
3269
diff
changeset
|
8 |
#include "station_map.h" |
0 | 9 |
#include "gui.h" |
8107
bb7deea89175
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8106
diff
changeset
|
10 |
#include "window_gui.h" |
8785
871586967963
(svn r12489) -Codechange: split station.h into station_base.h and station_func.h.
rubidium
parents:
8784
diff
changeset
|
11 |
#include "station_base.h" |
0 | 12 |
#include "town.h" |
8116
8da76dcb3287
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
8114
diff
changeset
|
13 |
#include "command_func.h" |
8224
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8211
diff
changeset
|
14 |
#include "viewport_func.h" |
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8211
diff
changeset
|
15 |
#include "gfx_func.h" |
8962
1b263c69799d
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
8961
diff
changeset
|
16 |
#include "depot_base.h" |
1542
62a03537ad0b
(svn r2046) -Codechange: moved all waypoint code to waypoint.c/waypoint.h
truelight
parents:
1530
diff
changeset
|
17 |
#include "waypoint.h" |
2676
59b65b4fb480
(svn r3218) -Feature: Multiheaded train engines will now stay in the same train
bjarni
parents:
2668
diff
changeset
|
18 |
#include "train.h" |
3392
469942e8a0ca
(svn r4200) -Codechange: Make use of water map accessors when getting the Index of a Ship Depot. TODO: Store the depot index in the map
celestar
parents:
3387
diff
changeset
|
19 |
#include "water_map.h" |
4668
f7256d0e7682
(svn r6562) -Codechange: merged the vehicle list window widget arrays
bjarni
parents:
4634
diff
changeset
|
20 |
#include "vehicle_gui.h" |
6980
c7c4f3bf5901
(svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents:
6923
diff
changeset
|
21 |
#include "timetable.h" |
6091
c8827d9ae04a
(svn r8826) -Codechange: Replace _cargoc's separate arrays with a regular struct array (with accessor) and implement new initialization method using cargo labels.
peter1138
parents:
5984
diff
changeset
|
22 |
#include "cargotype.h" |
8114
dd6d21dc99c1
(svn r11675) -Codechange: split the string types from the string functions.
rubidium
parents:
8108
diff
changeset
|
23 |
#include "strings_func.h" |
8131
160939e24ed3
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium
parents:
8121
diff
changeset
|
24 |
#include "window_func.h" |
8144
65cec0877b78
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8139
diff
changeset
|
25 |
#include "vehicle_func.h" |
8211
29a8510dfd62
(svn r11774) -Change: do not include variables.h in a header when it is not needed.
rubidium
parents:
8144
diff
changeset
|
26 |
#include "settings_type.h" |
8254
1496654ca5e7
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8237
diff
changeset
|
27 |
#include "player_func.h" |
8787
41d9d5adbe87
(svn r12495) -Codechange: reduce the dependency on newgrf_station.h (especially because newgrf_station.h includes a lot of stuff).
rubidium
parents:
8785
diff
changeset
|
28 |
#include "newgrf_cargo.h" |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
29 |
#include "widgets/dropdown_func.h" |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
30 |
#include "textbuf_gui.h" |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
31 |
#include "string_func.h" |
8962
1b263c69799d
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
8961
diff
changeset
|
32 |
#include "depot_base.h" |
9127
14f21c5954ee
(svn r12987) -Codechange: split viewport and tile selection.
rubidium
parents:
9116
diff
changeset
|
33 |
#include "tilehighlight_func.h" |
0 | 34 |
|
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
35 |
#include "table/sprites.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
36 |
#include "table/strings.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
37 |
|
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
38 |
enum OrderWindowWidgets { |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
39 |
ORDER_WIDGET_CLOSEBOX = 0, |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
40 |
ORDER_WIDGET_CAPTION, |
6980
c7c4f3bf5901
(svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents:
6923
diff
changeset
|
41 |
ORDER_WIDGET_TIMETABLE_VIEW, |
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
42 |
ORDER_WIDGET_ORDER_LIST, |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
43 |
ORDER_WIDGET_SCROLLBAR, |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
44 |
ORDER_WIDGET_SKIP, |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
45 |
ORDER_WIDGET_DELETE, |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
46 |
ORDER_WIDGET_NON_STOP_DROPDOWN, |
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
47 |
ORDER_WIDGET_NON_STOP, |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
48 |
ORDER_WIDGET_GOTO_DROPDOWN, |
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
49 |
ORDER_WIDGET_GOTO, |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
50 |
ORDER_WIDGET_FULL_LOAD_DROPDOWN, |
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
51 |
ORDER_WIDGET_FULL_LOAD, |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
52 |
ORDER_WIDGET_UNLOAD_DROPDOWN, |
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
53 |
ORDER_WIDGET_UNLOAD, |
5829
580c0b309122
(svn r8395) -Cleanup: [orders window] moved the refit button two places up, so the order of the widget array fits the placement on the screen
bjarni
parents:
5828
diff
changeset
|
54 |
ORDER_WIDGET_REFIT, |
8874
db064c1eb143
(svn r12641) -Codechange: do not use the same button for two completely distinct tasks, just make an extra button for it and hide them when not needed.
rubidium
parents:
8873
diff
changeset
|
55 |
ORDER_WIDGET_SERVICE, |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
56 |
ORDER_WIDGET_COND_VARIABLE, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
57 |
ORDER_WIDGET_COND_COMPARATOR, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
58 |
ORDER_WIDGET_COND_VALUE, |
8874
db064c1eb143
(svn r12641) -Codechange: do not use the same button for two completely distinct tasks, just make an extra button for it and hide them when not needed.
rubidium
parents:
8873
diff
changeset
|
59 |
ORDER_WIDGET_RESIZE_BAR, |
5828
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
60 |
ORDER_WIDGET_SHARED_ORDER_LIST, |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
61 |
ORDER_WIDGET_RESIZE, |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
62 |
}; |
e7b332dac5e8
(svn r8394) -Cleanup: added an enum with widget names to the orders window
bjarni
parents:
5745
diff
changeset
|
63 |
|
8876
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
64 |
/** Order load types that could be given to station orders. */ |
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
65 |
static const StringID _station_load_types[][5] = { |
8845
f9ef3bb70e47
(svn r12595) -Codechange: hide Order's flags in the last few cases.
rubidium
parents:
8843
diff
changeset
|
66 |
{ |
8876
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
67 |
STR_EMPTY, |
8885
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
68 |
INVALID_STRING_ID, |
8876
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
69 |
STR_ORDER_FULL_LOAD, |
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
70 |
STR_ORDER_FULL_LOAD_ANY, |
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
71 |
STR_ORDER_NO_LOAD, |
8845
f9ef3bb70e47
(svn r12595) -Codechange: hide Order's flags in the last few cases.
rubidium
parents:
8843
diff
changeset
|
72 |
}, { |
8885
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
73 |
STR_ORDER_UNLOAD, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
74 |
INVALID_STRING_ID, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
75 |
STR_ORDER_UNLOAD_FULL_LOAD, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
76 |
STR_ORDER_UNLOAD_FULL_LOAD_ANY, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
77 |
STR_ORDER_UNLOAD_NO_LOAD, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
78 |
}, { |
8876
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
79 |
STR_ORDER_TRANSFER, |
8885
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
80 |
INVALID_STRING_ID, |
8876
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
81 |
STR_ORDER_TRANSFER_FULL_LOAD, |
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
82 |
STR_ORDER_TRANSFER_FULL_LOAD_ANY, |
8885
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
83 |
STR_ORDER_TRANSFER_NO_LOAD, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
84 |
}, { |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
85 |
/* Unload and transfer do not work together. */ |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
86 |
INVALID_STRING_ID, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
87 |
INVALID_STRING_ID, |
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
88 |
INVALID_STRING_ID, |
8876
e5bf23efad87
(svn r12643) -Codechange: be more explicit about the orders a vehicle has (non stop and full load are ambiguous and depend on some patch settings).
rubidium
parents:
8874
diff
changeset
|
89 |
INVALID_STRING_ID, |
8883
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
90 |
}, { |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
91 |
STR_ORDER_NO_UNLOAD, |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
92 |
INVALID_STRING_ID, |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
93 |
STR_ORDER_NO_UNLOAD_FULL_LOAD, |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
94 |
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY, |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
95 |
INVALID_STRING_ID, |
8845
f9ef3bb70e47
(svn r12595) -Codechange: hide Order's flags in the last few cases.
rubidium
parents:
8843
diff
changeset
|
96 |
} |
1935
164d58b9137c
(svn r2441) -Feature: You can now give transfer order to set up feeder systems
celestar
parents:
1901
diff
changeset
|
97 |
}; |
164d58b9137c
(svn r2441) -Feature: You can now give transfer order to set up feeder systems
celestar
parents:
1901
diff
changeset
|
98 |
|
8888
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
99 |
static const StringID _order_non_stop_drowdown[] = { |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
100 |
STR_ORDER_GO_TO, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
101 |
STR_ORDER_GO_NON_STOP_TO, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
102 |
STR_ORDER_GO_VIA, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
103 |
STR_ORDER_GO_NON_STOP_VIA, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
104 |
INVALID_STRING_ID |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
105 |
}; |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
106 |
|
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
107 |
static const StringID _order_full_load_drowdown[] = { |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
108 |
STR_ORDER_DROP_LOAD_IF_POSSIBLE, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
109 |
STR_EMPTY, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
110 |
STR_ORDER_DROP_FULL_LOAD_ALL, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
111 |
STR_ORDER_DROP_FULL_LOAD_ANY, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
112 |
STR_ORDER_DROP_NO_LOADING, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
113 |
INVALID_STRING_ID |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
114 |
}; |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
115 |
|
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
116 |
static const StringID _order_unload_drowdown[] = { |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
117 |
STR_ORDER_DROP_UNLOAD_IF_ACCEPTED, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
118 |
STR_ORDER_DROP_UNLOAD, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
119 |
STR_ORDER_DROP_TRANSFER, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
120 |
STR_EMPTY, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
121 |
STR_ORDER_DROP_NO_UNLOADING, |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
122 |
INVALID_STRING_ID |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
123 |
}; |
19fb42a62eb4
(svn r12655) -Change: show the current state in the drop down 'buttons'.
rubidium
parents:
8887
diff
changeset
|
124 |
|
8894
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
125 |
static const StringID _order_goto_dropdown[] = { |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
126 |
STR_ORDER_GO_TO, |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
127 |
STR_ORDER_GO_TO_NEAREST_DEPOT, |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
128 |
STR_ORDER_CONDITIONAL, |
8894
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
129 |
INVALID_STRING_ID |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
130 |
}; |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
131 |
|
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
132 |
static const StringID _order_goto_dropdown_aircraft[] = { |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
133 |
STR_ORDER_GO_TO, |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
134 |
STR_ORDER_GO_TO_NEAREST_HANGAR, |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
135 |
STR_ORDER_CONDITIONAL, |
8894
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
136 |
INVALID_STRING_ID |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
137 |
}; |
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
138 |
|
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
139 |
static const StringID _order_conditional_variable[] = { |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
140 |
STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
141 |
STR_ORDER_CONDITIONAL_RELIABILITY, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
142 |
STR_ORDER_CONDITIONAL_MAX_SPEED, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
143 |
STR_ORDER_CONDITIONAL_AGE, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
144 |
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE, |
8903
04bcd0e7d4d6
(svn r12670) -Add: unconditional/always order 'jump/skip' variable.
rubidium
parents:
8900
diff
changeset
|
145 |
STR_ORDER_CONDITIONAL_UNCONDITIONALLY, |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
146 |
INVALID_STRING_ID, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
147 |
}; |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
148 |
|
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
149 |
static const StringID _order_conditional_condition[] = { |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
150 |
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
151 |
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
152 |
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
153 |
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
154 |
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
155 |
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
156 |
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
157 |
STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
158 |
INVALID_STRING_ID, |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
159 |
}; |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
160 |
|
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
161 |
extern uint ConvertSpeedToDisplaySpeed(uint speed); |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
162 |
extern uint ConvertDisplaySpeedToSpeed(uint speed); |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
163 |
|
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
164 |
|
9639
58530f2b5fdc
(svn r13702) -Fix: do not overflow the order/timetable window when 'long' orders are displayed.
rubidium
parents:
9485
diff
changeset
|
165 |
void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int y, bool selected, bool timetable, int width) |
8929
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
166 |
{ |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
167 |
StringID str = (v->cur_order_index == order_index) ? STR_8805 : STR_8804; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
168 |
SetDParam(6, STR_EMPTY); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
169 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
170 |
switch (order->GetType()) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
171 |
case OT_DUMMY: |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
172 |
SetDParam(1, STR_INVALID_ORDER); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
173 |
SetDParam(2, order->GetDestination()); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
174 |
break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
175 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
176 |
case OT_GOTO_STATION: { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
177 |
OrderLoadFlags load = order->GetLoadType(); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
178 |
OrderUnloadFlags unload = order->GetUnloadType(); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
179 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
180 |
SetDParam(1, STR_GO_TO_STATION); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
181 |
SetDParam(2, STR_ORDER_GO_TO + ((v->type == VEH_TRAIN || v->type == VEH_ROAD) ? order->GetNonStopType() : 0)); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
182 |
SetDParam(3, order->GetDestination()); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
183 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
184 |
if (timetable) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
185 |
SetDParam(4, STR_EMPTY); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
186 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
187 |
if (order->wait_time > 0) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
188 |
SetDParam(6, STR_TIMETABLE_STAY_FOR); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
189 |
SetTimetableParams(7, 8, order->wait_time); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
190 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
191 |
} else { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
192 |
SetDParam(4, (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) ? STR_EMPTY : _station_load_types[unload][load]); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
193 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
194 |
} break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
195 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
196 |
case OT_GOTO_DEPOT: |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
197 |
if (v->type == VEH_AIRCRAFT) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
198 |
if (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
199 |
SetDParam(1, STR_GO_TO_NEAREST_DEPOT); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
200 |
SetDParam(3, STR_ORDER_NEAREST_HANGAR); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
201 |
} else { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
202 |
SetDParam(1, STR_GO_TO_HANGAR); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
203 |
SetDParam(3, order->GetDestination()); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
204 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
205 |
SetDParam(4, STR_EMPTY); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
206 |
} else { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
207 |
if (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
208 |
SetDParam(1, STR_GO_TO_NEAREST_DEPOT); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
209 |
SetDParam(3, STR_ORDER_NEAREST_DEPOT); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
210 |
} else { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
211 |
SetDParam(1, STR_GO_TO_DEPOT); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
212 |
SetDParam(3, GetDepot(order->GetDestination())->town_index); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
213 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
214 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
215 |
switch (v->type) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
216 |
case VEH_TRAIN: SetDParam(4, STR_ORDER_TRAIN_DEPOT); break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
217 |
case VEH_ROAD: SetDParam(4, STR_ORDER_ROAD_DEPOT); break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
218 |
case VEH_SHIP: SetDParam(4, STR_ORDER_SHIP_DEPOT); break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
219 |
default: NOT_REACHED(); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
220 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
221 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
222 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
223 |
if (order->GetDepotOrderType() & ODTFB_SERVICE) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
224 |
SetDParam(2, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_SERVICE_NON_STOP_AT : STR_ORDER_SERVICE_AT); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
225 |
} else { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
226 |
SetDParam(2, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_GO_NON_STOP_TO : STR_ORDER_GO_TO); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
227 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
228 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
229 |
if (!timetable && order->IsRefit()) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
230 |
SetDParam(6, STR_REFIT_ORDER); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
231 |
SetDParam(7, GetCargo(order->GetRefitCargo())->name); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
232 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
233 |
break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
234 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
235 |
case OT_GOTO_WAYPOINT: |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
236 |
SetDParam(1, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
237 |
SetDParam(2, order->GetDestination()); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
238 |
break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
239 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
240 |
case OT_CONDITIONAL: |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
241 |
SetDParam(2, order->GetConditionSkipToOrder() + 1); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
242 |
if (order->GetConditionVariable() == OCV_UNCONDITIONALLY) { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
243 |
SetDParam(1, STR_CONDITIONAL_UNCONDITIONAL); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
244 |
} else { |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
245 |
OrderConditionComparator occ = order->GetConditionComparator(); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
246 |
SetDParam(1, (occ == OCC_IS_TRUE || occ == OCC_IS_FALSE) ? STR_CONDITIONAL_TRUE_FALSE : STR_CONDITIONAL_NUM); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
247 |
SetDParam(3, STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE + order->GetConditionVariable()); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
248 |
SetDParam(4, STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS + occ); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
249 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
250 |
uint value = order->GetConditionValue(); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
251 |
if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
252 |
SetDParam(5, value); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
253 |
} |
9641
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
254 |
|
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
255 |
if (timetable && order->wait_time > 0) { |
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
256 |
SetDParam(6, STR_TIMETABLE_AND_TRAVEL_FOR); |
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
257 |
SetTimetableParams(7, 8, order->wait_time); |
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
258 |
} else { |
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
259 |
SetDParam(6, STR_EMPTY); |
a854c7cf6af5
(svn r13704) -Fix: make timetables work more sensible when used in conjunction with conditional orders, i.e. make it possibly to tell how long to travel to the next destination if you jump.
rubidium
parents:
9639
diff
changeset
|
260 |
} |
8929
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
261 |
break; |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
262 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
263 |
default: NOT_REACHED(); |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
264 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
265 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
266 |
SetDParam(0, order_index + 1); |
9639
58530f2b5fdc
(svn r13702) -Fix: do not overflow the order/timetable window when 'long' orders are displayed.
rubidium
parents:
9485
diff
changeset
|
267 |
DrawStringTruncated(2, y, str, selected ? TC_WHITE : TC_BLACK, width); |
8929
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
268 |
} |
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
269 |
|
ebb6e864b545
(svn r12699) -Codechange: Unify the order drawing code for orders and timetables.
maedhros
parents:
8919
diff
changeset
|
270 |
|
2436
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2186
diff
changeset
|
271 |
static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile) |
0 | 272 |
{ |
558
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
273 |
Order order; |
3387
a779ba33aab4
(svn r4195) - Codechange: Initialize order variables to avoid a compiler warning. These are unused anyway... (smells of r3476-7, but not the same)
peter1138
parents:
3338
diff
changeset
|
274 |
order.next = NULL; |
a779ba33aab4
(svn r4195) - Codechange: Initialize order variables to avoid a compiler warning. These are unused anyway... (smells of r3476-7, but not the same)
peter1138
parents:
3338
diff
changeset
|
275 |
order.index = 0; |
0 | 276 |
|
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
277 |
/* check depot first */ |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
278 |
if (_settings_game.order.gotodepot) { |
1214
8262981ac274
(svn r1718) Use the enum TileType as parameter/return type for [GS]etTileType() instead of plain int.
tron
parents:
1209
diff
changeset
|
279 |
switch (GetTileType(tile)) { |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
280 |
case MP_RAILWAY: |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
281 |
if (v->type == VEH_TRAIN && IsTileOwner(tile, _local_player)) { |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
282 |
if (IsRailDepot(tile)) { |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
283 |
order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS); |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
284 |
if (_settings_client.gui.new_nonstop) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS); |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
285 |
return order; |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
286 |
} |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
287 |
} |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
288 |
break; |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
289 |
|
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
290 |
case MP_ROAD: |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
291 |
if (IsRoadDepot(tile) && v->type == VEH_ROAD && IsTileOwner(tile, _local_player)) { |
8853
3266f0374302
(svn r12615) -Codechange: rename some enums related to depot orders to make it more clear that they are no loading/unloading flags. Also add more type strictness.
rubidium
parents:
8848
diff
changeset
|
292 |
order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS); |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
293 |
if (_settings_client.gui.new_nonstop) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS); |
558
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
294 |
return order; |
560
60e198893a41
(svn r962) Fixed a problem with the new order system due to missing '{}' (another place)
Celestar
parents:
559
diff
changeset
|
295 |
} |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
296 |
break; |
0 | 297 |
|
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
298 |
case MP_STATION: |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
299 |
if (v->type != VEH_AIRCRAFT) break; |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
300 |
if (IsHangar(tile) && IsTileOwner(tile, _local_player)) { |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
301 |
order.MakeGoToDepot(GetStationIndex(tile), ODTFB_PART_OF_ORDERS); |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
302 |
return order; |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
303 |
} |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
304 |
break; |
0 | 305 |
|
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
306 |
case MP_WATER: |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
307 |
if (v->type != VEH_SHIP) break; |
8961
fb0848956387
(svn r12753) -Codechange: do not use IsDepotTypeTile() where simpler function can be used
smatz
parents:
8954
diff
changeset
|
308 |
if (IsShipDepot(tile) && IsTileOwner(tile, _local_player)) { |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
309 |
TileIndex tile2 = GetOtherShipDepotTile(tile); |
3392
469942e8a0ca
(svn r4200) -Codechange: Make use of water map accessors when getting the Index of a Ship Depot. TODO: Store the depot index in the map
celestar
parents:
3387
diff
changeset
|
310 |
|
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
311 |
order.MakeGoToDepot(GetDepotByTile(tile < tile2 ? tile : tile2)->index, ODTFB_PART_OF_ORDERS); |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
312 |
return order; |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
313 |
} |
1214
8262981ac274
(svn r1718) Use the enum TileType as parameter/return type for [GS]etTileType() instead of plain int.
tron
parents:
1209
diff
changeset
|
314 |
|
8262981ac274
(svn r1718) Use the enum TileType as parameter/return type for [GS]etTileType() instead of plain int.
tron
parents:
1209
diff
changeset
|
315 |
default: |
8262981ac274
(svn r1718) Use the enum TileType as parameter/return type for [GS]etTileType() instead of plain int.
tron
parents:
1209
diff
changeset
|
316 |
break; |
0 | 317 |
} |
318 |
} |
|
319 |
||
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
320 |
/* check waypoint */ |
1901
03bf9bf99319
(svn r2407) Use {Get,Is}TileOwner to get/check the owner of a tile and fix some bogus reads of _map_owner
tron
parents:
1891
diff
changeset
|
321 |
if (IsTileType(tile, MP_RAILWAY) && |
6259
471b91a4b1d8
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6091
diff
changeset
|
322 |
v->type == VEH_TRAIN && |
1901
03bf9bf99319
(svn r2407) Use {Get,Is}TileOwner to get/check the owner of a tile and fix some bogus reads of _map_owner
tron
parents:
1891
diff
changeset
|
323 |
IsTileOwner(tile, _local_player) && |
2668
c0f1828b89e4
(svn r3210) -Codechange: use IsRailWaypoint where possible (instead of magicnumbers)
truelight
parents:
2643
diff
changeset
|
324 |
IsRailWaypoint(tile)) { |
8836
f6f1ea3d7e93
(svn r12584) -Codechange: do not access the order type directly.
rubidium
parents:
8787
diff
changeset
|
325 |
order.MakeGoToWaypoint(GetWaypointByTile(tile)->index); |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
326 |
if (_settings_client.gui.new_nonstop) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS); |
558
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
327 |
return order; |
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
328 |
} |
319
1769185de5f5
(svn r329) Fix: [ 1035066 ] 'Allow goto depot' turned off, no checkpoints in orders
dominik
parents:
193
diff
changeset
|
329 |
|
1035
812f837ee03f
(svn r1536) Move GET_TILEHEIGHT, GET_TILETYPE and IS_TILETYPE to map.h, turn them into inline functions and add some asserts
tron
parents:
1024
diff
changeset
|
330 |
if (IsTileType(tile, MP_STATION)) { |
3315
c9d989783c55
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
tron
parents:
3269
diff
changeset
|
331 |
StationID st_index = GetStationIndex(tile); |
4171 | 332 |
const Station *st = GetStation(st_index); |
0 | 333 |
|
334 |
if (st->owner == _current_player || st->owner == OWNER_NONE) { |
|
335 |
byte facil; |
|
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
336 |
(facil = FACIL_DOCK, v->type == VEH_SHIP) || |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
337 |
(facil = FACIL_TRAIN, v->type == VEH_TRAIN) || |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
338 |
(facil = FACIL_AIRPORT, v->type == VEH_AIRCRAFT) || |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
339 |
(facil = FACIL_BUS_STOP, v->type == VEH_ROAD && IsCargoInClass(v->cargo_type, CC_PASSENGERS)) || |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
340 |
(facil = FACIL_TRUCK_STOP, 1); |
558
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
341 |
if (st->facilities & facil) { |
8836
f6f1ea3d7e93
(svn r12584) -Codechange: do not access the order type directly.
rubidium
parents:
8787
diff
changeset
|
342 |
order.MakeGoToStation(st_index); |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
343 |
if (_settings_client.gui.new_nonstop && (v->type == VEH_TRAIN || v->type == VEH_ROAD)) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS); |
558
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
344 |
return order; |
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
345 |
} |
0 | 346 |
} |
347 |
} |
|
348 |
||
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
349 |
/* not found */ |
6263
6bd0726c74e2
(svn r9072) -Codechange: [Orders] added methods to orders to free them and check if they are in use
bjarni
parents:
6259
diff
changeset
|
350 |
order.Free(); |
558
1ae2a752501e
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
darkvater
parents:
555
diff
changeset
|
351 |
return order; |
0 | 352 |
} |
353 |
||
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
354 |
struct OrdersWindow : public Window { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
355 |
private: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
356 |
/** Under what reason are we using the PlaceObject functionality? */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
357 |
enum OrderPlaceObjectState { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
358 |
OPOS_GOTO, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
359 |
OPOS_CONDITIONAL, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
360 |
}; |
0 | 361 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
362 |
int selected_order; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
363 |
OrderPlaceObjectState goto_type; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
364 |
const Vehicle *vehicle; |
0 | 365 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
366 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
367 |
* Return the memorised selected order. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
368 |
* @return the memorised order if it is a vaild one |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
369 |
* else return the number of orders |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
370 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
371 |
int OrderGetSel() |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
372 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
373 |
int num = this->selected_order; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
374 |
return (num >= 0 && num < vehicle->num_orders) ? num : vehicle->num_orders; |
0 | 375 |
} |
376 |
||
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
377 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
378 |
* Calculate the selected order. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
379 |
* The calculation is based on the relative (to the window) y click position and |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
380 |
* the position of the scrollbar. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
381 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
382 |
* @param y Y-value of the click relative to the window origin |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
383 |
* @param v current vehicle |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
384 |
* @return the new selected order if the order is valid else return that |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
385 |
* an invalid one has been selected. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
386 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
387 |
int GetOrderFromPt(int y) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
388 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
389 |
/* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
390 |
* Calculation description: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
391 |
* 15 = 14 (w->widget[ORDER_WIDGET_ORDER_LIST].top) + 1 (frame-line) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
392 |
* 10 = order text hight |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
393 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
394 |
int sel = (y - this->widget[ORDER_WIDGET_ORDER_LIST].top - 1) / 10; |
0 | 395 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
396 |
if ((uint)sel >= this->vscroll.cap) return INVALID_ORDER; |
1000
db05d7d665b4
(svn r1498) -Feature: Addded keyboard shortcuts for the order window
Celestar
parents:
995
diff
changeset
|
397 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
398 |
sel += this->vscroll.pos; |
8869
8a3dac8dc505
(svn r12636) -Codechange: make CmdModifyOrder a little more flexible and remove 'hack' that used the full load flag to set the service if needed flag.
rubidium
parents:
8861
diff
changeset
|
399 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
400 |
return (sel <= vehicle->num_orders && sel >= 0) ? sel : INVALID_ORDER; |
8881
ad608e8305ad
(svn r12648) -Feature: allow four different non-stop types in a single game instead of two. The "TTDP compatible order" setting now only sets the default behaviour of new trains.
rubidium
parents:
8877
diff
changeset
|
401 |
} |
8894
66472a0a6eb2
(svn r12661) -Add: ability to send a vehicle (using default orders) to the nearest depot.
rubidium
parents:
8893
diff
changeset
|
402 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
403 |
bool HandleOrderVehClick(const Vehicle *u) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
404 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
405 |
if (u->type != this->vehicle->type) return false; |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
406 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
407 |
if (!u->IsPrimaryVehicle()) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
408 |
u = u->First(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
409 |
if (!u->IsPrimaryVehicle()) return false; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
410 |
} |
8869
8a3dac8dc505
(svn r12636) -Codechange: make CmdModifyOrder a little more flexible and remove 'hack' that used the full load flag to set the service if needed flag.
rubidium
parents:
8861
diff
changeset
|
411 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
412 |
/* v is vehicle getting orders. Only copy/clone orders if vehicle doesn't have any orders yet |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
413 |
* obviously if you press CTRL on a non-empty orders vehicle you know what you are doing */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
414 |
if (this->vehicle->num_orders != 0 && _ctrl_pressed == 0) return false; |
8885
647cda0e9312
(svn r12652) -Codechange: rework the order GUI a little more to make it a little more clear that 'transfer' is just an unload type.
rubidium
parents:
8883
diff
changeset
|
415 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
416 |
if (DoCommandP(this->vehicle->tile, this->vehicle->index | (u->index << 16), _ctrl_pressed ? CO_SHARE : CO_COPY, NULL, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
417 |
_ctrl_pressed ? CMD_CLONE_ORDER | CMD_MSG(STR_CANT_SHARE_ORDER_LIST) : CMD_CLONE_ORDER | CMD_MSG(STR_CANT_COPY_ORDER_LIST))) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
418 |
this->selected_order = -1; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
419 |
ResetObjectToPlace(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
420 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
421 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
422 |
return true; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
423 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
424 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
425 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
426 |
* Handle the click on the goto button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
427 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
428 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
429 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
430 |
static void OrderClick_Goto(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
431 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
432 |
w->InvalidateWidget(ORDER_WIDGET_GOTO); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
433 |
w->ToggleWidgetLoweredState(ORDER_WIDGET_GOTO); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
434 |
if (w->IsWidgetLowered(ORDER_WIDGET_GOTO)) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
435 |
_place_clicked_vehicle = NULL; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
436 |
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, VHM_RECT, w); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
437 |
w->goto_type = OPOS_GOTO; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
438 |
} else { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
439 |
ResetObjectToPlace(); |
8883
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
440 |
} |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
441 |
} |
baee554a9449
(svn r12650) -Feature: ability to force a vehicle to not load at a station.
rubidium
parents:
8882
diff
changeset
|
442 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
443 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
444 |
* Handle the click on the full load button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
445 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
446 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
447 |
* @param load_type the way to load. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
448 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
449 |
static void OrderClick_FullLoad(OrdersWindow *w, int load_type) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
450 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
451 |
VehicleOrderID sel_ord = w->OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
452 |
const Order *order = GetVehicleOrder(w->vehicle, sel_ord); |
1024
5e446b5b3ec5
(svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents:
1019
diff
changeset
|
453 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
454 |
if (order == NULL || order->GetLoadType() == load_type) return; |
8869
8a3dac8dc505
(svn r12636) -Codechange: make CmdModifyOrder a little more flexible and remove 'hack' that used the full load flag to set the service if needed flag.
rubidium
parents:
8861
diff
changeset
|
455 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
456 |
if (load_type < 0) { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
457 |
load_type = order->GetLoadType() == OLF_LOAD_IF_POSSIBLE ? OLF_FULL_LOAD_ANY : OLF_LOAD_IF_POSSIBLE; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
458 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
459 |
DoCommandP(w->vehicle->tile, w->vehicle->index + (sel_ord << 16), MOF_LOAD | (load_type << 4), NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
460 |
} |
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
461 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
462 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
463 |
* Handle the click on the service. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
464 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
465 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
466 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
467 |
static void OrderClick_Service(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
468 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
469 |
DoCommandP(w->vehicle->tile, w->vehicle->index + (w->OrderGetSel() << 16), MOF_DEPOT_ACTION, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
4712
4335ad42e163
(svn r6624) -Feature: added ability to add refit commands to vehicle orders (can only be done in goto depot orders)
bjarni
parents:
4709
diff
changeset
|
470 |
} |
1000
db05d7d665b4
(svn r1498) -Feature: Addded keyboard shortcuts for the order window
Celestar
parents:
995
diff
changeset
|
471 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
472 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
473 |
* Handle the click on the service in nearest depot button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
474 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
475 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
476 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
477 |
static void OrderClick_NearestDepot(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
478 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
479 |
Order order; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
480 |
order.next = NULL; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
481 |
order.index = 0; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
482 |
order.MakeGoToDepot(0, ODTFB_PART_OF_ORDERS); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
483 |
order.SetDepotActionType(ODATFB_NEAREST_DEPOT); |
6832
fec0caeac27d
(svn r10071) -Feature [FS#828]: moving of orders (skidd13).
rubidium
parents:
6807
diff
changeset
|
484 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
485 |
DoCommandP(w->vehicle->tile, w->vehicle->index + (w->OrderGetSel() << 16), order.Pack(), NULL, CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
486 |
} |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
487 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
488 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
489 |
* Handle the click on the conditional order button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
490 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
491 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
492 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
493 |
static void OrderClick_Conditional(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
494 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
495 |
w->InvalidateWidget(ORDER_WIDGET_GOTO); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
496 |
w->LowerWidget(ORDER_WIDGET_GOTO); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
497 |
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, VHM_RECT, w); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
498 |
w->goto_type = OPOS_CONDITIONAL; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
499 |
} |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
500 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
501 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
502 |
* Handle the click on the unload button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
503 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
504 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
505 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
506 |
static void OrderClick_Unload(OrdersWindow *w, int unload_type) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
507 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
508 |
VehicleOrderID sel_ord = w->OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
509 |
const Order *order = GetVehicleOrder(w->vehicle, sel_ord); |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
510 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
511 |
if (order == NULL || order->GetUnloadType() == unload_type) return; |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
512 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
513 |
if (unload_type < 0) { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
514 |
unload_type = order->GetUnloadType() == OUF_UNLOAD_IF_POSSIBLE ? OUFB_UNLOAD : OUF_UNLOAD_IF_POSSIBLE; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
515 |
} |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
516 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
517 |
DoCommandP(w->vehicle->tile, w->vehicle->index + (sel_ord << 16), MOF_UNLOAD | (unload_type << 4), NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
518 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
519 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
520 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
521 |
* Handle the click on the nonstop button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
522 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
523 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
524 |
* @param non_stop what non-stop type to use; -1 to use the 'next' one. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
525 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
526 |
static void OrderClick_Nonstop(OrdersWindow *w, int non_stop) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
527 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
528 |
VehicleOrderID sel_ord = w->OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
529 |
const Order *order = GetVehicleOrder(w->vehicle, sel_ord); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
530 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
531 |
if (order == NULL || order->GetNonStopType() == non_stop) return; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
532 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
533 |
/* Keypress if negative, so 'toggle' to the next */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
534 |
if (non_stop < 0) { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
535 |
non_stop = order->GetNonStopType() ^ ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
536 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
537 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
538 |
w->InvalidateWidget(ORDER_WIDGET_NON_STOP); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
539 |
DoCommandP(w->vehicle->tile, w->vehicle->index + (sel_ord << 16), MOF_NON_STOP | non_stop << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
540 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
541 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
542 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
543 |
* Handle the click on the transfer button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
544 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
545 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
546 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
547 |
static void OrderClick_Transfer(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
548 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
549 |
VehicleOrderID sel_ord = w->OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
550 |
const Order *order = GetVehicleOrder(w->vehicle, sel_ord); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
551 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
552 |
if (order == NULL) return; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
553 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
554 |
DoCommandP(w->vehicle->tile, w->vehicle->index + (sel_ord << 16), MOF_UNLOAD | ((order->GetUnloadType() & ~OUFB_NO_UNLOAD) ^ OUFB_TRANSFER) << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
555 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
556 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
557 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
558 |
* Handle the click on the skip button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
559 |
* If ctrl is pressed skip to selected order. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
560 |
* Else skip to current order + 1 |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
561 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
562 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
563 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
564 |
static void OrderClick_Skip(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
565 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
566 |
/* Don't skip when there's nothing to skip */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
567 |
if (_ctrl_pressed && w->vehicle->cur_order_index == w->OrderGetSel()) return; |
9475
cf1925ffac71
(svn r13409) -Fix: division by zero when one would press 'd' (skip order) when there's no order.
rubidium
parents:
9413
diff
changeset
|
568 |
if (w->vehicle->num_orders == 0) return; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
569 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
570 |
DoCommandP(w->vehicle->tile, w->vehicle->index, _ctrl_pressed ? w->OrderGetSel() : ((w->vehicle->cur_order_index + 1) % w->vehicle->num_orders), |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
571 |
NULL, CMD_SKIP_TO_ORDER | CMD_MSG(_ctrl_pressed ? STR_CAN_T_SKIP_TO_ORDER : STR_CAN_T_SKIP_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
572 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
573 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
574 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
575 |
* Handle the click on the unload button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
576 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
577 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
578 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
579 |
static void OrderClick_Delete(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
580 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
581 |
DoCommandP(w->vehicle->tile, w->vehicle->index, w->OrderGetSel(), NULL, CMD_DELETE_ORDER | CMD_MSG(STR_8834_CAN_T_DELETE_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
582 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
583 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
584 |
/** |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
585 |
* Handle the click on the refit button. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
586 |
* If ctrl is pressed cancel refitting. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
587 |
* Else show the refit window. |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
588 |
* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
589 |
* @param w current window |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
590 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
591 |
static void OrderClick_Refit(OrdersWindow *w, int i) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
592 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
593 |
if (_ctrl_pressed) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
594 |
/* Cancel refitting */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
595 |
DoCommandP(w->vehicle->tile, w->vehicle->index, (w->OrderGetSel() << 16) | (CT_NO_REFIT << 8) | CT_NO_REFIT, NULL, CMD_ORDER_REFIT); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
596 |
} else { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
597 |
ShowVehicleRefitWindow(w->vehicle, w->OrderGetSel()); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
598 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
599 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
600 |
typedef void Handler(OrdersWindow*, int); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
601 |
struct KeyToEvent { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
602 |
uint16 keycode; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
603 |
Handler *proc; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
604 |
}; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
605 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
606 |
public: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
607 |
OrdersWindow(const WindowDesc *desc, const Vehicle *v) : Window(desc, v->index) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
608 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
609 |
this->caption_color = v->owner; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
610 |
this->vscroll.cap = 6; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
611 |
this->resize.step_height = 10; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
612 |
this->selected_order = -1; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
613 |
this->vehicle = v; |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
614 |
if (_settings_game.order.timetabling) { |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
615 |
this->widget[ORDER_WIDGET_CAPTION].right -= 61; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
616 |
} else { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
617 |
this->HideWidget(ORDER_WIDGET_TIMETABLE_VIEW); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
618 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
619 |
this->FindWindowPlacementAndResize(desc); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
620 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
621 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
622 |
virtual void OnPaint() |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
623 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
624 |
bool shared_orders = this->vehicle->IsOrderListShared(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
625 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
626 |
SetVScrollCount(this, this->vehicle->num_orders + 1); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
627 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
628 |
int sel = OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
629 |
const Order *order = GetVehicleOrder(this->vehicle, sel); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
630 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
631 |
if (this->vehicle->owner == _local_player) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
632 |
/* Set the strings for the dropdown boxes. */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
633 |
this->widget[ORDER_WIDGET_COND_VARIABLE].data = _order_conditional_variable[order == NULL ? 0 : order->GetConditionVariable()]; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
634 |
this->widget[ORDER_WIDGET_COND_COMPARATOR].data = _order_conditional_condition[order == NULL ? 0 : order->GetConditionComparator()]; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
635 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
636 |
/* skip */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
637 |
this->SetWidgetDisabledState(ORDER_WIDGET_SKIP, this->vehicle->num_orders <= 1); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
638 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
639 |
/* delete */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
640 |
this->SetWidgetDisabledState(ORDER_WIDGET_DELETE, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
641 |
(uint)this->vehicle->num_orders + ((shared_orders || this->vehicle->num_orders != 0) ? 1 : 0) <= (uint)this->selected_order); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
642 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
643 |
/* non-stop only for trains */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
644 |
this->SetWidgetDisabledState(ORDER_WIDGET_NON_STOP, (this->vehicle->type != VEH_TRAIN && this->vehicle->type != VEH_ROAD) || order == NULL); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
645 |
this->SetWidgetDisabledState(ORDER_WIDGET_NON_STOP_DROPDOWN, this->IsWidgetDisabled(ORDER_WIDGET_NON_STOP)); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
646 |
this->SetWidgetDisabledState(ORDER_WIDGET_FULL_LOAD, order == NULL || (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) != 0); // full load |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
647 |
this->SetWidgetDisabledState(ORDER_WIDGET_FULL_LOAD_DROPDOWN, this->IsWidgetDisabled(ORDER_WIDGET_FULL_LOAD)); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
648 |
this->SetWidgetDisabledState(ORDER_WIDGET_UNLOAD, order == NULL || (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) != 0); // unload |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
649 |
this->SetWidgetDisabledState(ORDER_WIDGET_UNLOAD_DROPDOWN, this->IsWidgetDisabled(ORDER_WIDGET_UNLOAD)); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
650 |
/* Disable list of vehicles with the same shared orders if there is no list */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
651 |
this->SetWidgetDisabledState(ORDER_WIDGET_SHARED_ORDER_LIST, !shared_orders || this->vehicle->orders == NULL); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
652 |
this->SetWidgetDisabledState(ORDER_WIDGET_REFIT, order == NULL); // Refit |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
653 |
this->SetWidgetDisabledState(ORDER_WIDGET_SERVICE, order == NULL); // Refit |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
654 |
this->HideWidget(ORDER_WIDGET_REFIT); // Refit |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
655 |
this->HideWidget(ORDER_WIDGET_SERVICE); // Service |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
656 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
657 |
this->HideWidget(ORDER_WIDGET_COND_VARIABLE); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
658 |
this->HideWidget(ORDER_WIDGET_COND_COMPARATOR); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
659 |
this->HideWidget(ORDER_WIDGET_COND_VALUE); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
660 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
661 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
662 |
this->ShowWidget(ORDER_WIDGET_NON_STOP_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
663 |
this->ShowWidget(ORDER_WIDGET_NON_STOP); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
664 |
this->ShowWidget(ORDER_WIDGET_UNLOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
665 |
this->ShowWidget(ORDER_WIDGET_UNLOAD); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
666 |
this->ShowWidget(ORDER_WIDGET_FULL_LOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
667 |
this->ShowWidget(ORDER_WIDGET_FULL_LOAD); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
668 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
669 |
this->RaiseWidget(ORDER_WIDGET_NON_STOP); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
670 |
this->RaiseWidget(ORDER_WIDGET_FULL_LOAD); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
671 |
this->RaiseWidget(ORDER_WIDGET_UNLOAD); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
672 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
673 |
if (order != NULL) { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
674 |
this->SetWidgetLoweredState(ORDER_WIDGET_NON_STOP, order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
675 |
switch (order->GetType()) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
676 |
case OT_GOTO_STATION: |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
677 |
if (!GetStation(order->GetDestination())->IsBuoy()) { |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
678 |
this->SetWidgetLoweredState(ORDER_WIDGET_FULL_LOAD, order->GetLoadType() == OLF_FULL_LOAD_ANY); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
679 |
this->SetWidgetLoweredState(ORDER_WIDGET_UNLOAD, order->GetUnloadType() == OUFB_UNLOAD); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
680 |
break; |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
681 |
} |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
682 |
/* Fall-through */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
683 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
684 |
case OT_GOTO_WAYPOINT: |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
685 |
this->DisableWidget(ORDER_WIDGET_FULL_LOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
686 |
this->DisableWidget(ORDER_WIDGET_FULL_LOAD); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
687 |
this->DisableWidget(ORDER_WIDGET_UNLOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
688 |
this->DisableWidget(ORDER_WIDGET_UNLOAD); |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
689 |
break; |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
690 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
691 |
case OT_GOTO_DEPOT: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
692 |
/* Remove unload and replace it with refit */ |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
693 |
this->HideWidget(ORDER_WIDGET_UNLOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
694 |
this->HideWidget(ORDER_WIDGET_UNLOAD); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
695 |
this->HideWidget(ORDER_WIDGET_FULL_LOAD_DROPDOWN); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
696 |
this->HideWidget(ORDER_WIDGET_FULL_LOAD); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
697 |
this->ShowWidget(ORDER_WIDGET_REFIT); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
698 |
this->ShowWidget(ORDER_WIDGET_SERVICE); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
699 |
this->SetWidgetLoweredState(ORDER_WIDGET_SERVICE, order->GetDepotOrderType() & ODTFB_SERVICE); |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
700 |
break; |
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
701 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
702 |
case OT_CONDITIONAL: { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
703 |
this->HideWidget(ORDER_WIDGET_NON_STOP_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
704 |
this->HideWidget(ORDER_WIDGET_NON_STOP); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
705 |
this->HideWidget(ORDER_WIDGET_UNLOAD); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
706 |
this->HideWidget(ORDER_WIDGET_UNLOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
707 |
this->HideWidget(ORDER_WIDGET_FULL_LOAD); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
708 |
this->HideWidget(ORDER_WIDGET_FULL_LOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
709 |
this->ShowWidget(ORDER_WIDGET_COND_VARIABLE); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
710 |
this->ShowWidget(ORDER_WIDGET_COND_COMPARATOR); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
711 |
this->ShowWidget(ORDER_WIDGET_COND_VALUE); |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
712 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
713 |
OrderConditionVariable ocv = order->GetConditionVariable(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
714 |
this->SetWidgetDisabledState(ORDER_WIDGET_COND_COMPARATOR, ocv == OCV_UNCONDITIONALLY); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
715 |
this->SetWidgetDisabledState(ORDER_WIDGET_COND_VALUE, ocv == OCV_REQUIRES_SERVICE || ocv == OCV_UNCONDITIONALLY); |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
716 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
717 |
uint value = order->GetConditionValue(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
718 |
if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
719 |
SetDParam(1, value); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
720 |
} break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
721 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
722 |
default: // every other orders |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
723 |
this->DisableWidget(ORDER_WIDGET_NON_STOP_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
724 |
this->DisableWidget(ORDER_WIDGET_NON_STOP); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
725 |
this->DisableWidget(ORDER_WIDGET_FULL_LOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
726 |
this->DisableWidget(ORDER_WIDGET_FULL_LOAD); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
727 |
this->DisableWidget(ORDER_WIDGET_UNLOAD_DROPDOWN); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
728 |
this->DisableWidget(ORDER_WIDGET_UNLOAD); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
729 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
730 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
731 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
732 |
SetDParam(0, this->vehicle->index); |
9273
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9258
diff
changeset
|
733 |
this->DrawWidgets(); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
734 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
735 |
int y = 15; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
736 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
737 |
int i = this->vscroll.pos; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
738 |
order = GetVehicleOrder(this->vehicle, i); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
739 |
StringID str; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
740 |
while (order != NULL) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
741 |
/* Don't draw anything if it extends past the end of the window. */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
742 |
if (i - this->vscroll.pos >= this->vscroll.cap) break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
743 |
|
9639
58530f2b5fdc
(svn r13702) -Fix: do not overflow the order/timetable window when 'long' orders are displayed.
rubidium
parents:
9485
diff
changeset
|
744 |
DrawOrderString(this->vehicle, order, i, y, i == this->selected_order, false, this->widget[ORDER_WIDGET_ORDER_LIST].right - 4); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
745 |
y += 10; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
746 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
747 |
i++; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
748 |
order = order->next; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
749 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
750 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
751 |
if (i - this->vscroll.pos < this->vscroll.cap) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
752 |
str = shared_orders ? STR_END_OF_SHARED_ORDERS : STR_882A_END_OF_ORDERS; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
753 |
DrawString(2, y, str, (i == this->selected_order) ? TC_WHITE : TC_BLACK); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
754 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
755 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
756 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
757 |
virtual void OnClick(Point pt, int widget) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
758 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
759 |
if (this->widget[widget].type != WWT_DROPDOWN) HideDropDownMenu(this); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
760 |
switch (widget) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
761 |
case ORDER_WIDGET_ORDER_LIST: { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
762 |
ResetObjectToPlace(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
763 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
764 |
int sel = this->GetOrderFromPt(pt.y); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
765 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
766 |
if (sel == INVALID_ORDER) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
767 |
/* This was a click on an empty part of the orders window, so |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
768 |
* deselect the currently selected order. */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
769 |
this->selected_order = -1; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
770 |
this->SetDirty(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
771 |
return; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
772 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
773 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
774 |
if (_ctrl_pressed && sel < this->vehicle->num_orders) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
775 |
const Order *ord = GetVehicleOrder(this->vehicle, sel); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
776 |
TileIndex xy; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
777 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
778 |
switch (ord->GetType()) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
779 |
case OT_GOTO_STATION: xy = GetStation(ord->GetDestination())->xy ; break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
780 |
case OT_GOTO_DEPOT: xy = (this->vehicle->type == VEH_AIRCRAFT) ? GetStation(ord->GetDestination())->xy : GetDepot(ord->GetDestination())->xy; break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
781 |
case OT_GOTO_WAYPOINT: xy = GetWaypoint(ord->GetDestination())->xy; break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
782 |
default: xy = 0; break; |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
783 |
} |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
784 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
785 |
if (xy != 0) ScrollMainWindowToTile(xy); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
786 |
return; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
787 |
} else { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
788 |
if (sel == this->selected_order) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
789 |
/* Deselect clicked order */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
790 |
this->selected_order = -1; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
791 |
} else { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
792 |
/* Select clicked order */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
793 |
this->selected_order = sel; |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
794 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
795 |
if (this->vehicle->owner == _local_player) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
796 |
/* Activate drag and drop */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
797 |
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, VHM_DRAG, this); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
798 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
799 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
800 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
801 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
802 |
this->SetDirty(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
803 |
} break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
804 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
805 |
case ORDER_WIDGET_SKIP: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
806 |
OrderClick_Skip(this, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
807 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
808 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
809 |
case ORDER_WIDGET_DELETE: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
810 |
OrderClick_Delete(this, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
811 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
812 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
813 |
case ORDER_WIDGET_NON_STOP: |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
814 |
OrderClick_Nonstop(this, -1); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
815 |
break; |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
816 |
|
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
817 |
case ORDER_WIDGET_NON_STOP_DROPDOWN: { |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
818 |
const Order *o = GetVehicleOrder(this->vehicle, this->OrderGetSel()); |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
819 |
ShowDropDownMenu(this, _order_non_stop_drowdown, o->GetNonStopType(), ORDER_WIDGET_NON_STOP_DROPDOWN, 0, o->IsType(OT_GOTO_STATION) ? 0 : (o->IsType(OT_GOTO_WAYPOINT) ? 3 : 12)); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
820 |
} break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
821 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
822 |
case ORDER_WIDGET_GOTO: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
823 |
OrderClick_Goto(this, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
824 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
825 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
826 |
case ORDER_WIDGET_GOTO_DROPDOWN: |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
827 |
ShowDropDownMenu(this, this->vehicle->type == VEH_AIRCRAFT ? _order_goto_dropdown_aircraft : _order_goto_dropdown, 0, ORDER_WIDGET_GOTO_DROPDOWN, 0, 0); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
828 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
829 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
830 |
case ORDER_WIDGET_FULL_LOAD: |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
831 |
OrderClick_FullLoad(this, -1); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
832 |
break; |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
833 |
|
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
834 |
case ORDER_WIDGET_FULL_LOAD_DROPDOWN: |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
835 |
ShowDropDownMenu(this, _order_full_load_drowdown, GetVehicleOrder(this->vehicle, this->OrderGetSel())->GetLoadType(), ORDER_WIDGET_FULL_LOAD_DROPDOWN, 0, 2); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
836 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
837 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
838 |
case ORDER_WIDGET_UNLOAD: |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
839 |
OrderClick_Unload(this, -1); |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
840 |
break; |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
841 |
|
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
842 |
case ORDER_WIDGET_UNLOAD_DROPDOWN: |
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
843 |
ShowDropDownMenu(this, _order_unload_drowdown, GetVehicleOrder(this->vehicle, this->OrderGetSel())->GetUnloadType(), ORDER_WIDGET_UNLOAD_DROPDOWN, 0, 8); |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
844 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
845 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
846 |
case ORDER_WIDGET_REFIT: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
847 |
OrderClick_Refit(this, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
848 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
849 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
850 |
case ORDER_WIDGET_SERVICE: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
851 |
OrderClick_Service(this, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
852 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
853 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
854 |
case ORDER_WIDGET_TIMETABLE_VIEW: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
855 |
ShowTimetableWindow(this->vehicle); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
856 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
857 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
858 |
case ORDER_WIDGET_COND_VARIABLE: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
859 |
ShowDropDownMenu(this, _order_conditional_variable, GetVehicleOrder(this->vehicle, this->OrderGetSel())->GetConditionVariable(), ORDER_WIDGET_COND_VARIABLE, 0, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
860 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
861 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
862 |
case ORDER_WIDGET_COND_COMPARATOR: { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
863 |
const Order *o = GetVehicleOrder(this->vehicle, this->OrderGetSel()); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
864 |
ShowDropDownMenu(this, _order_conditional_condition, o->GetConditionComparator(), ORDER_WIDGET_COND_COMPARATOR, 0, (o->GetConditionVariable() == OCV_REQUIRES_SERVICE) ? 0x3F : 0xC0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
865 |
} break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
866 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
867 |
case ORDER_WIDGET_COND_VALUE: { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
868 |
const Order *order = GetVehicleOrder(this->vehicle, this->OrderGetSel()); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
869 |
uint value = order->GetConditionValue(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
870 |
if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
871 |
SetDParam(0, value); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
872 |
ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_ORDER_CONDITIONAL_VALUE_CAPT, 5, 100, this, CS_NUMERAL); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
873 |
} break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
874 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
875 |
case ORDER_WIDGET_SHARED_ORDER_LIST: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
876 |
ShowVehicleListWindow(this->vehicle); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
877 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
878 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
879 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
880 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
881 |
virtual void OnQueryTextFinished(char *str) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
882 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
883 |
if (!StrEmpty(str)) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
884 |
VehicleOrderID sel = this->OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
885 |
uint value = atoi(str); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
886 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
887 |
switch (GetVehicleOrder(this->vehicle, sel)->GetConditionVariable()) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
888 |
case OCV_MAX_SPEED: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
889 |
value = ConvertDisplaySpeedToSpeed(value); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
890 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
891 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
892 |
case OCV_RELIABILITY: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
893 |
case OCV_LOAD_PERCENTAGE: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
894 |
value = Clamp(value, 0, 100); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
895 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
896 |
default: |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
897 |
break; |
6832
fec0caeac27d
(svn r10071) -Feature [FS#828]: moving of orders (skidd13).
rubidium
parents:
6807
diff
changeset
|
898 |
} |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
899 |
DoCommandP(this->vehicle->tile, this->vehicle->index + (sel << 16), MOF_COND_VALUE | Clamp(value, 0, 2047) << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
900 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
901 |
} |
0 | 902 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
903 |
virtual void OnDropdownSelect(int widget, int index) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
904 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
905 |
switch (widget) { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
906 |
case ORDER_WIDGET_NON_STOP_DROPDOWN: |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
907 |
OrderClick_Nonstop(this, index); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
908 |
break; |
0 | 909 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
910 |
case ORDER_WIDGET_FULL_LOAD_DROPDOWN: |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
911 |
OrderClick_FullLoad(this, index); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
912 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
913 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
914 |
case ORDER_WIDGET_UNLOAD_DROPDOWN: |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
915 |
OrderClick_Unload(this, index); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
916 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
917 |
|
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
918 |
case ORDER_WIDGET_GOTO_DROPDOWN: |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
919 |
switch (index) { |
9485
23ccef6cec89
(svn r13444) -Codechange: make the order GUI somewhat more efficient. The most used options can be done with a single click now.
rubidium
parents:
9475
diff
changeset
|
920 |
case 0: OrderClick_Goto(this, 0); break; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
921 |
case 1: OrderClick_NearestDepot(this, 0); break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
922 |
case 2: OrderClick_Conditional(this, 0); break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
923 |
default: NOT_REACHED(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
924 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
925 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
926 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
927 |
case ORDER_WIDGET_COND_VARIABLE: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
928 |
DoCommandP(this->vehicle->tile, this->vehicle->index + (this->OrderGetSel() << 16), MOF_COND_VARIABLE | index << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
929 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
930 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
931 |
case ORDER_WIDGET_COND_COMPARATOR: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
932 |
DoCommandP(this->vehicle->tile, this->vehicle->index + (this->OrderGetSel() << 16), MOF_COND_COMPARATOR | index << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER)); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
933 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
934 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
935 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
936 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
937 |
virtual void OnDragDrop(Point pt, int widget) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
938 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
939 |
switch (widget) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
940 |
case ORDER_WIDGET_ORDER_LIST: { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
941 |
int from_order = this->OrderGetSel(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
942 |
int to_order = this->GetOrderFromPt(pt.y); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
943 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
944 |
if (!(from_order == to_order || from_order == INVALID_ORDER || from_order > this->vehicle->num_orders || to_order == INVALID_ORDER || to_order > this->vehicle->num_orders) && |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
945 |
DoCommandP(this->vehicle->tile, this->vehicle->index, from_order | (to_order << 16), NULL, CMD_MOVE_ORDER | CMD_MSG(STR_CAN_T_MOVE_THIS_ORDER))) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
946 |
this->selected_order = -1; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
947 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
948 |
} break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
949 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
950 |
case ORDER_WIDGET_DELETE: |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
951 |
OrderClick_Delete(this, 0); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
952 |
break; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
953 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
954 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
955 |
ResetObjectToPlace(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
956 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
957 |
|
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9273
diff
changeset
|
958 |
virtual EventState OnKeyPress(uint16 key, uint16 keycode) |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
959 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
960 |
static const KeyToEvent keytoevent[] = { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
961 |
{'D', OrderClick_Skip}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
962 |
{'F', OrderClick_Delete}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
963 |
{'G', OrderClick_Goto}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
964 |
{'H', OrderClick_Nonstop}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
965 |
{'J', OrderClick_FullLoad}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
966 |
{'K', OrderClick_Unload}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
967 |
//{'?', OrderClick_Transfer}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
968 |
//('?', OrderClick_Service}, |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
969 |
}; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
970 |
|
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9273
diff
changeset
|
971 |
if (this->vehicle->owner != _local_player) return ES_NOT_HANDLED; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
972 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
973 |
for (uint i = 0; i < lengthof(keytoevent); i++) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
974 |
if (keycode == keytoevent[i].keycode) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
975 |
keytoevent[i].proc(this, -1); |
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9273
diff
changeset
|
976 |
return ES_HANDLED; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
977 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
978 |
} |
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9273
diff
changeset
|
979 |
return ES_NOT_HANDLED; |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
980 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
981 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
982 |
virtual void OnPlaceObject(Point pt, TileIndex tile) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
983 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
984 |
if (this->goto_type == OPOS_GOTO) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
985 |
/* check if we're clicking on a vehicle first.. clone orders in that case. */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
986 |
const Vehicle *v = CheckMouseOverVehicle(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
987 |
if (v != NULL && this->HandleOrderVehClick(v)) return; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
988 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
989 |
const Order cmd = GetOrderCmdFromTile(this->vehicle, tile); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
990 |
if (!cmd.IsValid()) return; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
991 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
992 |
if (DoCommandP(this->vehicle->tile, this->vehicle->index + (this->OrderGetSel() << 16), cmd.Pack(), NULL, CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER))) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
993 |
if (this->selected_order != -1) this->selected_order++; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
994 |
ResetObjectToPlace(); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
995 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
996 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
997 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
998 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
999 |
virtual void OnPlaceObjectAbort() |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1000 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1001 |
if (this->goto_type == OPOS_CONDITIONAL) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1002 |
this->goto_type = OPOS_GOTO; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1003 |
if (_cursor.pos.x >= (this->left + this->widget[ORDER_WIDGET_ORDER_LIST].left) && |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1004 |
_cursor.pos.y >= (this->top + this->widget[ORDER_WIDGET_ORDER_LIST].top) && |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1005 |
_cursor.pos.x <= (this->left + this->widget[ORDER_WIDGET_ORDER_LIST].right) && |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1006 |
_cursor.pos.y <= (this->top + this->widget[ORDER_WIDGET_ORDER_LIST].bottom)) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1007 |
int order_id = this->GetOrderFromPt(_cursor.pos.y - this->top); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1008 |
if (order_id != INVALID_ORDER) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1009 |
Order order; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1010 |
order.next = NULL; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1011 |
order.index = 0; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1012 |
order.MakeConditional(order_id); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1013 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1014 |
DoCommandP(this->vehicle->tile, this->vehicle->index + (this->OrderGetSel() << 16), order.Pack(), NULL, CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER)); |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
1015 |
} |
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
1016 |
} |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1017 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1018 |
this->RaiseWidget(ORDER_WIDGET_GOTO); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1019 |
this->InvalidateWidget(ORDER_WIDGET_GOTO); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1020 |
} |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
1021 |
|
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1022 |
virtual void OnMouseLoop() |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1023 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1024 |
const Vehicle *v = _place_clicked_vehicle; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1025 |
/* |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1026 |
* Check if we clicked on a vehicle |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1027 |
* and if the GOTO button of this window is pressed |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1028 |
* This is because of all open order windows WE_MOUSELOOP is called |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1029 |
* and if you have 3 windows open, and this check is not done |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1030 |
* the order is copied to the last open window instead of the |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1031 |
* one where GOTO is enabled |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1032 |
*/ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1033 |
if (v != NULL && this->IsWidgetLowered(ORDER_WIDGET_GOTO)) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1034 |
_place_clicked_vehicle = NULL; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1035 |
this->HandleOrderVehClick(v); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1036 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1037 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1038 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1039 |
virtual void OnResize(Point new_size, Point delta) |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1040 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1041 |
/* Update the scroll + matrix */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1042 |
this->vscroll.cap = (this->widget[ORDER_WIDGET_ORDER_LIST].bottom - this->widget[ORDER_WIDGET_ORDER_LIST].top) / 10; |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1043 |
} |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1044 |
|
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1045 |
virtual void OnTimeout() |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1046 |
{ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1047 |
/* unclick all buttons except for the 'goto' button (ORDER_WIDGET_GOTO), which is 'persistent' */ |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1048 |
for (uint i = 0; i < this->widget_count; i++) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1049 |
if (this->IsWidgetLowered(i) && i != ORDER_WIDGET_GOTO) { |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1050 |
this->RaiseWidget(i); |
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1051 |
this->InvalidateWidget(i); |
8871
2fbfd7ec3a5d
(svn r12638) -Codechange: give order_gui.cpp a touch of coding style.
rubidium
parents:
8869
diff
changeset
|
1052 |
} |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1053 |
} |
0 | 1054 |
} |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1055 |
}; |
0 | 1056 |
|
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1057 |
/** |
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1058 |
* Widget definition for player train orders |
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1059 |
*/ |
1081
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1060 |
static const Widget _orders_train_widgets[] = { |
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1061 |
{ WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ORDER_WIDGET_CLOSEBOX |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1062 |
{ WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 385, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1063 |
{ WWT_PUSHTXTBTN, RESIZE_LR, COLOUR_GREY, 325, 385, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1064 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1065 |
{ WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 373, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
1066 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1067 |
{ WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 374, 385, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
1068 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1069 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 123, 88, 99, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, // ORDER_WIDGET_SKIP |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1070 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 124, 247, 88, 99, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, // ORDER_WIDGET_DELETE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1071 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 0, 123, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_NON_STOP}, // ORDER_WIDGET_NON_STOP_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1072 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 0, 111, 76, 87, STR_ORDER_NON_STOP, STR_ORDER_TOOLTIP_NON_STOP}, // ORDER_WIDGET_NON_STOP |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1073 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 248, 371, 88, 99, STR_EMPTY, STR_ORDER_GO_TO_DROPDOWN_TOOLTIP}, // ORDER_WIDGET_GOTO_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1074 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 248, 359, 88, 99, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, // ORDER_WIDGET_GOTO |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1075 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 124, 247, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_FULL_LOAD}, // ORDER_WIDGET_FULL_LOAD_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1076 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 124, 235, 76, 87, STR_ORDER_TOGGLE_FULL_LOAD, STR_ORDER_TOOLTIP_FULL_LOAD}, // ORDER_WIDGET_FULL_LOAD |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1077 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 248, 371, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_UNLOAD}, // ORDER_WIDGET_UNLOAD_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1078 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 248, 359, 76, 87, STR_ORDER_TOGGLE_UNLOAD, STR_ORDER_TOOLTIP_UNLOAD}, // ORDER_WIDGET_UNLOAD |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1079 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 124, 247, 76, 87, STR_REFIT, STR_REFIT_TIP}, // ORDER_WIDGET_REFIT |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1080 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 248, 371, 76, 87, STR_SERVICE, STR_SERVICE_HINT}, // ORDER_WIDGET_SERVICE |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
1081 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1082 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 0, 123, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP}, // ORDER_WIDGET_COND_VARIABLE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1083 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 124, 247, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP}, // ORDER_WIDGET_COND_COMPARATOR |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1084 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 248, 371, 76, 87, STR_CONDITIONAL_VALUE, STR_ORDER_CONDITIONAL_VALUE_TOOLTIP}, // ORDER_WIDGET_COND_VALUE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1085 |
|
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1086 |
{ WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 372, 373, 76, 99, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1087 |
{ WWT_PUSHIMGBTN, RESIZE_LRTB, COLOUR_GREY, 372, 385, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1088 |
|
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1089 |
{ WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 374, 385, 88, 99, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1090 |
{ WIDGETS_END}, |
0 | 1091 |
}; |
1092 |
||
1081
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1093 |
static const WindowDesc _orders_train_desc = { |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
1094 |
WDP_AUTO, WDP_AUTO, 386, 100, 386, 100, |
8969
6d1c74e0e2cd
(svn r12761) -Codechange: lots of minor whitespace coding style fixes around operators.
rubidium
parents:
8962
diff
changeset
|
1095 |
WC_VEHICLE_ORDERS, WC_VEHICLE_VIEW, |
5013
1d20ebec3510
(svn r7046) -Fix [FS#311]: 'Goto' button in orders window got depressed along with all other
Darkvater
parents:
4968
diff
changeset
|
1096 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_RESIZABLE, |
1081
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1097 |
_orders_train_widgets, |
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1098 |
}; |
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1099 |
|
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1100 |
/** |
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1101 |
* Widget definition for player orders (!train) |
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1102 |
*/ |
1081
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1103 |
static const Widget _orders_widgets[] = { |
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1104 |
{ WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ORDER_WIDGET_CLOSEBOX |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1105 |
{ WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 385, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1106 |
{ WWT_PUSHTXTBTN, RESIZE_LR, COLOUR_GREY, 325, 385, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1107 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1108 |
{ WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 373, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
1109 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1110 |
{ WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 374, 385, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1111 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1112 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 123, 88, 99, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, // ORDER_WIDGET_SKIP |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1113 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 124, 247, 88, 99, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, // ORDER_WIDGET_DELETE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1114 |
{ WWT_EMPTY, RESIZE_TB, COLOUR_GREY, 0, 0, 76, 87, 0x0, 0x0}, // ORDER_WIDGET_NON_STOP_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1115 |
{ WWT_EMPTY, RESIZE_TB, COLOUR_GREY, 0, 0, 76, 87, 0x0, 0x0}, // ORDER_WIDGET_NON_STOP |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1116 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 248, 371, 88, 99, STR_EMPTY, STR_ORDER_GO_TO_DROPDOWN_TOOLTIP}, // ORDER_WIDGET_GOTO_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1117 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 248, 359, 88, 99, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, // ORDER_WIDGET_GOTO |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1118 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 0, 185, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_FULL_LOAD}, // ORDER_WIDGET_FULL_LOAD_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1119 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 0, 173, 76, 87, STR_ORDER_TOGGLE_FULL_LOAD, STR_ORDER_TOOLTIP_FULL_LOAD}, // ORDER_WIDGET_FULL_LOAD |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1120 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 186, 371, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_UNLOAD}, // ORDER_WIDGET_UNLOAD_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1121 |
{ WWT_TEXTBTN, RESIZE_TB, COLOUR_GREY, 186, 359, 76, 87, STR_ORDER_TOGGLE_UNLOAD, STR_ORDER_TOOLTIP_UNLOAD}, // ORDER_WIDGET_UNLOAD |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1122 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 185, 76, 87, STR_REFIT, STR_REFIT_TIP}, // ORDER_WIDGET_REFIT |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1123 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 186, 371, 76, 87, STR_SERVICE, STR_SERVICE_HINT}, // ORDER_WIDGET_SERVICE |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1124 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1125 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 0, 123, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP}, // ORDER_WIDGET_COND_VARIABLE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1126 |
{ WWT_DROPDOWN, RESIZE_TB, COLOUR_GREY, 124, 247, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP}, // ORDER_WIDGET_COND_COMPARATOR |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1127 |
{ WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 248, 371, 76, 87, STR_CONDITIONAL_VALUE, STR_ORDER_CONDITIONAL_VALUE_TOOLTIP}, // ORDER_WIDGET_COND_VALUE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1128 |
|
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1129 |
{ WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 372, 373, 76, 99, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1130 |
{ WWT_PUSHIMGBTN, RESIZE_LRTB, COLOUR_GREY, 372, 385, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1131 |
|
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1132 |
{ WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 374, 385, 88, 99, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1133 |
{ WIDGETS_END}, |
1081
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1134 |
}; |
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1135 |
|
995
0a8d27dcc231
(svn r1493) -Codechange: Removed redundancy in the order GUI. Currently we had most
celestar
parents:
919
diff
changeset
|
1136 |
static const WindowDesc _orders_desc = { |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
1137 |
WDP_AUTO, WDP_AUTO, 386, 100, 386, 100, |
8969
6d1c74e0e2cd
(svn r12761) -Codechange: lots of minor whitespace coding style fixes around operators.
rubidium
parents:
8962
diff
changeset
|
1138 |
WC_VEHICLE_ORDERS, WC_VEHICLE_VIEW, |
5013
1d20ebec3510
(svn r7046) -Fix [FS#311]: 'Goto' button in orders window got depressed along with all other
Darkvater
parents:
4968
diff
changeset
|
1139 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_RESIZABLE, |
995
0a8d27dcc231
(svn r1493) -Codechange: Removed redundancy in the order GUI. Currently we had most
celestar
parents:
919
diff
changeset
|
1140 |
_orders_widgets, |
0 | 1141 |
}; |
1142 |
||
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1143 |
/** |
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1144 |
* Widget definition for competitor orders |
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1145 |
*/ |
995
0a8d27dcc231
(svn r1493) -Codechange: Removed redundancy in the order GUI. Currently we had most
celestar
parents:
919
diff
changeset
|
1146 |
static const Widget _other_orders_widgets[] = { |
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1147 |
{ WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ORDER_WIDGET_CLOSEBOX |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1148 |
{ WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 385, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1149 |
{ WWT_PUSHTXTBTN, RESIZE_LR, COLOUR_GREY, 325, 385, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1150 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1151 |
{ WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 373, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST |
6980
c7c4f3bf5901
(svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents:
6923
diff
changeset
|
1152 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1153 |
{ WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 374, 385, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR |
8900
a49f442299b8
(svn r12667) -Feature: conditional 'skip/jump' orders.
rubidium
parents:
8896
diff
changeset
|
1154 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1155 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SKIP |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1156 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_DELETE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1157 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_NON_STOP_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1158 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_NON_STOP |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1159 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_GOTO_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1160 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_GOTO |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1161 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_FULL_LOAD_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1162 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_FULL_LOAD |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1163 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_UNLOAD_DROPDOWN |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1164 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_UNLOAD |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1165 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_REFIT |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1166 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SERVICE |
6980
c7c4f3bf5901
(svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents:
6923
diff
changeset
|
1167 |
|
9760
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1168 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_COND_VARIABLE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1169 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_COND_COMPARATOR |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1170 |
{ WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_COND_VALUE |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1171 |
|
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1172 |
{ WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 0, 373, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1173 |
{ WWT_EMPTY, RESIZE_TB, COLOUR_GREY, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SHARED_ORDER_LIST |
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1174 |
|
92202f8b455a
(svn r13896) -Codechange: Replace numbers with Colours enum on newgrf, order and osk guis
belugas
parents:
9641
diff
changeset
|
1175 |
{ WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 374, 385, 76, 87, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE |
6807
89fba17b6cd3
(svn r10046) -Documentation: add some documentation in order_gui (skidd13).
rubidium
parents:
6794
diff
changeset
|
1176 |
{ WIDGETS_END}, |
0 | 1177 |
}; |
1178 |
||
995
0a8d27dcc231
(svn r1493) -Codechange: Removed redundancy in the order GUI. Currently we had most
celestar
parents:
919
diff
changeset
|
1179 |
static const WindowDesc _other_orders_desc = { |
8877
f09f03b0dc64
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
rubidium
parents:
8876
diff
changeset
|
1180 |
WDP_AUTO, WDP_AUTO, 386, 88, 386, 88, |
8969
6d1c74e0e2cd
(svn r12761) -Codechange: lots of minor whitespace coding style fixes around operators.
rubidium
parents:
8962
diff
changeset
|
1181 |
WC_VEHICLE_ORDERS, WC_VEHICLE_VIEW, |
1242
1ca216c50426
(svn r1746) - Feature: [GUI] [ 1107690 ] Resizable orders GUI (nzhook)
darkvater
parents:
1214
diff
changeset
|
1182 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
995
0a8d27dcc231
(svn r1493) -Codechange: Removed redundancy in the order GUI. Currently we had most
celestar
parents:
919
diff
changeset
|
1183 |
_other_orders_widgets, |
0 | 1184 |
}; |
1185 |
||
4171 | 1186 |
void ShowOrdersWindow(const Vehicle *v) |
0 | 1187 |
{ |
1188 |
VehicleID veh = v->index; |
|
1189 |
||
1190 |
DeleteWindowById(WC_VEHICLE_ORDERS, veh); |
|
1191 |
DeleteWindowById(WC_VEHICLE_DETAILS, veh); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
1192 |
|
1081
0d79fc43fae2
(svn r1582) Fix: Only the train orders GUI has a non-stop button now.
dominik
parents:
1067
diff
changeset
|
1193 |
if (v->owner != _local_player) { |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1194 |
new OrdersWindow(&_other_orders_desc, v); |
2549 | 1195 |
} else { |
9258
21d5b2c3ec8d
(svn r13124) -Codechange: make a class of the OrdersWindow.
glx
parents:
9143
diff
changeset
|
1196 |
new OrdersWindow((v->type == VEH_TRAIN || v->type == VEH_ROAD) ? &_orders_train_desc : &_orders_desc, v); |
1242
1ca216c50426
(svn r1746) - Feature: [GUI] [ 1107690 ] Resizable orders GUI (nzhook)
darkvater
parents:
1214
diff
changeset
|
1197 |
} |
0 | 1198 |
} |