sub_8145A98
This commit is contained in:
+2
-307
@@ -5,313 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8145A98
|
||||
sub_8145A98: @ 8145A98
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x8
|
||||
movs r5, 0
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
movs r2, 0x6
|
||||
bl memset
|
||||
ldr r4, =gUnknown_203F3C8
|
||||
ldr r1, [r4]
|
||||
ldr r2, =0x0000018b
|
||||
adds r0, r1, r2
|
||||
adds r1, 0xA
|
||||
movs r2, 0x28
|
||||
bl memcpy
|
||||
ldr r0, [r4]
|
||||
ldr r3, =0x000001b3
|
||||
adds r1, r0, r3
|
||||
movs r0, 0xFF
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4]
|
||||
movs r2, 0xDA
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
adds r1, 0x32
|
||||
movs r2, 0x28
|
||||
bl memcpy
|
||||
ldr r0, [r4]
|
||||
movs r3, 0xEE
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
strb r1, [r0]
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x4]
|
||||
ldr r2, =0x000f423f
|
||||
cmp r0, r2
|
||||
bls _08145AF4
|
||||
str r2, [r1, 0x4]
|
||||
_08145AF4:
|
||||
ldr r1, [r4]
|
||||
ldr r2, =0x000001dd
|
||||
adds r0, r1, r2
|
||||
ldr r1, [r1, 0x4]
|
||||
movs r2, 0
|
||||
movs r3, 0x6
|
||||
bl ConvertIntToDecimalStringN
|
||||
adds r6, r4, 0
|
||||
_08145B06:
|
||||
ldr r2, [r6]
|
||||
lsls r1, r5, 2
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r4, r1, r5
|
||||
adds r0, r4, r2
|
||||
movs r3, 0xF2
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
adds r1, r2
|
||||
adds r1, 0x5A
|
||||
movs r2, 0x28
|
||||
bl memcpy
|
||||
ldr r1, [r6]
|
||||
movs r0, 0x83
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
adds r1, r4
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
adds r7, r2, 0
|
||||
movs r0, 0xFF
|
||||
strb r0, [r1]
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
cmp r5, 0x3
|
||||
bls _08145B06
|
||||
ldr r6, =gUnknown_203F3C8
|
||||
ldr r1, [r6]
|
||||
movs r3, 0xA2
|
||||
lsls r3, 2
|
||||
adds r0, r1, r3
|
||||
adds r1, 0xFA
|
||||
movs r2, 0x28
|
||||
bl memcpy
|
||||
ldr r0, [r6]
|
||||
movs r4, 0xAC
|
||||
lsls r4, 2
|
||||
adds r0, r4
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
adds r4, r1, 0
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
ldr r1, [r6]
|
||||
ldrb r0, [r1, 0x8]
|
||||
lsls r0, 30
|
||||
lsrs r0, 30
|
||||
cmp r0, 0x1
|
||||
beq _08145BB8
|
||||
cmp r0, 0x1
|
||||
bgt _08145B90
|
||||
cmp r0, 0
|
||||
beq _08145B96
|
||||
b _08145D08
|
||||
.pool
|
||||
_08145B90:
|
||||
cmp r0, 0x2
|
||||
beq _08145BC8
|
||||
b _08145D08
|
||||
_08145B96:
|
||||
ldr r2, =0x000002b1
|
||||
adds r0, r1, r2
|
||||
movs r3, 0x91
|
||||
lsls r3, 1
|
||||
adds r1, r3
|
||||
movs r2, 0x28
|
||||
bl memcpy
|
||||
ldr r1, [r6]
|
||||
ldr r0, =0x000002d9
|
||||
adds r1, r0
|
||||
b _08145BBC
|
||||
.pool
|
||||
_08145BB8:
|
||||
ldr r2, =0x000002b1
|
||||
adds r1, r2
|
||||
_08145BBC:
|
||||
ldrb r0, [r1]
|
||||
orrs r0, r4
|
||||
strb r0, [r1]
|
||||
b _08145D08
|
||||
.pool
|
||||
_08145BC8:
|
||||
ldr r3, =0x000002b1
|
||||
adds r0, r1, r3
|
||||
ldrb r1, [r0]
|
||||
orrs r1, r7
|
||||
strb r1, [r0]
|
||||
mov r3, sp
|
||||
ldr r1, [r6]
|
||||
movs r4, 0xA6
|
||||
lsls r4, 1
|
||||
adds r0, r1, r4
|
||||
ldrh r0, [r0]
|
||||
ldr r2, =0x000003e7
|
||||
cmp r0, r2
|
||||
bls _08145BE6
|
||||
adds r0, r2, 0
|
||||
_08145BE6:
|
||||
strh r0, [r3]
|
||||
mov r3, sp
|
||||
movs r4, 0xA7
|
||||
lsls r4, 1
|
||||
adds r0, r1, r4
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r2
|
||||
bls _08145BF8
|
||||
adds r0, r2, 0
|
||||
_08145BF8:
|
||||
strh r0, [r3, 0x2]
|
||||
mov r3, sp
|
||||
movs r4, 0xA8
|
||||
lsls r4, 1
|
||||
adds r0, r1, r4
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r2
|
||||
bls _08145C0A
|
||||
adds r0, r2, 0
|
||||
_08145C0A:
|
||||
strh r0, [r3, 0x4]
|
||||
movs r5, 0
|
||||
_08145C0E:
|
||||
lsls r4, r5, 1
|
||||
adds r4, r5
|
||||
lsls r4, 4
|
||||
movs r0, 0xB7
|
||||
lsls r0, 2
|
||||
adds r4, r0
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
adds r0, 0x2A
|
||||
movs r1, 0xFF
|
||||
movs r2, 0x4
|
||||
bl memset
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
adds r0, 0x1
|
||||
movs r1, 0xFF
|
||||
movs r2, 0x29
|
||||
bl memset
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
cmp r5, 0x7
|
||||
bls _08145C0E
|
||||
movs r5, 0
|
||||
movs r6, 0
|
||||
ldr r1, =gUnknown_203F3C8
|
||||
mov r8, r1
|
||||
movs r2, 0x91
|
||||
lsls r2, 1
|
||||
mov r10, r2
|
||||
ldr r7, =0x00000175
|
||||
movs r3, 0xB7
|
||||
lsls r3, 2
|
||||
mov r9, r3
|
||||
_08145C56:
|
||||
mov r4, r8
|
||||
ldr r2, [r4]
|
||||
mov r0, r10
|
||||
adds r1, r2, r0
|
||||
adds r0, r1, r5
|
||||
ldrb r3, [r0]
|
||||
cmp r3, 0xF7
|
||||
beq _08145C98
|
||||
ldr r1, =0x00000175
|
||||
adds r0, r2, r1
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 4
|
||||
adds r0, r6, r0
|
||||
ldr r4, =0x000002dd
|
||||
adds r1, r2, r4
|
||||
adds r1, r0
|
||||
strb r3, [r1]
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
b _08145CFE
|
||||
.pool
|
||||
_08145C98:
|
||||
adds r0, r5, 0x1
|
||||
adds r0, r1, r0
|
||||
ldrb r3, [r0]
|
||||
cmp r3, 0x2
|
||||
bls _08145CA8
|
||||
adds r0, r5, 0x2
|
||||
lsls r0, 16
|
||||
b _08145CFC
|
||||
_08145CA8:
|
||||
adds r0, r2, r7
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 4
|
||||
add r0, r9
|
||||
adds r0, r2, r0
|
||||
adds r0, 0x2A
|
||||
lsls r1, r3, 1
|
||||
add r1, sp
|
||||
ldrh r1, [r1]
|
||||
movs r2, 0x2
|
||||
movs r3, 0x3
|
||||
bl ConvertIntToDecimalStringN
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, r7
|
||||
ldrb r2, [r0]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 4
|
||||
adds r0, r1, r0
|
||||
adds r4, r5, 0x2
|
||||
add r1, r10
|
||||
adds r1, r4
|
||||
ldrb r1, [r1]
|
||||
add r0, r9
|
||||
strb r1, [r0]
|
||||
mov r2, r8
|
||||
ldr r1, [r2]
|
||||
adds r1, r7
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
adds r0, r7
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x7
|
||||
bhi _08145D08
|
||||
movs r6, 0
|
||||
lsls r0, r4, 16
|
||||
_08145CFC:
|
||||
lsrs r5, r0, 16
|
||||
_08145CFE:
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
cmp r5, 0x27
|
||||
bls _08145C56
|
||||
_08145D08:
|
||||
add sp, 0x8
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8145A98
|
||||
|
||||
thumb_func_start sub_8145D18
|
||||
sub_8145D18: @ 8145D18
|
||||
push {r4-r7,lr}
|
||||
@@ -972,6 +665,8 @@ _08146274:
|
||||
.pool
|
||||
thumb_func_end sub_81461D8
|
||||
|
||||
@ file boundary maybe
|
||||
|
||||
thumb_func_start sub_8146288
|
||||
sub_8146288: @ 8146288
|
||||
push {r4-r6,lr}
|
||||
|
||||
+6
-2
@@ -612,12 +612,16 @@ struct MEventBuffer_32E0_Sub
|
||||
{
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
u8 filler_04[4];
|
||||
u32 unk_04;
|
||||
u8 unk_08_0:2;
|
||||
u8 unk_08_2:4;
|
||||
u8 unk_08_6:2;
|
||||
u8 unk_09;
|
||||
u8 filler_0A[322];
|
||||
u8 unk_0A[40];
|
||||
u8 unk_32[40];
|
||||
u8 unk_5A[4][40];
|
||||
u8 unk_FA[40];
|
||||
u8 unk_122[40];
|
||||
};
|
||||
|
||||
struct MEventBuffer_32E0
|
||||
|
||||
+85
-1
@@ -6,6 +6,7 @@
|
||||
#include "menu.h"
|
||||
#include "pokemon_icon.h"
|
||||
#include "mystery_gift_menu.h"
|
||||
#include "string_util.h"
|
||||
#include "mevent.h"
|
||||
|
||||
struct UnkStruct_8467FB8
|
||||
@@ -16,16 +17,31 @@ struct UnkStruct_8467FB8
|
||||
const u16 * pal;
|
||||
};
|
||||
|
||||
struct UnkStruct_203F3C8_02DC
|
||||
{
|
||||
u8 unk_00;
|
||||
u8 unk_01[41];
|
||||
u8 unk_42[4];
|
||||
};
|
||||
|
||||
struct UnkStruct_203F3C8
|
||||
{
|
||||
/*0000*/ struct MEventBuffer_32E0_Sub unk_0000;
|
||||
/*014c*/ struct MEventBuffer_3430_Sub unk_014c;
|
||||
/*0170*/ const struct UnkStruct_8467FB8 * unk_0170;
|
||||
/*0174*/ u8 unk_0174;
|
||||
/*0175*/ u8 unk_0175;
|
||||
/*0176*/ u16 unk_0176;
|
||||
/*0178*/ u16 unk_0178;
|
||||
/*017A*/ u16 unk_017A;
|
||||
/*017C*/ u8 filler_0178[0x2E0];
|
||||
/*017C*/ u8 filler_017C[15];
|
||||
/*018B*/ u8 unk_018B[41];
|
||||
/*01B4*/ u8 unk_01B4[41];
|
||||
/*01DD*/ u8 unk_01DD[7];
|
||||
/*01E4*/ u8 unk_01E4[4][41];
|
||||
/*0288*/ u8 unk_0288[41];
|
||||
/*02B1*/ u8 unk_02B1[41];
|
||||
/*02DC*/ struct UnkStruct_203F3C8_02DC unk_02DC[8];
|
||||
/*045C*/ u8 buffer_045C[0x1000];
|
||||
};
|
||||
|
||||
@@ -187,3 +203,71 @@ s32 sub_814593C(bool32 flag)
|
||||
++gUnknown_203F3C8->unk_0174;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8145A98(void)
|
||||
{
|
||||
u16 i = 0;
|
||||
u16 r6;
|
||||
u16 sp0[3] = {0, 0, 0};
|
||||
|
||||
memcpy(gUnknown_203F3C8->unk_018B, gUnknown_203F3C8->unk_0000.unk_0A, 40);
|
||||
gUnknown_203F3C8->unk_018B[40] = EOS;
|
||||
memcpy(gUnknown_203F3C8->unk_01B4, gUnknown_203F3C8->unk_0000.unk_32, 40);
|
||||
gUnknown_203F3C8->unk_01B4[40] = EOS;
|
||||
if (gUnknown_203F3C8->unk_0000.unk_04 > 999999)
|
||||
gUnknown_203F3C8->unk_0000.unk_04 = 999999;
|
||||
ConvertIntToDecimalStringN(gUnknown_203F3C8->unk_01DD, gUnknown_203F3C8->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
memcpy(gUnknown_203F3C8->unk_01E4[i], gUnknown_203F3C8->unk_0000.unk_5A[i], 40);
|
||||
gUnknown_203F3C8->unk_01E4[i][40] = EOS;
|
||||
}
|
||||
memcpy(gUnknown_203F3C8->unk_0288, gUnknown_203F3C8->unk_0000.unk_FA, 40);
|
||||
gUnknown_203F3C8->unk_0288[40] = EOS;
|
||||
switch (gUnknown_203F3C8->unk_0000.unk_08_0)
|
||||
{
|
||||
case 0:
|
||||
memcpy(gUnknown_203F3C8->unk_02B1, gUnknown_203F3C8->unk_0000.unk_122, 40);
|
||||
gUnknown_203F3C8->unk_02B1[40] = EOS;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_203F3C8->unk_02B1[00] = EOS;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_203F3C8->unk_02B1[00] = EOS;
|
||||
sp0[0] = gUnknown_203F3C8->unk_014c.unk_00 < 999 ? gUnknown_203F3C8->unk_014c.unk_00 : 999;
|
||||
sp0[1] = gUnknown_203F3C8->unk_014c.unk_02 < 999 ? gUnknown_203F3C8->unk_014c.unk_02 : 999;
|
||||
sp0[2] = gUnknown_203F3C8->unk_014c.unk_04 < 999 ? gUnknown_203F3C8->unk_014c.unk_04 : 999;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
memset(gUnknown_203F3C8->unk_02DC[i].unk_42, EOS, 4);
|
||||
memset(gUnknown_203F3C8->unk_02DC[i].unk_01, EOS, 41);
|
||||
}
|
||||
for (i = 0, r6 = 0; i < 40; i++)
|
||||
{
|
||||
if (gUnknown_203F3C8->unk_0000.unk_122[i] != 0xF7)
|
||||
{
|
||||
gUnknown_203F3C8->unk_02DC[gUnknown_203F3C8->unk_0175].unk_01[r6] = gUnknown_203F3C8->unk_0000.unk_122[i];
|
||||
r6++;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 r3 = gUnknown_203F3C8->unk_0000.unk_122[i + 1];
|
||||
if (r3 > 2)
|
||||
{
|
||||
i += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
ConvertIntToDecimalStringN(gUnknown_203F3C8->unk_02DC[gUnknown_203F3C8->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
gUnknown_203F3C8->unk_02DC[gUnknown_203F3C8->unk_0175].unk_00 = gUnknown_203F3C8->unk_0000.unk_122[i + 2];
|
||||
gUnknown_203F3C8->unk_0175++;
|
||||
if (gUnknown_203F3C8->unk_0175 > 7)
|
||||
break;
|
||||
r6 = 0;
|
||||
i += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user