summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/field_map_obj.s79
-rw-r--r--src/field_map_obj.c36
2 files changed, 18 insertions, 97 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 17c2406cf..ae61cd100 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -6,85 +6,6 @@
.text
- thumb_func_start sub_805AAB0
-sub_805AAB0: @ 805AAB0
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _0805AB4C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x54]
- mov r9, r0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805AB50 @ =gSprites
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r1, [r4, 0x1]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r6, 0x4
- orrs r0, r6
- strb r0, [r4]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r0, [r4, 0x1]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r6
- strb r0, [r4]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AB4C: .4byte gFieldEffectObjectTemplatePointers
-_0805AB50: .4byte gSprites
- thumb_func_end sub_805AAB0
-
thumb_func_start sub_805AB54
sub_805AB54: @ 805AB54
push {lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 60c512709..32d34d54d 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -20,7 +20,7 @@ void npc_clear_ids_and_state(struct MapObject *mapObj)
void npcs_clear_ids_and_state(void)
{
u8 i;
-
+
for(i = 0; i < 16; i++)
npc_clear_ids_and_state(&gMapObjects[i]);
}
@@ -33,21 +33,21 @@ void sub_805AA98(void)
sub_805AAB0();
}
-/*void sub_805AAB0(void)
+void sub_805AAB0(void)
{
- u8 spriteVar1;
- u8 spriteVar2;
-
- spriteVar1 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 0x1F);
-
- gSprites[spriteVar1].oam.affineMode = 1;
- InitSpriteAffineAnim(&gSprites[spriteVar1]);
- StartSpriteAffineAnim(&gSprites[spriteVar1], 0);
-
- spriteVar2 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 0x1F);
-
- gSprites[spriteVar2].oam.affineMode = 4;
- InitSpriteAffineAnim(&gSprites[spriteVar2]);
- StartSpriteAffineAnim(&gSprites[spriteVar2], 1);
- gSprites[spriteVar2].coordOffsetEnabled = 1;
-}*/
+ u8 spriteId;
+
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 0x1F);
+
+ gSprites[spriteId].oam.affineMode = 1;
+ InitSpriteAffineAnim(&gSprites[spriteId]);
+ StartSpriteAffineAnim(&gSprites[spriteId], 0);
+ gSprites[spriteId].invisible = 1;
+
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 0x1F);
+
+ gSprites[spriteId].oam.affineMode = 1;
+ InitSpriteAffineAnim(&gSprites[spriteId]);
+ StartSpriteAffineAnim(&gSprites[spriteId], 1);
+ gSprites[spriteId].invisible = 1;
+}