mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
decomp 801C8C4
This commit is contained in:
parent
576ae3a98b
commit
c806523537
|
|
@ -5,155 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801C8C4
|
||||
sub_801C8C4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
mov r9, r2
|
||||
mov r10, r3
|
||||
bl sub_801CF14
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801C8E4
|
||||
movs r0, 0
|
||||
b _0801C9D0
|
||||
_0801C8E4:
|
||||
ldr r5, _0801C9E0
|
||||
ldr r0, [r5]
|
||||
cmp r0, 0
|
||||
bne _0801C8F6
|
||||
ldr r0, _0801C9E4
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r5]
|
||||
_0801C8F6:
|
||||
ldr r0, [r5]
|
||||
str r4, [r0]
|
||||
bl sub_801CF94
|
||||
ldr r0, [r5]
|
||||
movs r4, 0x9D
|
||||
lsls r4, 3
|
||||
adds r1, r0, r4
|
||||
str r6, [r1]
|
||||
ldr r1, _0801C9E8
|
||||
mov r8, r1
|
||||
adds r2, r0, r1
|
||||
lsls r1, r6, 1
|
||||
adds r1, r6
|
||||
lsls r1, 3
|
||||
movs r7, 0x9E
|
||||
lsls r7, 3
|
||||
adds r1, r7
|
||||
adds r1, r0, r1
|
||||
str r1, [r2]
|
||||
adds r0, r7
|
||||
bl sub_8006518
|
||||
ldr r1, [r5]
|
||||
adds r4, r1, r4
|
||||
ldr r2, [r4]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, r7
|
||||
ldr r0, _0801C9EC
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldr r2, [r5]
|
||||
mov r1, r8
|
||||
adds r0, r2, r1
|
||||
ldr r1, [r0]
|
||||
movs r3, 0xAA
|
||||
lsls r3, 3
|
||||
adds r0, r2, r3
|
||||
str r0, [r1, 0x14]
|
||||
mov r4, r9
|
||||
cmp r4, 0
|
||||
beq _0801C96C
|
||||
movs r1, 0x9D
|
||||
lsls r1, 3
|
||||
adds r0, r2, r1
|
||||
ldr r1, [r0]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
subs r3, 0x58
|
||||
adds r1, r2, r3
|
||||
adds r1, r0
|
||||
ldr r0, [r4]
|
||||
str r0, [r1]
|
||||
_0801C96C:
|
||||
ldr r0, [r5]
|
||||
add r0, r8
|
||||
ldr r0, [r0]
|
||||
mov r1, r10
|
||||
bl sub_8012D08
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r5]
|
||||
adds r0, r7
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r4, [r5]
|
||||
ldr r0, _0801C9F0
|
||||
adds r4, r0
|
||||
bl sub_801CE58
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0
|
||||
mov r2, r10
|
||||
adds r3, r6, 0
|
||||
bl sub_8013818
|
||||
ldr r0, _0801C9F4
|
||||
ldr r4, [r5]
|
||||
ldr r1, [r0]
|
||||
ldr r0, [r4]
|
||||
cmp r1, r0
|
||||
bne _0801C9C6
|
||||
ldr r0, _0801C9F8
|
||||
ldrh r1, [r0]
|
||||
ldr r2, _0801C9FC
|
||||
adds r0, r4, r2
|
||||
strh r1, [r0]
|
||||
ldr r0, _0801CA00
|
||||
ldrh r1, [r0]
|
||||
ldr r3, _0801CA04
|
||||
adds r0, r4, r3
|
||||
strh r1, [r0]
|
||||
ldr r1, _0801C9F0
|
||||
adds r0, r4, r1
|
||||
bl sub_8013984
|
||||
_0801C9C6:
|
||||
bl sub_801CC38
|
||||
bl sub_801CCD8
|
||||
movs r0, 0x1
|
||||
_0801C9D0:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0801C9E0: .4byte gUnknown_203B244
|
||||
_0801C9E4: .4byte 0x00000554
|
||||
_0801C9E8: .4byte 0x000004ec
|
||||
_0801C9EC: .4byte gUnknown_80DBE54
|
||||
_0801C9F0: .4byte 0x000004b4
|
||||
_0801C9F4: .4byte gUnknown_203B248
|
||||
_0801C9F8: .4byte gUnknown_203B24C
|
||||
_0801C9FC: .4byte 0x000004cc
|
||||
_0801CA00: .4byte gUnknown_203B24E
|
||||
_0801CA04: .4byte 0x000004d2
|
||||
thumb_func_end sub_801C8C4
|
||||
|
||||
thumb_func_start sub_801CA08
|
||||
sub_801CA08:
|
||||
push {r4-r6,lr}
|
||||
|
|
|
|||
|
|
@ -24,12 +24,46 @@ struct unkStruct_203B240
|
|||
u32 unk90;
|
||||
};
|
||||
|
||||
struct unkStruct_203B244
|
||||
{
|
||||
// size: 0x554
|
||||
u32 unk0;
|
||||
u8 fill4[0x4B4 - 0x4];
|
||||
u32 unk4B4;
|
||||
u8 fill4B8[0x4CC - 0x4B8];
|
||||
u16 unk4CC;
|
||||
u16 unk4CE;
|
||||
u16 unk4D0;
|
||||
u16 unk4D2;
|
||||
u8 fill4D4[0x4E8 - 0x4D4];
|
||||
u32 unk4E8;
|
||||
struct UnkTextStruct2 * unk4EC;
|
||||
struct UnkTextStruct2 unk4F0[4];
|
||||
u8 unk550[4];
|
||||
};
|
||||
|
||||
extern const struct UnkTextStruct2 gUnknown_80DBE54;
|
||||
|
||||
extern struct unkStruct_203B244 *gUnknown_203B244;
|
||||
extern struct unkStruct_203B240 *gUnknown_203B240;
|
||||
extern u32 gUnknown_203B248;
|
||||
extern u16 gUnknown_203B24C;
|
||||
extern u16 gUnknown_203B24E;
|
||||
|
||||
extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0}
|
||||
extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0}
|
||||
extern u8 gUnknown_202DE58[0x58];
|
||||
extern u8 gAvailablePokemonNames[0x58];
|
||||
|
||||
extern bool8 sub_801CF14(u32);
|
||||
extern void sub_8012D08(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_8013818(u32 *, u32, u32, u32);
|
||||
extern u32 sub_801CE58(void);
|
||||
extern void sub_8013984(void *);
|
||||
extern void sub_801CC38(void);
|
||||
extern void sub_801CCD8(void);
|
||||
extern void sub_801CF94(void);
|
||||
|
||||
|
||||
extern void ResetSprites(u32);
|
||||
extern void sub_801317C(u32 *);
|
||||
|
|
@ -204,3 +238,38 @@ void sub_801C848(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_801C8C4(s32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, u32 param_4)
|
||||
{
|
||||
if (sub_801CF14(param_1)) {
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_203B244 == NULL) {
|
||||
gUnknown_203B244 = MemoryAlloc(sizeof(struct unkStruct_203B244), 8);
|
||||
}
|
||||
gUnknown_203B244->unk0 = param_1;
|
||||
sub_801CF94();
|
||||
gUnknown_203B244->unk4E8 = param_2;
|
||||
gUnknown_203B244->unk4EC = &gUnknown_203B244->unk4F0[param_2];
|
||||
sub_8006518(gUnknown_203B244->unk4F0);
|
||||
gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8] = gUnknown_80DBE54;
|
||||
gUnknown_203B244->unk4EC->unk14 = gUnknown_203B244->unk550;
|
||||
if (param_3 != NULL) {
|
||||
gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8].unk08 = *param_3;
|
||||
}
|
||||
sub_8012D08(gUnknown_203B244->unk4EC, param_4);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B244->unk4F0,1,1);
|
||||
sub_8013818(&gUnknown_203B244->unk4B4, sub_801CE58(), param_4, param_2);
|
||||
if (gUnknown_203B248 == gUnknown_203B244->unk0) {
|
||||
gUnknown_203B244->unk4CC = gUnknown_203B24C;
|
||||
gUnknown_203B244->unk4D2 = gUnknown_203B24E;
|
||||
sub_8013984(&gUnknown_203B244->unk4B4);
|
||||
}
|
||||
sub_801CC38();
|
||||
sub_801CCD8();
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user