mirror of https://github.com/OpenTTD/OpenTTD
(svn r22628) -Codechange: Allow passing the textref stack values to use to StartTextRefStackUsage() instead of always using the temporary NewGRF registers.
parent
f93c8ce5aa
commit
2158f4f1bf
|
@ -969,8 +969,9 @@ void RestoreTextRefStackBackup(struct TextRefStack *backup)
|
||||||
* normal string parameters again.
|
* normal string parameters again.
|
||||||
*
|
*
|
||||||
* @param numEntries number of entries to copy from the registers
|
* @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<int32, 0x110> _temp_store;
|
extern TemporaryStorageArray<int32, 0x110> _temp_store;
|
||||||
|
|
||||||
|
@ -978,8 +979,9 @@ void StartTextRefStackUsage(byte numEntries)
|
||||||
|
|
||||||
byte *p = _newgrf_textrefstack->stack;
|
byte *p = _newgrf_textrefstack->stack;
|
||||||
for (uint i = 0; i < numEntries; i++) {
|
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) {
|
for (uint j = 0; j < 32; j += 8) {
|
||||||
*p = GB(_temp_store.GetValue(0x100 + i), j, 8);
|
*p = GB(value, j, 8);
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ void CleanUpGRFText(struct GRFText *grftext);
|
||||||
|
|
||||||
bool CheckGrfLangID(byte lang_id, byte grf_version);
|
bool CheckGrfLangID(byte lang_id, byte grf_version);
|
||||||
|
|
||||||
void StartTextRefStackUsage(byte numEntries);
|
void StartTextRefStackUsage(byte numEntries, const uint32 *values = NULL);
|
||||||
void StopTextRefStackUsage();
|
void StopTextRefStackUsage();
|
||||||
void SwitchToNormalRefStack();
|
void SwitchToNormalRefStack();
|
||||||
void SwitchToErrorRefStack();
|
void SwitchToErrorRefStack();
|
||||||
|
|
Loading…
Reference in New Issue