sub_80940C4 which may or may not be a meme
This commit is contained in:
parent
bf9a00250b
commit
8ee004b9b1
3 changed files with 29 additions and 97 deletions
|
@ -5,103 +5,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_80940C4
|
|
||||||
@ int sub_80940C4(int a1, int a2, int a3)
|
|
||||||
sub_80940C4: @ 80940C4
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r6, r0, 0
|
|
||||||
adds r7, r1, 0
|
|
||||||
adds r4, r2, 0
|
|
||||||
ldr r1, =gUnknown_0850DFC2
|
|
||||||
add r0, sp, 0x4
|
|
||||||
movs r2, 0x6
|
|
||||||
bl memcpy
|
|
||||||
adds r0, r7, 0
|
|
||||||
bl _call_via_r4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
mov r8, r0
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08094154
|
|
||||||
movs r1, 0x36
|
|
||||||
ldrsh r0, [r7, r1]
|
|
||||||
lsls r0, 1
|
|
||||||
add r0, sp
|
|
||||||
adds r0, 0x4
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r0, [r0, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08094154
|
|
||||||
add r4, sp, 0xC
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r4]
|
|
||||||
mov r5, sp
|
|
||||||
adds r5, 0xE
|
|
||||||
strh r0, [r5]
|
|
||||||
ldrb r0, [r6, 0x18]
|
|
||||||
lsrs r0, 4
|
|
||||||
movs r2, 0x36
|
|
||||||
ldrsh r1, [r7, r2]
|
|
||||||
lsls r1, 1
|
|
||||||
add r1, sp
|
|
||||||
adds r1, 0x4
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r3, [r1, r2]
|
|
||||||
str r3, [sp]
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r2, r5, 0
|
|
||||||
bl sub_8092F88
|
|
||||||
ldrh r1, [r4]
|
|
||||||
ldrh r0, [r6, 0x10]
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 16
|
|
||||||
asrs r1, 16
|
|
||||||
ldrh r2, [r5]
|
|
||||||
ldrh r0, [r6, 0x12]
|
|
||||||
adds r2, r0
|
|
||||||
lsls r2, 16
|
|
||||||
asrs r2, 16
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl npc_coords_shift
|
|
||||||
ldrb r0, [r6]
|
|
||||||
movs r1, 0x4
|
|
||||||
orrs r0, r1
|
|
||||||
movs r1, 0x10
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r6]
|
|
||||||
b _08094178
|
|
||||||
.pool
|
|
||||||
_08094154:
|
|
||||||
mov r1, r8
|
|
||||||
cmp r1, 0xFF
|
|
||||||
bne _08094178
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl npc_coords_shift_still
|
|
||||||
ldrb r0, [r6]
|
|
||||||
movs r1, 0x8
|
|
||||||
orrs r0, r1
|
|
||||||
movs r1, 0x20
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r6]
|
|
||||||
adds r2, r7, 0
|
|
||||||
adds r2, 0x2C
|
|
||||||
ldrb r0, [r2]
|
|
||||||
movs r1, 0x40
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r2]
|
|
||||||
_08094178:
|
|
||||||
mov r0, r8
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80940C4
|
|
||||||
|
|
||||||
thumb_func_start sub_8094188
|
thumb_func_start sub_8094188
|
||||||
sub_8094188: @ 8094188
|
sub_8094188: @ 8094188
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|
|
@ -45,5 +45,6 @@ extern const u8 gUnknown_0850DBA0[5];
|
||||||
extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *);
|
extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *);
|
||||||
extern u8 (*const gUnknown_0850DEE8[5])(u8);
|
extern u8 (*const gUnknown_0850DEE8[5])(u8);
|
||||||
extern const s16 gUnknown_0850DFBC[3];
|
extern const s16 gUnknown_0850DFBC[3];
|
||||||
|
extern const s16 gUnknown_0850DFC2[3];
|
||||||
|
|
||||||
#endif //GUARD_DATA3_H
|
#endif //GUARD_DATA3_H
|
||||||
|
|
|
@ -4288,3 +4288,31 @@ void maybe_shadow_1(struct MapObject *mapObject, struct Sprite *sprite, u8 direc
|
||||||
npc_apply_anim_looping(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18));
|
npc_apply_anim_looping(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18));
|
||||||
DoShadowFieldEffect(mapObject);
|
DoShadowFieldEffect(mapObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 sub_80940C4(struct MapObject *mapObject, struct Sprite *sprite, u8 callback(struct Sprite *))
|
||||||
|
{
|
||||||
|
s16 displacements[ARRAY_COUNT(gUnknown_0850DFC2)];
|
||||||
|
s16 x;
|
||||||
|
s16 y;
|
||||||
|
u8 result;
|
||||||
|
|
||||||
|
memcpy(displacements, gUnknown_0850DFC2, sizeof gUnknown_0850DFC2);
|
||||||
|
result = callback(sprite);
|
||||||
|
if (result == 1 && displacements[sprite->data4] != 0)
|
||||||
|
{
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
sub_8092F88(mapObject->placeholder18, &x, &y, displacements[sprite->data4], displacements[sprite->data4]);
|
||||||
|
npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y);
|
||||||
|
mapObject->mapobj_bit_2 = TRUE;
|
||||||
|
mapObject->mapobj_bit_4 = TRUE;
|
||||||
|
}
|
||||||
|
else if (result == 0xFF)
|
||||||
|
{
|
||||||
|
npc_coords_shift_still(mapObject);
|
||||||
|
mapObject->mapobj_bit_3 = TRUE;
|
||||||
|
mapObject->mapobj_bit_5 = TRUE;
|
||||||
|
sprite->animPaused = TRUE;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue