through sub_8113114

This commit is contained in:
PikalaxALT
2018-10-15 20:08:52 -05:00
parent f214ba976d
commit 6d31e24cba
9 changed files with 140 additions and 280 deletions
+9 -9
View File
@@ -78,7 +78,7 @@ _0806E164: .4byte 0x00000842
sub_806E168: @ 806E168
push {lr}
ldr r0, _0806E184 @ =0x0000403c
bl sub_806E454
bl GetVarPointer
ldr r1, _0806E188 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0
@@ -98,7 +98,7 @@ _0806E18C: .4byte 0x00000838
sub_806E190: @ 806E190
push {lr}
ldr r0, _0806E1B0 @ =0x0000403c
bl sub_806E454
bl GetVarPointer
ldr r1, _0806E1B4 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0xDA
@@ -154,7 +154,7 @@ _0806E1FE:
sub_806E204: @ 806E204
push {lr}
ldr r0, _0806E224 @ =0x0000404e
bl sub_806E454
bl GetVarPointer
ldr r1, _0806E228 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0
@@ -174,7 +174,7 @@ _0806E228: .4byte gSaveBlock2Ptr
sub_806E22C: @ 806E22C
push {lr}
ldr r0, _0806E250 @ =0x0000404e
bl sub_806E454
bl GetVarPointer
ldr r1, _0806E254 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0xB9
@@ -419,8 +419,8 @@ _0806E44E:
bx r1
thumb_func_end CanResetRTC
thumb_func_start sub_806E454
sub_806E454: @ 806E454
thumb_func_start GetVarPointer
GetVarPointer: @ 806E454
push {r4-r6,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -522,7 +522,7 @@ _0806E518:
.align 2, 0
_0806E520: .4byte gUnknown_815FD0C
_0806E524: .4byte 0xffff8000
thumb_func_end sub_806E454
thumb_func_end GetVarPointer
thumb_func_start sub_806E528
sub_806E528: @ 806E528
@@ -569,7 +569,7 @@ VarGet: @ 806E568
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl sub_806E454
bl GetVarPointer
cmp r0, 0
beq _0806E57C
ldrh r0, [r0]
@@ -589,7 +589,7 @@ VarSet: @ 806E584
lsrs r0, 16
lsls r1, 16
lsrs r4, r1, 16
bl sub_806E454
bl GetVarPointer
cmp r0, 0
beq _0806E59C
strh r4, [r0]
+2 -2
View File
@@ -1872,7 +1872,7 @@ _0806D748: .4byte 0x00004021
AdjustFriendship_step: @ 806D74C
push {r4,r5,lr}
ldr r0, _0806D780 @ =0x00004021
bl sub_806E454
bl GetVarPointer
ldrh r1, [r0]
adds r1, 0x1
strh r1, [r0]
@@ -1921,7 +1921,7 @@ overworld_poison_step: @ 806D79C
cmp r0, 0x9
beq _0806D7E0
ldr r0, _0806D7DC @ =0x00004022
bl sub_806E454
bl GetVarPointer
adds r4, r0, 0
ldrh r0, [r4]
adds r0, 0x1
+4 -4
View File
@@ -327,7 +327,7 @@ _080A0914: .4byte 0x0000403d
sub_80A0918: @ 80A0918
push {lr}
ldr r0, _080A092C @ =0x0000403d
bl sub_806E454
bl GetVarPointer
adds r1, r0, 0
movs r0, 0xD6
bl sub_80A08CC
@@ -341,7 +341,7 @@ _080A092C: .4byte 0x0000403d
sub_80A0930: @ 80A0930
push {r4,lr}
ldr r0, _080A0950 @ =0x0000403d
bl sub_806E454
bl GetVarPointer
adds r1, r0, 0
ldr r4, _080A0954 @ =gUnknown_20370D0
movs r0, 0xD6
@@ -373,7 +373,7 @@ _080A0968: .4byte 0x00004040
sub_80A096C: @ 80A096C
push {lr}
ldr r0, _080A0980 @ =0x00004040
bl sub_806E454
bl GetVarPointer
adds r1, r0, 0
movs r0, 0x81
bl sub_80A08CC
@@ -387,7 +387,7 @@ _080A0980: .4byte 0x00004040
sub_80A0984: @ 80A0984
push {r4,lr}
ldr r0, _080A09A4 @ =0x00004040
bl sub_806E454
bl GetVarPointer
adds r1, r0, 0
ldr r4, _080A09A8 @ =gUnknown_20370D0
movs r0, 0x81
+6 -239
View File
@@ -5,239 +5,6 @@
.text
thumb_func_start sub_8112FD0
sub_8112FD0: @ 8112FD0
push {lr}
ldr r0, _08112FE0 @ =gUnknown_203B020
ldrb r0, [r0]
bl sub_8112F18
pop {r0}
bx r0
.align 2, 0
_08112FE0: .4byte gUnknown_203B020
thumb_func_end sub_8112FD0
thumb_func_start sub_8112FE4
sub_8112FE4: @ 8112FE4
push {lr}
sub sp, 0x14
adds r2, r0, 0
ldr r0, _08113010 @ =gUnknown_203B020
ldrb r0, [r0]
movs r1, 0x1
str r1, [sp]
str r1, [sp, 0x4]
ldr r1, _08113014 @ =gUnknown_8456930
str r1, [sp, 0x8]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0xC]
str r2, [sp, 0x10]
movs r1, 0x2
movs r2, 0x2
movs r3, 0x5
bl AddTextPrinterParametrized2
add sp, 0x14
pop {r0}
bx r0
.align 2, 0
_08113010: .4byte gUnknown_203B020
_08113014: .4byte gUnknown_8456930
thumb_func_end sub_8112FE4
thumb_func_start sub_8113018
sub_8113018: @ 8113018
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
bl sub_8112FD0
adds r0, r4, 0
bl sub_8112FE4
cmp r5, 0
beq _08113038
ldr r0, _08113040 @ =gUnknown_203B020
ldrb r0, [r0]
adds r1, r5, 0
bl CopyWindowToVram
_08113038:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08113040: .4byte gUnknown_203B020
thumb_func_end sub_8113018
thumb_func_start sub_8113044
sub_8113044: @ 8113044
push {lr}
ldr r0, _0811305C @ =0x00004038
movs r1, 0
bl VarSet
ldr r0, _08113060 @ =0x00004039
movs r1, 0
bl VarSet
pop {r0}
bx r0
.align 2, 0
_0811305C: .4byte 0x00004038
_08113060: .4byte 0x00004039
thumb_func_end sub_8113044
thumb_func_start sub_8113064
sub_8113064: @ 8113064
push {lr}
ldr r0, _08113074 @ =0x00004038
bl sub_806E454
bl sub_8113078
pop {r0}
bx r0
.align 2, 0
_08113074: .4byte 0x00004038
thumb_func_end sub_8113064
thumb_func_start sub_8113078
sub_8113078: @ 8113078
push {r4,lr}
adds r4, r0, 0
bl sub_8113508
lsls r0, 24
cmp r0, 0
beq _08113098
adds r0, r4, 0
bl sub_81132E0
ldr r0, _081130A0 @ =0x00004039
ldr r1, _081130A4 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrh r1, [r1, 0xE]
bl VarSet
_08113098:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081130A0: .4byte 0x00004039
_081130A4: .4byte gSaveBlock2Ptr
thumb_func_end sub_8113078
thumb_func_start sub_81130A8
sub_81130A8: @ 81130A8
push {lr}
ldr r0, _081130B8 @ =0x00004038
bl sub_806E454
bl sub_81130BC
pop {r0}
bx r0
.align 2, 0
_081130B8: .4byte 0x00004038
thumb_func_end sub_81130A8
thumb_func_start sub_81130BC
sub_81130BC: @ 81130BC
push {r4,lr}
adds r4, r0, 0
ldrb r1, [r4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08113102
adds r0, r4, 0
bl sub_8113524
adds r0, r4, 0
bl sub_8113390
ldr r0, _08113108 @ =0x00004039
ldr r1, _0811310C @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrh r1, [r1, 0xE]
bl VarSet
movs r0, 0x6C
bl FlagClear
movs r0, 0x6D
bl FlagClear
movs r0, 0x6E
bl FlagClear
movs r0, 0x6F
bl FlagClear
ldr r0, _08113110 @ =0x00004073
movs r1, 0x1
bl VarSet
_08113102:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08113108: .4byte 0x00004039
_0811310C: .4byte gSaveBlock2Ptr
_08113110: .4byte 0x00004073
thumb_func_end sub_81130BC
thumb_func_start sub_8113114
sub_8113114: @ 8113114
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _0811315C @ =0x00004073
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bne _08113188
ldr r0, [r4]
lsls r2, r0, 25
lsrs r1, r2, 25
ldr r0, _08113160 @ =gUnknown_8456934
adds r0, r5, r0
ldrb r0, [r0]
adds r1, r0
cmp r1, 0x13
ble _08113174
adds r0, r4, 0
bl sub_81132A0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bhi _08113164
adds r0, r4, 0
bl sub_8113194
ldrb r1, [r4]
movs r0, 0x80
negs r0, r0
ands r0, r1
b _08113186
.align 2, 0
_0811315C: .4byte 0x00004073
_08113160: .4byte gUnknown_8456934
_08113164:
ldrb r0, [r4]
movs r1, 0x80
negs r1, r1
ands r1, r0
movs r0, 0x14
orrs r1, r0
strb r1, [r4]
b _08113188
_08113174:
lsrs r1, r2, 25
adds r1, r0
movs r0, 0x7F
ands r1, r0
ldrb r2, [r4]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
_08113186:
strb r0, [r4]
_08113188:
ldr r0, [r4]
lsls r0, 25
lsrs r0, 25
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8113114
thumb_func_start sub_8113194
sub_8113194: @ 8113194
push {r4-r7,lr}
@@ -377,7 +144,7 @@ _08113284: .4byte gUnknown_8456940
sub_8113288: @ 8113288
push {lr}
ldr r0, _0811329C @ =0x00004038
bl sub_806E454
bl GetVarPointer
bl sub_81132A0
lsls r0, 16
lsrs r0, 16
@@ -419,7 +186,7 @@ _081132BA:
sub_81132CC: @ 81132CC
push {lr}
ldr r0, _081132DC @ =0x00004038
bl sub_806E454
bl GetVarPointer
bl sub_81132E0
pop {r0}
bx r0
@@ -495,7 +262,7 @@ _0811335C:
sub_8113364: @ 8113364
push {lr}
ldr r0, _08113378 @ =0x00004038
bl sub_806E454
bl GetVarPointer
bl sub_811337C
lsls r0, 16
lsrs r0, 16
@@ -674,7 +441,7 @@ _081134B2:
sub_81134B8: @ 81134B8
push {lr}
ldr r0, _081134C8 @ =0x00004038
bl sub_806E454
bl GetVarPointer
bl sub_81134CC
pop {r0}
bx r0
@@ -725,7 +492,7 @@ sub_8113508: @ 8113508
sub_8113510: @ 8113510
push {lr}
ldr r0, _08113520 @ =0x00004038
bl sub_806E454
bl GetVarPointer
bl sub_8113524
pop {r0}
bx r0
@@ -746,7 +513,7 @@ sub_8113524: @ 8113524
sub_8113530: @ 8113530
push {lr}
ldr r0, _08113548 @ =0x00004038
bl sub_806E454
bl GetVarPointer
ldr r1, _0811354C @ =gUnknown_20370C0
ldrb r1, [r1]
bl sub_8113114
+13 -13
View File
@@ -79,7 +79,7 @@ sub_8069F3C: @ 8069F3C
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r5, r0, 0
adds r0, r4, 0
bl ScriptReadHalfword
@@ -692,7 +692,7 @@ ScrCmd_setvar: @ 806A390
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r4, r0, 0
adds r0, r5, 0
bl ScriptReadHalfword
@@ -710,13 +710,13 @@ ScrCmd_copyvar: @ 806A3B4
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r5, r0, 0
adds r0, r4, 0
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
ldrh r0, [r0]
strh r0, [r5]
movs r0, 0
@@ -732,7 +732,7 @@ ScrCmd_setorcopyvar: @ 806A3E0
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r5, r0, 0
adds r0, r4, 0
bl ScriptReadHalfword
@@ -909,7 +909,7 @@ ScrCmd_compare_var_to_value: @ 806A520
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
ldrh r5, [r0]
adds r0, r4, 0
bl ScriptReadHalfword
@@ -932,13 +932,13 @@ ScrCmd_compare_var_to_var: @ 806A550
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r5, r0, 0
adds r0, r4, 0
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
ldrh r2, [r5]
ldrh r1, [r0]
adds r0, r2, 0
@@ -957,7 +957,7 @@ ScrCmd_addvar: @ 806A584
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r4, r0, 0
adds r0, r5, 0
bl ScriptReadHalfword
@@ -977,7 +977,7 @@ ScrCmd_subvar: @ 806A5AC
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r5, r0, 0
adds r0, r4, 0
bl ScriptReadHalfword
@@ -2319,13 +2319,13 @@ ScrCmd_getplayerxy: @ 806B010
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r5, r0, 0
adds r0, r4, 0
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
ldr r2, _0806B048 @ =gSaveBlock1Ptr
ldr r1, [r2]
ldrh r1, [r1]
@@ -5428,7 +5428,7 @@ ScrCmd_checkcoins: @ 806C72C
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 16
bl sub_806E454
bl GetVarPointer
adds r4, r0, 0
bl sub_80D0554
strh r0, [r4]
-6
View File
@@ -1,12 +1,6 @@
.section .rodata
.align 2
gUnknown_8456930:: @ 8456930
.incbin "baserom.gba", 0x456930, 0x4
gUnknown_8456934:: @ 8456934
.incbin "baserom.gba", 0x456934, 0x4
gUnknown_8456938:: @ 8456938
.incbin "baserom.gba", 0x456938, 0x8
+1 -1
View File
@@ -29,7 +29,7 @@ u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagClear(u16 id);
bool8 FlagGet(u16 id);
u16 * sub_806E454(u16 id);
u16 * GetVarPointer(u16 id);
bool32 sub_806E2BC(void);
void sub_806E6FC(void);
+1 -1
View File
@@ -94,7 +94,7 @@ void sub_8146C88(void)
void sub_8146CA4(void)
{
u16 *r4 = sub_806E454(0x4028);
u16 *r4 = GetVarPointer(0x4028);
struct MysteryEventStruct *r2 = sub_8143D94();
struct MysteryEventStruct r0 = *r2;
+104 -5
View File
@@ -32,6 +32,12 @@
u8 gUnknown_3005E88;
struct Var4038Struct
{
u8 unk_0_0:7;
u8 unk_0_7:1;
};
struct UnkStruct_203AE94
{
u8 unk_0_0:4;
@@ -130,6 +136,14 @@ void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
u8 sub_8112CAC(void);
bool8 sub_8112CEC(void);
bool8 sub_8112D1C(void);
void sub_8113078(struct Var4038Struct *);
void sub_81130BC(struct Var4038Struct *);
u16 sub_81132A0(struct Var4038Struct *);
void sub_8113194(struct Var4038Struct *);
void sub_81132E0(struct Var4038Struct *);
bool8 sub_8113508(void);
void sub_8113524(struct Var4038Struct *);
void sub_8113390(struct Var4038Struct *);
void sub_8113A1C(u8);
void sub_811381C(void);
void sub_81138F8(void);
@@ -164,21 +178,21 @@ const u8 gUnknown_8456698[] = {17, 10, 3};
extern const struct UnkStruct_203AE98 gUnknown_845669C;
void sub_8110840(void * a0)
void sub_8110840(void * oldPointer)
{
size_t r1 = (void *)gSaveBlock1Ptr - a0;
ptrdiff_t offset = (void *)gSaveBlock1Ptr - oldPointer;
if (gUnknown_203AE04)
gUnknown_203AE04 += r1;
gUnknown_203AE04 += offset;
if (gUnknown_203ADFA != 0)
{
if (gUnknown_203AE08)
gUnknown_203AE08 = (void *)gUnknown_203AE08 + r1;
gUnknown_203AE08 = (void *)gUnknown_203AE08 + offset;
if (gUnknown_203ADFA == 2)
{
int r3;
for (r3 = 0; r3 < 0x20; r3++)
if (gUnknown_203AE0C[r3])
gUnknown_203AE0C[r3] += r1;
gUnknown_203AE0C[r3] += offset;
}
}
}
@@ -2205,3 +2219,88 @@ void sub_8112F18(u8 a0)
"_08112FCC: .4byte 0x04000008");
}
#endif
void sub_8112FD0(void)
{
sub_8112F18(gUnknown_203B020);
}
const struct TextColor gUnknown_8456930 = {
0, 10, 2
};
void sub_8112FE4(const u8 * a0)
{
AddTextPrinterParametrized2(gUnknown_203B020, 0x02, 2, 5, 1, 1, &gUnknown_8456930, -1, a0);
}
void sub_8113018(const u8 * a0, u8 a1)
{
sub_8112FD0();
sub_8112FE4(a0);
if (a1)
CopyWindowToVram(gUnknown_203B020, a1);
}
void sub_8113044(void)
{
VarSet(VAR_0x4038, 0);
VarSet(VAR_0x4039, 0);
}
void sub_8113064(void)
{
sub_8113078((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
}
void sub_8113078(struct Var4038Struct * varPtr)
{
if (sub_8113508())
{
sub_81132E0(varPtr);
VarSet(VAR_0x4039, gSaveBlock2Ptr->playTimeHours);
}
}
void sub_81130A8(void)
{
sub_81130BC((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
}
void sub_81130BC(struct Var4038Struct * varPtr)
{
if (!varPtr->unk_0_7)
{
sub_8113524(varPtr);
sub_8113390(varPtr);
VarSet(VAR_0x4039, gSaveBlock2Ptr->playTimeHours);
FlagClear(FLAG_0x06C);
FlagClear(FLAG_0x06D);
FlagClear(FLAG_0x06E);
FlagClear(FLAG_0x06F);
VarSet(VAR_0x4073, 1);
}
}
ALIGNED(4) const u8 gUnknown_8456934[] = {2, 1, 2, 1};
u8 sub_8113114(struct Var4038Struct * a0, u8 a1)
{
if (VarGet(VAR_0x4073) == 2)
{
if (a0->unk_0_0 + gUnknown_8456934[a1] >= 20)
{
if (sub_81132A0(a0) < 3)
{
sub_8113194(a0);
a0->unk_0_0 = 0;
}
else
a0->unk_0_0 = 20;
}
else
a0->unk_0_0 += gUnknown_8456934[a1];
}
return a0->unk_0_0;
}