diff options
-rw-r--r-- | asm/quest_log.s | 162 | ||||
-rw-r--r-- | include/unk_8159F40.h | 1 | ||||
-rw-r--r-- | src/quest_log.c | 30 |
3 files changed, 31 insertions, 162 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 24ffaeb24..9bde28c53 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,168 +5,6 @@ .text - thumb_func_start sub_8111134 -sub_8111134: @ 8111134 - push {r4,lr} - ldr r4, _0811114C @ =gUnknown_203ADFE - ldrb r0, [r4, 0x1] - bl PutWindowTilemap - ldrb r0, [r4, 0x1] - movs r1, 0x1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811114C: .4byte gUnknown_203ADFE - thumb_func_end sub_8111134 - - thumb_func_start sub_8111150 -sub_8111150: @ 8111150 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081111A8 @ =gSaveBlock1Ptr - movs r1, 0xCD - lsls r1, 3 - muls r0, r1 - movs r1, 0x98 - lsls r1, 5 - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - movs r4, 0 - mov r9, r2 - mov r6, r9 - movs r2, 0x8D - lsls r2, 3 - mov r12, r2 - ldr r7, _081111AC @ =0x000008e4 - mov r8, r7 -_08111180: - lsls r0, r4, 2 - adds r3, r5, r0 - ldr r2, _081111B0 @ =0x00000469 - adds r1, r3, r2 - ldrb r1, [r1] - lsls r1, 31 - mov r10, r0 - cmp r1, 0 - beq _081111B4 - ldr r1, [r6] - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 3 - adds r1, r0 - mov r7, r12 - adds r0, r3, r7 - ldrb r0, [r0] - negs r0, r0 - b _081111C4 - .align 2, 0 -_081111A8: .4byte gSaveBlock1Ptr -_081111AC: .4byte 0x000008e4 -_081111B0: .4byte 0x00000469 -_081111B4: - ldr r1, [r6] - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 3 - adds r1, r0 - mov r7, r12 - adds r0, r3, r7 - ldrb r0, [r0] -_081111C4: - add r1, r8 - strh r0, [r1] - adds r3, r2, 0 - mov r0, r10 - adds r2, r5, r0 - ldr r1, _081111F0 @ =0x0000046a - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _081111F4 - ldr r1, [r6] - adds r0, r3, r4 - lsls r0, 3 - adds r1, r0 - mov r7, r12 - adds r0, r2, r7 - ldr r0, [r0] - lsls r0, 15 - lsrs r0, 24 - negs r0, r0 - b _08111206 - .align 2, 0 -_081111F0: .4byte 0x0000046a -_081111F4: - ldr r1, [r6] - adds r0, r3, r4 - lsls r0, 3 - adds r1, r0 - mov r7, r12 - adds r0, r2, r7 - ldr r0, [r0] - lsls r0, 15 - lsrs r0, 24 -_08111206: - ldr r2, _08111260 @ =0x000008e6 - adds r1, r2 - strh r0, [r1] - ldr r1, [r6] - adds r3, r4 - lsls r3, 3 - adds r1, r3 - mov r7, r10 - adds r2, r5, r7 - ldr r7, _08111264 @ =0x0000046a - adds r0, r2, r7 - ldrb r0, [r0] - lsrs r0, 2 - ldr r7, _08111268 @ =0x000008e8 - adds r1, r7 - strb r0, [r1] - ldr r0, [r6] - adds r0, r3 - ldr r1, _0811126C @ =0x0000046b - adds r2, r1 - ldrb r1, [r2] - ldr r2, _08111270 @ =0x000008e9 - adds r0, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3F - bls _08111180 - mov r7, r9 - ldr r1, [r7] - movs r0, 0x8E - lsls r0, 4 - adds r1, r0 - adds r0, r5, 0 - bl sub_815A1F8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111260: .4byte 0x000008e6 -_08111264: .4byte 0x0000046a -_08111268: .4byte 0x000008e8 -_0811126C: .4byte 0x0000046b -_08111270: .4byte 0x000008e9 - thumb_func_end sub_8111150 - thumb_func_start sub_8111274 sub_8111274: @ 8111274 push {r4,lr} diff --git a/include/unk_8159F40.h b/include/unk_8159F40.h index 7343dc629..b7666766f 100644 --- a/include/unk_8159F40.h +++ b/include/unk_8159F40.h @@ -2,5 +2,6 @@ #define GUARD_UNK_8159F40_H void sub_815A008(struct QuestLog *); +void sub_815A1F8(struct QuestLog *, struct MapObjectTemplate *); #endif //GUARD_UNK_8159F40_H diff --git a/src/quest_log.c b/src/quest_log.c index 61c4de211..3e41d7d31 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -12,6 +12,7 @@ #include "field_fadetransition.h" #include "wild_encounter.h" #include "help_system.h" +#include "unk_8159F40.h" #include "quest_log.h" u8 gUnknown_3005E88; @@ -576,6 +577,7 @@ void sub_8111070(u8 a0) FillWindowPixelRect(gUnknown_203ADFE[i], 15, 0, 0, gUnknown_845661C[i].width * 8, gUnknown_845661C[i].height * 8); } + // _("Previously on your quest…$") StringExpandPlaceholders(gStringVar4, gUnknown_841A155); if (a0) @@ -591,3 +593,31 @@ void sub_8111070(u8 a0) CopyWindowToVram(gUnknown_203ADFE[2], 2); CopyWindowToVram(gUnknown_203ADFE[1], 3); } + +void sub_8111134(void) +{ + PutWindowTilemap(gUnknown_203ADFE[1]); + CopyWindowToVram(gUnknown_203ADFE[1], 1); +} + +void sub_8111150(u8 a0) +{ + struct QuestLog *questLog = &gSaveBlock1Ptr->questLog[a0]; + u16 i; + + for (i = 0; i < 64; i++) + { + if (questLog->npcData[i].negx) + gSaveBlock1Ptr->mapObjectTemplates[i].x = -questLog->npcData[i].x; + else + gSaveBlock1Ptr->mapObjectTemplates[i].x = questLog->npcData[i].x; + if (questLog->npcData[i].negy) + gSaveBlock1Ptr->mapObjectTemplates[i].y = -(u8)questLog->npcData[i].y; + else + gSaveBlock1Ptr->mapObjectTemplates[i].y = questLog->npcData[i].y; + gSaveBlock1Ptr->mapObjectTemplates[i].elevation = questLog->npcData[i].elevation; + gSaveBlock1Ptr->mapObjectTemplates[i].movementType = questLog->npcData[i].movementType; + } + + sub_815A1F8(questLog, gSaveBlock1Ptr->mapObjectTemplates); +} |