Changeset - r6521:f9fb7d189c75
[Not reviewed]
master
0 2 0
peter1138 - 17 years ago 2007-04-21 07:27:16
peter1138@openttd.org
(svn r9707) -Codechange: Add some support for NewGRF var 7D, temporary storage array.
2 files changed with 10 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/newgrf_spritegroup.cpp
Show inline comments
 
@@ -76,6 +76,8 @@ void InitializeSpriteGroupPool()
 
	_spritegroup_count = 0;
 
}
 

	
 
static uint32 _temp_store[0x110];
 

	
 

	
 
static inline uint32 GetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available)
 
{
 
@@ -96,6 +98,8 @@ static inline uint32 GetVariable(const R
 
		case 0x1C: return object->last_value;
 
		case 0x20: return _opt.landscape == LT_ARCTIC ? GetSnowLine() : 0xFF;
 

	
 
		case 0x7D: return _temp_store[parameter];
 

	
 
		/* Not a common variable, so evalute the feature specific variables */
 
		default: return object->GetVariable(object, variable, parameter, available);
 
	}
 
@@ -133,6 +137,10 @@ static U EvalAdjustT(const Deterministic
 
		case DSGA_OP_AND:  return last_value & value;
 
		case DSGA_OP_OR:   return last_value | value;
 
		case DSGA_OP_XOR:  return last_value ^ value;
 
		case DSGA_OP_STO:
 
			if (value < lengthof(_temp_store)) _temp_store[value] = last_value;
 
			return last_value;
 
		case DSGA_OP_RST:  return value;
 
		default:           return value;
 
	}
 
}
src/newgrf_spritegroup.h
Show inline comments
 
@@ -60,6 +60,8 @@ enum DeterministicSpriteGroupAdjustOpera
 
	DSGA_OP_AND,  ///< a & b
 
	DSGA_OP_OR,   ///< a | b
 
	DSGA_OP_XOR,  ///< a ^ b
 
	DSGA_OP_STO,  ///< store a into temporary storage, indexed by b. return a
 
	DSGA_OP_RST,  ///< return b
 
};
 

	
 

	
0 comments (0 inline, 0 general)