diff options
-rw-r--r-- | Increase-money-limit.md | 95 |
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! + + + + +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 |