diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-13 16:04:33 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-13 16:04:33 -0400 |
commit | ddb2440809e0f222175c43045fc0d450cf7c0938 (patch) | |
tree | 44cf9a74a19f995c3f0f5351ddbcb171fddd9db1 | |
parent | 9dd0dffc664fed37831d51206a44f8d864207e35 (diff) |
sub_8112940
-rw-r--r-- | asm/quest_log.s | 247 | ||||
-rw-r--r-- | data/quest_log.s | 4 | ||||
-rw-r--r-- | include/quest_log.h | 12 | ||||
-rw-r--r-- | src/quest_log.c | 88 |
4 files changed, 91 insertions, 260 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 69def6a01..e4947d79c 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,253 +5,6 @@ .text - thumb_func_start sub_8112940 -sub_8112940: @ 8112940 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r2, 16 - cmp r0, 0x1 - beq _08112964 - cmp r0, 0x2 - beq _081129E0 - ldr r1, _08112960 @ =gUnknown_3005E88 - movs r0, 0 - strb r0, [r1] - b _08112B20 - .align 2, 0 -_08112960: .4byte gUnknown_3005E88 -_08112964: - ldr r2, _081129C0 @ =gUnknown_3005E94 - str r3, [r2] - ldr r1, _081129C4 @ =gUnknown_3005E8C - lsrs r0, r4, 19 - strh r0, [r1] - ldr r0, _081129C8 @ =gUnknown_3005E88 - mov r9, r0 - adds r1, r2, 0 - ldr r6, _081129CC @ =gUnknown_203AF9A - ldr r2, _081129D0 @ =gUnknown_203AF98 - ldr r7, _081129D4 @ =gUnknown_203B01C - ldr r0, _081129D8 @ =gUnknown_3005E90 - mov r12, r0 - ldr r0, _081129DC @ =gUnknown_203B01A - mov r8, r0 - movs r5, 0xFF - adds r3, r6, 0 - movs r4, 0x3F -_08112988: - ldrb r0, [r3] - orrs r0, r5 - strb r0, [r3] - ldrb r0, [r3, 0x1] - orrs r0, r5 - strb r0, [r3, 0x1] - adds r3, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08112988 - movs r0, 0 - strh r0, [r2] - strh r0, [r7] - movs r0, 0 - mov r2, r12 - str r0, [r2] - ldr r1, [r1] - ldrh r0, [r1, 0x4] - mov r2, r8 - strh r0, [r2] - ldrb r0, [r1, 0x3] - strb r0, [r6] - movs r0, 0xFF - strb r0, [r6, 0x1] - movs r0, 0x1 - mov r1, r9 - strb r0, [r1] - b _08112B20 - .align 2, 0 -_081129C0: .4byte gUnknown_3005E94 -_081129C4: .4byte gUnknown_3005E8C -_081129C8: .4byte gUnknown_3005E88 -_081129CC: .4byte gUnknown_203AF9A -_081129D0: .4byte gUnknown_203AF98 -_081129D4: .4byte gUnknown_203B01C -_081129D8: .4byte gUnknown_3005E90 -_081129DC: .4byte gUnknown_203B01A -_081129E0: - ldr r1, _08112A44 @ =gUnknown_3005E94 - str r3, [r1] - ldr r5, _08112A48 @ =gUnknown_3005E8C - lsrs r0, r4, 19 - strh r0, [r5] - movs r4, 0 - ldr r2, _08112A4C @ =gUnknown_203B01A - mov r8, r2 - cmp r4, r0 - bge _08112A0E - adds r6, r1, 0 - ldr r0, _08112A50 @ =gUnknown_845669C - ldr r2, [r0] - ldr r3, [r0, 0x4] -_081129FC: - ldr r1, [r6] - lsls r0, r4, 3 - adds r0, r1 - str r2, [r0] - str r3, [r0, 0x4] - adds r4, 0x1 - ldrh r0, [r5] - cmp r4, r0 - blt _081129FC -_08112A0E: - ldr r4, _08112A54 @ =gUnknown_203AF98 - movs r2, 0 - strh r2, [r4] - mov r1, r8 - strh r2, [r1] - movs r1, 0 - ldr r3, _08112A44 @ =gUnknown_3005E94 - ldr r0, [r3] - strh r1, [r0, 0x4] - strb r2, [r0, 0x6] - ldrh r0, [r4] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - strb r2, [r0] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08112AC8 - lsls r0, 2 - ldr r1, _08112A58 @ =_08112A5C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08112A44: .4byte gUnknown_3005E94 -_08112A48: .4byte gUnknown_3005E8C -_08112A4C: .4byte gUnknown_203B01A -_08112A50: .4byte gUnknown_845669C -_08112A54: .4byte gUnknown_203AF98 -_08112A58: .4byte _08112A5C - .align 2, 0 -_08112A5C: - .4byte _08112A70 - .4byte _08112A70 - .4byte _08112AA0 - .4byte _08112AB8 - .4byte _08112A88 -_08112A70: - ldr r0, _08112A80 @ =gUnknown_203AF98 - ldrh r0, [r0] - ldr r1, _08112A84 @ =gUnknown_3005E94 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - movs r1, 0 - b _08112AC6 - .align 2, 0 -_08112A80: .4byte gUnknown_203AF98 -_08112A84: .4byte gUnknown_3005E94 -_08112A88: - ldr r0, _08112A98 @ =gUnknown_203AF98 - ldrh r0, [r0] - ldr r1, _08112A9C @ =gUnknown_3005E94 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - b _08112AC6 - .align 2, 0 -_08112A98: .4byte gUnknown_203AF98 -_08112A9C: .4byte gUnknown_3005E94 -_08112AA0: - ldr r0, _08112AB0 @ =gUnknown_203AF98 - ldrh r0, [r0] - ldr r1, _08112AB4 @ =gUnknown_3005E94 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - b _08112AC6 - .align 2, 0 -_08112AB0: .4byte gUnknown_203AF98 -_08112AB4: .4byte gUnknown_3005E94 -_08112AB8: - ldr r0, _08112B2C @ =gUnknown_203AF98 - ldrh r0, [r0] - ldr r1, _08112B30 @ =gUnknown_3005E94 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 -_08112AC6: - strb r1, [r0, 0x3] -_08112AC8: - ldr r0, _08112B34 @ =gUnknown_203B01C - movs r5, 0 - strh r5, [r0] - ldr r2, _08112B2C @ =gUnknown_203AF98 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldrh r0, [r2] - ldr r3, _08112B30 @ =gUnknown_3005E94 - ldr r4, [r3] - lsls r0, 3 - adds r0, r4 - movs r1, 0 - strh r1, [r0, 0x4] - ldrh r0, [r2] - lsls r0, 3 - adds r0, r4 - movs r4, 0x2 - strb r4, [r0, 0x6] - ldrh r0, [r2] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - strb r5, [r0] - ldrh r0, [r2] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - strb r5, [r0, 0x1] - ldrh r0, [r2] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - strb r5, [r0, 0x2] - ldrh r0, [r2] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - strb r5, [r0, 0x3] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r0, _08112B38 @ =gUnknown_3005E88 - strb r4, [r0] -_08112B20: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08112B2C: .4byte gUnknown_203AF98 -_08112B30: .4byte gUnknown_3005E94 -_08112B34: .4byte gUnknown_203B01C -_08112B38: .4byte gUnknown_3005E88 - thumb_func_end sub_8112940 - thumb_func_start sub_8112B3C sub_8112B3C: @ 8112B3C push {r4-r7,lr} diff --git a/data/quest_log.s b/data/quest_log.s index c7956f82d..dd7776ae0 100644 --- a/data/quest_log.s +++ b/data/quest_log.s @@ -1,9 +1,5 @@ .section .rodata - .align 2, 0 -gUnknown_845669C:: @ 845669C - .incbin "baserom.gba", 0x45669C, 0x8 - gUnknown_84566A4:: @ 84566A4 .incbin "baserom.gba", 0x4566A4, 0x4 diff --git a/include/quest_log.h b/include/quest_log.h index 280a04423..f3fc04f41 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -1,8 +1,20 @@ #ifndef GUARD_QUEST_LOG_H #define GUARD_QUEST_LOG_H +struct UnkStruct_3005E90 +{ + u8 unk_0; + u8 unk_1_0:1; + u8 unk_1_1:1; + u8 unk_1_2:1; + u8 unk_1_3:1; + u8 unk_1_4:1; + u8 unk_2; +}; + extern u8 gUnknown_3005E88; extern u16 gUnknown_3005E8C; +extern struct UnkStruct_3005E90 gUnknown_3005E90; extern struct UnkStruct_203AE98 * gUnknown_3005E94; #endif //GUARD_QUEST_LOG_H diff --git a/src/quest_log.c b/src/quest_log.c index 834585ac9..49e0db836 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -54,6 +54,7 @@ struct UnkStruct_203AE98 u8 gUnknown_3005E88; u16 gUnknown_3005E8C; +struct UnkStruct_3005E90 gUnknown_3005E90; struct UnkStruct_203AE98 * gUnknown_3005E94; EWRAM_DATA u8 gUnknown_203ADF8 = 0; @@ -69,7 +70,7 @@ EWRAM_DATA u16 *gUnknown_203AE90 = NULL; EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0}; EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0}; EWRAM_DATA u16 gUnknown_203AF98 = 0; -EWRAM_DATA u8 gUnknown_203AF9A[128]; +EWRAM_DATA u8 gUnknown_203AF9A[64][2]; EWRAM_DATA u16 gUnknown_203B01A; EWRAM_DATA u16 gUnknown_203B01C; @@ -149,6 +150,8 @@ const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin"); const u8 gUnknown_8456698[] = {17, 10, 3}; +extern const struct UnkStruct_203AE98 gUnknown_845669C; + void sub_8110840(void * a0) { size_t r1 = (void *)gSaveBlock1Ptr - a0; @@ -1437,24 +1440,24 @@ void sub_811246C(struct Sprite *sprite) struct MapObject *mapObject = &gMapObjects[sprite->data[0]]; if (mapObject->localId == 0xFF) { - if (gUnknown_203AF9A[0] != 0xFF) + if (gUnknown_203AF9A[0][0] != 0xFF) { - sub_8063CA4(mapObject, gUnknown_203AF9A[0]); - gUnknown_203AF9A[0] = 0xFF; + sub_8063CA4(mapObject, gUnknown_203AF9A[0][0]); + gUnknown_203AF9A[0][0] = 0xFF; } - if (gUnknown_203AF9A[1] != 0xFF) + if (gUnknown_203AF9A[0][1] != 0xFF) { sub_8150454(); - gUnknown_203AF9A[1] = 0xFF; + gUnknown_203AF9A[0][1] = 0xFF; } sub_8063E28(mapObject, sprite); } else { - if (gUnknown_203AF9A[2 * mapObject->localId] != 0xFF) + if (gUnknown_203AF9A[mapObject->localId][0] != 0xFF) { - sub_8063CA4(mapObject, gUnknown_203AF9A[2 * mapObject->localId]); - gUnknown_203AF9A[2 * mapObject->localId] = 0xFF; + sub_8063CA4(mapObject, gUnknown_203AF9A[mapObject->localId][0]); + gUnknown_203AF9A[mapObject->localId][0] = 0xFF; } sub_8063E28(mapObject, sprite); } @@ -1607,3 +1610,70 @@ void sub_81128BC(u8 a0) break; } } + +void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2) +{ + s32 i; + + switch (a0) + { + default: + gUnknown_3005E88 = 0; + break; + case 1: + gUnknown_3005E94 = a1; + gUnknown_3005E8C = a2 / 8; + for (i = 0; i < 0x40; i++) + { + gUnknown_203AF9A[i][0] |= 0xFF; + gUnknown_203AF9A[i][1] |= 0xFF; + } + gUnknown_203AF98 = 0; + gUnknown_203B01C = 0; + gUnknown_3005E90 = (struct UnkStruct_3005E90){}; + gUnknown_203B01A = gUnknown_3005E94[gUnknown_203AF98].unk_4; + gUnknown_203AF9A[0][0] = gUnknown_3005E94[gUnknown_203AF98].unk_3; + gUnknown_203AF9A[0][1] = 0xFF; + gUnknown_3005E88 = 1; + break; + case 2: + gUnknown_3005E94 = a1; + gUnknown_3005E8C = a2 / 8; + for (i = 0; i < gUnknown_3005E8C; i++) + { + gUnknown_3005E94[i] = (struct UnkStruct_203AE98){ 0, 0, 0, 0, 0xFFFF, 0xFF }; + } + gUnknown_203AF98 = 0; + gUnknown_203B01A = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; + switch (player_get_direction_lower_nybble()) + { + case 0: + case 1: + gUnknown_3005E94[gUnknown_203AF98].unk_3 = 0; + break; + case 4: + gUnknown_3005E94[gUnknown_203AF98].unk_3 = 3; + break; + case 2: + gUnknown_3005E94[gUnknown_203AF98].unk_3 = 1; + break; + case 3: + gUnknown_3005E94[gUnknown_203AF98].unk_3 = 2; + break; + } + gUnknown_203B01C = 0; + gUnknown_203AF98++; + gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_6 = 2; + gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_1 = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_2 = 0; + gUnknown_3005E94[gUnknown_203AF98].unk_3 = 0; + gUnknown_203AF98++; + gUnknown_3005E88 = 2; + break; + } +} |