summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/field_map_obj.s621
-rwxr-xr-xsrc/field_map_obj.c40
2 files changed, 30 insertions, 631 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index a04e75e80..72fe317e4 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,627 +5,6 @@
.text
- thumb_func_start sub_8095B84
-sub_8095B84: @ 8095B84
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_8093FC4
- adds r0, r4, 0
- bl sub_80929BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r6, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8095B84
-
- thumb_func_start sub_8095BC8
-sub_8095BC8: @ 8095BC8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095BF4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095BC8
-
- thumb_func_start sub_8095BF4
-sub_8095BF4: @ 8095BF4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095C08
- movs r0, 0
- b _08095C18
-_08095C08:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095C18:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095BF4
-
- thumb_func_start sub_8095C20
-sub_8095C20: @ 8095C20
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095C4C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095C20
-
- thumb_func_start sub_8095C4C
-sub_8095C4C: @ 8095C4C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095C60
- movs r0, 0
- b _08095C70
-_08095C60:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095C70:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095C4C
-
- thumb_func_start sub_8095C78
-sub_8095C78: @ 8095C78
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095CA4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095C78
-
- thumb_func_start sub_8095CA4
-sub_8095CA4: @ 8095CA4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095CB8
- movs r0, 0
- b _08095CC8
-_08095CB8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095CC8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CA4
-
- thumb_func_start sub_8095CD0
-sub_8095CD0: @ 8095CD0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095CFC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CD0
-
- thumb_func_start sub_8095CFC
-sub_8095CFC: @ 8095CFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095D10
- movs r0, 0
- b _08095D20
-_08095D10:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095D20:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CFC
-
- thumb_func_start sub_8095D28
-sub_8095D28: @ 8095D28
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095D54
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095D28
-
- thumb_func_start sub_8095D54
-sub_8095D54: @ 8095D54
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095D68
- movs r0, 0
- b _08095D78
-_08095D68:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095D78:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095D54
-
- thumb_func_start sub_8095D80
-sub_8095D80: @ 8095D80
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095DAC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095D80
-
- thumb_func_start sub_8095DAC
-sub_8095DAC: @ 8095DAC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095DC0
- movs r0, 0
- b _08095DD0
-_08095DC0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095DD0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DAC
-
- thumb_func_start sub_8095DD8
-sub_8095DD8: @ 8095DD8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095E04
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DD8
-
- thumb_func_start sub_8095E04
-sub_8095E04: @ 8095E04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095E18
- movs r0, 0
- b _08095E28
-_08095E18:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095E28:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E04
-
- thumb_func_start sub_8095E30
-sub_8095E30: @ 8095E30
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095E5C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E30
-
- thumb_func_start sub_8095E5C
-sub_8095E5C: @ 8095E5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095E70
- movs r0, 0
- b _08095E80
-_08095E70:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095E80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E5C
-
- thumb_func_start sub_8095E88
-sub_8095E88: @ 8095E88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095EB4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E88
-
- thumb_func_start sub_8095EB4
-sub_8095EB4: @ 8095EB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095EC8
- movs r0, 0
- b _08095ED8
-_08095EC8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095ED8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095EB4
-
- thumb_func_start sub_8095EE0
-sub_8095EE0: @ 8095EE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095F0C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095EE0
-
- thumb_func_start sub_8095F0C
-sub_8095F0C: @ 8095F0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095F20
- movs r0, 0
- b _08095F30
-_08095F20:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095F30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F0C
-
- thumb_func_start sub_8095F38
-sub_8095F38: @ 8095F38
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095F64
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F38
-
- thumb_func_start sub_8095F64
-sub_8095F64: @ 8095F64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095F78
- movs r0, 0
- b _08095F88
-_08095F78:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095F88:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F64
-
- thumb_func_start sub_8095F90
-sub_8095F90: @ 8095F90
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl sub_8095B84
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095FBC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F90
-
- thumb_func_start sub_8095FBC
-sub_8095FBC: @ 8095FBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941B0
- lsls r0, 24
- cmp r0, 0
- bne _08095FD0
- movs r0, 0
- b _08095FE0
-_08095FD0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08095FE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095FBC
-
thumb_func_start sub_8095FE8
sub_8095FE8: @ 8095FE8
push {r4,r5,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 9092a6089..87ae05ad7 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4381,10 +4381,10 @@ static bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\
return FALSE;\
}
-maybe_shadow_1_macro(sub_8094230, maybe_shadow_1, sub_80941B0, 1, 2, 0)
-maybe_shadow_1_macro(sub_8094288, maybe_shadow_1, sub_80941B0, 2, 2, 0)
-maybe_shadow_1_macro(sub_80942E0, maybe_shadow_1, sub_80941B0, 3, 2, 0)
-maybe_shadow_1_macro(sub_8094338, maybe_shadow_1, sub_80941B0, 4, 2, 0)
+maybe_shadow_1_macro(sub_8094230, maybe_shadow_1, sub_80941B0, DIR_SOUTH, 2, 0)
+maybe_shadow_1_macro(sub_8094288, maybe_shadow_1, sub_80941B0, DIR_NORTH, 2, 0)
+maybe_shadow_1_macro(sub_80942E0, maybe_shadow_1, sub_80941B0, DIR_WEST, 2, 0)
+maybe_shadow_1_macro(sub_8094338, maybe_shadow_1, sub_80941B0, DIR_EAST, 2, 0)
void sub_8094390(struct Sprite *sprite, u16 duration)
{
@@ -4584,16 +4584,16 @@ bool8 sub_8095008(struct MapObject *mapObject, struct Sprite *sprite)
maybe_shadow_1_macro(sub_8095018, maybe_shadow_1, sub_80941B0, DIR_SOUTH, 1, 2)
maybe_shadow_1_macro(sub_8095070, maybe_shadow_1, sub_80941B0, DIR_NORTH, 1, 2)
-maybe_shadow_1_macro(sub_80950C8, maybe_shadow_1, sub_80941B0, DIR_WEST, 1, 2)
-maybe_shadow_1_macro(sub_8095120, maybe_shadow_1, sub_80941B0, DIR_EAST, 1, 2)
+maybe_shadow_1_macro(sub_80950C8, maybe_shadow_1, sub_80941B0, DIR_WEST, 1, 2)
+maybe_shadow_1_macro(sub_8095120, maybe_shadow_1, sub_80941B0, DIR_EAST, 1, 2)
maybe_shadow_1_macro(sub_8095178, maybe_shadow_1, sub_80941B0, DIR_SOUTH, 0, 0)
maybe_shadow_1_macro(sub_80951D0, maybe_shadow_1, sub_80941B0, DIR_NORTH, 0, 0)
-maybe_shadow_1_macro(sub_8095228, maybe_shadow_1, sub_80941B0, DIR_WEST, 0, 0)
-maybe_shadow_1_macro(sub_8095280, maybe_shadow_1, sub_80941B0, DIR_EAST, 0, 0)
+maybe_shadow_1_macro(sub_8095228, maybe_shadow_1, sub_80941B0, DIR_WEST, 0, 0)
+maybe_shadow_1_macro(sub_8095280, maybe_shadow_1, sub_80941B0, DIR_EAST, 0, 0)
maybe_shadow_1_macro(sub_80952D8, maybe_shadow_1, sub_80941E0, DIR_SOUTH, 0, 2)
maybe_shadow_1_macro(sub_8095330, maybe_shadow_1, sub_80941E0, DIR_NORTH, 0, 2)
-maybe_shadow_1_macro(sub_8095388, maybe_shadow_1, sub_80941E0, DIR_WEST, 0, 2)
-maybe_shadow_1_macro(sub_80953E0, maybe_shadow_1, sub_80941E0, DIR_EAST, 0, 2)
+maybe_shadow_1_macro(sub_8095388, maybe_shadow_1, sub_80941E0, DIR_WEST, 0, 2)
+maybe_shadow_1_macro(sub_80953E0, maybe_shadow_1, sub_80941E0, DIR_EAST, 0, 2)
bool8 sub_8095438(struct MapObject *mapObject, struct Sprite *sprite)
{
@@ -4913,3 +4913,23 @@ static bool8 sub_8095B64(struct MapObject *mapObject, struct Sprite *sprite)
}
return FALSE;
}
+
+void sub_8095B84(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed, u8 a4)
+{
+ sub_8093FC4(mapObject, sprite, direction, speed, a4);
+ StartSpriteAnimIfDifferent(sprite, sub_80929BC(direction));
+ DoShadowFieldEffect(mapObject);
+}
+
+maybe_shadow_1_macro(sub_8095BC8, sub_8095B84, sub_80941B0, DIR_SOUTH, 0, 1)
+maybe_shadow_1_macro(sub_8095C20, sub_8095B84, sub_80941B0, DIR_NORTH, 0, 1)
+maybe_shadow_1_macro(sub_8095C78, sub_8095B84, sub_80941B0, DIR_WEST, 0, 1)
+maybe_shadow_1_macro(sub_8095CD0, sub_8095B84, sub_80941B0, DIR_EAST, 0, 1)
+maybe_shadow_1_macro(sub_8095D28, sub_8095B84, sub_80941B0, DIR_SOUTH, 1, 1)
+maybe_shadow_1_macro(sub_8095D80, sub_8095B84, sub_80941B0, DIR_NORTH, 1, 1)
+maybe_shadow_1_macro(sub_8095DD8, sub_8095B84, sub_80941B0, DIR_WEST, 1, 1)
+maybe_shadow_1_macro(sub_8095E30, sub_8095B84, sub_80941B0, DIR_EAST, 1, 1)
+maybe_shadow_1_macro(sub_8095E88, sub_8095B84, sub_80941B0, DIR_SOUTH, 2, 0)
+maybe_shadow_1_macro(sub_8095EE0, sub_8095B84, sub_80941B0, DIR_NORTH, 2, 0)
+maybe_shadow_1_macro(sub_8095F38, sub_8095B84, sub_80941B0, DIR_WEST, 2, 0)
+maybe_shadow_1_macro(sub_8095F90, sub_8095B84, sub_80941B0, DIR_EAST, 2, 0)