Rubidium
aa5ba5bd7f
Codechange: allow certain enumeration to be added
...
Otherwise C++20 doesn't like it.
2024-01-16 23:30:23 +01:00
Peter Nelson
7737aa6640
Codechange: Make all NWidgetPart arrays constexpr.
...
This ensures that the arrays are not created at runtime and prevents using non-constexpr values.
2024-01-16 21:57:05 +00:00
Rubidium
e3f49ee7a0
Codechange: coding style fixes
2024-01-04 16:23:54 +01:00
Peter Nelson
628092f133
Codechange: Use GetParentWidget to find widget's NWidgetMatrix container.
2023-12-30 22:02:37 +00:00
Peter Nelson
6215e9bf77
Fix #11655 : Crash due to NWidgetMatrix modifying widget->index. ( #11657 )
...
NWidgetMatrix modifies its child widget's index to indicate which element
is to be drawn, which now causes issues with code that does not know about
stuffing extra data into the index.
Instead, let NWidgetMatrix store the currently processing element, and
retrieve this information from the matrix widget while child widgets are
being drawn.
This means only widgets that are children of NWidgetMatrix need to know
anything about their extra data.
2023-12-30 18:24:26 +00:00
Peter Nelson
a0dfb76e34
Codechange: Replace mishmash of types for widget index with WidgetID.
...
Indices were stored as int, but often passed around as uint/uint8_t and casts.
Now they should all use WidgetID.
2023-12-30 00:23:57 +00:00
Peter Nelson
7466c3c39e
Fix: Draw unavailable mask over picker sprite instead of behind it.
...
This makes these disabled picker buttons consistent with other disabled buttons.
2023-12-20 09:29:28 +00:00
Peter Nelson
712a4bb40b
Fix: Prevent picker preview sprites from overflowing button bevel.
2023-12-20 09:29:28 +00:00
Peter Nelson
313ee13e5f
Codechange: Add Rect version of FillDrawPixelInfo().
...
This simplifies most callers as they longer have to split out a rect.
2023-12-20 09:29:28 +00:00
Peter Nelson
661e0cd82d
Fix: Make compact picker windows expand to fill if necessary. ( #11591 )
2023-12-16 23:08:42 +00:00
Peter Nelson
dcf730f1f6
Codechange: Optionally allow passing state to GUIList sorter function.
...
GUIList sorter functions can currently only use global state, which makes per-window-instance sorting difficult.
2023-12-04 08:24:39 +00:00
Peter Nelson
8db7c79e79
Codechange: Add DropDownIcon constructor to override dimension.
...
This avoids the need to construct a DropDownIcon and set the dimension after.
2023-12-02 15:23:05 +00:00
Peter Nelson
c18a1494b7
Codechange: Remove FONT_HEIGHT_... macros. ( #11481 )
...
These make it look like we're dealing with a constant, but actually each is a call to `GetCharacterHeight(...)`.
2023-11-21 19:04:24 +00:00
Peter Nelson
f58a7ef673
Codechange: Remove now-unnecessary containers in picker layouts. ( #11473 )
...
These are no longer necessary as the issue they work around was resolved by #11471
2023-11-20 00:14:06 +00:00
Peter Nelson
d4008850e3
Codechange: Ensure function opening `{` is on new line.
2023-11-09 20:15:38 +00:00
Peter Nelson
db18f60beb
Change: Improve layout of road/tram stop pickers.
2023-11-07 18:27:51 +00:00
Peter Nelson
d380f2f3a2
Codechange: Simplify layout of depot pickers.
2023-11-05 20:09:45 +00:00
Peter Nelson
ef385499c7
Codechange: Remove ineffective NWidgetParts. ( #11443 )
2023-11-05 14:09:47 +00:00
Peter Nelson
18fb8e153f
Codechange: Add __FILE__/__LINE__ of WindowDesc to WindowDesc.
...
This is to allow unit-tests to produce more useful output.
2023-11-02 22:25:01 +00:00
Rubidium
c9276c2959
Codechange: replace x.size() == 0 with x.empty()
2023-10-20 23:05:43 +02:00
Peter Nelson
fd6f1e844a
Codechange: Avoid emplace_back(new()) into a unique_ptr. ( #11384 )
...
This could theoretically leave an unmanaged pointer in certain circumstances, and directly using
make_unique shows intent.
2023-10-20 18:40:48 +01:00
Loïc Guilloux
ab805c4e9e
Fix #11375 , 7c37dcb: Use STRING2 when the passed string can have 2 parameters ( #11376 )
2023-10-16 17:49:44 +00:00
Peter Nelson
f379b31e28
Add: data parameter in Window::Close method.
...
This allows passing data when closing a window, e.g. to indicate how it was closed.
2023-10-13 20:47:28 +01:00
frosch
b5885295f0
Codechange: Use parameters, which should be used.
2023-09-19 22:49:59 +02:00
frosch
b6c8f301be
Codechange: Silence warnings about intentionally unused parameters.
2023-09-19 22:49:59 +02:00
Rubidium
3a2509198f
Codechange: use better location for the "invalid" action sentinel value
...
It used to be a random sentinel for end-of-(widget-)list that was used to tell
that no action has taken place yet. Since the last action is practically the
widget that was pressed, add the sentinel to that enumeration.
2023-09-17 19:44:20 +02:00
Rubidium
8ab0936491
Codechange: use parameter pack/folding instead of va_arg macros for widget states
2023-09-16 23:09:53 +02:00
Peter Nelson
e8015e497d
Codechange: Use begin/end of nwidget parts of begin/length.
...
This simplifies processing nwidget parts as, unlike the remaining length, the pointer to the end of the list never changes. This is the same principle as we use(d) for tracking end instead of length for C-style strings.
And this removes 160~ instances of the lengthof() macro.
2023-09-04 10:20:45 +01:00
arikover
5d3f7939e2
Fix d42a78f: Show correct road speed in construction dropdowns ( #11196 )
2023-08-15 10:34:36 +02:00
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
Jonathan G Rennison
3ac663e619
Fix: Build road/tram stop windows did not set WindowDesc::ini_key ( #11126 )
...
Saved default window sizes were not persisted in the configuration file
2023-07-12 22:07:31 +02:00
PeterN
d42a78f3e8
Codechange: Make DropDownListStringItem preformat and remove other implementations. ( #11063 )
...
Having to choose between DropDownListStringItem, DropDownListCharStringItem, and DropDownListParamStringItem depending on whether to draw a StringID, a raw string, or a StringID with extra parameters was needlessly complex.
Instead, allow passing a StringID or raw string to DropDownListStringItem. This will preformat the StringID into a raw string, and can therefore accept parameters via the normal SetDParam mechanism.
This also means that strings no longer need to be formatted on every draw.
2023-06-23 08:30:13 +00:00
Rubidium
7c37dcb8e3
Fix: do not use {STRING} when {STRING1} or {STRING2} is needed
2023-06-14 09:44:06 +02:00
PeterN
f814c86389
Codechange: Reorganise hotkey initialisation. ( #10951 )
...
Hotkeys are now initialized inline, and use std::vector instead of
separate static C-arrays and std::string instead of char *. The list end
marker is no longer required.
2023-06-05 18:12:30 +01:00
Peter Nelson
941dbadf9e
Codechange: Add and use GetScrolledItemFromWidget to get a list item.
...
This function returns an iterator, either to the selected item or the
container's end.
This makes handling the result more robust as indices are not used.
2023-05-12 21:45:32 +01:00
Peter Nelson
0513a6ccb0
Change: Use separate names for default stations/roadstops.
2023-05-09 23:03:14 +02:00
PeterN
882f06bf14
Fix: Support more than 256 stations/waypoints/roadstops per class. ( #10793 )
...
It was already possible to define more than 256 per class, but not possible
to use them as the index used in GUI and passed through commands was limited
to a byte.
2023-05-08 18:09:33 +00:00
Peter Nelson
d2034d9c38
Codechange: Scrollbar methods now accept size_t.
...
This clears up a lot of casts from size_t to int.
2023-05-07 20:25:44 +01:00
Peter Nelson
0880616851
Codechange: Remove various STRING strings.
2023-05-05 07:07:54 +01:00
Tyler Trahan
ba3de0383a
Codechange: Pass more std::string to StringFilter::AddLine() ( #10743 )
2023-04-30 10:23:05 +02:00
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
2023-04-24 15:56:01 +00:00
Patric Stout
3ebc7ad16e
Codechange: migrate all game-time-related timers to the new framework
2023-04-15 13:58:55 +02:00
PeterN
f1144de509
Feature: Separate rail/road and sea/air velocity units, and add knots. ( #10594 )
...
This is achieved by packing vehicle type along with the velocity so that
the string system can decode and pick the appropriate unit.
2023-04-08 12:26:13 -04:00
Jonathan G Rennison
4c1406a4b5
Add: NewGRF road stops
2023-02-26 21:28:30 +01:00
Rubidium
f001e84e5e
Codechange: use RAII to automatically restore _cur_dpi after use
2023-01-28 20:33:02 +01:00
Peter Nelson
ed60c88b0a
Change: Use power-of-2 scaling for some dimensions in GUI.
...
These are related to drawing sprites that are normally drawn on the
landscape, and should therefore still follow power-of-2 scaling to fit
correctly.
2022-11-12 18:28:39 +00:00
Peter Nelson
890b2666d3
Change: Use scaled WidgetDimensions.
2022-11-12 18:28:39 +00:00
Peter Nelson
1f1378c129
Change: Align picker previews to button centre.
2022-11-12 18:28:39 +00:00
Peter Nelson
ab55d3e1fa
Change: Rearrange layouts of station/depot picker windows.
2022-11-12 18:28:39 +00:00
Tyler Trahan
db98cedb7e
Fix #9883 : Show cost/income float over end tile of rail or road construction
2022-10-16 14:15:31 +02:00
Peter Nelson
af6c4d50ce
Change: Tidy up coverage area label widget layout.
...
Label is now centered properly and uses standard spacing.
2022-10-03 22:14:18 +01:00
Peter Nelson
8626090b24
Codechange: Draw station acceptance text in its own widget.
2022-10-03 22:14:18 +01:00
Michael Lutz
8d54f76539
Fix #9837 , 46bd2f1c: Road build with wrong half-tile ends.
2022-03-20 12:56:03 +01:00
Michael Lutz
8503854655
Codechange: Pass unpacked command arguments to command callbacks (except Script).
2021-12-16 22:28:32 +01:00
Michael Lutz
46bd2f1ced
Codechange: Un-bitstuff remaining transport infrastructure commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
6fe445e6c0
Codechange: Un-bitstuff station/depot/waypoint commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
eab18f06a4
Codechange: Pass additional data as byte stream to command callbacks.
2021-12-16 22:28:32 +01:00
Michael Lutz
0f64ee5ce1
Codechange: Template DoCommandP to automagically reflect the parameters of the command proc.
...
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
e740c24eb7
Codechange: Template DoCommand to automagically reflect the parameters of the command proc.
...
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
996b16de70
Codechange: Use lambdas instead of CommandContainer to manage station picker commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
4fc055d6e9
Codechange: Align parameter order of command callbacks to command handlers.
2021-12-16 22:28:32 +01:00
Michael Lutz
a38bbefe1b
Codechange: Untangle command code, flags and error string for DoCommand*.
2021-12-16 22:28:32 +01:00
Michael Lutz
549caca39c
Codechange: Move command arguments to the back of the networked command function calls.
2021-12-16 22:28:32 +01:00
Michael Lutz
b6933a2ebd
Codechange: Move command arguments to the back of the DoCommand function call.
2021-12-16 22:28:32 +01:00
glx22
5799402f7a
Codechange: Rename window related DeleteXXX to match new behaviour
2021-05-29 21:08:25 +02:00
glx22
994bf19aef
Fix f6d5c01: Delay deletion when closing windows
2021-05-29 21:08:25 +02:00
glx22
38c97e1492
Codechange: Replace TILE_AREA_LOOP with range-based for loops
2021-05-13 00:13:54 +02:00
Peter Nelson
de81afdf4b
Cleanup: Replace FOR_ALL_SORTED_ROADTYPES macro with range iterator.
2021-04-28 23:54:31 +01:00
frosch
d9b4413bc9
Codechange: rename sound ids to make more sense. ( #8701 )
2021-02-20 19:01:04 +01:00
Patric Stout
7ba0fa4bf0
Fix af22a4f2: scenario editor doesn't have build station/depot/etc ( #8529 )
2021-01-08 19:48:39 +01:00
Patric Stout
af22a4f2cd
Add: show in the tooltip of disabled toolbar buttons why they are disabled
2021-01-08 16:43:51 +01:00
Patric Stout
85a49a0d36
Change: always allow to click on the toolbar icons for road/rail/dock/airport
...
This change allows a user to see what is available and what will become
available before it is available, instead of only disabling the button
with no further explanation. It also always allows building roads and
canals, even if no vehicles are available for road / water.
For rail/road/tram, a dropdown with available types is shown. If
none are available, it reads "None". If the type is not yet available,
it is greyed out.
For dock/airport, this always open the toolbar, but building airports,
docks, and depots buttons are disabled till vehicles are available
for those.
Road is the only exception, with the primary road always being
available. Here too, stations and depots are disabled till vehicles
become available. It does mean you can now always build roads to
for example help towns grow.
2021-01-08 16:43:51 +01:00
Łukasz Hryniuk
3effad0bea
Fix: Properly invalidate mouse-over station coverage highlight ( #8263 )
2020-07-27 17:37:47 +01:00
Yexo
587d8e716b
Fix #8155 : Roadtype speed limit in toolbar dropdown in scenario editor was doubled
2020-05-19 20:01:09 +02:00
stormcone
2514f43909
Fix #8055 , c02ef3e: Crash when roadtype availability changed with the road toolbar open ( #8058 )
2020-04-05 18:34:36 +01:00
glx
0b5e0522b6
Fix #8043 , c02ef3e4: Incorrect handling of global road/tram hotkeys
2020-03-30 08:17:40 +02:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
stormcone
1e5029563c
Fix #7635 : Game crash on exit scenario editor.
2019-10-08 00:21:18 +01:00
JMcKiern
04f659e768
Fix: Some typos found using codespell
2019-09-29 21:27:32 +01:00
glx22
b3fd787959
Fix #7188 : check the validity of command callback for scripts ( #7701 )
2019-09-07 17:37:01 +01:00
peter1138
c02ef3e456
Feature: Add NotRoadTypes (NRT)
2019-05-01 21:36:27 +02:00
PeterN
14dc8dd619
Fix 81d335b: Don't check state of widget not present in scenario editor. ( #7551 )
2019-04-29 19:09:11 +01:00
peter1138
81f0f97406
Feature: Add existing station coverage area display when placing new station parts.
2019-04-25 09:14:01 +02:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
peter1138
317f69c152
Codechange: Use override specifier in Window-derived classes.
2019-03-24 16:10:04 +01:00
Peter Nelson
2a8fa5fef9
Change: Split up Window::OnTick into OnGameTick and OnRealtimeTick. Adjust timers to work with milliseconds instead of ticks.
2019-01-11 11:56:21 +00:00
Alexis
25dbc6542c
Fix #6659 : Bus stations can be demolished when not in demolish mode ( #6815 )
...
For Bus and Road stations only, if you are in demolish mode and click on the station
without releasing the button. Then you cancel demolish mode with R key.
Finally you release the mouse button. The station was demolished, instead of being built.
The demolish mode was not checked when mouse up event occured.
2018-06-06 13:08:22 +01:00
frosch
1d67a4e88d
(svn r27734) -Change: Hide the drive-in stops from the tram station picker.
2017-01-15 14:27:54 +00:00
frosch
8084f39bf3
(svn r27577) -Fix [FS#6386]: Dock and roadstop picker, client list and town authority window did not auto-resize according to their content when they were positioned at the bottom of the screen. (Eearslya)
2016-05-22 10:52:02 +00:00
frosch
9aa33862a7
(svn r27571) -Codechange: Consistent naming for command callbacks which play a sound effect.
2016-05-22 10:07:48 +00:00
michi_cc
2b8bb12d62
(svn r27381) -Fix: Warnings due to C++11 requirements for explicit narrowing conversions in initializer lists.
2015-08-10 20:24:13 +00:00
frosch
0ea4127837
(svn r27251) -Feature [FS#6252]: Make Ctrl+Remove-Roadstop also remove the road, just like for rail stations. (adf88)
2015-04-26 09:51:24 +00:00
frosch
c639fb0d8e
(svn r27163) -Fix [FS#6204]: Toolbars were not invalidated when changing max-vehicles settings. (adf88)
2015-02-22 15:26:27 +00:00
frosch
a8080b6256
(svn r27134) -Codechange: Simplify GUI scaling by adding UnScaleGUI() and ScaleGUITrad().
2015-02-01 20:54:24 +00:00
alberth
edea2ce96d
(svn r27084) -Doc: Improve documentation of AllocateWindowDescFront.
2014-12-18 16:50:11 +00:00
peter1138
51fe741987
(svn r26906) -Codechange: Scale depot and station picker buttons by GUI zoom level.
2014-09-22 08:01:25 +00:00
rubidium
0463dbdc9e
(svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2014-04-23 20:13:33 +00:00
frosch
5370613924
(svn r26422) -Fix [FS#5946]: Some road constructions used the rail sound effect. Rename the enum items to properly reflect their purpose.
2014-03-23 13:28:32 +00:00
zuu
15ebb29447
(svn r25854) -Change: Display the cost to upgrade a bridge at the end of bridge that was clicked and not the other end, which could be outside of the screen in some cases (cirdan, LordAro)
2013-10-12 22:45:19 +00:00
frosch
fef30983e6
(svn r25414) -Codechange: Move handling of global hotkeys to HotkeyList.
2013-06-15 15:31:22 +00:00