From ce2d4d2b8fe213ad007c1808e7441184ecc3a042 Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Fri, 25 Sep 2020 10:58:06 -0600 Subject: Created Dynamic Trade Names (markdown) --- Dynamic-Trade-Names.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Dynamic-Trade-Names.md diff --git a/Dynamic-Trade-Names.md b/Dynamic-Trade-Names.md new file mode 100644 index 0000000..ee4b8d8 --- /dev/null +++ b/Dynamic-Trade-Names.md @@ -0,0 +1,26 @@ +## Dynamic Trade Names + +Traded Pokemon are stored at gEnemyParty[0]. If you create a custom Pokemon to trade (not in sIngameTrades), the trading scene strings will get messed up. This loads the correct OT name / OT nickname from the pokemon's data structure rather than the in game trade array. + +credit: Zeturic's binary FR src + +### Open (src/trade.c)[../blob/master/src/trade.c] + +Find `BufferTradeSceneStrings` After the `else` statement, replace the following: +```c +ingameTrade = &sIngameTrades[gSpecialVar_0x8004]; +StringCopy(gStringVar1, ingameTrade->otName); +StringCopy10(gStringVar3, ingameTrade->nickname); +GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, name); +StringCopy10(gStringVar2, name); +``` +with: +```c +GetMonData(&gEnemyParty[0], MON_DATA_OT_NAME, gStringVar1); +GetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, name); +StringCopy10(gStringVar3, name); +GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, name); +StringCopy10(gStringVar2, name); +``` + +That's it! \ No newline at end of file -- cgit v1.2.3