summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiegoisawesome <Diegoisawesome@users.noreply.github.com>2017-11-28 10:00:55 -0600
committerGitHub <noreply@github.com>2017-11-28 10:00:55 -0600
commitde00b4aeecc8b81cb18e0d3930699caad3fa2336 (patch)
tree62d368f42e177673f4bb99beb7f571f231142ea7
parent18c6b8efc21a509121ab4d6f5b9c8523689d27a2 (diff)
parent41eb2ed59e3a54819ccf7ef6dbdcde3215331a3f (diff)
Merge pull request #121 from PikalaxALT/coins
Coins
-rw-r--r--asm/coins.s74
-rw-r--r--include/strings.h1
-rw-r--r--ld_script.txt1
-rw-r--r--src/coins.c28
4 files changed, 19 insertions, 85 deletions
diff --git a/asm/coins.s b/asm/coins.s
deleted file mode 100644
index d2b6cbb47..000000000
--- a/asm/coins.s
+++ /dev/null
@@ -1,74 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GiveCoins
-@ bool8 GiveCoins(u16 toAdd)
-GiveCoins: @ 8145C80
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =0x0000270e
- cmp r1, r0
- bls _08145C9C
- movs r0, 0
- b _08145CC0
- .pool
-_08145C9C:
- adds r0, r1, r4
- cmp r1, r0
- ble _08145CAC
- ldr r0, =0x0000270f
- b _08145CBA
- .pool
-_08145CAC:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _08145CB8
- adds r1, r0, 0
-_08145CB8:
- adds r0, r1, 0
-_08145CBA:
- bl SetCoins
- movs r0, 0x1
-_08145CC0:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GiveCoins
-
- thumb_func_start TakeCoins
-@ bool8 TakeCoins(u16 toSub)
-TakeCoins: @ 8145CCC
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcs _08145CE2
- movs r0, 0
- b _08145CEE
-_08145CE2:
- subs r0, r4
- lsls r0, 16
- lsrs r0, 16
- bl SetCoins
- movs r0, 0x1
-_08145CEE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TakeCoins
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/include/strings.h b/include/strings.h
index 08e2b4bba..a32ba4c83 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -82,5 +82,6 @@ extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[];
extern const u8 gText_RegisteredDataDeleted[];
extern const u8 gUnknown_085EA79D[];
+extern const u8 gText_Coins[];
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index 8a3d6ecb0..d6dd9341b 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -184,7 +184,6 @@ SECTIONS {
asm/roulette.o(.text);
asm/pokedex_cry_screen.o(.text);
src/coins.o(.text);
- asm/coins.o(.text);
asm/landmark.o(.text);
asm/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
diff --git a/src/coins.c b/src/coins.c
index e1694b29c..50c31cac0 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -2,8 +2,9 @@
#include "coins.h"
#include "text.h"
#include "window.h"
-#include "text_window.h"
+#include "strings.h"
#include "string_util.h"
+#include "new_menu_helpers.h"
#include "menu.h"
#include "international_string_util.h"
@@ -11,10 +12,6 @@
EWRAM_DATA u8 sCoinsWindowId = 0;
-extern void sub_819746C(u8 windowId, bool8 copyToVram);
-
-extern const u8 gText_Coins[];
-
void PrintCoinsString(u32 coinAmount)
{
u32 xAlign;
@@ -53,7 +50,6 @@ void SetCoins(u16 coinAmount)
gSaveBlock1Ptr->coins = coinAmount ^ gSaveBlock2Ptr->encryptionKey;
}
-/* Can't match it lol
bool8 GiveCoins(u16 toAdd)
{
u16 newAmount;
@@ -67,10 +63,22 @@ bool8 GiveCoins(u16 toAdd)
}
else
{
- newAmount = ownedCoins + toAdd;
- if (newAmount > MAX_COINS)
- newAmount = MAX_COINS;
+ ownedCoins += toAdd;
+ if (ownedCoins > MAX_COINS)
+ ownedCoins = MAX_COINS;
+ newAmount = ownedCoins;
}
SetCoins(newAmount);
return TRUE;
-}*/
+}
+
+bool8 TakeCoins(u16 toSub)
+{
+ u16 ownedCoins = GetCoins();
+ if (ownedCoins >= toSub)
+ {
+ SetCoins(ownedCoins - toSub);
+ return TRUE;
+ }
+ return FALSE;
+}