Commit Graph

35 Commits

Author SHA1 Message Date
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 4010313180 Codechange: String parameters can now be explicitly not initialised.
As the visitor is now more complex this requires an unspecialised GetNextParameter() to avoid it being repeated for each return type.
2025-02-10 22:49:14 +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 afc0745aa2 Codechange: Specify underlying type for all enums excluding those exposed to scripts. (#13383) 2025-01-28 22:17:34 +00:00
Rubidium 1e383d576b Codechange: change SPECSTR_ to StringID and remove unused enumeration 2025-01-04 21:06:07 +01:00
Rubidium 65731bb964 Codechange: use SPECSTR_..._END over _LAST, to prevent + 1 everywhere 2025-01-04 21:06:07 +01:00
Rubidium fd7a883cbd Codechange: make the StringIndex (within a StringTab) a strong type 2025-01-02 21:19:00 +01:00
Peter Nelson 3d8d0e0d26 Codechange: Use std::variant to store string parameter data.
This avoids storing two separate values and makes the test for which type is held clearer.

This replaces use of unique_ptr for conditionally storing a string, and is also used in place of StringParameterBackup.
2024-09-14 15:31:05 +01:00
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
2023-07-19 19:30:14 +02:00
Rubidium 2687704afc Codechange: introduce new type and functions for StringParameter backups 2023-07-02 22:31:01 +02:00
Patric Stout b21ba566ae Codechange: remove special strings for language and resolutions (#8824)
As OpenTTD grew, we found other ways to do this, and we are no
longer in need for a hack like this.
2021-03-09 10:58:33 +01:00
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
glx 8cccb158e9 Fix #7672: more than 32 resolutions may be available 2019-08-02 20:19:07 +01:00
frosch 2bb80d280c (svn r27758) -Change: Increase the maximum number of GameScript texts to 64k, and NewGRF texts to 512k. 2017-02-26 19:41:30 +00:00
frosch fc4c4d080c (svn r27757) -Change: Make StringID 32bit. 2017-02-26 19:41:14 +00:00
frosch a56e2bccd0 (svn r27756) -Codechange: Add StringTab enum 2017-02-26 19:40:53 +00:00
frosch f4da8ece0c (svn r27755) -Codechange: Move TAB_SIZE to strings_type.h and use it consistently. 2017-02-26 19:40:32 +00:00
frosch ebd2d3ccef (svn r26525) -Remove: Screenshot format setting from GUI. 2014-04-27 15:13:46 +00:00
rubidium a6f9488ae4 (svn r22957) -Codechange: SPECSTR_PLAYERNAME is actually the company name, which is derived from the town name + ' Transport'. So make sure the last constant is in sync with the town name table 2011-09-23 19:27:15 +00:00
rubidium 8aba642ed5 (svn r21164) -Codechange: replace the hardcoded array of language metadata with a list 2010-11-13 12:09:30 +00:00
rubidium f4e4056aed (svn r21161) -Codechange: make the currently used language easier accessible 2010-11-13 11:25:58 +00:00
rubidium f195920695 (svn r21160) -Codechange: reuse the strgen LanguageHeader to store some metadata about a language, and keep the language metadata in memory instead of loading it several times from disk 2010-11-13 11:11:02 +00:00
rubidium 30637a8340 (svn r21157) -Codechange: remove information about the text direction out of the language "list" 2010-11-13 09:56:25 +00:00
rubidium 7c7a0cc3f7 (svn r21126) -Codechange: increase the limit of languages OpenTTD can know about to the limit imposed by the NewGRF specs as we're already quite close to the limit; less than 10% from the limit with the currently translated languages 2010-11-10 16:25:20 +00:00
rubidium 398418b8fa (svn r19812) -Codechange: give some unnamed enums a name or, in case they consisted of unrelated values use static const (u)int 2010-05-13 09:44:44 +00:00
rubidium ade9773080 (svn r18603) -Codechange: move getting the song name to music_gui.cpp 2009-12-22 18:34:07 +00:00
smatz 665864e5b0 (svn r17611) -Fix: buffers used for verifying company and president name length were too short, possibly causing false positives 2009-09-22 12:42:56 +00:00
rubidium 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
frosch 713da56d9b (svn r16090) -Fix: s/Slovakish/Slovak/ (unimatrix) 2009-04-19 14:11:17 +00:00
rubidium b25a4f8231 (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 2009-03-15 00:32:18 +00:00
rubidium 65404674a4 (svn r14480) -Add: warning when trying to use a right-to-left language without support for it in OpenTTD. 2008-10-17 17:42:51 +00:00
rubidium c5a4e90338 (svn r13910) -Document: string drawing related functions and types (Alberth) 2008-08-01 09:34:34 +00:00
rubidium ab234cf90c (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
-Codechange: remove all BindCString and related functions and replace it by RAW_STRING which prints the C-string raw pointer that is on the 'print stack'.
2008-07-17 13:47:04 +00:00
glx 69c18efdca (svn r11886) -Add: sort the strings in languages dropdown 2008-01-17 00:21:43 +00:00
rubidium 433a9f3c09 (svn r11675) -Codechange: split the string types from the string functions. 2007-12-21 19:49:27 +00:00