Start porting ruby battle anim file

This commit is contained in:
DizzyEggg
2018-10-06 23:04:53 +02:00
parent b9e38a569e
commit 54fc92bc92
15 changed files with 905 additions and 1864 deletions
+31 -1701
View File
File diff suppressed because it is too large Load Diff
+86 -86
View File
@@ -183,7 +183,7 @@ sub_80FE988: @ 80FE988
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldrh r0, [r6, 0x6] ldrh r0, [r6, 0x6]
strh r0, [r4, 0x38] strh r0, [r4, 0x38]
ldr r1, =sub_80FE9E4 ldr r1, =sub_80FE9E4
@@ -200,7 +200,7 @@ sub_80FE988: @ 80FE988
sub_80FE9E4: @ 80FE9E4 sub_80FE9E4: @ 80FE9E4
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080FE9FA beq _080FE9FA
@@ -350,7 +350,7 @@ sub_80FEAD8: @ 80FEAD8
sub_80FEB28: @ 80FEB28 sub_80FEB28: @ 80FEB28
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080FEB3C beq _080FEB3C
@@ -541,7 +541,7 @@ _080FEC68:
sub_80FECB8: @ 80FECB8 sub_80FECB8: @ 80FECB8
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080FECE2 beq _080FECE2
@@ -781,7 +781,7 @@ sub_80FEE78: @ 80FEE78
adds r0, r5 adds r0, r5
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
movs r0, 0x40 movs r0, 0x40
strh r0, [r4, 0x38] strh r0, [r4, 0x38]
ldr r1, =sub_80FEECC ldr r1, =sub_80FEECC
@@ -798,7 +798,7 @@ sub_80FEE78: @ 80FEE78
sub_80FEECC: @ 80FEECC sub_80FEECC: @ 80FEECC
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080FEF38 bne _080FEF38
@@ -878,7 +878,7 @@ sub_80FEF44: @ 80FEF44
adds r0, r5 adds r0, r5
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
movs r0, 0x40 movs r0, 0x40
strh r0, [r4, 0x38] strh r0, [r4, 0x38]
ldr r1, =sub_80FEF98 ldr r1, =sub_80FEF98
@@ -895,7 +895,7 @@ sub_80FEF44: @ 80FEF44
sub_80FEF98: @ 80FEF98 sub_80FEF98: @ 80FEF98
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080FEFF0 bne _080FEFF0
@@ -1175,7 +1175,7 @@ sub_80FF1C0: @ 80FF1C0
movs r0, 0x1 movs r0, 0x1
strh r0, [r6, 0x2E] strh r0, [r6, 0x2E]
adds r0, r6, 0 adds r0, r6, 0
bl AnimateBallThrow bl TranslateAnimArc
ldrh r0, [r6, 0x3C] ldrh r0, [r6, 0x3C]
strh r5, [r6, 0x2E] strh r5, [r6, 0x2E]
lsls r4, 16 lsls r4, 16
@@ -3161,7 +3161,7 @@ _08100180:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08100196 bne _08100196
@@ -3190,7 +3190,7 @@ _081001B4:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081001CA bne _081001CA
@@ -3219,7 +3219,7 @@ _081001E6:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081001FC bne _081001FC
@@ -3272,7 +3272,7 @@ _08100254:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0810026A bne _0810026A
@@ -3403,7 +3403,7 @@ _08100362:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08100378 bne _08100378
@@ -3514,7 +3514,7 @@ _08100448:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081004FC beq _081004FC
@@ -3566,7 +3566,7 @@ _081004B6:
adds r1, r2, 0 adds r1, r2, 0
bl sub_8100524 bl sub_8100524
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081004FC beq _081004FC
@@ -4869,7 +4869,7 @@ _08100F06:
ldr r6, =gBattleAnimAttacker ldr r6, =gBattleAnimAttacker
ldrb r0, [r6] ldrb r0, [r6]
movs r1, 0 movs r1, 0
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
ldr r4, =gBattleAnimArgs ldr r4, =gBattleAnimArgs
lsrs r0, 24 lsrs r0, 24
@@ -4878,7 +4878,7 @@ _08100F06:
strh r0, [r5, 0x20] strh r0, [r5, 0x20]
ldrb r0, [r6] ldrb r0, [r6]
movs r1, 0x1 movs r1, 0x1
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldrh r4, [r4, 0x2] ldrh r4, [r4, 0x2]
@@ -9082,7 +9082,7 @@ _08103074:
subs r0, 0x28 subs r0, 0x28
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldrh r0, [r5, 0x6] ldrh r0, [r5, 0x6]
strh r0, [r4, 0x38] strh r0, [r4, 0x38]
ldr r0, =sub_81030B0 ldr r0, =sub_81030B0
@@ -9097,7 +9097,7 @@ _08103074:
sub_81030B0: @ 81030B0 sub_81030B0: @ 81030B0
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08103100 bne _08103100
@@ -11528,7 +11528,7 @@ _08104448:
adds r0, r6 adds r0, r6
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldrh r0, [r7] ldrh r0, [r7]
strh r0, [r5, 0x38] strh r0, [r5, 0x38]
ldrh r0, [r5, 0x2E] ldrh r0, [r5, 0x2E]
@@ -11548,7 +11548,7 @@ _08104448:
sub_81044BC: @ 81044BC sub_81044BC: @ 81044BC
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08104520 beq _08104520
@@ -11659,7 +11659,7 @@ _0810458A:
sub_8104594: @ 8104594 sub_8104594: @ 8104594
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081045A8 beq _081045A8
@@ -12761,7 +12761,7 @@ sub_8104E74: @ 8104E74
adds r5, r1, r0 adds r5, r1, r0
ldr r4, =gBattleAnimTarget ldr r4, =gBattleAnimTarget
ldrb r0, [r4] ldrb r0, [r4]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r0, 0x20 adds r0, 0x20
@@ -12969,7 +12969,7 @@ sub_810501C: @ 810501C
movs r5, 0 movs r5, 0
strh r0, [r4, 0x20] strh r0, [r4, 0x20]
ldrb r0, [r6] ldrb r0, [r6]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r0, 0x10 adds r0, 0x10
@@ -13271,7 +13271,7 @@ _0810526A:
sub_8105284: @ 8105284 sub_8105284: @ 8105284
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810529E beq _0810529E
@@ -13526,7 +13526,7 @@ _0810549E:
ldrh r0, [r2] ldrh r0, [r2]
strh r0, [r5, 0x2E] strh r0, [r5, 0x2E]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r1, =sub_8105284 ldr r1, =sub_8105284
str r1, [r5, 0x1C] str r1, [r5, 0x1C]
adds r0, r5, 0 adds r0, r5, 0
@@ -15088,7 +15088,7 @@ sub_8106140: @ 8106140
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =sub_810618C ldr r0, =sub_810618C
str r0, [r4, 0x1C] str r0, [r4, 0x1C]
pop {r4,r5} pop {r4,r5}
@@ -15101,7 +15101,7 @@ sub_8106140: @ 8106140
sub_810618C: @ 810618C sub_810618C: @ 810618C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081061B6 bne _081061B6
@@ -17269,7 +17269,7 @@ _081072D8:
lsrs r0, 24 lsrs r0, 24
strh r0, [r6, 0x36] strh r0, [r6, 0x36]
adds r0, r6, 0 adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =SpriteCallbackDummy ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0 adds r4, r0, 0
@@ -17339,7 +17339,7 @@ sub_8107380: @ 8107380
movs r0, 0x1 movs r0, 0x1
strh r0, [r5, 0x2E] strh r0, [r5, 0x2E]
adds r0, r5, 0 adds r0, r5, 0
bl sub_80A6F3C bl TranslateAnimLinear
mov r1, r8 mov r1, r8
lsrs r6, r1, 8 lsrs r6, r1, 8
movs r0, 0x2E movs r0, 0x2E
@@ -17464,7 +17464,7 @@ _08107482:
adds r0, r7 adds r0, r7
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =sub_81074E4 ldr r0, =sub_81074E4
str r0, [r5, 0x1C] str r0, [r5, 0x1C]
adds r2, r5, 0 adds r2, r5, 0
@@ -17502,7 +17502,7 @@ sub_81074E4: @ 81074E4
strb r0, [r2] strb r0, [r2]
_08107506: _08107506:
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08107518 beq _08107518
@@ -17637,7 +17637,7 @@ sub_81075EC: @ 81075EC
lsrs r0, 24 lsrs r0, 24
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
movs r0, 0x2E movs r0, 0x2E
ldrsh r1, [r5, r0] ldrsh r1, [r5, r0]
movs r0, 0xD2 movs r0, 0xD2
@@ -17678,7 +17678,7 @@ _08107660:
sub_8107674: @ 8107674 sub_8107674: @ 8107674
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08107688 beq _08107688
@@ -20234,7 +20234,7 @@ _08108B1A:
sub_8108B2C: @ 8108B2C sub_8108B2C: @ 8108B2C
push {r4-r6,lr} push {r4-r6,lr}
adds r6, r0, 0 adds r6, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08108B86 beq _08108B86
@@ -20283,7 +20283,7 @@ _08108B86:
sub_8108B94: @ 8108B94 sub_8108B94: @ 8108B94
push {r4-r6,lr} push {r4-r6,lr}
adds r5, r0, 0 adds r5, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08108BD0 beq _08108BD0
@@ -21144,7 +21144,7 @@ sub_8109244: @ 8109244
lsrs r0, 24 lsrs r0, 24
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =sub_810929C ldr r0, =sub_810929C
str r0, [r5, 0x1C] str r0, [r5, 0x1C]
_0810928E: _0810928E:
@@ -21158,7 +21158,7 @@ _0810928E:
sub_810929C: @ 810929C sub_810929C: @ 810929C
push {r4-r6,lr} push {r4-r6,lr}
adds r6, r0, 0 adds r6, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081092E4 beq _081092E4
@@ -22386,7 +22386,7 @@ _08109C3E:
sub_8109C4C: @ 8109C4C sub_8109C4C: @ 8109C4C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08109CA4 bne _08109CA4
@@ -23433,7 +23433,7 @@ sub_810A46C: @ 810A46C
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldrh r0, [r5, 0x4] ldrh r0, [r5, 0x4]
strh r0, [r4, 0x38] strh r0, [r4, 0x38]
ldrh r0, [r5, 0xA] ldrh r0, [r5, 0xA]
@@ -23468,7 +23468,7 @@ sub_810A46C: @ 810A46C
sub_810A4F4: @ 810A4F4 sub_810A4F4: @ 810A4F4
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0810A55E bne _0810A55E
@@ -24336,7 +24336,7 @@ sub_810AB78: @ 810AB78
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
strh r6, [r4, 0x38] strh r6, [r4, 0x38]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r1, =sub_810ACC0 ldr r1, =sub_810ACC0
adds r0, r4, 0 adds r0, r4, 0
bl StoreSpriteCallbackInData6 bl StoreSpriteCallbackInData6
@@ -24394,7 +24394,7 @@ _0810AC86:
sub_810AC8C: @ 810AC8C sub_810AC8C: @ 810AC8C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810ACB4 beq _0810ACB4
@@ -26828,7 +26828,7 @@ _0810BFCC:
adds r0, r1 adds r0, r1
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
movs r0, 0x40 movs r0, 0x40
strh r0, [r5, 0x38] strh r0, [r5, 0x38]
ldr r1, =sub_810C008 ldr r1, =sub_810C008
@@ -26845,7 +26845,7 @@ _0810BFCC:
sub_810C008: @ 810C008 sub_810C008: @ 810C008
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0810C092 bne _0810C092
@@ -27608,7 +27608,7 @@ _0810C684:
strb r0, [r1] strb r0, [r1]
_0810C6B8: _0810C6B8:
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =sub_810C6D4 ldr r0, =sub_810C6D4
str r0, [r5, 0x1C] str r0, [r5, 0x1C]
pop {r3} pop {r3}
@@ -27642,7 +27642,7 @@ _0810C6F4:
b _0810C90C b _0810C90C
_0810C6F6: _0810C6F6:
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
ldr r1, =gSineTable ldr r1, =gSineTable
movs r2, 0x38 movs r2, 0x38
ldrsh r0, [r4, r2] ldrsh r0, [r4, r2]
@@ -27731,12 +27731,12 @@ _0810C78E:
ands r0, r1 ands r0, r1
strh r0, [r4, 0x38] strh r0, [r4, 0x38]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
b _0810C90C b _0810C90C
.pool .pool
_0810C7BC: _0810C7BC:
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
ldr r1, =gSineTable ldr r1, =gSineTable
movs r2, 0x38 movs r2, 0x38
ldrsh r0, [r4, r2] ldrsh r0, [r4, r2]
@@ -27872,7 +27872,7 @@ _0810C8B6:
.pool .pool
_0810C8D0: _0810C8D0:
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810C90C beq _0810C90C
@@ -28414,7 +28414,7 @@ _0810CCCE:
sub_810CD1C: @ 810CD1C sub_810CD1C: @ 810CD1C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810CD3E beq _0810CD3E
@@ -29021,7 +29021,7 @@ _0810D1FE:
strh r0, [r6, 0x34] strh r0, [r6, 0x34]
strh r0, [r6, 0x36] strh r0, [r6, 0x36]
adds r0, r6, 0 adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldrh r0, [r4, 0xA] ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38] strh r0, [r6, 0x38]
ldrh r0, [r4, 0x8] ldrh r0, [r4, 0x8]
@@ -29039,7 +29039,7 @@ _0810D1FE:
sub_810D240: @ 810D240 sub_810D240: @ 810D240
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0810D26C bne _0810D26C
@@ -29616,7 +29616,7 @@ sub_810D6A8: @ 810D6A8
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x36] strh r0, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r1, =move_anim_8074EE0 ldr r1, =move_anim_8074EE0
adds r0, r4, 0 adds r0, r4, 0
bl StoreSpriteCallbackInData6 bl StoreSpriteCallbackInData6
@@ -29892,7 +29892,7 @@ _0810D918:
lsrs r0, 24 lsrs r0, 24
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r1, =DestroyAnimSprite ldr r1, =DestroyAnimSprite
adds r0, r5, 0 adds r0, r5, 0
bl StoreSpriteCallbackInData6 bl StoreSpriteCallbackInData6
@@ -30234,7 +30234,7 @@ _0810DBC2:
sub_810DC10: @ 810DC10 sub_810DC10: @ 810DC10
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810DC24 beq _0810DC24
@@ -30309,7 +30309,7 @@ _0810DC72:
sub_810DCB4: @ 810DCB4 sub_810DCB4: @ 810DCB4
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810DCC8 beq _0810DCC8
@@ -30716,7 +30716,7 @@ _0810DFC8:
adds r0, r4 adds r0, r4
strh r0, [r6, 0x36] strh r0, [r6, 0x36]
adds r0, r6, 0 adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =sub_80A67BC ldr r0, =sub_80A67BC
str r0, [r6, 0x1C] str r0, [r6, 0x1C]
ldr r1, =sub_810E028 ldr r1, =sub_810E028
@@ -30732,7 +30732,7 @@ _0810DFC8:
sub_810E028: @ 810E028 sub_810E028: @ 810E028
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810E03C beq _0810E03C
@@ -30971,7 +30971,7 @@ _0810E1FE:
lsrs r0, 24 lsrs r0, 24
strh r0, [r5, 0x36] strh r0, [r5, 0x36]
adds r0, r5, 0 adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
ldr r0, =sub_810E24C ldr r0, =sub_810E24C
str r0, [r5, 0x1C] str r0, [r5, 0x1C]
pop {r4,r5} pop {r4,r5}
@@ -30987,7 +30987,7 @@ sub_810E24C: @ 810E24C
movs r0, 0x1 movs r0, 0x1
strh r0, [r4, 0x2E] strh r0, [r4, 0x2E]
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
ldrh r1, [r4, 0x34] ldrh r1, [r4, 0x34]
lsrs r0, r1, 8 lsrs r0, r1, 8
cmp r0, 0xC8 cmp r0, 0xC8
@@ -34508,7 +34508,7 @@ _0810FDE8:
sub_810FDF0: @ 810FDF0 sub_810FDF0: @ 810FDF0
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810FE0E beq _0810FE0E
@@ -34537,7 +34537,7 @@ sub_810FE14: @ 810FE14
adds r4, r1, r0 adds r4, r1, r0
ldr r0, =gBattleAnimTarget ldr r0, =gBattleAnimTarget
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r1, r0, 24 lsrs r1, r0, 24
adds r0, r1, 0 adds r0, r1, 0
@@ -35235,7 +35235,7 @@ _081103C4:
ldr r5, =gBattleAnimTarget ldr r5, =gBattleAnimTarget
ldrb r0, [r5] ldrb r0, [r5]
movs r1, 0x2 movs r1, 0x2
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
ldr r4, =gBattleAnimArgs ldr r4, =gBattleAnimArgs
lsrs r0, 24 lsrs r0, 24
@@ -35244,7 +35244,7 @@ _081103C4:
strh r0, [r6, 0x20] strh r0, [r6, 0x20]
ldrb r0, [r5] ldrb r0, [r5]
movs r1, 0x3 movs r1, 0x3
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldrh r1, [r4, 0x2] ldrh r1, [r4, 0x2]
@@ -35314,7 +35314,7 @@ _08110478:
ldr r5, =gBattleAnimTarget ldr r5, =gBattleAnimTarget
ldrb r0, [r5] ldrb r0, [r5]
movs r1, 0x2 movs r1, 0x2
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
ldr r4, =gBattleAnimArgs ldr r4, =gBattleAnimArgs
lsrs r0, 24 lsrs r0, 24
@@ -35323,7 +35323,7 @@ _08110478:
strh r0, [r6, 0x20] strh r0, [r6, 0x20]
ldrb r0, [r5] ldrb r0, [r5]
movs r1, 0x3 movs r1, 0x3
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldrh r1, [r4, 0x2] ldrh r1, [r4, 0x2]
@@ -35426,7 +35426,7 @@ _0811055A:
sub_811057C: @ 811057C sub_811057C: @ 811057C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08110592 beq _08110592
@@ -35844,7 +35844,7 @@ sub_81108CC: @ 81108CC
ands r1, r0 ands r1, r0
strb r1, [r2] strb r1, [r2]
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081108F8 beq _081108F8
@@ -35879,7 +35879,7 @@ _0811090E:
lsls r0, 16 lsls r0, 16
lsrs r6, r0, 16 lsrs r6, r0, 16
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08110988 bne _08110988
@@ -37059,7 +37059,7 @@ _08111304:
sub_811131C: @ 811131C sub_811131C: @ 811131C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0811134E beq _0811134E
@@ -37483,7 +37483,7 @@ sub_8111674: @ 8111674
adds r4, r0, 0 adds r4, r0, 0
bl sub_8111764 bl sub_8111764
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08111694 beq _08111694
@@ -37541,7 +37541,7 @@ sub_81116E8: @ 81116E8
movs r0, 0x1 movs r0, 0x1
strh r0, [r4, 0x2E] strh r0, [r4, 0x2E]
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
movs r1, 0x38 movs r1, 0x38
ldrsh r0, [r4, r1] ldrsh r0, [r4, r1]
movs r1, 0xA movs r1, 0xA
@@ -40203,7 +40203,7 @@ sub_8112C6C: @ 8112C6C
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x1A] strh r0, [r4, 0x1A]
ldrb r0, [r5] ldrb r0, [r5]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x1C] strh r0, [r4, 0x1C]
@@ -41135,7 +41135,7 @@ _0811342A:
strb r5, [r0, 0x9] strb r5, [r0, 0x9]
ldr r0, =gBattleAnimAttacker ldr r0, =gBattleAnimAttacker
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r1, r0, 0 adds r1, r0, 0
@@ -42031,7 +42031,7 @@ _08113B60:
sub_8113B90: @ 8113B90 sub_8113B90: @ 8113B90
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08113BA4 beq _08113BA4
@@ -43699,7 +43699,7 @@ sub_8114994: @ 8114994
sub_81149FC: @ 81149FC sub_81149FC: @ 81149FC
push {r4,r5,lr} push {r4,r5,lr}
adds r5, r0, 0 adds r5, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08114A50 beq _08114A50
@@ -43746,7 +43746,7 @@ _08114A50:
sub_8114A60: @ 8114A60 sub_8114A60: @ 8114A60
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08114A74 beq _08114A74
@@ -43817,13 +43817,13 @@ sub_8114AF0: @ 8114AF0
ldr r4, =gBattleAnimTarget ldr r4, =gBattleAnimTarget
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0x2 movs r1, 0x2
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r8, r0 mov r8, r0
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0x3 movs r1, 0x3
bl sub_80A60AC bl GetBattlerSpriteCoord2
lsls r0, 24 lsls r0, 24
lsrs r7, r0, 24 lsrs r7, r0, 24
bl Random2 bl Random2
@@ -44120,7 +44120,7 @@ _08114D78:
strh r0, [r4, 0x22] strh r0, [r4, 0x22]
ldr r0, =gBattleAnimAttacker ldr r0, =gBattleAnimAttacker
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r1, r0, 0 adds r1, r0, 0
@@ -44460,7 +44460,7 @@ _08115046:
strh r0, [r4, 0x20] strh r0, [r4, 0x20]
ldr r0, =gBattleAnimAttacker ldr r0, =gBattleAnimAttacker
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r1, r0, 0 adds r1, r0, 0
@@ -44663,7 +44663,7 @@ _081151DA:
adds r0, r6 adds r0, r6
strh r0, [r5, 0x20] strh r0, [r5, 0x20]
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r0, 0x1E adds r0, 0x1E
@@ -44693,7 +44693,7 @@ _081151DA:
sub_8115228: @ 8115228 sub_8115228: @ 8115228
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0811523C beq _0811523C
@@ -44735,7 +44735,7 @@ _08115262:
adds r0, r1 adds r0, r1
strh r0, [r6, 0x20] strh r0, [r6, 0x20]
adds r0, r5, 0 adds r0, r5, 0
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r0, 0x20 adds r0, 0x20
+7 -7
View File
@@ -816,7 +816,7 @@ _0815A6F8:
sub_815A73C: @ 815A73C sub_815A73C: @ 815A73C
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0815A75E beq _0815A75E
@@ -1625,7 +1625,7 @@ _0815ADDC:
ldr r4, =gBattleAnimTarget ldr r4, =gBattleAnimTarget
_0815ADDE: _0815ADDE:
ldrb r0, [r4] ldrb r0, [r4]
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
ldrb r0, [r4] ldrb r0, [r4]
@@ -6104,7 +6104,7 @@ _0815D26E:
strh r0, [r4, 0x18] strh r0, [r4, 0x18]
_0815D2A0: _0815D2A0:
adds r0, r5, 0 adds r0, r5, 0
bl sub_80A6190 bl GetBattlerYCoordWithElevation
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
subs r0, 0x22 subs r0, 0x22
@@ -8524,7 +8524,7 @@ _0815E5FE:
lsls r0, 2 lsls r0, 2
ldr r1, =gSprites ldr r1, =gSprites
adds r0, r1 adds r0, r1
bl AnimateBallThrow bl TranslateAnimArc
ldrh r0, [r4, 0xC] ldrh r0, [r4, 0xC]
adds r0, 0x1 adds r0, 0x1
strh r0, [r4, 0xC] strh r0, [r4, 0xC]
@@ -8542,7 +8542,7 @@ _0815E634:
lsls r0, 2 lsls r0, 2
ldr r1, =gSprites ldr r1, =gSprites
adds r0, r1 adds r0, r1
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0815E6D2 beq _0815E6D2
@@ -9804,11 +9804,11 @@ _0815F022:
strh r0, [r4, 0x34] strh r0, [r4, 0x34]
strh r1, [r4, 0x36] strh r1, [r4, 0x36]
adds r0, r4, 0 adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4 bl InitAnimLinearTranslation
b _0815F0F8 b _0815F0F8
_0815F038: _0815F038:
adds r0, r4, 0 adds r0, r4, 0
bl sub_80A6F3C bl TranslateAnimLinear
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0815F106 beq _0815F106
+3 -3
View File
@@ -1487,7 +1487,7 @@ sub_8171134: @ 8171134
push {r4,r5,lr} push {r4,r5,lr}
sub sp, 0x4 sub sp, 0x4
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081711D2 beq _081711D2
@@ -2671,7 +2671,7 @@ sub_8171AAC: @ 8171AAC
orrs r0, r1 orrs r0, r1
strb r0, [r3] strb r0, [r3]
adds r0, r4, 0 adds r0, r4, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08171ADC beq _08171ADC
@@ -5652,7 +5652,7 @@ _081733C0:
sub_81733D4: @ 81733D4 sub_81733D4: @ 81733D4
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl AnimateBallThrow bl TranslateAnimArc
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081733F6 beq _081733F6
-34
View File
@@ -1,34 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_08525F58:: @ 8525F58
.byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00
.byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00
.byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00
.byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00
.align 2
gCastformFrontSpriteCoords:: @ 8525F78
.byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00
.byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00
.align 2
gUnknown_08525F88:: @ 8525F88
.byte 0x0d, 0x0e, 0x0d, 0x0d
.align 2
gUnknown_08525F8C:: @ 8525F8C
.byte 0x00, 0x00, 0x00, 0x00
.align 2
gUnknown_08525F90:: @ 8525F90
spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_08525FC0:: @ 8525FC0
obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755
obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756
+8 -5
View File
@@ -72,17 +72,20 @@ void HandleIntroSlide(u8 terrainId);
// battle_anim_80A5C6C.s // battle_anim_80A5C6C.s
void sub_80A6EEC(struct Sprite *sprite); void sub_80A6EEC(struct Sprite *sprite);
void sub_80A68D4(struct Sprite *sprite); void sub_80A68D4(struct Sprite *sprite);
void sub_80A6F3C(struct Sprite *sprite); void TranslateAnimLinear(struct Sprite *sprite);
void sub_80A8278(void); void sub_80A8278(void);
void sub_80A6B30(struct UnknownAnimStruct2*); void sub_80A6B30(struct UnknownAnimStruct2*);
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
u8 sub_80A82E4(u8 battlerId); u8 sub_80A82E4(u8 battlerId);
bool8 AnimateBallThrow(struct Sprite *sprite); bool8 TranslateAnimArc(struct Sprite *sprite);
enum enum
{ {
BANK_X_POS, BATTLER_COORD_X,
BANK_Y_POS, BATTLER_COORD_Y,
BATTLER_COORD_X_2,
BATTLER_COORD_3,
BATTLER_COORD_4,
}; };
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId); u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
@@ -107,6 +110,6 @@ 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 battlerId, u32 arg2, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
u8 sub_80A600C(u8, u16, u8); u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
#endif // GUARD_BATTLE_ANIM_H #endif // GUARD_BATTLE_ANIM_H
+8 -8
View File
@@ -239,14 +239,13 @@ struct Shared18000
struct ContestStruct_field_18 struct ContestStruct_field_18
{ {
// unknown size u16 unk0;
u16 field_0; u16 unk2;
u16 field_2; u8 unk4_0:1;
u16 field_4; u8 unk5;
u16 field_6; u32 unk8;
u32 field_8; u32 unkC;
u32 field_C; u32 unk10;
u32 field_10;
}; };
struct Contest struct Contest
@@ -411,6 +410,7 @@ extern struct ContestResources *gContestResources;
#define eContestAI (gContestResources->field_C) #define eContestAI (gContestResources->field_C)
#define shared19328 (*gContestResources->field_10) #define shared19328 (*gContestResources->field_10)
#define shared19338 (*gContestResources->field_14) #define shared19338 (*gContestResources->field_14)
#define shared19348 (*gContestResources->field_18)
#define shared15800 (gHeap + 0x18000) #define shared15800 (gHeap + 0x18000)
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
+2 -1
View File
@@ -111,6 +111,7 @@ SECTIONS {
src/palette.o(.text); src/palette.o(.text);
src/sound.o(.text); src/sound.o(.text);
src/battle_anim.o(.text); src/battle_anim.o(.text);
src/battle_anim_80A5C6C.o(.text);
asm/battle_anim_80A5C6C.o(.text); asm/battle_anim_80A5C6C.o(.text);
src/task.o(.text); src/task.o(.text);
src/reshow_battle_screen.o(.text); src/reshow_battle_screen.o(.text);
@@ -420,7 +421,7 @@ SECTIONS {
data/fanfares.o(.rodata); data/fanfares.o(.rodata);
data/battle_anims.o(.rodata); data/battle_anims.o(.rodata);
src/battle_anim.o(.rodata); src/battle_anim.o(.rodata);
data/rom_8525F58.o(.rodata); src/battle_anim_80A5C6C.o(.rodata);
data/map_events.o(.rodata); data/map_events.o(.rodata);
data/battle_anim_80A9C70.o(.rodata); data/battle_anim_80A9C70.o(.rodata);
src/title_screen.o(.rodata); src/title_screen.o(.rodata);
+3 -3
View File
@@ -234,7 +234,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
else else
{ {
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
gAnimBattlerSpecies[i] = gContestResources->field_18->field_0; gAnimBattlerSpecies[i] = gContestResources->field_18->unk0;
} }
if (!isMoveAnim) if (!isMoveAnim)
@@ -691,7 +691,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
battlerSpriteId = gBattlerSpriteIds[battlerId]; battlerSpriteId = gBattlerSpriteIds[battlerId];
gBattle_BG1_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20; gBattle_BG1_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20;
if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->field_0)) if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->unk0))
gBattle_BG1_X--; gBattle_BG1_X--;
gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20;
@@ -749,7 +749,7 @@ static void sub_80A46A0(void)
struct UnknownAnimStruct2 unknownStruct; struct UnknownAnimStruct2 unknownStruct;
u16 *ptr; u16 *ptr;
if (IsSpeciesNotUnown(gContestResources->field_18->field_0)) if (IsSpeciesNotUnown(gContestResources->field_18->unk0))
{ {
sub_80A6B30(&unknownStruct); sub_80A6B30(&unknownStruct);
ptr = unknownStruct.unk4; ptr = unknownStruct.unk4;
+741
View File
@@ -0,0 +1,741 @@
#include "global.h"
#include "constants/battle_anim.h"
#include "constants/species.h"
#include "battle.h"
#include "battle_anim.h"
#include "blend_palette.h"
#include "contest.h"
#include "data2.h"
#include "decompress.h"
#include "palette.h"
#include "pokemon_icon.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
#include "util.h"
#include "gpu_regs.h"
#define GET_UNOWN_LETTER(personality) ((\
(((personality & 0x03000000) >> 24) << 6) \
| (((personality & 0x00030000) >> 16) << 4) \
| (((personality & 0x00000300) >> 8) << 2) \
| (((personality & 0x00000003) >> 0) << 0) \
) % 28)
#define IS_DOUBLE_BATTLE() ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
extern const struct OamData gUnknown_0852497C;
extern const struct MonCoords gMonFrontPicCoords[];
extern const struct MonCoords gMonBackPicCoords[];
extern const u8 gEnemyMonElevation[];
// This file's functions.
void sub_80A64EC(struct Sprite *sprite);
void sub_80A653C(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
bool8 TranslateAnimLinear(struct Sprite *sprite);
// Const rom data
const struct UCoords8 sBattlerCoords[][4] =
{
{
{ 72, 80 },
{ 176, 40 },
{ 48, 40 },
{ 112, 80 },
},
{
{ 32, 80 },
{ 200, 40 },
{ 90, 88 },
{ 152, 32 },
},
};
// One entry for each of the four Castform forms.
const struct MonCoords gCastformFrontSpriteCoords[] =
{
{ 0x44, 17 }, // NORMAL
{ 0x66, 9 }, // SUN
{ 0x46, 9 }, // RAIN
{ 0x86, 8 }, // HAIL
};
const u8 gCastformElevations[] =
{
13, // NORMAL
14, // SUN
13, // RAIN
13, // HAIL
};
// Y position of the backsprite for each of the four Castform forms.
const u8 gCastformBackSpriteYCoords[] =
{
0, // NORMAL
0, // SUN
0, // RAIN
0, // HAIL
};
const struct SpriteTemplate gUnknown_08525F90[] =
{
{
.tileTag = 55125,
.paletteTag = 55125,
.oam = &gUnknown_0852497C,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = 55126,
.paletteTag = 55126,
.oam = &gUnknown_0852497C,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
}
};
const struct SpriteSheet gUnknown_08525FC0[] =
{
{ gMiscBlank_Gfx, 0x800, 55125, },
{ gMiscBlank_Gfx, 0x800, 55126, },
};
// code
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
{
u8 retVal;
u16 species;
struct BattleSpriteInfo *spriteInfo;
if (IsContest())
{
if (attributeId == BATTLER_COORD_3 && battlerId == 3)
attributeId = BATTLER_COORD_Y;
}
switch (attributeId)
{
case BATTLER_COORD_X:
case BATTLER_COORD_X_2:
retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].x;
break;
case BATTLER_COORD_Y:
retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y;
break;
case BATTLER_COORD_3:
case BATTLER_COORD_4:
default:
if (IsContest())
{
if (shared19348.unk4_0)
species = shared19348.unk2;
else
species = shared19348.unk0;
}
else
{
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
}
else
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
}
}
if (attributeId == BATTLER_COORD_3)
retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
else
retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
break;
}
return retVal;
}
u8 GetBattlerYDelta(u8 battlerId, u16 species)
{
u16 letter;
u32 personality;
struct BattleSpriteInfo *spriteInfo;
u8 ret;
u16 coordSpecies;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest())
{
if (species == SPECIES_UNOWN)
{
if (IsContest())
{
if (shared19348.unk4_0)
personality = shared19348.unk10;
else
personality = shared19348.unk8;
}
else
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY);
else
personality = gTransformedPersonalities[battlerId];
}
letter = GET_UNOWN_LETTER(personality);
if (!letter)
coordSpecies = species;
else
coordSpecies = letter + SPECIES_UNOWN_B - 1;
ret = gMonBackPicCoords[coordSpecies].y_offset;
}
else if (species == SPECIES_CASTFORM)
{
ret = gCastformBackSpriteYCoords[gBattleMonForms[battlerId]];
}
else if (species > NUM_SPECIES)
{
ret = gMonBackPicCoords[0].y_offset;
}
else
{
ret = gMonBackPicCoords[species].y_offset;
}
}
else
{
if (species == SPECIES_UNOWN)
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY);
else
personality = gTransformedPersonalities[battlerId];
letter = GET_UNOWN_LETTER(personality);
if (!letter)
coordSpecies = species;
else
coordSpecies = letter + SPECIES_UNOWN_B - 1;
ret = gMonFrontPicCoords[coordSpecies].y_offset;
}
else if (species == SPECIES_CASTFORM)
{
ret = gCastformFrontSpriteCoords[gBattleMonForms[battlerId]].y_offset;
}
else if (species > NUM_SPECIES)
{
ret = gMonFrontPicCoords[0].y_offset;
}
else
{
ret = gMonFrontPicCoords[species].y_offset;
}
}
return ret;
}
u8 GetBattlerElevation(u8 battlerId, u16 species)
{
u8 ret = 0;
if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
{
if (!IsContest())
{
if (species == SPECIES_CASTFORM)
ret = gCastformElevations[gBattleMonForms[battlerId]];
else if (species > NUM_SPECIES)
ret = gEnemyMonElevation[0];
else
ret = gEnemyMonElevation[species];
}
}
return ret;
}
u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
{
u16 offset;
u8 y;
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest())
{
offset = GetBattlerYDelta(battlerId, species);
}
else
{
offset = GetBattlerYDelta(battlerId, species);
offset -= GetBattlerElevation(battlerId, species);
}
y = offset + sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y;
if (a3)
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
y += 8;
if (y > 104)
y = 104;
}
return y;
}
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId)
{
u16 species;
struct BattleSpriteInfo *spriteInfo;
if (attributeId == BATTLER_COORD_3 || attributeId == BATTLER_COORD_4)
{
if (IsContest())
{
if (shared19348.unk4_0)
species = shared19348.unk2;
else
species = shared19348.unk0;
}
else
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = gAnimBattlerSpecies[battlerId];
else
species = spriteInfo[battlerId].transformSpecies;
}
if (attributeId == BATTLER_COORD_3)
return GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
else
return GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
}
else
{
return GetBattlerSpriteCoord(battlerId, attributeId);
}
}
u8 GetBattlerSpriteDefault_Y(u8 battlerId)
{
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_4);
}
u8 GetSubstituteSpriteDefault_Y(u8 battlerId)
{
u16 y;
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 16;
else
y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 17;
return y;
}
u8 GetBattlerYCoordWithElevation(u8 battlerId)
{
u16 species;
u8 y;
struct BattleSpriteInfo *spriteInfo;
y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y);
if (!IsContest())
{
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
}
else
{
spriteInfo = gBattleSpritesDataPtr->battlerData;
if (!spriteInfo[battlerId].transformSpecies)
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
else
species = spriteInfo[battlerId].transformSpecies;
}
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
y -= GetBattlerElevation(battlerId, species);
}
return y;
}
u8 GetAnimBattlerSpriteId(u8 which)
{
u8 *sprites;
if (which == ANIM_ATTACKER)
{
if (IsBattlerSpritePresent(gBattleAnimAttacker))
{
sprites = gBattlerSpriteIds;
return sprites[gBattleAnimAttacker];
}
else
{
return 0xff;
}
}
else if (which == ANIM_TARGET)
{
if (IsBattlerSpritePresent(gBattleAnimTarget))
{
sprites = gBattlerSpriteIds;
return sprites[gBattleAnimTarget];
}
else
{
return 0xff;
}
}
else if (which == ANIM_ATK_PARTNER)
{
if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
return 0xff;
else
return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)];
}
else
{
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)];
else
return 0xff;
}
}
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*))
{
sprite->data[6] = (u32)(callback) & 0xffff;
sprite->data[7] = (u32)(callback) >> 16;
}
void SetCallbackToStoredInData6(struct Sprite *sprite)
{
u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16);
sprite->callback = (void (*)(struct Sprite *))callback;
}
void sub_80A62EC(struct Sprite *sprite)
{
if (sprite->data[3])
{
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]);
sprite->data[0] += sprite->data[2];
if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
sprite->data[3]--;
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void sub_80A634C(struct Sprite *sprite)
{
if (sprite->data[3])
{
sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
sprite->data[0] += sprite->data[2];
sprite->data[5] += sprite->data[4];
if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
sprite->data[3]--;
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void sub_80A63C8(struct Sprite *sprite)
{
if (sprite->data[3])
{
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]);
sprite->data[0] += sprite->data[2];
sprite->data[4] += sprite->data[5];
if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
if (sprite->data[4] >= 0x100)
sprite->data[4] -= 0x100;
else if (sprite->data[4] < 0)
sprite->data[4] += 0x100;
sprite->data[3]--;
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void sub_80A6450(struct Sprite *sprite)
{
if (sprite->data[3])
{
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]);
sprite->data[0] += sprite->data[2];
if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
sprite->data[3]--;
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
// Simply waits until the sprite's data[0] hits zero.
// This is used to let sprite anims or affine anims to run for a designated
// duration.
void sub_80A64B0(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
sprite->data[0]--;
else
SetCallbackToStoredInData6(sprite);
}
void sub_80A64D0(struct Sprite *sprite)
{
sub_80A64EC(sprite);
sprite->callback = sub_80A653C;
sprite->callback(sprite);
}
void sub_80A64EC(struct Sprite *sprite)
{
s16 old;
int v1;
if (sprite->data[1] > sprite->data[2])
sprite->data[0] = -sprite->data[0];
v1 = sprite->data[2] - sprite->data[1];
old = sprite->data[0];
sprite->data[0] = abs(v1 / sprite->data[0]);
sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0];
sprite->data[1] = old;
}
void sub_80A653C(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
sprite->data[0]--;
sprite->pos2.x += sprite->data[1];
sprite->pos2.y += sprite->data[2];
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void sub_80A656C(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
sprite->pos2.x = sprite->data[3] >> 8;
sprite->pos2.y = sprite->data[4] >> 8;
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void sub_80A65A8(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
sprite->pos2.x = sprite->data[3] >> 8;
sprite->pos2.y = sprite->data[4] >> 8;
}
else
{
SetCallbackToStoredInData6(sprite);
}
UpdateMonIconFrame(sprite);
}
void sub_80A65EC(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->callback = sub_80A64D0;
}
void sub_80A6630(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
sprite->data[0]--;
gSprites[sprite->data[3]].pos2.x += sprite->data[1];
gSprites[sprite->data[3]].pos2.y += sprite->data[2];
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
// Same as sub_80A6630, but it operates on sub-pixel values
// to handle slower translations.
void sub_80A6680(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8;
gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8;
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void sub_80A66DC(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
sprite->data[0]--;
sprite->pos2.x = sprite->data[2] >> 8;
sprite->data[2] += sprite->data[1];
sprite->pos2.y = sprite->data[4] >> 8;
sprite->data[4] += sprite->data[3];
if (sprite->data[0] % sprite->data[5] == 0)
{
if (sprite->data[5])
sprite->invisible ^= 1;
}
}
else
{
SetCallbackToStoredInData6(sprite);
}
}
void move_anim_8074EE0(struct Sprite *sprite)
{
FreeSpriteOamMatrix(sprite);
DestroyAnimSprite(sprite);
}
void sub_80A6760(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->callback = sub_80A64D0;
}
void sub_80A67A4(struct Sprite *sprite)
{
ResetPaletteStructByUid(sprite->data[5]);
move_anim_8074EE0(sprite);
}
void sub_80A67BC(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
SetCallbackToStoredInData6(sprite);
}
void sub_80A67D8(struct Sprite *sprite)
{
if (sprite->animEnded)
SetCallbackToStoredInData6(sprite);
}
void sub_80A67F4(struct Sprite *sprite)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
DestroyAnimSprite(sprite);
}
void sub_80A6814(u8 taskId)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
DestroyAnimVisualTask(taskId);
}
void sub_80A6838(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
}
void sub_80A6864(struct Sprite *sprite, s16 a2)
{
u16 v1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
u16 v2 = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
if (v1 > v2)
{
sprite->pos1.x -= a2;
}
else if (v1 < v2)
{
sprite->pos1.x += a2;
}
else
{
if (GetBattlerSide(gBattleAnimAttacker) != 0)
sprite->pos1.x -= a2;
else
sprite->pos1.x += a2;
}
}
void sub_80A68D4(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
sprite->data[6] = 0x8000 / sprite->data[0];
sprite->data[7] = 0;
}
bool8 TranslateAnimArc(struct Sprite *sprite)
{
if (TranslateAnimLinear(sprite))
return TRUE;
sprite->data[7] += sprite->data[6];
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
return FALSE;
}
+3 -3
View File
@@ -131,7 +131,7 @@ void sub_8158D8C(u8 taskId)
if (IsContest()) if (IsContest())
{ {
if (gBattleAnimArgs[0] == ANIM_ATTACKER) if (gBattleAnimArgs[0] == ANIM_ATTACKER)
species = gContestResources->field_18->field_0; species = gContestResources->field_18->unk0;
else else
DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task.
} }
@@ -177,7 +177,7 @@ void sub_8158E9C(u8 taskId)
if (IsContest()) if (IsContest())
{ {
if (gBattleAnimArgs[0] == ANIM_ATTACKER) if (gBattleAnimArgs[0] == ANIM_ATTACKER)
species = gContestResources->field_18->field_0; species = gContestResources->field_18->unk0;
else else
DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task.
} }
@@ -281,7 +281,7 @@ void sub_81590B8(u8 taskId)
pan = BattleAnimAdjustPanning(PAN_SIDE_PLAYER); pan = BattleAnimAdjustPanning(PAN_SIDE_PLAYER);
if (IsContest()) if (IsContest())
species = gContestResources->field_18->field_0; species = gContestResources->field_18->unk0;
else else
species = gAnimBattlerSpecies[gBattleAnimAttacker]; species = gAnimBattlerSpecies[gBattleAnimAttacker];
+4 -4
View File
@@ -899,14 +899,14 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
if (IsContest()) if (IsContest())
{ {
position = 0; position = 0;
targetSpecies = gContestResources->field_18->field_2; targetSpecies = gContestResources->field_18->unk2;
personalityValue = gContestResources->field_18->field_8; personalityValue = gContestResources->field_18->unk8;
otId = gContestResources->field_18->field_C; otId = gContestResources->field_18->unkC;
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies], HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies],
gMonSpritesGfxPtr->sprites[0], gMonSpritesGfxPtr->sprites[0],
targetSpecies, targetSpecies,
gContestResources->field_18->field_10); gContestResources->field_18->unk10);
} }
else else
{ {
+1 -1
View File
@@ -2535,7 +2535,7 @@ u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20); LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
SetMultiuseSpriteTemplateToPokemon(species, 0); SetMultiuseSpriteTemplateToPokemon(species, 0);
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, sub_80A600C(2, species, 0), 30); spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
gSprites[spriteId].oam.paletteNum = 2; gSprites[spriteId].oam.paletteNum = 2;
gSprites[spriteId].oam.priority = 2; gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].subpriority = sub_80A82E4(2); gSprites[spriteId].subpriority = sub_80A82E4(2);
@@ -1,4 +1,4 @@
const struct MonCoords gUnknown_083021D8[] = const struct MonCoords gMonBackPicCoords[] =
{ {
{0x88, 0x00}, // SPECIES_NONE {0x88, 0x00}, // SPECIES_NONE
{0x64, 0x10}, // SPECIES_BULBASAUR {0x64, 0x10}, // SPECIES_BULBASAUR
+7 -7
View File
@@ -378,8 +378,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1;
break; break;
case POKEBALL_OPPONENT_SENDOUT: case POKEBALL_OPPONENT_SENDOUT:
gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(battlerId, BANK_X_POS); gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X);
gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(battlerId, BANK_Y_POS) + 24; gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 24;
gBattlerTarget = battlerId; gBattlerTarget = battlerId;
gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].data[0] = 0;
gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut;
@@ -399,8 +399,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
// this will perform an unused ball throw animation // this will perform an unused ball throw animation
gSprites[ballSpriteId].data[0] = 0x22; gSprites[ballSpriteId].data[0] = 0x22;
gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BANK_X_POS); gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_X);
gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_Y) - 16;
gSprites[ballSpriteId].data[5] = -40; gSprites[ballSpriteId].data[5] = -40;
sub_80A68D4(&gSprites[ballSpriteId]); sub_80A68D4(&gSprites[ballSpriteId]);
gSprites[ballSpriteId].oam.affineParam = taskId; gSprites[ballSpriteId].oam.affineParam = taskId;
@@ -411,7 +411,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
static void SpriteCB_TestBallThrow(struct Sprite *sprite) static void SpriteCB_TestBallThrow(struct Sprite *sprite)
{ {
if (AnimateBallThrow(sprite)) if (TranslateAnimArc(sprite))
{ {
u16 ballId; u16 ballId;
u8 taskId = sprite->oam.affineParam; u8 taskId = sprite->oam.affineParam;
@@ -922,7 +922,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, 4); StartSpriteAffineAnim(sprite, 4);
} }
r4 = sprite->data[0]; r4 = sprite->data[0];
sub_80A6F3C(sprite); TranslateAnimLinear(sprite);
sprite->data[7] += sprite->sBattler / 3; sprite->data[7] += sprite->sBattler / 3;
sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]); sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]);
sprite->oam.affineParam += 0x100; sprite->oam.affineParam += 0x100;
@@ -940,7 +940,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
} }
else else
{ {
if (AnimateBallThrow(sprite)) if (TranslateAnimArc(sprite))
{ {
sprite->pos1.x += sprite->pos2.x; sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y; sprite->pos1.y += sprite->pos2.y;