diff options
author | camthesaxman <cameronghall@cox.net> | 2017-06-07 11:52:47 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-06-07 11:52:47 -0500 |
commit | eb492eb014397ce2b9933e024bea62a32db5fc5d (patch) | |
tree | 7eefd1c07a946b706cff6d24d5f1175e0b22ed26 | |
parent | 67a95d8e9619b5b239c21043bf003a2252dedd2c (diff) |
decompile sub_811F864
-rw-r--r-- | asm/battle_811DA74.s | 166 | ||||
-rw-r--r-- | src/battle_811DA74.c | 30 |
2 files changed, 28 insertions, 168 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s index 7ef319349..b31b05366 100644 --- a/asm/battle_811DA74.s +++ b/asm/battle_811DA74.s @@ -6,172 +6,6 @@ .text - thumb_func_start sub_811F864 -sub_811F864: @ 811F864 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8032AA8 - ldr r0, _0811F9A8 @ =gUnknown_02024A6A - lsls r2, r6, 1 - adds r2, r0 - ldr r0, _0811F9AC @ =gUnknown_02023A60 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811F9B0 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _0811F9B4 @ =sub_80312F0 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0811F9B8 @ =gUnknown_0300434C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _0811F9BC @ =gUnknown_02024E8C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _0811F9C0 @ =gUnknown_02024BE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0811F9C4 @ =gSprites - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F9C8 @ =gBattleMonForms - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0811F9CC @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_8046400 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F9A8: .4byte gUnknown_02024A6A -_0811F9AC: .4byte gUnknown_02023A60 -_0811F9B0: .4byte gPlayerParty -_0811F9B4: .4byte sub_80312F0 -_0811F9B8: .4byte gUnknown_0300434C -_0811F9BC: .4byte gUnknown_02024E8C -_0811F9C0: .4byte gUnknown_02024BE0 -_0811F9C4: .4byte gSprites -_0811F9C8: .4byte gBattleMonForms -_0811F9CC: .4byte SpriteCallbackDummy - thumb_func_end sub_811F864 - thumb_func_start sub_811F9D0 sub_811F9D0: @ 811F9D0 push {r4-r6,lr} diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c index 0d49c33bd..0bef8b3af 100644 --- a/src/battle_811DA74.c +++ b/src/battle_811DA74.c @@ -57,6 +57,9 @@ extern u8 unk_2000000[]; #define EWRAM_17800 ((u8 *)(unk_2000000 + 0x17800)) #define EWRAM_17810 ((struct UnknownStruct2 *)(unk_2000000 + 0x17810)) +extern u8 sub_8046400(); +extern void sub_80312F0(struct Sprite *); +extern u8 CreateInvisibleSpriteWithCallback(); extern void sub_80318FC(); extern u8 sub_8077ABC(); extern u8 sub_8077F68(); @@ -83,6 +86,7 @@ void sub_811E0A0(void); 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 nullsub_74(void) { @@ -963,8 +967,6 @@ void sub_811F6D8(void) gUnknown_03004330[gUnknown_02024A60] = sub_811DDE8; } -void sub_811F864(); - void sub_811F7F4(void) { sub_8032AA8(gUnknown_02024A60, gUnknown_02023A60[gUnknown_02024A60][2]); @@ -973,3 +975,27 @@ void sub_811F7F4(void) sub_811F864(gUnknown_02024A60, gUnknown_02023A60[gUnknown_02024A60][2]); gUnknown_03004330[gUnknown_02024A60] = sub_811E1BC; } + +void sub_811F864(u8 a, u8 b) +{ + u16 species; + + sub_8032AA8(a, b); + gUnknown_02024A6A[a] = gUnknown_02023A60[a][1]; + species = GetMonData(&gPlayerParty[gUnknown_02024A6A[a]], MON_DATA_SPECIES); + gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); + GetMonSpriteTemplate_803C56C(species, battle_get_per_side_status(a)); + gUnknown_02024BE0[a] = CreateSprite( + &gUnknown_02024E8C, + sub_8077ABC(a, 2), + sub_8077F68(a), + sub_8079E90(a)); + gSprites[gUnknown_0300434C[a]].data1 = gUnknown_02024BE0[a]; + gSprites[gUnknown_02024BE0[a]].data0 = a; + gSprites[gUnknown_02024BE0[a]].data2 = species; + gSprites[gUnknown_02024BE0[a]].oam.paletteNum = a; + StartSpriteAnim(&gSprites[gUnknown_02024BE0[a]], gBattleMonForms[a]); + gSprites[gUnknown_02024BE0[a]].invisible = TRUE; + gSprites[gUnknown_02024BE0[a]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFF); +} |