through sub_814449C
This commit is contained in:
-328
@@ -5,334 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_81444B0
|
||||||
sub_81444B0: @ 81444B0
|
sub_81444B0: @ 81444B0
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
@@ -66,4 +66,7 @@ void DoSoftReset(void);
|
|||||||
void ClearPokemonCrySongs(void);
|
void ClearPokemonCrySongs(void);
|
||||||
void RestoreSerialTimer3IntrHandlers(void);
|
void RestoreSerialTimer3IntrHandlers(void);
|
||||||
|
|
||||||
|
extern const char RomHeaderGameCode[4];
|
||||||
|
extern const char RomHeaderSoftwareVersion;
|
||||||
|
|
||||||
#endif // GUARD_MAIN_H
|
#endif // GUARD_MAIN_H
|
||||||
|
|||||||
@@ -3,6 +3,24 @@
|
|||||||
|
|
||||||
#include "global.h"
|
#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);
|
struct MysteryEventStruct * sub_8143D94(void);
|
||||||
bool32 sub_8143E1C(void);
|
bool32 sub_8143E1C(void);
|
||||||
|
|
||||||
|
|||||||
+106
-3
@@ -14,7 +14,10 @@
|
|||||||
#include "script.h"
|
#include "script.h"
|
||||||
#include "event_data.h"
|
#include "event_data.h"
|
||||||
#include "battle_tower.h"
|
#include "battle_tower.h"
|
||||||
|
#include "new_game.h"
|
||||||
|
#include "string_util.h"
|
||||||
#include "menews_jisan.h"
|
#include "menews_jisan.h"
|
||||||
|
#include "mevent.h"
|
||||||
|
|
||||||
struct MEvent_Str_1
|
struct MEvent_Str_1
|
||||||
{
|
{
|
||||||
@@ -704,13 +707,113 @@ bool32 sub_81441F0(const u16 * data)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_8144218(void)
|
s32 sub_8144218(void)
|
||||||
{
|
{
|
||||||
struct MEventBuffer_32E0_Sub * data;
|
struct MEventBuffer_32E0_Sub * data;
|
||||||
if (!sub_8143FC8())
|
if (!sub_8143FC8())
|
||||||
return FALSE;
|
return 0;
|
||||||
data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
||||||
if (data->unk_08_0 != 1)
|
if (data->unk_08_0 != 1)
|
||||||
return FALSE;
|
return 0;
|
||||||
return sub_8144184(&gSaveBlock1Ptr->unk_3120.buffer_310.data, data->unk_09);
|
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