diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 2577e59868..3fe0d49b51 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -445,6 +445,8 @@ std::string TranslateTTDPatchCodes(uint32 grfid, uint8 language_id, bool allow_n case 0x1F: Utf8Encode(d, SCC_PUSH_COLOUR); break; case 0x20: Utf8Encode(d, SCC_POP_COLOUR); break; + case 0x21: Utf8Encode(d, SCC_NEWGRF_PRINT_DWORD_FORCE); break; + default: GrfMsg(1, "missing handler for extended format code"); break; @@ -882,6 +884,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_PRINT_WORD_WEIGHT_LONG: case SCC_NEWGRF_PRINT_WORD_WEIGHT_SHORT: case SCC_NEWGRF_PRINT_WORD_POWER: + case SCC_NEWGRF_PRINT_DWORD_FORCE: case SCC_NEWGRF_PRINT_WORD_STATION_NAME: case SCC_NEWGRF_PRINT_WORD_CARGO_NAME: if (argv_size < 1) { @@ -927,6 +930,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_PRINT_WORD_STATION_NAME: case SCC_NEWGRF_PRINT_WORD_UNSIGNED: *argv = _newgrf_textrefstack.PopUnsignedWord(); break; + case SCC_NEWGRF_PRINT_DWORD_FORCE: case SCC_NEWGRF_PRINT_DWORD_DATE_LONG: case SCC_NEWGRF_PRINT_DWORD_DATE_SHORT: case SCC_NEWGRF_PRINT_DWORD_HEX: *argv = _newgrf_textrefstack.PopUnsignedDWord(); break; @@ -1018,6 +1022,9 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_PRINT_WORD_POWER: return SCC_POWER; + case SCC_NEWGRF_PRINT_DWORD_FORCE: + return SCC_FORCE; + case SCC_NEWGRF_PRINT_WORD_CARGO_LONG: return SCC_CARGO_LONG; diff --git a/src/table/control_codes.h b/src/table/control_codes.h index ef3f8ff268..02806308eb 100644 --- a/src/table/control_codes.h +++ b/src/table/control_codes.h @@ -148,6 +148,7 @@ enum StringControlCode { SCC_NEWGRF_PRINT_WORD_CARGO_SHORT, ///< 9A 1C: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount SCC_NEWGRF_PRINT_WORD_CARGO_TINY, ///< 9A 1D: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount SCC_NEWGRF_PRINT_WORD_CARGO_NAME, ///< 9A 1E: Read 2 bytes from the stack as cargo name + SCC_NEWGRF_PRINT_DWORD_FORCE, ///< 9A 21: Read 4 bytes from the stack as unsigned force SCC_NEWGRF_PUSH_WORD, ///< 9A 03: Pushes 2 bytes onto the stack SCC_NEWGRF_UNPRINT, ///< 9A 04: "Unprints" the given number of bytes from the string SCC_NEWGRF_DISCARD_WORD, ///< 85: Discard the next two bytes