Commit Graph

194 Commits (0fdabca605726b81ba3bce9185f354f276ef949a)

Author SHA1 Message Date
Peter Nelson 40fa45a76a Codechange: Emplace std::pair into vectors.
This creates the pair in the vector, instead of creating it then copying it in.
2 months ago
Rubidium 4f2412a272 Codechange: range based for loops instead of C-style for loops 3 months ago
Peter Nelson de4e00c93f
Codechange: Pass by reference to UpdateWidgetSize. (#12457)
These parameters are always provided and not optional.
3 months ago
Patric Stout a3cfd23cf9
Codechange: rename byte to uint8_t (#12308) 4 months ago
Rubidium 86cb184eb4 Codechange: use std::source_location over __FILE__ and __LINE__ for WindowDesc 4 months ago
Peter Nelson 912d7bd80e Codechange: Give ColourShade values names instead of numbers. 4 months ago
Peter Nelson ae3390fe48 Codechange: Add ColourShade enum. 4 months ago
Peter Nelson 0463d4c198 Codechange: Remove direct access to _colour_gradient.
Access is now through GetColourGradient, which ensures parameters are in range.
4 months ago
Richard Wheeler c25d9f5c81
Fix: Make link graph node borders scale with GUI (#12167) 4 months ago
frosch 68c64d2511 Codechange: Remove TKM string codes by duplicating strings. 5 months ago
Tyler Trahan 735abfe111
Codechange: Split dates and timers into Economy and Calendar time (#10700) 5 months ago
Peter Nelson c0ab436077
Codechange: Store Colours in Colours type. (#11625)
This reduces casts, some magic numbers, and introduces a bit of type-safety.
5 months ago
frosch f457be5a27
Fix #11819, aa5ba5b: Out-of-bounds access in linkgraph GUI. (#11821) 6 months ago
Rubidium aa5ba5bd7f Codechange: allow certain enumeration to be added
Otherwise C++20 doesn't like it.
6 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.
6 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.
6 months ago
Peter Nelson 7124b4eef1 Codechange: Use std::unique_ptr for all NWidgets. 6 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.
6 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.
6 months ago
Tyler Trahan 2a62caa30b Codechange: Use Ticks for BaseConsist timetable fields 7 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
7 months ago
Peter Nelson 58c252b81a Cleanup: Remove unnecessary pressed button offset code. 7 months ago
Jonathan G Rennison c5a292c0df
Fix #11493: Incorrect flow values in LinkGraphJob::EdgeAnnotation (#11494) 7 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(...)`.
7 months ago
Peter Nelson d4008850e3 Codechange: Ensure function opening `{` is on new line. 8 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.
8 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.
8 months ago
Peter Nelson 18fb8e153f Codechange: Add __FILE__/__LINE__ of WindowDesc to WindowDesc.
This is to allow unit-tests to produce more useful output.
8 months ago
Peter Nelson 53845bc024 Codechange: Move includes to correct place.
Some other source file inadvertently included things via smallmap_gui.h
8 months ago
Peter Nelson f91462f54b Codechange: Don't access SmallMapWindow method directly from LinkGraphOverlay. 8 months ago
Peter Nelson 49dae08a3b Codechange: Add missing override specifiers. 9 months ago
frosch b6c8f301be Codechange: Silence warnings about intentionally unused parameters. 10 months ago
Peter Nelson 9d1b131c44 Codechange: Use correct constant for invalid cargo type. 10 months ago
Tyler Trahan 701a61c9af Codechange: Delete date_type.h 10 months ago
Tyler Trahan 77173a6a10 Codechange: Move date consts and functions to CalendarTime and TimerGameCalendar classes 10 months ago
Tyler Trahan fca2b37726 Codechange: Move Ticks into their own class 10 months 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.
10 months ago
Patric Stout 299570b2c1
Codechange: make TimerGameCalendar Date and Year types strongly typed (#10761) 11 months ago
Patric Stout a9ed590ca7
Codechange: use TimerGameCalendar::Date for variables in linkgraph that are dates (#11187) 11 months 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
12 months 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
12 months 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