author | Tero Marttila <terom@fixme.fi> |
Fri, 18 Jul 2008 21:28:42 +0300 | |
changeset 11175 | 020c61e39c94 |
parent 11161 | 7d0fac8f14cd |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
10467
a8de2b5759bd
(svn r13010) -Codechange: move the tree building GUI out of misc_gui.cpp.
rubidium
parents:
10462
diff
changeset
|
3 |
/** @file tree_gui.cpp GUIs for building trees. */ |
6527
f584ab6d87f8
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
6523
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
92a3b0aa0946
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1879
diff
changeset
|
6 |
#include "openttd.h" |
8603
88c5ce6a5215
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8602
diff
changeset
|
7 |
#include "window_gui.h" |
8720
4e60c30e2006
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8710
diff
changeset
|
8 |
#include "gfx_func.h" |
10467
a8de2b5759bd
(svn r13010) -Codechange: move the tree building GUI out of misc_gui.cpp.
rubidium
parents:
10462
diff
changeset
|
9 |
#include "tilehighlight_func.h" |
8750
fdd6054e7bae
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8720
diff
changeset
|
10 |
#include "player_func.h" |
10467
a8de2b5759bd
(svn r13010) -Codechange: move the tree building GUI out of misc_gui.cpp.
rubidium
parents:
10462
diff
changeset
|
11 |
#include "command_func.h" |
8653
a83f7a536919
(svn r11719) -Codechange: split sound.h in a header with types and one with functions.
rubidium
parents:
8648
diff
changeset
|
12 |
#include "sound_func.h" |
8766
c86cfa3a7580
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium
parents:
8760
diff
changeset
|
13 |
#include "settings_type.h" |
8615
6b91ca653bad
(svn r11680) -Codechange: refactor more out of openttd.h and functions.h.
rubidium
parents:
8612
diff
changeset
|
14 |
|
8760
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
15 |
#include "table/sprites.h" |
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
16 |
#include "table/strings.h" |
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
17 |
#include "table/tree_land.h" |
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
18 |
|
10467
a8de2b5759bd
(svn r13010) -Codechange: move the tree building GUI out of misc_gui.cpp.
rubidium
parents:
10462
diff
changeset
|
19 |
void PlaceTreesRandomly(); |
0 | 20 |
|
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
21 |
class BuildTreesWindow : public Window |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
22 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
23 |
uint16 base; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
24 |
uint16 count; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
25 |
int tree_to_plant; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
26 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
27 |
enum BuildTreesWidgets { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
28 |
BTW_CLOSE, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
29 |
BTW_CAPTION, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
30 |
BTW_BACKGROUND, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
31 |
BTW_TYPE_11, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
32 |
BTW_TYPE_12, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
33 |
BTW_TYPE_13, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
34 |
BTW_TYPE_14, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
35 |
BTW_TYPE_21, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
36 |
BTW_TYPE_22, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
37 |
BTW_TYPE_23, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
38 |
BTW_TYPE_24, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
39 |
BTW_TYPE_31, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
40 |
BTW_TYPE_32, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
41 |
BTW_TYPE_33, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
42 |
BTW_TYPE_34, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
43 |
BTW_TYPE_RANDOM, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
44 |
BTW_MANY_RANDOM, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
45 |
}; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
46 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
47 |
public: |
10525
da5bc725cda4
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium
parents:
10517
diff
changeset
|
48 |
BuildTreesWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
49 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
50 |
if (_game_mode != GM_EDITOR) { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
51 |
this->HideWidget(BTW_MANY_RANDOM); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
52 |
int offset = this->widget[BTW_MANY_RANDOM].bottom - this->widget[BTW_MANY_RANDOM].top; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
53 |
this->height -= offset; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
54 |
this->widget[BTW_BACKGROUND].bottom -= offset; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
55 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
56 |
ResetObjectToPlace(); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
57 |
this->FindWindowPlacementAndResize(desc); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
58 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
59 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
60 |
virtual void OnPaint() |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
61 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
62 |
static const PalSpriteID tree_sprites[] = { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
63 |
{ 0x655, PAL_NONE }, { 0x663, PAL_NONE }, { 0x678, PAL_NONE }, { 0x62B, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
64 |
{ 0x647, PAL_NONE }, { 0x639, PAL_NONE }, { 0x64E, PAL_NONE }, { 0x632, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
65 |
{ 0x67F, PAL_NONE }, { 0x68D, PAL_NONE }, { 0x69B, PAL_NONE }, { 0x6A9, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
66 |
{ 0x6AF, PAL_NONE }, { 0x6D2, PAL_NONE }, { 0x6D9, PAL_NONE }, { 0x6C4, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
67 |
{ 0x6CB, PAL_NONE }, { 0x6B6, PAL_NONE }, { 0x6BD, PAL_NONE }, { 0x6E0, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
68 |
{ 0x72E, PAL_NONE }, { 0x734, PAL_NONE }, { 0x74A, PAL_NONE }, { 0x74F, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
69 |
{ 0x76B, PAL_NONE }, { 0x78F, PAL_NONE }, { 0x788, PAL_NONE }, { 0x77B, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
70 |
{ 0x75F, PAL_NONE }, { 0x774, PAL_NONE }, { 0x720, PAL_NONE }, { 0x797, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
71 |
{ 0x79E, PAL_NONE }, { 0x7A5, PALETTE_TO_GREEN }, { 0x7AC, PALETTE_TO_RED }, { 0x7B3, PAL_NONE }, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
72 |
{ 0x7BA, PAL_NONE }, { 0x7C1, PALETTE_TO_RED, }, { 0x7C8, PALETTE_TO_PALE_GREEN }, { 0x7CF, PALETTE_TO_YELLOW }, { 0x7D6, PALETTE_TO_RED } |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
73 |
}; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
74 |
|
10595
7957c71b0dfe
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
10525
diff
changeset
|
75 |
this->DrawWidgets(); |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
76 |
|
10775
7061477bfbcf
(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:
10707
diff
changeset
|
77 |
int i = this->base = _tree_base_by_landscape[_settings_game.game_creation.landscape]; |
7061477bfbcf
(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:
10707
diff
changeset
|
78 |
int count = this->count = _tree_count_by_landscape[_settings_game.game_creation.landscape]; |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
79 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
80 |
int x = 18; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
81 |
int y = 54; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
82 |
do { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
83 |
DrawSprite(tree_sprites[i].sprite, tree_sprites[i].pal, x, y); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
84 |
x += 35; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
85 |
if (!(++i & 3)) { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
86 |
x -= 35 * 4; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
87 |
y += 47; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
88 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
89 |
} while (--count); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
90 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
91 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
92 |
virtual void OnClick(Point pt, int widget) |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
93 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
94 |
switch (widget) { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
95 |
case BTW_TYPE_11: case BTW_TYPE_12: case BTW_TYPE_13: case BTW_TYPE_14: |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
96 |
case BTW_TYPE_21: case BTW_TYPE_22: case BTW_TYPE_23: case BTW_TYPE_24: |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
97 |
case BTW_TYPE_31: case BTW_TYPE_32: case BTW_TYPE_33: case BTW_TYPE_34: |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
98 |
if (widget - BTW_TYPE_11 >= this->count) break; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
99 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
100 |
if (HandlePlacePushButton(this, widget, SPR_CURSOR_TREE, VHM_RECT, NULL)) { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
101 |
this->tree_to_plant = this->base + widget - BTW_TYPE_11; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
102 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
103 |
break; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
104 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
105 |
case BTW_TYPE_RANDOM: // tree of random type. |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
106 |
if (HandlePlacePushButton(this, BTW_TYPE_RANDOM, SPR_CURSOR_TREE, VHM_RECT, NULL)) { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
107 |
this->tree_to_plant = -1; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
108 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
109 |
break; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
110 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
111 |
case BTW_MANY_RANDOM: // place trees randomly over the landscape |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
112 |
this->LowerWidget(BTW_MANY_RANDOM); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
113 |
this->flags4 |= 5 << WF_TIMEOUT_SHL; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
114 |
SndPlayFx(SND_15_BEEP); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
115 |
PlaceTreesRandomly(); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
116 |
MarkWholeScreenDirty(); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
117 |
break; |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
118 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
119 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
120 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
121 |
virtual void OnPlaceObject(Point pt, TileIndex tile) |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
122 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
123 |
VpStartPlaceSizing(tile, VPM_X_AND_Y_LIMITED, DDSP_PLANT_TREES); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
124 |
VpSetPlaceSizingLimit(20); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
125 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
126 |
|
10618
1bfb775dd5f2
(svn r13162) -Fix (r13160): trees couldn't be planted, correct function wasn't overloaded
smatz
parents:
10595
diff
changeset
|
127 |
virtual void OnPlaceDrag(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
128 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
129 |
VpSelectTilesWithMethod(pt.x, pt.y, select_method); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
130 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
131 |
|
10618
1bfb775dd5f2
(svn r13162) -Fix (r13160): trees couldn't be planted, correct function wasn't overloaded
smatz
parents:
10595
diff
changeset
|
132 |
virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
133 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
134 |
if (pt.x != -1 && select_proc == DDSP_PLANT_TREES) { |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
135 |
DoCommandP(end_tile, this->tree_to_plant, start_tile, NULL, |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
136 |
CMD_PLANT_TREE | CMD_MSG(STR_2805_CAN_T_PLANT_TREE_HERE)); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
137 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
138 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
139 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
140 |
virtual void OnTimeout() |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
141 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
142 |
this->RaiseWidget(BTW_MANY_RANDOM); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
143 |
this->InvalidateWidget(BTW_MANY_RANDOM); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
144 |
} |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
145 |
|
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
146 |
virtual void OnPlaceObjectAbort() |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
147 |
{ |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
148 |
this->RaiseButtons(); |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
149 |
} |
0 | 150 |
}; |
151 |
||
152 |
static const Widget _build_trees_widgets[] = { |
|
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
153 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // BTW_CLOSE |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
154 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 142, 0, 13, STR_2802_TREES, STR_018C_WINDOW_TITLE_DRAG_THIS}, // BTW_CAPTION |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
155 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 142, 14, 183, 0x0, STR_NULL}, // BTW_BACKGROUND |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
156 |
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_11 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
157 |
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_12 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
158 |
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_13 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
159 |
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_14 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
160 |
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_21 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
161 |
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_22 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
162 |
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_23 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
163 |
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_24 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
164 |
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_31 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
165 |
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_32 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
166 |
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_33 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
167 |
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, // BTW_TYPE_34 |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
168 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 157, 168, STR_TREES_RANDOM_TYPE, STR_TREES_RANDOM_TYPE_TIP}, // BTW_TYPE_RANDOM |
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
169 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 170, 181, STR_028A_RANDOM_TREES, STR_028B_PLANT_TREES_RANDOMLY_OVER}, // BTW_MANY_RANDOM |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
172
diff
changeset
|
170 |
{ WIDGETS_END}, |
0 | 171 |
}; |
172 |
||
173 |
static const WindowDesc _build_trees_desc = { |
|
7837
65d7362153a6
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium
parents:
7817
diff
changeset
|
174 |
WDP_AUTO, WDP_AUTO, 143, 184, 143, 184, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
6001
diff
changeset
|
175 |
WC_BUILD_TREES, WC_NONE, |
0 | 176 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
177 |
_build_trees_widgets, |
0 | 178 |
}; |
179 |
||
6573 | 180 |
void ShowBuildTreesToolbar() |
0 | 181 |
{ |
11161
7d0fac8f14cd
(svn r13719) -Codechange: rename IsValidPlayer to IsValidPlayerID in line with all other structs/classes that are in a pool.
rubidium
parents:
10775
diff
changeset
|
182 |
if (_game_mode != GM_EDITOR && !IsValidPlayerID(_current_player)) return; |
10517
2e55d1418bd8
(svn r13061) -Codechange: make a class of the BuildTreesWindow.
glx
parents:
10467
diff
changeset
|
183 |
AllocateWindowDescFront<BuildTreesWindow>(&_build_trees_desc, 0); |
0 | 184 |
} |