through sub_8113414
This commit is contained in:
-179
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user