through sub_8144218

This commit is contained in:
PikalaxALT
2018-11-29 18:15:22 -05:00
parent 9460cbfe6c
commit 51622adaec
3 changed files with 88 additions and 245 deletions
+1 -244
View File
@@ -5,251 +5,8 @@
.text
thumb_func_start sub_81440B4
sub_81440B4: @ 81440B4
push {r4,lr}
sub sp, 0x4
movs r4, 0
str r4, [sp]
bl sav1_get_mevent_buffer_2
adds r1, r0, 0
ldr r2, _081440DC @ =0x05000009
mov r0, sp
bl CpuSet
ldr r0, _081440E0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _081440E4 @ =0x00003430
adds r0, r1
str r4, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081440DC: .4byte 0x05000009
_081440E0: .4byte gSaveBlock1Ptr
_081440E4: .4byte 0x00003430
thumb_func_end sub_81440B4
thumb_func_start sub_81440E8
sub_81440E8: @ 81440E8
push {lr}
bl sub_8143FC8
cmp r0, 0
bne _081440F6
movs r0, 0
b _08144100
_081440F6:
ldr r0, _08144104 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08144108 @ =0x000032e4
adds r0, r1
ldrh r0, [r0]
_08144100:
pop {r1}
bx r1
.align 2, 0
_08144104: .4byte gSaveBlock1Ptr
_08144108: .4byte 0x000032e4
thumb_func_end sub_81440E8
thumb_func_start sub_814410C
sub_814410C: @ 814410C
push {lr}
adds r2, r0, 0
ldrb r1, [r2, 0x8]
movs r0, 0xC0
ands r0, r1
cmp r0, 0x40
bne _08144120
movs r0, 0x3F
ands r0, r1
strb r0, [r2, 0x8]
_08144120:
pop {r0}
bx r0
thumb_func_end sub_814410C
thumb_func_start sub_8144124
sub_8144124: @ 8144124
push {lr}
lsls r0, 16
ldr r1, _08144138 @ =0xfc180000
adds r0, r1
lsrs r0, 16
cmp r0, 0x13
bls _0814413C
movs r0, 0
b _0814413E
.align 2, 0
_08144138: .4byte 0xfc180000
_0814413C:
movs r0, 0x1
_0814413E:
pop {r1}
bx r1
thumb_func_end sub_8144124
thumb_func_start sub_8144144
sub_8144144: @ 8144144
push {r4,lr}
bl sub_81440E8
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl sub_8144124
cmp r0, 0
beq _0814417C
ldr r1, _08144174 @ =gUnknown_8466F00
ldr r2, _08144178 @ =0xfffffc18
adds r0, r4, r2
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0814417C
movs r0, 0x1
b _0814417E
.align 2, 0
_08144174: .4byte gUnknown_8466F00
_08144178: .4byte 0xfffffc18
_0814417C:
movs r0, 0
_0814417E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8144144
thumb_func_start sub_8144184
sub_8144184: @ 8144184
push {lr}
movs r3, 0
cmp r3, r1
bge _081441A6
adds r2, r0, 0
adds r2, 0x8
_08144190:
ldrh r0, [r2, 0xE]
cmp r0, 0
beq _0814419E
ldrh r0, [r2]
cmp r0, 0
beq _0814419E
adds r3, 0x1
_0814419E:
adds r2, 0x2
subs r1, 0x1
cmp r1, 0
bne _08144190
_081441A6:
adds r0, r3, 0
pop {r1}
bx r1
thumb_func_end sub_8144184
thumb_func_start sub_81441AC
sub_81441AC: @ 81441AC
push {r4-r7,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r1, 0
cmp r1, r2
bge _081441E6
ldrh r6, [r4, 0x2]
movs r0, 0x16
adds r0, r5
mov r12, r0
_081441C0:
lsls r3, r1, 1
mov r7, r12
ldrh r0, [r7]
cmp r0, r6
beq _081441D8
adds r0, r5, 0
adds r0, 0x8
adds r0, r3
ldrh r0, [r0]
ldrh r3, [r4]
cmp r0, r3
bne _081441DC
_081441D8:
movs r0, 0x1
b _081441E8
_081441DC:
movs r7, 0x2
add r12, r7
adds r1, 0x1
cmp r1, r2
blt _081441C0
_081441E6:
movs r0, 0
_081441E8:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81441AC
thumb_func_start sub_81441F0
sub_81441F0: @ 81441F0
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2]
cmp r0, 0
beq _08144210
ldrh r1, [r1]
cmp r1, 0
beq _08144210
ldr r0, _0814420C @ =0x0000019b
cmp r1, r0
bhi _08144210
movs r0, 0x1
b _08144212
.align 2, 0
_0814420C: .4byte 0x0000019b
_08144210:
movs r0, 0
_08144212:
pop {r1}
bx r1
thumb_func_end sub_81441F0
thumb_func_start sub_8144218
sub_8144218: @ 8144218
push {lr}
bl sub_8143FC8
cmp r0, 0
beq _0814424C
ldr r0, _08144240 @ =gSaveBlock1Ptr
ldr r3, [r0]
ldr r0, _08144244 @ =0x000032e4
adds r2, r3, r0
ldrb r1, [r2, 0x8]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _0814424C
ldr r1, _08144248 @ =0x00003434
adds r0, r3, r1
ldrb r1, [r2, 0x9]
bl sub_8144184
b _0814424E
.align 2, 0
_08144240: .4byte gSaveBlock1Ptr
_08144244: .4byte 0x000032e4
_08144248: .4byte 0x00003434
_0814424C:
movs r0, 0
_0814424E:
pop {r1}
bx r1
thumb_func_end sub_8144218
thumb_func_start sub_8144254
sub_8144254: @ 8144254
sub_8144254: @ 8144254sub_81441F0
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, _08144280 @ =gSaveBlock1Ptr
+1 -1
View File
@@ -628,7 +628,7 @@ struct MEventBuffer_3430_Sub
{
u8 filler_00[6];
u16 unk_06;
u8 filler_08[28];
u16 unk_08[2][7];
};
struct MEventBuffer_3430
+86
View File
@@ -1,5 +1,6 @@
#include "global.h"
#include "constants/songs.h"
#include "constants/species.h"
#include "malloc.h"
#include "sound.h"
#include "easy_chat.h"
@@ -72,6 +73,8 @@ extern const u8 gUnknown_841DE9C[];
extern const u8 gUnknownSerialData_Start[];
extern const u8 gUnknownSerialData_End[];
extern const u16 gUnknown_8466F00[];
struct MEvent_Str_1 gUnknown_3005ED0;
void sub_81435DC(struct MEvent_Str_1 *a0, size_t a1, const void * a2)
@@ -628,3 +631,86 @@ void sub_814407C(void)
CpuFill32(0, &gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub));
gSaveBlock1Ptr->unk_3120.buffer_1c0.crc = 0;
}
void sub_81440B4(void)
{
CpuFill32(0, sav1_get_mevent_buffer_2(), 18 * sizeof(u16));
gSaveBlock1Ptr->unk_3120.buffer_310.crc = 0;
}
u16 sub_81440E8(void)
{
if (sub_8143FC8())
return gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00;
return 0;
}
void sub_814410C(struct MEventBuffer_32E0_Sub * buffer)
{
if (buffer->unk_08_6 == 1)
buffer->unk_08_6 = 0;
}
bool32 sub_8144124(u16 a0)
{
if (a0 >= 1000 && a0 < 1020)
return TRUE;
return FALSE;
}
bool32 sub_8144144(void)
{
u16 value = sub_81440E8();
if (!sub_8144124(value))
return FALSE;
if (FlagGet(gUnknown_8466F00[value - 1000]) == TRUE)
return FALSE;
return TRUE;
}
s32 sub_8144184(const struct MEventBuffer_3430_Sub * data, s32 size)
{
s32 r3 = 0;
s32 i;
for (i = 0; i < size; i++)
{
if (data->unk_08[1][i] && data->unk_08[0][i])
r3++;
}
return r3;
}
bool32 sub_81441AC(const struct MEventBuffer_3430_Sub * data1, const u16 * data2, s32 size)
{
s32 i;
for (i = 0; i < size; i++)
{
if (data1->unk_08[1][i] == data2[1])
return TRUE;
if (data1->unk_08[0][i] == data2[0])
return TRUE;
}
return FALSE;
}
bool32 sub_81441F0(const u16 * data)
{
if (data[1] == 0)
return FALSE;
if (data[0] == 0)
return FALSE;
if (data[0] >= NUM_SPECIES)
return FALSE;
return TRUE;
}
bool32 sub_8144218(void)
{
struct MEventBuffer_32E0_Sub * data;
if (!sub_8143FC8())
return FALSE;
data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 != 1)
return FALSE;
return sub_8144184(&gSaveBlock1Ptr->unk_3120.buffer_310.data, data->unk_09);
}