Changeset - r22754:42d63bfa0503
[Not reviewed]
master
0 1 0
frosch - 6 years ago 2018-03-11 13:17:44
frosch@openttd.org
(svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup sprite resolving by about 3 percent.
1 file changed with 5 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/newgrf_spritegroup.cpp
Show inline comments
 
@@ -60,11 +60,7 @@ RandomizedSpriteGroup::~RandomizedSprite
 

	
 
static inline uint32 GetVariable(const ResolverObject &object, ScopeResolver *scope, byte variable, uint32 parameter, bool *available)
 
{
 
	/* First handle variables common with Action7/9/D */
 
	uint32 value;
 
	if (GetGlobalVariable(variable, &value, object.grffile)) return value;
 

	
 
	/* Non-common variable */
 
	switch (variable) {
 
		case 0x0C: return object.callback;
 
		case 0x10: return object.callback_param1;
 
@@ -79,8 +75,11 @@ static inline uint32 GetVariable(const R
 
			if (object.grffile == NULL) return 0;
 
			return object.grffile->GetParam(parameter);
 

	
 
		/* Not a common variable, so evaluate the feature specific variables */
 
		default: return scope->GetVariable(variable, parameter, available);
 
		default:
 
			/* First handle variables common with Action7/9/D */
 
			if (variable < 0x40 && GetGlobalVariable(variable, &value, object.grffile)) return value;
 
			/* Not a common variable, so evaluate the feature specific variables */
 
			return scope->GetVariable(variable, parameter, available);
 
	}
 
}
 

	
0 comments (0 inline, 0 general)