mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 19:54:21 +01:00
Ten more functions (remaining function count is 99)
This commit is contained in:
parent
7af9833883
commit
4b04e92e8b
@ -5,227 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_80956C4
|
||||||
sub_80956C4: @ 80956C4
|
sub_80956C4: @ 80956C4
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
@ -11,5 +11,6 @@
|
|||||||
|
|
||||||
// Exported ROM declarations
|
// Exported ROM declarations
|
||||||
u8 sub_8154228(void);
|
u8 sub_8154228(void);
|
||||||
|
bool8 sub_8155DA0(struct MapObject *);
|
||||||
|
|
||||||
#endif //GUARD_FIELD_EFFECT_HELPERS_H
|
#endif //GUARD_FIELD_EFFECT_HELPERS_H
|
||||||
|
7
include/trainer_see.h
Normal file
7
include/trainer_see.h
Normal file
@ -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.h"
|
||||||
#include "field_effect_helpers.h"
|
#include "field_effect_helpers.h"
|
||||||
#include "field_camera.h"
|
#include "field_camera.h"
|
||||||
|
#include "trainer_see.h"
|
||||||
#include "field_map_obj.h"
|
#include "field_map_obj.h"
|
||||||
|
|
||||||
#define NUM_FIELD_MAP_OBJECT_TEMPLATES 0x51
|
#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 IsCoordOutsideFieldObjectMovementRect(struct MapObject *, s16, s16);
|
||||||
static bool8 IsMetatileDirectionallyImpassable(struct MapObject *, s16, s16, u8);
|
static bool8 IsMetatileDirectionallyImpassable(struct MapObject *, s16, s16, u8);
|
||||||
static bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *, s16, s16);
|
static bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *, s16, s16);
|
||||||
|
static bool8 sub_809558C(struct MapObject *, struct Sprite *);
|
||||||
|
|
||||||
// ROM data
|
// ROM data
|
||||||
|
|
||||||
@ -4670,3 +4672,100 @@ bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
|
|||||||
sprite->data2 = 1;
|
sprite->data2 = 1;
|
||||||
return TRUE;
|
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
Block a user