through sub_8113414

This commit is contained in:
PikalaxALT
2018-10-16 18:05:39 -07:00
parent d50948133d
commit 7670f0527f
5 changed files with 106 additions and 185 deletions
-179
View File
@@ -5,185 +5,6 @@
.text
thumb_func_start sub_8113364
sub_8113364: @ 8113364
push {lr}
ldr r0, _08113378 @ =0x00004038
bl GetVarPointer
bl sub_811337C
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08113378: .4byte 0x00004038
thumb_func_end sub_8113364
thumb_func_start sub_811337C
sub_811337C: @ 811337C
ldrb r0, [r0, 0x1]
ldr r1, _0811338C @ =gUnknown_20370C0
ldrh r1, [r1]
asrs r0, r1
movs r1, 0x1
ands r0, r1
bx lr
.align 2, 0
_0811338C: .4byte gUnknown_20370C0
thumb_func_end sub_811337C
thumb_func_start sub_8113390
sub_8113390: @ 8113390
ldrb r2, [r0, 0x1]
movs r1, 0x1
orrs r1, r2
movs r2, 0x2
orrs r1, r2
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x1]
bx lr
thumb_func_end sub_8113390
thumb_func_start sub_81133A4
sub_81133A4: @ 81133A4
push {lr}
movs r3, 0
movs r2, 0
ldr r0, _081133BC @ =gUnknown_20370C0
ldrh r0, [r0]
cmp r0, 0x7
bhi _081133F8
lsls r0, 2
ldr r1, _081133C0 @ =_081133C4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081133BC: .4byte gUnknown_20370C0
_081133C0: .4byte _081133C4
.align 2, 0
_081133C4:
.4byte _081133E4
.4byte _081133F8
.4byte _081133F8
.4byte _081133F8
.4byte _081133EA
.4byte _081133F0
.4byte _081133F4
.4byte _081133F8
_081133E4:
movs r2, 0
movs r3, 0
b _081133F8
_081133EA:
movs r2, 0x1
movs r3, 0
b _081133F8
_081133F0:
movs r2, 0
b _081133F6
_081133F4:
movs r2, 0x2
_081133F6:
movs r3, 0x1
_081133F8:
ldr r0, _0811340C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _08113410 @ =0x00000a98
adds r0, r1
adds r1, r3, 0
bl sub_8113414
pop {r0}
bx r0
.align 2, 0
_0811340C: .4byte gSaveBlock2Ptr
_08113410: .4byte 0x00000a98
thumb_func_end sub_81133A4
thumb_func_start sub_8113414
sub_8113414: @ 8113414
push {r4,lr}
lsls r1, 24
lsls r2, 24
lsrs r2, 24
adds r3, r2, 0
lsrs r1, 20
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0xFF
bne _08113478
cmp r2, 0x1
beq _08113436
cmp r2, 0x1
ble _0811345C
cmp r3, 0x2
beq _08113448
b _0811345C
_08113436:
ldr r0, _08113440 @ =gStringVar1
ldr r1, _08113444 @ =gUnknown_84178D0
bl StringCopy
b _081134B2
.align 2, 0
_08113440: .4byte gStringVar1
_08113444: .4byte gUnknown_84178D0
_08113448:
ldr r0, _08113454 @ =gStringVar1
ldr r1, _08113458 @ =gUnknown_84178DA
bl StringCopy
b _081134B2
.align 2, 0
_08113454: .4byte gStringVar1
_08113458: .4byte gUnknown_84178DA
_0811345C:
ldr r0, _0811346C @ =gStringVar1
ldr r1, _08113470 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, _08113474 @ =0x00003a4c
adds r1, r2
bl StringCopy
b _081134B2
.align 2, 0
_0811346C: .4byte gStringVar1
_08113470: .4byte gSaveBlock1Ptr
_08113474: .4byte 0x00003a4c
_08113478:
ldr r4, _08113498 @ =gStringVar1
adds r0, r4, 0
movs r2, 0x7
bl StringCopyN
movs r0, 0xFF
strb r0, [r4, 0x7]
ldrb r0, [r4]
cmp r0, 0xFC
bne _081134B2
ldrb r0, [r4, 0x1]
cmp r0, 0x15
bne _081134B2
adds r4, 0x2
b _0811349E
.align 2, 0
_08113498: .4byte gStringVar1
_0811349C:
adds r4, 0x1
_0811349E:
ldrb r0, [r4]
cmp r0, 0xFF
bne _0811349C
movs r0, 0xFC
strb r0, [r4]
adds r4, 0x1
movs r0, 0x16
strb r0, [r4]
movs r0, 0xFF
strb r0, [r4, 0x1]
_081134B2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8113414
thumb_func_start sub_81134B8
sub_81134B8: @ 81134B8
push {lr}
+1
View File
@@ -53,5 +53,6 @@ extern u16 gSpecialVar_MonBoxPos;
extern u16 gSpecialVar_0x8014;
extern u16 gUnknown_20370D0;
extern u16 gUnknown_20370C0;
#endif // GUARD_EVENT_DATA_H
+3
View File
@@ -372,4 +372,7 @@ extern const u8 SecretBase_RedCave1_Text_274E75[];
extern const u8 SecretBase_RedCave1_Text_2751E1[];
extern const u8 SecretBase_RedCave1_Text_2754F6[];
extern const u8 SecretBase_RedCave1_Text_2758CC[];
extern const u8 gUnknown_84178D0[];
extern const u8 gUnknown_84178DA[];
#endif //GUARD_EVENT_SCRIPTS_H
+3 -1
View File
@@ -237,7 +237,9 @@ struct SaveBlock2
/*0x098*/ struct Time localTimeOffset;
/*0x0A0*/ struct Time lastBerryTreeUpdate;
/*0x0A8*/ u32 field_A8;
/*0x0AC*/ u8 filler_AC[0xE74];
/*0x0AC*/ u8 filler_AC[0x9ec];
/*0xA98*/ u8 unk_A98[2][16];
/*0xAB8*/ u8 filler_AB8[0x468];
/*0xF20*/ u32 encryptionKey;
};
+99 -5
View File
@@ -10,6 +10,7 @@
#include "window.h"
#include "text_window.h"
#include "event_data.h"
#include "event_scripts.h"
#include "string_util.h"
#include "script.h"
#include "overworld.h"
@@ -40,6 +41,8 @@ struct Var4038Struct
u8 unk_1;
};
#define VAR_0x4038_STRUCT ((struct Var4038Struct *)GetVarPointer(VAR_0x4038))
struct UnkStruct_203AE94
{
u8 unk_0_0:4;
@@ -143,9 +146,11 @@ void sub_81130BC(struct Var4038Struct *);
u8 sub_8113194(struct Var4038Struct *);
u16 sub_81132A0(struct Var4038Struct *);
void sub_81132E0(struct Var4038Struct *);
bool16 sub_811337C(struct Var4038Struct *);
void sub_8113390(struct Var4038Struct *);
void sub_8113414(u8 (*)[16], u8, u8);
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);
@@ -2252,7 +2257,7 @@ void sub_8113044(void)
void sub_8113064(void)
{
sub_8113078((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
sub_8113078(VAR_0x4038_STRUCT);
}
void sub_8113078(struct Var4038Struct * varPtr)
@@ -2266,7 +2271,7 @@ void sub_8113078(struct Var4038Struct * varPtr)
void sub_81130A8(void)
{
sub_81130BC((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
sub_81130BC(VAR_0x4038_STRUCT);
}
void sub_81130BC(struct Var4038Struct * varPtr)
@@ -2363,7 +2368,7 @@ u8 sub_81131FC(struct Var4038Struct * a0)
u16 sub_8113288(void)
{
return sub_81132A0((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
return sub_81132A0(VAR_0x4038_STRUCT);
}
u16 sub_81132A0(struct Var4038Struct * a0)
@@ -2382,7 +2387,7 @@ u16 sub_81132A0(struct Var4038Struct * a0)
void sub_81132CC(void)
{
sub_81132E0((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
sub_81132E0(VAR_0x4038_STRUCT);
}
void sub_81132E0(struct Var4038Struct * a0)
@@ -2411,3 +2416,92 @@ void sub_81132E0(struct Var4038Struct * a0)
}
}
}
bool16 sub_8113364(void)
{
return sub_811337C(VAR_0x4038_STRUCT);
}
bool16 sub_811337C(struct Var4038Struct * a0)
{
return (a0->unk_1 >> gUnknown_20370C0) & 1;
}
void sub_8113390(struct Var4038Struct * a0)
{
a0->unk_1 |= 1;
a0->unk_1 |= 2;
a0->unk_1 |= 4;
}
void sub_81133A4(void)
{
u8 r3 = 0;
u8 r2 = 0;
switch (gUnknown_20370C0)
{
case 0:
r2 = 0;
r3 = 0;
break;
case 1:
case 2:
case 3:
case 7:
break;
case 4:
r2 = 1;
r3 = 0;
break;
case 5:
r2 = 0;
r3 = 1;
break;
case 6:
r2 = 2;
r3 = 1;
break;
}
sub_8113414(gSaveBlock2Ptr->unk_A98, r3, r2);
}
void sub_8113414(u8 (* a0)[16], u8 a1, u8 a2)
{
u8 * str;
const u8 * src = a0[a1];
if (src[0] == EOS)
{
switch (a2)
{
case 0:
StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
break;
case 1:
StringCopy(gStringVar1, gUnknown_84178D0);
break;
case 2:
StringCopy(gStringVar1, gUnknown_84178DA);
break;
default:
StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
break;
}
}
else
{
str = gStringVar1;
StringCopyN(str, src, 7);
str[7] = EOS;
if ( str[0] == EXT_CTRL_CODE_BEGIN
&& str[1] == EXT_CTRL_CODE_JPN)
{
str += 2;
while (*str != EOS)
str++;
*str++ = EXT_CTRL_CODE_BEGIN;
*str++ = EXT_CTRL_CODE_ENG;
*str++ = EOS;
}
}
}