summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/field_map_obj.s83
-rw-r--r--include/metatile_behavior.h11
-rwxr-xr-xsrc/field_map_obj.c12
3 files changed, 23 insertions, 83 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 333621879..1da91d1f5 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,89 +5,6 @@
.text
- thumb_func_start FieldObjectCB_CopyPlayer2
-FieldObjectCB_CopyPlayer2: @ 8092494
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gMapObjects
- adds r0, r2
- ldr r2, =sub_80924B8
- bl FieldObjectStep
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_CopyPlayer2
-
- thumb_func_start sub_80924B8
-sub_80924B8: @ 80924B8
- push {r4,lr}
- ldr r3, =gUnknown_0850DA90
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80924B8
-
- thumb_func_start mss_08062EA4
-mss_08062EA4: @ 80924D8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, =gMapObjects
- ldr r3, =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _080924F8
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _08092504
-_080924F8:
- movs r0, 0
- b _0809252C
- .pool
-_08092504:
- ldr r5, =gUnknown_0850DA64
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =sub_8088E64
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0809252C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end mss_08062EA4
-
thumb_func_start FieldObjectCB_TreeDisguise
@ void FieldObjectCB_TreeDisguise(struct obj *object)
FieldObjectCB_TreeDisguise: @ 809253C
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
new file mode 100644
index 000000000..5ed36c690
--- /dev/null
+++ b/include/metatile_behavior.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_METATILE_BEHAVIOR_H
+#define GUARD_METATILE_BEHAVIOR_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+bool8 sub_8088E64(u8);
+
+#endif //GUARD_METATILE_BEHAVIOR_H
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 42b18a1ac..c35105b44 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -17,6 +17,7 @@
#include "field_ground_effect.h"
#include "map_obj_8097404.h"
#include "mauville_old_man.h"
+#include "metatile_behavior.h"
#include "field_effect.h"
#include "field_effect_helpers.h"
#include "field_map_obj.h"
@@ -3357,6 +3358,17 @@ bool8 oac_hopping(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD
return TRUE;
}
+field_object_step(CopyPlayer2, gUnknown_0850DA90)
+
+bool8 mss_08062EA4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2)
+ {
+ return FALSE;
+ }
+ return gUnknown_0850DA64[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), sub_8088E64);
+}
+
asm(".section .text.get_face_direction_anim_id");
void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);