summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-17 13:06:03 -0400
committerscnorton <scnorton@biociphers.org>2017-09-17 13:06:03 -0400
commit7af98338830aaeb33be4c28dc26f14cc788f9df7 (patch)
tree20bec151f008e3e2fa5644384f79a583aecc41f0
parent513e3cd9bcd7628b9f2f24ab0e7a5f78763cf44e (diff)
Additional script object callbacks
-rwxr-xr-xasm/field_map_obj.s105
-rwxr-xr-xsrc/field_map_obj.c45
2 files changed, 45 insertions, 105 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index f560a9372..526b37db6 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,111 +5,6 @@
.text
- thumb_func_start sub_8095490
-@ int sub_8095490(npc_state *npcState, int a2)
-sub_8095490: @ 8095490
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095490
-
- thumb_func_start sub_80954BC
-sub_80954BC: @ 80954BC
- ldrb r2, [r0, 0x1]
- movs r3, 0x20
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80954BC
-
- thumb_func_start sub_80954CC
-sub_80954CC: @ 80954CC
- ldrb r3, [r0, 0x1]
- movs r2, 0x21
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80954CC
-
- thumb_func_start do_exclamation_mark_bubble_1
-do_exclamation_mark_bubble_1: @ 80954DC
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, =gFieldEffectSpawnParams
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_exclamation_mark_bubble_1
-
- thumb_func_start do_exclamation_mark_bubble_2
-do_exclamation_mark_bubble_2: @ 8095500
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, =gFieldEffectSpawnParams
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x21
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_exclamation_mark_bubble_2
-
- thumb_func_start do_heart_bubble
-do_heart_bubble: @ 8095524
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, =gFieldEffectSpawnParams
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x2E
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_heart_bubble
-
thumb_func_start sub_8095548
sub_8095548: @ 8095548
push {r4,r5,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index b337349a2..432eb5b47 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4625,3 +4625,48 @@ bool8 sub_8095480(struct MapObject *mapObject, struct Sprite *sprite)
sprite->data2 = 1;
return TRUE;
}
+
+bool8 sub_8095490(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_12 = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->inanimate;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_80954BC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_13 = TRUE;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_80954CC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_13 = FALSE;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1);
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2);
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
+ FieldEffectStart(FLDEFF_HEART_ICON);
+ sprite->data2 = 1;
+ return TRUE;
+}