through sub_814449C
This commit is contained in:
-328
@@ -5,334 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8144254
|
||||
sub_8144254: @ 8144254sub_81441F0
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r6, _08144280 @ =gSaveBlock1Ptr
|
||||
ldr r0, [r6]
|
||||
ldr r1, _08144284 @ =0x000032e4
|
||||
adds r0, r1
|
||||
ldrb r4, [r0, 0x9]
|
||||
adds r0, r5, 0
|
||||
bl sub_81441F0
|
||||
cmp r0, 0
|
||||
beq _081442BE
|
||||
ldr r0, [r6]
|
||||
ldr r1, _08144288 @ =0x00003434
|
||||
adds r0, r1
|
||||
adds r1, r5, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_81441AC
|
||||
cmp r0, 0
|
||||
beq _08144298
|
||||
b _081442BE
|
||||
.align 2, 0
|
||||
_08144280: .4byte gSaveBlock1Ptr
|
||||
_08144284: .4byte 0x000032e4
|
||||
_08144288: .4byte 0x00003434
|
||||
_0814428C:
|
||||
ldrh r0, [r5, 0x2]
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r2]
|
||||
movs r0, 0x1
|
||||
b _081442C0
|
||||
_08144298:
|
||||
movs r3, 0
|
||||
cmp r3, r4
|
||||
bge _081442BE
|
||||
ldr r0, [r6]
|
||||
ldr r6, _081442C8 @ =0x0000343c
|
||||
adds r2, r0, r6
|
||||
adds r6, 0xE
|
||||
adds r1, r0, r6
|
||||
_081442A8:
|
||||
ldrh r0, [r2, 0xE]
|
||||
cmp r0, 0
|
||||
bne _081442B4
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
beq _0814428C
|
||||
_081442B4:
|
||||
adds r2, 0x2
|
||||
adds r1, 0x2
|
||||
adds r3, 0x1
|
||||
cmp r3, r4
|
||||
blt _081442A8
|
||||
_081442BE:
|
||||
movs r0, 0
|
||||
_081442C0:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081442C8: .4byte 0x0000343c
|
||||
thumb_func_end sub_8144254
|
||||
|
||||
thumb_func_start sub_81442CC
|
||||
sub_81442CC: @ 81442CC
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
ldr r2, _08144328 @ =0x05000019
|
||||
mov r0, sp
|
||||
adds r1, r4, 0
|
||||
bl CpuSet
|
||||
ldr r0, _0814432C @ =0x00000101
|
||||
str r0, [r4]
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0x4]
|
||||
str r0, [r4, 0x8]
|
||||
strh r0, [r4, 0xC]
|
||||
str r0, [r4, 0x10]
|
||||
bl sub_8143FC8
|
||||
cmp r0, 0
|
||||
beq _08144330
|
||||
bl sav1_get_mevent_buffer_1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, 0x14]
|
||||
bl sav1_get_mevent_buffer_2
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x20
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl sav1_get_mevent_buffer_1
|
||||
ldrb r1, [r0, 0x9]
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x44
|
||||
strb r1, [r0]
|
||||
b _08144332
|
||||
.align 2, 0
|
||||
_08144328: .4byte 0x05000019
|
||||
_0814432C: .4byte 0x00000101
|
||||
_08144330:
|
||||
strh r0, [r4, 0x14]
|
||||
_08144332:
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x4C
|
||||
ldr r0, _081443BC @ =gSaveBlock2Ptr
|
||||
mov r8, r0
|
||||
adds r6, r4, 0
|
||||
adds r6, 0x45
|
||||
adds r7, r4, 0
|
||||
adds r7, 0x50
|
||||
movs r1, 0x5C
|
||||
adds r1, r4
|
||||
mov r9, r1
|
||||
movs r2, 0x60
|
||||
adds r2, r4
|
||||
mov r10, r2
|
||||
ldr r0, _081443C0 @ =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
ldr r3, _081443C4 @ =0x00003458
|
||||
adds r2, r0, r3
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x16
|
||||
movs r3, 0x3
|
||||
_0814435C:
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
adds r2, 0x2
|
||||
adds r1, 0x2
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0814435C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, 0xA
|
||||
adds r0, r5, 0
|
||||
bl CopyUnalignedWord
|
||||
mov r2, r8
|
||||
ldr r1, [r2]
|
||||
adds r0, r6, 0
|
||||
bl StringCopy
|
||||
ldr r0, _081443C0 @ =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
ldr r3, _081443C8 @ =0x00002ca0
|
||||
adds r2, r0, r3
|
||||
adds r1, r7, 0
|
||||
movs r3, 0x5
|
||||
_0814438C:
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
adds r2, 0x2
|
||||
adds r1, 0x2
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0814438C
|
||||
ldr r1, _081443CC @ =RomHeaderGameCode
|
||||
mov r0, r9
|
||||
movs r2, 0x4
|
||||
bl memcpy
|
||||
ldr r0, _081443D0 @ =RomHeaderSoftwareVersion
|
||||
ldrb r0, [r0]
|
||||
mov r5, r10
|
||||
strb r0, [r5]
|
||||
add sp, 0x4
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081443BC: .4byte gSaveBlock2Ptr
|
||||
_081443C0: .4byte gSaveBlock1Ptr
|
||||
_081443C4: .4byte 0x00003458
|
||||
_081443C8: .4byte 0x00002ca0
|
||||
_081443CC: .4byte RomHeaderGameCode
|
||||
_081443D0: .4byte RomHeaderSoftwareVersion
|
||||
thumb_func_end sub_81442CC
|
||||
|
||||
thumb_func_start sub_81443D4
|
||||
sub_81443D4: @ 81443D4
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
ldr r1, [r2]
|
||||
ldr r0, _0814440C @ =0x00000101
|
||||
cmp r1, r0
|
||||
bne _08144410
|
||||
ldrh r1, [r2, 0x4]
|
||||
movs r3, 0x1
|
||||
adds r0, r3, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08144410
|
||||
ldr r0, [r2, 0x8]
|
||||
ands r0, r3
|
||||
cmp r0, 0
|
||||
beq _08144410
|
||||
ldrh r1, [r2, 0xC]
|
||||
adds r0, r3, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08144410
|
||||
ldr r0, [r2, 0x10]
|
||||
movs r1, 0xF
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08144410
|
||||
movs r0, 0x1
|
||||
b _08144412
|
||||
.align 2, 0
|
||||
_0814440C: .4byte 0x00000101
|
||||
_08144410:
|
||||
movs r0, 0
|
||||
_08144412:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81443D4
|
||||
|
||||
thumb_func_start sub_8144418
|
||||
sub_8144418: @ 8144418
|
||||
push {lr}
|
||||
ldrh r1, [r1, 0x14]
|
||||
cmp r1, 0
|
||||
bne _08144424
|
||||
movs r0, 0
|
||||
b _08144430
|
||||
_08144424:
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r1
|
||||
beq _0814442E
|
||||
movs r0, 0x2
|
||||
b _08144430
|
||||
_0814442E:
|
||||
movs r0, 0x1
|
||||
_08144430:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8144418
|
||||
|
||||
thumb_func_start sub_8144434
|
||||
sub_8144434: @ 8144434
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x20
|
||||
adds r4, 0x44
|
||||
ldrb r1, [r4]
|
||||
adds r0, r5, 0
|
||||
bl sub_8144184
|
||||
ldrb r2, [r4]
|
||||
subs r4, r2, r0
|
||||
cmp r4, 0
|
||||
bne _08144454
|
||||
movs r0, 0x1
|
||||
b _0814446E
|
||||
_08144454:
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
bl sub_81441AC
|
||||
cmp r0, 0
|
||||
beq _08144464
|
||||
movs r0, 0x3
|
||||
b _0814446E
|
||||
_08144464:
|
||||
cmp r4, 0x1
|
||||
beq _0814446C
|
||||
movs r0, 0x2
|
||||
b _0814446E
|
||||
_0814446C:
|
||||
movs r0, 0x4
|
||||
_0814446E:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8144434
|
||||
|
||||
thumb_func_start sub_8144474
|
||||
sub_8144474: @ 8144474
|
||||
push {r4,lr}
|
||||
movs r3, 0
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x16
|
||||
_0814447C:
|
||||
ldrh r0, [r2]
|
||||
ldrh r4, [r1]
|
||||
cmp r0, r4
|
||||
beq _08144488
|
||||
movs r0, 0
|
||||
b _08144494
|
||||
_08144488:
|
||||
adds r1, 0x2
|
||||
adds r2, 0x2
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x3
|
||||
ble _0814447C
|
||||
movs r0, 0x1
|
||||
_08144494:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8144474
|
||||
|
||||
thumb_func_start sub_814449C
|
||||
sub_814449C: @ 814449C
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x20
|
||||
adds r0, 0x44
|
||||
ldrb r1, [r0]
|
||||
adds r0, r2, 0
|
||||
bl sub_8144184
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_814449C
|
||||
|
||||
thumb_func_start sub_81444B0
|
||||
sub_81444B0: @ 81444B0
|
||||
push {lr}
|
||||
|
||||
@@ -66,4 +66,7 @@ void DoSoftReset(void);
|
||||
void ClearPokemonCrySongs(void);
|
||||
void RestoreSerialTimer3IntrHandlers(void);
|
||||
|
||||
extern const char RomHeaderGameCode[4];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
||||
#endif // GUARD_MAIN_H
|
||||
|
||||
@@ -3,6 +3,24 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
struct MEventStruct_Unk1442CC
|
||||
{
|
||||
u32 unk_00;
|
||||
u16 unk_04;
|
||||
u32 unk_08;
|
||||
u16 unk_0C;
|
||||
u32 unk_10;
|
||||
u16 unk_14;
|
||||
u16 unk_16[4];
|
||||
struct MEventBuffer_3430_Sub unk_20;
|
||||
u8 unk_44;
|
||||
u8 unk_45[7];
|
||||
u8 unk_4C[4];
|
||||
u16 unk_50[6];
|
||||
u8 unk_5C[4];
|
||||
u8 unk_60;
|
||||
};
|
||||
|
||||
struct MysteryEventStruct * sub_8143D94(void);
|
||||
bool32 sub_8143E1C(void);
|
||||
|
||||
|
||||
+106
-3
@@ -14,7 +14,10 @@
|
||||
#include "script.h"
|
||||
#include "event_data.h"
|
||||
#include "battle_tower.h"
|
||||
#include "new_game.h"
|
||||
#include "string_util.h"
|
||||
#include "menews_jisan.h"
|
||||
#include "mevent.h"
|
||||
|
||||
struct MEvent_Str_1
|
||||
{
|
||||
@@ -704,13 +707,113 @@ bool32 sub_81441F0(const u16 * data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8144218(void)
|
||||
s32 sub_8144218(void)
|
||||
{
|
||||
struct MEventBuffer_32E0_Sub * data;
|
||||
if (!sub_8143FC8())
|
||||
return FALSE;
|
||||
return 0;
|
||||
data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
||||
if (data->unk_08_0 != 1)
|
||||
return FALSE;
|
||||
return 0;
|
||||
return sub_8144184(&gSaveBlock1Ptr->unk_3120.buffer_310.data, data->unk_09);
|
||||
}
|
||||
|
||||
bool32 sub_8144254(const u16 * data)
|
||||
{
|
||||
struct MEventBuffer_32E0_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
||||
s32 size = buffer->unk_09;
|
||||
s32 i;
|
||||
if (!sub_81441F0(data))
|
||||
return FALSE;
|
||||
if (sub_81441AC(&gSaveBlock1Ptr->unk_3120.buffer_310.data, data, size))
|
||||
return FALSE;
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
if (gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[1][i] == 0 && gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[0][i] == 0)
|
||||
{
|
||||
gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[1][i] = data[1];
|
||||
gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[0][i] = data[0];
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_81442CC(struct MEventStruct_Unk1442CC * data)
|
||||
{
|
||||
s32 i;
|
||||
CpuFill32(0, data, sizeof(struct MEventStruct_Unk1442CC));
|
||||
data->unk_00 = 0x101;
|
||||
data->unk_04 = 1;
|
||||
data->unk_08 = 1;
|
||||
data->unk_0C = 1;
|
||||
data->unk_10 = 1;
|
||||
if (sub_8143FC8())
|
||||
{
|
||||
data->unk_14 = sav1_get_mevent_buffer_1()->unk_00;
|
||||
data->unk_20 = *sav1_get_mevent_buffer_2();
|
||||
data->unk_44 = sav1_get_mevent_buffer_1()->unk_09;
|
||||
}
|
||||
else
|
||||
data->unk_14 = 0;
|
||||
for (i = 0; i < 4; i++)
|
||||
data->unk_16[i] = gSaveBlock1Ptr->unk_3120.unk_338[i];
|
||||
CopyUnalignedWord(data->unk_4C, gSaveBlock2Ptr->playerTrainerId);
|
||||
StringCopy(data->unk_45, gSaveBlock2Ptr->playerName);
|
||||
for (i = 0; i < 6; i++)
|
||||
data->unk_50[i] = gSaveBlock1Ptr->unk2CA0[i];
|
||||
memcpy(data->unk_5C, RomHeaderGameCode, 4);
|
||||
data->unk_60 = RomHeaderSoftwareVersion;
|
||||
}
|
||||
|
||||
bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data)
|
||||
{
|
||||
if (data->unk_00 != 0x101)
|
||||
return FALSE;
|
||||
if (!(data->unk_04 & 1))
|
||||
return FALSE;
|
||||
if (!(data->unk_08 & 1))
|
||||
return FALSE;
|
||||
if (!(data->unk_0C & 1))
|
||||
return FALSE;
|
||||
if (!(data->unk_10 & 0x0F))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1)
|
||||
{
|
||||
if (a1->unk_14 == 0)
|
||||
return 0;
|
||||
if (*a0 == a1->unk_14)
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1)
|
||||
{
|
||||
s32 r4 = a1->unk_44 - sub_8144184(&a1->unk_20, a1->unk_44);
|
||||
if (r4 == 0)
|
||||
return 1;
|
||||
if (sub_81441AC(&a1->unk_20, a0, a1->unk_44))
|
||||
return 3;
|
||||
if (r4 == 1)
|
||||
return 4;
|
||||
return 2;
|
||||
}
|
||||
|
||||
bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (a0->unk_16[i] != a1[i])
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 sub_814449C(const struct MEventStruct_Unk1442CC * a0)
|
||||
{
|
||||
return sub_8144184(&a0->unk_20, a0->unk_44);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user