summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Increase-money-limit.md95
1 files changed, 95 insertions, 0 deletions
diff --git a/Increase-money-limit.md b/Increase-money-limit.md
new file mode 100644
index 0000000..5e0347b
--- /dev/null
+++ b/Increase-money-limit.md
@@ -0,0 +1,95 @@
+Credit to DizzyEgg for this feature. This feature may also be directly be pulled from DizzyEgg's [money](https://github.com/DizzyEggg/pokeemerald/tree/money) branch.
+
+This tutorial will raise the money limit to 9,999,999.
+
+## Contents
+1. [Increase max money amount](1-increase-max-money-amount)
+2. [Change X position on the money box](2-change-x-position-on-the-money-box)
+3. [Increase max digits](3-increase-max-digits)
+
+## 1. Increase max money amount
+Edit [src/money.c](../blob/master/src/money.c):
+```diff
+-#define MAX_MONEY 999999
++#define MAX_MONEY 9999999
+```
+Also in the same file:
+```diff
+ void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed)
+ {
+- PrintMoneyAmount(windowId, 0x26, 1, amount, speed);
++ PrintMoneyAmount(windowId, 0x20, 1, amount, speed);
+ }
+
+ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed)
+ {
+ u8 *txtPtr;
+ s32 strLength;
+
+- ConvertIntToDecimalStringN(gStringVar1, amount, STR_CONV_MODE_LEFT_ALIGN, 6);
++ ConvertIntToDecimalStringN(gStringVar1, amount, STR_CONV_MODE_LEFT_ALIGN, 7);
+
+- strLength = 6 - StringLength(gStringVar1);
++ strLength = 7 - StringLength(gStringVar1);
+ txtPtr = gStringVar4;
+
+ while (strLength-- > 0)
+ *(txtPtr++) = 0x77;
+
+ StringExpandPlaceholders(txtPtr, gText_PokedollarVar1);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, speed, NULL);
+ }
+```
+
+## 2. Change X position on the money box
+Edit [src/shop.c](../blob/master/src/shop.c):
+```diff
+ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
+ {
+ s16 *data = gTasks[taskId].data;
+
+ FillWindowPixelBuffer(4, PIXEL_FILL(1));
+- PrintMoneyAmount(4, 38, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF);
++ PrintMoneyAmount(4, 32, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF);
+ ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_xVar1);
+ BuyMenuPrint(4, gStringVar4, 0, 1, 0, 0);
+ }
+```
+
+## 3. Increase max digits
+Edit [src/trainer_card.c](../blob/master/src/trainer_card.c):
+```diff
+ static void PrintMoneyOnCard(void)
+ {
+ s32 xOffset;
+ u8 top;
+
+ if (!sData->isHoenn)
+ AddTextPrinterParameterized3(1, 1, 20, 56, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardMoney);
+ else
+ AddTextPrinterParameterized3(1, 1, 16, 57, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardMoney);
+
+- ConvertIntToDecimalStringN(gStringVar1, sData->trainerCard.money, STR_CONV_MODE_LEFT_ALIGN, 6);
++ ConvertIntToDecimalStringN(gStringVar1, sData->trainerCard.money, STR_CONV_MODE_LEFT_ALIGN, 7);
+ StringExpandPlaceholders(gStringVar4, gText_PokedollarVar1);
+ if (!sData->isHoenn)
+ {
+ xOffset = GetStringRightAlignXOffset(1, gStringVar4, 144);
+ top = 56;
+ }
+ else
+ {
+ xOffset = GetStringRightAlignXOffset(1, gStringVar4, 128);
+ top = 57;
+ }
+ AddTextPrinterParameterized3(1, 1, xOffset, top, sTrainerCardTextColors, TEXT_SPEED_FF, gStringVar4);
+ }
+```
+
+And that's it!
+
+![](https://i.imgur.com/MfLQ3aT.png)
+![](https://i.imgur.com/HxZtj9v.png)
+
+Note: if you want 8 digits, use `8` instead of `7` for digit count and `0x1A` instead of `0x20`. Don't forget to set `MAX_MONEY` appropriately. \ No newline at end of file