diff options
author | YamaArashi <YamaArashi@users.noreply.github.com> | 2017-01-16 22:04:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-16 22:04:51 -0800 |
commit | 4f9aab81ffdfedc84dfeafb88b4248dc6c7c2068 (patch) | |
tree | 0d7a4f0647ba927e7d3b572d01d8326431c3583d | |
parent | 0296ed9fb5f80beedd8601f5357e41793f344a58 (diff) | |
parent | 4bd296f93aa10699369002cf503137582ba02b4f (diff) |
Merge pull request #192 from camthesaxman/battle_811DA74
start decompiling battle_811DA74
-rw-r--r-- | asm/battle_811DA74.s | 1166 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/battle_811DA74.c | 374 |
3 files changed, 375 insertions, 1166 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s index 13a7f974e..c61fb1dac 100644 --- a/asm/battle_811DA74.s +++ b/asm/battle_811DA74.s @@ -6,1172 +6,6 @@ .text - thumb_func_start nullsub_74 -nullsub_74: @ 811DA74 - bx lr - thumb_func_end nullsub_74 - - thumb_func_start sub_811DA78 -sub_811DA78: @ 811DA78 - ldr r1, _0811DA88 @ =gUnknown_03004330 - ldr r0, _0811DA8C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811DA90 @ =sub_811DA94 - str r1, [r0] - bx lr - .align 2, 0 -_0811DA88: .4byte gUnknown_03004330 -_0811DA8C: .4byte gUnknown_02024A60 -_0811DA90: .4byte sub_811DA94 - thumb_func_end sub_811DA78 - - thumb_func_start sub_811DA94 -sub_811DA94: @ 811DA94 - push {lr} - ldr r2, _0811DAC8 @ =gUnknown_02024A64 - ldr r1, _0811DACC @ =gBitTable - ldr r0, _0811DAD0 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0811DAE0 - ldr r0, _0811DAD4 @ =gUnknown_02023A60 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _0811DADC - ldr r0, _0811DAD8 @ =gUnknown_083FE4F4 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _0811DAE0 - .align 2, 0 -_0811DAC8: .4byte gUnknown_02024A64 -_0811DACC: .4byte gBitTable -_0811DAD0: .4byte gUnknown_02024A60 -_0811DAD4: .4byte gUnknown_02023A60 -_0811DAD8: .4byte gUnknown_083FE4F4 -_0811DADC: - bl dp01_tbl3_exec_completed -_0811DAE0: - pop {r0} - bx r0 - thumb_func_end sub_811DA94 - - thumb_func_start sub_811DAE4 -sub_811DAE4: @ 811DAE4 - push {lr} - ldr r2, _0811DB0C @ =gSprites - ldr r1, _0811DB10 @ =gUnknown_02024BE0 - ldr r0, _0811DB14 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0811DB18 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811DB08 - bl dp01_tbl3_exec_completed -_0811DB08: - pop {r0} - bx r0 - .align 2, 0 -_0811DB0C: .4byte gSprites -_0811DB10: .4byte gUnknown_02024BE0 -_0811DB14: .4byte gUnknown_02024A60 -_0811DB18: .4byte SpriteCallbackDummy - thumb_func_end sub_811DAE4 - - thumb_func_start sub_811DB1C -sub_811DB1C: @ 811DB1C - push {r4-r6,lr} - ldr r6, _0811DB74 @ =gSprites - ldr r5, _0811DB78 @ =gUnknown_02024BE0 - ldr r4, _0811DB7C @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _0811DB80 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811DB6C - movs r0, 0 - bl nullsub_10 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - bl dp01_tbl3_exec_completed -_0811DB6C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DB74: .4byte gSprites -_0811DB78: .4byte gUnknown_02024BE0 -_0811DB7C: .4byte gUnknown_02024A60 -_0811DB80: .4byte SpriteCallbackDummy - thumb_func_end sub_811DB1C - - thumb_func_start sub_811DB84 -sub_811DB84: @ 811DB84 - push {lr} - ldr r3, _0811DBB8 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _0811DBBC @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0811DBB4 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x9] - bl dp01_tbl3_exec_completed -_0811DBB4: - pop {r0} - bx r0 - .align 2, 0 -_0811DBB8: .4byte gUnknown_02024A60 -_0811DBBC: .4byte 0x02017810 - thumb_func_end sub_811DB84 - - thumb_func_start sub_811DBC0 -sub_811DBC0: @ 811DBC0 - push {r4-r6,lr} - movs r6, 0 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _0811DBE4 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _0811DC18 - ldr r0, _0811DC04 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0811DC18 -_0811DBE4: - ldr r2, _0811DC08 @ =gSprites - ldr r1, _0811DC0C @ =gUnknown_03004340 - ldr r0, _0811DC10 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0811DC14 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811DC50 - b _0811DC4E - .align 2, 0 -_0811DC04: .4byte gBattleTypeFlags -_0811DC08: .4byte gSprites -_0811DC0C: .4byte gUnknown_03004340 -_0811DC10: .4byte gUnknown_02024A60 -_0811DC14: .4byte SpriteCallbackDummy -_0811DC18: - ldr r2, _0811DC84 @ =gSprites - ldr r5, _0811DC88 @ =gUnknown_03004340 - ldr r0, _0811DC8C @ =gUnknown_02024A60 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r2, 0 - adds r4, 0x1C - adds r0, r4 - ldr r2, [r0] - ldr r0, _0811DC90 @ =SpriteCallbackDummy - cmp r2, r0 - bne _0811DC50 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _0811DC50 -_0811DC4E: - movs r6, 0x1 -_0811DC50: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _0811DC5C - movs r6, 0 -_0811DC5C: - cmp r6, 0 - beq _0811DC7E - ldr r2, _0811DC8C @ =gUnknown_02024A60 - ldrb r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811DC94 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, _0811DC98 @ =gUnknown_03004330 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811DC9C @ =sub_811DB84 - str r1, [r0] -_0811DC7E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DC84: .4byte gSprites -_0811DC88: .4byte gUnknown_03004340 -_0811DC8C: .4byte gUnknown_02024A60 -_0811DC90: .4byte SpriteCallbackDummy -_0811DC94: .4byte 0x02017810 -_0811DC98: .4byte gUnknown_03004330 -_0811DC9C: .4byte sub_811DB84 - thumb_func_end sub_811DBC0 - - thumb_func_start sub_811DCA0 -sub_811DCA0: @ 811DCA0 - push {r4-r7,lr} - ldr r6, _0811DDBC @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0811DDC0 @ =0x02017810 - adds r3, r0, r4 - ldrb r1, [r3] - movs r5, 0x8 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _0811DDB4 - movs r7, 0x2 - adds r1, r7, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _0811DDB4 - ldrb r0, [r3, 0x9] - adds r0, 0x1 - strb r0, [r3, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0811DDB4 - ldrb r0, [r6] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - strb r2, [r1, 0x9] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _0811DD56 - ldr r0, _0811DDC4 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0811DD56 - ldr r1, _0811DDC8 @ =gUnknown_0300434C - ldrb r0, [r6] - eors r0, r7 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811DDCC @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _0811DDD0 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0811DDD4 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0811DDD8 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r6] - eors r0, r7 - bl sub_804777C - ldrb r0, [r6] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC -_0811DD56: - ldr r1, _0811DDC8 @ =gUnknown_0300434C - ldr r4, _0811DDBC @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811DDCC @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _0811DDD0 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _0811DDD4 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0811DDD8 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r4] - bl sub_804777C - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - ldr r2, _0811DDDC @ =0x02017840 - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _0811DDE0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811DDE4 @ =sub_811DBC0 - str r1, [r0] -_0811DDB4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811DDBC: .4byte gUnknown_02024A60 -_0811DDC0: .4byte 0x02017810 -_0811DDC4: .4byte gBattleTypeFlags -_0811DDC8: .4byte gUnknown_0300434C -_0811DDCC: .4byte gSprites -_0811DDD0: .4byte gUnknown_03004340 -_0811DDD4: .4byte gUnknown_02024A6A -_0811DDD8: .4byte gPlayerParty -_0811DDDC: .4byte 0x02017840 -_0811DDE0: .4byte gUnknown_03004330 -_0811DDE4: .4byte sub_811DBC0 - thumb_func_end sub_811DCA0 - - thumb_func_start sub_811DDE8 -sub_811DDE8: @ 811DDE8 - push {lr} - ldr r2, _0811DE1C @ =gSprites - ldr r1, _0811DE20 @ =gUnknown_02024BE0 - ldr r0, _0811DE24 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _0811DE16 - movs r2, 0x24 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0811DE16 - bl dp01_tbl3_exec_completed -_0811DE16: - pop {r0} - bx r0 - .align 2, 0 -_0811DE1C: .4byte gSprites -_0811DE20: .4byte gUnknown_02024BE0 -_0811DE24: .4byte gUnknown_02024A60 - thumb_func_end sub_811DDE8 - - thumb_func_start bx_t3_healthbar_update -bx_t3_healthbar_update: @ 811DE28 - push {r4-r6,lr} - ldr r5, _0811DE68 @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r6, _0811DE6C @ =gUnknown_03004340 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_8043DFC - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0811DE70 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl sub_80440EC - b _0811DE8A - .align 2, 0 -_0811DE68: .4byte gUnknown_02024A60 -_0811DE6C: .4byte gUnknown_03004340 -_0811DE70: - ldr r2, _0811DE90 @ =gUnknown_02024A6A - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811DE94 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - bl dp01_tbl3_exec_completed -_0811DE8A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DE90: .4byte gUnknown_02024A6A -_0811DE94: .4byte gPlayerParty - thumb_func_end bx_t3_healthbar_update - - thumb_func_start sub_811DE98 -sub_811DE98: @ 811DE98 - push {r4-r6,lr} - ldr r6, _0811DF1C @ =gSprites - ldr r5, _0811DF20 @ =gUnknown_02024BE0 - ldr r4, _0811DF24 @ =gUnknown_02024A60 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r3, 0x26 - ldrsh r0, [r0, r3] - adds r1, r0 - cmp r1, 0xA0 - ble _0811DF14 - ldr r1, _0811DF28 @ =gUnknown_02024A6A - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811DF2C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl nullsub_9 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r1, _0811DF30 @ =gUnknown_03004340 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl3_exec_completed -_0811DF14: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DF1C: .4byte gSprites -_0811DF20: .4byte gUnknown_02024BE0 -_0811DF24: .4byte gUnknown_02024A60 -_0811DF28: .4byte gUnknown_02024A6A -_0811DF2C: .4byte gPlayerParty -_0811DF30: .4byte gUnknown_03004340 - thumb_func_end sub_811DE98 - - thumb_func_start sub_811DF34 -sub_811DF34: @ 811DF34 - push {r4-r6,lr} - ldr r6, _0811DF8C @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _0811DF90 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0811DF84 - ldr r5, _0811DF94 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0811DF98 @ =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, _0811DF9C @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl3_exec_completed -_0811DF84: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DF8C: .4byte gUnknown_02024A60 -_0811DF90: .4byte 0x02017810 -_0811DF94: .4byte gUnknown_02024BE0 -_0811DF98: .4byte gSprites -_0811DF9C: .4byte gUnknown_03004340 - thumb_func_end sub_811DF34 - - thumb_func_start sub_811DFA0 -sub_811DFA0: @ 811DFA0 - push {lr} - ldr r0, _0811DFB4 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _0811DFAE - bl dp01_tbl3_exec_completed -_0811DFAE: - pop {r0} - bx r0 - .align 2, 0 -_0811DFB4: .4byte gUnknown_03004210 - thumb_func_end sub_811DFA0 - - thumb_func_start bx_blink_t3 -bx_blink_t3: @ 811DFB8 - push {r4,lr} - ldr r1, _0811DFF4 @ =gUnknown_02024BE0 - ldr r0, _0811DFF8 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _0811DFFC @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0811E004 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _0811E000 @ =gUnknown_02024E6D - strb r3, [r0] - bl dp01_tbl3_exec_completed - b _0811E02E - .align 2, 0 -_0811DFF4: .4byte gUnknown_02024BE0 -_0811DFF8: .4byte gUnknown_02024A60 -_0811DFFC: .4byte gSprites -_0811E000: .4byte gUnknown_02024E6D -_0811E004: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0811E028 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0811E028: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0811E02E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t3 - - thumb_func_start sub_811E034 -sub_811E034: @ 811E034 - push {r4,lr} - ldr r2, _0811E084 @ =gSprites - ldr r0, _0811E088 @ =gUnknown_03004340 - ldr r4, _0811E08C @ =gUnknown_02024A60 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0811E090 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811E07C - lsls r0, r3, 2 - ldr r1, _0811E094 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811E070 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_0811E070: - ldr r0, _0811E098 @ =gUnknown_03004330 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _0811E09C @ =sub_811E0A0 - str r0, [r1] -_0811E07C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811E084: .4byte gSprites -_0811E088: .4byte gUnknown_03004340 -_0811E08C: .4byte gUnknown_02024A60 -_0811E090: .4byte SpriteCallbackDummy -_0811E094: .4byte 0x02017800 -_0811E098: .4byte gUnknown_03004330 -_0811E09C: .4byte sub_811E0A0 - thumb_func_end sub_811E034 - - thumb_func_start sub_811E0A0 -sub_811E0A0: @ 811E0A0 - push {lr} - ldr r0, _0811E0C4 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E0C8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0811E0BE - bl dp01_tbl3_exec_completed -_0811E0BE: - pop {r0} - bx r0 - .align 2, 0 -_0811E0C4: .4byte gUnknown_02024A60 -_0811E0C8: .4byte 0x02017810 - thumb_func_end sub_811E0A0 - - thumb_func_start sub_811E0CC -sub_811E0CC: @ 811E0CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _0811E190 @ =gUnknown_02024A60 - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _0811E194 @ =0x02017810 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811E186 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _0811E198 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _0811E19C @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r0, _0811E1A0 @ =gUnknown_02024A6A - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0811E1A4 @ =gPlayerParty - adds r0, r5 - bl sub_80324F8 - ldr r1, _0811E1A8 @ =gUnknown_02024BE0 - ldrb r0, [r7] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E1AC @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - ldr r4, _0811E1B0 @ =gUnknown_03004340 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6 - adds r1, r5 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r7] - bl sub_804777C - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r7] - bl sub_8031F88 - ldr r1, _0811E1B4 @ =gUnknown_03004330 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E1B8 @ =sub_811E034 - str r1, [r0] -_0811E186: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811E190: .4byte gUnknown_02024A60 -_0811E194: .4byte 0x02017810 -_0811E198: .4byte 0x000027f9 -_0811E19C: .4byte c3_0802FDF4 -_0811E1A0: .4byte gUnknown_02024A6A -_0811E1A4: .4byte gPlayerParty -_0811E1A8: .4byte gUnknown_02024BE0 -_0811E1AC: .4byte gSprites -_0811E1B0: .4byte gUnknown_03004340 -_0811E1B4: .4byte gUnknown_03004330 -_0811E1B8: .4byte sub_811E034 - thumb_func_end sub_811E0CC - - thumb_func_start sub_811E1BC -sub_811E1BC: @ 811E1BC - push {r4-r6,lr} - ldr r4, _0811E234 @ =gUnknown_02024A60 - ldrb r2, [r4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r6, _0811E238 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0811E1EA - ldr r0, _0811E23C @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0811E240 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_0811E1EA: - ldr r5, _0811E244 @ =gSprites - ldr r0, _0811E248 @ =gUnknown_0300434C - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0811E24C @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811E22C - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0811E22C - adds r0, r3, r5 - bl DestroySprite - ldr r1, _0811E250 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E254 @ =sub_811E0CC - str r1, [r0] -_0811E22C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811E234: .4byte gUnknown_02024A60 -_0811E238: .4byte 0x02017810 -_0811E23C: .4byte gUnknown_02024A6A -_0811E240: .4byte gPlayerParty -_0811E244: .4byte gSprites -_0811E248: .4byte gUnknown_0300434C -_0811E24C: .4byte SpriteCallbackDummy -_0811E250: .4byte gUnknown_03004330 -_0811E254: .4byte sub_811E0CC - thumb_func_end sub_811E1BC - - thumb_func_start sub_811E258 -sub_811E258: @ 811E258 - push {lr} - ldr r0, _0811E288 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0811E284 - movs r0, 0x5A - bl m4aSongNumStop - ldr r3, _0811E28C @ =gMain - ldr r0, _0811E290 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _0811E294 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0811E298 @ =c2_8011A1C - bl SetMainCallback2 -_0811E284: - pop {r0} - bx r0 - .align 2, 0 -_0811E288: .4byte gReceivedRemoteLinkPlayers -_0811E28C: .4byte gMain -_0811E290: .4byte 0x0000043d -_0811E294: .4byte gUnknown_030042D0 -_0811E298: .4byte c2_8011A1C - thumb_func_end sub_811E258 - - thumb_func_start sub_811E29C -sub_811E29C: @ 811E29C - push {lr} - ldr r0, _0811E2CC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811E302 - ldr r0, _0811E2D0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811E2E0 - bl sub_800832C - ldr r1, _0811E2D4 @ =gUnknown_03004330 - ldr r0, _0811E2D8 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E2DC @ =sub_811E258 - str r1, [r0] - b _0811E302 - .align 2, 0 -_0811E2CC: .4byte gPaletteFade -_0811E2D0: .4byte gBattleTypeFlags -_0811E2D4: .4byte gUnknown_03004330 -_0811E2D8: .4byte gUnknown_02024A60 -_0811E2DC: .4byte sub_811E258 -_0811E2E0: - movs r0, 0x5A - bl m4aSongNumStop - ldr r2, _0811E308 @ =gMain - ldr r0, _0811E30C @ =0x0000043d - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _0811E310 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_0811E302: - pop {r0} - bx r0 - .align 2, 0 -_0811E308: .4byte gMain -_0811E30C: .4byte 0x0000043d -_0811E310: .4byte gUnknown_030042D0 - thumb_func_end sub_811E29C - - thumb_func_start dp01_tbl3_exec_completed -dp01_tbl3_exec_completed: @ 811E314 - push {r4,lr} - sub sp, 0x4 - ldr r1, _0811E354 @ =gUnknown_03004330 - ldr r4, _0811E358 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E35C @ =sub_811DA94 - str r1, [r0] - ldr r0, _0811E360 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811E368 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, _0811E364 @ =gUnknown_02023A60 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _0811E37A - .align 2, 0 -_0811E354: .4byte gUnknown_03004330 -_0811E358: .4byte gUnknown_02024A60 -_0811E35C: .4byte sub_811DA94 -_0811E360: .4byte gBattleTypeFlags -_0811E364: .4byte gUnknown_02023A60 -_0811E368: - ldr r2, _0811E384 @ =gUnknown_02024A64 - ldr r1, _0811E388 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0811E37A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811E384: .4byte gUnknown_02024A64 -_0811E388: .4byte gBitTable - thumb_func_end dp01_tbl3_exec_completed - - thumb_func_start sub_811E38C -sub_811E38C: @ 811E38C - push {lr} - ldr r0, _0811E3B0 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E3B4 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0811E3AA - bl dp01_tbl3_exec_completed -_0811E3AA: - pop {r0} - bx r0 - .align 2, 0 -_0811E3B0: .4byte gUnknown_02024A60 -_0811E3B4: .4byte 0x02017810 - thumb_func_end sub_811E38C - - thumb_func_start sub_811E3B8 -sub_811E3B8: @ 811E3B8 - push {lr} - ldr r0, _0811E3DC @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E3E0 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0811E3D6 - bl dp01_tbl3_exec_completed -_0811E3D6: - pop {r0} - bx r0 - .align 2, 0 -_0811E3DC: .4byte gUnknown_02024A60 -_0811E3E0: .4byte 0x02017810 - thumb_func_end sub_811E3B8 - thumb_func_start dp01t_00_3_getattr dp01t_00_3_getattr: @ 811E3E4 push {r4-r6,lr} diff --git a/ld_script.txt b/ld_script.txt index 49978ccaf..f379dc74d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -209,6 +209,7 @@ SECTIONS { src/landmark.o(.text); src/fldeff_strength.o(.text); asm/battle_transition.o(.text); + src/battle_811DA74.o(.text); asm/battle_811DA74.o(.text); asm/battle_message.o(.text); asm/choose_party.o(.text); diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c new file mode 100644 index 000000000..fbd379427 --- /dev/null +++ b/src/battle_811DA74.c @@ -0,0 +1,374 @@ +#include "global.h" +#include "asm.h" +#include "link.h" +#include "main.h" +#include "m4a.h" +#include "palette.h" +#include "pokemon.h" +#include "sound.h" +#include "sprite.h" +#include "text.h" + +struct UnknownStruct1 +{ + u8 unk0; + u8 unk1; + u8 unk2[0x1FE]; +}; + +struct UnknownStruct2 +{ + u8 unk0; + u8 unk1; + u8 filler2[7]; + u8 unk9; + u8 fillerA[2]; +}; + +extern u32 gBitTable[]; +extern u16 gBattleTypeFlags; + +extern struct UnknownStruct1 gUnknown_02023A60[]; +extern u8 gUnknown_02024A60; +extern u32 gUnknown_02024A64; +extern u16 gUnknown_02024A6A[]; +extern u8 gUnknown_02024BE0[]; +extern u8 gUnknown_02024E6D; +extern struct Window gUnknown_03004210; +extern MainCallback gUnknown_030042D0; +extern void (*gUnknown_03004330[])(void); +extern u8 gUnknown_03004340[]; +extern u8 gUnknown_0300434C[]; +extern void (*const gUnknown_083FE4F4[])(void); + +extern u8 unk_2000000[]; + +#define EWRAM_17800 ((u8 *)(unk_2000000 + 0x17800)) +#define EWRAM_17810 ((struct UnknownStruct2 *)(unk_2000000 + 0x17810)) + +extern void nullsub_10(); +extern void sub_8045A5C(); +extern void sub_804777C(); +extern void sub_8043DFC(); +extern s16 sub_8045C78(); +extern void sub_80440EC(); +extern void sub_80324F8(); +extern void nullsub_9(u16); +extern void sub_8043DB0(); +extern void move_anim_start_t4(); +extern void c3_0802FDF4(u8); +extern void sub_8031F88(); +extern void sub_8141828(); +extern void c2_8011A1C(void); +extern void sub_800832C(); +extern void dp01_prepare_buffer_wireless_probably(); + +void sub_811DA94(void); +void sub_811E0A0(void); +void dp01_tbl3_exec_completed(void); + +void nullsub_74(void) +{ +} + +void sub_811DA78(void) +{ + gUnknown_03004330[gUnknown_02024A60] = sub_811DA94; +} + +void sub_811DA94(void) +{ + if (gUnknown_02024A64 & gBitTable[gUnknown_02024A60]) + { + if (gUnknown_02023A60[gUnknown_02024A60].unk0 <= 0x38) + gUnknown_083FE4F4[gUnknown_02023A60[gUnknown_02024A60].unk0](); + else + dp01_tbl3_exec_completed(); + } +} + +void sub_811DAE4(void) +{ + if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback == SpriteCallbackDummy) + dp01_tbl3_exec_completed(); +} + +void sub_811DB1C(void) +{ + if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback == SpriteCallbackDummy) + { + nullsub_10(0); + FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); + DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); + dp01_tbl3_exec_completed(); + } +} + +void sub_811DB84(void) +{ + if ((--EWRAM_17810[gUnknown_02024A60].unk9) == 0xFF) + { + EWRAM_17810[gUnknown_02024A60].unk9 = 0; + dp01_tbl3_exec_completed(); + } +} + +void sub_811DBC0(void) +{ + bool8 r6 = FALSE; + + if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & 0x40))) + { + if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy) + r6 = TRUE; + } + else + { + if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy + && gSprites[gUnknown_03004340[gUnknown_02024A60 ^ 2]].callback == SpriteCallbackDummy) + r6 = TRUE; + } + if (IsCryPlayingOrClearCrySongs()) + r6 = FALSE; + if (r6) + { + EWRAM_17810[gUnknown_02024A60].unk9 = 3; + gUnknown_03004330[gUnknown_02024A60] = sub_811DB84; + } +} + +void sub_811DCA0(void) +{ + u8 r2; + + if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 8)) + { + r2 = EWRAM_17810[gUnknown_02024A60 ^ 2].unk0 & 8; + if (!r2 && (++EWRAM_17810[gUnknown_02024A60].unk9) != 1) + { + EWRAM_17810[gUnknown_02024A60].unk9 = r2; + if (IsDoubleBattle() && !(gBattleTypeFlags & 0x40)) + { + DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60 ^ 2]]); + sub_8045A5C(gUnknown_03004340[gUnknown_02024A60 ^ 2], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60 ^ 2]], 0); + sub_804777C(gUnknown_02024A60 ^ 2); + sub_8043DFC(gUnknown_03004340[gUnknown_02024A60 ^ 2]); + } + DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60]]); + sub_8045A5C(gUnknown_03004340[gUnknown_02024A60], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], 0); + sub_804777C(gUnknown_02024A60); + sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]); + (s8)EWRAM_17810[4].unk9 &= ~1; + gUnknown_03004330[gUnknown_02024A60] = sub_811DBC0; + } + } +} + +void sub_811DDE8(void) +{ + if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].animEnded + && gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.x == 0) + dp01_tbl3_exec_completed(); +} + +void bx_t3_healthbar_update(void) +{ + s16 r4; + + r4 = sub_8045C78(gUnknown_02024A60, gUnknown_03004340[gUnknown_02024A60], 0, 0); + sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]); + if (r4 != -1) + { + sub_80440EC(gUnknown_03004340[gUnknown_02024A60], r4, 0); + } + else + { + sub_80324F8(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60); + dp01_tbl3_exec_completed(); + } +} + +void sub_811DE98(void) +{ + if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos1.y + gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.y > 160) + { + nullsub_9(GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_SPECIES)); + FreeOamMatrix(gSprites[gUnknown_02024BE0[gUnknown_02024A60]].oam.matrixNum); + DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); + sub_8043DB0(gUnknown_03004340[gUnknown_02024A60]); + dp01_tbl3_exec_completed(); + } +} + +void sub_811DF34(void) +{ + if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x40)) + { + FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); + DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); + sub_8043DB0(gUnknown_03004340[gUnknown_02024A60]); + dp01_tbl3_exec_completed(); + } +} + +void sub_811DFA0(void) +{ + if (gUnknown_03004210.state == 0) + dp01_tbl3_exec_completed(); +} + +void bx_blink_t3(void) +{ + u8 spriteId = gUnknown_02024BE0[gUnknown_02024A60]; + if (gSprites[spriteId].data1 == 32) + { + gSprites[spriteId].data1 = 0; + gSprites[spriteId].invisible = FALSE; + gUnknown_02024E6D = 0; + dp01_tbl3_exec_completed(); + } + else + { + if ((gSprites[spriteId].data1 % 4) == 0) + { + gSprites[spriteId].invisible ^= 1; + } + gSprites[spriteId].data1++; + } +} + +void sub_811E034(void) +{ + if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy) + { + if (EWRAM_17800[gUnknown_02024A60 * 4] & 4) + move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 6); + gUnknown_03004330[gUnknown_02024A60] = sub_811E0A0; + } +} + +void sub_811E0A0(void) +{ + if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x40)) + dp01_tbl3_exec_completed(); +} + +void sub_811E0CC(void) +{ + if (EWRAM_17810[gUnknown_02024A60].unk1 & 1) + { + EWRAM_17810[gUnknown_02024A60].unk0 &= 0x7F; + (s8)EWRAM_17810[gUnknown_02024A60].unk1 &= ~1; + FreeSpriteTilesByTag(0x27F9); + FreeSpritePaletteByTag(0x27F9); + CreateTask(c3_0802FDF4, 10); + sub_80324F8(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60); + StartSpriteAnim(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], 0); + sub_8045A5C(gUnknown_03004340[gUnknown_02024A60], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], 0); + sub_804777C(gUnknown_02024A60); + sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]); + sub_8031F88(gUnknown_02024A60); + gUnknown_03004330[gUnknown_02024A60] = sub_811E034; + } +} + +void sub_811E1BC(void) +{ + if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x88)) + sub_8141828(gUnknown_02024A60, &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]]); + if (gSprites[gUnknown_0300434C[gUnknown_02024A60]].callback == SpriteCallbackDummy + && !(EWRAM_17810[gUnknown_02024A60].unk0 & 8)) + { + DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60]]); + gUnknown_03004330[gUnknown_02024A60] = sub_811E0CC; + } +} + +void sub_811E258(void) +{ + if (gReceivedRemoteLinkPlayers == 0) + { + m4aSongNumStop(0x5A); + gMain.inBattle = FALSE; + gMain.callback1 = gUnknown_030042D0; + SetMainCallback2(c2_8011A1C); + } +} + +void sub_811E29C(void) +{ + if (!gPaletteFade.active) + { + if (gBattleTypeFlags & 2) + { + sub_800832C(); + gUnknown_03004330[gUnknown_02024A60] = sub_811E258; + } + else + { + m4aSongNumStop(0x5A); + gMain.inBattle = FALSE; + gMain.callback1 = gUnknown_030042D0; + SetMainCallback2(gMain.savedCallback); + } + } +} + +void dp01_tbl3_exec_completed(void) +{ + u8 multiplayerId; + + gUnknown_03004330[gUnknown_02024A60] = sub_811DA94; + if (gBattleTypeFlags & 2) + { + multiplayerId = GetMultiplayerId(); + dp01_prepare_buffer_wireless_probably(2, 4, &multiplayerId); + gUnknown_02023A60[gUnknown_02024A60].unk0 = 0x38; + } + else + { + gUnknown_02024A64 &= ~gBitTable[gUnknown_02024A60]; + } +} + +void sub_811E38C(void) +{ + if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x10)) + dp01_tbl3_exec_completed(); +} + +void sub_811E3B8(void) +{ + if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x20)) + dp01_tbl3_exec_completed(); +} + +/* +extern int dp01_getattr_by_ch1_for_player_pokemon(u8, void *); +extern void dp01_build_cmdbuf_x1D_1D_numargs_varargs(int, u16, void *); + +void dp01t_00_3_getattr(void) +{ + u8 unk[4]; + int r6 = 0; + s32 i; + + if (*((u8 *)&gUnknown_02023A60 + 2 + gUnknown_02024A60 * 0x200) == 0) + { + r6 = dp01_getattr_by_ch1_for_player_pokemon(gUnknown_02024A6A[gUnknown_02024A60], unk); + } + else + { + u8 r4 = *((u8 *)&gUnknown_02023A60 + gUnknown_02024A60 * 0x200 + 2); + + for (i = 0; i < 6; i++) + { + if (r4 & 1) + r6 += dp01_getattr_by_ch1_for_player_pokemon(i, unk + r6); + r4 >>= 1; + } + } + dp01_build_cmdbuf_x1D_1D_numargs_varargs(1, r6, unk); + dp01_tbl3_exec_completed(); +} +*/ |