summaryrefslogtreecommitdiff
path: root/sprite.c
diff options
context:
space:
mode:
Diffstat (limited to 'sprite.c')
-rw-r--r--sprite.c99
1 files changed, 0 insertions, 99 deletions
diff --git a/sprite.c b/sprite.c
deleted file mode 100644
index c22489830..000000000
--- a/sprite.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* $Id$ */
-
-#include "stdafx.h"
-#include "openttd.h"
-#include "sprite.h"
-#include "variables.h"
-#include "debug.h"
-
-
-SpriteGroup *EvalDeterministicSpriteGroup(const DeterministicSpriteGroup *dsg, int value)
-{
- int i;
-
- value >>= dsg->adjusts[0].shift_num; // This should bring us to the byte range.
- value &= dsg->adjusts[0].and_mask;
-
- if (dsg->adjusts[0].operation != DSGA_TYPE_NONE)
- value += (signed char) dsg->adjusts[0].add_val;
-
- switch (dsg->adjusts[0].type) {
- case DSGA_TYPE_DIV:
- value /= (signed char) dsg->adjusts[0].divmod_val;
- break;
- case DSGA_TYPE_MOD:
- value %= (signed char) dsg->adjusts[0].divmod_val;
- break;
- case DSGA_TYPE_NONE:
- break;
- }
-
- for (i = 0; i < dsg->num_ranges; i++) {
- DeterministicSpriteGroupRange *range = &dsg->ranges[i];
-
- if (range->low <= (uint32)value && (uint32)value <= range->high)
- return range->group;
- }
-
- return dsg->default_group;
-}
-
-int GetDeterministicSpriteValue(byte var)
-{
- switch (var) {
- case 0x00:
- return _date;
- case 0x01:
- return _cur_year;
- case 0x02:
- return _cur_month;
- case 0x03:
- return _opt.landscape;
- case 0x09:
- return _date_fract;
- case 0x0A:
- return _tick_counter;
- case 0x0C:
- /* If we got here, it means there was no callback or
- * callbacks aren't supported on our callpath. */
- return 0;
- default:
- return -1;
- }
-}
-
-SpriteGroup *EvalRandomizedSpriteGroup(const RandomizedSpriteGroup *rsg, byte random_bits)
-{
- byte mask;
- byte index;
-
- /* Noone likes mangling with bits, but you don't get around it here.
- * Sorry. --pasky */
- // rsg->num_groups is always power of 2
- mask = (rsg->num_groups - 1) << rsg->lowest_randbit;
- index = (random_bits & mask) >> rsg->lowest_randbit;
- assert(index < rsg->num_groups);
- return rsg->groups[index];
-}
-
-byte RandomizedSpriteGroupTriggeredBits(const RandomizedSpriteGroup *rsg,
- byte triggers, byte *waiting_triggers)
-{
- byte match = rsg->triggers & (*waiting_triggers | triggers);
- bool res;
-
- if (rsg->cmp_mode == RSG_CMP_ANY) {
- res = (match != 0);
- } else { /* RSG_CMP_ALL */
- res = (match == rsg->triggers);
- }
-
- if (!res) {
- *waiting_triggers |= triggers;
- return 0;
- }
-
- *waiting_triggers &= ~match;
-
- return (rsg->num_groups - 1) << rsg->lowest_randbit;
-}