#include "global.h" #include "money.h" #define MAX_MONEY 999999 u32 GetMoney(u32* moneyPtr) { return *moneyPtr ^ gSaveBlock2Ptr->encryptionKey; } void SetMoney(u32* moneyPtr, u32 newValue) { *moneyPtr = gSaveBlock2Ptr->encryptionKey ^ newValue; } bool8 IsEnoughMoney(u32* moneyPtr, u32 cost) { if (GetMoney(moneyPtr) >= cost) return TRUE; else return FALSE; } void AddMoney(u32* moneyPtr, u32 toAdd) { u32 toSet = GetMoney(moneyPtr); // can't have more money than MAX if (toSet + toAdd > MAX_MONEY) { toSet = MAX_MONEY; } else { toSet += toAdd; // check overflow, can't have less money after you receive more if (toSet < GetMoney(moneyPtr)) toSet = MAX_MONEY; } SetMoney(moneyPtr, toSet); } void SubtractMoney(u32* moneyPtr, u32 toSub) { u32 toSet = GetMoney(moneyPtr); // can't subtract more than you already have if (toSet < toSub) toSet = 0; else toSet -= toSub; SetMoney(moneyPtr, toSet); }