battle_anim_utility_funcs; split battle_intro.s

This commit is contained in:
jiangzhengwenjz
2019-10-02 04:08:59 +08:00
parent cb078ec3a2
commit aa89a0482d
31 changed files with 3178 additions and 5441 deletions
+12 -12
View File
@@ -99,10 +99,10 @@ sub_800FE24: @ 800FE24
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
ldr r1, _0800FF30 @ =gUnknown_2022984
ldr r1, _0800FF30 @ =gBattle_WIN0H
movs r0, 0xF0
strh r0, [r1]
ldr r0, _0800FF34 @ =gUnknown_2022986
ldr r0, _0800FF34 @ =gBattle_WIN0V
strh r4, [r0]
bl ScanlineEffect_Clear
ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
@@ -184,8 +184,8 @@ _0800FEA6:
.align 2, 0
_0800FF28: .4byte 0x05006000
_0800FF2C: .4byte 0x00005051
_0800FF30: .4byte gUnknown_2022984
_0800FF34: .4byte gUnknown_2022986
_0800FF30: .4byte gBattle_WIN0H
_0800FF34: .4byte gBattle_WIN0V
_0800FF38: .4byte gScanlineEffectRegBuffers
_0800FF3C: .4byte gUnknown_824EFE4
_0800FF40: .4byte 0x0000ff10
@@ -3157,11 +3157,11 @@ VBlankCB_Battle: @ 80116F4
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
ldr r0, _080117A8 @ =gUnknown_2022984
ldr r0, _080117A8 @ =gBattle_WIN0H
ldrh r1, [r0]
movs r0, 0x40
bl SetGpuReg
ldr r0, _080117AC @ =gUnknown_2022986
ldr r0, _080117AC @ =gBattle_WIN0V
ldrh r1, [r0]
movs r0, 0x44
bl SetGpuReg
@@ -3188,8 +3188,8 @@ _08011798: .4byte gBattle_BG2_X
_0801179C: .4byte gBattle_BG2_Y
_080117A0: .4byte gBattle_BG3_X
_080117A4: .4byte gBattle_BG3_Y
_080117A8: .4byte gUnknown_2022984
_080117AC: .4byte gUnknown_2022986
_080117A8: .4byte gBattle_WIN0H
_080117AC: .4byte gBattle_WIN0V
_080117B0: .4byte gUnknown_2022988
_080117B4: .4byte gUnknown_202298A
thumb_func_end VBlankCB_Battle
@@ -3543,10 +3543,10 @@ sub_8011A1C: @ 8011A1C
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
ldr r1, _08011B48 @ =gUnknown_2022984
ldr r1, _08011B48 @ =gBattle_WIN0H
movs r0, 0xF0
strh r0, [r1]
ldr r0, _08011B4C @ =gUnknown_2022986
ldr r0, _08011B4C @ =gBattle_WIN0V
strh r4, [r0]
bl ScanlineEffect_Clear
ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
@@ -3643,8 +3643,8 @@ _08011A9C:
.align 2, 0
_08011B40: .4byte 0x05006000
_08011B44: .4byte 0x00005051
_08011B48: .4byte gUnknown_2022984
_08011B4C: .4byte gUnknown_2022986
_08011B48: .4byte gBattle_WIN0H
_08011B4C: .4byte gBattle_WIN0V
_08011B50: .4byte gScanlineEffectRegBuffers
_08011B54: .4byte 0x0000ff10
_08011B58: .4byte gBattle_BG0_X
+28 -28
View File
@@ -16,7 +16,7 @@ ClearBattleAnimationVars: @ 80724C0
strb r1, [r0]
ldr r0, _08072558 @ =gAnimScriptActive
strb r1, [r0]
ldr r0, _0807255C @ =gUnknown_2037EE2
ldr r0, _0807255C @ =gAnimVisualTaskCount
strb r1, [r0]
ldr r0, _08072560 @ =gUnknown_2037EE3
strb r1, [r0]
@@ -86,7 +86,7 @@ _08072520:
.align 2, 0
_08072554: .4byte gUnknown_2037EE0
_08072558: .4byte gAnimScriptActive
_0807255C: .4byte gUnknown_2037EE2
_0807255C: .4byte gAnimVisualTaskCount
_08072560: .4byte gUnknown_2037EE3
_08072564: .4byte gAnimDisableStructPtr
_08072568: .4byte gAnimMoveDmg
@@ -276,10 +276,10 @@ _080726EE:
movs r2, 0x80
bl m4aMPlayVolumeControl
_08072706:
ldr r0, _08072730 @ =gUnknown_2022984
ldr r0, _08072730 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _08072734 @ =gUnknown_2022986
ldr r0, _08072734 @ =gBattle_WIN0V
strh r1, [r0]
ldr r0, _08072738 @ =gUnknown_2022988
strh r1, [r0]
@@ -296,8 +296,8 @@ _08072706:
.align 2, 0
_08072728: .4byte 0x0000ffff
_0807272C: .4byte gMPlayInfo_BGM
_08072730: .4byte gUnknown_2022984
_08072734: .4byte gUnknown_2022986
_08072730: .4byte gBattle_WIN0H
_08072734: .4byte gBattle_WIN0V
_08072738: .4byte gUnknown_2022988
_0807273C: .4byte gUnknown_202298A
thumb_func_end LaunchBattleAnimation
@@ -309,7 +309,7 @@ DestroyAnimSprite: @ 8072740
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
ldr r1, _0807275C @ =gUnknown_2037EE2
ldr r1, _0807275C @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -317,7 +317,7 @@ DestroyAnimSprite: @ 8072740
pop {r0}
bx r0
.align 2, 0
_0807275C: .4byte gUnknown_2037EE2
_0807275C: .4byte gAnimVisualTaskCount
thumb_func_end DestroyAnimSprite
thumb_func_start DestroyAnimVisualTask
@@ -326,14 +326,14 @@ DestroyAnimVisualTask: @ 8072760
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r1, _08072778 @ =gUnknown_2037EE2
ldr r1, _08072778 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08072778: .4byte gUnknown_2037EE2
_08072778: .4byte gAnimVisualTaskCount
thumb_func_end DestroyAnimVisualTask
thumb_func_start DestroyAnimSoundTask
@@ -666,7 +666,7 @@ _080729CC:
adds r0, r7, 0
adds r1, r4, 0
bl CreateSpriteAndAnimate
ldr r1, _08072A0C @ =gUnknown_2037EE2
ldr r1, _08072A0C @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -676,7 +676,7 @@ _080729CC:
.align 2, 0
_08072A04: .4byte gBattleAnimAttacker
_08072A08: .4byte gBattleAnimTarget
_08072A0C: .4byte gUnknown_2037EE2
_08072A0C: .4byte gAnimVisualTaskCount
thumb_func_end ScriptCmd_createsprite
thumb_func_start ScriptCmd_createvisualtask
@@ -729,7 +729,7 @@ _08072A60:
lsls r0, 24
lsrs r0, 24
bl _call_via_r6
ldr r1, _08072A88 @ =gUnknown_2037EE2
ldr r1, _08072A88 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -739,7 +739,7 @@ _08072A60:
.align 2, 0
_08072A80: .4byte gUnknown_2037ED4
_08072A84: .4byte gBattleAnimArgs
_08072A88: .4byte gUnknown_2037EE2
_08072A88: .4byte gAnimVisualTaskCount
thumb_func_end ScriptCmd_createvisualtask
thumb_func_start ScriptCmd_delay
@@ -778,7 +778,7 @@ _08072AC8: .4byte WaitAnimFrameCount
thumb_func_start sub_8072ACC
sub_8072ACC: @ 8072ACC
push {lr}
ldr r0, _08072AE4 @ =gUnknown_2037EE2
ldr r0, _08072AE4 @ =gAnimVisualTaskCount
ldrb r2, [r0]
cmp r2, 0
bne _08072AF0
@@ -790,7 +790,7 @@ sub_8072ACC: @ 8072ACC
strb r2, [r0]
b _08072AF6
.align 2, 0
_08072AE4: .4byte gUnknown_2037EE2
_08072AE4: .4byte gAnimVisualTaskCount
_08072AE8: .4byte gUnknown_2037ED4
_08072AEC: .4byte gUnknown_2037EE0
_08072AF0:
@@ -821,7 +821,7 @@ sub_8072B08: @ 8072B08
push {r7}
movs r0, 0
mov r8, r0
ldr r0, _08072B38 @ =gUnknown_2037EE2
ldr r0, _08072B38 @ =gAnimVisualTaskCount
ldrb r0, [r0]
cmp r0, 0
bne _08072B30
@@ -842,7 +842,7 @@ _08072B30:
strh r0, [r1]
b _08072B62
.align 2, 0
_08072B38: .4byte gUnknown_2037EE2
_08072B38: .4byte gAnimVisualTaskCount
_08072B3C: .4byte gUnknown_2037EE3
_08072B40: .4byte gUnknown_2037F14
_08072B44: .4byte gUnknown_2037F12
@@ -2869,8 +2869,8 @@ _08073AFC:
bx r1
thumb_func_end BattleAnimAdjustPanning
thumb_func_start sub_8073B08
sub_8073B08: @ 8073B08
thumb_func_start BattleAnimAdjustPanning2
BattleAnimAdjustPanning2: @ 8073B08
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -2914,7 +2914,7 @@ _08073B56:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8073B08
thumb_func_end BattleAnimAdjustPanning2
thumb_func_start KeepPanInRange
KeepPanInRange: @ 8073B60
@@ -3301,14 +3301,14 @@ ScriptCmd_panse_27: @ 8073E10
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8073B08
bl BattleAnimAdjustPanning2
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
bl sub_8073B08
bl BattleAnimAdjustPanning2
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -3317,7 +3317,7 @@ ScriptCmd_panse_27: @ 8073E10
asrs r1, 24
mov r8, r1
mov r0, r8
bl sub_8073B08
bl BattleAnimAdjustPanning2
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -3873,7 +3873,7 @@ ScriptCmd_invisible: @ 80742A4
ldr r4, _080742D8 @ =gUnknown_2037ED4
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -3906,7 +3906,7 @@ ScriptCmd_visible: @ 80742E0
ldr r4, _08074318 @ =gUnknown_2037ED4
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -3976,7 +3976,7 @@ _08074370:
lsrs r4, r0, 24
movs r0, 0x1
_0807437C:
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -4058,7 +4058,7 @@ _08074418:
lsrs r4, r0, 24
movs r0, 0x1
_08074424:
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
+8 -8
View File
@@ -1505,7 +1505,7 @@ sub_80A2E64: @ 80A2E64
ands r0, r1
strb r0, [r2]
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x2E]
@@ -1526,7 +1526,7 @@ sub_80A2EA0: @ 80A2EA0
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -1587,7 +1587,7 @@ sub_80A2F0C: @ 80A2F0C
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080A2F38 @ =gSprites
@@ -1641,7 +1641,7 @@ sub_80A2F74: @ 80A2F74
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
@@ -1725,7 +1725,7 @@ sub_80A3004: @ 80A3004
cmp r5, 0
bne _080A3074
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -3924,7 +3924,7 @@ _080A4100:
adds r0, r7
strh r0, [r4, 0x22]
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
_080A411A:
adds r0, r6, 0
bl sub_8076884
@@ -8506,7 +8506,7 @@ sub_80A63B4: @ 80A63B4
ldr r1, _080A6444 @ =gTasks
adds r6, r0, r1
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x8]
@@ -8598,7 +8598,7 @@ _080A6488:
cmp r5, 0x1
bhi _080A649A
movs r0, 0
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
asrs r0, 16
cmp r0, 0
+30 -30
View File
@@ -2252,7 +2252,7 @@ sub_80A7FB0: @ 80A7FB0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -2312,7 +2312,7 @@ sub_80A8014: @ 80A8014
cmp r1, r0
bne _080A8064
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -2350,7 +2350,7 @@ sub_80A8074: @ 80A8074
ldr r0, _080A80C0 @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -2550,7 +2550,7 @@ sub_80A8200: @ 80A8200
lsrs r1, 24
mov r9, r1
movs r0, 0
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
lsrs r0, 16
mov r8, r0
@@ -2720,7 +2720,7 @@ _080A835C: .4byte gTasks
_080A8360: .4byte gBattleAnimArgs
_080A8364:
ldrb r0, [r5]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2902,7 +2902,7 @@ sub_80A84B4: @ 80A84B4
ldr r0, _080A84E4 @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3090,7 +3090,7 @@ sub_80A8638: @ 80A8638
ldr r0, _080A866C @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3146,7 +3146,7 @@ sub_80A86A4: @ 80A86A4
ldr r0, _080A8718 @ =gTasks
adds r4, r1, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r2, 0
@@ -4565,7 +4565,7 @@ sub_80A917C: @ 80A917C
ldr r0, _080A91AC @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4668,7 +4668,7 @@ _080A9250:
_080A9256:
strh r0, [r4, 0x24]
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -4861,7 +4861,7 @@ sub_80A939C: @ 80A939C
movs r0, 0x2
strh r0, [r4, 0x24]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5517,9 +5517,9 @@ sub_80A98B0: @ 80A98B0
movs r6, 0x98
_080A98C4:
movs r5, 0
ldr r1, _080A9918 @ =gUnknown_2022984
ldr r1, _080A9918 @ =gBattle_WIN0H
strh r6, [r1]
ldr r4, _080A991C @ =gUnknown_2022986
ldr r4, _080A991C @ =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r4]
ldrh r1, [r1]
@@ -5553,8 +5553,8 @@ _080A98C4:
pop {r0}
bx r0
.align 2, 0
_080A9918: .4byte gUnknown_2022984
_080A991C: .4byte gUnknown_2022986
_080A9918: .4byte gBattle_WIN0H
_080A991C: .4byte gBattle_WIN0V
_080A9920: .4byte 0x00003f1f
_080A9924: .4byte 0x00003f3f
_080A9928: .4byte gTasks
@@ -5583,7 +5583,7 @@ sub_80A9930: @ 80A9930
lsls r0, r2, 16
cmp r1, r0
blt _080A9970
ldr r0, _080A9968 @ =gUnknown_2022984
ldr r0, _080A9968 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _080A996C @ =sub_80A9984
@@ -5591,10 +5591,10 @@ sub_80A9930: @ 80A9930
b _080A9978
.align 2, 0
_080A9964: .4byte gTasks
_080A9968: .4byte gUnknown_2022984
_080A9968: .4byte gBattle_WIN0H
_080A996C: .4byte sub_80A9984
_080A9970:
ldr r1, _080A9980 @ =gUnknown_2022984
ldr r1, _080A9980 @ =gBattle_WIN0H
lsls r0, r4, 8
orrs r2, r0
strh r2, [r1]
@@ -5603,7 +5603,7 @@ _080A9978:
pop {r0}
bx r0
.align 2, 0
_080A9980: .4byte gUnknown_2022984
_080A9980: .4byte gBattle_WIN0H
thumb_func_end sub_80A9930
thumb_func_start sub_80A9984
@@ -5649,9 +5649,9 @@ _080A99D4: .4byte 0x00007fff
_080A99D8:
cmp r0, 0x4
ble _080A9A0C
ldr r0, _080A9A14 @ =gUnknown_2022984
ldr r0, _080A9A14 @ =gBattle_WIN0H
strh r4, [r0]
ldr r0, _080A9A18 @ =gUnknown_2022986
ldr r0, _080A9A18 @ =gBattle_WIN0V
strh r4, [r0]
ldr r4, _080A9A1C @ =0x00003f3f
movs r0, 0x48
@@ -5674,8 +5674,8 @@ _080A9A0C:
pop {r0}
bx r0
.align 2, 0
_080A9A14: .4byte gUnknown_2022984
_080A9A18: .4byte gUnknown_2022986
_080A9A14: .4byte gBattle_WIN0H
_080A9A18: .4byte gBattle_WIN0V
_080A9A1C: .4byte 0x00003f3f
thumb_func_end sub_80A9984
@@ -5686,7 +5686,7 @@ sub_80A9A20: @ 80A9A20
lsrs r0, 24
adds r6, r0, 0
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080A9A70 @ =gTasks
@@ -5702,7 +5702,7 @@ sub_80A9A20: @ 80A9A20
cmp r0, 0x1
bne _080A9A7C
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -5755,7 +5755,7 @@ sub_80A9AB0: @ 80A9AB0
lsrs r0, 24
adds r6, r0, 0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080A9B00 @ =gTasks
@@ -5771,7 +5771,7 @@ sub_80A9AB0: @ 80A9AB0
cmp r0, 0x1
bne _080A9B0C
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -6088,7 +6088,7 @@ _080A9D2A:
ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -6376,7 +6376,7 @@ _080A9FC6:
ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -7428,7 +7428,7 @@ sub_80AA7C8: @ 80AA7C8
lsrs r5, 24
ldr r0, _080AA7FC @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
+49 -49
View File
@@ -572,7 +572,7 @@ sub_80DE6F0: @ 80DE6F0
adds r1, r2
ldr r0, _080DE710 @ =sub_80DE718
str r0, [r1]
ldr r1, _080DE714 @ =gUnknown_2037EE2
ldr r1, _080DE714 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -580,7 +580,7 @@ sub_80DE6F0: @ 80DE6F0
.align 2, 0
_080DE70C: .4byte gTasks
_080DE710: .4byte sub_80DE718
_080DE714: .4byte gUnknown_2037EE2
_080DE714: .4byte gAnimVisualTaskCount
thumb_func_end sub_80DE6F0
thumb_func_start sub_80DE718
@@ -674,7 +674,7 @@ sub_80DE7B4: @ 80DE7B4
adds r1, r2
ldr r0, _080DE7D4 @ =sub_80DE7DC
str r0, [r1]
ldr r1, _080DE7D8 @ =gUnknown_2037EE2
ldr r1, _080DE7D8 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -682,7 +682,7 @@ sub_80DE7B4: @ 80DE7B4
.align 2, 0
_080DE7D0: .4byte gTasks
_080DE7D4: .4byte sub_80DE7DC
_080DE7D8: .4byte gUnknown_2037EE2
_080DE7D8: .4byte gAnimVisualTaskCount
thumb_func_end sub_80DE7B4
thumb_func_start sub_80DE7DC
@@ -1127,10 +1127,10 @@ sub_80DEB20: @ 80DEB20
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r0, _080DEB80 @ =gUnknown_2022984
ldr r0, _080DEB80 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r4, _080DEB84 @ =gUnknown_2022986
ldr r4, _080DEB84 @ =gBattle_WIN0V
strh r1, [r4]
movs r0, 0x40
movs r1, 0
@@ -1161,8 +1161,8 @@ sub_80DEB20: @ 80DEB20
bx r0
.align 2, 0
_080DEB7C: .4byte 0x00001f3f
_080DEB80: .4byte gUnknown_2022984
_080DEB84: .4byte gUnknown_2022986
_080DEB80: .4byte gBattle_WIN0H
_080DEB84: .4byte gBattle_WIN0V
_080DEB88: .4byte sub_80DEB8C
thumb_func_end sub_80DEB20
@@ -1488,11 +1488,11 @@ sub_80DEDD8: @ 80DEDD8
ldr r1, _080DEE20 @ =gUnknown_202298A
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080DEE24 @ =gUnknown_2022984
ldr r0, _080DEE24 @ =gBattle_WIN0H
ldrh r1, [r0]
movs r0, 0x42
bl SetGpuReg
ldr r0, _080DEE28 @ =gUnknown_2022986
ldr r0, _080DEE28 @ =gBattle_WIN0V
ldrh r1, [r0]
movs r0, 0x46
bl SetGpuReg
@@ -1502,8 +1502,8 @@ _080DEE14: .4byte 0x00001f3f
_080DEE18: .4byte gUnknown_2022988
_080DEE1C: .4byte 0x000098f0
_080DEE20: .4byte gUnknown_202298A
_080DEE24: .4byte gUnknown_2022984
_080DEE28: .4byte gUnknown_2022986
_080DEE24: .4byte gBattle_WIN0H
_080DEE28: .4byte gBattle_WIN0V
_080DEE2C:
ldr r1, _080DEE68 @ =0x00001f3f
movs r0, 0x48
@@ -2021,7 +2021,7 @@ sub_80DF1DC: @ 80DF1DC
strh r0, [r4, 0x12]
strh r5, [r4, 0x14]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -2437,7 +2437,7 @@ sub_80DF524: @ 80DF524
_080DF544: .4byte gTasks
_080DF548:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2469,7 +2469,7 @@ sub_80DF580: @ 80DF580
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x2E
@@ -2857,7 +2857,7 @@ sub_80DF848: @ 80DF848
cmp r0, 0
bne _080DF888
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2901,7 +2901,7 @@ sub_80DF8A0: @ 80DF8A0
cmp r0, 0
bne _080DF8E0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3002,7 +3002,7 @@ sub_80DF964: @ 80DF964
cmp r0, 0
bne _080DF9A4
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3417,7 +3417,7 @@ _080DFCCE:
ldr r1, _080DFD20 @ =gFile_graphics_battle_anims_masks_morning_sun_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080DFD24 @ =gFile_graphics_battle_anims_masks_morning_sun_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -4059,7 +4059,7 @@ _080E01FC:
ldr r1, _080E0254 @ =gFile_graphics_battle_anims_masks_morning_sun_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080E0258 @ =gFile_graphics_battle_anims_masks_morning_sun_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -4371,7 +4371,7 @@ sub_80E0488: @ 80E0488
cmp r0, 0
bne _080E04C8
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4523,7 +4523,7 @@ _080E059C:
subs r0, 0x1
strh r0, [r4, 0x14]
ldrb r0, [r5]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -4874,7 +4874,7 @@ sub_80E0850: @ 80E0850
strh r0, [r4, 0x24]
ldr r0, _080E089C @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5237,7 +5237,7 @@ _080E0B3E:
strh r0, [r2, 0x1E]
mov r1, r8
ldrb r0, [r1]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080E0B7C @ =gTasks
@@ -5535,10 +5535,10 @@ sub_80E0D74: @ 80E0D74
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r0, _080E0DDC @ =gUnknown_2022984
ldr r0, _080E0DDC @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r4, _080E0DE0 @ =gUnknown_2022986
ldr r4, _080E0DE0 @ =gBattle_WIN0V
strh r1, [r4]
movs r0, 0x40
movs r1, 0
@@ -5572,8 +5572,8 @@ sub_80E0D74: @ 80E0D74
bx r0
.align 2, 0
_080E0DD8: .4byte 0x00001f3f
_080E0DDC: .4byte gUnknown_2022984
_080E0DE0: .4byte gUnknown_2022986
_080E0DDC: .4byte gBattle_WIN0H
_080E0DE0: .4byte gBattle_WIN0V
_080E0DE4: .4byte gBattleAnimArgs
_080E0DE8: .4byte sub_80E0DEC
thumb_func_end sub_80E0D74
@@ -5825,7 +5825,7 @@ sub_80E0FB8: @ 80E0FB8
lsrs r0, 24
str r0, [sp, 0x18]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r0, _080E1040 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -6276,7 +6276,7 @@ _080E136C:
strh r0, [r4, 0x24]
ldr r0, _080E13A8 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -6743,7 +6743,7 @@ sub_80E1704: @ 80E1704
strh r0, [r4, 0x8]
ldr r0, _080E1740 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7218,7 +7218,7 @@ _080E1AAA:
bgt _080E1ACA
adds r0, r5, 0
bl DestroyTask
ldr r1, _080E1AD4 @ =gUnknown_2037EE2
ldr r1, _080E1AD4 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -7229,7 +7229,7 @@ _080E1ACA:
pop {r0}
bx r0
.align 2, 0
_080E1AD4: .4byte gUnknown_2037EE2
_080E1AD4: .4byte gAnimVisualTaskCount
thumb_func_end sub_80E1990
thumb_func_start sub_80E1AD8
@@ -7619,7 +7619,7 @@ _080E1DA2:
strh r0, [r5, 0x14]
ldr r0, _080E1DF4 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7892,7 +7892,7 @@ sub_80E1FC4: @ 80E1FC4
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080E2014 @ =gSprites
@@ -9091,7 +9091,7 @@ _080E28F8:
ldrh r0, [r2, 0x2]
strh r0, [r4, 0x8]
ldrb r0, [r2]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -9613,7 +9613,7 @@ sub_80E2CE4: @ 80E2CE4
ldr r0, _080E2D34 @ =gTasks
adds r6, r1, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -10360,7 +10360,7 @@ sub_80E3294: @ 80E3294
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
@@ -10471,7 +10471,7 @@ sub_80E3374: @ 80E3374
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _080E33A0 @ =gTasks
@@ -10856,7 +10856,7 @@ sub_80E3664: @ 80E3664
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x1
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
lsrs r1, r0, 16
str r1, [sp]
@@ -10864,7 +10864,7 @@ sub_80E3664: @ 80E3664
cmp r6, 0
blt _080E36A6
movs r0, 0x1
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
lsrs r1, r0, 16
mov r9, r1
@@ -11251,7 +11251,7 @@ _080E3964:
.4byte _080E3D90
_080E3978:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _080E39C4 @ =gTasks
@@ -11392,7 +11392,7 @@ _080E3AA0:
ldrh r5, [r1, 0x2]
_080E3AA2:
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080E3AC8 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11460,7 +11460,7 @@ _080E3B30:
ldrh r5, [r1, 0x2]
_080E3B32:
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080E3BD0 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11682,7 +11682,7 @@ _080E3D04: .4byte 0x0000ffff
_080E3D08: .4byte gTasks
_080E3D0C:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _080E3D58 @ =gTasks
@@ -11746,7 +11746,7 @@ _080E3D82:
_080E3D8C: .4byte gTasks
_080E3D90:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _080E3E04 @ =gTasks
@@ -11917,7 +11917,7 @@ _080E3E96:
cmp r0, 0x1
bne _080E3FB8
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080E3F24 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -12235,7 +12235,7 @@ sub_80E4160: @ 80E4160
ldr r0, _080E41C8 @ =gTasks
adds r4, r1, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -12757,7 +12757,7 @@ sub_80E4540: @ 80E4540
strh r0, [r4, 0x8]
ldr r0, _080E457C @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
+13 -13
View File
@@ -703,8 +703,8 @@ _080749CC:
bx r1
thumb_func_end sub_807492C
thumb_func_start GetAnimBankSpriteId
GetAnimBankSpriteId: @ 80749D4
thumb_func_start GetAnimBattlerSpriteId
GetAnimBattlerSpriteId: @ 80749D4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -779,7 +779,7 @@ _08074A5E:
bx r1
.align 2, 0
_08074A64: .4byte gBattlerSpriteIds
thumb_func_end GetAnimBankSpriteId
thumb_func_end GetAnimBattlerSpriteId
thumb_func_start StoreSpriteCallbackInData6
StoreSpriteCallbackInData6: @ 8074A68
@@ -2091,8 +2091,8 @@ sub_8075358: @ 8075358
_080753B0: .4byte 0x05000800
thumb_func_end sub_8075358
thumb_func_start sub_80753B4
sub_80753B4: @ 80753B4
thumb_func_start AnimLoadCompressedBgGfx
AnimLoadCompressedBgGfx: @ 80753B4
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -2129,7 +2129,7 @@ sub_80753B4: @ 80753B4
.align 2, 0
_080753FC: .4byte gUnknown_2022BB8
_08075400: .4byte 0x05000800
thumb_func_end sub_80753B4
thumb_func_end AnimLoadCompressedBgGfx
thumb_func_start sub_8075404
sub_8075404: @ 8075404
@@ -3717,12 +3717,12 @@ _08075FB4: .4byte StartAnimLinearTranslation
_08075FB8: .4byte DestroyAnimSprite
thumb_func_end sub_8075F0C
thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode
duplicate_obj_of_side_rel2move_in_transparent_mode: @ 8075FBC
thumb_func_start CloneBattlerSpriteWithBlend
CloneBattlerSpriteWithBlend: @ 8075FBC
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
@@ -3778,7 +3778,7 @@ _0807602A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode
thumb_func_end CloneBattlerSpriteWithBlend
thumb_func_start obj_delete_but_dont_free_vram
obj_delete_but_dont_free_vram: @ 8076030
@@ -3954,7 +3954,7 @@ sub_807616C: @ 807616C
lsrs r4, r0, 24
ldr r0, _0807618C @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -5894,7 +5894,7 @@ sub_8077030: @ 8077030
ldr r0, _080770C4 @ =gTasks
adds r5, r1, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
@@ -6107,7 +6107,7 @@ sub_80771E4: @ 80771E4
lsrs r1, 24
mov r8, r1
movs r0, 0
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
lsrs r7, r0, 16
asrs r0, 16
+9 -9
View File
@@ -18,10 +18,10 @@ sub_80EEC0C: @ 80EEC0C
str r0, [sp, 0x10]
ldr r0, _080EEDB4 @ =gBattleAnimAttacker
ldrb r4, [r0]
ldr r0, _080EEDB8 @ =gUnknown_2022984
ldr r0, _080EEDB8 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _080EEDBC @ =gUnknown_2022986
ldr r0, _080EEDBC @ =gBattle_WIN0V
strh r1, [r0]
ldr r1, _080EEDC0 @ =0x00003f3f
movs r0, 0x48
@@ -161,7 +161,7 @@ sub_80EEC0C: @ 80EEC0C
ldr r1, _080EEDDC @ =gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080EEDE0 @ =gFile_graphics_battle_anims_masks_cure_bubbles_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -204,8 +204,8 @@ sub_80EEC0C: @ 80EEC0C
bx r0
.align 2, 0
_080EEDB4: .4byte gBattleAnimAttacker
_080EEDB8: .4byte gUnknown_2022984
_080EEDBC: .4byte gUnknown_2022986
_080EEDB8: .4byte gBattle_WIN0H
_080EEDBC: .4byte gBattle_WIN0V
_080EEDC0: .4byte 0x00003f3f
_080EEDC4: .4byte 0x00003f3d
_080EEDC8: .4byte 0x00003f42
@@ -336,9 +336,9 @@ _080EEE9C:
bne _080EEFA8
movs r0, 0
bl sub_8073128
ldr r0, _080EEFB4 @ =gUnknown_2022984
ldr r0, _080EEFB4 @ =gBattle_WIN0H
strh r4, [r0]
ldr r0, _080EEFB8 @ =gUnknown_2022986
ldr r0, _080EEFB8 @ =gBattle_WIN0V
strh r4, [r0]
ldr r4, _080EEFBC @ =0x00003f3f
movs r0, 0x48
@@ -439,8 +439,8 @@ _080EEFA8:
pop {r0}
bx r0
.align 2, 0
_080EEFB4: .4byte gUnknown_2022984
_080EEFB8: .4byte gUnknown_2022986
_080EEFB4: .4byte gBattle_WIN0H
_080EEFB8: .4byte gBattle_WIN0V
_080EEFBC: .4byte 0x00003f3f
_080EEFC0: .4byte gSprites
_080EEFC4: .4byte gHealthboxSpriteIds
File diff suppressed because it is too large Load Diff
+1869
View File
File diff suppressed because it is too large Load Diff
+33 -33
View File
@@ -788,13 +788,13 @@ _080B7ED4:
ldr r1, _080B7F48 @ =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r2, _080B7F4C @ =gUnknown_2022984
ldr r2, _080B7F4C @ =gBattle_WIN0H
ldrh r0, [r5, 0x24]
lsls r0, 8
ldrh r1, [r5, 0x26]
orrs r0, r1
strh r0, [r2]
ldr r1, _080B7F50 @ =gUnknown_2022986
ldr r1, _080B7F50 @ =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080B7F54 @ =sub_80B7F58
@@ -811,8 +811,8 @@ _080B7F3C: .4byte gBattle_BG1_X
_080B7F40: .4byte 0xa2600001
_080B7F44: .4byte gScanlineEffectRegBuffers
_080B7F48: .4byte 0x00003f3f
_080B7F4C: .4byte gUnknown_2022984
_080B7F50: .4byte gUnknown_2022986
_080B7F4C: .4byte gBattle_WIN0H
_080B7F50: .4byte gBattle_WIN0V
_080B7F54: .4byte sub_80B7F58
thumb_func_end sub_80B7DA4
@@ -929,7 +929,7 @@ _080B8014:
blt _080B8036
strh r2, [r4, 0x24]
_080B8036:
ldr r3, _080B804C @ =gUnknown_2022984
ldr r3, _080B804C @ =gBattle_WIN0H
ldrh r2, [r4, 0x24]
lsls r0, r2, 8
ldrh r1, [r4, 0x26]
@@ -941,7 +941,7 @@ _080B8036:
bne _080B806A
b _080B8056
.align 2, 0
_080B804C: .4byte gUnknown_2022984
_080B804C: .4byte gBattle_WIN0H
_080B8050:
ldr r1, _080B8060 @ =gScanlineEffect
movs r0, 0x3
@@ -1000,10 +1000,10 @@ _080B80B4:
lsrs r0, 24
cmp r0, 0x1
bne _080B80F0
ldr r0, _080B80E4 @ =gUnknown_2022984
ldr r0, _080B80E4 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _080B80E8 @ =gUnknown_2022986
ldr r0, _080B80E8 @ =gBattle_WIN0V
strh r1, [r0]
ldr r4, _080B80EC @ =0x00003f3f
movs r0, 0x48
@@ -1016,8 +1016,8 @@ _080B80B4:
bl DestroyAnimVisualTask
b _080B829E
.align 2, 0
_080B80E4: .4byte gUnknown_2022984
_080B80E8: .4byte gUnknown_2022986
_080B80E4: .4byte gBattle_WIN0H
_080B80E8: .4byte gBattle_WIN0V
_080B80EC: .4byte 0x00003f3f
_080B80F0:
ldr r0, _080B8110 @ =gBattleAnimTarget
@@ -1208,13 +1208,13 @@ _080B8270:
ldr r1, _080B82AC @ =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r2, _080B82B0 @ =gUnknown_2022984
ldr r2, _080B82B0 @ =gBattle_WIN0H
ldrh r0, [r5, 0x24]
lsls r0, 8
ldrh r1, [r5, 0x26]
orrs r0, r1
strh r0, [r2]
ldr r1, _080B82B4 @ =gUnknown_2022986
ldr r1, _080B82B4 @ =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r1]
movs r0, 0
@@ -1234,8 +1234,8 @@ _080B829E:
.align 2, 0
_080B82A8: .4byte 0x00003f3b
_080B82AC: .4byte 0x00003f3f
_080B82B0: .4byte gUnknown_2022984
_080B82B4: .4byte gUnknown_2022986
_080B82B0: .4byte gBattle_WIN0H
_080B82B4: .4byte gBattle_WIN0V
_080B82B8: .4byte 0x0000080c
_080B82BC: .4byte sub_80B82C0
thumb_func_end sub_80B8070
@@ -1314,7 +1314,7 @@ _080B8348:
movs r0, 0x1
strh r0, [r4, 0xA]
_080B834C:
ldr r2, _080B8390 @ =gUnknown_2022984
ldr r2, _080B8390 @ =gBattle_WIN0H
ldrh r0, [r4, 0x24]
lsls r0, 8
ldrh r1, [r4, 0x26]
@@ -1348,7 +1348,7 @@ _080B836E:
strh r0, [r4, 0xA]
b _080B83FC
.align 2, 0
_080B8390: .4byte gUnknown_2022984
_080B8390: .4byte gBattle_WIN0H
_080B8394:
ldrh r0, [r4, 0xA]
adds r0, 0x1
@@ -1412,10 +1412,10 @@ _080B83FC:
.align 2, 0
_080B8404: .4byte gScanlineEffect
_080B8408:
ldr r0, _080B8430 @ =gUnknown_2022984
ldr r0, _080B8430 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _080B8434 @ =gUnknown_2022986
ldr r0, _080B8434 @ =gBattle_WIN0V
strh r1, [r0]
ldr r4, _080B8438 @ =0x00003f3f
movs r0, 0x48
@@ -1431,8 +1431,8 @@ _080B842A:
pop {r0}
bx r0
.align 2, 0
_080B8430: .4byte gUnknown_2022984
_080B8434: .4byte gUnknown_2022986
_080B8430: .4byte gBattle_WIN0H
_080B8434: .4byte gBattle_WIN0V
_080B8438: .4byte 0x00003f3f
thumb_func_end sub_80B82C0
@@ -1615,7 +1615,7 @@ sub_80B856C: @ 80B856C
_080B8582:
lsls r0, r4, 24
lsrs r0, 24
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -1799,9 +1799,9 @@ sub_80B86EC: @ 80B86EC
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r0, _080B87EC @ =gUnknown_2022984
ldr r0, _080B87EC @ =gBattle_WIN0H
strh r6, [r0]
ldr r0, _080B87F0 @ =gUnknown_2022986
ldr r0, _080B87F0 @ =gBattle_WIN0V
strh r6, [r0]
ldr r1, _080B87F4 @ =0x00003f3f
movs r0, 0x48
@@ -1909,8 +1909,8 @@ _080B87CA:
ldr r1, _080B8814 @ =gEnemyParty
b _080B8828
.align 2, 0
_080B87EC: .4byte gUnknown_2022984
_080B87F0: .4byte gUnknown_2022986
_080B87EC: .4byte gBattle_WIN0H
_080B87F0: .4byte gBattle_WIN0V
_080B87F4: .4byte 0x00003f3f
_080B87F8: .4byte 0x00003f3d
_080B87FC: .4byte 0x00003f42
@@ -1936,7 +1936,7 @@ _080B8828:
lsls r0, 16
lsrs r5, r0, 16
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1958,7 +1958,7 @@ _080B8828:
ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -2075,7 +2075,7 @@ _080B894E:
cmp r0, 0x2
bne _080B89FC
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r5, _080B89F0 @ =gSprites
@@ -2144,9 +2144,9 @@ _080B89F8: .4byte gBattleAnimAttacker
_080B89FC:
cmp r0, 0x3
bne _080B8A5E
ldr r0, _080B8A68 @ =gUnknown_2022984
ldr r0, _080B8A68 @ =gBattle_WIN0H
strh r5, [r0]
ldr r0, _080B8A6C @ =gUnknown_2022986
ldr r0, _080B8A6C @ =gBattle_WIN0V
strh r5, [r0]
ldr r4, _080B8A70 @ =0x00003f3f
movs r0, 0x48
@@ -2189,8 +2189,8 @@ _080B8A5E:
pop {r0}
bx r0
.align 2, 0
_080B8A68: .4byte gUnknown_2022984
_080B8A6C: .4byte gUnknown_2022986
_080B8A68: .4byte gBattle_WIN0H
_080B8A6C: .4byte gBattle_WIN0V
_080B8A70: .4byte 0x00003f3f
thumb_func_end sub_80B8920
@@ -2226,7 +2226,7 @@ _080B8A9C:
.4byte _080B8AD4
_080B8ABC:
ldrb r0, [r2]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _080B8ADA
+4 -4
View File
@@ -1142,7 +1142,7 @@ sub_80AE470: @ 80AE470
ands r0, r5
orrs r0, r1
strh r0, [r6, 0x4]
ldr r1, _080AE4EC @ =gUnknown_2037EE2
ldr r1, _080AE4EC @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -1160,7 +1160,7 @@ _080AE4DC: .4byte gUnknown_83E60B8
_080AE4E0: .4byte gSprites
_080AE4E4: .4byte 0x000003ff
_080AE4E8: .4byte 0xfffffc00
_080AE4EC: .4byte gUnknown_2037EE2
_080AE4EC: .4byte gAnimVisualTaskCount
_080AE4F0: .4byte sub_80AE4F4
thumb_func_end sub_80AE470
@@ -1559,7 +1559,7 @@ sub_80AE7DC: @ 80AE7DC
lsrs r0, 24
strh r0, [r5, 0x22]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -1672,7 +1672,7 @@ _080AE8D2:
b _080AEA04
_080AE8D4:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
+3 -3
View File
@@ -753,7 +753,7 @@ sub_80ACEA4: @ 80ACEA4
ldr r0, _080ACF04 @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -2005,12 +2005,12 @@ _080AD826:
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0x3
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
+11 -11
View File
@@ -408,7 +408,7 @@ sub_80B1BB0: @ 80B1BB0
ldr r0, _080B1BF0 @ =sub_80B1BF8
str r0, [r4, 0x1C]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080B1BF4 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -571,7 +571,7 @@ _080B1CE8:
ble _080B1D30
_080B1D0A:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080B1D38 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -624,7 +624,7 @@ sub_80B1D3C: @ 80B1D3C
_080B1D6E:
adds r0, r4, 0
bl DestroySprite
ldr r1, _080B1D84 @ =gUnknown_2037EE2
ldr r1, _080B1D84 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -633,7 +633,7 @@ _080B1D7C:
pop {r0}
bx r0
.align 2, 0
_080B1D84: .4byte gUnknown_2037EE2
_080B1D84: .4byte gAnimVisualTaskCount
thumb_func_end sub_80B1D3C
thumb_func_start sub_80B1D88
@@ -2101,7 +2101,7 @@ sub_80B2868: @ 80B2868
ands r0, r1
cmp r0, 0
bne _080B28E2
ldr r1, _080B2904 @ =gUnknown_2037EE2
ldr r1, _080B2904 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -2159,7 +2159,7 @@ _080B28F6:
bx r0
.align 2, 0
_080B2900: .4byte gTasks
_080B2904: .4byte gUnknown_2037EE2
_080B2904: .4byte gAnimVisualTaskCount
_080B2908: .4byte gBattleAnimArgs
_080B290C: .4byte gUnknown_83E7C98
_080B2910: .4byte gBattleAnimTarget
@@ -2181,7 +2181,7 @@ _080B2926:
movs r1, 0x1
bl sub_8075160
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080B2954 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -2273,7 +2273,7 @@ _080B29C0:
cmp r0, r1
bge _080B29FE
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080B2A04 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -2311,7 +2311,7 @@ sub_80B2A08: @ 80B2A08
ldr r0, _080B2A48 @ =sub_80B2A50
str r0, [r4, 0x1C]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080B2A4C @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -2900,7 +2900,7 @@ sub_80B2E64: @ 80B2E64
cmp r0, 0
bne _080B2E9C
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080B2E98 @ =gSprites
@@ -2918,7 +2918,7 @@ _080B2E94: .4byte gBattleAnimArgs
_080B2E98: .4byte gSprites
_080B2E9C:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080B2EC8 @ =gSprites
+28 -28
View File
@@ -352,7 +352,7 @@ sub_80B54E8: @ 80B54E8
movs r0, 0x52
bl SetGpuReg
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -470,7 +470,7 @@ sub_80B55C8: @ 80B55C8
_080B55EC: .4byte gTasks
_080B55F0:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r4, 0x8]
@@ -841,7 +841,7 @@ sub_80B58AC: @ 80B58AC
ldr r1, _080B58D8 @ =gTasks
adds r5, r0, r1
movs r0, 0x1
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
movs r6, 0
movs r1, 0
strh r0, [r5, 0x8]
@@ -1159,7 +1159,7 @@ _080B5B2C:
cmp r0, 0xF
beq _080B5B5A
movs r0, 0x1
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
strh r0, [r5, 0x8]
lsls r0, 16
cmp r0, 0
@@ -1238,7 +1238,7 @@ _080B5B68:
movs r0, 0x10
strh r0, [r5, 0xE]
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -1516,7 +1516,7 @@ _080B5E0A:
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -2230,10 +2230,10 @@ sub_80B63B4: @ 80B63B4
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _080B6400 @ =gUnknown_2022984
ldr r0, _080B6400 @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _080B6404 @ =gUnknown_2022986
ldr r0, _080B6404 @ =gBattle_WIN0V
strh r1, [r0]
ldr r1, _080B6408 @ =0x00003f3f
movs r0, 0x48
@@ -2261,21 +2261,21 @@ _080B63FC:
movs r6, 0x28
b _080B6416
.align 2, 0
_080B6400: .4byte gUnknown_2022984
_080B6404: .4byte gUnknown_2022986
_080B6400: .4byte gBattle_WIN0H
_080B6404: .4byte gBattle_WIN0V
_080B6408: .4byte 0x00003f3f
_080B640C: .4byte 0x00003f1f
_080B6410: .4byte gBattleAnimAttacker
_080B6414:
movs r6, 0xC8
_080B6416:
ldr r1, _080B6454 @ =gUnknown_2022984
ldr r1, _080B6454 @ =gBattle_WIN0H
lsls r3, r6, 16
asrs r2, r3, 16
lsls r0, r2, 8
orrs r0, r2
strh r0, [r1]
ldr r1, _080B6458 @ =gUnknown_2022986
ldr r1, _080B6458 @ =gBattle_WIN0V
movs r5, 0x28
ldr r0, _080B645C @ =0x00002828
strh r0, [r1]
@@ -2300,8 +2300,8 @@ _080B6416:
pop {r0}
bx r0
.align 2, 0
_080B6454: .4byte gUnknown_2022984
_080B6458: .4byte gUnknown_2022986
_080B6454: .4byte gBattle_WIN0H
_080B6458: .4byte gBattle_WIN0V
_080B645C: .4byte 0x00002828
_080B6460: .4byte gTasks
_080B6464: .4byte sub_80B6468
@@ -2457,12 +2457,12 @@ _080B6594:
ldr r0, _080B65E4 @ =sub_80B65F0
str r0, [r4]
_080B65C2:
ldr r1, _080B65E8 @ =gUnknown_2022984
ldr r1, _080B65E8 @ =gBattle_WIN0H
mov r2, r9
lsls r0, r2, 8
orrs r7, r0
strh r7, [r1]
ldr r1, _080B65EC @ =gUnknown_2022986
ldr r1, _080B65EC @ =gBattle_WIN0V
lsls r0, r6, 8
orrs r5, r0
strh r5, [r1]
@@ -2476,8 +2476,8 @@ _080B65C2:
bx r0
.align 2, 0
_080B65E4: .4byte sub_80B65F0
_080B65E8: .4byte gUnknown_2022984
_080B65EC: .4byte gUnknown_2022986
_080B65E8: .4byte gBattle_WIN0H
_080B65EC: .4byte gBattle_WIN0V
thumb_func_end sub_80B6468
thumb_func_start sub_80B65F0
@@ -2493,9 +2493,9 @@ sub_80B65F0: @ 80B65F0
lsrs r1, r0, 24
cmp r1, 0
bne _080B6636
ldr r0, _080B6640 @ =gUnknown_2022984
ldr r0, _080B6640 @ =gBattle_WIN0H
strh r1, [r0]
ldr r0, _080B6644 @ =gUnknown_2022986
ldr r0, _080B6644 @ =gBattle_WIN0V
strh r1, [r0]
ldr r4, _080B6648 @ =0x00003f3f
movs r0, 0x48
@@ -2518,8 +2518,8 @@ _080B6636:
bx r0
.align 2, 0
_080B663C: .4byte gPaletteFade
_080B6640: .4byte gUnknown_2022984
_080B6644: .4byte gUnknown_2022986
_080B6640: .4byte gBattle_WIN0H
_080B6644: .4byte gBattle_WIN0V
_080B6648: .4byte 0x00003f3f
thumb_func_end sub_80B65F0
@@ -2711,10 +2711,10 @@ sub_80B67A0: @ 80B67A0
movs r0, 0x52
movs r1, 0
bl SetGpuReg
ldr r0, _080B67CC @ =gUnknown_2022984
ldr r0, _080B67CC @ =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, _080B67D0 @ =gUnknown_2022986
ldr r0, _080B67D0 @ =gBattle_WIN0V
strh r1, [r0]
adds r0, r4, 0
bl DestroyAnimSprite
@@ -2722,8 +2722,8 @@ sub_80B67A0: @ 80B67A0
pop {r0}
bx r0
.align 2, 0
_080B67CC: .4byte gUnknown_2022984
_080B67D0: .4byte gUnknown_2022986
_080B67CC: .4byte gBattle_WIN0H
_080B67D0: .4byte gBattle_WIN0V
thumb_func_end sub_80B67A0
thumb_func_start sub_80B67D4
@@ -3315,7 +3315,7 @@ _080B6C44:
movs r0, 0x10
strh r0, [r6, 0xE]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x10]
@@ -3437,7 +3437,7 @@ _080B6D28:
ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
add r2, sp, 0xC
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
add r1, sp, 0xC
ldrb r1, [r1, 0x8]
+5 -5
View File
@@ -473,7 +473,7 @@ _080B8F00:
.4byte _080B9064
_080B8F14:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -668,7 +668,7 @@ sub_80B908C: @ 80B908C
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080B90CC @ =gSprites
@@ -766,7 +766,7 @@ sub_80B912C: @ 80B912C
_080B914C: .4byte gTasks
_080B9150:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -846,7 +846,7 @@ _080B91DC:
.4byte _080B92AC
_080B91F0:
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -1286,7 +1286,7 @@ _080B9548:
_080B9554: .4byte gBattlerSpriteIds
_080B9558:
ldrb r0, [r6]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
+3 -3
View File
@@ -2015,7 +2015,7 @@ _080B0008:
cmp r0, 0
bne _080B0064
movs r0, 0x1
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
ldr r2, _080B00CC @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -2420,7 +2420,7 @@ _080B0344:
_080B0372:
adds r0, r4, 0
bl DestroySprite
ldr r1, _080B0388 @ =gUnknown_2037EE2
ldr r1, _080B0388 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -2429,7 +2429,7 @@ _080B0380:
pop {r0}
bx r0
.align 2, 0
_080B0388: .4byte gUnknown_2037EE2
_080B0388: .4byte gAnimVisualTaskCount
thumb_func_end sub_80B0148
thumb_func_start sub_80B038C
+9 -9
View File
@@ -121,7 +121,7 @@ sub_80B99D4: @ 80B99D4
ldr r4, _080B9A0C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80B9A14
bl UnpackSelectedBattleAnimPalettes
movs r1, 0x2
ldrsb r1, [r4, r1]
ldrb r2, [r4, 0x4]
@@ -146,8 +146,8 @@ _080B9A0C: .4byte gBattleAnimArgs
_080B9A10: .4byte sub_80B9A5C
thumb_func_end sub_80B99D4
thumb_func_start sub_80B9A14
sub_80B9A14: @ 80B9A14
thumb_func_start UnpackSelectedBattleAnimPalettes
UnpackSelectedBattleAnimPalettes: @ 80B9A14
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -183,7 +183,7 @@ sub_80B9A14: @ 80B9A14
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80B9A14
thumb_func_end UnpackSelectedBattleAnimPalettes
thumb_func_start sub_80B9A5C
sub_80B9A5C: @ 80B9A5C
@@ -226,7 +226,7 @@ sub_80B9A7C: @ 80B9A7C
strh r0, [r5, 0x3C]
movs r1, 0x3C
ldrsh r0, [r5, r1]
bl sub_80B9A14
bl UnpackSelectedBattleAnimPalettes
ldrb r1, [r4, 0x8]
ldrh r2, [r4, 0x6]
bl BlendPalettes
@@ -278,7 +278,7 @@ _080B9B04: .4byte sub_80B9B5C
_080B9B08:
movs r2, 0x3C
ldrsh r0, [r4, r2]
bl sub_80B9A14
bl UnpackSelectedBattleAnimPalettes
adds r3, r0, 0
ldrh r1, [r4, 0x30]
movs r0, 0x80
@@ -331,7 +331,7 @@ sub_80B9B5C: @ 80B9B5C
bne _080B9B82
movs r1, 0x3C
ldrsh r0, [r4, r1]
bl sub_80B9A14
bl UnpackSelectedBattleAnimPalettes
movs r1, 0
movs r2, 0
bl BlendPalettes
@@ -444,7 +444,7 @@ sub_80B9C2C: @ 80B9C2C
adds r4, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
bl sub_80B9A14
bl UnpackSelectedBattleAnimPalettes
movs r1, 0xA
ldrsb r1, [r4, r1]
ldrh r2, [r4, 0x12]
@@ -1827,7 +1827,7 @@ sub_80BA6C8: @ 80BA6C8
adds r4, r0, 0
ldr r5, _080BA728 @ =gBattleAnimArgs
ldrb r0, [r5]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
+4 -4
View File
@@ -696,7 +696,7 @@ sub_80B3418: @ 80B3418
ldr r0, _080B3448 @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -750,7 +750,7 @@ sub_80B3480: @ 80B3480
ldr r0, _080B34CC @ =gTasks
adds r4, r1, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -1804,7 +1804,7 @@ _080B3CAC: .4byte gTasks
_080B3CB0:
ldr r1, _080B3CD4 @ =gBattleAnimArgs
ldrb r0, [r1]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
lsrs r1, r0, 16
mov r9, r1
@@ -1871,7 +1871,7 @@ _080B3CD8:
bl CalcCenterToCornerVec
ldr r1, _080B3D70 @ =gBattleAnimArgs
ldrb r0, [r1]
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
+2 -2
View File
@@ -292,7 +292,7 @@ _080B4854:
ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -825,7 +825,7 @@ _080B4C7A:
strh r0, [r6, 0x24]
strh r5, [r6, 0xA]
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
+5 -5
View File
@@ -1084,7 +1084,7 @@ _080AB42E:
ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80753B4
bl AnimLoadCompressedBgGfx
ldr r0, _080AB460 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
@@ -1991,7 +1991,7 @@ sub_80ABB28: @ 80ABB28
ldr r0, _080ABB78 @ =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBankSpriteId
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -2727,7 +2727,7 @@ _080AC0AE:
ldr r1, [r0]
adds r0, r2, 0
bl _call_via_r1
ldr r1, _080AC144 @ =gUnknown_2037EE2
ldr r1, _080AC144 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -2748,7 +2748,7 @@ _080AC0F8:
ldr r1, [r0]
adds r0, r2, 0
bl _call_via_r1
ldr r1, _080AC144 @ =gUnknown_2037EE2
ldr r1, _080AC144 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -2769,7 +2769,7 @@ _080AC128:
.align 2, 0
_080AC13C: .4byte gBattleAnimArgs
_080AC140: .4byte sub_80B94B4
_080AC144: .4byte gUnknown_2037EE2
_080AC144: .4byte gAnimVisualTaskCount
_080AC148:
movs r2, 0x1A
ldrsh r0, [r4, r2]
+2 -8
View File
@@ -941,14 +941,8 @@ gUnknown_83E7C38:: @ 83E7C38
gUnknown_83E7C98:: @ 83E7C98
.incbin "baserom.gba", 0x3E7C98, 0x30
gUnknown_83E7CC8:: @ 83E7CC8
.incbin "baserom.gba", 0x3E7CC8, 0x2
gUnknown_83E7CCA:: @ 83E7CCA
.incbin "baserom.gba", 0x3E7CCA, 0x4
gUnknown_83E7CCE:: @ 83E7CCE
.incbin "baserom.gba", 0x3E7CCE, 0x6
.section .rodata.83E7CD4
.balign 4
gUnknown_83E7CD4:: @ 83E7CD4
.incbin "baserom.gba", 0x3E7CD4, 0x28
+11 -11
View File
@@ -2412,47 +2412,47 @@ gFile_graphics_battle_anims_sprites_243_palette:: @ 8D2D8CC
.incbin "graphics/battle_anims/sprites/243.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat_sheet:: @ 8D2D8F4
gBattleStatMask_Gfx:: @ 8D2D8F4
.incbin "graphics/battle_anims/masks/stat.4bpp.lz"
.align 2
gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap:: @ 8D2DB04
gBattleStatMask1_Tilemap:: @ 8D2DB04
.incbin "graphics/battle_anims/masks/stat_tilemap_1.bin.lz"
.align 2
gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap:: @ 8D2DC20
gBattleStatMask2_Tilemap:: @ 8D2DC20
.incbin "graphics/battle_anims/masks/stat_tilemap_2.bin.lz"
.align 2
gFile_graphics_battle_anims_masks_stat1_palette:: @ 8D2DD3C
gBattleStatMask1_Pal:: @ 8D2DD3C
.incbin "graphics/battle_anims/masks/stat1.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat2_palette:: @ 8D2DD5C
gBattleStatMask2_Pal:: @ 8D2DD5C
.incbin "graphics/battle_anims/masks/stat2.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat3_palette:: @ 8D2DD7C
gBattleStatMask3_Pal:: @ 8D2DD7C
.incbin "graphics/battle_anims/masks/stat3.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat4_palette:: @ 8D2DD9C
gBattleStatMask4_Pal:: @ 8D2DD9C
.incbin "graphics/battle_anims/masks/stat4.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat5_palette:: @ 8D2DDBC
gBattleStatMask5_Pal:: @ 8D2DDBC
.incbin "graphics/battle_anims/masks/stat5.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat6_palette:: @ 8D2DDDC
gBattleStatMask6_Pal:: @ 8D2DDDC
.incbin "graphics/battle_anims/masks/stat6.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat7_palette:: @ 8D2DDFC
gBattleStatMask7_Pal:: @ 8D2DDFC
.incbin "graphics/battle_anims/masks/stat7.gbapal.lz"
.align 2
gFile_graphics_battle_anims_masks_stat8_palette:: @ 8D2DE1C
gBattleStatMask8_Pal:: @ 8D2DE1C
.incbin "graphics/battle_anims/masks/stat8.gbapal.lz"
.align 2
+1 -1
View File
@@ -836,7 +836,7 @@ struct MonSpritesGfx
u8 field_F4[0x80];
u8 *barFontGfx;
void *field_178;
void *field_17C;
u16 *field_17C;
};
extern u16 gBattle_BG0_X;
+22 -11
View File
@@ -7,14 +7,6 @@
#define BATTLE_BANKS_COUNT 4
#endif // BATTLE_BANKS_COUNT
enum
{
ANIM_BANK_ATTACKER,
ANIM_BANK_TARGET,
ANIM_BANK_ATK_PARTNER,
ANIM_BANK_DEF_PARTNER,
};
enum
{
BG_ANIM_SCREEN_SIZE,
@@ -83,6 +75,7 @@ s16 sub_80A52EC(s16 a);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
bool8 IsBattlerSpriteVisible(u8 battlerId);
s16 KeepPanInRange(s16 a, s32 oldPan);
void sub_80730C0(u16, const u16 *, u16 *, u8);
// battle_anim_80FE840.s
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
@@ -126,7 +119,7 @@ u8 GetBattlerSpriteCoord(u8 bank, u8 attributeId);
bool8 IsBankSpritePresent(u8 bank);
void sub_80A6C68(u8 arg0);
u8 GetAnimBankSpriteId(u8 wantedBank);
u8 GetAnimBattlerSpriteId(u8 wantedBank);
bool8 IsDoubleBattle(void);
u8 sub_80A6D94(void);
u8 sub_80A8364(u8);
@@ -139,7 +132,7 @@ u8 GetGhostSpriteDefault_Y(u8 battlerId);
void sub_8072E48(u8 battlerId, u8);
void sub_8073128(u8);
// battle_anim_80A9C70.s
// battle_anim_status_effects.s
#define STAT_ANIM_PLUS1 15
#define STAT_ANIM_PLUS2 39
#define STAT_ANIM_MINUS1 22
@@ -150,7 +143,7 @@ void sub_8073128(u8);
#define STAT_ANIM_MULTIPLE_MINUS2 58
void LaunchStatusAnimation(u8 bank, u8 statusAnimId);
// battle_anim_8170478.s
// battle_anim_special.s
u8 ItemIdToBallId(u16 itemId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId);
@@ -169,6 +162,17 @@ u8 GetBattlerSpriteSubpriority(u8 battlerId);
void StartAnimLinearTranslation(struct Sprite *sprite);
void sub_80755B8(struct Sprite *sprite);
u8 sub_80768B0(u8 battlerId);
u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4);
u8 sub_8075D80(u8 battlerId);
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
void sub_807543C(u8 bgId, const u32 *);
void AnimLoadCompressedBgGfx(u32, const u32 *, u32);
void sub_80752A0(struct BattleAnimBgData *);
u8 sub_8076E34(s32, u8, s32);
void sub_8075358(u8 bgId);
u32 sub_8075BE8(u8, u8, u8, u8, u8, u8, u8);
void sub_8075458(bool8);
// battle_anim_mon_movement.c
void AnimTask_ShakeMon(u8 taskId);
@@ -185,4 +189,11 @@ void sub_8099980(u8 taskId);
void sub_8099A78(u8 taskId);
void sub_8099BD4(u8 taskId);
// normal.s
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
// battle_anim_utility_funcs.c
void sub_80BB088(u8 taskId);
void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette);
#endif // GUARD_BATTLE_ANIM_H
-2
View File
@@ -77,8 +77,6 @@
#define RGB_BLACK RGB(0, 0, 0)
#define RGB_WHITE RGB(31, 31, 31)
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#define NAKED __attribute__((naked))
#define UNUSED __attribute__((unused))
+35
View File
@@ -538,6 +538,40 @@
#define BGCNT_AFF512x512 0x8000
#define BGCNT_AFF1024x1024 0xC000
// WININ/OUT
#define WININ_WIN0_BG0 (1 << 0)
#define WININ_WIN0_BG1 (1 << 1)
#define WININ_WIN0_BG2 (1 << 2)
#define WININ_WIN0_BG3 (1 << 3)
#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
#define WININ_WIN1_BG3 (1 << 11)
#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)
#define WINOUT_WIN01_BG0 (1 << 0)
#define WINOUT_WIN01_BG1 (1 << 1)
#define WINOUT_WIN01_BG2 (1 << 2)
#define WINOUT_WIN01_BG3 (1 << 3)
#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3)
#define WINOUT_WIN01_OBJ (1 << 4)
#define WINOUT_WIN01_CLR (1 << 5)
#define WINOUT_WINOBJ_BG0 (1 << 8)
#define WINOUT_WINOBJ_BG1 (1 << 9)
#define WINOUT_WINOBJ_BG2 (1 << 10)
#define WINOUT_WINOBJ_BG3 (1 << 11)
#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3)
#define WINOUT_WINOBJ_OBJ (1 << 12)
#define WINOUT_WINOBJ_CLR (1 << 13)
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#define WIN_RANGE2(a, b) ((b) | ((a) << 8))
// BLDCNT
// Bits 0-5 select layers for the 1st target
#define BLDCNT_TGT1_BG0 (1 << 0)
@@ -558,6 +592,7 @@
#define BLDCNT_TGT2_BG3 (1 << 11)
#define BLDCNT_TGT2_OBJ (1 << 12)
#define BLDCNT_TGT2_BD (1 << 13)
#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
// BLDALPHA
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
+15
View File
@@ -961,6 +961,21 @@ extern const u8 gFile_graphics_items_icon_palettes_sapphire_palette[];
extern const u8 gFile_graphics_items_icons_return_to_field_arrow_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_return_to_field_arrow_palette[];
// battle_anim_utility_funcs
extern const u32 gFile_graphics_battle_anims_masks_curse_sheet[];
extern const u32 gFile_graphics_battle_anims_masks_curse_tilemap[];
extern const u32 gBattleStatMask_Gfx[];
extern const u32 gBattleStatMask1_Pal[];
extern const u32 gBattleStatMask2_Pal[];
extern const u32 gBattleStatMask3_Pal[];
extern const u32 gBattleStatMask4_Pal[];
extern const u32 gBattleStatMask5_Pal[];
extern const u32 gBattleStatMask6_Pal[];
extern const u32 gBattleStatMask7_Pal[];
extern const u32 gBattleStatMask8_Pal[];
extern const u32 gBattleStatMask1_Tilemap[];
extern const u32 gBattleStatMask2_Tilemap[];
// title_screen
extern const u16 gGraphics_TitleScreen_PokemonFireRedLogoPals[];
extern const u8 gGraphics_TitleScreen_PokemonFireRedLogoTiles[];
+4 -1
View File
@@ -170,7 +170,8 @@ SECTIONS {
asm/dark.o(.text);
asm/ground.o(.text);
asm/normal.o(.text);
asm/battle_anim_utility_funcs.o(.text);
src/battle_anim_utility_funcs.o(.text);
asm/battle_intro.o(.text);
asm/bike.o(.text);
asm/easy_chat.o(.text);
asm/mon_markings.o(.text);
@@ -420,6 +421,8 @@ SECTIONS {
src/battle_anim_mon_movement.o(.rodata);
src/item.o(.rodata);
data/data_835B488.o(.rodata.83DF09C);
src/battle_anim_utility_funcs.o(.rodata);
data/data_835B488.o(.rodata.83E7CD4);
src/heal_location.o(.rodata);
data/data_835B488.o(.rodata.83EEC98);
src/battle_ai_script_commands.o(.rodata);
+13 -13
View File
@@ -92,7 +92,7 @@ const struct SpriteTemplate gUnknown_83D4EB4 =
// arg 4: frame delay
void AnimTask_ShakeMon(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
if (spriteId == 0xFF)
DestroyAnimVisualTask(taskId);
@@ -150,7 +150,7 @@ void AnimTask_ShakeMon2(u8 taskId)
if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT)
{
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
if (spriteId == 0xFF)
abort = TRUE;
}
@@ -228,7 +228,7 @@ static void AnimTask_ShakeMon2Step(u8 taskId)
// arg 4: delay
void AnimTask_ShakeMonInPlace(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
if (spriteId == 0xFF)
DestroyAnimVisualTask(taskId);
@@ -290,7 +290,7 @@ static void AnimTask_ShakeMonInPlaceStep(u8 taskId)
// arg 4: duration
void AnimTask_ShakeAndSinkMon(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
gSprites[spriteId].pos2.x = gBattleAnimArgs[1];
gTasks[taskId].data[0] = spriteId;
@@ -331,7 +331,7 @@ void AnimTask_TranslateMonElliptical(u8 taskId)
{
u8 wavePeriod = 1;
u8 i;
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
if (gBattleAnimArgs[4] > 5)
gBattleAnimArgs[4] = 5;
for (i = 0; i < gBattleAnimArgs[4]; i++)
@@ -414,7 +414,7 @@ static void DoVerticalDip(struct Sprite * sprite)
{
u8 spriteId;
sprite->invisible = TRUE;
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
sprite->data[0] = gBattleAnimArgs[0];
sprite->data[1] = 0;
sprite->data[2] = gBattleAnimArgs[1];
@@ -581,7 +581,7 @@ void AnimTask_WindUpLunge(u8 taskId)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[5] = -gBattleAnimArgs[5];
}
gTasks[taskId].data[0] = GetAnimBankSpriteId(gBattleAnimArgs[0]);
gTasks[taskId].data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
gTasks[taskId].data[1] = gBattleAnimArgs[1] * 256 / gBattleAnimArgs[3];
gTasks[taskId].data[2] = gBattleAnimArgs[2];
gTasks[taskId].data[3] = gBattleAnimArgs[3];
@@ -627,7 +627,7 @@ void sub_80995FC(u8 taskId)
{
case 0:
case 1:
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
break;
case 2:
if (!IsBattlerSpriteVisible(gBattleAnimAttacker ^ BIT_FLANK))
@@ -678,7 +678,7 @@ void AnimTask_SwayMon(u8 taskId)
u8 spriteId;
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]);
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[4]);
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1];
gTasks[taskId].data[2] = gBattleAnimArgs[2];
@@ -735,7 +735,7 @@ static void AnimTask_SwayMonStep(u8 taskId)
// arg 4: sprite object mode
void AnimTask_ScaleMonAndRestore(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1];
@@ -773,7 +773,7 @@ static void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
void sub_8099980(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
PrepareBattlerSpriteForRotScale(spriteId, 0);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0];
@@ -806,7 +806,7 @@ void sub_8099980(u8 taskId)
void sub_8099A78(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
PrepareBattlerSpriteForRotScale(spriteId, 0);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0];
@@ -888,7 +888,7 @@ void sub_8099BD4(u8 taskId)
gTasks[taskId].data[12] = 0;
gTasks[taskId].data[10] = gBattleAnimArgs[3];
gTasks[taskId].data[11] = gBattleAnimArgs[4];
gTasks[taskId].data[7] = GetAnimBankSpriteId(1);
gTasks[taskId].data[7] = GetAnimBattlerSpriteId(1);
gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].pos2.x;
gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].pos2.y;
gTasks[taskId].data[0] = 0;
+946
View File
@@ -0,0 +1,946 @@
#include "global.h"
#include "battle.h"
#include "battle_anim.h"
#include "gpu_regs.h"
#include "graphics.h"
#include "malloc.h"
#include "palette.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
#include "util.h"
#include "constants/songs.h"
struct AnimStatsChangeData
{
u8 battler1;
u8 battler2;
u8 higherPriority;
s16 data[8];
u16 species;
};
static void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes);
static void AnimTask_BlendSpriteColor_Step2(u8 taskId);
static void sub_80BAB78(u8 taskId);
static void sub_80BABD0(u8 taskId);
static void sub_80BACA8(struct Sprite *sprite);
static void sub_80BAF38(u8 taskId);
static void sub_80BB0D8(u8 taskId);
static void sub_80BB2A0(u8 taskId);
static void sub_80BB4B8(u8 taskId);
static void sub_80BB6CC(u8 taskId);
static void sub_80BB790(u32 selectedPalettes, u16 color);
static void sub_80BB8A4(u8 taskId);
static void sub_80BBC2C(u8 taskId);
static void sub_80BC19C(u8 taskId);
static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = NULL;
static const u16 gUnknown_83E7CC8[] = { RGB(31, 31, 31) };
const u8 gUnknown_83E7CCA[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT };
const u8 gUnknown_83E7CCE[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT };
void sub_80BA7F8(u8 taskId)
{
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
selectedPalettes |= sub_8075CB8((gBattleAnimArgs[0] >> 7) & 1,
(gBattleAnimArgs[0] >> 8) & 1,
(gBattleAnimArgs[0] >> 9) & 1,
(gBattleAnimArgs[0] >> 10) & 1);
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
void sub_80BA83C(u8 taskId)
{
u8 battler;
u32 selectedPalettes;
u8 animBattlers[2];
animBattlers[1] = 0xFF;
selectedPalettes = UnpackSelectedBattleAnimPalettes(1);
switch (gBattleAnimArgs[0])
{
case 2:
selectedPalettes = 0;
// fall through
case 0:
animBattlers[0] = gBattleAnimAttacker;
break;
case 3:
selectedPalettes = 0;
// fall through
case 1:
animBattlers[0] = gBattleAnimTarget;
break;
case 4:
animBattlers[0] = gBattleAnimAttacker;
animBattlers[1] = gBattleAnimTarget;
break;
case 5:
animBattlers[0] = 0xFF;
break;
case 6:
selectedPalettes = 0;
animBattlers[0] = BATTLE_PARTNER(gBattleAnimAttacker);
break;
case 7:
selectedPalettes = 0;
animBattlers[0] = BATTLE_PARTNER(gBattleAnimTarget);
break;
}
for (battler = 0; battler < MAX_BATTLERS_COUNT; ++battler)
{
if (battler != animBattlers[0]
&& battler != animBattlers[1]
&& IsBattlerSpriteVisible(battler))
selectedPalettes |= 0x10000 << sub_8075D80(battler);
}
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
void AnimTask_SetCamouflageBlend(u8 taskId)
{
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
switch (gBattleTerrain)
{
case BATTLE_TERRAIN_GRASS:
gBattleAnimArgs[4] = RGB(12, 24, 2);
break;
case BATTLE_TERRAIN_LONG_GRASS:
gBattleAnimArgs[4] = RGB(0, 15, 2);
break;
case BATTLE_TERRAIN_SAND:
gBattleAnimArgs[4] = RGB(30, 24, 11);
break;
case BATTLE_TERRAIN_UNDERWATER:
gBattleAnimArgs[4] = RGB(0, 0, 18);
break;
case BATTLE_TERRAIN_WATER:
gBattleAnimArgs[4] = RGB(11, 22, 31);
break;
case BATTLE_TERRAIN_POND:
gBattleAnimArgs[4] = RGB(11, 22, 31);
break;
case BATTLE_TERRAIN_MOUNTAIN:
gBattleAnimArgs[4] = RGB(22, 16, 10);
break;
case BATTLE_TERRAIN_CAVE:
gBattleAnimArgs[4] = RGB(14, 9, 3);
break;
case BATTLE_TERRAIN_BUILDING:
gBattleAnimArgs[4] = RGB(31, 31, 31);
break;
case BATTLE_TERRAIN_PLAIN:
gBattleAnimArgs[4] = RGB(31, 31, 31);
break;
}
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
void AnimTask_BlendParticle(u8 taskId)
{
u8 paletteIndex = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
u32 selectedPalettes = 1 << (paletteIndex + 16);
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes)
{
gTasks[taskId].data[0] = selectedPalettes;
gTasks[taskId].data[1] = selectedPalettes >> 16;
gTasks[taskId].data[2] = gBattleAnimArgs[1];
gTasks[taskId].data[3] = gBattleAnimArgs[2];
gTasks[taskId].data[4] = gBattleAnimArgs[3];
gTasks[taskId].data[5] = gBattleAnimArgs[4];
gTasks[taskId].data[10] = gBattleAnimArgs[2];
gTasks[taskId].func = AnimTask_BlendSpriteColor_Step2;
gTasks[taskId].func(taskId);
}
static void AnimTask_BlendSpriteColor_Step2(u8 taskId)
{
u32 selectedPalettes;
u16 singlePaletteMask = 0;
if (gTasks[taskId].data[9] == gTasks[taskId].data[2])
{
gTasks[taskId].data[9] = 0;
selectedPalettes = gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16);
while (selectedPalettes)
{
if (selectedPalettes & 1)
BlendPalette(singlePaletteMask, 16, gTasks[taskId].data[10], gTasks[taskId].data[5]);
singlePaletteMask += 0x10;
selectedPalettes >>= 1;
}
if (gTasks[taskId].data[10] < gTasks[taskId].data[4])
++gTasks[taskId].data[10];
else if (gTasks[taskId].data[10] > gTasks[taskId].data[4])
--gTasks[taskId].data[10];
else
DestroyAnimVisualTask(taskId);
}
else
{
++gTasks[taskId].data[9];
}
}
void sub_80BAB38(u8 taskId)
{
BeginHardwarePaletteFade(gBattleAnimArgs[0],
gBattleAnimArgs[1],
gBattleAnimArgs[2],
gBattleAnimArgs[3],
gBattleAnimArgs[4]);
gTasks[taskId].func = sub_80BAB78;
}
static void sub_80BAB78(u8 taskId)
{
if (!gPaletteFade.active)
DestroyAnimVisualTask(taskId);
}
void sub_80BAB98(u8 taskId)
{
struct Task *task = &gTasks[taskId];
task->data[0] = gBattleAnimArgs[0];
task->data[1] = 0;
task->data[2] = gBattleAnimArgs[1];
task->data[3] = gBattleAnimArgs[2];
task->data[4] = gBattleAnimArgs[3];
task->data[5] = 0;
task->func = sub_80BABD0;
}
static void sub_80BABD0(u8 taskId)
{
struct Task *task = &gTasks[taskId];
if (task->data[4])
{
if (task->data[1])
{
--task->data[1];
}
else
{
task->data[6] = CloneBattlerSpriteWithBlend(task->data[0]);
if (task->data[6] >= 0)
{
gSprites[task->data[6]].oam.priority = task->data[0] ? 1 : 2;
gSprites[task->data[6]].data[0] = task->data[3];
gSprites[task->data[6]].data[1] = taskId;
gSprites[task->data[6]].data[2] = 5;
gSprites[task->data[6]].callback = sub_80BACA8;
++task->data[5];
}
--task->data[4];
task->data[1] = task->data[2];
}
}
else if (task->data[5] == 0)
{
DestroyAnimVisualTask(taskId);
}
}
static void sub_80BACA8(struct Sprite *sprite)
{
if (sprite->data[0])
{
--sprite->data[0];
}
else
{
--gTasks[sprite->data[1]].data[sprite->data[2]];
obj_delete_but_dont_free_vram(sprite);
}
}
void sub_80BACEC(u8 taskId)
{
u16 species;
s32 newSpriteId;
u16 var0;
u16 bg1Cnt;
u8 spriteId;
struct BattleAnimBgData animBgData;
var0 = 0;
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 12));
bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT);
((struct BgCnt *)&bg1Cnt)->priority = 0;
((struct BgCnt *)&bg1Cnt)->screenSize = 0;
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
if (!IsContest())
{
((struct BgCnt *)&bg1Cnt)->charBaseBlock = 1;
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
}
if (IsDoubleBattle() && !IsContest())
{
if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_RIGHT
|| GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT)
{
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)) == TRUE)
{
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority -= 1;
((struct BgCnt *)&bg1Cnt)->priority = 1;
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
var0 = 1;
}
}
}
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(0);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
sub_80752A0(&animBgData);
sub_807543C(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_sheet, animBgData.tilesOffset);
LoadPalette(gUnknown_83E7CC8, animBgData.paletteId * 16 + 1, 2);
gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32;
gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
gTasks[taskId].data[0] = newSpriteId;
gTasks[taskId].data[6] = var0;
gTasks[taskId].func = sub_80BAF38;
}
static void sub_80BAF38(u8 taskId)
{
struct BattleAnimBgData animBgData;
struct Sprite *sprite;
u16 bg1Cnt;
gTasks[taskId].data[10] += 4;
gBattle_BG1_Y -= 4;
if (gTasks[taskId].data[10] == 64)
{
gTasks[taskId].data[10] = 0;
gBattle_BG1_Y += 64;
if (++gTasks[taskId].data[11] == 4)
{
sub_8073128(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
if (!IsContest())
{
bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT);
((struct BgCnt *)&bg1Cnt)->charBaseBlock = 0;
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
}
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
sprite = &gSprites[GetAnimBattlerSpriteId(0)]; // unused
sprite = &gSprites[gTasks[taskId].data[0]];
DestroySprite(sprite);
sub_80752A0(&animBgData);
sub_8075358(animBgData.bgId);
if (gTasks[taskId].data[6] == 1)
++gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority;
gBattle_BG1_Y = 0;
DestroyAnimVisualTask(taskId);
}
}
}
void sub_80BB088(u8 taskId)
{
u8 i;
sAnimStatsChangeData = AllocZeroed(sizeof(struct AnimStatsChangeData));
for (i = 0; i < 8; ++i)
sAnimStatsChangeData->data[i] = gBattleAnimArgs[i];
gTasks[taskId].func = sub_80BB0D8;
}
static void sub_80BB0D8(u8 taskId)
{
if (sAnimStatsChangeData->data[2] == 0)
sAnimStatsChangeData->battler1 = gBattleAnimAttacker;
else
sAnimStatsChangeData->battler1 = gBattleAnimTarget;
sAnimStatsChangeData->battler2 = BATTLE_PARTNER(sAnimStatsChangeData->battler1);
if (IsContest() || (sAnimStatsChangeData->data[3] && !IsBattlerSpriteVisible(sAnimStatsChangeData->battler2)))
sAnimStatsChangeData->data[3] = 0;
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 0);
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
if (IsDoubleBattle() && sAnimStatsChangeData->data[3] == 0)
{
if (GetBattlerPosition(sAnimStatsChangeData->battler1) == B_POSITION_OPPONENT_RIGHT
|| GetBattlerPosition(sAnimStatsChangeData->battler1) == B_POSITION_PLAYER_LEFT)
{
if (IsBattlerSpriteVisible(sAnimStatsChangeData->battler2) == TRUE)
{
gSprites[gBattlerSpriteIds[sAnimStatsChangeData->battler2]].oam.priority -= 1;
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
sAnimStatsChangeData->higherPriority = 1;
}
}
}
if (GetBattlerSide(sAnimStatsChangeData->battler1) != B_SIDE_PLAYER)
sAnimStatsChangeData->species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[sAnimStatsChangeData->battler1]], MON_DATA_SPECIES);
else
sAnimStatsChangeData->species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[sAnimStatsChangeData->battler1]], MON_DATA_SPECIES);
gTasks[taskId].func = sub_80BB2A0;
}
static void sub_80BB2A0(u8 taskId)
{
struct BattleAnimBgData animBgData;
u8 spriteId, newSpriteId = 0;
u8 battlerSpriteId;
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
spriteId = sub_8076E34(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
if (sAnimStatsChangeData->data[3])
{
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
newSpriteId = sub_8076E34(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
}
sub_80752A0(&animBgData);
if (sAnimStatsChangeData->data[0] == 0)
sub_807543C(animBgData.bgId, gBattleStatMask1_Tilemap);
else
sub_807543C(animBgData.bgId, gBattleStatMask2_Tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gBattleStatMask_Gfx, animBgData.tilesOffset);
switch (sAnimStatsChangeData->data[1])
{
case 0:
LoadCompressedPalette(gBattleStatMask2_Pal, animBgData.paletteId * 16, 32);
break;
case 1:
LoadCompressedPalette(gBattleStatMask1_Pal, animBgData.paletteId * 16, 32);
break;
case 2:
LoadCompressedPalette(gBattleStatMask3_Pal, animBgData.paletteId * 16, 32);
break;
case 3:
LoadCompressedPalette(gBattleStatMask4_Pal, animBgData.paletteId * 16, 32);
break;
case 4:
LoadCompressedPalette(gBattleStatMask6_Pal, animBgData.paletteId * 16, 32);
break;
case 5:
LoadCompressedPalette(gBattleStatMask7_Pal, animBgData.paletteId * 16, 32);
break;
case 6:
LoadCompressedPalette(gBattleStatMask8_Pal, animBgData.paletteId * 16, 32);
break;
default:
LoadCompressedPalette(gBattleStatMask5_Pal, animBgData.paletteId * 16, 32);
break;
}
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
if (sAnimStatsChangeData->data[0] == 1)
{
gBattle_BG1_X = 64;
gTasks[taskId].data[1] = -3;
}
else
{
gTasks[taskId].data[1] = 3;
}
if (sAnimStatsChangeData->data[4] == 0)
{
gTasks[taskId].data[4] = 10;
gTasks[taskId].data[5] = 20;
}
else
{
gTasks[taskId].data[4] = 13;
gTasks[taskId].data[5] = 30;
}
gTasks[taskId].data[0] = spriteId;
gTasks[taskId].data[2] = sAnimStatsChangeData->data[3];
gTasks[taskId].data[3] = newSpriteId;
gTasks[taskId].data[6] = sAnimStatsChangeData->higherPriority;
gTasks[taskId].data[7] = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
gTasks[taskId].func = sub_80BB4B8;
if (sAnimStatsChangeData->data[0] == 0)
PlaySE12WithPanning(SE_W255, BattleAnimAdjustPanning2(PAN_SIDE_PLAYER));
else
PlaySE12WithPanning(SE_W327, BattleAnimAdjustPanning2(PAN_SIDE_PLAYER));
}
static void sub_80BB4B8(u8 taskId)
{
gBattle_BG1_Y += gTasks[taskId].data[1];
switch (gTasks[taskId].data[15])
{
case 0:
if (gTasks[taskId].data[11]++ > 0)
{
gTasks[taskId].data[11] = 0;
++gTasks[taskId].data[12];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == gTasks[taskId].data[4])
++gTasks[taskId].data[15];
}
break;
case 1:
if (++gTasks[taskId].data[10] == gTasks[taskId].data[5])
++gTasks[taskId].data[15];
break;
case 2:
if (gTasks[taskId].data[11]++ > 0)
{
gTasks[taskId].data[11] = 0;
--gTasks[taskId].data[12];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
sub_8073128(0);
++gTasks[taskId].data[15];
}
}
break;
case 3:
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
if (gTasks[taskId].data[2])
DestroySprite(&gSprites[gTasks[taskId].data[3]]);
if (gTasks[taskId].data[6] == 1)
++gSprites[gTasks[taskId].data[7]].oam.priority;
Free(sAnimStatsChangeData);
sAnimStatsChangeData = NULL;
DestroyAnimVisualTask(taskId);
break;
}
}
void sub_80BB660(u8 taskId)
{
u32 selectedPalettes = sub_8075CB8(1, 1, 1, 1);
sub_80BB790(selectedPalettes, 0);
gTasks[taskId].data[14] = selectedPalettes >> 16;
selectedPalettes = sub_8075BE8(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
sub_80BB790(selectedPalettes, 0xFFFF);
gTasks[taskId].data[15] = selectedPalettes;
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
gTasks[taskId].func = sub_80BB6CC;
}
static void sub_80BB6CC(u8 taskId)
{
u16 i;
struct Task *task = &gTasks[taskId];
switch (task->data[0])
{
case 0:
if (++task->data[1] > 6)
{
task->data[1] = 0;
task->data[2] = 16;
++task->data[0];
}
break;
case 1:
if (++task->data[1] > 1)
{
task->data[1] = 0;
--task->data[2];
for (i = 0; i < 16; ++i)
{
if ((task->data[15] >> i) & 1)
{
u16 paletteOffset = i * 16;
BlendPalette(paletteOffset, 16, task->data[2], 0xFFFF);
}
if ((task->data[14] >> i) & 1)
{
u16 paletteOffset = i * 16 + 0x100;
BlendPalette(paletteOffset, 16, task->data[2], 0);
}
}
if (task->data[2] == 0)
++task->data[0];
}
break;
case 2:
DestroyAnimVisualTask(taskId);
break;
}
}
static void sub_80BB790(u32 selectedPalettes, u16 color)
{
u16 i, curOffset, paletteOffset;
for (i = 0; i < 32; selectedPalettes >>= 1, ++i)
if (selectedPalettes & 1)
for (curOffset = i * 16, paletteOffset = curOffset; curOffset < paletteOffset + 16; ++curOffset)
gPlttBufferFaded[curOffset] = color;
}
void sub_80BB7DC(u8 taskId)
{
s32 j;
u32 battler, selectedPalettes = 0;
for (battler = 0; battler < MAX_BATTLERS_COUNT; ++battler)
if (gBattleAnimAttacker != battler)
selectedPalettes |= 1 << (battler + 16);
for (j = 5; j != 0; --j)
gBattleAnimArgs[j] = gBattleAnimArgs[j - 1];
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
void sub_80BB82C(u8 taskId)
{
u8 newTaskId;
sub_8075458(0);
newTaskId = CreateTask(sub_80BB8A4, 5);
if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
gTasks[newTaskId].data[1] = gBattleAnimArgs[0];
gTasks[newTaskId].data[2] = gBattleAnimArgs[1];
gTasks[newTaskId].data[3] = gBattleAnimArgs[3];
++gTasks[newTaskId].data[0];
DestroyAnimVisualTask(taskId);
}
static void sub_80BB8A4(u8 taskId)
{
gTasks[taskId].data[10] += gTasks[taskId].data[1];
gTasks[taskId].data[11] += gTasks[taskId].data[2];
gBattle_BG3_X += gTasks[taskId].data[10] >> 8;
gBattle_BG3_Y += gTasks[taskId].data[11] >> 8;
gTasks[taskId].data[10] &= 0xFF;
gTasks[taskId].data[11] &= 0xFF;
if (gBattleAnimArgs[7] == gTasks[taskId].data[3])
{
gBattle_BG3_X = 0;
gBattle_BG3_Y = 0;
sub_8075458(1);
DestroyTask(taskId);
}
}
void AnimTask_GetAttackerSide(u8 taskId)
{
gBattleAnimArgs[7] = GetBattlerSide(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId);
}
void AnimTask_GetTargetSide(u8 taskId)
{
gBattleAnimArgs[7] = GetBattlerSide(gBattleAnimTarget);
DestroyAnimVisualTask(taskId);
}
void AnimTask_GetTargetIsAttackerPartner(u8 taskId)
{
gBattleAnimArgs[7] = BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget;
DestroyAnimVisualTask(taskId);
}
void sub_80BB9B0(u8 taskId)
{
u16 battler;
for (battler = 0; battler < MAX_BATTLERS_COUNT; ++battler)
if (battler != gBattleAnimAttacker && IsBattlerSpriteVisible(battler))
gSprites[gBattlerSpriteIds[battler]].invisible = gBattleAnimArgs[0];
DestroyAnimVisualTask(taskId);
}
void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette)
{
u16 species;
u8 spriteId, newSpriteId = 0;
u16 bg1Cnt;
struct BattleAnimBgData animBgData;
u8 battler2 = BATTLE_PARTNER(battler1);
if (IsContest() || (arg4 && !IsBattlerSpriteVisible(battler2)))
arg4 = 0;
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT);
((vBgCnt *)&bg1Cnt)->priority = 0;
((vBgCnt *)&bg1Cnt)->screenSize = 0;
((vBgCnt *)&bg1Cnt)->areaOverflowMode = 1;
if (!IsContest())
((vBgCnt *)&bg1Cnt)->charBaseBlock = 1;
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
if (GetBattlerSide(battler1) != B_SIDE_PLAYER)
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
spriteId = sub_8076E34(battler1, gBattlerSpriteIds[battler1], species);
if (arg4)
newSpriteId = sub_8076E34(battler2, gBattlerSpriteIds[battler2], species);
sub_80752A0(&animBgData);
sub_807543C(animBgData.bgId, tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset);
LoadCompressedPalette(palette, animBgData.paletteId * 16, 32);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gTasks[taskId].data[1] = arg2;
gTasks[taskId].data[4] = arg5;
gTasks[taskId].data[5] = arg7;
gTasks[taskId].data[6] = arg6;
gTasks[taskId].data[0] = spriteId;
gTasks[taskId].data[2] = arg4;
gTasks[taskId].data[3] = newSpriteId;
gTasks[taskId].func = sub_80BBC2C;
}
static void sub_80BBC2C(u8 taskId)
{
gTasks[taskId].data[13] += gTasks[taskId].data[1] < 0 ? -gTasks[taskId].data[1] : gTasks[taskId].data[1];
if (gTasks[taskId].data[1] < 0)
gBattle_BG1_Y -= gTasks[taskId].data[13] >> 8;
else
gBattle_BG1_Y += gTasks[taskId].data[13] >> 8;
gTasks[taskId].data[13] &= 0xFF;
switch (gTasks[taskId].data[15])
{
case 0:
if (gTasks[taskId].data[11]++ >= gTasks[taskId].data[6])
{
gTasks[taskId].data[11] = 0;
++gTasks[taskId].data[12];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == gTasks[taskId].data[4])
++gTasks[taskId].data[15];
}
break;
case 1:
if (++gTasks[taskId].data[10] == gTasks[taskId].data[5])
++gTasks[taskId].data[15];
break;
case 2:
if (gTasks[taskId].data[11]++ >= gTasks[taskId].data[6])
{
gTasks[taskId].data[11] = 0;
--gTasks[taskId].data[12];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
sub_8073128(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
| WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR
| WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
if (!IsContest())
{
u16 bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT);
((vBgCnt *)&bg1Cnt)->charBaseBlock = 0;
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
}
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
if (gTasks[taskId].data[2])
DestroySprite(&gSprites[gTasks[taskId].data[3]]);
DestroyAnimVisualTask(taskId);
}
}
break;
}
}
void AnimTask_GetBattleTerrain(u8 taskId)
{
gBattleAnimArgs[0] = gBattleTerrain;
DestroyAnimVisualTask(taskId);
}
void sub_80BBE10(u8 taskId)
{
gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
DestroyAnimVisualTask(taskId);
}
void sub_80BBE3C(u8 taskId)
{
FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C);
DestroyAnimVisualTask(taskId);
}
void sub_80BBE6C(u8 taskId)
{
u32 selectedPalettes;
s32 paletteIndex = 0;
if (gBattleAnimArgs[0] == 0)
for (selectedPalettes = sub_8075BE8(1, 0, 0, 0, 0, 0, 0);
(selectedPalettes & 1) == 0;
++paletteIndex)
selectedPalettes >>= 1;
else if (gBattleAnimArgs[0] == 1)
paletteIndex = gBattleAnimAttacker + 16;
else if (gBattleAnimArgs[0] == 2)
paletteIndex = gBattleAnimTarget + 16;
memcpy(&gMonSpritesGfxPtr->field_17C[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[paletteIndex * 16], 32);
DestroyAnimVisualTask(taskId);
}
void sub_80BBF08(u8 taskId)
{
u32 selectedPalettes;
s32 paletteIndex = 0;
if (gBattleAnimArgs[0] == 0)
for (selectedPalettes = sub_8075BE8(1, 0, 0, 0, 0, 0, 0);
(selectedPalettes & 1) == 0;
++paletteIndex)
selectedPalettes >>= 1;
else if (gBattleAnimArgs[0] == 1)
paletteIndex = gBattleAnimAttacker + 16;
else if (gBattleAnimArgs[0] == 2)
paletteIndex = gBattleAnimTarget + 16;
memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gMonSpritesGfxPtr->field_17C[gBattleAnimArgs[1] * 16], 32);
DestroyAnimVisualTask(taskId);
}
void sub_80BBFA4(u8 taskId)
{
u32 selectedPalettes;
s32 paletteIndex = 0;
if (gBattleAnimArgs[0] == 0)
for (selectedPalettes = sub_8075BE8(1, 0, 0, 0, 0, 0, 0);
(selectedPalettes & 1) == 0;
++paletteIndex)
selectedPalettes >>= 1;
else if (gBattleAnimArgs[0] == 1)
paletteIndex = gBattleAnimAttacker + 16;
else if (gBattleAnimArgs[0] == 2)
paletteIndex = gBattleAnimTarget + 16;
memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gPlttBufferFaded[paletteIndex * 16], 32);
DestroyAnimVisualTask(taskId);
}
void AnimTask_IsContest(u8 taskId)
{
if (IsContest())
gBattleAnimArgs[7] = 1;
else
gBattleAnimArgs[7] = 0;
DestroyAnimVisualTask(taskId);
}
void sub_80BC060(u8 taskId)
{
gBattleAnimAttacker = gBattlerTarget;
gBattleAnimTarget = gEffectBattler;
DestroyAnimVisualTask(taskId);
}
void AnimTask_IsTargetSameSide(u8 taskId)
{
if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
gBattleAnimArgs[7] = 1;
else
gBattleAnimArgs[7] = 0;
DestroyAnimVisualTask(taskId);
}
void sub_80BC0DC(u8 taskId)
{
gBattleAnimTarget = gBattlerTarget;
DestroyAnimVisualTask(taskId);
}
void sub_80BC0FC(u8 taskId)
{
gBattleAnimAttacker = gBattlerAttacker;
gBattleAnimTarget = gEffectBattler;
DestroyAnimVisualTask(taskId);
}
void sub_80BC12C(u8 taskId)
{
if (IsContest())
{
DestroyAnimVisualTask(taskId);
}
else
{
gTasks[taskId].data[0] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible;
gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible = 1;
gTasks[taskId].func = sub_80BC19C;
--gAnimVisualTaskCount;
}
}
static void sub_80BC19C(u8 taskId)
{
if (gBattleAnimArgs[7] == 0x1000)
{
gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible = (u8)gTasks[taskId].data[0] & 1;
DestroyTask(taskId);
}
}
+4 -5
View File
@@ -44,10 +44,10 @@ gBattle_BG3_X: @ 2022980
gBattle_BG3_Y: @ 2022982
.space 0x2
gUnknown_2022984: @ 2022984
gBattle_WIN0H: @ 2022984
.space 0x2
gUnknown_2022986: @ 2022986
gBattle_WIN0V: @ 2022986
.space 0x2
gUnknown_2022988: @ 2022988
@@ -621,7 +621,7 @@ gUnknown_2037EE0: @ 2037EE0
gAnimScriptActive: @ 2037EE1
.space 0x1
gUnknown_2037EE2: @ 2037EE2
gAnimVisualTaskCount: @ 2037EE2
.space 0x1
gUnknown_2037EE3: @ 2037EE3
@@ -884,8 +884,7 @@ gUnknown_203999C: @ 203999C
gUnknown_20399A4: @ 20399A4
.space 0x10
gUnknown_20399B4: @ 20399B4
.space 0x4
.include "src/battle_anim_utility_funcs.o"
gUnknown_20399B8: @ 20399B8
.space 0x4