Commit Graph

181 Commits (fd0528a9b4a695c601c7b0ae1ad897ed719800b1)

Author SHA1 Message Date
Rubidium aa5ba5bd7f Codechange: allow certain enumeration to be added
Otherwise C++20 doesn't like it.
8 months ago
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.
8 months ago
Peter Nelson 952d111b94 Codechange: Split CT_INVALID into CT_INVALID and INVALID_CARGO.
INVALID_CARGO is a CargoID and should be used for most purposes in game.
CT_INVALID is a CargoType used for defining default properties.
9 months ago
Peter Nelson 7124b4eef1 Codechange: Use std::unique_ptr for all NWidgets. 9 months ago
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.
9 months ago
Peter Nelson b86182ab84 Codechange: Use std::map to provide indexed widget access.
This removes the need to determine the biggest widget index and replaces C-style memory handling.
9 months ago
Tyler Trahan 2a62caa30b Codechange: Use Ticks for BaseConsist timetable fields 10 months ago
Jonathan G Rennison 2cbe91c312
Fix #11551, aab580e0a: Link graph job results were incorrectly applied (#11558)
Edge flows were incorrectly restricted because the restricted
instead of unrestricted last update date was checked

See also: #10314
10 months ago
Peter Nelson 58c252b81a Cleanup: Remove unnecessary pressed button offset code. 10 months ago
Jonathan G Rennison c5a292c0df
Fix #11493: Incorrect flow values in LinkGraphJob::EdgeAnnotation (#11494) 10 months ago
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(...)`.
10 months ago
Peter Nelson d4008850e3 Codechange: Ensure function opening `{` is on new line. 11 months ago
Peter Nelson ab535c0a86
Codechange: Add base() method to StrongType to allow access to the base type without casting. (#11445)
This removes the ability to explicitly cast to the base type, but the requirement
to use .base() means the conversion is still explicit.
11 months ago
Peter Nelson bbd64bbe2b
Fix #9545: Crash when all cargo types are disabled. (#11432)
This is not a very useful state, but it's nice to not crash.

Some parts of the game don't (yet) check for cargo types being redefined, that is out-of-scope here.
11 months ago
Peter Nelson 18fb8e153f Codechange: Add __FILE__/__LINE__ of WindowDesc to WindowDesc.
This is to allow unit-tests to produce more useful output.
11 months ago
Peter Nelson 53845bc024 Codechange: Move includes to correct place.
Some other source file inadvertently included things via smallmap_gui.h
11 months ago
Peter Nelson f91462f54b Codechange: Don't access SmallMapWindow method directly from LinkGraphOverlay. 11 months ago
Peter Nelson 49dae08a3b Codechange: Add missing override specifiers. 1 year ago
frosch b6c8f301be Codechange: Silence warnings about intentionally unused parameters. 1 year ago
Peter Nelson 9d1b131c44 Codechange: Use correct constant for invalid cargo type. 1 year ago
Tyler Trahan 701a61c9af Codechange: Delete date_type.h 1 year ago
Tyler Trahan 77173a6a10 Codechange: Move date consts and functions to CalendarTime and TimerGameCalendar classes 1 year ago
Tyler Trahan fca2b37726 Codechange: Move Ticks into their own class 1 year ago
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.
1 year ago
Patric Stout 299570b2c1
Codechange: make TimerGameCalendar Date and Year types strongly typed (#10761) 1 year ago
Patric Stout a9ed590ca7
Codechange: use TimerGameCalendar::Date for variables in linkgraph that are dates (#11187) 1 year ago
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
1 year ago
Jonathan G Rennison 864d2352c2 Fix: Integer overflow in LinkGraphOverlay::ShowTooltip for long links
In particular when fully zoomed in
This could result in tooltips not being shown at all, or being shown
when not appropriate
1 year ago
Rubidium 836541b41c Codechange: use SetDParam and CopyOutDParam for tooltips 1 year ago
Rubidium 820fe8c621 Codechange: use std::string and concatenation when combining multiple formatted strings 1 year ago
Patric Stout 9eda419f9b
Fix 646a7e62: recalc_time was not scaled properly (#10901)
This caused "runtime" to underflow or, if you are lucky, hit an
assert in ScaleToMonthly when it hits zero. But mostly underflow.
1 year ago
PeterN 702194cfef
Change: Cargo flow legend only shows defined cargo. (#10872)
This removes the large mostly-empty grid of cargo buttons when not using a complex industry set.
1 year ago
Peter Nelson c38df2d589 Codechange: Use std::map instead of custom SmallMap. 1 year ago
Peter Nelson 56085be9bd Codechange: Move includes for common STL headers to stdafx. 1 year ago
Patric Stout 199e41c762
Codechange: use default dtor instead of empty (#10826) 1 year ago
Peter Nelson e6740046ee Codechange: Use range-for iteration. 1 year ago
Rubidium 68ff3fd062 Change: include fmt.h C++ headers in stdafx.h
This to prevent compilation issues between runs with and without precompiled
headers. Also remove the headers from the rest of the code base as they are
not needed there anymore, although they do relatively little harm.
1 year ago
Peter Nelson 0880616851 Codechange: Remove various STRING strings. 1 year ago
Tyler Trahan 6501f84b4a
Codechange: Move calendar date functions inside TimerGameCalendar (#10753) 1 year ago
Peter Nelson 6be6703498 Fix: Linkgraph legend assumes strings are small.
Ensure all linkgraph legend strings are drawn with FS_SMALL forced, so
that it does not rely on NewGRF authors.
1 year ago
PeterN 57f2d70fef
Change: Use cstdint instead of rolling our own types. (#10651) 1 year ago
Tyler Trahan 930f0a16d8 Codechange: Define Date/Year/Month/Day within TimerGameCalendar class 1 year ago
Patric Stout 7aa2b9ab0a
Codechange: move all date-related variables inside the timer (#10706) 1 year ago
PeterN 9910240f0e
Cleanup: Remove obsolete (Make)EnumPropsT. (#10697)
This was used by the command system to help extract p1/p2 parameters, which no longer happens.
1 year ago
Tyler Trahan 646a7e625b
Change: Use seconds for Linkgraph update settings (#10610) 1 year ago
Peter Nelson 5199881a8d Codechange: Use correct type for linkgraph company mask. 1 year ago
PeterN c1077212d7
Codechange: Use a shared_ptr for viewport overlay. (#10586) 2 years ago
Jonathan G Rennison 87f4d37de3
Fix #10522: Link graph line tooltip test for vertical lines (#10524) 2 years ago
Michael Lutz aab580e0ac Codechange: [Linkgraph] Drop node/edge wrappers from LinkGraph. 2 years ago
Michael Lutz 4d3da0cf14 Codechange: [Linkgraph] Drop node/edge wrappers from LinkGraphJob. 2 years ago