summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-12-02 16:48:04 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-12-02 16:48:04 -0500
commit60b8858b19f50751d1222abd0c662d1ee938b3ce (patch)
treea91fda8c62e5ef5fc7984a12ec26c398b0c7effb
parent9e34e6b53d8c21c79e67c7b46ac658506abb4ed3 (diff)
sub_81461D8
-rw-r--r--asm/mevent_8145654.s86
-rw-r--r--include/pokemon_icon.h1
-rw-r--r--src/mevent_8145654.c25
3 files changed, 26 insertions, 86 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s
index e8af5eeae..152a8759a 100644
--- a/asm/mevent_8145654.s
+++ b/asm/mevent_8145654.s
@@ -5,92 +5,6 @@
.text
- thumb_func_start sub_81461D8
-sub_81461D8: @ 81461D8
- push {r4-r7,lr}
- movs r6, 0
- ldr r4, =gUnknown_203F3C8
- ldr r0, [r4]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081461FC
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl sub_8097070
-_081461FC:
- ldr r0, [r4]
- ldrb r2, [r0, 0x9]
- cmp r2, 0
- beq _08146274
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _08146274
- cmp r6, r2
- bcs _08146264
- adds r7, r4, 0
-_08146214:
- ldr r0, [r7]
- lsls r4, r6, 1
- ldr r1, =0x0000017d
- adds r0, r1
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08146256
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- bl DestroySprite
- ldr r1, [r7]
- ldr r2, =0x0000017d
- adds r0, r1, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08146256
- adds r2, 0x1
- adds r0, r1, r2
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl sub_8097070
-_08146256:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [r7]
- ldrb r0, [r0, 0x9]
- cmp r6, r0
- bcc _08146214
-_08146264:
- movs r4, 0x80
- lsls r4, 8
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_08146274:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81461D8
-
@ file boundary maybe
thumb_func_start sub_8146288
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index cef408046..593715b7d 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -14,5 +14,6 @@ void sub_809707C(void);
void FreeMonIconPalettes(void);
u16 sub_8096FD4(u16);
u8 sub_8096ECC(u16, void (*)(struct Sprite *), s16, s16, u8, bool32);
+void sub_8097070(struct Sprite *);
#endif // GUARD_POKEMON_ICON_H
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index db714ce80..116db2e0e 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -361,3 +361,28 @@ void sub_8146060(void)
}
}
}
+
+void sub_81461D8(void)
+{
+ u8 r6 = 0;
+ if (gUnknown_203F3C8->unk_017C != 0xFF)
+ sub_8097070(&gSprites[gUnknown_203F3C8->unk_017C]);
+ if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1)
+ {
+ for (; r6 < gUnknown_203F3C8->unk_0000.unk_09; r6++)
+ {
+ if (gUnknown_203F3C8->unk_017D[r6][0] != 0xFF)
+ {
+ DestroySprite(&gSprites[gUnknown_203F3C8->unk_017D[r6][0]]);
+ // This might be a typo. Uncomment the next line, and comment the one that follows, to get the presumed intended behavior.
+ // if (gUnknown_203F3C8->unk_017D[r6][1] != 0xFF)
+ if (gUnknown_203F3C8->unk_017D[r6][0] != 0xFF)
+ {
+ sub_8097070(&gSprites[gUnknown_203F3C8->unk_017D[r6][1]]);
+ }
+ }
+ }
+ FreeSpriteTilesByTag(0x8000);
+ FreeSpritePaletteByTag(0x8000);
+ }
+}