mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-11 13:10:45 +00:00
(svn r19570) -Add: [NewGRF] support for extended text code 0x9A 11, print qword
This commit is contained in:
parent
faf5e19aae
commit
705955b1e6
@ -291,6 +291,9 @@ char *TranslateTTDPatchCodes(uint32 grfid, const char *str)
|
||||
case 8:
|
||||
d += Utf8Encode(d, SCC_NEWGRF_PRINT_HEX_DWORD);
|
||||
break;
|
||||
case 0x0B:
|
||||
d += Utf8Encode(d, SCC_NEWGRF_PRINT_HEX_QWORD);
|
||||
break;
|
||||
|
||||
default:
|
||||
grfmsg(1, "missing handler for extended format code");
|
||||
@ -650,6 +653,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const
|
||||
|
||||
case SCC_NEWGRF_PRINT_HEX_BYTE: *argv = _newgrf_textrefstack->PopUnsignedByte(); break;
|
||||
case SCC_NEWGRF_PRINT_HEX_DWORD: *argv = _newgrf_textrefstack->PopUnsignedDWord(); break;
|
||||
case SCC_NEWGRF_PRINT_HEX_QWORD: *argv = _newgrf_textrefstack->PopSignedQWord(); break;
|
||||
|
||||
case SCC_NEWGRF_PRINT_HEX_WORD:
|
||||
case SCC_NEWGRF_PRINT_WORD_SPEED:
|
||||
@ -682,6 +686,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const
|
||||
case SCC_NEWGRF_PRINT_HEX_BYTE:
|
||||
case SCC_NEWGRF_PRINT_HEX_WORD:
|
||||
case SCC_NEWGRF_PRINT_HEX_DWORD:
|
||||
case SCC_NEWGRF_PRINT_HEX_QWORD:
|
||||
return SCC_HEX;
|
||||
|
||||
case SCC_NEWGRF_PRINT_DWORD_CURRENCY:
|
||||
|
@ -276,9 +276,11 @@
|
||||
/* MSVCRT of course has to have a different syntax for long long *sigh* */
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#define OTTD_PRINTF64 "%I64d"
|
||||
#define OTTD_PRINTFHEX64 "%I64x"
|
||||
#define PRINTF_SIZE "%Iu"
|
||||
#else
|
||||
#define OTTD_PRINTF64 "%lld"
|
||||
#define OTTD_PRINTFHEX64 "%llx"
|
||||
#define PRINTF_SIZE "%zu"
|
||||
#endif
|
||||
|
||||
|
@ -233,9 +233,9 @@ static char *FormatZerofillNumber(char *buff, int64 number, int64 count, const c
|
||||
return FormatNumber(buff, number, last, "", 20 - count);
|
||||
}
|
||||
|
||||
static char *FormatHexNumber(char *buff, int64 number, const char *last)
|
||||
static char *FormatHexNumber(char *buff, uint64 number, const char *last)
|
||||
{
|
||||
return buff + seprintf(buff, last, "0x%x", (uint32)number);
|
||||
return buff + seprintf(buff, last, "0x" OTTD_PRINTFHEX64, number);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -859,7 +859,7 @@ static char *FormatString(char *buff, const char *str, int64 *argv, uint casei,
|
||||
} break;
|
||||
|
||||
case SCC_HEX: // {HEX}
|
||||
buff = FormatHexNumber(buff, GetInt64(&argv), last);
|
||||
buff = FormatHexNumber(buff, (uint64)GetInt64(&argv), last);
|
||||
break;
|
||||
|
||||
case SCC_BYTES: // {BYTES}
|
||||
|
@ -123,6 +123,7 @@ enum StringControlCode {
|
||||
SCC_NEWGRF_PRINT_HEX_BYTE, ///< Read 1 byte from the stack and print it as hex
|
||||
SCC_NEWGRF_PRINT_HEX_WORD, ///< Read 2 bytes from the stack and print it as hex
|
||||
SCC_NEWGRF_PRINT_HEX_DWORD, ///< Read 4 bytes from the stack and print it as hex
|
||||
SCC_NEWGRF_PRINT_HEX_QWORD, ///< Read 8 bytes from the stack and print it as hex
|
||||
SCC_NEWGRF_PUSH_WORD, ///< Pushes 2 bytes onto the stack
|
||||
SCC_NEWGRF_UNPRINT, ///< "Unprints" the given number of bytes from the string
|
||||
SCC_NEWGRF_DISCARD_WORD, ///< Discard the next two bytes
|
||||
|
Loading…
Reference in New Issue
Block a user