diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-08 11:43:54 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-08 11:43:54 -0500 |
commit | 50709682c7b1db4a1fcdfcf8080910bde2f969a1 (patch) | |
tree | a5547cbe82548abe318b280f504c695c88832b48 /src/quest_log.c | |
parent | 21b5f78d6a38032aa49870a4c02cacfed2249ab8 (diff) |
through sub_8113FBC
Diffstat (limited to 'src/quest_log.c')
-rw-r--r-- | src/quest_log.c | 120 |
1 files changed, 99 insertions, 21 deletions
diff --git a/src/quest_log.c b/src/quest_log.c index b95bc8bd6..8131e1937 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1,5 +1,6 @@ #include "global.h" #include "constants/species.h" +#include "constants/items.h" #include "data2.h" #include "malloc.h" #include "main.h" @@ -29,6 +30,7 @@ #include "map_name_popup.h" #include "wild_encounter.h" #include "help_system.h" +#include "party_menu.h" #include "unk_8159F40.h" #include "pokemon_storage_system.h" #include "save.h" @@ -275,6 +277,14 @@ bool8 sub_81153E4(u16, void*); extern const u8 gUnknown_841A155[]; extern const u8 gUnknown_841A16F[]; extern const u8 gUnknown_841B073[]; +extern const u8 gUnknown_841AFA6[]; +extern const u8 gUnknown_841A1E7[]; +extern const u8 gUnknown_841A210[]; +extern const u8 gUnknown_841A220[]; +extern const u8 gUnknown_841A965[]; +extern const u8 gUnknown_841A277[]; +extern const u8 gUnknown_841A938[]; +extern const u8 gUnknown_841A255[]; const struct WindowTemplate gUnknown_845661C[3] = { { 0, 0, 0, 30, 2, 15, 0x0e9 }, @@ -2646,7 +2656,7 @@ u8 sub_8113530(void) return sub_8113114(VAR_0x4038_STRUCT, gUnknown_20370C0); } -u16 * (*const gUnknown_8456948[])(u16 *, u16 *) = { +static u16 * (*const sQuestLogStorageCBs[])(u16 *, u16 *) = { NULL, NULL, NULL, @@ -2752,18 +2762,18 @@ void sub_8113550(u16 a0, u16 * a1) if (gUnknown_203AE04 == NULL) { gUnknown_203AE04 = gUnknown_203AE08; - r1 = gUnknown_8456948[a0](gUnknown_203AE04, a1); + r1 = sQuestLogStorageCBs[a0](gUnknown_203AE04, a1); } else { - gUnknown_8456948[a0](gUnknown_203AE04, a1); + sQuestLogStorageCBs[a0](gUnknown_203AE04, a1); return; } } else { gUnknown_203AE04 = NULL; - r1 = gUnknown_8456948[a0](gUnknown_203AE08, a1); + r1 = sQuestLogStorageCBs[a0](gUnknown_203AE08, a1); } if (r1 == NULL) @@ -2905,27 +2915,27 @@ void sub_8113550(u16 a0, u16 * a1) "\tldr r0, _08113660 @ =gUnknown_203AE08\n" "\tldr r0, [r0]\n" "\tstr r0, [r2]\n" - "\tldr r1, _08113664 @ =gUnknown_8456948\n" + "\tldr r1, _08113664 @ =sQuestLogStorageCBs\n" "\tldr r2, [r1, 0x7C]\n" "\tb _0811368E\n" "\t.align 2, 0\n" "_0811365C: .4byte gUnknown_203AE04\n" "_08113660: .4byte gUnknown_203AE08\n" - "_08113664: .4byte gUnknown_8456948\n" + "_08113664: .4byte sQuestLogStorageCBs\n" "_08113668:\n" - "\tldr r0, _08113678 @ =gUnknown_8456948\n" + "\tldr r0, _08113678 @ =sQuestLogStorageCBs\n" "\tldr r2, [r0, 0x7C]\n" "\tadds r0, r1, 0\n" "\tadds r1, r5, 0\n" "\tbl _call_via_r2\n" "\tb ._return\n" "\t.align 2, 0\n" - "_08113678: .4byte gUnknown_8456948\n" + "_08113678: .4byte sQuestLogStorageCBs\n" "_0811367C:\n" "\tldr r1, _081136C4 @ =gUnknown_203AE04\n" "\tmovs r0, 0\n" "\tstr r0, [r1]\n" - "\tldr r0, _081136C8 @ =gUnknown_8456948\n" + "\tldr r0, _081136C8 @ =sQuestLogStorageCBs\n" "\tlsls r1, r4, 2\n" "\tadds r1, r0\n" "\tldr r0, _081136CC @ =gUnknown_203AE08\n" @@ -2958,7 +2968,7 @@ void sub_8113550(u16 a0, u16 * a1) "\tbx r0\n" "\t.align 2, 0\n" "_081136C4: .4byte gUnknown_203AE04\n" - "_081136C8: .4byte gUnknown_8456948\n" + "_081136C8: .4byte sQuestLogStorageCBs\n" "_081136CC: .4byte gUnknown_203AE08\n" "_081136D0: .4byte gUnknown_203B048"); } @@ -3051,7 +3061,7 @@ u16 * sub_8113828(u16 a0, u16 * a1) else gUnknown_203AE04 = NULL; - return gUnknown_8456948[a0](gUnknown_203AE08, a1); + return sQuestLogStorageCBs[a0](gUnknown_203AE08, a1); } bool8 sub_81138A0(u16 a0, u16 * a1) @@ -3084,7 +3094,7 @@ void sub_811390C(void) u16 * resp; gUnknown_203B04A = 0; sub_8110AEC(gUnknown_203B024.unk_00); - resp = gUnknown_8456948[gUnknown_203B024.unk_00](gUnknown_203AE08, (u16 *)&gUnknown_203B024.unk_04); + resp = sQuestLogStorageCBs[gUnknown_203B024.unk_00](gUnknown_203AE08, (u16 *)&gUnknown_203B024.unk_04); gUnknown_203AE08 = resp; sub_81138F8(); } @@ -3114,7 +3124,7 @@ void sub_81139BC(void) sub_8110AEC(gUnknown_203B024.unk_00); } sub_8113B94(gUnknown_203B024.unk_00); - resp = gUnknown_8456948[gUnknown_203B024.unk_00](gUnknown_203AE08, (u16 *)&gUnknown_203B024.unk_04); + resp = sQuestLogStorageCBs[gUnknown_203B024.unk_00](gUnknown_203AE08, (u16 *)&gUnknown_203B024.unk_04); gUnknown_203AE08 = resp; sub_8113A1C(1); sub_81138F8(); @@ -3142,7 +3152,7 @@ bool8 sub_8113A44(u16 a0, u16 *a1) return FALSE; } -u16 * (*const gUnknown_84569F4[])(u16 *) = { +static u16 * (*const sQuestLogScriptParsingCBs[])(u16 *) = { NULL, NULL, NULL, @@ -3261,7 +3271,7 @@ bool8 sub_8113AE8(u16 * a0) if (a0 == NULL || a0[1] > gUnknown_203AF98) return FALSE; - gUnknown_84569F4[a0[0] & 0xFFF](a0); + sQuestLogScriptParsingCBs[a0[0] & 0xFFF](a0); gUnknown_203B044.unk_0 = a0[0]; gUnknown_203B044.unk_1 = (a0[0] & 0xF000) >> 12; if (gUnknown_203B044.unk_1 != 0) @@ -3287,7 +3297,7 @@ bool8 sub_8113AE8(u16 * a0) "\t.align 2, 0\n" "_08113B00: .4byte gUnknown_203AF98\n" "_08113B04:\n" - "\tldr r2, _08113B38 @ =gUnknown_84569F4\n" + "\tldr r2, _08113B38 @ =sQuestLogScriptParsingCBs\n" "\tldrh r1, [r4]\n" "\tldr r0, _08113B3C @ =0x00000fff\n" "\tands r0, r1\n" @@ -3315,7 +3325,7 @@ bool8 sub_8113AE8(u16 * a0) "\tpop {r1}\n" "\tbx r1\n" "\t.align 2, 0\n" - "_08113B38: .4byte gUnknown_84569F4\n" + "_08113B38: .4byte sQuestLogScriptParsingCBs\n" "_08113B3C: .4byte 0x00000fff\n" "_08113B40: .4byte gUnknown_203B044"); } @@ -3326,7 +3336,7 @@ bool8 sub_8113B44(u16 * a0) if (gUnknown_203B044.unk_2 == 0) return FALSE; - gUnknown_84569F4[gUnknown_203B044.unk_0](a0); + sQuestLogScriptParsingCBs[gUnknown_203B044.unk_0](a0); gUnknown_203B044.unk_2++; if (gUnknown_203B044.unk_2 > gUnknown_203B044.unk_1) sub_8113B88(); @@ -3517,7 +3527,7 @@ u16 * sub_8113E88(u16 a0, u16 * a1) // TODO: delete this declaration once data_83FECCC.s is decompiled extern const u8 gText_EggNickname[]; -void sub_8113EAC(u16 a0, u8 * a1, u8 a2) +void QuestLog_AutoGetSpeciesname(u16 a0, u8 * a1, u8 a2) { if (a1 != NULL) { @@ -3549,9 +3559,77 @@ u16 * sub_8113F14(u16 * a0, u16 * a1) u16 * sub_8113F3C(u16 * a0) { u16 * r4 = sub_8113E88(3, a0); - sub_8113EAC(r4[0], gStringVar1, 0); - sub_8113EAC(r4[1], gStringVar2, 0); + QuestLog_AutoGetSpeciesname(r4[0], gStringVar1, 0); + QuestLog_AutoGetSpeciesname(r4[1], gStringVar2, 0); StringExpandPlaceholders(gStringVar4, gUnknown_841A16F); r4 += 2; return r4; } + +u16 * sub_8113F80(u16 * a0, u16 * a1) +{ + u16 * r2 = sub_8113DE0(4, a0); + if (r2 == NULL) + return NULL; + + r2[0] = a1[0]; + r2[1] = a1[2]; + r2[2] = a1[3]; + + if (a1[0] == ITEM_ESCAPE_ROPE) + gUnknown_203B048 = 2; + + return r2 + 3; +} + +u16 * sub_8113FBC(u16 * a0) +{ + u16 * r5 = sub_8113E88(4, a0); + + switch (ItemId_GetPocket(r5[0])) + { + case POCKET_ITEMS: + case POCKET_POKE_BALLS: + case POCKET_BERRY_POUCH: + StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name); + if (r5[0] == ITEM_ESCAPE_ROPE) + { + sub_80C4DF8(gStringVar2, r5[2]); + StringExpandPlaceholders(gStringVar4, gUnknown_841AFA6); + } + else if (r5[1] != 0xFFFF) + { + QuestLog_AutoGetSpeciesname(r5[1], gStringVar2, 0); + StringExpandPlaceholders(gStringVar4, gUnknown_841A1E7); + } + else + { + StringExpandPlaceholders(gStringVar4, gUnknown_841A210); + } + break; + case POCKET_KEY_ITEMS: + StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name); + StringExpandPlaceholders(gStringVar4, gUnknown_841A220); + break; + case POCKET_TM_CASE: + QuestLog_AutoGetSpeciesname(r5[1], gStringVar1, 0); + StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(r5[0])]); + if (r5[2] != 0xFFFF) + { + StringCopy(gStringVar3, gMoveNames[r5[2]]); + if (r5[0] > ITEM_TM50) + StringExpandPlaceholders(gStringVar4, gUnknown_841A965); + else + StringExpandPlaceholders(gStringVar4, gUnknown_841A277); + } + else + { + if (r5[0] > ITEM_TM50) + StringExpandPlaceholders(gStringVar4, gUnknown_841A938); + else + StringExpandPlaceholders(gStringVar4, gUnknown_841A255); + } + break; + } + return r5 + 3; +} |