mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-01 00:40:01 +01:00
56 lines
1.0 KiB
C
56 lines
1.0 KiB
C
#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);
|
|
}
|