Changeset - r17667:59b6cc390e48
[Not reviewed]
master
0 2 0
frosch - 13 years ago 2011-05-14 12:36:31
frosch@openttd.org
(svn r22452) -Fix (r18708): Zero register 0x100 as specified before resolving custom station foundations.
2 files changed with 12 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/newgrf_spritegroup.h
Show inline comments
 
@@ -35,6 +35,17 @@ static inline uint32 GetRegister(uint i)
 
	return _temp_store.Get(i);
 
}
 

	
 
/**
 
 * Clears the value of a so-called newgrf "register".
 
 * @param i index of the register
 
 * @pre i < 0x110
 
 */
 
static inline void ClearRegister(uint i)
 
{
 
	extern TemporaryStorageArray<int32, 0x110> _temp_store;
 
	_temp_store.Store(i, 0);
 
}
 

	
 
/* List of different sprite group types */
 
enum SpriteGroupType {
 
	SGT_REAL,
src/newgrf_station.cpp
Show inline comments
 
@@ -613,6 +613,7 @@ SpriteID GetCustomStationFoundationReloc
 
	NewStationResolver(&object, statspec, st, tile);
 
	object.callback_param1 = 2; // Indicate we are resolving the foundation sprites
 

	
 
	ClearRegister(0x100);
 
	group = ResolveStation(&object);
 
	if (group == NULL || group->type != SGT_RESULT) return 0;
 
	return group->GetResult() + GetRegister(0x100);
0 comments (0 inline, 0 general)