Changeset - r14952:14ece20bc0d1
[Not reviewed]
master
0 4 0
yexo - 14 years ago 2010-04-06 23:45:10
yexo@openttd.org
(svn r19570) -Add: [NewGRF] support for extended text code 0x9A 11, print qword
4 files changed with 11 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/newgrf_text.cpp
Show inline comments
 
@@ -291,6 +291,9 @@ char *TranslateTTDPatchCodes(uint32 grfi
 
					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 s
 

	
 
			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 s
 
		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:
src/stdafx.h
Show inline comments
 
@@ -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
 

	
src/strings.cpp
Show inline comments
 
@@ -233,9 +233,9 @@ static char *FormatZerofillNumber(char *
 
	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, co
 
			} break;
 

	
 
			case SCC_HEX: // {HEX}
 
				buff = FormatHexNumber(buff, GetInt64(&argv), last);
 
				buff = FormatHexNumber(buff, (uint64)GetInt64(&argv), last);
 
				break;
 

	
 
			case SCC_BYTES: // {BYTES}
src/table/control_codes.h
Show inline comments
 
@@ -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
0 comments (0 inline, 0 general)