diff options
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/coins.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/arm9/src/coins.c b/arm9/src/coins.c new file mode 100644 index 00000000..80efb768 --- /dev/null +++ b/arm9/src/coins.c @@ -0,0 +1,44 @@ +#include "global.h" +#include "coins.h" + +#pragma thumb on + +void InitCoins(u16 * coins) +{ + *coins = 0; +} + +void SetCoins(u16 * coins, u16 value) +{ + GF_ASSERT(value <= MAX_COINS); + *coins = value; +} + +u16 CheckCoins(u16 * coins) +{ + return *coins; +} + +BOOL GiveCoins(u16 * coins, u16 amount) +{ + if (*coins >= MAX_COINS) + return FALSE; + *coins += amount; + if (*coins > MAX_COINS) + *coins = MAX_COINS; + return TRUE; +} + +BOOL CanGiveCoins(u16 * coins, u16 amount) +{ + + return (u32)(amount + *coins) <= MAX_COINS; +} + +BOOL TakeCoins(u16 * coins, u16 amount) +{ + if (*coins < amount) + return FALSE; + *coins -= amount; + return TRUE; +} |