Patric Stout
f5fad88723
Change: base autosaves intervals on real time (instead of game time) ( #10655 )
...
There are two fundamental issues with autosave:
- When fast-forwarding, it saves way too often
- When paused, it never saves
Both makes no sense. Autosaves are meant to prevent you from
accidentally losing your work. The emphasis on "your" work.
To solve both issues, the autosave now works on real time. You
can select every 10 / 30 / 60 / 120 minutes, which are similar to
what the setting was in game-months.
When you pause, autosaving will stop. Unless you make any change
to the game; then it will continue to make autosaves, even so
the game is paused. Unpausing / pausing resets this mechanism.
1 year ago
PeterN
57f2d70fef
Change: Use cstdint instead of rolling our own types. ( #10651 )
1 year ago
Rubidium
9fe853f7b5
Codechange: use fmt::format instead of vseprintf for midi command formatting
1 year ago
Rubidium
c8ff6a9f7c
Codechange: replace str_fmt with std::string constructs
1 year ago
Rubidium
fce4b5ea69
Codechange: use Debug over printf for dedicated forking output
1 year ago
Rubidium
75cd790ab9
Codechange: use fmt::format for FormatHexNumber
1 year ago
Rubidium
630d3bc053
Codechange: use fmt::format instead of printf for the NewGRF profiler
1 year ago
Rubidium
3105d0b09e
Codechange: replace text-buf printf with fmt::format
1 year ago
Charles Pigott
80bd5ad727
Codechange: Use std::strto* variants everywhere ( #10720 )
1 year ago
Tyler Trahan
997c936893
Codechange: Don't use bytes for months in graph GUI
1 year ago
Tyler Trahan
930f0a16d8
Codechange: Define Date/Year/Month/Day within TimerGameCalendar class
1 year ago
Peter Nelson
20d2558f1b
Fix: Clear church/stadium flags when copying house substitute specs.
1 year ago
Peter Nelson
64782cf005
Fix #10627 : Houses subsitute specs should only be copied on first definition.
...
Before #10627 , substitue specs were always copied despite redefinition.
1 year ago
PeterN
7535eb65e2
Codechange: Use vector instead of mallloc/free for Action 6 data. ( #10713 )
1 year ago
PeterN
1697dff744
Change: Hide all variants from UI when (display) parent is hidden. ( #10708 )
1 year ago
translators
5794590b36
Update: Translations from eints
...
vietnamese: 1 change by KhoiCanDev
polish: 7 changes by pAter-exe
1 year ago
Rubidium
f74e26ca7e
Codechange: replace error/usererror printf variant with fmt variant and rename
1 year ago
Rubidium
43c65a3fec
Codechange: use std::string for base media filename/warning storage
1 year ago
Peter Nelson
b8f0513a72
Change: Draw and size video driver info like base set info.
...
This allows very long video driver information strings to wrap instead
of making the game options window very wide.
1 year ago
Peter Nelson
9aee502838
Change: Size Game Options description widgets after initial sizing.
...
Trying to update text widgets with free flowing multiline text during
UpdateWidgetSize(), as the final width is not yet known and so the
calculated height being incorrect, usually resulting in one or more
empty text lines.
The solution is to update the widget heights afterwards during
OnResize(), at which point the final widths are known. The window is
then resized if needed.
(Note this technique needs more attention if width can also change.)
1 year ago
Peter Nelson
e8df28d7f3
Add: parameter for ReInit() to reposition window to default.
1 year ago
Peter Nelson
55d981aec3
Add: Helper to update widget vertical size.
...
This avoids directly setting min_y outside widget code.
1 year ago
Tyler Trahan
6830e5f5f7
Cleanup: Don't use a magic number when closing processing industries ( #10710 )
1 year ago
Jonathan G Rennison
37392935dd
Fix #10707 : Incorrect type of days_in_transit in CargoPacket constructor ( #10715 )
1 year ago
translators
27e9a79988
Update: Translations from eints
...
finnish: 2 changes by hpiirai
portuguese: 1 change by azulcosta
1 year ago
Patric Stout
1c76e0904d
Codechange: revive STR_TINY_BLACK_COMMA from its coma ( #10714 )
1 year ago
Tyler Trahan
2f495c015a
Fix 7c6bf97: Don't change date and shift dates in the wrong order ( #10711 )
1 year ago
Patric Stout
31ad990831
Codechange: move tick-counter into TimerGameTick ( #10712 )
1 year ago
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
1 year ago
Rubidium
f5f6306af3
Codechange: use string/fmt instead of printf for ShowInfo(F)
1 year ago
Rubidium
8f24901843
Codechange: replace printf with PRINTF macros by fmt::format for scripts
1 year ago
Rubidium
484883e6e1
Cleanup: remove (unused) Squirrel code that used a hack to work around printf safety
1 year ago
Rubidium
5733142b0d
Codechange: use string/fmt instead of printf for Squirrel's Raise_Error
1 year ago
Rubidium
8b93e45e22
Codechange: use string/fmt instead of printf for squirrel's PRINTFUNC
1 year ago
Peter Nelson
075671bcfc
Codechange: Rename DECLARE_ENUM_AS_BIT_SET parameter to enum_type.
...
It works on enums not masks.
1 year ago
Peter Nelson
9f26e74e1e
Codechange: Rename item_t to Item.
1 year ago
Peter Nelson
c3cea45ebc
Codechange: Rename height_t/amplitude_t to Height/Amplitude.
1 year ago
Peter Nelson
3f811246b1
Codechange: Rename control_point_t to ControlPoint.
...
The _t suffix is reserved by POSIX 1003.1.
1 year ago
Tyler Trahan
7c6bf977e0
Cleanup: Fix and add comments to date cheat callback ( #10699 )
1 year ago
translators
e9f6bbada2
Update: Translations from eints
...
english (au): 1 change by krysclarke
english (us): 1 change by 2TallTyler
galician: 36 changes by pvillaverde
korean: 14 changes by telk5093
italian: 1 change by Rivarossi
russian: 1 change by Ln-Wolf
turkish: 2 changes by densxd
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
Peter Nelson
370a8d77a4
Codechange: Use simple assignment to assign specs.
1 year ago
Peter Nelson
087654501b
Codechange: Initialise specs with std::fill/std::copy instead of memset/memcpy.
1 year ago
Peter Nelson
d0c71f2a9e
Codechange: Use reserve/emplace when initializing object definitions.
...
This avoids unnecessary initialization of objects.
1 year ago
Jonathan G Rennison
a967cc4de2
Fix: Violation of strict weak ordering in engine value/running cost sorter
1 year ago
Jonathan G Rennison
684c7bbc93
Fix: Violation of strict weak ordering in TownRatingSorter
...
If two unrated town names compare equal in TownNameSorter
1 year ago
translators
e437b8edae
Update: Translations from eints
...
english (au): 1 change by krysclarke
english (us): 1 change by 2TallTyler
vietnamese: 4 changes by KhoiCanDev
italian: 1 change by Rivarossi
russian: 1 change by Ln-Wolf
turkish: 1 change by EndChapter
portuguese: 1 change by azulcosta
1 year ago
Tyler Trahan
f45509848a
Fix #10289 : Don't silently fail when setting timetable start dates ( #10690 )
1 year ago
PeterN
018f0f63a6
Change: Centre company face in scaled widget. ( #10688 )
1 year ago
translators
6b077ce25c
Update: Translations from eints
...
english (us): 5 changes by 2TallTyler
vietnamese: 1 change by KhoiCanDev
russian: 1 change by Ln-Wolf
turkish: 33 changes by densxd
dutch: 5 changes by Afoklala
1 year ago
Tyler Trahan
ef60a93816
Fix #8302 : Improve "Maintenance intervals are in percents" helptext ( #10686 )
1 year ago
Tyler Trahan
394192dde8
Codechange: Refactor timetable GUI ( #10613 )
1 year ago
Rubidium
7b539fa7c9
Fix: fmt's {:#04X} yields '0X00', not '0x0000'
...
Technically the 0X vs 0x is not a big problem, just not pretty. However, the
length also including the 0x results in unexpected behaviour, so it probably
better to not use it.
1 year ago
PeterN
27b4b5d0a0
Codechange: Make GRF temporary engine data a vector. ( #10685 )
...
This replaces manual C-style realloc/memset/free.
1 year ago
translators
b56be83937
Update: Translations from eints
...
italian: 20 changes by Rivarossi
french: 5 changes by ZarTek-Creole
1 year ago
PeterN
d5f9e04a55
Change: Failure to load a savegame is critical. ( #10682 )
...
Marking the error message critical ensures it is queued if multiple errors occured.
1 year ago
aeonofdiscord
36f5fe19fe
Fix #10665 : CheckEngines should ignore wagons when determining available vehicles at the start date. ( #10673 )
1 year ago
Rubidium
7088f5b7c7
Codechange: use string/fmt instead of printf for grfmsg
1 year ago
Rubidium
dfe52da1ea
Codechange: use string/fmt instead of print for strgen warnings/errors/fatals
1 year ago
translators
1fd17148e1
Update: Translations from eints
...
english (au): 1 change by krysclarke
german: 1 change by SecretIdetity
russian: 1 change by Ln-Wolf
finnish: 5 changes by hpiirai
slovak: 15 changes by legitalk
portuguese: 1 change by azulcosta
1 year ago
SamuXarick
f8b5661d28
Change: Allow GS access to ScriptGroup functions
1 year ago
SamuXarick
f225f36c3d
Change: Allow GS access to ScriptGameSettings.IsDisabledVehicleType
1 year ago
SamuXarick
fd26a44c9e
Change: Allow GS access to more ScriptCompany functions
1 year ago
Andy
8b1960a41c
Change: Allow GS access to more ScriptOrder functions
1 year ago
PeterN
db573c8742
Fix #10660 : Sprite Font scale affected by viewport zoom level limits. ( #10668 )
1 year ago
Charles Pigott
e20a6f8ebb
Codechange: Optimise FormatNumber by removing seprintf calls ( #10659 )
1 year ago
Andy
15c3bc456f
Change: extend callback 161 (engine name) with bit 0x22 for context 'Autoreplace - Vehicles in use' ( #10666 )
1 year ago
PeterN
d949cfab24
Codechange: Use std:: features for NewGRF town names ( #10631 )
...
This removes manual memory (de-)allocation and list counting.
1 year ago
Rubidium
4491e45f3c
Update: change {STRING} to {ZEROFILL_NUM} for STR_FORMAT_DATE_TINY/ISO
1 year ago
Rubidium
29b09523d1
Codechange: Use {ZEROFILL_NUM} instead of custom seprintf + {RAW_STRING}
1 year ago
PeterN
e97bf271dc
Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. ( #10663 )
...
This avoids a (soft) namespace conflict between the four ST_* enums.
1 year ago
translators
32c8e7feb8
Update: Translations from eints
...
english (au): 4 changes by krysclarke
vietnamese: 31 changes by KhoiCanDev
russian: 4 changes by Ln-Wolf
portuguese: 4 changes by azulcosta
1 year ago
Patric Stout
ed83c4b0da
Change: replace per-AI "start_date" with a global "competitors_interval" ( #10653 )
...
The per-AI "start_date" is a lot of custom code, and was rarely
used in the way it was meant.
While at it, also ported this part over to the new timer system.
1 year ago
Rubidium
43a7e54067
Add: unit test functionality using catch2
1 year ago
Rubidium
88ead3f102
Add: catch2 v2.13.10
1 year ago
Rubidium
9b56505fec
Codechange: split building into a library and executable
1 year ago
Rubidium
9e89eb5726
Codechange: move main function(s) to separate files
1 year ago
Peter Nelson
7b0797d1cd
Codechange: Use unique ptrs for NewGRF specs.
1 year ago
Peter Nelson
ef6b307465
Change: Use std::vector for NewGRF spec tables.
...
Pointer space is allocated only for the number of IDs used, instead of
the max number of IDs for each feature.
1 year ago
Peter Nelson
15e6fc4eeb
Codechange: Use iterator when mapping sprite groups.
1 year ago
Tyler Trahan
bc44158f9a
Change: Allow overbuilding station and waypoint tiles ( #10618 )
1 year ago
translators
27b40da06a
Update: Translations from eints
...
catalan: 14 changes by J0anJosep
portuguese: 20 changes by azulcosta
portuguese (brazilian): 15 changes by ericandradex
1 year ago
Charles Pigott
6fc28d649e
Cleanup: Unused alloca definitions and includes
1 year ago
Charles Pigott
b282664242
Codechange: Replace all usages of alloca/AllocaM with more modern/less discouraged alternatives
1 year ago
rubidium42
b19f42ecd9
Codechange: Replace some p1/p2 parameter names with better names ( #10658 )
1 year ago
Patric Stout
387d5eb74f
Codechange: validate the developer didn't schedule two timers on the same trigger/priority
1 year ago
Patric Stout
3ebc7ad16e
Codechange: migrate all game-time-related timers to the new framework
1 year ago
Patric Stout
1ba4dcc924
Codechange: migrate all Window-related timers to the new framework
...
This means we also say goodbye to GUITimers.
1 year ago
Patric Stout
5e1bcee39b
Codechange: introduce a framework for all our timers
...
IntervalTimer and TimeoutTimer use RAII, and can be used to replace
all the time-based timeouts, lag-detection, "execute every N" we
have.
As it uses RAII, you can safely use it as static variable, class
member, temporary variable, etc. As soon as it goes out-of-scope,
it will be safely removed.
This allows for much easier to read code when it comes to intervals.
1 year ago
rubidium42
730687080a
Fix: Update some network documentation to match the new command system ( #10657 )
1 year ago
Tyler Trahan
646a7e625b
Change: Use seconds for Linkgraph update settings ( #10610 )
1 year ago
translators
0e915c830c
Update: Translations from eints
...
dutch: 15 changes by Afoklala
1 year ago
Tyler Trahan
8e04cba0c3
Change: Make tick length 27 milliseconds ( #10607 )
...
This makes a month last about 60 seconds, allowing the use of real-time units in game.
Co-authored-by: Niels Martin Hansen <nielsm@indvikleren.dk>
1 year ago
Peter Nelson
e5af5907ec
Change: Make all dropdown lists extend width if necessary.
...
This removes the auto_width parameter from ShowDropDown(At).
1 year ago
Peter Nelson
5bc9d00735
Cleanup: Let GetStringBoundingBox deal with buffer.
1 year ago
Peter Nelson
701092003d
Fix: DropDownListColourItem didn't provide width nor scale vertical padding.
1 year ago
Jonathan G Rennison
bb988f940e
Fix #10638 : Incorrect water infra total when building canal over object
...
In the case where the object is on an unowned canal tile and
the new canal tile is owned
1 year ago
translators
d04aae8428
Update: Translations from eints
...
danish: 18 changes by bscargo
1 year ago
PeterN
ff55bfb787
Fix #10343 : Don't extend town-disallowed roadtypes. ( #10347 )
...
Towns currently don't build disallowed roadtypes, however they should
also not extend disallowed roadtypes as well.
If the roadtype that cannot be extended happens to be the roadtype that
the town was going to build then this restriction is ignored.
1 year ago
PeterN
5f99c8c4aa
Fix: Extra viewport cannot be scrolled with right-click-close. ( #10644 )
1 year ago