diff options
author | peter1138 <peter1138@openttd.org> | 2006-04-29 07:26:57 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-04-29 07:26:57 +0000 |
commit | 49a825fc43f8b20dc930a6695dc666c6420a50d2 (patch) | |
tree | dd4f0060bbde45165f5e64016fbcc4f49f53a846 /newgrf_spritegroup.c | |
parent | 910825b1d5a8770945e50081a91f62c47bd319ad (diff) | |
download | openttd-49a825fc43f8b20dc930a6695dc666c6420a50d2.tar.xz |
(svn r4616) - NewGRF: when evaluating a variable adjustment, give our value the correct type after rather than before it has been adjusted.
Diffstat (limited to 'newgrf_spritegroup.c')
-rw-r--r-- | newgrf_spritegroup.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/newgrf_spritegroup.c b/newgrf_spritegroup.c index cac7bbb20..d389c07ad 100644 --- a/newgrf_spritegroup.c +++ b/newgrf_spritegroup.c @@ -112,7 +112,7 @@ static inline uint32 GetVariable(const ResolverObject *object, byte variable, by /* Evaluate an adjustment for a variable of the given size. This is a bit of * an unwieldy macro, but it saves triplicating the code. */ #define BUILD_EVAL_ADJUST(size, usize) \ -static inline size EvalAdjust_ ## size(const DeterministicSpriteGroupAdjust *adjust, size last_value, size value) \ +static inline size EvalAdjust_ ## size(const DeterministicSpriteGroupAdjust *adjust, size last_value, uint value) \ { \ value >>= adjust->shift_num; \ value &= adjust->and_mask; \ @@ -125,6 +125,9 @@ static inline size EvalAdjust_ ## size(const DeterministicSpriteGroupAdjust *adj case DSGA_TYPE_NONE: break; \ } \ \ + /* Get our value to the correct range */ \ + value = (size)value; \ +\ switch (adjust->operation) { \ case DSGA_OP_ADD: return last_value + value; \ case DSGA_OP_SUB: return last_value - value; \ |