mirror of
https://github.com/pret/pokeheartgold.git
synced 2025-03-05 11:37:07 +00:00
Merge branch 'master' of github.com:pret/pokeheartgold into pikalax_work
This commit is contained in:
commit
96e4e56214
71
asm/coins.s
71
asm/coins.s
@ -1,71 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0202C948
|
||||
sub_0202C948: ; 0x0202C948
|
||||
mov r1, #0
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_0202C948
|
||||
|
||||
thumb_func_start sub_0202C950
|
||||
sub_0202C950: ; 0x0202C950
|
||||
ldrh r0, [r0]
|
||||
bx lr
|
||||
thumb_func_end sub_0202C950
|
||||
|
||||
thumb_func_start sub_0202C954
|
||||
sub_0202C954: ; 0x0202C954
|
||||
ldrh r3, [r0]
|
||||
ldr r2, _0202C970 ; =0x0000C350
|
||||
cmp r3, r2
|
||||
blo _0202C960
|
||||
mov r0, #0
|
||||
bx lr
|
||||
_0202C960:
|
||||
add r1, r3, r1
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r0]
|
||||
cmp r1, r2
|
||||
bls _0202C96C
|
||||
strh r2, [r0]
|
||||
_0202C96C:
|
||||
mov r0, #1
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
_0202C970: .word 0x0000C350
|
||||
thumb_func_end sub_0202C954
|
||||
|
||||
thumb_func_start sub_0202C974
|
||||
sub_0202C974: ; 0x0202C974
|
||||
ldrh r0, [r0]
|
||||
add r1, r1, r0
|
||||
ldr r0, _0202C988 ; =0x0000C350
|
||||
cmp r1, r0
|
||||
bhi _0202C982
|
||||
mov r0, #1
|
||||
bx lr
|
||||
_0202C982:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
nop
|
||||
_0202C988: .word 0x0000C350
|
||||
thumb_func_end sub_0202C974
|
||||
|
||||
thumb_func_start sub_0202C98C
|
||||
sub_0202C98C: ; 0x0202C98C
|
||||
ldrh r2, [r0]
|
||||
cmp r2, r1
|
||||
bhs _0202C996
|
||||
mov r0, #0
|
||||
bx lr
|
||||
_0202C996:
|
||||
sub r1, r2, r1
|
||||
strh r1, [r0]
|
||||
mov r0, #1
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_0202C98C
|
@ -19356,7 +19356,7 @@ _021EECBA:
|
||||
add r4, r0, #0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
add r2, r0, #0
|
||||
b _021EED04
|
||||
_021EECD2:
|
||||
|
@ -29,7 +29,7 @@ ov122_021E5900: ; 0x021E5900
|
||||
bl ov122_021E8770
|
||||
add r6, r0, #0
|
||||
ldr r0, [r5, #8]
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
lsl r0, r0, #0x10
|
||||
lsr r4, r0, #0x10
|
||||
add r0, r5, #0
|
||||
@ -348,7 +348,7 @@ ov122_021E5BA8: ; 0x021E5BA8
|
||||
add r4, r1, #0
|
||||
add r5, r0, #0
|
||||
ldr r0, [r4, #8]
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
ldr r1, _021E5BDC ; =0x0000C350
|
||||
cmp r0, r1
|
||||
blo _021E5BCE
|
||||
@ -1631,7 +1631,7 @@ ov122_021E6594: ; 0x021E6594
|
||||
bl ov122_021E8770
|
||||
add r6, r0, #0
|
||||
ldr r0, [r5, #8]
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
lsl r0, r0, #0x10
|
||||
lsr r4, r0, #0x10
|
||||
add r0, r5, #0
|
||||
@ -2236,7 +2236,7 @@ ov122_021E6A64: ; 0x021E6A64
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5, #8]
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
lsl r0, r0, #0x10
|
||||
lsr r6, r0, #0x10
|
||||
mov r0, #0x91
|
||||
@ -2263,7 +2263,7 @@ _021E6A94:
|
||||
bl ov122_021E8610
|
||||
ldr r0, [r5, #8]
|
||||
add r1, r4, #0
|
||||
bl sub_0202C954
|
||||
bl GiveCoins
|
||||
ldr r0, _021E6B2C ; =0x0000C350
|
||||
add r7, r6, r4
|
||||
cmp r7, r0
|
||||
@ -2292,7 +2292,7 @@ _021E6ADA:
|
||||
beq _021E6B18
|
||||
ldr r0, [r5, #8]
|
||||
mov r1, #1
|
||||
bl sub_0202C954
|
||||
bl GiveCoins
|
||||
sub r2, r4, #1
|
||||
lsl r2, r2, #0x10
|
||||
add r0, r5, #0
|
||||
@ -5191,7 +5191,7 @@ _021E80A4:
|
||||
add r0, r4, #0
|
||||
bl ov122_021E6B38
|
||||
ldr r0, [r4, #8]
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
lsl r0, r0, #0x10
|
||||
lsr r2, r0, #0x10
|
||||
add r0, r4, #0
|
||||
|
@ -100,7 +100,7 @@ ov22_02259960: ; 0x02259960
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
strh r0, [r4]
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
@ -123,7 +123,7 @@ ov22_0225998C: ; 0x0225998C
|
||||
ldr r0, [r4, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
add r1, r5, #0
|
||||
bl sub_0202C954
|
||||
bl GiveCoins
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
.balign 4, 0
|
||||
@ -145,7 +145,7 @@ ov22_022599B8: ; 0x022599B8
|
||||
ldr r0, [r4, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
add r1, r5, #0
|
||||
bl sub_0202C98C
|
||||
bl TakeCoins
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
.balign 4, 0
|
||||
@ -167,7 +167,7 @@ ov22_022599E4: ; 0x022599E4
|
||||
ldr r0, [r4, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
ldrh r1, [r5]
|
||||
bl sub_0202C98C
|
||||
bl TakeCoins
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
.balign 4, 0
|
||||
@ -192,7 +192,7 @@ ov22_02259A10: ; 0x02259A10
|
||||
add r6, r0, #0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
cmp r0, r6
|
||||
bhs _02259A46
|
||||
mov r0, #0
|
||||
@ -229,7 +229,7 @@ ov22_02259A50: ; 0x02259A50
|
||||
add r5, r0, #0
|
||||
ldr r0, [r6, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
ldrh r1, [r5]
|
||||
cmp r0, r1
|
||||
bhs _02259A92
|
||||
@ -268,7 +268,7 @@ ov22_02259A9C: ; 0x02259A9C
|
||||
ldr r0, [r4, #0xc]
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
add r1, r5, #0
|
||||
bl sub_0202C974
|
||||
bl CanGiveCoins
|
||||
strh r0, [r6]
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
|
@ -23,7 +23,7 @@ Sav2_PlayerData_init: ; 0x02028E70
|
||||
bl PlayerProfile_init
|
||||
add r0, r4, #0
|
||||
add r0, #0x24
|
||||
bl sub_0202C948
|
||||
bl InitCoins
|
||||
add r4, #0x26
|
||||
add r0, r4, #0
|
||||
bl InitIGT
|
||||
|
@ -6201,7 +6201,7 @@ sub_0207791C: ; 0x0207791C
|
||||
sub_02077924: ; 0x02077924
|
||||
push {r3, lr}
|
||||
bl Sav2_PlayerData_GetCoinsAddr
|
||||
bl sub_0202C950
|
||||
bl CheckCoins
|
||||
pop {r3, pc}
|
||||
thumb_func_end sub_02077924
|
||||
|
||||
|
10
global.inc
10
global.inc
@ -26277,11 +26277,11 @@
|
||||
.public sub_0202C88C
|
||||
.public sub_0202C8C4
|
||||
.public sub_0202C8E4
|
||||
.public sub_0202C948
|
||||
.public sub_0202C950
|
||||
.public sub_0202C954
|
||||
.public sub_0202C974
|
||||
.public sub_0202C98C
|
||||
.public InitCoins
|
||||
.public CheckCoins
|
||||
.public GiveCoins
|
||||
.public CanGiveCoins
|
||||
.public TakeCoins
|
||||
.public sub_0202C9A0
|
||||
.public sub_0202C9A8
|
||||
.public sub_0202C9D8
|
||||
|
12
include/coins.h
Normal file
12
include/coins.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef POKEHEARTGOLD_COINS_H
|
||||
#define POKEHEARTGOLD_COINS_H
|
||||
|
||||
#define MAX_COINS 50000
|
||||
|
||||
void InitCoins(u16* coins);
|
||||
u16 CheckCoins(u16* coins);
|
||||
BOOL GiveCoins(u16* coins, u16 amount);
|
||||
BOOL CanGiveCoins(u16* coins, u16 amount);
|
||||
BOOL TakeCoins(u16* coins, u16 amount);
|
||||
|
||||
#endif
|
37
src/coins.c
Normal file
37
src/coins.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include "global.h"
|
||||
#include "coins.h"
|
||||
|
||||
void InitCoins(u16* coins) {
|
||||
*coins = 0;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user