Peter Nelson
4b6d409ee8
Codefix: Out-of-range cargo type passed to a string affected remaining parameters. ( #14398 )
...
When the string codes CARGO_TINY, CARGO_SHORT or CARGO_LONG encountered an out-of-range string, they did not read the extra amount parameter. This leads to later parameters being used in the wrong place.
Change the order of operation so that all parameters for these string codes are always read, even if the cargo type is not valid.
2025-06-28 21:50:36 +01:00
Peter Nelson
20ed5be905
Codechange: Use FontSizeToName() instead of switch block. ( #14395 )
2025-06-27 20:38:39 +00:00
Peter Nelson
1d8db2223f
Fix #14234 , 5aa4ad5135: Crash due to unexpected NUL char in string. ( #14235 )
...
Gracefully handle an unexpected NUL character in non-debug builds.
2025-05-21 18:47:04 +01:00
Peter Nelson
940a7127f8
Fix f8bdc1e612: Empty first parameter of EncodedString was skipped. ( #14273 )
...
This would place the remaining parameters one position too early.
2025-05-17 22:55:48 +00:00
frosch
a277cb2b4c
Change: [NewGRF] Increase the textstack for all callbacks to 16 registers.
2025-05-09 12:39:11 +02:00
frosch
c6fa5022cb
Add: [NewGRF] All callbacks returning D0xx strings, have now the option to return any string id via register 0x100.
2025-05-09 12:39:11 +02:00
Peter Nelson
ae1f469aac
Fix #14234 , 16b4e73: Skip PLURAL data if parameter is invalid. ( #14236 )
2025-05-08 09:06:56 +01:00
frosch
eb9bbb2456
Codechange: Remove direct access to temporary storage from TextRefStack.
2025-05-06 22:24:41 +02:00
frosch
75a775e59d
Codechange: Make GetCurrentLocale return a std::string instead of a reference to a static buffer.
...
For win32 this is even a fix, because the static buffer was only updated once. Later calls discarded the determined locale.
2025-05-06 18:29:41 +02:00
Rubidium
5e3c7c4146
Codechange: char* -> char *
2025-05-04 10:43:56 +02:00
Rubidium
d037dbb42a
Codechange: use std::string_view for locales
2025-05-03 15:58:14 +02:00
Rubidium
f4ad614285
Codechange: use std::string_view for FS2OTTD and OTTD2FS
2025-04-29 22:33:32 +02:00
Rubidium
af25eecc15
Codechange: use const for std::string_view where appropriate
2025-04-29 10:15:18 +02:00
Rubidium
781187b8a6
Codechange: replace C-style strings with std::string_view related to strings functions
2025-04-27 17:57:42 +02:00
Rubidium
4476ce804d
Codechange: use std::string_view for GetNextParameterString
2025-04-26 16:30:16 +02:00
Loïc Guilloux
f8bdc1e612
Fix f5ffd47: Don't skip separator while reading a record ( #14083 )
2025-04-23 17:30:51 +02:00
frosch
2a62eea005
Codefix: Comment style. ( #14064 )
2025-04-21 17:25:09 +02:00
frosch
354ad43edb
Codechange: Remove unnecessary string constructions. ( #14063 )
2025-04-21 16:46:31 +02:00
frosch
f5ffd4789b
Codechange: Use StringConsumer in FormatString.
2025-04-14 16:57:41 +02:00
frosch
131b7c7122
Codechange: Replace Utf8Decode usages with StringConsumer.
2025-04-13 21:59:10 +02:00
frosch
fa284af263
Codechange: Replace remaining Utf8Encode usages with StringBuilder.
2025-04-08 23:10:58 +02:00
frosch
1d879f3043
Codechange: Use StringBuilder to create the gender-scan-string.
2025-04-08 23:10:58 +02:00
frosch
dd073eb38d
Codechange: Use StringBuilder to create encoded strings.
2025-04-08 23:10:58 +02:00
frosch
ad8e9634ec
Codechange: Generalize StringBuilder.
2025-04-08 23:10:58 +02:00
frosch
3f2b58d6e1
Fix: Validate raw strings from game-scripts, and strip invalid and control characters. ( #13976 )
2025-04-07 19:30:36 +02:00
frosch
f06bfc0dad
Codechange: Use Utf8View to const-iterate over strings, if no particular error handling is needed.
2025-04-03 18:43:41 +02:00
frosch
c105adcd96
Codechange: Encode case/gender/plural choice lists without null termination, only length prefix. ( #13876 )
2025-03-25 20:32:40 +01:00
frosch
ca801d55d5
Fix: [NewGRF] Display an error, if NewGRF reference out-of-bounds string parameters in gender/plural choices. ( #13881 )
2025-03-23 20:43:12 +01:00
frosch
5aa4ad5135
Codechange: Pass unformatted strings from GetStringPtr as std::string_view. ( #13871 )
2025-03-23 19:23:31 +01:00
frosch
5764eaaacf
Fix: [NewGRF] Plurals and genders did not work in NewGRF substrings, and cases in substrings could mess up cases in the parent string. ( #13852 )
2025-03-22 13:40:43 +01:00
frosch
a4f3ddae5f
Fix: [NewGRF] String parameter stack and case selection were not processed for control code 0x81. ( #13851 )
2025-03-21 18:13:08 +01:00
frosch
0cd87bc8c1
Fix: Don't add chars with unspecified signedness to pointers. ( #13828 )
2025-03-15 18:48:26 +01:00
Rubidium
754311a779
Codechange: use std::move when appropriate
2025-03-13 13:00:24 +01:00
Peter Nelson
b979f0414c
Codechange: Prevent nested encoded strings.
2025-03-04 21:40:39 +00:00
Peter Nelson
27761ae431
Cleanup: Remove global string parameters.
...
Global parameters, and functions for dealing with them, are now gone.
2025-03-04 08:48:35 +00:00
Peter Nelson
e818fcbf19
Codechange: Allow encoded strings to use as many parameters as necessary.
2025-03-04 08:48:35 +00:00
Peter Nelson
6e10584b91
Codechange: Use EncodedStrings for News messages. ( #13654 )
2025-02-23 20:24:02 +00:00
Peter Nelson
b28dca2222
Codechange: Preprocess text ref stack parameters. ( #13642 )
...
NewGRF text ref stack is now processed in advance, creating parameters as necessary, and then encoding this into an EncodedString.
2025-02-22 22:03:38 +00:00
Peter Nelson
0428f8c667
Codechange: Add AppendStringWithArgsInPlace() function.
2025-02-22 10:33:22 +00:00
Peter Nelson
04a16a6b68
Codechange: Add GetParamMaxDigits/Value() functions.
...
Similar to SetDParamMaxDigits/Value(), except the value is returned instead of being set into a parameter.
2025-02-22 10:33:22 +00:00
Peter Nelson
4c99b5b368
Codechange: Return pair from GetBroadestDigit instead of out parameters.
2025-02-22 10:33:22 +00:00
Peter Nelson
2d7d085e8e
Codechange: Use EncodedString for error messages. ( #13569 )
2025-02-16 10:04:32 +00:00
Peter Nelson
75387b9e2b
Codechange: Use EnumBitSet for StationFacility.
2025-02-13 18:03:13 +00:00
Peter Nelson
1f21e9dc74
Codechange: String parameter encoding for regular strings.
...
This allows a string and its parameters to be encoded and stored as just one string, instead of juggling with capturing and restoring string parameters.
The advantage of EncodedStrings over raw strings is they use current language and parameter values at the point of decoding.
2025-02-10 22:49:14 +00:00
Peter Nelson
dccc6185b9
Codechange: Change internal format of encoded strings to improve robustness and allow expansion. ( #13499 )
2025-02-09 12:45:50 +00:00
Peter Nelson
be00fd4447
Codechange: Use std::array as simple string parameter container.
...
ArrayStringParameters contains extra state that is used when formatting strings which isn't needed when creating parameter lists.
MakeParameters() now returns a std::array which contains only the parameter data. This simpler container is more widely available than before.
2025-02-07 12:30:34 +00:00
Peter Nelson
59354576d4
Codechange: Use EnumBitSet for LandscapeTypes and remove LandscapeID. ( #13436 )
2025-02-01 23:09:18 +00:00
merni-ns
9ff485b329
Fix #13304 : Refer to font document in font error message
...
Instead of referring to readme which doesn't say anything about this anymore
2025-02-01 23:51:26 +01:00
Peter Nelson
40aeedeade
Codechange: Use EnumBitSet for callback masks.
2025-01-31 17:08:24 +00:00
Rubidium
e894a5880c
Codechange: rename CargoID to CargoType and amend related variables/comments
2025-01-26 18:07:10 +01:00