start money.s decomp
This commit is contained in:
+55
@@ -0,0 +1,55 @@
|
||||
#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);
|
||||
}
|
||||
Reference in New Issue
Block a user