From 2158f4f1bf9e8bafd8602b07652f24019ecde8c9 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 3 Jul 2011 13:53:42 +0000 Subject: (svn r22628) -Codechange: Allow passing the textref stack values to use to StartTextRefStackUsage() instead of always using the temporary NewGRF registers. --- src/newgrf_text.cpp | 6 ++++-- src/newgrf_text.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 6cc361f61..871781f2e 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -969,8 +969,9 @@ void RestoreTextRefStackBackup(struct TextRefStack *backup) * normal string parameters again. * * @param numEntries number of entries to copy from the registers + * @param values values to copy onto the stack; if NULL the temporary NewGRF registers will be used instead */ -void StartTextRefStackUsage(byte numEntries) +void StartTextRefStackUsage(byte numEntries, const uint32 *values) { extern TemporaryStorageArray _temp_store; @@ -978,8 +979,9 @@ void StartTextRefStackUsage(byte numEntries) byte *p = _newgrf_textrefstack->stack; for (uint i = 0; i < numEntries; i++) { + uint32 value = values != NULL ? values[i] : _temp_store.GetValue(0x100 + i); for (uint j = 0; j < 32; j += 8) { - *p = GB(_temp_store.GetValue(0x100 + i), j, 8); + *p = GB(value, j, 8); p++; } } diff --git a/src/newgrf_text.h b/src/newgrf_text.h index a09a20ce9..6ab3530a3 100644 --- a/src/newgrf_text.h +++ b/src/newgrf_text.h @@ -34,7 +34,7 @@ void CleanUpGRFText(struct GRFText *grftext); bool CheckGrfLangID(byte lang_id, byte grf_version); -void StartTextRefStackUsage(byte numEntries); +void StartTextRefStackUsage(byte numEntries, const uint32 *values = NULL); void StopTextRefStackUsage(); void SwitchToNormalRefStack(); void SwitchToErrorRefStack(); -- cgit v1.2.3-70-g09d2