ported reshow_battle_screen from pokeem
This commit is contained in:
+11
-11
@@ -169,7 +169,7 @@ _0800FEA6:
|
||||
ldr r1, _0800FF68 @ =gReservedSpritePaletteCount
|
||||
movs r0, 0x4
|
||||
strb r0, [r1]
|
||||
ldr r0, _0800FF6C @ =sub_80116F4
|
||||
ldr r0, _0800FF6C @ =VBlankCB_Battle
|
||||
bl SetVBlankCallback
|
||||
bl SetUpBattleVars
|
||||
ldr r0, _0800FF70 @ =gBattleTypeFlags
|
||||
@@ -199,7 +199,7 @@ _0800FF5C: .4byte gBattle_BG3_X
|
||||
_0800FF60: .4byte gBattle_BG3_Y
|
||||
_0800FF64: .4byte gUnknown_2022B50
|
||||
_0800FF68: .4byte gReservedSpritePaletteCount
|
||||
_0800FF6C: .4byte sub_80116F4
|
||||
_0800FF6C: .4byte VBlankCB_Battle
|
||||
_0800FF70: .4byte gBattleTypeFlags
|
||||
_0800FF74: .4byte sub_8010BA0
|
||||
_0800FF78:
|
||||
@@ -1010,7 +1010,7 @@ _080105BC:
|
||||
bne _080105C6
|
||||
b _080108B8
|
||||
_080105C6:
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
b _080108B8
|
||||
.align 2, 0
|
||||
_080105CC: .4byte gBattleCommunication
|
||||
@@ -1064,7 +1064,7 @@ _0801062A:
|
||||
_08010634:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
b _080108B8
|
||||
.align 2, 0
|
||||
_08010640: .4byte gBattleTypeFlags
|
||||
@@ -1763,7 +1763,7 @@ _08010C44:
|
||||
bne _08010C4E
|
||||
b _080110F0
|
||||
_08010C4E:
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
b _080110F0
|
||||
.align 2, 0
|
||||
_08010C54: .4byte gBattleCommunication
|
||||
@@ -1813,7 +1813,7 @@ _08010CAA:
|
||||
_08010CB4:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
b _080110F0
|
||||
.align 2, 0
|
||||
_08010CC0: .4byte gReceivedRemoteLinkPlayers
|
||||
@@ -3121,8 +3121,8 @@ _080116EC: .4byte 0x04000006
|
||||
_080116F0: .4byte 0x04000008
|
||||
thumb_func_end sub_80116CC
|
||||
|
||||
thumb_func_start sub_80116F4
|
||||
sub_80116F4: @ 80116F4
|
||||
thumb_func_start VBlankCB_Battle
|
||||
VBlankCB_Battle: @ 80116F4
|
||||
push {lr}
|
||||
bl Random
|
||||
ldr r0, _08011788 @ =gBattle_BG0_X
|
||||
@@ -3192,7 +3192,7 @@ _080117A8: .4byte gUnknown_2022984
|
||||
_080117AC: .4byte gUnknown_2022986
|
||||
_080117B0: .4byte gUnknown_2022988
|
||||
_080117B4: .4byte gUnknown_202298A
|
||||
thumb_func_end sub_80116F4
|
||||
thumb_func_end VBlankCB_Battle
|
||||
|
||||
thumb_func_start nullsub_9
|
||||
nullsub_9: @ 80117B8
|
||||
@@ -3612,7 +3612,7 @@ _08011A9C:
|
||||
ldr r1, _08011B7C @ =gReservedSpritePaletteCount
|
||||
movs r0, 0x4
|
||||
strb r0, [r1]
|
||||
ldr r0, _08011B80 @ =sub_80116F4
|
||||
ldr r0, _08011B80 @ =VBlankCB_Battle
|
||||
bl SetVBlankCallback
|
||||
ldr r0, _08011B84 @ =sub_800F6FC
|
||||
movs r1, 0
|
||||
@@ -3657,7 +3657,7 @@ _08011B70: .4byte gBattle_BG3_X
|
||||
_08011B74: .4byte gBattle_BG3_Y
|
||||
_08011B78: .4byte gBattleTextboxPalette
|
||||
_08011B7C: .4byte gReservedSpritePaletteCount
|
||||
_08011B80: .4byte sub_80116F4
|
||||
_08011B80: .4byte VBlankCB_Battle
|
||||
_08011B84: .4byte sub_800F6FC
|
||||
_08011B88: .4byte gTasks
|
||||
_08011B8C: .4byte sub_8011B94
|
||||
|
||||
+1
-1
@@ -634,7 +634,7 @@ _080729A8:
|
||||
ldr r0, _08072A04 @ =gBattleAnimAttacker
|
||||
_080729AE:
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r4, 24
|
||||
|
||||
@@ -229,7 +229,7 @@ _080A24A2:
|
||||
ble _080A24BC
|
||||
ldr r0, _080A24B8 @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r0, 0x1
|
||||
b _080A24C6
|
||||
.align 2, 0
|
||||
@@ -237,7 +237,7 @@ _080A24B8: .4byte gBattleAnimTarget
|
||||
_080A24BC:
|
||||
ldr r0, _080A24FC @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r0, 0x6
|
||||
_080A24C6:
|
||||
adds r1, r4, 0
|
||||
@@ -306,7 +306,7 @@ sub_80A2500: @ 80A2500
|
||||
ldr r4, _080A2578 @ =gUnknown_83E2A88
|
||||
ldr r0, _080A257C @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
adds r3, 0x1
|
||||
lsls r3, 24
|
||||
@@ -868,7 +868,7 @@ sub_80A2974: @ 80A2974
|
||||
bhi _080A29C0
|
||||
ldr r0, _080A29BC @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x1
|
||||
b _080A29CA
|
||||
.align 2, 0
|
||||
@@ -876,7 +876,7 @@ _080A29BC: .4byte gBattleAnimAttacker
|
||||
_080A29C0:
|
||||
ldr r0, _080A29DC @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r0, 0x1
|
||||
_080A29CA:
|
||||
adds r1, r4, 0
|
||||
@@ -2995,7 +2995,7 @@ sub_80A39C0: @ 80A39C0
|
||||
adds r5, r0, r1
|
||||
ldr r4, _080A3B18 @ =gBattleAnimTarget
|
||||
ldrb r0, [r4]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
subs r0, 0x1
|
||||
|
||||
@@ -1430,7 +1430,7 @@ _080A7928:
|
||||
ble _080A79A0
|
||||
ldr r0, _080A7970 @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080A7974 @ =0x0000ffc0
|
||||
@@ -1451,7 +1451,7 @@ _080A7978:
|
||||
ble _080A79A0
|
||||
ldr r0, _080A7998 @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r3, _080A799C @ =0x0000ffc0
|
||||
@@ -1466,7 +1466,7 @@ _080A799C: .4byte 0x0000ffc0
|
||||
_080A79A0:
|
||||
ldr r0, _080A79DC @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldrh r1, [r4, 0x8]
|
||||
@@ -2367,7 +2367,7 @@ sub_80A8074: @ 80A8074
|
||||
strh r5, [r4, 0x14]
|
||||
ldr r0, _080A80C4 @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x16]
|
||||
@@ -6607,7 +6607,7 @@ sub_80AA174: @ 80AA174
|
||||
ldrh r0, [r1, 0x2]
|
||||
strh r0, [r4, 0x30]
|
||||
ldrb r0, [r5]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x3C]
|
||||
@@ -7142,7 +7142,7 @@ sub_80AA58C: @ 80AA58C
|
||||
bl StartSpriteAnim
|
||||
ldr r0, _080AA68C @ =gBattleAnimTarget
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x43
|
||||
|
||||
@@ -5735,7 +5735,7 @@ sub_80E0EDC: @ 80E0EDC
|
||||
_080E0F16:
|
||||
ldr r0, _080E0F24 @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x1
|
||||
b _080E0F32
|
||||
.align 2, 0
|
||||
@@ -5743,7 +5743,7 @@ _080E0F24: .4byte gBattleAnimAttacker
|
||||
_080E0F28:
|
||||
ldr r0, _080E0F74 @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r0, 0x1
|
||||
_080E0F32:
|
||||
adds r1, r4, 0
|
||||
@@ -7613,7 +7613,7 @@ _080E1DA2:
|
||||
lsrs r0, 24
|
||||
strh r0, [r5, 0x12]
|
||||
adds r0, r4, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r5, 0x14]
|
||||
@@ -8641,7 +8641,7 @@ _080E258A:
|
||||
ldrsh r6, [r7, r1]
|
||||
mov r1, r8
|
||||
ldrb r0, [r1]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
subs r3, 0x5
|
||||
lsls r3, 24
|
||||
@@ -10654,7 +10654,7 @@ sub_80E34D0: @ 80E34D0
|
||||
cmp r0, 0
|
||||
bne _080E34FC
|
||||
ldrb r0, [r4]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x2
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x43
|
||||
@@ -10666,7 +10666,7 @@ _080E34F4: .4byte gBattleAnimTarget
|
||||
_080E34F8: .4byte 0x0000ff70
|
||||
_080E34FC:
|
||||
ldrb r0, [r4]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r0, 0x2
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x43
|
||||
|
||||
@@ -594,8 +594,8 @@ _080748F0:
|
||||
bx r1
|
||||
thumb_func_end GetSubstituteSpriteDefault_Y
|
||||
|
||||
thumb_func_start sub_8074900
|
||||
sub_8074900: @ 8074900
|
||||
thumb_func_start GetGhostSpriteDefault_Y
|
||||
GetGhostSpriteDefault_Y: @ 8074900
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
@@ -618,7 +618,7 @@ _0807491E:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8074900
|
||||
thumb_func_end GetGhostSpriteDefault_Y
|
||||
|
||||
thumb_func_start sub_807492C
|
||||
sub_807492C: @ 807492C
|
||||
@@ -4839,7 +4839,7 @@ _080767FE:
|
||||
cmp r0, 0
|
||||
beq _08076840
|
||||
adds r0, r4, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
ldr r3, _08076858 @ =gBattlerSpriteIds
|
||||
adds r3, r5, r3
|
||||
ldrb r2, [r3]
|
||||
@@ -4878,8 +4878,8 @@ _08076854: .4byte gSprites
|
||||
_08076858: .4byte gBattlerSpriteIds
|
||||
thumb_func_end sub_80767F0
|
||||
|
||||
thumb_func_start sub_807685C
|
||||
sub_807685C: @ 807685C
|
||||
thumb_func_start GetBattlerSpriteSubpriority
|
||||
GetBattlerSpriteSubpriority: @ 807685C
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@@ -4900,7 +4900,7 @@ _0807687E:
|
||||
adds r0, r1, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_807685C
|
||||
thumb_func_end GetBattlerSpriteSubpriority
|
||||
|
||||
thumb_func_start sub_8076884
|
||||
sub_8076884: @ 8076884
|
||||
@@ -5946,7 +5946,7 @@ _08077064:
|
||||
adds r0, 0x10
|
||||
lsls r4, r0, 4
|
||||
ldrb r0, [r7]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r5, 0x14]
|
||||
|
||||
@@ -1379,7 +1379,7 @@ _080EF708:
|
||||
bl GetBattlerAtPosition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
adds r3, 0x1
|
||||
lsls r3, 24
|
||||
|
||||
@@ -3591,7 +3591,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldrb r0, [r6]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -3795,7 +3795,7 @@ sub_803C550: @ 803C550
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -4270,7 +4270,7 @@ _0803C992:
|
||||
asrs r4, 16
|
||||
mov r1, r8
|
||||
ldrb r0, [r1]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
|
||||
@@ -3385,7 +3385,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldrb r0, [r6]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -3577,7 +3577,7 @@ sub_80D5F40: @ 80D5F40
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -3896,7 +3896,7 @@ _080D6258:
|
||||
ldr r5, _080D6318 @ =gActiveBattler
|
||||
ldrb r1, [r5]
|
||||
adds r0, r4, 0
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r5]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
@@ -3918,7 +3918,7 @@ _080D6258:
|
||||
adds r4, r0
|
||||
asrs r4, 16
|
||||
ldrb r0, [r5]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
|
||||
@@ -4966,7 +4966,7 @@ sub_80E9E6C: @ 80E9E6C
|
||||
ldrb r0, [r0, 0x8]
|
||||
ldr r6, _080E9ED0 @ =gActiveBattler
|
||||
ldrb r1, [r6]
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldr r0, [r4]
|
||||
ldrb r5, [r0, 0x8]
|
||||
ldrb r0, [r6]
|
||||
@@ -5007,7 +5007,7 @@ _080E9EE0:
|
||||
ldr r4, _080E9F8C @ =gActiveBattler
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x5
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r4]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
@@ -5112,7 +5112,7 @@ sub_80E9FB0: @ 80E9FB0
|
||||
ldrb r0, [r0, 0x8]
|
||||
ldr r6, _080EA014 @ =gActiveBattler
|
||||
ldrb r1, [r6]
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldr r0, [r4]
|
||||
ldrb r5, [r0, 0x8]
|
||||
ldrb r0, [r6]
|
||||
@@ -5153,7 +5153,7 @@ _080EA024:
|
||||
ldr r4, _080EA0D0 @ =gActiveBattler
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x5
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r4]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
@@ -7086,7 +7086,7 @@ sub_80EAF34: @ 80EAF34
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
|
||||
@@ -3596,7 +3596,7 @@ sub_80377FC: @ 80377FC
|
||||
adds r0, r6
|
||||
bl DecompressGhostFrontPic
|
||||
ldrb r0, [r4]
|
||||
bl sub_8074900
|
||||
bl GetGhostSpriteDefault_Y
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r3, _0803788C @ =gBattleSpritesDataPtr
|
||||
@@ -3658,7 +3658,7 @@ _080378AA:
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldrb r0, [r7]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -3887,7 +3887,7 @@ sub_8037A28: @ 8037A28
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -4219,7 +4219,7 @@ _08037D3A:
|
||||
asrs r4, 16
|
||||
mov r1, r8
|
||||
ldrb r0, [r1]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
|
||||
@@ -4884,23 +4884,23 @@ ActionSelectionDestroyCursorAt: @ 8030A98
|
||||
thumb_func_start sub_8030ADC
|
||||
sub_8030ADC: @ 8030ADC
|
||||
push {lr}
|
||||
ldr r0, _08030AE8 @ =sub_8077764
|
||||
ldr r0, _08030AE8 @ =ReshowBattleScreenAfterMenu
|
||||
bl SetMainCallback2
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08030AE8: .4byte sub_8077764
|
||||
_08030AE8: .4byte ReshowBattleScreenAfterMenu
|
||||
thumb_func_end sub_8030ADC
|
||||
|
||||
thumb_func_start sub_8030AEC
|
||||
sub_8030AEC: @ 8030AEC
|
||||
push {lr}
|
||||
ldr r0, _08030AF8 @ =sub_8077764
|
||||
ldr r0, _08030AF8 @ =ReshowBattleScreenAfterMenu
|
||||
bl SetMainCallback2
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08030AF8: .4byte sub_8077764
|
||||
_08030AF8: .4byte ReshowBattleScreenAfterMenu
|
||||
thumb_func_end sub_8030AEC
|
||||
|
||||
thumb_func_start CompleteOnFinishedStatusAnimation
|
||||
@@ -7457,7 +7457,7 @@ sub_8031FF4: @ 8031FF4
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -7803,7 +7803,7 @@ _08032342:
|
||||
ldr r5, _08032404 @ =gActiveBattler
|
||||
ldrb r1, [r5]
|
||||
adds r0, r4, 0
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r5]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
@@ -7825,7 +7825,7 @@ _08032342:
|
||||
adds r4, r0
|
||||
asrs r4, 16
|
||||
ldrb r0, [r5]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -7980,7 +7980,7 @@ _080324BE:
|
||||
ldr r5, _0803256C @ =gActiveBattler
|
||||
ldrb r1, [r5]
|
||||
adds r0, r4, 0
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r5]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
|
||||
@@ -3942,7 +3942,7 @@ sub_81580E0: @ 81580E0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldrb r0, [r6]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -4181,7 +4181,7 @@ sub_8158344: @ 8158344
|
||||
bne _081583F0
|
||||
ldrb r1, [r7]
|
||||
movs r0, 0x4
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r7]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
@@ -4273,7 +4273,7 @@ _081583F0:
|
||||
adds r4, r0
|
||||
asrs r4, 16
|
||||
ldrb r0, [r7]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
@@ -4406,7 +4406,7 @@ sub_8158544: @ 8158544
|
||||
ldr r4, _081585EC @ =gActiveBattler
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x4
|
||||
bl sub_8034750
|
||||
bl DecompressTrainerBackPalette
|
||||
ldrb r0, [r4]
|
||||
bl GetBattlerPosition
|
||||
adds r1, r0, 0
|
||||
@@ -6351,7 +6351,7 @@ sub_8159478: @ 8159478
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
|
||||
@@ -15672,7 +15672,7 @@ _080254B6:
|
||||
subs r2, 0x1
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r3, _080254F4 @ =sub_8077764
|
||||
ldr r3, _080254F4 @ =ReshowBattleScreenAfterMenu
|
||||
ldr r4, _080254F8 @ =gMoveToLearn
|
||||
ldrh r4, [r4]
|
||||
str r4, [sp]
|
||||
@@ -15688,7 +15688,7 @@ _080254E4: .4byte gPaletteFade
|
||||
_080254E8: .4byte gPlayerParty
|
||||
_080254EC: .4byte gBattleStruct
|
||||
_080254F0: .4byte gPlayerPartyCount
|
||||
_080254F4: .4byte sub_8077764
|
||||
_080254F4: .4byte ReshowBattleScreenAfterMenu
|
||||
_080254F8: .4byte gMoveToLearn
|
||||
_080254FC: .4byte gBattleScripting
|
||||
_08025500:
|
||||
@@ -32490,7 +32490,7 @@ _0802DA72:
|
||||
ldr r2, _0802DAC0 @ =0x05006000
|
||||
add r0, sp, 0x10
|
||||
bl CpuSet
|
||||
ldr r0, _0802DAC4 @ =sub_80116F4
|
||||
ldr r0, _0802DAC4 @ =VBlankCB_Battle
|
||||
bl SetVBlankCallback
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
@@ -32503,7 +32503,7 @@ _0802DAB4: .4byte BattleMainCB2
|
||||
_0802DAB8: .4byte gTasks
|
||||
_0802DABC: .4byte gBattleCommunication
|
||||
_0802DAC0: .4byte 0x05006000
|
||||
_0802DAC4: .4byte sub_80116F4
|
||||
_0802DAC4: .4byte VBlankCB_Battle
|
||||
_0802DAC8:
|
||||
bl sub_800F34C
|
||||
bl LoadBattleTextboxAndBackground
|
||||
|
||||
+2
-2
@@ -236,10 +236,10 @@ _0814D7E8: .4byte gUnknown_846ED90
|
||||
_0814D7EC: .4byte gUnknown_846EEC0
|
||||
_0814D7F0: .4byte gUnknown_846F058
|
||||
_0814D7F4:
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
adds r0, r5, 0
|
||||
bl sub_814ECE0
|
||||
ldr r0, _0814D82C @ =gSpriteCoordOffsetY
|
||||
|
||||
@@ -393,10 +393,10 @@ _08150B16:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08150BDC
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
b _08150BDC
|
||||
.align 2, 0
|
||||
_08150B38: .4byte gReceivedRemoteLinkPlayers
|
||||
|
||||
+1
-1
@@ -2630,7 +2630,7 @@ _080AEFF8:
|
||||
lsrs r0, 24
|
||||
strh r0, [r5, 0x22]
|
||||
ldrb r0, [r4]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
subs r0, 0x2
|
||||
|
||||
@@ -843,10 +843,10 @@ _080CE4CC:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080CE4E0
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
_080CE4E0:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
|
||||
+1
-1
@@ -2898,7 +2898,7 @@ sub_80B68C8: @ 80B68C8
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x12]
|
||||
ldrb r0, [r5]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
subs r0, 0x2
|
||||
|
||||
+6
-6
@@ -9368,8 +9368,8 @@ _080FCD6C: .4byte gUnknown_3005440
|
||||
_080FCD70: .4byte gUnknown_3005E00
|
||||
thumb_func_end sub_80FCD50
|
||||
|
||||
thumb_func_start sub_80FCD74
|
||||
sub_80FCD74: @ 80FCD74
|
||||
thumb_func_start CreateWirelessStatusIndicatorSprite
|
||||
CreateWirelessStatusIndicatorSprite: @ 80FCD74
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
@@ -9464,7 +9464,7 @@ _080FCE34: .4byte gUnknown_203ACE4
|
||||
_080FCE38: .4byte gSprites
|
||||
_080FCE3C: .4byte 0x00001234
|
||||
_080FCE40: .4byte gUnknown_843F274
|
||||
thumb_func_end sub_80FCD74
|
||||
thumb_func_end CreateWirelessStatusIndicatorSprite
|
||||
|
||||
thumb_func_start DestroyWirelessStatusIndicatorSprite
|
||||
DestroyWirelessStatusIndicatorSprite: @ 80FCE44
|
||||
@@ -9514,8 +9514,8 @@ _080FCEA0: .4byte gDummyOamData
|
||||
_080FCEA4: .4byte 0x070003e8
|
||||
thumb_func_end DestroyWirelessStatusIndicatorSprite
|
||||
|
||||
thumb_func_start sub_80FCEA8
|
||||
sub_80FCEA8: @ 80FCEA8
|
||||
thumb_func_start LoadWirelessStatusIndicatorSpriteGfx
|
||||
LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8
|
||||
push {r4,lr}
|
||||
ldr r4, _080FCED4 @ =gUnknown_843F274
|
||||
ldrh r0, [r4, 0x6]
|
||||
@@ -9540,7 +9540,7 @@ _080FCED4: .4byte gUnknown_843F274
|
||||
_080FCED8: .4byte 0xffff0000
|
||||
_080FCEDC: .4byte gUnknown_843F27C
|
||||
_080FCEE0: .4byte gUnknown_203ACE4
|
||||
thumb_func_end sub_80FCEA8
|
||||
thumb_func_end LoadWirelessStatusIndicatorSpriteGfx
|
||||
|
||||
thumb_func_start sub_80FCEE4
|
||||
sub_80FCEE4: @ 80FCEE4
|
||||
|
||||
+10
-10
@@ -707,10 +707,10 @@ _08115E84:
|
||||
beq _08115EC0
|
||||
b _081161D8
|
||||
_08115E8E:
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
movs r0, 0x5
|
||||
strb r0, [r5, 0x19]
|
||||
ldrb r1, [r5, 0x13]
|
||||
@@ -2475,10 +2475,10 @@ sub_8116D60: @ 8116D60
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
strb r1, [r4, 0xF]
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
ldrb r0, [r4, 0xE]
|
||||
bl RedrawListMenu
|
||||
ldr r5, _08116DD4 @ =gStringVar1
|
||||
@@ -4188,10 +4188,10 @@ _08117C3C:
|
||||
beq _08117C84
|
||||
b _08117ECA
|
||||
_08117C42:
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r5, 0x13]
|
||||
lsls r0, 5
|
||||
@@ -4702,10 +4702,10 @@ _0811808E:
|
||||
cmp r0, 0
|
||||
bne _08118130
|
||||
strb r2, [r5, 0xF]
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
ldrb r0, [r5, 0xE]
|
||||
bl RedrawListMenu
|
||||
ldr r4, _0811812C @ =gStringVar1
|
||||
@@ -5118,10 +5118,10 @@ _0811843A:
|
||||
beq _0811849C
|
||||
strb r4, [r5, 0xF]
|
||||
strb r4, [r5, 0x14]
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
ldr r0, [r5]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x10
|
||||
|
||||
+4
-4
@@ -4058,10 +4058,10 @@ _08056B3C:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08056B62
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
b _08056B62
|
||||
.align 2, 0
|
||||
_08056B54: .4byte gWirelessCommType
|
||||
@@ -4389,10 +4389,10 @@ _08056E18:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08056E3E
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
b _08056E3E
|
||||
.align 2, 0
|
||||
_08056E30: .4byte gWirelessCommType
|
||||
|
||||
@@ -442,10 +442,10 @@ _08147E0C:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xA4
|
||||
bl sub_8149CEC
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
ldr r1, [r4]
|
||||
b _08147EBC
|
||||
.align 2, 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+6
-6
@@ -435,10 +435,10 @@ _0804C9C4:
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
b _0804CEE6
|
||||
.align 2, 0
|
||||
_0804C9E0: .4byte gWirelessCommType
|
||||
@@ -1134,10 +1134,10 @@ _0804CFDC:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0804CFF0
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
_0804CFF0:
|
||||
ldr r1, _0804D000 @ =gMain
|
||||
movs r3, 0x87
|
||||
@@ -7749,10 +7749,10 @@ _0805044C:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0805046C
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
_0805046C:
|
||||
ldr r0, _08050498 @ =sub_8053D84
|
||||
bl SetMainCallback2
|
||||
|
||||
+2
-2
@@ -208,10 +208,10 @@ _0808919A:
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _080891B6
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0xE6
|
||||
movs r1, 0x96
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
_080891B6:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
|
||||
@@ -177,10 +177,10 @@ _08128554:
|
||||
bl CreateTask
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0xF]
|
||||
bl sub_80FCEA8
|
||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
||||
movs r0, 0xE8
|
||||
movs r1, 0x96
|
||||
bl sub_80FCD74
|
||||
bl CreateWirelessStatusIndicatorSprite
|
||||
_08128598:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
|
||||
+4
-4
@@ -750,7 +750,7 @@ sub_80AB168: @ 80AB168
|
||||
ldr r6, _080AB1B8 @ =0x0000fff6
|
||||
strh r6, [r4, 0x26]
|
||||
ldrb r0, [r7]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
bl IsContest
|
||||
@@ -2408,7 +2408,7 @@ sub_80ABE4C: @ 80ABE4C
|
||||
lsrs r6, r0, 24
|
||||
movs r5, 0xAC
|
||||
ldrb r0, [r4]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@@ -3679,7 +3679,7 @@ _080AC826:
|
||||
strh r0, [r4, 0x30]
|
||||
ldr r0, _080AC870 @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x43
|
||||
@@ -3737,7 +3737,7 @@ _080AC89C:
|
||||
strh r0, [r4, 0x30]
|
||||
ldr r0, _080AC8E8 @ =gBattleAnimAttacker
|
||||
ldrb r0, [r0]
|
||||
bl sub_807685C
|
||||
bl GetBattlerSpriteSubpriority
|
||||
subs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x43
|
||||
|
||||
@@ -795,6 +795,7 @@ void ApplyPlayerChosenFrameToBattleMenu(void);
|
||||
bool8 LoadChosenBattleElement(u8 caseId);
|
||||
void DrawMainBattleBackground(void);
|
||||
void task00_0800F6FC(u8 taskId);
|
||||
void sub_800F324(void);
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
@@ -129,6 +129,7 @@ void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 bank);
|
||||
u8 sub_80A82E4(u8 bank);
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 bank);
|
||||
u8 GetGhostSpriteDefault_Y(u8 battlerId);
|
||||
|
||||
// battle_anim_80A9C70.s
|
||||
void LaunchStatusAnimation(u8 bank, u8 statusAnimId);
|
||||
@@ -148,6 +149,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
|
||||
bool8 IsContest(void);
|
||||
void sub_80759DC(u8 spriteId);
|
||||
bool8 IsBattlerSpritePresent(u8 battlerId);
|
||||
u8 GetBattlerSpriteSubpriority(u8 battlerId);
|
||||
|
||||
// battle_anim_mon_movement.c
|
||||
void AnimTask_ShakeMon(u8 taskId);
|
||||
|
||||
@@ -12,9 +12,9 @@ bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
|
||||
bool8 mplay_80342A4(u8 battlerId);
|
||||
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
|
||||
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
|
||||
void DecompressGhostFrontPic(u16 frontPicId, u8 battlerId);
|
||||
void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId);
|
||||
void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId);
|
||||
void sub_8034750(u16 a1, u8 a2);
|
||||
void DecompressTrainerBackPalette(u16 a1, u8 a2);
|
||||
void nullsub_16(u8 a1);
|
||||
void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId);
|
||||
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
|
||||
|
||||
@@ -13,6 +13,20 @@ struct BGCntrlBitfield // for the I/O registers
|
||||
volatile u16 screenSize:2;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
BG_ATTR_MAPBASEINDEX,
|
||||
BG_ATTR_SCREENSIZE,
|
||||
BG_ATTR_PALETTEMODE,
|
||||
BG_ATTR_MOSAIC,
|
||||
BG_ATTR_WRAPAROUND,
|
||||
BG_ATTR_PRIORITY,
|
||||
BG_ATTR_METRIC,
|
||||
BG_ATTR_TYPE,
|
||||
BG_ATTR_BASETILE,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BG_CTRL_ATTR_VISIBLE = 1,
|
||||
|
||||
@@ -211,5 +211,7 @@ bool32 sub_800B270(void);
|
||||
void sub_800B388(void);
|
||||
void sub_8054A28(void);
|
||||
void sub_800B1F4(void);
|
||||
void LoadWirelessStatusIndicatorSpriteGfx(void);
|
||||
void CreateWirelessStatusIndicatorSprite(u8, u8);
|
||||
|
||||
#endif // GUARD_LINK_H
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void nullsub_35(void);
|
||||
void nullsub_44(void);
|
||||
void ReshowBattleScreenAfterMenu(void);
|
||||
|
||||
#endif // GUARD_RESHOW_BATTLE_SCREEN_H
|
||||
|
||||
+1
-1
@@ -113,7 +113,7 @@ SECTIONS {
|
||||
asm/battle_anim.o(.text);
|
||||
asm/battle_anim_mons.o(.text);
|
||||
src/task.o(.text);
|
||||
asm/reshow_battle_screen.o(.text);
|
||||
src/reshow_battle_screen.o(.text);
|
||||
asm/battle_anim_status_effects.o(.text);
|
||||
asm/title_screen.o(.text);
|
||||
src/reset_save_heap.o(.text);
|
||||
|
||||
@@ -347,7 +347,7 @@ static void SafariHandleReturnMonToBall(void)
|
||||
|
||||
static void SafariHandleDrawTrainerPic(void)
|
||||
{
|
||||
sub_8034750(gSaveBlock2Ptr->playerGender, gActiveBattler);
|
||||
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
|
||||
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
|
||||
80,
|
||||
|
||||
@@ -420,7 +420,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
}
|
||||
}
|
||||
|
||||
void DecompressGhostFrontPic(u16 frontPicId, u8 battlerId)
|
||||
void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId)
|
||||
{
|
||||
u16 palOffset;
|
||||
void *buffer;
|
||||
@@ -448,9 +448,9 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId)
|
||||
LoadCompressedSpritePaletteUsingHeap(&gTrainerFrontPicPaletteTable[frontPicId]);
|
||||
}
|
||||
|
||||
void sub_8034750(u16 a1, u8 a2)
|
||||
void DecompressTrainerBackPalette(u16 index, u8 palette)
|
||||
{
|
||||
LoadCompressedPalette(gUnknown_8239FD4[a1].data, (a2 + 16) * 16, 0x20);
|
||||
LoadCompressedPalette(gUnknown_8239FD4[index].data, (palette + 16) * 16, 0x20);
|
||||
}
|
||||
|
||||
void nullsub_16(u8 a1)
|
||||
|
||||
@@ -0,0 +1,322 @@
|
||||
#include "global.h"
|
||||
#include "bg.h"
|
||||
#include "palette.h"
|
||||
#include "pokemon.h"
|
||||
#include "main.h"
|
||||
#include "link.h"
|
||||
#include "data2.h"
|
||||
#include "sprite.h"
|
||||
#include "text.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "help_system.h"
|
||||
#include "battle.h"
|
||||
#include "battle_interface.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "reshow_battle_screen.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
static void CB2_ReshowBattleScreenAfterMenu(void);
|
||||
static void sub_8077AAC(void);
|
||||
static bool8 LoadBattlerSpriteGfx(u8 battlerId);
|
||||
static void CreateBattlerSprite(u8 battlerId);
|
||||
static void CreateHealthboxSprite(u8 battlerId);
|
||||
|
||||
void nullsub_44(void)
|
||||
{
|
||||
}
|
||||
|
||||
void ReshowBattleScreenAfterMenu(void)
|
||||
{
|
||||
gPaletteFade.bufferTransferDisabled = 1;
|
||||
SetHBlankCallback(NULL);
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
gBattleScripting.reshowMainState = 0;
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
HelpSystem_SetSomeVariable2(0x19);
|
||||
else
|
||||
HelpSystem_SetSomeVariable2(0x18);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
{
|
||||
HelpSystem_SetSomeVariable2(0x1A);
|
||||
}
|
||||
else
|
||||
{
|
||||
HelpSystem_SetSomeVariable2(0x17);
|
||||
}
|
||||
}
|
||||
SetMainCallback2(CB2_ReshowBattleScreenAfterMenu);
|
||||
}
|
||||
|
||||
static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
{
|
||||
u8 opponentBattler;
|
||||
u16 species;
|
||||
|
||||
switch (gBattleScripting.reshowMainState)
|
||||
{
|
||||
case 0:
|
||||
ResetSpriteData();
|
||||
break;
|
||||
case 1:
|
||||
SetVBlankCallback(NULL);
|
||||
ScanlineEffect_Clear();
|
||||
sub_800F324();
|
||||
SetBgAttribute(1, BG_ATTR_CHARBASEINDEX, 0);
|
||||
SetBgAttribute(2, BG_ATTR_CHARBASEINDEX, 0);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
ShowBg(2);
|
||||
ShowBg(3);
|
||||
ResetPaletteFade();
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
gBattle_BG1_X = 0;
|
||||
gBattle_BG1_Y = 0;
|
||||
gBattle_BG2_X = 0;
|
||||
gBattle_BG2_Y = 0;
|
||||
gBattle_BG3_X = 0;
|
||||
gBattle_BG3_Y = 0;
|
||||
break;
|
||||
case 2:
|
||||
CpuFastFill(0, (void *)VRAM, VRAM_SIZE);
|
||||
break;
|
||||
case 3:
|
||||
LoadBattleTextboxAndBackground();
|
||||
break;
|
||||
case 4:
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 4;
|
||||
break;
|
||||
case 5:
|
||||
ClearSpritesHealthboxAnimData();
|
||||
break;
|
||||
case 6:
|
||||
if (BattleLoadAllHealthBoxesGfx(gBattleScripting.reshowHelperState))
|
||||
{
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
++gBattleScripting.reshowHelperState;
|
||||
--gBattleScripting.reshowMainState;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (!LoadBattlerSpriteGfx(0))
|
||||
--gBattleScripting.reshowMainState;
|
||||
break;
|
||||
case 8:
|
||||
if (!LoadBattlerSpriteGfx(1))
|
||||
--gBattleScripting.reshowMainState;
|
||||
break;
|
||||
case 9:
|
||||
if (!LoadBattlerSpriteGfx(2))
|
||||
--gBattleScripting.reshowMainState;
|
||||
break;
|
||||
case 0xA:
|
||||
if (!LoadBattlerSpriteGfx(3))
|
||||
--gBattleScripting.reshowMainState;
|
||||
break;
|
||||
case 0xB:
|
||||
CreateBattlerSprite(0);
|
||||
break;
|
||||
case 0xC:
|
||||
CreateBattlerSprite(1);
|
||||
break;
|
||||
case 0xD:
|
||||
CreateBattlerSprite(2);
|
||||
break;
|
||||
case 0xE:
|
||||
CreateBattlerSprite(3);
|
||||
break;
|
||||
case 0xF:
|
||||
CreateHealthboxSprite(0);
|
||||
break;
|
||||
case 0x10:
|
||||
CreateHealthboxSprite(1);
|
||||
break;
|
||||
case 0x11:
|
||||
CreateHealthboxSprite(2);
|
||||
break;
|
||||
case 0x12:
|
||||
CreateHealthboxSprite(3);
|
||||
break;
|
||||
case 0x13:
|
||||
LoadAndCreateEnemyShadowSprites();
|
||||
opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES);
|
||||
SetBattlerShadowSpriteCallback(opponentBattler, species);
|
||||
if (IsDoubleBattle())
|
||||
{
|
||||
opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES);
|
||||
SetBattlerShadowSpriteCallback(opponentBattler, species);
|
||||
}
|
||||
ActionSelectionCreateCursorAt(gActionSelectionCursor[gBattlerInMenuId], 0);
|
||||
if (gWirelessCommType && gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
LoadWirelessStatusIndicatorSpriteGfx();
|
||||
CreateWirelessStatusIndicatorSprite(0, 0);
|
||||
}
|
||||
break;
|
||||
case 0x14:
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
sub_8077AAC();
|
||||
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
|
||||
gPaletteFade.bufferTransferDisabled = 0;
|
||||
SetMainCallback2(BattleMainCB2);
|
||||
sub_80357C8();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
++gBattleScripting.reshowMainState;
|
||||
}
|
||||
|
||||
static void sub_8077AAC(void)
|
||||
{
|
||||
EnableInterrupts(INTR_FLAG_VBLANK);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x3F);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x3F);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN1H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN1V, 0);
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_OBJWIN_ON);
|
||||
}
|
||||
|
||||
static bool8 LoadBattlerSpriteGfx(u8 battler)
|
||||
{
|
||||
if (battler < gBattlersCount)
|
||||
{
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
{
|
||||
if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
|
||||
DecompressGhostFrontPic(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
|
||||
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
|
||||
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
|
||||
else
|
||||
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
|
||||
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, battler);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
|
||||
DecompressTrainerBackPalette(5, battler);
|
||||
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
|
||||
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
|
||||
else
|
||||
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void CreateBattlerSprite(u8 battler)
|
||||
{
|
||||
if (battler < gBattlersCount)
|
||||
{
|
||||
u8 posY;
|
||||
|
||||
if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
|
||||
posY = GetGhostSpriteDefault_Y(battler);
|
||||
else if (gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
|
||||
posY = GetSubstituteSpriteDefault_Y(battler);
|
||||
else
|
||||
posY = GetBattlerSpriteDefault_Y(battler);
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||
return;
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT)
|
||||
{
|
||||
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT)
|
||||
{
|
||||
SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(0));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
|
||||
(8 - gTrainerBackPicCoords[5].size) * 4 + 80,
|
||||
GetBattlerSpriteSubpriority(0));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
}
|
||||
else if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
|
||||
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
|
||||
gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]);
|
||||
}
|
||||
gSprites[gBattlerSpriteIds[battler]].invisible = gBattleSpritesDataPtr->battlerData[battler].invisible;
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateHealthboxSprite(u8 battler)
|
||||
{
|
||||
if (battler < gBattlersCount)
|
||||
{
|
||||
u8 healthboxSpriteId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT)
|
||||
healthboxSpriteId = CreateSafariPlayerHealthboxSprites();
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT)
|
||||
return;
|
||||
else
|
||||
healthboxSpriteId = CreateBattlerHealthboxSprites(battler);
|
||||
gHealthboxSpriteIds[battler] = healthboxSpriteId;
|
||||
InitBattlerHealthboxCoords(battler);
|
||||
SetHealthboxSpriteVisible(healthboxSpriteId);
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
else
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
|
||||
if (GetBattlerPosition(battler) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT)
|
||||
DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], TRUE);
|
||||
else
|
||||
DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], FALSE);
|
||||
if (GetBattlerSide(battler) != B_SIDE_PLAYER)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||
SetHealthboxSpriteInvisible(healthboxSpriteId);
|
||||
}
|
||||
else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||
{
|
||||
SetHealthboxSpriteInvisible(healthboxSpriteId);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user