mirror of https://github.com/pret/pokeemerald.git
Ten more functions (remaining function count is 99)
This commit is contained in:
parent
7af9833883
commit
4b04e92e8b
|
@ -5,227 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8095548
|
||||
sub_8095548: @ 8095548
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
ldrb r0, [r4, 0x6]
|
||||
cmp r0, 0x3F
|
||||
bne _0809555E
|
||||
adds r0, r4, 0
|
||||
bl sub_80B4578
|
||||
movs r0, 0
|
||||
b _08095586
|
||||
_0809555E:
|
||||
subs r0, 0x39
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bhi _08095580
|
||||
adds r0, r4, 0
|
||||
bl sub_8155D78
|
||||
movs r0, 0x1
|
||||
strh r0, [r5, 0x32]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_809558C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _08095586
|
||||
_08095580:
|
||||
movs r0, 0x2
|
||||
strh r0, [r5, 0x32]
|
||||
movs r0, 0x1
|
||||
_08095586:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8095548
|
||||
|
||||
thumb_func_start sub_809558C
|
||||
sub_809558C: @ 809558C
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
bl sub_8155DA0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0809559E
|
||||
movs r0, 0
|
||||
b _080955A4
|
||||
_0809559E:
|
||||
movs r0, 0x2
|
||||
strh r0, [r4, 0x32]
|
||||
movs r0, 0x1
|
||||
_080955A4:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_809558C
|
||||
|
||||
thumb_func_start sub_80955AC
|
||||
sub_80955AC: @ 80955AC
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
bl obj_anim_image_set_and_seek
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0x32]
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80955AC
|
||||
|
||||
thumb_func_start sub_80955C8
|
||||
sub_80955C8: @ 80955C8
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
adds r0, r4, 0
|
||||
bl sub_80979BC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080955E4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x20
|
||||
bl SetFieldObjectStepTimer
|
||||
movs r0, 0x2
|
||||
strh r0, [r4, 0x32]
|
||||
_080955E4:
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80955C8
|
||||
|
||||
thumb_func_start sub_80955EC
|
||||
sub_80955EC: @ 80955EC
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
ldrb r2, [r4, 0x1]
|
||||
lsls r1, r2, 26
|
||||
lsrs r1, 31
|
||||
movs r0, 0x1
|
||||
eors r1, r0
|
||||
lsls r1, 5
|
||||
subs r0, 0x22
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
adds r0, r5, 0
|
||||
bl RunFieldObjectStepTimer
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809561E
|
||||
ldrb r0, [r4, 0x1]
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
movs r0, 0x3
|
||||
strh r0, [r5, 0x32]
|
||||
_0809561E:
|
||||
movs r0, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80955EC
|
||||
|
||||
thumb_func_start sub_8095628
|
||||
sub_8095628: @ 8095628
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
bl obj_anim_image_set_and_seek
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0x32]
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8095628
|
||||
|
||||
thumb_func_start sub_8095644
|
||||
sub_8095644: @ 8095644
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
adds r0, r4, 0
|
||||
bl sub_80979BC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08095660
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x20
|
||||
bl SetFieldObjectStepTimer
|
||||
movs r0, 0x2
|
||||
strh r0, [r4, 0x32]
|
||||
_08095660:
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8095644
|
||||
|
||||
thumb_func_start sub_8095668
|
||||
sub_8095668: @ 8095668
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
ldrb r2, [r4, 0x1]
|
||||
lsls r1, r2, 26
|
||||
lsrs r1, 31
|
||||
movs r0, 0x1
|
||||
eors r1, r0
|
||||
lsls r1, 5
|
||||
subs r0, 0x22
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
adds r0, r5, 0
|
||||
bl RunFieldObjectStepTimer
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809569A
|
||||
ldrb r0, [r4, 0x1]
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
movs r0, 0x3
|
||||
strh r0, [r5, 0x32]
|
||||
_0809569A:
|
||||
movs r0, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8095668
|
||||
|
||||
thumb_func_start sub_80956A4
|
||||
sub_80956A4: @ 80956A4
|
||||
ldrb r2, [r0, 0x3]
|
||||
movs r3, 0x4
|
||||
orrs r2, r3
|
||||
strb r2, [r0, 0x3]
|
||||
movs r0, 0x1
|
||||
strh r0, [r1, 0x32]
|
||||
bx lr
|
||||
thumb_func_end sub_80956A4
|
||||
|
||||
thumb_func_start sub_80956B4
|
||||
sub_80956B4: @ 80956B4
|
||||
ldrb r3, [r0, 0x3]
|
||||
movs r2, 0x5
|
||||
negs r2, r2
|
||||
ands r2, r3
|
||||
strb r2, [r0, 0x3]
|
||||
movs r0, 0x1
|
||||
strh r0, [r1, 0x32]
|
||||
bx lr
|
||||
thumb_func_end sub_80956B4
|
||||
|
||||
thumb_func_start sub_80956C4
|
||||
sub_80956C4: @ 80956C4
|
||||
push {r4,lr}
|
||||
|
|
|
@ -11,5 +11,6 @@
|
|||
|
||||
// Exported ROM declarations
|
||||
u8 sub_8154228(void);
|
||||
bool8 sub_8155DA0(struct MapObject *);
|
||||
|
||||
#endif //GUARD_FIELD_EFFECT_HELPERS_H
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef GUARD_TRAINER_SEE_H
|
||||
#define GUARD_TRAINER_SEE_H
|
||||
|
||||
void sub_80B4578(struct MapObject *);
|
||||
void sub_8155D78(struct MapObject *);
|
||||
|
||||
#endif //GUARD_TRAINER_SEE_H
|
|
@ -21,6 +21,7 @@
|
|||
#include "field_effect.h"
|
||||
#include "field_effect_helpers.h"
|
||||
#include "field_camera.h"
|
||||
#include "trainer_see.h"
|
||||
#include "field_map_obj.h"
|
||||
|
||||
#define NUM_FIELD_MAP_OBJECT_TEMPLATES 0x51
|
||||
|
@ -120,6 +121,7 @@ static void FieldObjectExecSpecialAnim(struct MapObject *, struct Sprite *);
|
|||
static bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *, s16, s16);
|
||||
static bool8 IsMetatileDirectionallyImpassable(struct MapObject *, s16, s16, u8);
|
||||
static bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *, s16, s16);
|
||||
static bool8 sub_809558C(struct MapObject *, struct Sprite *);
|
||||
|
||||
// ROM data
|
||||
|
||||
|
@ -4670,3 +4672,100 @@ bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
|
|||
sprite->data2 = 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8095548(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
if (mapObject->animPattern == 0x3F)
|
||||
{
|
||||
sub_80B4578(mapObject);
|
||||
return FALSE;
|
||||
}
|
||||
if (mapObject->animPattern != 0x39 && mapObject->animPattern != 0x3A)
|
||||
{
|
||||
sprite->data2 = 2;
|
||||
return TRUE;
|
||||
}
|
||||
sub_8155D78(mapObject);
|
||||
sprite->data2 = 1;
|
||||
return sub_809558C(mapObject, sprite);
|
||||
}
|
||||
|
||||
static bool8 sub_809558C(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
if (sub_8155DA0(mapObject))
|
||||
{
|
||||
sprite->data2 = 2;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_80955AC(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
obj_anim_image_set_and_seek(sprite, 1, 0);
|
||||
sprite->data2 = 1;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_80955C8(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
if (sub_80979BC(sprite))
|
||||
{
|
||||
SetFieldObjectStepTimer(sprite, 32);
|
||||
sprite->data2 = 2;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_80955EC(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
mapObject->mapobj_bit_13 ^= TRUE;
|
||||
if (RunFieldObjectStepTimer(sprite))
|
||||
{
|
||||
mapObject->mapobj_bit_13 = TRUE;
|
||||
sprite->data2 = 3;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8095628(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
obj_anim_image_set_and_seek(sprite, 1, 0);
|
||||
sprite->data2 = 1;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8095644(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
if (sub_80979BC(sprite))
|
||||
{
|
||||
SetFieldObjectStepTimer(sprite, 32);
|
||||
sprite->data2 = 2;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8095668(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
mapObject->mapobj_bit_13 ^= TRUE;
|
||||
if (RunFieldObjectStepTimer(sprite))
|
||||
{
|
||||
mapObject->mapobj_bit_13 = TRUE;
|
||||
sprite->data2 = 3;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_80956A4(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
mapObject->mapobj_bit_26 = TRUE;
|
||||
sprite->data2 = 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80956B4(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
mapObject->mapobj_bit_26 = FALSE;
|
||||
sprite->data2 = 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue