diff options
-rw-r--r-- | asm/battle_811DA74.s | 127 | ||||
-rw-r--r-- | src/battle_811DA74.c | 24 |
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; +} |