mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
Merge pull request #570 from AsparagusEduardo/pret/pr/sinjoh/coins
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
Synced coins with pokeheartgold and pokeplatinum
This commit is contained in:
commit
51bbeabf55
|
|
@ -2411,7 +2411,7 @@ _02038956:
|
|||
str r0, [sp, #0x4]
|
||||
ldr r0, [sp, #0x0]
|
||||
add r6, r1, #0x0
|
||||
bl CheckCoins
|
||||
bl Coins_GetValue
|
||||
str r0, [sp, #0x8]
|
||||
ldr r0, [r5, #0x4]
|
||||
ldr r1, [r5, #0x8]
|
||||
|
|
@ -2429,7 +2429,7 @@ _02038956:
|
|||
ldr r0, [r4, #0xc]
|
||||
bl Save_PlayerData_GetCoinsAddr
|
||||
ldr r1, [r5, #0x0]
|
||||
bl SetCoins
|
||||
bl Coins_SetValue
|
||||
add r0, r7, #0x0
|
||||
bl sub_0205F6C8
|
||||
ldr r1, [r5, #0x18]
|
||||
|
|
@ -2467,7 +2467,7 @@ sub_020389CC: ; 0x020389CC
|
|||
str r4, [r4, #0xc]
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Save_PlayerData_GetCoinsAddr
|
||||
bl CheckCoins
|
||||
bl Coins_GetValue
|
||||
str r0, [r4, #0x0]
|
||||
bl GF_RTC_DateTimeToSec
|
||||
str r0, [r4, #0x4]
|
||||
|
|
|
|||
|
|
@ -1892,12 +1892,12 @@
|
|||
.extern sub_02028854
|
||||
.extern sub_0202888C
|
||||
.extern sub_020288AC
|
||||
.extern InitCoins
|
||||
.extern SetCoins
|
||||
.extern CheckCoins
|
||||
.extern GiveCoins
|
||||
.extern CanGiveCoins
|
||||
.extern TakeCoins
|
||||
.extern Coins_Init
|
||||
.extern Coins_SetValue
|
||||
.extern Coins_GetValue
|
||||
.extern Coins_Add
|
||||
.extern Coins_CanAdd
|
||||
.extern Coins_Subtract
|
||||
.extern sub_02028980
|
||||
.extern sub_02028994
|
||||
.extern sub_020289A4
|
||||
|
|
|
|||
|
|
@ -1956,7 +1956,7 @@ ov05_021E29C8: ; 0x021E29C8
|
|||
str r0, [sp, #0x10]
|
||||
ldr r0, [r6, #0xc]
|
||||
bl Save_PlayerData_GetCoinsAddr
|
||||
bl CheckCoins
|
||||
bl Coins_GetValue
|
||||
add r2, r0, #0
|
||||
mov r0, #1
|
||||
str r0, [sp]
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ u8 sub_0206E394(BagView *bagView) {
|
|||
}
|
||||
|
||||
static u16 GetCoinCount(SaveData *saveData) {
|
||||
return CheckCoins(Save_PlayerData_GetCoinsAddr(saveData));
|
||||
return Coins_GetValue(Save_PlayerData_GetCoinsAddr(saveData));
|
||||
}
|
||||
|
||||
static u32 GetSealCount(SaveData *saveData) {
|
||||
|
|
|
|||
|
|
@ -2,25 +2,26 @@
|
|||
|
||||
#include "global.h"
|
||||
|
||||
void InitCoins(u16 *coins) {
|
||||
void Coins_Init(u16 *coins) {
|
||||
*coins = 0;
|
||||
}
|
||||
|
||||
void SetCoins(u16 *coins, u16 value) {
|
||||
void Coins_SetValue(u16 *coins, u32 value) {
|
||||
GF_ASSERT(value <= MAX_COINS);
|
||||
*coins = value;
|
||||
}
|
||||
|
||||
u16 CheckCoins(u16 *coins) {
|
||||
u16 Coins_GetValue(u16 *coins) {
|
||||
return *coins;
|
||||
}
|
||||
|
||||
BOOL GiveCoins(u16 *coins, u16 amount) {
|
||||
BOOL Coins_Add(u16 *coins, u16 amount) {
|
||||
if (*coins >= MAX_COINS) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
*coins += amount;
|
||||
|
||||
if (*coins > MAX_COINS) {
|
||||
*coins = MAX_COINS;
|
||||
}
|
||||
|
|
@ -28,11 +29,11 @@ BOOL GiveCoins(u16 *coins, u16 amount) {
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CanGiveCoins(u16 *coins, u16 amount) {
|
||||
BOOL Coins_CanAdd(u16 *coins, u16 amount) {
|
||||
return (u32)(amount + *coins) <= MAX_COINS;
|
||||
}
|
||||
|
||||
BOOL TakeCoins(u16 *coins, u16 amount) {
|
||||
BOOL Coins_Subtract(u16 *coins, u16 amount) {
|
||||
if (*coins < amount) {
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ void Save_PlayerData_Init(PlayerData *pds) {
|
|||
MI_CpuClearFast(pds, sizeof(PlayerData));
|
||||
Options_Init(&pds->options);
|
||||
PlayerProfile_Init(&pds->profile);
|
||||
InitCoins(&pds->coins);
|
||||
Coins_Init(&pds->coins);
|
||||
InitIGT(&pds->igt);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,12 +38,12 @@ BOOL ScrCmd_UpdateCoinBox(struct ScriptContext *ctx) // 0077
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_GetCoins(struct ScriptContext *ctx) // 0078 - todo: CheckCoins instead?
|
||||
BOOL ScrCmd_GetCoins(struct ScriptContext *ctx) // 0078 - todo: Coins_GetValue instead?
|
||||
{
|
||||
u16 *coins_ptr = Save_PlayerData_GetCoinsAddr(ctx->fieldSystem->saveData);
|
||||
u16 *ret_ptr = ScriptGetVarPointer(ctx);
|
||||
|
||||
*ret_ptr = CheckCoins(coins_ptr);
|
||||
*ret_ptr = Coins_GetValue(coins_ptr);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -53,17 +53,17 @@ BOOL ScrCmd_GiveCoins(struct ScriptContext *ctx) // 0079
|
|||
u16 *coins_ptr = Save_PlayerData_GetCoinsAddr(ctx->fieldSystem->saveData);
|
||||
u16 amount = ScriptGetVar(ctx);
|
||||
|
||||
GiveCoins(coins_ptr, amount);
|
||||
Coins_Add(coins_ptr, amount);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext *ctx) // 0080 - todo: TakeCoins instead?
|
||||
BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext *ctx) // 0080 - todo: Coins_Subtract instead?
|
||||
{
|
||||
u16 *coins_ptr = Save_PlayerData_GetCoinsAddr(ctx->fieldSystem->saveData);
|
||||
u16 amount = ScriptGetVar(ctx);
|
||||
|
||||
TakeCoins(coins_ptr, amount);
|
||||
Coins_Subtract(coins_ptr, amount);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -73,7 +73,7 @@ BOOL ScrCmd_TakeCoinsAddress(struct ScriptContext *ctx) // 02A8 - todo: TakeCoin
|
|||
u16 *coins_ptr = Save_PlayerData_GetCoinsAddr(ctx->fieldSystem->saveData);
|
||||
u16 *amount = ScriptGetVarPointer(ctx);
|
||||
|
||||
TakeCoins(coins_ptr, *amount);
|
||||
Coins_Subtract(coins_ptr, *amount);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@ BOOL ScrCmd_HasEnoughCoinsImmediate(struct ScriptContext *ctx) // 0274 - todo: C
|
|||
u16 *ret_ptr = ScriptGetVarPointer(ctx);
|
||||
|
||||
u32 amount = ScriptReadWord(ctx);
|
||||
u16 coins = CheckCoins(coins_ptr);
|
||||
u16 coins = Coins_GetValue(coins_ptr);
|
||||
|
||||
if (coins < amount) {
|
||||
*ret_ptr = 0;
|
||||
|
|
@ -109,7 +109,7 @@ BOOL ScrCmd_HasEnoughCoinsAddress(struct ScriptContext *ctx) // 02A9 - todo: Can
|
|||
u16 *ret_ptr = ScriptGetVarPointer(ctx);
|
||||
|
||||
u16 amount = *ScriptGetVarPointer(ctx);
|
||||
u16 coins = CheckCoins(coins_ptr);
|
||||
u16 coins = Coins_GetValue(coins_ptr);
|
||||
|
||||
if (coins < amount) {
|
||||
*ret_ptr = 0;
|
||||
|
|
@ -126,7 +126,7 @@ BOOL ScrCmd_CanGiveCoins(struct ScriptContext *ctx) // 0276
|
|||
u16 *ret_ptr = ScriptGetVarPointer(ctx);
|
||||
u16 amount = ScriptGetVar(ctx);
|
||||
|
||||
*ret_ptr = (u16)CanGiveCoins(coins_ptr, amount);
|
||||
*ret_ptr = (u16)Coins_CanAdd(coins_ptr, amount);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
#define MAX_COINS 50000
|
||||
|
||||
void InitCoins(u16 *coins);
|
||||
void SetCoins(u16 *coins, u16 value);
|
||||
u16 CheckCoins(u16 *coins);
|
||||
BOOL GiveCoins(u16 *coins, u16 amount);
|
||||
BOOL CanGiveCoins(u16 *coins, u16 amount);
|
||||
BOOL TakeCoins(u16 *coins, u16 amount);
|
||||
void Coins_Init(u16 *coins);
|
||||
void Coins_SetValue(u16 *coins, u32 value);
|
||||
u16 Coins_GetValue(u16 *coins);
|
||||
BOOL Coins_Add(u16 *coins, u16 amount);
|
||||
BOOL Coins_CanAdd(u16 *coins, u16 amount);
|
||||
BOOL Coins_Subtract(u16 *coins, u16 amount);
|
||||
|
||||
#endif // POKEDIAMOND_COINS_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user