through sub_8110A3C

This commit is contained in:
PikalaxALT 2018-10-10 10:45:50 -04:00
parent b78aef0625
commit dc37cd7de0
5 changed files with 72 additions and 161 deletions

View File

@ -5,164 +5,6 @@
.text
thumb_func_start sub_8110988
sub_8110988: @ 8110988
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _081109BC @ =gSaveBlock1Ptr
ldr r0, _081109C0 @ =gUnknown_203ADF8
ldrb r0, [r0]
movs r3, 0xCD
lsls r3, 3
adds r2, r0, 0
muls r2, r3
movs r0, 0x98
lsls r0, 5
adds r2, r0
ldr r0, [r4]
adds r0, r2
movs r4, 0xAD
lsls r4, 3
adds r2, r0, r4
adds r0, r3
subs r0, r1
cmp r5, r2
bcc _081109B6
cmp r5, r0
bls _081109C4
_081109B6:
movs r0, 0
b _081109C6
.align 2, 0
_081109BC: .4byte gSaveBlock1Ptr
_081109C0: .4byte gUnknown_203ADF8
_081109C4:
movs r0, 0x1
_081109C6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8110988
thumb_func_start sub_81109CC
sub_81109CC: @ 81109CC
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _081109E0 @ =gUnknown_203ADFA
strb r0, [r1]
cmp r0, 0x1
bne _081109EC
ldr r1, _081109E4 @ =gUnknown_203AE8C
ldr r0, _081109E8 @ =sub_8110A00
b _081109F0
.align 2, 0
_081109E0: .4byte gUnknown_203ADFA
_081109E4: .4byte gUnknown_203AE8C
_081109E8: .4byte sub_8110A00
_081109EC:
ldr r1, _081109F8 @ =gUnknown_203AE8C
ldr r0, _081109FC @ =sub_8110A3C
_081109F0:
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_081109F8: .4byte gUnknown_203AE8C
_081109FC: .4byte sub_8110A3C
thumb_func_end sub_81109CC
thumb_func_start sub_8110A00
sub_8110A00: @ 8110A00
push {r4,lr}
ldr r0, _08110A2C @ =gUnknown_203AE98
bl sub_8110E68
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08110A24
ldr r0, _08110A30 @ =gUnknown_3005E88
movs r4, 0
strb r4, [r0]
bl sub_8110E3C
ldr r0, _08110A34 @ =gUnknown_203ADFA
strb r4, [r0]
ldr r1, _08110A38 @ =gUnknown_203AE8C
movs r0, 0
str r0, [r1]
_08110A24:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08110A2C: .4byte gUnknown_203AE98
_08110A30: .4byte gUnknown_3005E88
_08110A34: .4byte gUnknown_203ADFA
_08110A38: .4byte gUnknown_203AE8C
thumb_func_end sub_8110A00
thumb_func_start sub_8110A3C
sub_8110A3C: @ 8110A3C
push {r4,lr}
ldr r1, _08110A8C @ =gUnknown_203AE94
ldrb r2, [r1]
movs r4, 0xF
adds r0, r4, 0
ands r0, r2
adds r3, r1, 0
cmp r0, 0x2
bne _08110A56
movs r0, 0x10
negs r0, r0
ands r0, r2
strb r0, [r3]
_08110A56:
ldrb r1, [r3]
movs r0, 0xC0
ands r0, r1
cmp r0, 0
bne _08110AAE
ldr r0, _08110A90 @ =gUnknown_3005E88
ldrb r0, [r0]
cmp r0, 0
bne _08110A84
adds r0, r4, 0
ands r0, r1
cmp r0, 0x1
beq _08110A84
ldrb r0, [r3, 0x1]
cmp r0, 0x1F
bhi _08110A98
ldr r0, _08110A94 @ =gUnknown_203AE0C
ldrb r1, [r3, 0x1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _08110A98
_08110A84:
bl sub_8111AD8
b _08110AAE
.align 2, 0
_08110A8C: .4byte gUnknown_203AE94
_08110A90: .4byte gUnknown_3005E88
_08110A94: .4byte gUnknown_203AE0C
_08110A98:
ldrb r0, [r3]
movs r1, 0x3F
ands r1, r0
movs r0, 0x80
orrs r1, r0
strb r1, [r3]
bl ScriptContext2_Enable
movs r0, 0
bl sub_81118F4
_08110AAE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8110A3C
thumb_func_start sub_8110AB4
sub_8110AB4: @ 8110AB4
ldr r0, _08110AC0 @ =gUnknown_20370D0

View File

@ -0,0 +1 @@
gUnknown_3005E88

View File

@ -1,4 +1,6 @@
#ifndef GUARD_QUEST_LOG_H
#define GUARD_QUEST_LOG_H
extern u8 gUnknown_3005E88;
#endif //GUARD_QUEST_LOG_H

View File

@ -1,13 +1,32 @@
#include "global.h"
#include "script.h"
#include "quest_log.h"
u8 gUnknown_3005E88;
struct UnkStruct_203AE94
{
u8 unk_0_0:4;
u8 unk_0_4:2;
u8 unk_0_6:2;
u8 unk_1;
};
EWRAM_DATA u8 gUnknown_203ADF8 = 0;
EWRAM_DATA u8 gUnknown_203ADFA = 0;
EWRAM_DATA void * gUnknown_203AE04 = NULL;
EWRAM_DATA void * gUnknown_203AE08 = NULL;
EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL};
EWRAM_DATA void (* gUnknown_203AE8C)(void) = 0;
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
EWRAM_DATA u8 gUnknown_203AE98[0x100] = {0};
void sub_8110A00(void);
u8 sub_8110E68(void *);
void sub_8110A3C(void);
void sub_8110E3C(void);
void sub_8111AD8(void);
void sub_81118F4(s8);
void sub_8113BD8(void);
void sub_81138F8(void);
@ -59,7 +78,7 @@ void sub_811092C(void)
gUnknown_203AE8C();
}
bool8 sub_8110944(u8 * a0, s32 a1)
bool8 sub_8110944(u8 * a0, size_t a1)
{
u8 * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568;
u8 * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end;
@ -68,3 +87,51 @@ bool8 sub_8110944(u8 * a0, s32 a1)
return FALSE;
return TRUE;
}
bool8 sub_8110988(u8 * a0, size_t a1)
{
u8 * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568;
u8 * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end;
r0 -= a1;
if (a0 < r2 || a0 > r0)
return FALSE;
return TRUE;
}
void sub_81109CC(u8 a0)
{
gUnknown_203ADFA = a0;
if (a0 == 1)
gUnknown_203AE8C = sub_8110A00;
else
gUnknown_203AE8C = sub_8110A3C;
}
void sub_8110A00(void)
{
if (sub_8110E68(gUnknown_203AE98) != 1)
{
gUnknown_3005E88 = 0;
sub_8110E3C();
gUnknown_203ADFA = 0;
gUnknown_203AE8C = NULL;
}
}
void sub_8110A3C(void)
{
if (gUnknown_203AE94.unk_0_0 == 2)
gUnknown_203AE94.unk_0_0 = 0;
if (gUnknown_203AE94.unk_0_6 == 0)
{
if (gUnknown_3005E88 || gUnknown_203AE94.unk_0_0 == 1 || (gUnknown_203AE94.unk_1 < 32 && gUnknown_203AE0C[gUnknown_203AE94.unk_1]))
sub_8111AD8();
else
{
gUnknown_203AE94.unk_0_6 = 2;
ScriptContext2_Enable();
sub_81118F4(0);
}
}
}

View File

@ -345,8 +345,7 @@ gUnknown_3005E60: @ 3005E60
gUnknown_3005E70: @ 3005E70
.space 0x18
gUnknown_3005E88: @ 3005E88
.space 0x4
.include "quest_log.o"
gUnknown_3005E8C: @ 3005E8C
.space 0x4