decompile sub_811F864

This commit is contained in:
camthesaxman
2017-06-07 11:52:47 -05:00
parent 67a95d8e96
commit eb492eb014
2 changed files with 28 additions and 168 deletions

View File

@@ -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}

View File

@@ -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);
}