summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_811DA74.s127
-rw-r--r--src/battle_811DA74.c24
2 files changed, 24 insertions, 127 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
index 4767fa1db..a46926abf 100644
--- a/asm/battle_811DA74.s
+++ b/asm/battle_811DA74.s
@@ -6,133 +6,6 @@
.text
- thumb_func_start sub_811F6D8
-sub_811F6D8: @ 811F6D8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811F7CC @ =gUnknown_02024A6A
- mov r8, r0
- ldr r6, _0811F7D0 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0811F7D4 @ =gPlayerParty
- adds r0, r4
- bl sub_80318FC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F7D8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F7DC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _0811F7E0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E8 @ =gBattleMonForms
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldr r1, _0811F7EC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F7F0 @ =sub_811DDE8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F7CC: .4byte gUnknown_02024A6A
-_0811F7D0: .4byte gUnknown_02024A60
-_0811F7D4: .4byte gPlayerParty
-_0811F7D8: .4byte gUnknown_02024E8C
-_0811F7DC: .4byte gUnknown_02024BE0
-_0811F7E0: .4byte gSprites
-_0811F7E4: .4byte 0x0000ff10
-_0811F7E8: .4byte gBattleMonForms
-_0811F7EC: .4byte gUnknown_03004330
-_0811F7F0: .4byte sub_811DDE8
- thumb_func_end sub_811F6D8
-
thumb_func_start sub_811F7F4
sub_811F7F4: @ 811F7F4
push {r4-r6,lr}
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 3f1bb9266..76d9609e7 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -43,11 +43,13 @@ extern u32 gUnknown_02024A64;
extern u16 gUnknown_02024A6A[];
extern u8 gUnknown_02024BE0[];
extern u8 gUnknown_02024E6D;
+extern struct SpriteTemplate gUnknown_02024E8C;
extern struct Window gUnknown_03004210;
extern MainCallback gUnknown_030042D0;
extern void (*gUnknown_03004330[])(void);
extern u8 gUnknown_03004340[];
extern u8 gUnknown_0300434C[];
+extern u8 gBattleMonForms[];
extern void (*const gUnknown_083FE4F4[])(void);
extern u8 unk_2000000[];
@@ -55,6 +57,10 @@ extern u8 unk_2000000[];
#define EWRAM_17800 ((u8 *)(unk_2000000 + 0x17800))
#define EWRAM_17810 ((struct UnknownStruct2 *)(unk_2000000 + 0x17810))
+extern void sub_80318FC();
+extern u8 sub_8077ABC();
+extern u8 sub_8077F68();
+extern u8 sub_8079E90();
extern void nullsub_10();
extern void sub_8045A5C();
extern void sub_804777C();
@@ -938,3 +944,21 @@ void sub_811F664(void)
dst[i] = gUnknown_02023A60[gUnknown_02024A60][3 + i];
dp01_tbl3_exec_completed();
}
+
+void sub_811F6D8(void)
+{
+ sub_80318FC(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60);
+ GetMonSpriteTemplate_803C56C(
+ GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_SPECIES),
+ battle_get_per_side_status(gUnknown_02024A60));
+ gUnknown_02024BE0[gUnknown_02024A60] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(gUnknown_02024A60, 2),
+ sub_8077F68(gUnknown_02024A60),
+ sub_8079E90(gUnknown_02024A60));
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.x = -240;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].data0 = gUnknown_02024A60;
+ gSprites[gUnknown_02024BE0[gUnknown_02024A60]].oam.paletteNum = gUnknown_02024A60;
+ StartSpriteAnim(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], gBattleMonForms[gUnknown_02024A60]);
+ gUnknown_03004330[gUnknown_02024A60] = sub_811DDE8;
+}