mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 15:07:09 -05:00
Match sub_80416E0 thanks to @Eebit
This commit is contained in:
parent
1a51dc6ae5
commit
3b8bc8f67b
|
|
@ -2803,74 +2803,4 @@ sub_80416A4:
|
|||
bx r1
|
||||
thumb_func_end sub_80416A4
|
||||
|
||||
thumb_func_start sub_80416E0
|
||||
sub_80416E0:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x28
|
||||
adds r3, r0, 0
|
||||
lsls r2, 24
|
||||
lsrs r5, r2, 24
|
||||
str r1, [sp]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x4]
|
||||
movs r4, 0x1
|
||||
negs r4, r4
|
||||
str r4, [sp, 0x8]
|
||||
mov r1, sp
|
||||
ldr r0, [r3]
|
||||
cmp r0, 0
|
||||
bge _08041700
|
||||
adds r0, 0xFF
|
||||
_08041700:
|
||||
asrs r0, 8
|
||||
strh r0, [r1, 0xC]
|
||||
mov r1, sp
|
||||
ldr r0, [r3, 0x4]
|
||||
cmp r0, 0
|
||||
bge _0804170E
|
||||
adds r0, 0xFF
|
||||
_0804170E:
|
||||
asrs r0, 8
|
||||
strh r0, [r1, 0xE]
|
||||
str r4, [sp, 0x14]
|
||||
mov r0, sp
|
||||
strh r2, [r0, 0x10]
|
||||
strh r2, [r0, 0x12]
|
||||
ldr r0, _08041738
|
||||
str r0, [sp, 0x18]
|
||||
add r0, sp, 0x1C
|
||||
bl sub_8004E8C
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
bl sub_8041764
|
||||
adds r4, r0, 0
|
||||
cmp r5, 0
|
||||
beq _08041758
|
||||
movs r5, 0
|
||||
b _08041744
|
||||
.align 2, 0
|
||||
_08041738: .4byte 0x0000ffff
|
||||
_0804173C:
|
||||
movs r0, 0x42
|
||||
bl sub_803E46C
|
||||
adds r5, 0x1
|
||||
_08041744:
|
||||
cmp r5, 0x63
|
||||
bgt _08041754
|
||||
adds r0, r4, 0
|
||||
bl sub_800E9A8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0804173C
|
||||
_08041754:
|
||||
movs r4, 0x1
|
||||
negs r4, r4
|
||||
_08041758:
|
||||
adds r0, r4, 0
|
||||
add sp, 0x28
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80416E0
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -16,6 +16,20 @@ struct unkStruct_80420E8
|
|||
u32 unk8;
|
||||
};
|
||||
|
||||
typedef struct unkStruct_80416E0
|
||||
{
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
s32 unk14;
|
||||
u32 unk18;
|
||||
} unkStruct_80416E0;
|
||||
|
||||
|
||||
extern u32 gStatusSpriteMasks_SleepStatus[];
|
||||
extern u32 gStatusSpriteMasks_NonVolatileStatus[];
|
||||
extern u32 gStatusSpriteMasks_ImmobilizeStatus[];
|
||||
|
|
@ -33,18 +47,15 @@ extern u32 gStatusSpriteMasks_MuzzledStatus[];
|
|||
|
||||
extern void sub_803ED30(u8, Entity *pokemon, u8, u8);
|
||||
extern void sub_804151C(Entity *pokemon, u32 r1, u8 r2);
|
||||
extern void sub_80416E0(Entity *pokemon, u32, u32);
|
||||
extern u8 sub_8042768(Entity *pokemon);
|
||||
extern u32 sub_806F62C(u32);
|
||||
extern void PlaySoundEffect(u32);
|
||||
extern u8 sub_803F428(Position *pos);
|
||||
extern void sub_8041550(Entity *pokemon, u32, u32, u32, u32, u32);
|
||||
|
||||
|
||||
void sub_80421C0(Entity *pokemon, u16 r1);
|
||||
void EntityUpdateStatusSprites(Entity *entity);
|
||||
|
||||
|
||||
extern s32 gUnknown_202EDC8;
|
||||
extern u8 gUnknown_203B40D;
|
||||
extern s16 gUnknown_2026E4E;
|
||||
|
|
@ -55,12 +66,47 @@ extern void sub_803EA10(void);
|
|||
extern void sub_8042E98(void);
|
||||
extern void sub_803E46C(u32);
|
||||
extern void sub_800EE5C(u32);
|
||||
extern u32 sub_800E890(u32 *);
|
||||
extern void sub_800EF64(void);
|
||||
extern u8 sub_800E9A8(u32);
|
||||
extern u32 sub_800E890(unkStruct_80416E0 *);
|
||||
|
||||
u32 sub_8041764(u32 *param_1, u8 param_2)
|
||||
u32 sub_8041764(unkStruct_80416E0 *param_1, u8 param_2);
|
||||
|
||||
|
||||
s32 sub_80416E0(Position32 *pos, u32 param_2, u8 param_3)
|
||||
{
|
||||
sub_800EE5C(*param_1);
|
||||
int counter;
|
||||
s32 ret;
|
||||
unkStruct_80416E0 auStack_10;
|
||||
unkStruct_2039DB0 auStack_18; // Size: 0xC
|
||||
|
||||
auStack_10.unk0 = param_2;
|
||||
auStack_10.unk4 = 0;
|
||||
auStack_10.unk8 = -1;
|
||||
|
||||
auStack_10.x = pos->x / 256;
|
||||
auStack_10.y = pos->y / 256;
|
||||
|
||||
auStack_10.unk14 = -1;
|
||||
auStack_10.unk10 = 0;
|
||||
auStack_10.unk12 = 0;
|
||||
auStack_10.unk18 = 0xffff;
|
||||
sub_8004E8C(&auStack_18);
|
||||
ret = sub_8041764(&auStack_10,0);
|
||||
if (param_3 != 0) {
|
||||
counter = 0;
|
||||
while ((counter < 100 && (sub_800E9A8(ret) != 0))) {
|
||||
sub_803E46C(0x42);
|
||||
counter++;
|
||||
}
|
||||
ret = -1;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
u32 sub_8041764(unkStruct_80416E0 *param_1, u8 param_2)
|
||||
{
|
||||
sub_800EE5C(param_1->unk0);
|
||||
sub_800EF64();
|
||||
if(param_2)
|
||||
sub_803E46C(0x42);
|
||||
|
|
@ -817,9 +863,9 @@ void sub_804218C(Entity *pokemon, Entity *target)
|
|||
sub_804151C(target, 0x2A, 1);
|
||||
}
|
||||
|
||||
void sub_804219C(Entity *pokemon)
|
||||
void sub_804219C(Position32 *pos)
|
||||
{
|
||||
sub_80416E0(pokemon, 0x90, 1);
|
||||
sub_80416E0(pos, 0x90, 1);
|
||||
}
|
||||
|
||||
void sub_80421AC(Entity *pokemon, Entity * target)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user