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