Commit Graph

20727 Commits (97dd84d1e0b318a24d8e5151142824e7f1c0e1b1)

Author SHA1 Message Date
Rubidium a30f7c83bd Codechange: use std::string for script names to load 1 year ago
Rubidium 9b0123ab66 Codechange: use std::string for script API versions 1 year ago
Rubidium 3d8d99ba11 Add: method to call script functions with std::string 1 year ago
Rubidium 4a6fdc8293 Fix: multiplication result converted to larger type
Technically unlikely to happen, though uint16 * uint16 get promoted to int and
then stored as uint64; similarly uint * uint16 remains uint and gets stored as
uint64. In both cases the value can get truncated before the change to uint64.
1 year ago
PeterN 4894da67da
Codechange: Pass bridge type instead of display row to BuildBridge. (#10828) 1 year ago
translators a8daf91eea Update: Translations from eints
vietnamese: 4 changes by KhoiCanDev
hungarian: 74 changes by PstasDev
turkish: 4 changes by densxd
1 year ago
Patric Stout 8493719cf4
Fix: padding miscalculated for the network-relay and bootstrap-question GUI (#10827) 1 year ago
PeterN 9eb0cca93a
Fix #10823, Fix #10811: Order list has end marker row. (#10825) 1 year ago
PeterN 64930c343a
Codechange: Pass reference instead of pointer to GUI*Lists. (#10822)
Pointer-avoidance.
1 year ago
PeterN 23ce42ad91
Codechange: Use std::move for bridge list. (#10821)
This follows the pattern for dropdown lists, and avoids new/delete and pointers.
1 year ago
PeterN 385b25df63
Fix #10819, Fix #10811: GetVehicleFromDepotWndPt used widget- instead of window-relative positions. (#10820)
Pass window-relative positions instead, and adjust for relative positions where needed within the function itself. This simplifies calling code.
1 year ago
PeterN 07473bfd2e
Fix: Don't use a loop to test if classid is valid. (#10818)
Additionally the Object class test was broken.
1 year ago
Patric Stout 1fe7bbba8a
Codechange: rework NewGRFProfiler to use ticks instead of calendar-days (#10815)
We are planning to allow things like freezing the calendar, which
makes this variable a bit problemetic. So instead, suggest to the
user how many ticks there are in a calendar day, and let them figure
out how many ticks they want.

Additionally, use a TimeoutTimer for this, instead of an end-date
variable which is checked in an IntervalTimer.
1 year ago
Rubidium a372c59483 Codechange: replace C-style (stredup) chat completion with std::string_view 1 year ago
translators e1b653137f Update: Translations from eints
finnish: 4 changes by hpiirai
1 year ago
Peter Nelson a92755de81 Codechange: Use iterator erase pattern. 1 year ago
Peter Nelson 4a64064c57 Codechange: Make NEW_STATION an actual item in join station list.
Add NEW_STATION to the nearby station list to indicate that a new
station should be built. This removes special-casing for a non-existant
list item and keeps the list count and scrollbar count the same.
1 year ago
Patric Stout d54660184a
Fix: NewGRF Profile didn't stop if there were no events yet (#10816)
This meant you could have the following situation:
- You start a profile on a GRF with no events, for N days.
- The days pass, the profile should stop. It doesn't.
- The profile will never stop, even if the GRF start generating events.
- There is no real way to discover this, so .. byebye memory? :)
1 year ago
Peter Nelson 531d1ae8bc Codechange: Use GetScrolled(Row/Item)FromWidget in more places.
In many instances the clicked row position is 'manually' calculated
instead of using the GetScrolledRowFromWidget helper function, with
variations on checks. Replace with the two helpers where possible.
1 year ago
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.
1 year ago
Rubidium 86e5dfce3d Codechange: use std::string instead of strecat to build hotkey strings 1 year ago
Michael Lutz 72c7536325
Codechange: Use a dedicated variable for disaster vehicle action state. (#10798) 1 year ago
Peter Nelson 1a93618bd1 Fix: Road type is not available before its introduction date. 1 year ago
Peter Nelson 726d05b22b Fix: Don't list unavailable road types for game scripts. 1 year ago
Peter Nelson 5059e23ed5 Revert 8fa61533: "Fix 30ae072: when a road type is hidden, towns may not build them even when that flag is set"
This reverts commit 8fa61533f0.
1 year ago
Henry Wilson 3a03a12a9c Feature: Show the number of industries already built in the Fund New Industry window. 1 year ago
translators a934a584a5 Update: Translations from eints
italian: 4 changes by Rivarossi
catalan: 4 changes by J0anJosep
dutch: 9 changes by Afoklala
1 year ago
PeterN da7f431812
Cleanup: widget pos_x/y are already int. (#10809)
Remove old casts left over from when pos_x/y were unsigned.
1 year ago
PeterN 7e3646cf46
Codechange: Remove redundant char buffer. (#10808) 1 year ago
translators ca31976da0 Update: Translations from eints
english (au): 4 changes by krysclarke
english (us): 4 changes by 2TallTyler
russian: 4 changes by Ln-Wolf
portuguese: 4 changes by azulcosta
polish: 8 changes by pAter-exe
1 year ago
PeterN 61516627ad
Add: NewGRF string code "9A 21" to display force from textstack. (#10782) 1 year ago
Peter Nelson 59811ec780 Codechange: Use find_if when finding things. 1 year ago
Peter Nelson e6740046ee Codechange: Use range-for iteration. 1 year ago
Peter Nelson cef3a2570d Codechange: Use standard iterator-erase-loop pattern. 1 year ago
Peter Nelson a8c0d16371 Cleanup: Use std::advance instead of for-loop. 1 year ago
Peter Nelson 68782f951b Cleanup: Vector supports random access. 1 year ago
Rubidium 6d1586dd49 Codechange: use std::string instead of char* for original editor strings 1 year ago
translators 7e1123c731 Update: Translations from eints
portuguese (brazilian): 30 changes by ericandradex
1 year ago
Patric Stout 922d7aa773
Update: help out translators and do the COMMA -> DECIMAL for them (#10802) 1 year ago
Michael Lutz 7e906c7c59 Change: Preserve orders and related settings where possible when moving engines around in a train. 1 year ago
Michael Lutz 07449be876 Codechange: A vehicle that is not a front engine can't be removed from a vehicle group, so just remove a pointless function call. 1 year ago
Rubidium 1ae7eb1594 Codechange: use std::map over SmallMap and std::string of stredup(char*) 1 year ago
Rubidium 12085d088c Cleanup: remove obsolete string_compare_type 1 year ago
Rubidium bc389a86c9 Codechange: use std::string as std::map key, instead of stredup string 1 year ago
Rubidium 72082aa7d3 Codechange: use std::string for getting a script's name 1 year ago
Rubidium f1fb6c95fe Add: case insensitive string comparator 1 year ago
Rubidium 6e3d3c0e7c Codechange: introduce std::string variant of sq_pushstring 1 year ago
Peter Nelson f5158c8b79 Feature: Add search filter and name text to build waypoint window. 1 year ago
Peter Nelson dc50ff807c Change: Remove incorrect minimal size. 1 year ago
Peter Nelson b54d7f15ac Change: Reduce size of waypoint matrix to 3 x 2. 1 year ago
Peter Nelson 0513a6ccb0 Change: Use separate names for default stations/roadstops. 1 year ago
Peter Nelson 93d49fa8b3 Fix: Make scrollwheel work on panel behind waypoint matrix. 1 year ago
Peter Nelson bf9caa425b Change: Units-system can convert from N to kN, don't preconvert.
This allows force to passed as is and avoid premature rounding.

The AI function "GetMaxTractiveEffort" still needs to return kN to avoid breaking the API.
1 year ago
Peter Nelson e2f583a34f Change: Standardise unit conversions and allow decimal places.
Previously the decimal_places member was mostly ignored except for
specific conversions. {DECIMAL} with 0 is the same as {COMMA} so there
is no downside to allowing any conversion to have decimals.
1 year ago
Peter Nelson 3c2f87ce1f Change: Perform unit convert with a double-precision constant.
Unit conversion is only performed for display purposes, this does not
affect lock-step mechanics.

This replaces the old multiply and shift algorithm which relies on
choosing a multipler and shift combination that gets close. Some of these
multiply/shift combinations were quite inaccurate. We can just
use (close-to) real-world numbers instead.
1 year ago
Patric Stout febe394806
Codechange: replace C-style strings with C++-style strings in textfile (#10772) 1 year ago
translators 90529ea48b Update: Translations from eints
catalan: 30 changes by J0anJosep
french: 25 changes by glx22
polish: 5 changes by pAter-exe
1 year ago
PeterN 6998fbf71d
Fix: WWT_TEXT with SetTextStyle did not work. (#10797)
FontSize was passed to incorrect parameter of DrawString function.
1 year ago
Peter Nelson d68c4bbd2f Change: Use iterator when drawing industry cargo window. 1 year ago
Peter Nelson cccf4953f7 Fix: Incorrect padding on industry cargo window. 1 year ago
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.
1 year ago
Patric Stout a05ae2497f Codechange: simplify how GetCharPosition() works 1 year ago
Patric Stout 60399e17bd Codechange: C++-ify the Layouter and related functions
They all now access a std::string_view, instead of a "const char *"
or std::string (in some cases).

Additionally, GetCharAtPosition and friends now return an index
instead of a "const char *", as it makes for a more clear interface.
1 year ago
Tyler Trahan 61d1b330d1
Change: Add padding to build vehicle text filter (#10792) 1 year ago
Patric Stout aed36a609c
Fix: [ICU] crash when trying to break a non-breaking run (#10791)
Clusters from harfbuzz are indexed from the start of the buffer,
not from the start of the run analyzed. This confuses other parts
of the code that do assume they are from the start of the run.
1 year ago
PeterN bc6a4b1d08
Fix: Set up default station/waypoint classes properly. (#10789) 1 year ago
J0anJosep c4e6d80ecf Cleanup: Remove unnecessary hangar check. 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 878c5d8d85 Codechange: Use SetPosition() to clamp after changing count/capacity. 1 year ago
Peter Nelson 6202eae9d5 Codechange: Rely on Scrollbar::SetPosition to clamp.
Manually clamping scrollbar bounds before calling `SetPosition()` is doubling up work that the function already does.
1 year ago
Peter Nelson d2034d9c38 Codechange: Scrollbar methods now accept size_t.
This clears up a lot of casts from size_t to int.
1 year ago
translators 923d1b0846 Update: Translations from eints
vietnamese: 5 changes by KhoiCanDev
1 year ago
kiwitreekor 3375f25b70
Fix: Var68 for station and roadstop was broken (#10784) 1 year ago
Tyler Trahan 98d809c33b
Codechange: Don't use macros for DAYS_TILL and friends (#10746) 1 year ago
PeterN 8bf62dac81
Codechange: Clean up build industry window. (#10779)
* Remove left-over code that treated an invalid list selection as 'fund
many', which is actually implemented as a separate button.
* Manual list management replaced with std::vector.
* Enabled state is only needed for the current selection.
* Selected index is not required only selected type.
1 year ago
PeterN a836edd5a7
Codechange: Scrollbar::UpdatePosition() will tell if the position changed. (#10777)
So we don't need to check this manually.
1 year ago
Rubidium fb856e16c1 Codechange: replace some min/clamp constructs to ClampTo 1 year ago
Rubidium 19ec4e8beb Codechange: replace ClampToI32/U16 with ClampTo<int32_t/uint16_t> 1 year ago
Rubidium 969a3dc0f3 Codechange: introduce generic ClampTo function to clamp to the range of a type 1 year ago
Rubidium e33b2afd87 Codechange: pass (uint) money as Money for CmdGiveMoney 1 year ago
Rubidium 4a5a9f57c4 Fix: conversion to smaller type warnings 1 year ago
translators 97b77f0251 Update: Translations from eints
english (au): 5 changes by krysclarke
english (us): 5 changes by 2TallTyler
korean: 5 changes by telk5093
italian: 5 changes by Rivarossi
russian: 5 changes by Ln-Wolf
finnish: 5 changes by hpiirai
turkish: 5 changes by densxd
portuguese: 5 changes by azulcosta
1 year ago
Michael Lutz b14c5aff1f
Fix: [Win32] Text line breaking did not properly handle punctuation characters. (#10775) 1 year ago
Tyler Trahan 0fc21b5686
Fix: Engine age is in months, not days (#10773) 1 year ago
Loïc Guilloux 31d1a323ef
Fix #10771, 3901ef9: GRFConfig.filename is now a std::string (#10774) 1 year ago
PeterN b67cf7f94a
Change: Replace ScriptLog data array with std::deque. (#10770)
Due to cyclic header dependency this requires moving the data types used
by ScriptLog out of the ScriptLog class.
1 year ago
translators 5dd54e2708 Update: Translations from eints
japanese: 10 changes by fmang
vietnamese: 14 changes by KhoiCanDev
dutch: 14 changes by Afoklala
polish: 1 change by pAter-exe
1 year ago
PeterN bda754ec83
Fix: Make all settingsgen 'warnings' fatal. (#10766)
Compilation should stop If settingsgen fails to complete properly.
1 year ago
Patric Stout a7d3c79d79
Fix c6c3d0e6: restore string-based settings in network-private settings (#10765)
By accident the SDTC_SSTR got replaced with SDTC_VAR, which breaks
many of the settings in this file.
1 year ago
Rubidium 877349c13d Codechange: use std::string for text file name resolution 1 year ago
Peter Nelson 0b72297d57 Feature: Increase number of stations/roadstops per NewGRF. 1 year ago
Peter Nelson bc7dfd7b46 Add: Station property 1C/1D to set name/classname.
These are an alternative to the original "generic" C4xx/C5xx method,
which can only assign strings to IDs up to 256.
1 year ago
Peter Nelson d6f35a9fd6 Change: Add placeholders for unimplemented NewGRF station properties. 1 year ago
Peter Nelson 7a86615007 Feature: Remove limit of objects per NewGRF. 1 year ago
Peter Nelson 912eb68981 Change: Extend entity override manager and station spec lists to support 16 bit IDs. 1 year ago
Peter Nelson e5c9a3e527 Change: Read Action 3 IDs as extended-bytes for all features.
This can be done because previous the value 0xFF (which indicates an
extended byte) was reserved for this purpose. Other features which may
not have mentioned reserving 0xFF do not allow this many IDs anyway.

This makes Action 3 consistent across all features. The allowable limits
for each feature do not change.
1 year ago
Peter Nelson 10baecd81f Change: Make Action 3 debug messages more consistent. 1 year ago
glx22 045a99dd23 Codechange: Remove STR_TINY_RIGHT_ARROW 1 year ago
glx22 222e37d319 Codechange: Remove TINY_BLACK_STATION 1 year ago
glx22 b2a36ff3cc Codechange: Remove STR_TINY_GROUP and STR_TINY_BLACK_VEHICLE 1 year ago
glx22 999057a4d8 Codechange: Remove STR_SHORT_DATE 1 year ago
glx22 49eb638563 Codechange: Remove STR_ORANGE_STRING1_WHITE and STR_ORANGE_STRING1_LTBLUE. 1 year ago
Peter Nelson 61407840c6 Codechange: Remove STR_BLACK_RAW_STRING. 1 year ago
Peter Nelson 0880616851 Codechange: Remove various STRING strings. 1 year ago
Peter Nelson 4767641c8c Codechange: Remove various INT strings. 1 year ago
Peter Nelson d5fb9e7dc6 Codechange: Remove various DATE_LONG strings. 1 year ago
Peter Nelson a2d7642195 Codechange: Remove STR_COMPANY_MONEY. 1 year ago
Peter Nelson f1d0a26324 Codechange: Remove STR_TINY_BLACK_DECIMAL. 1 year ago
Peter Nelson e18f688db5 Codechange: Remove various COMMA strings. 1 year ago
Peter Nelson 5e185d5328 Codechange: Draw tooltip text in black. 1 year ago
Rubidium 3901ef9760 Codechange: use std::string for the GRF filenames 1 year ago
Rubidium f78aa1e720 Codechange: use std::unique_ptr to manager GRFErrors in GRFConfig 1 year ago
Rubidium a312a6c1b2 Codechange: make md5sumToString std::string compatible 1 year ago
Rubidium 51c6b8c1e4 Codechange: use fmt::format_to for gamelog message creation over seprintf 1 year ago
Patric Stout c6c3d0e6fa
Fix: no_http_content_downloads and use_relay_service as private settings (#10762)
Basically, we don't need to know those values when people send in
crash reports.
1 year ago
Jonathan G Rennison 8d501f2db1
Fix #10741: Rail platforms left partially reserved after train crash (#10751) 1 year ago
Peter Nelson 7ccdefa1c1 Change: Increase vehicle random data from 8 to 16 bits. 1 year ago
Peter Nelson 4a5e413a6c Cleanup: Remove unnecessary VehicleRandomBits()
Simple Random() assignment to byte does the same.
1 year ago
translators ca497ce356 Update: Translations from eints
japanese: 29 changes by fmang
danish: 25 changes by bscargo
polish: 29 changes by pAter-exe
1 year ago
Tyler Trahan 6501f84b4a
Codechange: Move calendar date functions inside TimerGameCalendar (#10753) 1 year ago
translators 7669aac865 Update: Translations from eints
english (us): 14 changes by 2TallTyler
1 year ago
Patric Stout 018a26d9b6
Fix: crash in emscripten when saving games (#10758)
Don't allocate 128KB on stack, but rather on the heap.
1 year ago
Peter Nelson 39eff18754 Codechange: Use std::vector for gamelog GRFConfig comparisons. 1 year ago
Peter Nelson 00bf42353a Codechange: Place gamelog into its own class, along with internal data.
Data is now stored in vectors to avoid manual memory management and
passing lengths around.
1 year ago
translators 47a8d12f0e Update: Translations from eints
english (au): 14 changes by krysclarke
korean: 14 changes by telk5093
italian: 14 changes by Rivarossi
russian: 15 changes by Ln-Wolf
finnish: 14 changes by hpiirai
turkish: 14 changes by densxd
portuguese: 16 changes by azulcosta
1 year ago
Patric Stout 81d4fa6999 Feature: drop ICU-lx in favour of directly interfacing with harfbuzz
This means we have RTL support again with ICU 58+. It makes use of:
- ICU for bidi-itemization
- ICU for script-itemization
- OpenTTD for style-itemization
- harfbuzz for shaping
1 year ago
Patric Stout 9cb60768fe Codechange: split implementations of ParagraphLayouterFactory into their own file 1 year ago
translators 4cceaae8dc Update: Translations from eints 1 year ago
Tyler Trahan aa8830f57a
Feature: Filter engine build menu by name and NewGRF extra text (#10519) 1 year ago
Michael Lutz 908be59699 Fix: [Win32] Wrong multi-line text layout due to incorrect whitespace handling. 1 year ago
Michael Lutz 715234502c Fix: Typo in variable name. 1 year ago
Rubidium 1f3b7e2efd Codechange: use std::string instead of stredup for saveload error messages 1 year ago
Rubidium 8665404fe0 Codechange: use std::string instead of stredup for missing glyph error messages 1 year ago
Rubidium a931378c52 Codechange: use std::string instead of stredup/free for ScanProgressWindow 1 year ago
Rubidium aac95eeaf5 Codechange: use std::string instead of stredup/free for stories 1 year ago
Rubidium 3342967ad9 Codechange: use std::string instead of stredup/free for goals 1 year ago
PeterN cc44aa7438
Change: Split Game options into General, Graphics and Sound tabs. (#10674) 1 year ago
PeterN 003bab3c8a
Change: Size space for editbox clear button by interface scale. (#10749) 1 year ago
translators cf3cb8d2a5 Update: Translations from eints
english (au): 4 changes by krysclarke
vietnamese: 4 changes by KhoiCanDev
korean: 4 changes by telk5093
russian: 1 change by Ln-Wolf
1 year ago
Peter Nelson a816dd1d48 Change: Remove {TINY_FONT} from cargo abbreviation strings for other translations. 1 year ago
Peter Nelson 310b3a67ad Change: Remove {TINY_FONT} from cargo abbreviation strings for English. 1 year ago
Peter Nelson 0acc57583b Fix: Force cargo abbreviation to small font in station list. 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
Peter Nelson 35ba49bfb4 Change: Rename text colour NWidgetPart to SetTextStyle and add font size.
This allows to set both text colour and size for any widget with default
drawing.
1 year ago
Tyler Trahan ba3de0383a
Codechange: Pass more std::string to StringFilter::AddLine() (#10743) 1 year ago
Rubidium ee9239d293 Fix c8299304: retain support ICU < 65 1 year ago
translators de08e29cd9 Update: Translations from eints
english (us): 4 changes by 2TallTyler
1 year ago
Rubidium ee8b1dfbc3 Fix 4dd5f994: hotkey parsing was broken 1 year ago
Rubidium 397221b94a Codechange: Make ScenarioIdentifier use std::string for the filename 1 year ago
Rubidium 3a822fcd01 Codechange: Make FiosItem's name and title std::string 1 year ago
Rubidium ee723f26ba Codechange: Make FileToSaveLoad's title std::string and simplify assignments 1 year ago
Rubidium f0a1ddd81c Codechange: let FiosBrowseTo return a bool 1 year ago
Rubidium c829930440 Codechange: replace strnatcmp with C++ string capable version 1 year ago
Rubidium df19673fbd Codechange: let convert_to_fs accept std::string 1 year ago
Rubidium b5f96808a1 Fix: FormatArrayAsHex returns gibberish instead of a hex array 1 year ago
Kuhnovic 3991e76c96
Fix #8177: Ships with max speed overflow to near-zero speed (#10695) 1 year ago
Rubidium 4dd5f994be Codechange: replace strncasecmp with case ignoring variant of StrStarts/EndsWith 1 year ago
Rubidium 86786a7af6 Codechange: introduce StrEqualsIgnoreCase/StrCompareIgnoreCase to replace strcasecmp 1 year ago
Patric Stout 36a0818bc5
Remove: buying/selling/owning company shares (#10709) 1 year ago
Peter Nelson 1a24016964 Fix: Set TC_NO_SHADE only for shaded engine in purchase list.
Additionally use TC_FORCE to prevent additional colours in the shaded text.
1 year ago
Peter Nelson 23c46e1abf Fix: #10735: {POP_COLOUR} fails if string is drawn with extra flags. 1 year ago
translators 3ed8c35dfe Update: Translations from eints
italian: 4 changes by Rivarossi
russian: 4 changes by Ln-Wolf
finnish: 4 changes by hpiirai
turkish: 4 changes by densxd
dutch: 6 changes by Afoklala
portuguese: 4 changes by azulcosta
1 year ago
Rubidium b221fa3c5a Codechange: use fmt::format_to instead of seprintf to create the search URL 1 year ago
Rubidium 6a8b4f3e10 Codechange: use fmt::format_to instead of seprintf to fill the PNG metadata 1 year ago
Rubidium ef3beef7e9 Codechange: use fmt::format_to instead of seprintf to write the savegame info 1 year ago
Rubidium 33c4fbff8f Codechange: use fmt::format_to instead of seprintf to fill load crash message 1 year ago
translators d33993cca3 Update: Translations from eints 1 year ago
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