diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-11 15:06:35 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-11 15:06:35 -0400 |
commit | 1fd187fb57a8b588f68455366d81f4b839939cb5 (patch) | |
tree | 2637a86983c6ae04545a46a8d77b8fc6ab39e8f4 | |
parent | 21224433ab5ce61f3c0b5c14bf2d76cbdb3ed740 (diff) |
through sub_81113E4
-rw-r--r-- | asm/quest_log.s | 206 | ||||
-rw-r--r-- | include/event_data.h | 1 | ||||
-rw-r--r-- | include/item.h | 2 | ||||
-rw-r--r-- | include/overworld.h | 5 | ||||
-rw-r--r-- | src/quest_log.c | 59 |
5 files changed, 65 insertions, 208 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 9bde28c53..f2da90afc 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,212 +5,6 @@ .text - thumb_func_start sub_8111274 -sub_8111274: @ 8111274 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _081112D4 - ldr r3, _081112C8 @ =gSaveBlock1Ptr - ldr r2, [r3] - movs r0, 0xCD - lsls r0, 3 - adds r1, r4, 0 - muls r1, r0 - adds r0, r2, r1 - ldr r4, _081112CC @ =0x00001301 - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2, 0x4] - ldr r2, [r3] - adds r0, r2, r1 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2, 0x5] - ldr r2, [r3] - adds r0, r2, r1 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2, 0x6] - ldr r2, [r3] - adds r1, r2, r1 - ldr r3, _081112D0 @ =0x00001304 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] - adds r4, 0x3 - adds r1, r4 - ldrh r0, [r1] - strh r0, [r2, 0x2] - b _08111336 - .align 2, 0 -_081112C8: .4byte gSaveBlock1Ptr -_081112CC: .4byte 0x00001301 -_081112D0: .4byte 0x00001304 -_081112D4: - ldr r0, _08111340 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r0, 0xCD - lsls r0, 3 - muls r0, r4 - adds r3, r0 - ldr r1, _08111344 @ =0x00001301 - adds r0, r3, r1 - ldrb r2, [r0] - ldr r0, _08111348 @ =0xffffff00 - ldr r1, [sp] - ands r1, r0 - orrs r1, r2 - str r1, [sp] - ldr r2, _0811134C @ =0x00001302 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 8 - ldr r2, _08111350 @ =0xffff00ff - ands r2, r1 - orrs r2, r0 - str r2, [sp] - ldr r4, _08111354 @ =0x00001303 - adds r0, r3, r4 - ldrb r1, [r0] - lsls r1, 16 - ldr r0, _08111358 @ =0xff00ffff - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldr r1, _0811135C @ =0x00001304 - adds r0, r3, r1 - ldrh r1, [r0] - ldr r0, _08111360 @ =0xffff0000 - ldr r2, [sp, 0x4] - ands r2, r0 - orrs r2, r1 - str r2, [sp, 0x4] - adds r4, 0x3 - adds r3, r4 - ldrh r1, [r3] - lsls r1, 16 - ldr r0, _08111364 @ =0x0000ffff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl sub_8055D5C -_08111336: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08111340: .4byte gSaveBlock1Ptr -_08111344: .4byte 0x00001301 -_08111348: .4byte 0xffffff00 -_0811134C: .4byte 0x00001302 -_08111350: .4byte 0xffff00ff -_08111354: .4byte 0x00001303 -_08111358: .4byte 0xff00ffff -_0811135C: .4byte 0x00001304 -_08111360: .4byte 0xffff0000 -_08111364: .4byte 0x0000ffff - thumb_func_end sub_8111274 - - thumb_func_start sub_8111368 -sub_8111368: @ 8111368 - push {lr} - ldr r1, _081113A0 @ =gUnknown_203ADFA - movs r0, 0x2 - strb r0, [r1] - bl sub_806E6FC - bl sub_809A2DC - bl sub_809A2A4 - bl sub_8110AC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081113B4 - ldr r0, _081113A4 @ =gUnknown_203ADF8 - ldrb r0, [r0] - movs r1, 0 - bl sub_8111274 - ldr r1, _081113A8 @ =gUnknown_3005024 - ldr r0, _081113AC @ =sub_8111038 - str r0, [r1] - ldr r0, _081113B0 @ =sub_80572A8 - bl SetMainCallback2 - b _081113CE - .align 2, 0 -_081113A0: .4byte gUnknown_203ADFA -_081113A4: .4byte gUnknown_203ADF8 -_081113A8: .4byte gUnknown_3005024 -_081113AC: .4byte sub_8111038 -_081113B0: .4byte sub_80572A8 -_081113B4: - ldr r0, _081113D4 @ =gUnknown_203ADF8 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8111274 - bl warp_in - ldr r1, _081113D8 @ =gUnknown_3005024 - ldr r0, _081113DC @ =sub_8111000 - str r0, [r1] - ldr r0, _081113E0 @ =sub_805726C - bl SetMainCallback2 -_081113CE: - pop {r0} - bx r0 - .align 2, 0 -_081113D4: .4byte gUnknown_203ADF8 -_081113D8: .4byte gUnknown_3005024 -_081113DC: .4byte sub_8111000 -_081113E0: .4byte sub_805726C - thumb_func_end sub_8111368 - - thumb_func_start sub_81113E4 -sub_81113E4: @ 81113E4 - push {r4,r5,lr} - ldr r4, _08111430 @ =gSaveBlock1Ptr - ldr r0, _08111434 @ =gUnknown_203ADF8 - ldrb r1, [r0] - movs r0, 0xCD - lsls r0, 3 - muls r0, r1 - movs r1, 0x98 - lsls r1, 5 - adds r0, r1 - ldr r1, [r4] - adds r5, r1, r0 - movs r2, 0xA4 - lsls r2, 1 - adds r0, r5, r2 - movs r2, 0xEE - lsls r2, 4 - adds r1, r2 - movs r2, 0x90 - bl CpuSet - movs r1, 0x9A - lsls r1, 2 - adds r0, r5, r1 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - movs r2, 0x80 - lsls r2, 1 - bl CpuSet - bl sub_8111688 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111430: .4byte gSaveBlock1Ptr -_08111434: .4byte gUnknown_203ADF8 - thumb_func_end sub_81113E4 - thumb_func_start sub_8111438 sub_8111438: @ 8111438 push {r4-r7,lr} diff --git a/include/event_data.h b/include/event_data.h index f28ed4f75..77bc41603 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -31,6 +31,7 @@ u8 FlagClear(u16 id); bool8 FlagGet(u16 id); u16 * sub_806E454(u16 id); bool32 sub_806E2BC(void); +void sub_806E6FC(void); extern u16 gSpecialVar_0x8000; extern u16 gSpecialVar_0x8001; diff --git a/include/item.h b/include/item.h index a136f03ec..199b3b65e 100644 --- a/include/item.h +++ b/include/item.h @@ -60,5 +60,7 @@ u8 ItemId_GetBattleUsage(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); +void sub_809A2DC(void); +void sub_809A2A4(void); #endif // ITEM_H diff --git a/include/overworld.h b/include/overworld.h index 7f7c92743..ab9e114ef 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -72,7 +72,12 @@ void IncrementGameStat(u8); u32 GetGameStat(u8); void sub_8056938(void); +void sub_8055D5C(struct WarpData *); +void sub_80572A8(void); +void sub_805726C(void); extern u8 gUnknown_2031DD8; +extern bool8 (* gUnknown_3005024)(void); + #endif //GUARD_ROM4_H diff --git a/src/quest_log.c b/src/quest_log.c index 3e41d7d31..d03319434 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -10,6 +10,7 @@ #include "script.h" #include "overworld.h" #include "field_fadetransition.h" +#include "item.h" #include "wild_encounter.h" #include "help_system.h" #include "unk_8159F40.h" @@ -57,6 +58,7 @@ void sub_8110F90(u8); void sub_8111150(u8); void sub_8111368(void); void sub_81115E8(void); +void sub_8111688(void); void sub_811175C(u8, struct UnkStruct_203AE98 *); void sub_81118F4(s8); void sub_81138F8(void); @@ -434,8 +436,8 @@ void sub_8110D48(u8 a0) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; - CpuCopy16(gSaveBlock1Ptr->flags, questLog->unk_148, 0x120); - CpuCopy16(gSaveBlock1Ptr->vars, questLog->unk_268, 0x200); + CpuCopy16(gSaveBlock1Ptr->flags, questLog->unk_148, FLAGS_COUNT * sizeof(u8)); + CpuCopy16(gSaveBlock1Ptr->vars, questLog->unk_268, VARS_COUNT * sizeof(u16)); } void sub_8110D94(void) @@ -621,3 +623,56 @@ void sub_8111150(u8 a0) sub_815A1F8(questLog, gSaveBlock1Ptr->mapObjectTemplates); } + +void sub_8111274(u8 a0, u8 a1) +{ + struct WarpData sp0; + + if (!a1) + { + gSaveBlock1Ptr->location.mapGroup = gSaveBlock1Ptr->questLog[a0].unk_001; + gSaveBlock1Ptr->location.mapNum = gSaveBlock1Ptr->questLog[a0].unk_002; + gSaveBlock1Ptr->location.warpId = gSaveBlock1Ptr->questLog[a0].unk_003; + gSaveBlock1Ptr->pos.x = gSaveBlock1Ptr->questLog[a0].unk_004; + gSaveBlock1Ptr->pos.y = gSaveBlock1Ptr->questLog[a0].unk_006; + } + else + { + sp0.mapGroup = gSaveBlock1Ptr->questLog[a0].unk_001; + sp0.mapNum = gSaveBlock1Ptr->questLog[a0].unk_002; + sp0.warpId = gSaveBlock1Ptr->questLog[a0].unk_003; + sp0.x = gSaveBlock1Ptr->questLog[a0].unk_004; + sp0.y = gSaveBlock1Ptr->questLog[a0].unk_006; + sub_8055D5C(&sp0); + } +} + +void sub_8111368(void) +{ + gUnknown_203ADFA = 2; + sub_806E6FC(); + sub_809A2DC(); + sub_809A2A4(); + if (sub_8110AC8() == 1) + { + sub_8111274(gUnknown_203ADF8, 0); + gUnknown_3005024 = sub_8111038; + SetMainCallback2(sub_80572A8); + } + else + { + sub_8111274(gUnknown_203ADF8, 1); + warp_in(); + gUnknown_3005024 = sub_8111000; + SetMainCallback2(sub_805726C); + } +} + +void sub_81113E4(void) +{ + struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[gUnknown_203ADF8]; + + CpuCopy16(questLog->unk_148, gSaveBlock1Ptr->flags, FLAGS_COUNT * sizeof(u8)); + CpuCopy16(questLog->unk_268, gSaveBlock1Ptr->vars, VARS_COUNT * sizeof(u16)); + sub_8111688(); +} |