author | rubidium |
Fri, 25 Apr 2008 15:22:32 +0000 | |
changeset 9055 | 4dc6a0c0ef47 |
parent 8994 | fb5e761cf141 |
child 9111 | 48ce04029fe4 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6201
bee01dc45e39
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
5894
diff
changeset
|
3 |
/** @file main_gui.cpp */ |
bee01dc45e39
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
5894
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
862800791170
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1885
diff
changeset
|
6 |
#include "openttd.h" |
2292 | 7 |
#include "currency.h" |
1349
15979a2e9001
(svn r1853) Move spritecache function declarations into a header of their own and use SpriteID as parameter type where appropriate
tron
parents:
1336
diff
changeset
|
8 |
#include "spritecache.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" |
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
|
11 |
#include "window_func.h" |
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
|
12 |
#include "textbuf_gui.h" |
8224
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8214
diff
changeset
|
13 |
#include "viewport_func.h" |
8116
8da76dcb3287
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
8114
diff
changeset
|
14 |
#include "command_func.h" |
8976
1a8367713b73
(svn r12768) -Codechange: move the statusbar GUI to it's own file.
rubidium
parents:
8975
diff
changeset
|
15 |
#include "news_gui.h" |
126 | 16 |
#include "console.h" |
1542
62a03537ad0b
(svn r2046) -Codechange: moved all waypoint code to waypoint.c/waypoint.h
truelight
parents:
1500
diff
changeset
|
17 |
#include "waypoint.h" |
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4299
diff
changeset
|
18 |
#include "genworld.h" |
6427
7dc1012757d8
(svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138
parents:
6357
diff
changeset
|
19 |
#include "transparency_gui.h" |
8140
0d0d8c94f84b
(svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents:
8139
diff
changeset
|
20 |
#include "date_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:
8123
diff
changeset
|
21 |
#include "functions.h" |
8157
1505def01945
(svn r11719) -Codechange: split sound.h in a header with types and one with functions.
rubidium
parents:
8149
diff
changeset
|
22 |
#include "sound_func.h" |
7849
0a1c0af2c96c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
belugas
parents:
7824
diff
changeset
|
23 |
#include "transparency.h" |
8114
dd6d21dc99c1
(svn r11675) -Codechange: split the string types from the string functions.
rubidium
parents:
8111
diff
changeset
|
24 |
#include "strings_func.h" |
8123
ce31d2843a95
(svn r11684) -Codechange: split gfx.h in a type and functional header.
rubidium
parents:
8121
diff
changeset
|
25 |
#include "zoom_func.h" |
8214
971f861d5543
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium
parents:
8208
diff
changeset
|
26 |
#include "string_func.h" |
8254
1496654ca5e7
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8224
diff
changeset
|
27 |
#include "player_base.h" |
1496654ca5e7
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8224
diff
changeset
|
28 |
#include "player_func.h" |
1496654ca5e7
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8224
diff
changeset
|
29 |
#include "player_gui.h" |
8270
e7c342f6b14c
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium
parents:
8264
diff
changeset
|
30 |
#include "settings_type.h" |
8723
e513a23c2797
(svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium
parents:
8615
diff
changeset
|
31 |
#include "toolbar_gui.h" |
8975
678648173fcf
(svn r12767) -Codechange: merge all main toolbar related functions into a single file instead of scattering the functionality over several files.
rubidium
parents:
8857
diff
changeset
|
32 |
#include "variables.h" |
0 | 33 |
|
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
34 |
#include "network/network.h" |
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 "network/network_data.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 "network/network_client.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 |
#include "network/network_server.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
38 |
#include "network/network_gui.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
39 |
|
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
40 |
#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
|
41 |
#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
|
42 |
|
5413 | 43 |
static int _rename_id = 1; |
44 |
static int _rename_what = -1; |
|
0 | 45 |
|
6847
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
46 |
void CcGiveMoney(bool success, TileIndex tile, uint32 p1, uint32 p2) |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
47 |
{ |
6898
d23c46e9a6ec
(svn r10145) -Fix: make compiling with networking disabled (again) possible.
rubidium
parents:
6857
diff
changeset
|
48 |
#ifdef ENABLE_NETWORK |
7657
2b55af55cc51
(svn r11188) -Codechange: rewrite of the town action related code (remove some of the magic).
rubidium
parents:
7643
diff
changeset
|
49 |
if (!success || !_patches.give_money) return; |
6847
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
50 |
|
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
51 |
char msg[20]; |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
52 |
/* Inform the player of this action */ |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
53 |
snprintf(msg, sizeof(msg), "%d", p1); |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
54 |
|
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
55 |
if (!_network_server) { |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
56 |
SEND_COMMAND(PACKET_CLIENT_CHAT)(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg); |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
57 |
} else { |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
58 |
NetworkServer_HandleChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg, NETWORK_SERVER_INDEX); |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
59 |
} |
6898
d23c46e9a6ec
(svn r10145) -Fix: make compiling with networking disabled (again) possible.
rubidium
parents:
6857
diff
changeset
|
60 |
#endif /* ENABLE_NETWORK */ |
6847
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
61 |
} |
77facd267574
(svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium
parents:
6845
diff
changeset
|
62 |
|
5431
6e56b4f13dd7
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5413
diff
changeset
|
63 |
void HandleOnEditText(const char *str) |
1799
6d82d202c145
(svn r2303) - CodeChange (fix): when giving money to other players only allow transferring money that is above your loan. Eg you can't give away your loan.
Darkvater
parents:
1793
diff
changeset
|
64 |
{ |
5431
6e56b4f13dd7
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5413
diff
changeset
|
65 |
int id = _rename_id; |
6e56b4f13dd7
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5413
diff
changeset
|
66 |
_cmd_text = str; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
67 |
|
1799
6d82d202c145
(svn r2303) - CodeChange (fix): when giving money to other players only allow transferring money that is above your loan. Eg you can't give away your loan.
Darkvater
parents:
1793
diff
changeset
|
68 |
switch (_rename_what) { |
6201
bee01dc45e39
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
5894
diff
changeset
|
69 |
case 1: // Rename a waypoint |
5431
6e56b4f13dd7
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5413
diff
changeset
|
70 |
if (*str == '\0') return; |
395
788a9bba0889
(svn r587) -newgrf: Rename all /Checkpoint/i tokens to 'Waypoint's. The name actually makes some sense and is also compatible with TTDPatch (pasky).
darkvater
parents:
355
diff
changeset
|
71 |
DoCommandP(0, id, 0, NULL, CMD_RENAME_WAYPOINT | CMD_MSG(STR_CANT_CHANGE_WAYPOINT_NAME)); |
0 | 72 |
break; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
73 |
#ifdef ENABLE_NETWORK |
6201
bee01dc45e39
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
5894
diff
changeset
|
74 |
case 3: { // Give money, you can only give money in excess of loan |
1962
8254df1b359b
(svn r2468) -Codechange: Got rid of DEREF_PLAYER and replaced it by GetPlayer
celestar
parents:
1932
diff
changeset
|
75 |
const Player *p = GetPlayer(_current_player); |
7505
55e7acbf7a69
(svn r11020) -Fix [FS#1174]: One could not give money when (s)he had too much money or rather: when casting the amount of money to an int32 becomes negative.
rubidium
parents:
7480
diff
changeset
|
76 |
Money money = min(p->player_money - p->current_loan, (Money)(atoi(str) / _currency->rate)); |
1799
6d82d202c145
(svn r2303) - CodeChange (fix): when giving money to other players only allow transferring money that is above your loan. Eg you can't give away your loan.
Darkvater
parents:
1793
diff
changeset
|
77 |
|
7922
a7e266f966d9
(svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style
skidd13
parents:
7889
diff
changeset
|
78 |
uint32 money_c = Clamp(ClampToI32(money), 0, 20000000); // Clamp between 20 million and 0 |
813
640a517dc129
(svn r1284) -Fix: Fixed 'money-cheat' (read: bug which could give people a lot of money)
truelight
parents:
793
diff
changeset
|
79 |
|
6201
bee01dc45e39
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
5894
diff
changeset
|
80 |
/* Give 'id' the money, and substract it from ourself */ |
6990
136a08baf0ed
(svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium
parents:
6953
diff
changeset
|
81 |
DoCommandP(0, money_c, id, CcGiveMoney, CMD_GIVE_MONEY | CMD_MSG(STR_INSUFFICIENT_FUNDS)); |
6492
286a52449b54
(svn r9673) -Cleanup: remove spaces before tabs and replace non-indenting tabs with spaces.
rubidium
parents:
6486
diff
changeset
|
82 |
} break; |
5413 | 83 |
#endif /* ENABLE_NETWORK */ |
84 |
default: NOT_REACHED(); |
|
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
85 |
} |
5413 | 86 |
|
87 |
_rename_id = _rename_what = -1; |
|
0 | 88 |
} |
89 |
||
1070
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
90 |
/** |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
91 |
* This code is shared for the majority of the pushbuttons. |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
92 |
* Handles e.g. the pressing of a button (to build things), playing of click sound and sets certain parameters |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
93 |
* |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
94 |
* @param w Window which called the function |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
95 |
* @param widget ID of the widget (=button) that called this function |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
96 |
* @param cursor How should the cursor image change? E.g. cursor with depot image in it |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
97 |
* @param mode Tile highlighting mode, e.g. drawing a rectangle or a dot on the ground |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
98 |
* @param placeproc Procedure which will be called when someone clicks on the map |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
99 |
* @return true if the button is clicked, false if it's unclicked |
bd31ed783fd3
(svn r1571) Feature: Visually enhanced autorail placing
dominik
parents:
1067
diff
changeset
|
100 |
*/ |
7889
e74ce8853ba7
(svn r11440) -Codechange: replace magic numbers with enumified WindowHighlightMode constants. Patch by SmatZ.
rubidium
parents:
7857
diff
changeset
|
101 |
bool HandlePlacePushButton(Window *w, int widget, CursorID cursor, ViewportHighlightMode mode, PlaceProc *placeproc) |
0 | 102 |
{ |
7997
df87ccd00a96
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
7954
diff
changeset
|
103 |
if (w->IsWidgetDisabled(widget)) return false; |
0 | 104 |
|
2621
2bacc2e9c68f
(svn r3159) Remove the read-only variable _no_button_sound
tron
parents:
2615
diff
changeset
|
105 |
SndPlayFx(SND_15_BEEP); |
0 | 106 |
SetWindowDirty(w); |
107 |
||
7997
df87ccd00a96
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
7954
diff
changeset
|
108 |
if (w->IsWidgetLowered(widget)) { |
0 | 109 |
ResetObjectToPlace(); |
110 |
return false; |
|
111 |
} |
|
112 |
||
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5601
diff
changeset
|
113 |
SetObjectToPlace(cursor, PAL_NONE, mode, w->window_class, w->window_number); |
7997
df87ccd00a96
(svn r11555) -Codechange: use the new members introduced in r11551.
rubidium
parents:
7954
diff
changeset
|
114 |
w->LowerWidget(widget); |
0 | 115 |
_place_proc = placeproc; |
116 |
return true; |
|
117 |
} |
|
118 |
||
119 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1962
diff
changeset
|
120 |
void CcPlaySound10(bool success, TileIndex tile, uint32 p1, uint32 p2) |
0 | 121 |
{ |
541 | 122 |
if (success) SndPlayTileFx(SND_12_EXPLOSION, tile); |
0 | 123 |
} |
124 |
||
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
125 |
#ifdef ENABLE_NETWORK |
4830
668bcb0a30b2
(svn r6754) -Codechange: Remove some #idef ENABLE_NETWORK specific defines. With networking
Darkvater
parents:
4824
diff
changeset
|
126 |
void ShowNetworkGiveMoneyWindow(PlayerID player) |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
127 |
{ |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
128 |
_rename_id = player; |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
129 |
_rename_what = 3; |
5431
6e56b4f13dd7
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5413
diff
changeset
|
130 |
ShowQueryString(STR_EMPTY, STR_NETWORK_GIVE_MONEY_CAPTION, 30, 180, NULL, CS_NUMERAL); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
131 |
} |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
132 |
#endif /* ENABLE_NETWORK */ |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
133 |
|
2116 | 134 |
void ShowRenameWaypointWindow(const Waypoint *wp) |
0 | 135 |
{ |
1542
62a03537ad0b
(svn r2046) -Codechange: moved all waypoint code to waypoint.c/waypoint.h
truelight
parents:
1500
diff
changeset
|
136 |
int id = wp->index; |
697
eaada71b7c85
(svn r1146) -Fix: You can no longer change waypoints whom are owned by somebody else
truelight
parents:
682
diff
changeset
|
137 |
|
eaada71b7c85
(svn r1146) -Fix: You can no longer change waypoints whom are owned by somebody else
truelight
parents:
682
diff
changeset
|
138 |
/* Are we allowed to change the name of the waypoint? */ |
1542
62a03537ad0b
(svn r2046) -Codechange: moved all waypoint code to waypoint.c/waypoint.h
truelight
parents:
1500
diff
changeset
|
139 |
if (!CheckTileOwnership(wp->xy)) { |
926
a6d140a6a4de
(svn r1414) Move TileIndex, TILE_MASK and GET_TILE_[XY] to map.h and turn the latter into inline functions names Tile[XY]
tron
parents:
872
diff
changeset
|
140 |
ShowErrorMessage(_error_message, STR_CANT_CHANGE_WAYPOINT_NAME, |
3422
a6eba3443452
(svn r4249) -Codechange: Replace more occurences of 16 by TILE_SIZE and of 8 by TILE_HEIGHT. Reverted one change from the previous commit because it was faulty
celestar
parents:
3326
diff
changeset
|
141 |
TileX(wp->xy) * TILE_SIZE, TileY(wp->xy) * TILE_SIZE); |
697
eaada71b7c85
(svn r1146) -Fix: You can no longer change waypoints whom are owned by somebody else
truelight
parents:
682
diff
changeset
|
142 |
return; |
eaada71b7c85
(svn r1146) -Fix: You can no longer change waypoints whom are owned by somebody else
truelight
parents:
682
diff
changeset
|
143 |
} |
eaada71b7c85
(svn r1146) -Fix: You can no longer change waypoints whom are owned by somebody else
truelight
parents:
682
diff
changeset
|
144 |
|
0 | 145 |
_rename_id = id; |
146 |
_rename_what = 1; |
|
534
306bc86eb23e
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
507
diff
changeset
|
147 |
SetDParam(0, id); |
5431
6e56b4f13dd7
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5413
diff
changeset
|
148 |
ShowQueryString(STR_WAYPOINT_RAW, STR_EDIT_WAYPOINT_NAME, 30, 180, NULL, CS_ALPHANUMERAL); |
0 | 149 |
} |
150 |
||
151 |
||
152
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
135
diff
changeset
|
152 |
/* Zooms a viewport in a window in or out */ |
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
135
diff
changeset
|
153 |
/* No button handling or what so ever */ |
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
135
diff
changeset
|
154 |
bool DoZoomInOutWindow(int how, Window *w) |
0 | 155 |
{ |
156 |
ViewPort *vp; |
|
5045
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
157 |
|
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
158 |
assert(w != NULL); |
0 | 159 |
vp = w->viewport; |
160 |
||
5044
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
161 |
switch (how) { |
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
162 |
case ZOOM_IN: |
6626
207875b9069a
(svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight
parents:
6624
diff
changeset
|
163 |
if (vp->zoom == ZOOM_LVL_MIN) return false; |
8095
f834186120af
(svn r11656) -Codechange: add ZOOM_LVL_BEGIN and postfix operators so ZoomLevel can be used in some iterations
smatz
parents:
8082
diff
changeset
|
164 |
vp->zoom = (ZoomLevel)((int)vp->zoom - 1); |
5044
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
165 |
vp->virtual_width >>= 1; |
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
166 |
vp->virtual_height >>= 1; |
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
167 |
|
8082
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
168 |
WP(w, vp_d).scrollpos_x += vp->virtual_width >> 1; |
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
169 |
WP(w, vp_d).scrollpos_y += vp->virtual_height >> 1; |
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
170 |
WP(w, vp_d).dest_scrollpos_x = WP(w,vp_d).scrollpos_x; |
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
171 |
WP(w, vp_d).dest_scrollpos_y = WP(w,vp_d).scrollpos_y; |
5044
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
172 |
break; |
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
173 |
case ZOOM_OUT: |
6626
207875b9069a
(svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight
parents:
6624
diff
changeset
|
174 |
if (vp->zoom == ZOOM_LVL_MAX) return false; |
8095
f834186120af
(svn r11656) -Codechange: add ZOOM_LVL_BEGIN and postfix operators so ZoomLevel can be used in some iterations
smatz
parents:
8082
diff
changeset
|
175 |
vp->zoom = (ZoomLevel)((int)vp->zoom + 1); |
5044
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
176 |
|
8082
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
177 |
WP(w, vp_d).scrollpos_x -= vp->virtual_width >> 1; |
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
178 |
WP(w, vp_d).scrollpos_y -= vp->virtual_height >> 1; |
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
179 |
WP(w, vp_d).dest_scrollpos_x = WP(w,vp_d).scrollpos_x; |
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8070
diff
changeset
|
180 |
WP(w, vp_d).dest_scrollpos_y = WP(w,vp_d).scrollpos_y; |
5044
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
181 |
|
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
182 |
vp->virtual_width <<= 1; |
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
183 |
vp->virtual_height <<= 1; |
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
184 |
break; |
0 | 185 |
} |
5214
62a0325b53c7
(svn r7329) -Fix (r7157): Invalid viewport position on quick zoom
KUDr
parents:
5118
diff
changeset
|
186 |
if (vp != NULL) { // the vp can be null when how == ZOOM_NONE |
62a0325b53c7
(svn r7329) -Fix (r7157): Invalid viewport position on quick zoom
KUDr
parents:
5118
diff
changeset
|
187 |
vp->virtual_left = WP(w, vp_d).scrollpos_x; |
62a0325b53c7
(svn r7329) -Fix (r7157): Invalid viewport position on quick zoom
KUDr
parents:
5118
diff
changeset
|
188 |
vp->virtual_top = WP(w, vp_d).scrollpos_y; |
62a0325b53c7
(svn r7329) -Fix (r7157): Invalid viewport position on quick zoom
KUDr
parents:
5118
diff
changeset
|
189 |
} |
5044
e4e5bcdd79c6
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
Darkvater
parents:
5006
diff
changeset
|
190 |
SetWindowDirty(w); |
5045
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
191 |
/* Update the windows that have zoom-buttons to perhaps disable their buttons */ |
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
192 |
SendWindowMessageClass(w->window_class, how, w->window_number, 0); |
0 | 193 |
return true; |
194 |
} |
|
195 |
||
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
196 |
void ZoomInOrOutToCursorWindow(bool in, Window *w) |
0 | 197 |
{ |
8723
e513a23c2797
(svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium
parents:
8615
diff
changeset
|
198 |
assert(w != NULL); |
0 | 199 |
|
4536
d532b2611952
(svn r6365) -Cleanup: remove IsGeneratingWorld calls that are either not called or have no effect.
rubidium
parents:
4512
diff
changeset
|
200 |
if (_game_mode != GM_MENU) { |
8723
e513a23c2797
(svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium
parents:
8615
diff
changeset
|
201 |
ViewPort *vp = w->viewport; |
6626
207875b9069a
(svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight
parents:
6624
diff
changeset
|
202 |
if ((in && vp->zoom == ZOOM_LVL_MIN) || (!in && vp->zoom == ZOOM_LVL_MAX)) |
0 | 203 |
return; |
204 |
||
8723
e513a23c2797
(svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium
parents:
8615
diff
changeset
|
205 |
Point pt = GetTileZoomCenterWindow(in,w); |
0 | 206 |
if (pt.x != -1) { |
6730
9311a208f8f7
(svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
peter1138
parents:
6691
diff
changeset
|
207 |
ScrollWindowTo(pt.x, pt.y, w, true); |
0 | 208 |
|
152
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
135
diff
changeset
|
209 |
DoZoomInOutWindow(in ? ZOOM_IN : ZOOM_OUT, w); |
0 | 210 |
} |
211 |
} |
|
212 |
} |
|
213 |
||
6247 | 214 |
extern void UpdateAllStationVirtCoord(); |
0 | 215 |
|
4171 | 216 |
static void MainWindowWndProc(Window *w, WindowEvent *e) |
4077
d4d440dd8925
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4013
diff
changeset
|
217 |
{ |
2952 | 218 |
switch (e->event) { |
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
219 |
case WE_PAINT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
220 |
DrawWindowViewport(w); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
221 |
if (_game_mode == GM_MENU) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
222 |
int off_x = _screen.width / 2; |
0 | 223 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
224 |
DrawSprite(SPR_OTTD_O, PAL_NONE, off_x - 120, 50); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
225 |
DrawSprite(SPR_OTTD_P, PAL_NONE, off_x - 86, 50); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
226 |
DrawSprite(SPR_OTTD_E, PAL_NONE, off_x - 53, 50); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
227 |
DrawSprite(SPR_OTTD_N, PAL_NONE, off_x - 22, 50); |
1500
a66721629bc0
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1397
diff
changeset
|
228 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
229 |
DrawSprite(SPR_OTTD_T, PAL_NONE, off_x + 34, 50); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
230 |
DrawSprite(SPR_OTTD_T, PAL_NONE, off_x + 65, 50); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
231 |
DrawSprite(SPR_OTTD_D, PAL_NONE, off_x + 96, 50); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
232 |
} |
4536
d532b2611952
(svn r6365) -Cleanup: remove IsGeneratingWorld calls that are either not called or have no effect.
rubidium
parents:
4512
diff
changeset
|
233 |
break; |
7643
af32b07bc027
(svn r11174) -Codechange: add possibility to show the bounding boxes of sprites using CTRL-B so one can get a better understanding of the used bounding boxes to fix the glitches that still exist. Patch by frosch.
rubidium
parents:
7521
diff
changeset
|
234 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
235 |
case WE_KEYPRESS: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
236 |
switch (e->we.keypress.keycode) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
237 |
case 'Q' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
238 |
case 'Q' | WKC_META: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
239 |
HandleExitGameRequest(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
240 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
241 |
} |
0 | 242 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
243 |
/* Disable all key shortcuts, except quit shortcuts when |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
244 |
* generating the world, otherwise they create threading |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
245 |
* problem during the generating, resulting in random |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
246 |
* assertions that are hard to trigger and debug */ |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
247 |
if (IsGeneratingWorld()) break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
248 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
249 |
if (e->we.keypress.keycode == WKC_BACKQUOTE) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
250 |
IConsoleSwitch(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
251 |
e->we.keypress.cont = false; |
2639 | 252 |
break; |
0 | 253 |
} |
2639 | 254 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
255 |
if (e->we.keypress.keycode == ('B' | WKC_CTRL)) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
256 |
e->we.keypress.cont = false; |
8979
d7ba4e5eac9c
(svn r12771) -Codechange: remove more from variables.h.
rubidium
parents:
8977
diff
changeset
|
257 |
extern bool _draw_bounding_boxes; |
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
258 |
_draw_bounding_boxes = !_draw_bounding_boxes; |
8806
4fe163e0b52a
(svn r12547) -Feature: invisibility options to make objects invisible instead of transparent
smatz
parents:
8790
diff
changeset
|
259 |
MarkWholeScreenDirty(); |
4fe163e0b52a
(svn r12547) -Feature: invisibility options to make objects invisible instead of transparent
smatz
parents:
8790
diff
changeset
|
260 |
break; |
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
261 |
} |
8806
4fe163e0b52a
(svn r12547) -Feature: invisibility options to make objects invisible instead of transparent
smatz
parents:
8790
diff
changeset
|
262 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
263 |
if (_game_mode == GM_MENU) break; |
6427
7dc1012757d8
(svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138
parents:
6357
diff
changeset
|
264 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
265 |
switch (e->we.keypress.keycode) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
266 |
case 'C': |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
267 |
case 'Z': { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
268 |
Point pt = GetTileBelowCursor(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
269 |
if (pt.x != -1) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
270 |
if (e->we.keypress.keycode == 'Z') MaxZoomInOut(ZOOM_IN, w); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
271 |
ScrollMainWindowTo(pt.x, pt.y); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
272 |
} |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
273 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
274 |
} |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
275 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
276 |
case WKC_ESC: ResetObjectToPlace(); break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
277 |
case WKC_DELETE: DeleteNonVitalWindows(); break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
278 |
case WKC_DELETE | WKC_SHIFT: DeleteAllNonVitalWindows(); break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
279 |
case 'R' | WKC_CTRL: MarkWholeScreenDirty(); break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
280 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
281 |
#if defined(_DEBUG) |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
282 |
case '0' | WKC_ALT: // Crash the game |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
283 |
*(byte*)0 = 0; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
284 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
285 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
286 |
case '1' | WKC_ALT: // Gimme money |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
287 |
/* Server can not cheat in advertise mode either! */ |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
288 |
if (!_networking || !_network_server || !_network_advertise) |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
289 |
DoCommandP(0, 10000000, 0, NULL, CMD_MONEY_CHEAT); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
290 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
291 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
292 |
case '2' | WKC_ALT: // Update the coordinates of all station signs |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
293 |
UpdateAllStationVirtCoord(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
294 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
295 |
#endif |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
296 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
297 |
case '1' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
298 |
case '2' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
299 |
case '3' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
300 |
case '4' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
301 |
case '5' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
302 |
case '6' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
303 |
case '7' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
304 |
case '8' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
305 |
case '9' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
306 |
/* Transparency toggle hot keys */ |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
307 |
ToggleTransparency((TransparencyOption)(e->we.keypress.keycode - ('1' | WKC_CTRL))); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
308 |
MarkWholeScreenDirty(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
309 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
310 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
311 |
case '1' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
312 |
case '2' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
313 |
case '3' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
314 |
case '4' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
315 |
case '5' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
316 |
case '6' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
317 |
case '7' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
318 |
case '8' | WKC_CTRL | WKC_SHIFT: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
319 |
/* Invisibility toggle hot keys */ |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
320 |
ToggleInvisibilityWithTransparency((TransparencyOption)(e->we.keypress.keycode - ('1' | WKC_CTRL | WKC_SHIFT))); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
321 |
MarkWholeScreenDirty(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
322 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
323 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
324 |
case 'X' | WKC_CTRL: |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
325 |
ShowTransparencyToolbar(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
326 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
327 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
328 |
case 'X': |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
329 |
ResetRestoreAllTransparency(); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
330 |
break; |
6427
7dc1012757d8
(svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138
parents:
6357
diff
changeset
|
331 |
|
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
541
diff
changeset
|
332 |
#ifdef ENABLE_NETWORK |
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
333 |
case WKC_RETURN: case 'T': // smart chat; send to team if any, otherwise to all |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
334 |
if (_networking) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
335 |
const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
336 |
bool teamchat = false; |
5672
86ab5e4289a5
(svn r8132) -Fix (r6824): The game could crash when the chat key (<ENTER>) is pressed too vehemently during the join of the game. Your client's id does not exist in the clients list yet, and returns NULL.
Darkvater
parents:
5668
diff
changeset
|
337 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
338 |
if (cio == NULL) break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
339 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
340 |
/* Only players actually playing can speak to team. Eg spectators cannot */ |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
341 |
if (_patches.prefer_teamchat && IsValidPlayer(cio->client_playas)) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
342 |
const NetworkClientInfo *ci; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
343 |
FOR_ALL_ACTIVE_CLIENT_INFOS(ci) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
344 |
if (ci->client_playas == cio->client_playas && ci != cio) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
345 |
teamchat = true; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
346 |
break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
347 |
} |
5107
f3cddd9ce5f4
(svn r7179) -Codechange (r7173): Actually "prefer" team chat through the patch setting instead of
Darkvater
parents:
5102
diff
changeset
|
348 |
} |
f3cddd9ce5f4
(svn r7179) -Codechange (r7173): Actually "prefer" team chat through the patch setting instead of
Darkvater
parents:
5102
diff
changeset
|
349 |
} |
4887
71da70810c22
(svn r6824) -Feature: Change the functionality of the chat window. SHIFT+ENTER (SHIFT+T)
Darkvater
parents:
4848
diff
changeset
|
350 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
351 |
ShowNetworkChatQueryWindow(teamchat ? DESTTYPE_TEAM : DESTTYPE_BROADCAST, cio->client_playas); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
352 |
} |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
353 |
break; |
4887
71da70810c22
(svn r6824) -Feature: Change the functionality of the chat window. SHIFT+ENTER (SHIFT+T)
Darkvater
parents:
4848
diff
changeset
|
354 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
355 |
case WKC_SHIFT | WKC_RETURN: case WKC_SHIFT | 'T': // send text message to all players |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
356 |
if (_networking) ShowNetworkChatQueryWindow(DESTTYPE_BROADCAST, 0); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
357 |
break; |
5672
86ab5e4289a5
(svn r8132) -Fix (r6824): The game could crash when the chat key (<ENTER>) is pressed too vehemently during the join of the game. Your client's id does not exist in the clients list yet, and returns NULL.
Darkvater
parents:
5668
diff
changeset
|
358 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
359 |
case WKC_CTRL | WKC_RETURN: case WKC_CTRL | 'T': // send text to all team mates |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
360 |
if (_networking) { |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
361 |
const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
362 |
if (cio == NULL) break; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
363 |
|
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
364 |
ShowNetworkChatQueryWindow(DESTTYPE_TEAM, cio->client_playas); |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
365 |
} |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
366 |
break; |
1772
a619792528e9
(svn r2276) - CodeChange: remove DebugProc() and make the ALT+0...4 codes only available in debug mode
Darkvater
parents:
1705
diff
changeset
|
367 |
#endif |
a619792528e9
(svn r2276) - CodeChange: remove DebugProc() and make the ALT+0...4 codes only available in debug mode
Darkvater
parents:
1705
diff
changeset
|
368 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
369 |
default: return; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
370 |
} |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
371 |
e->we.keypress.cont = false; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
372 |
break; |
4335
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
373 |
|
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
374 |
case WE_SCROLL: { |
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
375 |
ViewPort *vp = IsPtInWindowViewport(w, _cursor.pos.x, _cursor.pos.y); |
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
376 |
|
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
377 |
if (vp == NULL) { |
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
378 |
_cursor.fix_at = false; |
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
379 |
_scrolling_viewport = false; |
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
380 |
} |
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
381 |
|
6654
31d17823506f
(svn r9885) -Fix r9846: some last bitshifts with zoom-levels that were forgotten
truelight
parents:
6626
diff
changeset
|
382 |
WP(w, vp_d).scrollpos_x += ScaleByZoom(e->we.scroll.delta.x, vp->zoom); |
31d17823506f
(svn r9885) -Fix r9846: some last bitshifts with zoom-levels that were forgotten
truelight
parents:
6626
diff
changeset
|
383 |
WP(w, vp_d).scrollpos_y += ScaleByZoom(e->we.scroll.delta.y, vp->zoom); |
6730
9311a208f8f7
(svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
peter1138
parents:
6691
diff
changeset
|
384 |
WP(w, vp_d).dest_scrollpos_x = WP(w, vp_d).scrollpos_x; |
9311a208f8f7
(svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
peter1138
parents:
6691
diff
changeset
|
385 |
WP(w, vp_d).dest_scrollpos_y = WP(w, vp_d).scrollpos_y; |
4335
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4300
diff
changeset
|
386 |
} break; |
4337
e705eef174bf
(svn r6038) -Codechange: move mousewheel code to event WE_MOUSEWHEEL instead of a general function that handles that
truelight
parents:
4335
diff
changeset
|
387 |
|
e705eef174bf
(svn r6038) -Codechange: move mousewheel code to event WE_MOUSEWHEEL instead of a general function that handles that
truelight
parents:
4335
diff
changeset
|
388 |
case WE_MOUSEWHEEL: |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4548
diff
changeset
|
389 |
ZoomInOrOutToCursorWindow(e->we.wheel.wheel < 0, w); |
4337
e705eef174bf
(svn r6038) -Codechange: move mousewheel code to event WE_MOUSEWHEEL instead of a general function that handles that
truelight
parents:
4335
diff
changeset
|
390 |
break; |
5045
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
391 |
|
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
392 |
case WE_MESSAGE: |
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
393 |
/* Forward the message to the appropiate toolbar (ingame or scenario editor) */ |
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
394 |
SendWindowMessage(WC_MAIN_TOOLBAR, 0, e->we.message.msg, e->we.message.wparam, e->we.message.lparam); |
846098142ffe
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
Darkvater
parents:
5044
diff
changeset
|
395 |
break; |
0 | 396 |
} |
397 |
} |
|
398 |
||
399 |
||
6247 | 400 |
void ShowSelectGameWindow(); |
401 |
||
402 |
void SetupColorsAndInitialWindow() |
|
0 | 403 |
{ |
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
404 |
for (uint i = 0; i != 16; i++) { |
4171 | 405 |
const byte *b = GetNonSprite(PALETTE_RECOLOR_START + i); |
1357 | 406 |
|
0 | 407 |
assert(b); |
4444
8d40844e6755
(svn r6222) Remove struct ColorList, because the names of its attributes are plain confusing
tron
parents:
4434
diff
changeset
|
408 |
memcpy(_colour_gradient[i], b + 0xC6, sizeof(_colour_gradient[i])); |
0 | 409 |
} |
410 |
||
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
411 |
int width = _screen.width; |
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
412 |
int height = _screen.height; |
0 | 413 |
|
8977
288be89be1dc
(svn r12769) -Codechange: some coding style cleanups.
rubidium
parents:
8976
diff
changeset
|
414 |
Window *w = AllocateWindow(0, 0, width, height, MainWindowWndProc, WC_MAIN_WINDOW, NULL); |
8994
fb5e761cf141
(svn r12789) -Codechange: rename AssignWindowViewport to InitializeWindowViewport because the viewport is now part of the window struct. Patch by Alberth.
rubidium
parents:
8985
diff
changeset
|
415 |
InitializeWindowViewport(w, 0, 0, width, height, TileXY(32, 32), ZOOM_LVL_VIEWPORT); |
5432
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
416 |
|
6201
bee01dc45e39
(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas
parents:
5894
diff
changeset
|
417 |
/* XXX: these are not done */ |
2639 | 418 |
switch (_game_mode) { |
5432
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
419 |
default: NOT_REACHED(); |
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
420 |
case GM_MENU: |
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
421 |
ShowSelectGameWindow(); |
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
422 |
break; |
0 | 423 |
|
5432
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
424 |
case GM_NORMAL: |
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
425 |
case GM_EDITOR: |
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
426 |
ShowVitalWindows(); |
5940d6a253c5
(svn r7638) -Codechange: Remove special window ShowJoinStatusWindowAfterJoin and shuffle around
Darkvater
parents:
5431
diff
changeset
|
427 |
break; |
0 | 428 |
} |
429 |
} |
|
430 |
||
8976
1a8367713b73
(svn r12768) -Codechange: move the statusbar GUI to it's own file.
rubidium
parents:
8975
diff
changeset
|
431 |
extern void ShowStatusBar(); |
1a8367713b73
(svn r12768) -Codechange: move the statusbar GUI to it's own file.
rubidium
parents:
8975
diff
changeset
|
432 |
|
6247 | 433 |
void ShowVitalWindows() |
983
4765bf636f6b
(svn r1479) -Added highscore chart (accessible from the difficulty window) with top5 companies for a given difficulty (select the difficulty in the menu)
darkvater
parents:
970
diff
changeset
|
434 |
{ |
8723
e513a23c2797
(svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium
parents:
8615
diff
changeset
|
435 |
Window *w = AllocateToolbar(); |
5048
b784951def0a
(svn r7098) -Regression (r7094): Zoom buttons were not properly updated with a new/loaded game. The
Darkvater
parents:
5046
diff
changeset
|
436 |
DoZoomInOutWindow(ZOOM_NONE, w); |
b784951def0a
(svn r7098) -Regression (r7094): Zoom buttons were not properly updated with a new/loaded game. The
Darkvater
parents:
5046
diff
changeset
|
437 |
|
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4299
diff
changeset
|
438 |
/* Status bad only for normal games */ |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4299
diff
changeset
|
439 |
if (_game_mode == GM_EDITOR) return; |
983
4765bf636f6b
(svn r1479) -Added highscore chart (accessible from the difficulty window) with top5 companies for a given difficulty (select the difficulty in the menu)
darkvater
parents:
970
diff
changeset
|
440 |
|
8976
1a8367713b73
(svn r12768) -Codechange: move the statusbar GUI to it's own file.
rubidium
parents:
8975
diff
changeset
|
441 |
ShowStatusBar(); |
983
4765bf636f6b
(svn r1479) -Added highscore chart (accessible from the difficulty window) with top5 companies for a given difficulty (select the difficulty in the menu)
darkvater
parents:
970
diff
changeset
|
442 |
} |
4765bf636f6b
(svn r1479) -Added highscore chart (accessible from the difficulty window) with top5 companies for a given difficulty (select the difficulty in the menu)
darkvater
parents:
970
diff
changeset
|
443 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8806
diff
changeset
|
444 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8806
diff
changeset
|
445 |
* Size of the application screen changed. |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8806
diff
changeset
|
446 |
* Adapt the game screen-size, re-allocate the open windows, and repaint everything |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8806
diff
changeset
|
447 |
*/ |
6247 | 448 |
void GameSizeChanged() |
0 | 449 |
{ |
2429
5e5b66fb8420
(svn r2955) Fix: make ottd start with the last resolution you had set (custom) (win32)
Darkvater
parents:
2361
diff
changeset
|
450 |
_cur_resolution[0] = _screen.width; |
5e5b66fb8420
(svn r2955) Fix: make ottd start with the last resolution you had set (custom) (win32)
Darkvater
parents:
2361
diff
changeset
|
451 |
_cur_resolution[1] = _screen.height; |
8985
6461e5c6d6e4
(svn r12779) -Codechange: remove a few constants from openttd.h.
rubidium
parents:
8979
diff
changeset
|
452 |
ScreenSizeChanged(); |
0 | 453 |
RelocateAllWindows(_screen.width, _screen.height); |
454 |
MarkWholeScreenDirty(); |
|
455 |
} |