summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-06-07 12:00:57 -0500
committercamthesaxman <cameronghall@cox.net>2017-06-07 12:00:57 -0500
commit5d4a042fa654930450f73f0af3abf14df2daf2ef (patch)
treece7d18e30b339d1e510dc8f253dedab47c56e83d
parenteb492eb014397ce2b9933e024bea62a32db5fc5d (diff)
decompile sub_811F9D0
-rw-r--r--asm/battle_811DA74.s65
-rw-r--r--src/battle_811DA74.c23
2 files changed, 22 insertions, 66 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
index b31b05366..bf02e6422 100644
--- a/asm/battle_811DA74.s
+++ b/asm/battle_811DA74.s
@@ -6,71 +6,6 @@
.text
- thumb_func_start sub_811F9D0
-sub_811F9D0: @ 811F9D0
- push {r4-r6,lr}
- ldr r1, _0811FA00 @ =gUnknown_02023A60
- ldr r6, _0811FA04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0811FA14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811FA08 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0811FA0C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FA10 @ =sub_811FA5C
- str r1, [r0]
- b _0811FA4A
- .align 2, 0
-_0811FA00: .4byte gUnknown_02023A60
-_0811FA04: .4byte gUnknown_02024A60
-_0811FA08: .4byte 0x02017810
-_0811FA0C: .4byte gUnknown_03004330
-_0811FA10: .4byte sub_811FA5C
-_0811FA14:
- ldr r5, _0811FA50 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811FA54 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811FA58 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811FA4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FA50: .4byte gUnknown_02024BE0
-_0811FA54: .4byte gSprites
-_0811FA58: .4byte gUnknown_03004340
- thumb_func_end sub_811F9D0
-
thumb_func_start sub_811FA5C
sub_811FA5C: @ 811FA5C
push {r4,r5,lr}
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 0bef8b3af..1cb2d620e 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -21,7 +21,11 @@ struct UnknownStruct2
{
u8 unk0;
u8 unk1;
- u8 filler2[7];
+ //u8 filler2[7];
+ u8 filler2[2];
+ u8 unk4;
+ u8 filler5[4];
+
u8 unk9;
u8 fillerA[2];
};
@@ -87,6 +91,7 @@ void dp01_tbl3_exec_completed(void);
u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b);
void sub_811EC68(u8);
void sub_811F864(u8, u8);
+void sub_811FA5C(void);
void nullsub_74(void)
{
@@ -999,3 +1004,19 @@ void sub_811F864(u8 a, u8 b)
gSprites[gUnknown_02024BE0[a]].callback = SpriteCallbackDummy;
gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFF);
}
+
+void sub_811F9D0(void)
+{
+ if (gUnknown_02023A60[gUnknown_02024A60][1] == 0)
+ {
+ EWRAM_17810[gUnknown_02024A60].unk4 = 0;
+ gUnknown_03004330[gUnknown_02024A60] = sub_811FA5C;
+ }
+ else
+ {
+ FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
+ DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]);
+ sub_8043DB0(gUnknown_03004340[gUnknown_02024A60]);
+ dp01_tbl3_exec_completed();
+ }
+}