diff options
58 files changed, 2588 insertions, 5115 deletions
| diff --git a/asm/battle_2.s b/asm/battle_2.s index 3fdaeca33..6bd86b091 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -3920,7 +3920,7 @@ _08011D90: .4byte 0x00002108  sub_8011D94: @ 8011D94  	push {lr}  	adds r2, r0, 0 -	ldr r0, _08011DC0 @ =gUnknown_2023F4C +	ldr r0, _08011DC0 @ =gIntroSlideFlags  	ldrh r1, [r0]  	movs r0, 0x1  	ands r0, r1 @@ -3941,7 +3941,7 @@ _08011DBC:  	pop {r0}  	bx r0  	.align 2, 0 -_08011DC0: .4byte gUnknown_2023F4C +_08011DC0: .4byte gIntroSlideFlags  _08011DC4: .4byte sub_8011DC8  	thumb_func_end sub_8011D94 @@ -3960,7 +3960,7 @@ sub_8011DC8: @ 8011DC8  	lsls r0, 24  	lsrs r0, 24  	bl sub_804BD94 -	ldr r1, _08011E18 @ =gUnknown_3004FF0 +	ldr r1, _08011E18 @ =gHealthboxSpriteIds  	movs r2, 0x2E  	ldrsh r0, [r4, r2]  	adds r0, r1 @@ -3985,7 +3985,7 @@ _08011E10:  	pop {r0}  	bx r0  	.align 2, 0 -_08011E18: .4byte gUnknown_3004FF0 +_08011E18: .4byte gHealthboxSpriteIds  _08011E1C: .4byte nullsub_10  _08011E20: .4byte 0x00002108  	thumb_func_end sub_8011DC8 @@ -4071,7 +4071,7 @@ sub_8011EA0: @ 8011EA0  	ldrh r0, [r0, 0x2E]  	lsls r0, 24  	lsrs r6, r0, 24 -	ldr r0, _08011EC4 @ =gUnknown_2024018 +	ldr r0, _08011EC4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r6, 2 @@ -4082,7 +4082,7 @@ sub_8011EA0: @ 8011EA0  	adds r4, r0, 0  	b _08011ECC  	.align 2, 0 -_08011EC4: .4byte gUnknown_2024018 +_08011EC4: .4byte gBattleSpritesDataPtr  _08011EC8:  	mov r0, r9  	ldrh r4, [r0, 0x32] @@ -4364,7 +4364,7 @@ _080120CC: .4byte oac_poke_ally_  oac_poke_ally_: @ 80120D0  	push {lr}  	adds r2, r0, 0 -	ldr r0, _080120F8 @ =gUnknown_2023F4C +	ldr r0, _080120F8 @ =gIntroSlideFlags  	ldrh r1, [r0]  	movs r0, 0x1  	ands r0, r1 @@ -4384,7 +4384,7 @@ _080120F4:  	pop {r0}  	bx r0  	.align 2, 0 -_080120F8: .4byte gUnknown_2023F4C +_080120F8: .4byte gIntroSlideFlags  _080120FC: .4byte nullsub_11  	thumb_func_end oac_poke_ally_ @@ -4406,7 +4406,7 @@ nullsub_11: @ 801210C  sub_8012110: @ 8012110  	push {lr}  	adds r2, r0, 0 -	ldr r0, _08012134 @ =gUnknown_2023F4C +	ldr r0, _08012134 @ =gIntroSlideFlags  	ldrh r1, [r0]  	movs r0, 0x1  	ands r0, r1 @@ -4424,7 +4424,7 @@ _08012130:  	pop {r0}  	bx r0  	.align 2, 0 -_08012134: .4byte gUnknown_2023F4C +_08012134: .4byte gIntroSlideFlags  	thumb_func_end sub_8012110  	thumb_func_start dp11b_obj_instanciate @@ -4447,7 +4447,7 @@ dp11b_obj_instanciate: @ 8012138  	mov r10, r3  	cmp r1, 0  	beq _08012174 -	ldr r0, _08012170 @ =gUnknown_2024018 +	ldr r0, _08012170 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r2, r4, 1 @@ -4458,9 +4458,9 @@ dp11b_obj_instanciate: @ 8012138  	movs r0, 0x2  	b _08012186  	.align 2, 0 -_08012170: .4byte gUnknown_2024018 +_08012170: .4byte gBattleSpritesDataPtr  _08012174: -	ldr r0, _080121D0 @ =gUnknown_2024018 +	ldr r0, _080121D0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r2, r4, 1 @@ -4481,10 +4481,10 @@ _08012186:  	mov r0, r8  	cmp r0, 0x1  	bne _080121E0 -	ldr r0, _080121D8 @ =gUnknown_3004FF0 +	ldr r0, _080121D8 @ =gHealthboxSpriteIds  	adds r0, r4, r0  	ldrb r7, [r0] -	ldr r2, _080121D0 @ =gUnknown_2024018 +	ldr r2, _080121D0 @ =gBattleSpritesDataPtr  	ldr r0, [r2]  	ldr r0, [r0, 0x4]  	adds r1, r6, r4 @@ -4506,15 +4506,15 @@ _08012186:  	movs r1, 0x80  	b _0801220E  	.align 2, 0 -_080121D0: .4byte gUnknown_2024018 +_080121D0: .4byte gBattleSpritesDataPtr  _080121D4: .4byte SpriteCB_HealthBoxBounce -_080121D8: .4byte gUnknown_3004FF0 +_080121D8: .4byte gHealthboxSpriteIds  _080121DC: .4byte gSprites  _080121E0:  	ldr r0, _0801224C @ =gBattlerSpriteIds  	adds r0, r4, r0  	ldrb r7, [r0] -	ldr r2, _08012250 @ =gUnknown_2024018 +	ldr r2, _08012250 @ =gBattleSpritesDataPtr  	ldr r0, [r2]  	ldr r0, [r0, 0x4]  	adds r1, r6, r4 @@ -4568,7 +4568,7 @@ _0801223C:  	bx r0  	.align 2, 0  _0801224C: .4byte gBattlerSpriteIds -_08012250: .4byte gUnknown_2024018 +_08012250: .4byte gBattleSpritesDataPtr  _08012254: .4byte gSprites  	thumb_func_end dp11b_obj_instanciate @@ -4581,7 +4581,7 @@ dp11b_obj_free: @ 8012258  	lsrs r1, 24  	cmp r1, 0x1  	bne _080122AC -	ldr r6, _080122A4 @ =gUnknown_2024018 +	ldr r6, _080122A4 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r1, [r0, 0x4]  	lsls r0, r2, 1 @@ -4611,10 +4611,10 @@ dp11b_obj_free: @ 8012258  	negs r0, r0  	b _080122E6  	.align 2, 0 -_080122A4: .4byte gUnknown_2024018 +_080122A4: .4byte gBattleSpritesDataPtr  _080122A8: .4byte gSprites  _080122AC: -	ldr r6, _08012300 @ =gUnknown_2024018 +	ldr r6, _08012300 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r1, [r0, 0x4]  	lsls r0, r2, 1 @@ -4658,7 +4658,7 @@ _080122FA:  	pop {r0}  	bx r0  	.align 2, 0 -_08012300: .4byte gUnknown_2024018 +_08012300: .4byte gBattleSpritesDataPtr  _08012304: .4byte gSprites  	thumb_func_end dp11b_obj_free @@ -4997,7 +4997,7 @@ _0801255C:  	movs r0, 0  	ldr r1, _0801273C @ =gBattleMoveDamage  	str r0, [r1] -	ldr r2, _08012740 @ =gUnknown_2023F4C +	ldr r2, _08012740 @ =gIntroSlideFlags  	strh r0, [r2]  	mov r1, r9  	ldr r0, _08012720 @ =gBattleScripting @@ -5200,7 +5200,7 @@ _08012730: .4byte gUnknown_2023E7E  _08012734: .4byte gUnknown_2023E82  _08012738: .4byte gUnknown_2023E7C  _0801273C: .4byte gBattleMoveDamage -_08012740: .4byte gUnknown_2023F4C +_08012740: .4byte gIntroSlideFlags  _08012744: .4byte gUnknown_3004FD4  _08012748: .4byte gAbsentBattlerFlags  _0801274C: .4byte gBattleStruct diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 4a8c6d51c..8925effc6 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -14,7 +14,7 @@ ClearBattleAnimationVars: @ 80724C0  	ldr r0, _08072554 @ =gUnknown_2037EE0  	movs r1, 0  	strb r1, [r0] -	ldr r0, _08072558 @ =gUnknown_2037EE1 +	ldr r0, _08072558 @ =gAnimScriptActive  	strb r1, [r0]  	ldr r0, _0807255C @ =gUnknown_2037EE2  	strb r1, [r0] @@ -85,7 +85,7 @@ _08072520:  	bx r0  	.align 2, 0  _08072554: .4byte gUnknown_2037EE0 -_08072558: .4byte gUnknown_2037EE1 +_08072558: .4byte gAnimScriptActive  _0807255C: .4byte gUnknown_2037EE2  _08072560: .4byte gUnknown_2037EE3  _08072564: .4byte gAnimDisableStructPtr @@ -120,7 +120,7 @@ DoMoveAnim: @ 807259C  	strb r0, [r2]  	ldr r0, _080725D0 @ =gUnknown_81C68F4  	movs r2, 0x1 -	bl sub_80725D4 +	bl LaunchBattleAnimation  	pop {r0}  	bx r0  	.align 2, 0 @@ -131,8 +131,8 @@ _080725CC: .4byte gBattlerTarget  _080725D0: .4byte gUnknown_81C68F4  	thumb_func_end DoMoveAnim -	thumb_func_start sub_80725D4 -sub_80725D4: @ 80725D4 +	thumb_func_start LaunchBattleAnimation +LaunchBattleAnimation: @ 80725D4  	push {r4-r7,lr}  	mov r7, r10  	mov r6, r9 @@ -200,10 +200,10 @@ _08072658:  	ldr r5, _080726C8 @ =gUnknown_2037ED4  	mov r0, r8  	lsls r3, r0, 2 -	ldr r6, _080726CC @ =gUnknown_2037EE1 +	ldr r6, _080726CC @ =gAnimScriptActive  	ldr r1, _080726D0 @ =gUnknown_2037EE0  	mov r12, r1 -	ldr r0, _080726D4 @ =gUnknown_2037EDC +	ldr r0, _080726D4 @ =gAnimScriptCallback  	mov r10, r0  	ldr r7, _080726D8 @ =RunAnimScriptCommand  	ldr r1, _080726DC @ =gBattleAnimArgs @@ -253,9 +253,9 @@ _080726A6:  _080726C0: .4byte gUnknown_2037F18  _080726C4: .4byte gUnknown_2037F14  _080726C8: .4byte gUnknown_2037ED4 -_080726CC: .4byte gUnknown_2037EE1 +_080726CC: .4byte gAnimScriptActive  _080726D0: .4byte gUnknown_2037EE0 -_080726D4: .4byte gUnknown_2037EDC +_080726D4: .4byte gAnimScriptCallback  _080726D8: .4byte RunAnimScriptCommand  _080726DC: .4byte gBattleAnimArgs  _080726E0: .4byte 0x0000ffff @@ -300,7 +300,7 @@ _08072730: .4byte gUnknown_2022984  _08072734: .4byte gUnknown_2022986  _08072738: .4byte gUnknown_2022988  _0807273C: .4byte gUnknown_202298A -	thumb_func_end sub_80725D4 +	thumb_func_end LaunchBattleAnimation  	thumb_func_start DestroyAnimSprite  DestroyAnimSprite: @ 8072740 @@ -419,14 +419,14 @@ WaitAnimFrameCount: @ 80727FC  	ldrsb r0, [r2, r0]  	cmp r0, 0  	bgt _08072820 -	ldr r0, _08072818 @ =gUnknown_2037EDC +	ldr r0, _08072818 @ =gAnimScriptCallback  	ldr r1, _0807281C @ =RunAnimScriptCommand  	str r1, [r0]  	movs r0, 0  	b _08072822  	.align 2, 0  _08072814: .4byte gUnknown_2037EE0 -_08072818: .4byte gUnknown_2037EDC +_08072818: .4byte gAnimScriptCallback  _0807281C: .4byte RunAnimScriptCommand  _08072820:  	subs r0, r1, 0x1 @@ -454,7 +454,7 @@ _0807282C:  	asrs r0, 24  	cmp r0, 0  	bne _08072850 -	ldr r0, _08072864 @ =gUnknown_2037EE1 +	ldr r0, _08072864 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _0807282C @@ -466,7 +466,7 @@ _08072850:  _08072858: .4byte gUnknown_83ADF5C  _0807285C: .4byte gUnknown_2037ED4  _08072860: .4byte gUnknown_2037EE0 -_08072864: .4byte gUnknown_2037EE1 +_08072864: .4byte gAnimScriptActive  	thumb_func_end RunAnimScriptCommand  	thumb_func_start ScriptCmd_loadspritegfx @@ -500,7 +500,7 @@ ScriptCmd_loadspritegfx: @ 8072868  	ldr r1, _080728C4 @ =gUnknown_2037EE0  	movs r0, 0x1  	strb r0, [r1] -	ldr r1, _080728C8 @ =gUnknown_2037EDC +	ldr r1, _080728C8 @ =gAnimScriptCallback  	ldr r0, _080728CC @ =WaitAnimFrameCount  	str r0, [r1]  	pop {r4-r6} @@ -512,7 +512,7 @@ _080728B8: .4byte gUnknown_8399388  _080728BC: .4byte gUnknown_8399C90  _080728C0: .4byte 0xffffd8f0  _080728C4: .4byte gUnknown_2037EE0 -_080728C8: .4byte gUnknown_2037EDC +_080728C8: .4byte gAnimScriptCallback  _080728CC: .4byte WaitAnimFrameCount  	thumb_func_end ScriptCmd_loadspritegfx @@ -651,13 +651,13 @@ _080729CC:  	ldr r5, _08072A08 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r2, r0, 0  	lsls r2, 24  	lsrs r2, 24 @@ -762,7 +762,7 @@ ScriptCmd_delay: @ 8072A8C  _08072AAA:  	adds r0, r2, 0x1  	str r0, [r1] -	ldr r1, _08072AC4 @ =gUnknown_2037EDC +	ldr r1, _08072AC4 @ =gAnimScriptCallback  	ldr r0, _08072AC8 @ =WaitAnimFrameCount  	str r0, [r1]  	pop {r4} @@ -771,7 +771,7 @@ _08072AAA:  	.align 2, 0  _08072ABC: .4byte gUnknown_2037ED4  _08072AC0: .4byte gUnknown_2037EE0 -_08072AC4: .4byte gUnknown_2037EDC +_08072AC4: .4byte gAnimScriptCallback  _08072AC8: .4byte WaitAnimFrameCount  	thumb_func_end ScriptCmd_delay @@ -913,7 +913,7 @@ _08072BB2:  	bl sub_80767F0  	movs r0, 0x1  	bl UpdateOamPriorityInAllHealthboxes -	ldr r0, _08072C04 @ =gUnknown_2037EE1 +	ldr r0, _08072C04 @ =gAnimScriptActive  	mov r1, r8  	strb r1, [r0]  _08072BDC: @@ -930,7 +930,7 @@ _08072BF4: .4byte 0x0000ffff  _08072BF8: .4byte gUnknown_83ACC08  _08072BFC: .4byte gUnknown_2037EEE  _08072C00: .4byte gMPlayInfo_BGM -_08072C04: .4byte gUnknown_2037EE1 +_08072C04: .4byte gAnimScriptActive  	thumb_func_end sub_8072B08  	thumb_func_start sub_8072C08 @@ -1175,11 +1175,11 @@ IsBattlerSpriteVisible: @ 8072DF0  	lsls r0, 24  	lsrs r4, r0, 24  	adds r0, r4, 0 -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _08072E40 -	ldr r0, _08072E34 @ =gUnknown_2024018 +	ldr r0, _08072E34 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r4, 2 @@ -1206,7 +1206,7 @@ _08072E30:  	movs r0, 0x1  	b _08072E42  	.align 2, 0 -_08072E34: .4byte gUnknown_2024018 +_08072E34: .4byte gBattleSpritesDataPtr  _08072E38: .4byte gSprites  _08072E3C: .4byte gBattlerSpriteIds  _08072E40: @@ -2772,7 +2772,7 @@ sub_8073A44: @ 8073A44  	push {r4,lr}  	lsls r0, 24  	lsrs r4, r0, 24 -	ldr r0, _08073A78 @ =gUnknown_2024018 +	ldr r0, _08073A78 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _08073A7C @ =gBattleAnimAttacker  	ldrb r2, [r0] @@ -2795,7 +2795,7 @@ sub_8073A44: @ 8073A44  	movs r4, 0x3F  	b _08073AE6  	.align 2, 0 -_08073A78: .4byte gUnknown_2024018 +_08073A78: .4byte gBattleSpritesDataPtr  _08073A7C: .4byte gBattleAnimAttacker  _08073A80:  	adds r0, r2, 0 @@ -2874,7 +2874,7 @@ sub_8073B08: @ 8073B08  	push {r4,lr}  	lsls r0, 24  	lsrs r4, r0, 24 -	ldr r0, _08073B3C @ =gUnknown_2024018 +	ldr r0, _08073B3C @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _08073B40 @ =gBattleAnimAttacker  	ldrb r2, [r0] @@ -2897,7 +2897,7 @@ sub_8073B08: @ 8073B08  	movs r4, 0x3F  	b _08073B56  	.align 2, 0 -_08073B3C: .4byte gUnknown_2024018 +_08073B3C: .4byte gBattleSpritesDataPtr  _08073B40: .4byte gBattleAnimAttacker  _08073B44:  	adds r0, r2, 0 @@ -3942,7 +3942,7 @@ sub_8074320: @ 8074320  	ldrb r7, [r0, 0x1]  	adds r0, 0x2  	str r0, [r1] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080743C2 @@ -4024,7 +4024,7 @@ sub_80743C8: @ 80743C8  	ldrb r7, [r0, 0x1]  	adds r0, 0x2  	str r0, [r1] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0807444C diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s index 0d12c15d0..c9cbfea7e 100644 --- a/asm/battle_anim_effects_1.s +++ b/asm/battle_anim_effects_1.s @@ -103,13 +103,13 @@ sub_80A2388: @ 80A2388  	ldr r5, _080A23CC @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -143,13 +143,13 @@ sub_80A23D8: @ 80A23D8  	ldr r5, _080A2424 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -182,7 +182,7 @@ sub_80A2430: @ 80A2430  	ldr r5, _080A2484 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -190,7 +190,7 @@ sub_80A2430: @ 80A2430  	strh r0, [r4, 0x34]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -345,13 +345,13 @@ sub_80A2580: @ 80A2580  	ldr r5, _080A25C8 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -401,13 +401,13 @@ sub_80A25EC: @ 80A25EC  	ldr r4, _080A2634 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -438,7 +438,7 @@ _080A263C:  	ldr r4, _080A269C @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -446,7 +446,7 @@ _080A263C:  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -538,7 +538,7 @@ _080A2710:  	ldr r5, _080A2758 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -546,7 +546,7 @@ _080A2710:  	strh r0, [r6, 0x32]  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x6] @@ -760,7 +760,7 @@ sub_80A28C4: @ 80A28C4  	lsls r0, 24  	cmp r0, 0  	bne _080A28DE -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _080A28E6 @@ -814,7 +814,7 @@ sub_80A2920: @ 80A2920  	ldr r0, _080A296C @ =gBattleAnimAttacker  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x4] @@ -916,7 +916,7 @@ sub_80A29EC: @ 80A29EC  	ldr r0, _080A2A38 @ =gBattleAnimAttacker  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x4] @@ -1001,13 +1001,13 @@ sub_80A2AA4: @ 80A2AA4  	ldr r5, _080A2AE0 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -1154,7 +1154,7 @@ _080A2BBC:  	ldr r4, _080A2BF8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x4] @@ -1162,7 +1162,7 @@ _080A2BBC:  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x6] @@ -1324,7 +1324,7 @@ sub_80A2D10: @ 80A2D10  	lsls r0, 24  	cmp r0, 0  	bne _080A2D3C -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1805,7 +1805,7 @@ _080A30AA:  _080A30C2:  	ldrb r0, [r6]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080A3100 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -1814,7 +1814,7 @@ _080A30C2:  	strh r0, [r5, 0x20]  	ldrb r0, [r6]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x2] @@ -1856,13 +1856,13 @@ _080A3104:  	ldr r4, _080A315C @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -1892,13 +1892,13 @@ sub_80A3168: @ 80A3168  	ldr r4, _080A31E0 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1958,13 +1958,13 @@ sub_80A31EC: @ 80A31EC  	ldr r4, _080A32C8 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	mov r8, r0  	mov r0, r8  	lsls r0, 24 @@ -1973,13 +1973,13 @@ sub_80A31EC: @ 80A31EC  	ldr r6, _080A32CC @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r2, r0, 0  	lsls r2, 24  	subs r4, r5 @@ -2117,7 +2117,7 @@ sub_80A3334: @ 80A3334  	ldr r5, _080A33B0 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080A33B4 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -2126,7 +2126,7 @@ sub_80A3334: @ 80A3334  	strh r0, [r6, 0x20]  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x2] @@ -2374,12 +2374,12 @@ sub_80A3518: @ 80A3518  	ldr r4, _080A3560 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r2, r0, 24  	ldr r0, _080A3564 @ =gBattleAnimAttacker @@ -2481,7 +2481,7 @@ sub_80A35F4: @ 80A35F4  	ldr r4, _080A3630 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4] @@ -2583,12 +2583,12 @@ sub_80A36B4: @ 80A36B4  	ldr r4, _080A36FC @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r2, r0, 24  	ldr r0, _080A3700 @ =gBattleAnimTarget @@ -3002,13 +3002,13 @@ sub_80A39C0: @ 80A39C0  	strh r0, [r5, 0x10]  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x14]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x16] @@ -3894,7 +3894,7 @@ _080A40CE:  _080A40D4:  	adds r0, r6, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5] @@ -3917,7 +3917,7 @@ _080A4100:  	ldr r0, _080A4144 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r7, [r7] @@ -4149,12 +4149,12 @@ _080A42C4:  _080A42C6:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r5, r0, 24  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r2, r0, 24  	ldr r0, _080A4304 @ =gBattleAnimArgs @@ -4428,13 +4428,13 @@ sub_80A44E0: @ 80A44E0  	ldr r4, _080A4530 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -4531,7 +4531,7 @@ _080A45A8:  	movs r4, 0x2  	eors r0, r4  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r7, r0, 24  	ldrb r0, [r5] @@ -4544,12 +4544,12 @@ _080A45C8:  	ldr r5, _080A4620 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r7, r0, 24  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r4, r0, 24  	ldrb r0, [r5] @@ -4565,7 +4565,7 @@ _080A45C8:  	mov r2, r8  	eors r0, r2  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r7 @@ -4574,7 +4574,7 @@ _080A45C8:  	mov r1, r8  	eors r0, r1  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r4 @@ -4586,13 +4586,13 @@ _080A4624:  	ldr r4, _080A4670 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r7, r0, 24  	ldrb r0, [r4]  _080A4634:  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r4, r0, 24  _080A463E: @@ -5202,14 +5202,14 @@ sub_80A4ACC: @ 80A4ACC  	ldr r6, _080A4B2C @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r5, 0  	strh r0, [r4, 0x20]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r1, _080A4B30 @ =0x0000ffe8 @@ -5551,7 +5551,7 @@ _080A4D78:  	ldr r0, _080A4DBC @ =gBattleAnimTarget  _080A4D7A:  	ldrb r6, [r0] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080A4DC4 @@ -5590,7 +5590,7 @@ _080A4DC4:  	bne _080A4DE8  	adds r0, r6, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20] @@ -5602,14 +5602,14 @@ _080A4DE4: .4byte gBattleAnimArgs  _080A4DE8:  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	adds r0, r6, 0  	movs r1, 0x3  _080A4DFA: -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x2] @@ -6036,14 +6036,14 @@ _080A5118:  	ldr r4, _080A5168 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r7  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r6 @@ -7134,7 +7134,7 @@ _080A595C:  _080A595E:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x2] @@ -7142,7 +7142,7 @@ _080A595E:  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x4] @@ -7172,7 +7172,7 @@ sub_80A59A8: @ 80A59A8  	ldr r5, _080A59E0 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r1, _080A59E4 @ =0x0000ffd0 @@ -7180,7 +7180,7 @@ sub_80A59A8: @ 80A59A8  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -7206,7 +7206,7 @@ sub_80A59F0: @ 80A59F0  	ldr r5, _080A5A34 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r1, _080A5A38 @ =gBattleAnimArgs @@ -7218,7 +7218,7 @@ sub_80A59F0: @ 80A59F0  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -7343,7 +7343,7 @@ _080A5AF4:  _080A5AF6:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x2] @@ -7351,7 +7351,7 @@ _080A5AF6:  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x4] @@ -7417,14 +7417,14 @@ sub_80A5B7C: @ 80A5B7C  	ldr r6, _080A5BC4 @ =gBattleAnimAttacker  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r5, 0  	strh r0, [r4, 0x20]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r0, 0xC @@ -7544,7 +7544,7 @@ sub_80A5C68: @ 80A5C68  	ldr r4, _080A5CC8 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r5, _080A5CCC @ =gBattleAnimArgs  	lsrs r0, 24 @@ -7553,7 +7553,7 @@ sub_80A5C68: @ 80A5C68  	strh r0, [r6, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x2] @@ -7701,13 +7701,13 @@ _080A5D90:  	ldr r4, _080A5DD4 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -7781,7 +7781,7 @@ sub_80A5E34: @ 80A5E34  	cmp r4, r0  	bcs _080A5E90  	ldr r6, _080A5EA0 @ =gBattleAnimArgs -	ldr r5, _080A5EA4 @ =gUnknown_3004FF0 +	ldr r5, _080A5EA4 @ =gHealthboxSpriteIds  _080A5E48:  	movs r1, 0  	ldrsh r0, [r6, r1] @@ -7826,7 +7826,7 @@ _080A5E90:  	.align 2, 0  _080A5E9C: .4byte gBattlersCount  _080A5EA0: .4byte gBattleAnimArgs -_080A5EA4: .4byte gUnknown_3004FF0 +_080A5EA4: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80A5E34  	thumb_func_start sub_80A5EA8 @@ -7837,7 +7837,7 @@ sub_80A5EA8: @ 80A5EA8  	movs r4, 0  	b _080A5EC2  _080A5EB2: -	ldr r0, _080A5ED8 @ =gUnknown_3004FF0 +	ldr r0, _080A5ED8 @ =gHealthboxSpriteIds  	adds r0, r4, r0  	ldrb r0, [r0]  	bl SetHealthboxSpriteVisible @@ -7855,7 +7855,7 @@ _080A5EC2:  	pop {r0}  	bx r0  	.align 2, 0 -_080A5ED8: .4byte gUnknown_3004FF0 +_080A5ED8: .4byte gHealthboxSpriteIds  _080A5EDC: .4byte gBattlersCount  	thumb_func_end sub_80A5EA8 @@ -7920,7 +7920,7 @@ sub_80A5F40: @ 80A5F40  	ldr r0, _080A5F78 @ =gBattleAnimAttacker  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r2, _080A5F7C @ =gBattleAnimArgs  	lsrs r0, 24 @@ -8333,7 +8333,7 @@ _080A6262:  	ldr r4, _080A62CC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6] @@ -8341,7 +8341,7 @@ _080A6262:  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x2] @@ -8948,12 +8948,12 @@ _080A6734:  	ldr r4, _080A6784 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r3, r0, 24  _080A674E: @@ -9161,7 +9161,7 @@ sub_80A68B0: @ 80A68B0  _080A68CE:  	ldrb r0, [r7]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080A6938 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -9171,7 +9171,7 @@ _080A68CE:  	strh r0, [r6, 0x20]  	ldrb r0, [r7]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r2, [r4, 0x4] @@ -9300,14 +9300,14 @@ _080A69DE:  	ldr r4, _080A6A1C @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r6  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x8 @@ -9470,7 +9470,7 @@ _080A6B36:  	strh r0, [r6, 0x20]  	adds r0, r5, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	adds r0, r5, 0  	movs r1, 0 @@ -9654,7 +9654,7 @@ _080A6CA2:  	ldrb r5, [r0]  	adds r0, r5, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r6, 0 diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s index a2a1a6731..339ffcba9 100644 --- a/asm/battle_anim_effects_2.s +++ b/asm/battle_anim_effects_2.s @@ -185,13 +185,13 @@ sub_80A6F8C: @ 80A6F8C  	ldr r4, _080A6FD4 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -639,7 +639,7 @@ _080A730E:  	ldr r4, _080A73BC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r6, _080A73B8 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -650,7 +650,7 @@ _080A730E:  	mov r8, r0  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r2, [r6, 0x6] @@ -1194,7 +1194,7 @@ _080A7754:  	strh r0, [r3, 0x4]  	b _080A77B6  _080A775C: -	ldr r1, _080A77A0 @ =gUnknown_2023BD6 +	ldr r1, _080A77A0 @ =gBattlerPositions  	ldr r0, _080A77A4 @ =gBattleAnimTarget  	ldrb r0, [r0]  	adds r0, r1 @@ -1228,7 +1228,7 @@ _080A775C:  	ands r0, r1  	b _080A77B4  	.align 2, 0 -_080A77A0: .4byte gUnknown_2023BD6 +_080A77A0: .4byte gBattlerPositions  _080A77A4: .4byte gBattleAnimTarget  _080A77A8: .4byte gTasks  _080A77AC: .4byte gBattleAnimArgs @@ -1241,7 +1241,7 @@ _080A77B6:  	ldr r5, _080A7810 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	ldr r1, _080A7814 @ =gTasks  	mov r3, r8  	adds r4, r3, r7 @@ -1253,7 +1253,7 @@ _080A77B6:  	adds r6, r0, 0  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x1C] @@ -1288,13 +1288,13 @@ _080A7820:  	ldr r4, _080A787C @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r1, r10 @@ -1596,12 +1596,12 @@ sub_80A7A88: @ 80A7A88  	ldr r4, _080A7B28 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080A7B2C @ =gBattleAnimArgs  	lsrs r0, 24 @@ -1754,13 +1754,13 @@ sub_80A7BC4: @ 80A7BC4  	ldr r5, _080A7C10 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -1986,14 +1986,14 @@ _080A7D90:  	ldr r4, _080A7DEC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	add r0, r8  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r6 @@ -2079,7 +2079,7 @@ _080A7E48:  	ldr r4, _080A7EB4 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	add r0, r9 @@ -2088,7 +2088,7 @@ _080A7E48:  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r6 @@ -2959,7 +2959,7 @@ sub_80A851C: @ 80A851C  	bl StartSpriteAnim  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x20 @@ -2974,7 +2974,7 @@ _080A8550:  	bl StartSpriteAnim  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r0, 0x20 @@ -2985,7 +2985,7 @@ _080A856A:  	ldr r0, _080A85A0 @ =gBattleAnimAttacker  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0 @@ -3042,7 +3042,7 @@ _080A85CA:  _080A85E4:  	adds r0, r5, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080A862C @ =gBattleAnimArgs  	lsrs r0, 24 @@ -3051,7 +3051,7 @@ _080A85E4:  	strh r0, [r6, 0x20]  	adds r0, r5, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x4] @@ -3602,7 +3602,7 @@ sub_80A8A1C: @ 80A8A1C  	ldr r6, _080A8A70 @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r0, 0x10 @@ -3849,7 +3849,7 @@ _080A8BF2:  	movs r0, 0x1  	adds r4, r0, 0  	eors r4, r1 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080A8C6A @@ -3876,7 +3876,7 @@ _080A8C30:  	adds r0, r5, 0  	movs r1, 0x2  _080A8C34: -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r4, r0, 24  	adds r0, r5, 0 @@ -3995,7 +3995,7 @@ _080A8D10:  	beq _080A8D6C  	adds r0, r7, 0  	mov r1, r10 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r1, _080A8D50 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -4031,7 +4031,7 @@ _080A8D68: .4byte gBattlerSpriteIds  _080A8D6C:  	adds r0, r7, 0  	mov r1, r10 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r1, _080A8DD4 @ =gBattleAnimArgs @@ -4104,7 +4104,7 @@ _080A8DFA:  	strb r0, [r1]  	adds r0, r7, 0  	ldr r1, [sp, 0x4] -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080A8E48 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -4138,13 +4138,13 @@ _080A8E4C:  	mov r4, sp  	mov r0, r8  	mov r1, r10 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4]  	mov r0, r8  	ldr r1, [sp, 0x4] -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r2, sp @@ -5007,13 +5007,13 @@ sub_80A94AC: @ 80A94AC  	ldr r5, _080A9500 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x24]  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x26] @@ -5428,7 +5428,7 @@ _080A9808:  	strh r0, [r5, 0x2E]  	ldrb r0, [r6]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -5436,7 +5436,7 @@ _080A9808:  	strh r0, [r5, 0x32]  	ldrb r0, [r6]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x6] @@ -5830,7 +5830,7 @@ sub_80A9B40: @ 80A9B40  	ldr r5, _080A9B84 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -5838,7 +5838,7 @@ sub_80A9B40: @ 80A9B40  	strh r0, [r4, 0x34]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -6585,13 +6585,13 @@ sub_80AA174: @ 80AA174  	ldr r5, _080AA1C8 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -6743,13 +6743,13 @@ sub_80AA2B0: @ 80AA2B0  	ldr r4, _080AA2F8 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -6851,13 +6851,13 @@ sub_80AA37C: @ 80AA37C  	ldr r4, _080AA3C8 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -7345,13 +7345,13 @@ _080AA734:  _080AA736:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -7508,7 +7508,7 @@ _080AA856:  _080AA870:  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r7, _080AA8F0 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -7518,7 +7518,7 @@ _080AA870:  	strh r0, [r5, 0x20]  	adds r0, r6, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r7, 0x4] @@ -7872,13 +7872,13 @@ _080AAB30:  	ldr r4, _080AAB70 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x28 diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s index de012070d..cc002606a 100644 --- a/asm/battle_anim_effects_3.s +++ b/asm/battle_anim_effects_3.s @@ -92,7 +92,7 @@ sub_80DE34C: @ 80DE34C  	ldr r6, _080DE398 @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 8 @@ -102,7 +102,7 @@ sub_80DE34C: @ 80DE34C  	asrs r4, 16  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r1, r0, 0  	lsls r1, 24  	lsrs r1, 8 @@ -216,13 +216,13 @@ sub_80DE440: @ 80DE440  	ldr r4, _080DE4CC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r7, r0, 0  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r6, r0, 0 @@ -1311,13 +1311,13 @@ sub_80DEC90: @ 80DEC90  	ldr r4, _080DED08 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1590,7 +1590,7 @@ _080DEED8:  _080DEEDA:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x2] @@ -1598,7 +1598,7 @@ _080DEEDA:  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -2005,13 +2005,13 @@ sub_80DF1DC: @ 80DF1DC  	ldr r6, _080DF234 @ =gBattleAnimAttacker  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0xC]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0xE] @@ -2394,13 +2394,13 @@ _080DF4C4:  	ldr r4, _080DF51C @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -2491,13 +2491,13 @@ _080DF5AA:  	ldr r4, _080DF5DC @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -2950,7 +2950,7 @@ _080DF90A:  	ldr r0, _080DF930 @ =gBattleAnimAttacker  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -3140,7 +3140,7 @@ _080DFA86:  	lsls r2, 3  	adds r2, r3  	ldrb r2, [r2, 0x1C] -	bl sub_8034BF4 +	bl HandleSpeciesGfxDataChange  	ldrb r1, [r6]  	mov r0, sp  	bl sub_8075300 @@ -3273,13 +3273,13 @@ _080DFB8A:  	cmp r0, 0  	bne _080DFBC8  	ldrb r0, [r4] -	ldr r1, _080DFBE0 @ =gUnknown_2024018 +	ldr r1, _080DFBE0 @ =gBattleSpritesDataPtr  	ldr r1, [r1]  	ldr r2, [r1]  	lsls r1, r0, 2  	adds r1, r2  	ldrh r1, [r1, 0x2] -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  _080DFBC8:  	adds r0, r5, 0  	bl DestroyAnimVisualTask @@ -3291,7 +3291,7 @@ _080DFBCE:  	.align 2, 0  _080DFBD8: .4byte gBattleAnimAttacker  _080DFBDC: .4byte gTasks -_080DFBE0: .4byte gUnknown_2024018 +_080DFBE0: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_80DF9BC  	thumb_func_start c3_80DFBE4 @@ -3337,7 +3337,7 @@ sub_80DFC24: @ 80DFC24  	ldr r1, _080DFC4C @ =gBattleAnimTarget  	ldrb r1, [r1]  	movs r2, 0x1 -	bl sub_8034BF4 +	bl HandleSpeciesGfxDataChange  	adds r0, r4, 0  	bl DestroyAnimVisualTask  	pop {r4} @@ -3678,14 +3678,14 @@ _080DFF06:  	ldr r4, _080E0000 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r5  	strh r0, [r7, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x20 @@ -4094,7 +4094,7 @@ _080E0264:  	bl GetBattlerPosition  	lsls r0, 24  	lsrs r4, r0, 24 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -5116,13 +5116,13 @@ sub_80E0A3C: @ 80E0A3C  	ldr r4, _080E0A98 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -5675,13 +5675,13 @@ sub_80E0E94: @ 80E0E94  	ldr r5, _080E0ED0 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -5856,7 +5856,7 @@ sub_80E0FB8: @ 80E0FB8  	movs r1, 0x1  	bl GetMonData  	mov r9, r0 -	ldr r0, _080E1050 @ =gUnknown_2024018 +	ldr r0, _080E1050 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r2, [r4]  	ldr r1, [r0] @@ -5882,7 +5882,7 @@ _080E1040: .4byte gBattleAnimAttacker  _080E1044: .4byte gBattlerPartyIndexes  _080E1048: .4byte gBattleAnimTarget  _080E104C: .4byte gPlayerParty -_080E1050: .4byte gUnknown_2024018 +_080E1050: .4byte gBattleSpritesDataPtr  _080E1054:  	ldrb r0, [r4]  	lsls r0, 1 @@ -5930,7 +5930,7 @@ _080E107C:  	movs r1, 0x1  	bl GetMonData  	mov r9, r0 -	ldr r0, _080E10EC @ =gUnknown_2024018 +	ldr r0, _080E10EC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r2, [r4]  	ldr r1, [r0] @@ -5956,7 +5956,7 @@ _080E107C:  _080E10E0: .4byte gBattlerPartyIndexes  _080E10E4: .4byte gBattleAnimTarget  _080E10E8: .4byte gEnemyParty -_080E10EC: .4byte gUnknown_2024018 +_080E10EC: .4byte gBattleSpritesDataPtr  _080E10F0: .4byte gPlayerParty  _080E10F4:  	ldrb r0, [r4] @@ -5985,13 +5985,13 @@ _080E1112:  	ldr r5, _080E1200 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	mov r2, r8  	lsls r1, r2, 16 @@ -7031,7 +7031,7 @@ _080E194E:  	ldr r4, _080E1988 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x2] @@ -7039,7 +7039,7 @@ _080E194E:  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x4] @@ -7602,13 +7602,13 @@ _080E1DA2:  	ldrb r4, [r0]  	adds r0, r4, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x10]  	adds r0, r4, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x12] @@ -8031,7 +8031,7 @@ sub_80E20D4: @ 80E20D4  _080E20F0:  	ldrb r0, [r6]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080E2130 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -8040,7 +8040,7 @@ _080E20F0:  	strh r0, [r5, 0x20]  	ldrb r0, [r6]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x2] @@ -8164,7 +8164,7 @@ sub_80E21CC: @ 80E21CC  	bne _080E2224  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	ldrb r0, [r5]  	movs r1, 0 @@ -8186,7 +8186,7 @@ _080E2220: .4byte gBattleAnimAttacker  _080E2224:  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	ldrb r0, [r5]  	movs r1, 0 @@ -8206,7 +8206,7 @@ _080E2248:  	ldr r5, _080E229C @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	ldrb r0, [r5]  	movs r1, 0 @@ -8225,13 +8225,13 @@ _080E226C:  	ldr r4, _080E22A0 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x22]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x24] @@ -8595,14 +8595,14 @@ sub_80E2518: @ 80E2518  	mov r10, r0  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r7, 0x1E]  	mov r1, r10  	ldrb r0, [r1]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r7, 0x20] @@ -8610,14 +8610,14 @@ sub_80E2518: @ 80E2518  	mov r8, r0  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r7, 0x22]  	mov r1, r8  	ldrb r0, [r1]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	mov r1, r8  	ldrb r0, [r1] @@ -8918,7 +8918,7 @@ _080E27C0:  	strh r1, [r4, 0x3C]  	adds r0, r5, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -9225,7 +9225,7 @@ _080E2A0C:  _080E2A0E:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20] @@ -9617,7 +9617,7 @@ sub_80E2CE4: @ 80E2CE4  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x26] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r7, r0, 24  	cmp r7, 0x1 @@ -9625,7 +9625,7 @@ sub_80E2CE4: @ 80E2CE4  	ldr r5, _080E2D38 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -9633,7 +9633,7 @@ sub_80E2CE4: @ 80E2CE4  	movs r0, 0x2  	eors r0, r1  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	cmp r4, r0 @@ -10074,14 +10074,14 @@ _080E307C:  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r5, r0, 24  	ldrh r0, [r4, 0x3C]  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r1, r0, 24  _080E309C: @@ -10298,10 +10298,10 @@ sub_80E321C: @ 80E321C  	ldr r4, _080E3250 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	ldrb r0, [r4]  	bl GetBattlerSide  	lsls r0, 24 @@ -10676,7 +10676,7 @@ _080E350C:  	ldr r0, _080E352C @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -10927,7 +10927,7 @@ _080E36B4:  	adds r0, r2  	movs r1, 0x2  	strh r1, [r0, 0x8] -	ldr r0, _080E3750 @ =gUnknown_2024018 +	ldr r0, _080E3750 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080E3754 @ =gBattleAnimTarget  	ldrb r0, [r0] @@ -10960,7 +10960,7 @@ _080E36B4:  _080E3744: .4byte gSprites  _080E3748: .4byte 0x0000fff0  _080E374C: .4byte gTasks -_080E3750: .4byte gUnknown_2024018 +_080E3750: .4byte gBattleSpritesDataPtr  _080E3754: .4byte gBattleAnimTarget  _080E3758:  	adds r1, r5, 0 @@ -11063,7 +11063,7 @@ sub_80E37FC: @ 80E37FC  	ble _080E3846  	movs r0, 0  	strh r0, [r4, 0x30] -	ldr r0, _080E3870 @ =gUnknown_2024018 +	ldr r0, _080E3870 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080E3874 @ =gBattleAnimTarget  	ldrb r0, [r0] @@ -11111,7 +11111,7 @@ _080E3846:  	beq _080E3890  	b _080E38CE  	.align 2, 0 -_080E3870: .4byte gUnknown_2024018 +_080E3870: .4byte gBattleSpritesDataPtr  _080E3874: .4byte gBattleAnimTarget  _080E3878:  	ldrh r0, [r4, 0x32] @@ -11364,7 +11364,7 @@ _080E3A2C:  	movs r1, 0x1  	bl GetMonData  	mov r9, r0 -	ldr r0, _080E3A9C @ =gUnknown_2024018 +	ldr r0, _080E3A9C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r2, [r4]  	ldr r1, [r0] @@ -11387,7 +11387,7 @@ _080E3A2C:  _080E3A90: .4byte gBattleAnimAttacker  _080E3A94: .4byte gBattlerPartyIndexes  _080E3A98: .4byte gPlayerParty -_080E3A9C: .4byte gUnknown_2024018 +_080E3A9C: .4byte gBattleSpritesDataPtr  _080E3AA0:  	ldrh r5, [r1, 0x2]  _080E3AA2: @@ -11433,7 +11433,7 @@ _080E3ACC:  	movs r1, 0x1  	bl GetMonData  	mov r9, r0 -	ldr r0, _080E3B2C @ =gUnknown_2024018 +	ldr r0, _080E3B2C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r2, [r4]  	ldr r1, [r0] @@ -11455,7 +11455,7 @@ _080E3ACC:  	.align 2, 0  _080E3B24: .4byte gBattlerPartyIndexes  _080E3B28: .4byte gEnemyParty -_080E3B2C: .4byte gUnknown_2024018 +_080E3B2C: .4byte gBattleSpritesDataPtr  _080E3B30:  	ldrh r5, [r1, 0x2]  _080E3B32: @@ -11479,7 +11479,7 @@ _080E3B54:  	ldr r0, _080E3BD8 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	lsls r3, r6, 16 @@ -11501,7 +11501,7 @@ _080E3B54:  	bl sub_80768D0  	lsls r0, 24  	lsrs r5, r0, 24 -	ldr r0, _080E3BE0 @ =gUnknown_2024018 +	ldr r0, _080E3BE0 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldrb r0, [r4]  	ldr r1, [r1] @@ -11540,7 +11540,7 @@ _080E3BD0: .4byte gSprites  _080E3BD4: .4byte 0x0000ffe0  _080E3BD8: .4byte gBattleAnimTarget  _080E3BDC: .4byte gBattleAnimAttacker -_080E3BE0: .4byte gUnknown_2024018 +_080E3BE0: .4byte gBattleSpritesDataPtr  _080E3BE4: .4byte 0x00007fff  _080E3BE8: .4byte gTasks  _080E3BEC: @@ -11627,7 +11627,7 @@ _080E3C5A:  	ldr r0, _080E3CB4 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	cmp r4, r0 @@ -11644,7 +11644,7 @@ _080E3CB8:  	ldr r0, _080E3CFC @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	cmp r4, r0 @@ -11790,7 +11790,7 @@ _080E3D90:  	mov r1, r10  	ldrb r0, [r1]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r3, r5, 0 @@ -11823,7 +11823,7 @@ _080E3E10:  	mov r2, r10  	ldrb r0, [r2]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r3, r5, 0 @@ -11892,7 +11892,7 @@ _080E3E96:  	ldr r0, _080E3F18 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x10 @@ -12054,14 +12054,14 @@ _080E4004:  	ldr r0, _080E4048 @ =gBattleAnimAttacker  	ldrb r0, [r0]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r5, r0, 0  	ldr r0, _080E404C @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r2, r0, 0 @@ -12526,7 +12526,7 @@ sub_80E43A4: @ 80E43A4  	ldr r4, _080E43E8 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20] diff --git a/asm/battle_anim_mons.s b/asm/battle_anim_mons.s index b971694e3..060a2af23 100644 --- a/asm/battle_anim_mons.s +++ b/asm/battle_anim_mons.s @@ -5,8 +5,8 @@  	.text -	thumb_func_start sub_8074480 -sub_8074480: @ 8074480 +	thumb_func_start GetBattlerSpriteCoord +GetBattlerSpriteCoord: @ 8074480  	push {r4,r5,lr}  	lsls r0, 24  	lsrs r5, r0, 24 @@ -70,7 +70,7 @@ _08074500:  	lsls r0, 24  	cmp r0, 0  	beq _08074538 -	ldr r0, _0807452C @ =gUnknown_2024018 +	ldr r0, _0807452C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r5, 2 @@ -87,11 +87,11 @@ _08074500:  	ldr r1, _08074534 @ =gEnemyParty  	b _08074556  	.align 2, 0 -_0807452C: .4byte gUnknown_2024018 +_0807452C: .4byte gBattleSpritesDataPtr  _08074530: .4byte gBattlerPartyIndexes  _08074534: .4byte gEnemyParty  _08074538: -	ldr r0, _08074564 @ =gUnknown_2024018 +	ldr r0, _08074564 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r5, 2 @@ -114,7 +114,7 @@ _08074556:  	lsrs r1, r0, 16  	b _08074572  	.align 2, 0 -_08074564: .4byte gUnknown_2024018 +_08074564: .4byte gBattleSpritesDataPtr  _08074568: .4byte gBattlerPartyIndexes  _0807456C: .4byte gPlayerParty  _08074570: @@ -136,7 +136,7 @@ _08074588:  	pop {r4,r5}  	pop {r1}  	bx r1 -	thumb_func_end sub_8074480 +	thumb_func_end GetBattlerSpriteCoord  	thumb_func_start sub_8074590  sub_8074590: @ 8074590 @@ -154,7 +154,7 @@ sub_8074590: @ 8074590  	bne _08074674  	cmp r4, 0xC9  	bne _08074638 -	ldr r0, _080745D8 @ =gUnknown_2024018 +	ldr r0, _080745D8 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0]  	lsls r1, r5, 2 @@ -175,11 +175,11 @@ sub_8074590: @ 8074590  	adds r2, r0, 0  	b _080745EA  	.align 2, 0 -_080745D8: .4byte gUnknown_2024018 +_080745D8: .4byte gBattleSpritesDataPtr  _080745DC: .4byte gBattlerPartyIndexes  _080745E0: .4byte gPlayerParty  _080745E4: -	ldr r0, _08074620 @ =gUnknown_2024008 +	ldr r0, _08074620 @ =gTransformedPersonalities  	adds r0, r1, r0  	ldr r2, [r0]  _080745EA: @@ -209,7 +209,7 @@ _080745EA:  	adds r0, r7, 0  	b _0807462E  	.align 2, 0 -_08074620: .4byte gUnknown_2024008 +_08074620: .4byte gTransformedPersonalities  _08074624:  	movs r1, 0xCE  	lsls r1, 1 @@ -255,7 +255,7 @@ _08074670: .4byte gUnknown_8235E6C  _08074674:  	cmp r4, 0xC9  	bne _08074704 -	ldr r0, _080746A4 @ =gUnknown_2024018 +	ldr r0, _080746A4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0]  	lsls r1, r5, 2 @@ -276,11 +276,11 @@ _08074674:  	adds r2, r0, 0  	b _080746B6  	.align 2, 0 -_080746A4: .4byte gUnknown_2024018 +_080746A4: .4byte gBattleSpritesDataPtr  _080746A8: .4byte gBattlerPartyIndexes  _080746AC: .4byte gEnemyParty  _080746B0: -	ldr r0, _080746EC @ =gUnknown_2024008 +	ldr r0, _080746EC @ =gTransformedPersonalities  	adds r0, r1, r0  	ldr r2, [r0]  _080746B6: @@ -310,7 +310,7 @@ _080746B6:  	adds r0, r7, 0  	b _080746FA  	.align 2, 0 -_080746EC: .4byte gUnknown_2024008 +_080746EC: .4byte gTransformedPersonalities  _080746F0:  	movs r1, 0xCE  	lsls r1, 1 @@ -397,12 +397,12 @@ _08074788:  	lsls r0, 1  	cmp r4, r0  	bls _08074798 -	ldr r0, _08074794 @ =gUnknown_823A004 +	ldr r0, _08074794 @ =gEnemyMonElevation  	b _0807479C  	.align 2, 0 -_08074794: .4byte gUnknown_823A004 +_08074794: .4byte gEnemyMonElevation  _08074798: -	ldr r0, _080747A8 @ =gUnknown_823A004 +	ldr r0, _080747A8 @ =gEnemyMonElevation  	adds r0, r7, r0  _0807479C:  	ldrb r5, [r0] @@ -412,7 +412,7 @@ _0807479E:  	pop {r1}  	bx r1  	.align 2, 0 -_080747A8: .4byte gUnknown_823A004 +_080747A8: .4byte gEnemyMonElevation  	thumb_func_end sub_807474C  	thumb_func_start sub_80747AC @@ -504,7 +504,7 @@ sub_8074844: @ 8074844  	lsrs r1, 24  	cmp r1, 0x1  	bhi _08074896 -	ldr r0, _08074874 @ =gUnknown_2024018 +	ldr r0, _08074874 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r2, 2 @@ -518,7 +518,7 @@ sub_8074844: @ 8074844  	ldrh r1, [r0]  	b _0807487E  	.align 2, 0 -_08074874: .4byte gUnknown_2024018 +_08074874: .4byte gBattleSpritesDataPtr  _08074878: .4byte gUnknown_2037F1C  _0807487C:  	ldrh r1, [r1, 0x2] @@ -537,7 +537,7 @@ _0807488C:  _08074896:  	adds r0, r2, 0  	adds r1, r3, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  _0807489E:  	lsls r0, 24  	lsrs r0, 24 @@ -545,18 +545,18 @@ _0807489E:  	bx r1  	thumb_func_end sub_8074844 -	thumb_func_start GetBankSpriteDefault_Y -GetBankSpriteDefault_Y: @ 80748A8 +	thumb_func_start GetBattlerSpriteDefault_Y +GetBattlerSpriteDefault_Y: @ 80748A8  	push {lr}  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x4 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	pop {r1}  	bx r1 -	thumb_func_end GetBankSpriteDefault_Y +	thumb_func_end GetBattlerSpriteDefault_Y  	thumb_func_start GetSubstituteSpriteDefault_Y  GetSubstituteSpriteDefault_Y: @ 80748BC @@ -570,7 +570,7 @@ GetSubstituteSpriteDefault_Y: @ 80748BC  	beq _080748E0  	adds r0, r4, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r1, 0x80 @@ -579,7 +579,7 @@ GetSubstituteSpriteDefault_Y: @ 80748BC  _080748E0:  	adds r0, r4, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r1, 0x88 @@ -612,7 +612,7 @@ _0807491A:  	adds r0, r4, 0  	movs r1, 0x4  _0807491E: -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	pop {r4} @@ -627,7 +627,7 @@ sub_807492C: @ 807492C  	lsrs r5, r0, 24  	adds r0, r5, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	adds r0, r5, 0 @@ -635,7 +635,7 @@ sub_807492C: @ 807492C  	lsls r0, 24  	cmp r0, 0  	beq _08074978 -	ldr r0, _0807496C @ =gUnknown_2024018 +	ldr r0, _0807496C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r5, 2 @@ -652,11 +652,11 @@ sub_807492C: @ 807492C  	ldr r1, _08074974 @ =gEnemyParty  	b _08074996  	.align 2, 0 -_0807496C: .4byte gUnknown_2024018 +_0807496C: .4byte gBattleSpritesDataPtr  _08074970: .4byte gBattlerPartyIndexes  _08074974: .4byte gEnemyParty  _08074978: -	ldr r0, _080749A4 @ =gUnknown_2024018 +	ldr r0, _080749A4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r5, 2 @@ -679,7 +679,7 @@ _08074996:  	lsrs r4, r0, 16  	b _080749B2  	.align 2, 0 -_080749A4: .4byte gUnknown_2024018 +_080749A4: .4byte gBattleSpritesDataPtr  _080749A8: .4byte gBattlerPartyIndexes  _080749AC: .4byte gPlayerParty  _080749B0: @@ -713,7 +713,7 @@ GetAnimBankSpriteId: @ 80749D4  	bne _080749FC  	ldr r4, _080749F4 @ =gBattleAnimAttacker  	ldrb r0, [r4] -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _08074A4A @@ -728,7 +728,7 @@ _080749FC:  	bne _08074A1C  	ldr r4, _08074A14 @ =gBattleAnimTarget  	ldrb r0, [r4] -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _08074A4A @@ -1245,13 +1245,13 @@ sub_8074D80: @ 8074D80  	ldr r5, _08074DBC @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -1446,13 +1446,13 @@ sub_8074EF4: @ 8074EF4  	ldr r5, _08074F30 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -1556,13 +1556,13 @@ sub_8074FCC: @ 8074FCC  	ldr r4, _08074FF4 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1585,13 +1585,13 @@ sub_8074FF8: @ 8074FF8  	ldr r7, _08075030 @ =gBattleAnimAttacker  	ldrb r0, [r7]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldr r0, _08075034 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	cmp r6, r0 @@ -1824,26 +1824,26 @@ _080751C0: .4byte gBattleAnimArgs  GetBattlerSide: @ 80751C4  	lsls r0, 24  	lsrs r0, 24 -	ldr r1, _080751D4 @ =gUnknown_2023BD6 +	ldr r1, _080751D4 @ =gBattlerPositions  	adds r0, r1  	ldrb r1, [r0]  	movs r0, 0x1  	ands r0, r1  	bx lr  	.align 2, 0 -_080751D4: .4byte gUnknown_2023BD6 +_080751D4: .4byte gBattlerPositions  	thumb_func_end GetBattlerSide  	thumb_func_start GetBattlerPosition  GetBattlerPosition: @ 80751D8  	lsls r0, 24  	lsrs r0, 24 -	ldr r1, _080751E4 @ =gUnknown_2023BD6 +	ldr r1, _080751E4 @ =gBattlerPositions  	adds r0, r1  	ldrb r0, [r0]  	bx lr  	.align 2, 0 -_080751E4: .4byte gUnknown_2023BD6 +_080751E4: .4byte gBattlerPositions  	thumb_func_end GetBattlerPosition  	thumb_func_start GetBattlerAtPosition @@ -1856,7 +1856,7 @@ GetBattlerAtPosition: @ 80751E8  	ldrb r2, [r0]  	cmp r1, r2  	bcs _08075212 -	ldr r4, _08075220 @ =gUnknown_2023BD6 +	ldr r4, _08075220 @ =gBattlerPositions  	ldrb r0, [r4]  	cmp r0, r3  	beq _08075212 @@ -1877,16 +1877,16 @@ _08075212:  	bx r1  	.align 2, 0  _0807521C: .4byte gBattlersCount -_08075220: .4byte gUnknown_2023BD6 +_08075220: .4byte gBattlerPositions  	thumb_func_end GetBattlerAtPosition -	thumb_func_start sub_8075224 -sub_8075224: @ 8075224 +	thumb_func_start IsBattlerSpritePresent +IsBattlerSpritePresent: @ 8075224  	push {r4,r5,lr}  	lsls r0, 24  	lsrs r4, r0, 24  	adds r5, r4, 0 -	ldr r0, _08075254 @ =gUnknown_2023BD6 +	ldr r0, _08075254 @ =gBattlerPositions  	adds r0, r4, r0  	ldrb r0, [r0]  	cmp r0, 0xFF @@ -1905,7 +1905,7 @@ sub_8075224: @ 8075224  	ldr r1, _0807525C @ =gEnemyParty  	b _0807526E  	.align 2, 0 -_08075254: .4byte gUnknown_2023BD6 +_08075254: .4byte gBattlerPositions  _08075258: .4byte gBattlerPartyIndexes  _0807525C: .4byte gEnemyParty  _08075260: @@ -1933,10 +1933,10 @@ _0807528A:  	pop {r4,r5}  	pop {r1}  	bx r1 -	thumb_func_end sub_8075224 +	thumb_func_end IsBattlerSpritePresent -	thumb_func_start sub_8075290 -sub_8075290: @ 8075290 +	thumb_func_start IsDoubleBattle +IsDoubleBattle: @ 8075290  	ldr r0, _0807529C @ =gBattleTypeFlags  	ldr r0, [r0]  	movs r1, 0x1 @@ -1944,7 +1944,7 @@ sub_8075290: @ 8075290  	bx lr  	.align 2, 0  _0807529C: .4byte gBattleTypeFlags -	thumb_func_end sub_8075290 +	thumb_func_end IsDoubleBattle  	thumb_func_start sub_80752A0  sub_80752A0: @ 80752A0 @@ -2865,7 +2865,7 @@ _08075914:  	lsls r0, 30  	cmp r0, 0  	bne _0807595C -	ldr r0, _0807597C @ =gUnknown_2024018 +	ldr r0, _0807597C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r6, 1 @@ -2898,7 +2898,7 @@ _0807595C:  	bx r0  	.align 2, 0  _08075978: .4byte gSprites -_0807597C: .4byte gUnknown_2024018 +_0807597C: .4byte gBattleSpritesDataPtr  	thumb_func_end PrepareBattlerSpriteForRotScale  	thumb_func_start ResetSpriteRotScale @@ -3533,7 +3533,7 @@ _08075E30:  	ldr r4, _08075E74 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x4] @@ -3541,7 +3541,7 @@ _08075E30:  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	adds r1, r7, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x6] @@ -3586,7 +3586,7 @@ _08075EA0:  	ldr r5, _08075EE8 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -3594,7 +3594,7 @@ _08075EA0:  	strh r0, [r6, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x6] @@ -3687,7 +3687,7 @@ _08075F62:  	strh r0, [r5, 0x2E]  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r2, [r4, 0x4] @@ -3695,7 +3695,7 @@ _08075F62:  	strh r0, [r5, 0x32]  	adds r0, r6, 0  	adds r1, r7, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x6] @@ -4441,7 +4441,7 @@ _08076508:  	lsls r0, 24  	cmp r0, 0  	bne _08076568 -	ldr r0, _08076554 @ =gUnknown_2024018 +	ldr r0, _08076554 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r5, 2 @@ -4465,7 +4465,7 @@ _08076508:  _08076548: .4byte gSprites  _0807654C: .4byte gBattlerSpriteIds  _08076550: .4byte gBattlerPartyIndexes -_08076554: .4byte gUnknown_2024018 +_08076554: .4byte gBattleSpritesDataPtr  _08076558: .4byte gPlayerParty  _0807655C:  	ldrh r1, [r1, 0x2] @@ -4475,7 +4475,7 @@ _0807655E:  	.align 2, 0  _08076564: .4byte gUnknown_8235E6C  _08076568: -	ldr r0, _08076594 @ =gUnknown_2024018 +	ldr r0, _08076594 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r5, 2 @@ -4496,7 +4496,7 @@ _08076568:  	lsrs r1, r0, 16  	b _0807659E  	.align 2, 0 -_08076594: .4byte gUnknown_2024018 +_08076594: .4byte gBattleSpritesDataPtr  _08076598: .4byte gEnemyParty  _0807659C:  	ldrh r1, [r1, 0x2] @@ -5019,7 +5019,7 @@ _0807694E:  	adds r0, r6, 0  	ldr r1, [sp, 0x3C]  	mov r2, r8 -	bl GetFrontSpritePalFromSpeciesAndPersonality +	bl GetMonSpritePalFromSpeciesAndPersonality  	lsls r1, r5, 20  	movs r2, 0x80  	lsls r2, 17 @@ -5039,7 +5039,7 @@ _0807694E:  	lsrs r0, 24  	cmp r0, 0x1  	beq _0807699A -	ldr r0, _080769BC @ =gUnknown_2024018 +	ldr r0, _080769BC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	ldr r2, [sp, 0x40] @@ -5064,7 +5064,7 @@ _0807699A:  _080769B0: .4byte gUnknown_83AE084  _080769B4: .4byte gUnknown_83AE054  _080769B8: .4byte gMonSpritesGfxPtr -_080769BC: .4byte gUnknown_2024018 +_080769BC: .4byte gBattleSpritesDataPtr  _080769C0: .4byte gMonFrontPicTable  _080769C4:  	lsls r0, r6, 3 @@ -5089,7 +5089,7 @@ _080769EC:  	adds r0, r6, 0  	ldr r1, [sp, 0x3C]  	mov r2, r8 -	bl GetFrontSpritePalFromSpeciesAndPersonality +	bl GetMonSpritePalFromSpeciesAndPersonality  	lsls r1, r5, 20  	movs r3, 0x80  	lsls r3, 17 @@ -5109,7 +5109,7 @@ _080769EC:  	lsrs r0, 24  	cmp r0, 0x1  	beq _08076A32 -	ldr r0, _08076A54 @ =gUnknown_2024018 +	ldr r0, _08076A54 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	ldr r3, [sp, 0x40] @@ -5136,7 +5136,7 @@ _08076A46:  	bl LoadSpecialPokePic_DontHandleDeoxys  	b _08076A7C  	.align 2, 0 -_08076A54: .4byte gUnknown_2024018 +_08076A54: .4byte gBattleSpritesDataPtr  _08076A58: .4byte gMonBackPicTable  _08076A5C: .4byte gMonSpritesGfxPtr  _08076A60: @@ -5254,7 +5254,7 @@ sub_8076B2C: @ 8076B2C  	lsls r0, 24  	cmp r0, 0  	bne _08076C08 -	ldr r0, _08076B88 @ =gUnknown_2024018 +	ldr r0, _08076B88 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0]  	mov r1, r8 @@ -5284,12 +5284,12 @@ sub_8076B2C: @ 8076B2C  	adds r2, r0, 0  	b _08076B9C  	.align 2, 0 -_08076B88: .4byte gUnknown_2024018 +_08076B88: .4byte gBattleSpritesDataPtr  _08076B8C: .4byte gBattlerPartyIndexes  _08076B90: .4byte gPlayerParty  _08076B94:  	ldrh r7, [r1, 0x2] -	ldr r0, _08076BD4 @ =gUnknown_2024008 +	ldr r0, _08076BD4 @ =gTransformedPersonalities  	adds r0, r2, r0  	ldr r2, [r0]  _08076B9C: @@ -5321,7 +5321,7 @@ _08076B9C:  	movs r0, 0xC9  	b _08076BE2  	.align 2, 0 -_08076BD4: .4byte gUnknown_2024008 +_08076BD4: .4byte gTransformedPersonalities  _08076BD8:  	movs r1, 0xCE  	lsls r1, 1 @@ -5350,7 +5350,7 @@ _08076BFC:  	.align 2, 0  _08076C04: .4byte gUnknown_8235E6C  _08076C08: -	ldr r0, _08076C48 @ =gUnknown_2024018 +	ldr r0, _08076C48 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0]  	mov r1, r8 @@ -5380,12 +5380,12 @@ _08076C08:  	adds r2, r0, 0  	b _08076C5C  	.align 2, 0 -_08076C48: .4byte gUnknown_2024018 +_08076C48: .4byte gBattleSpritesDataPtr  _08076C4C: .4byte gBattlerPartyIndexes  _08076C50: .4byte gEnemyParty  _08076C54:  	ldrh r7, [r1, 0x2] -	ldr r0, _08076C94 @ =gUnknown_2024008 +	ldr r0, _08076C94 @ =gTransformedPersonalities  	adds r0, r2, r0  	ldr r2, [r0]  _08076C5C: @@ -5417,7 +5417,7 @@ _08076C5C:  	movs r0, 0xC9  	b _08076CA2  	.align 2, 0 -_08076C94: .4byte gUnknown_2024008 +_08076C94: .4byte gTransformedPersonalities  _08076C98:  	movs r1, 0xCE  	lsls r1, 1 @@ -5492,7 +5492,7 @@ _08076D1E:  _08076D26:  	mov r0, r8  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrb r1, [r4] @@ -5501,7 +5501,7 @@ _08076D26:  _08076D38:  	mov r0, r8  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrb r1, [r4] @@ -5510,7 +5510,7 @@ _08076D38:  _08076D4A:  	mov r0, r8  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrb r2, [r4] @@ -5523,7 +5523,7 @@ _08076D5C:  _08076D62:  	mov r0, r8  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrb r2, [r4] @@ -5536,7 +5536,7 @@ _08076D74:  _08076D7A:  	mov r0, r8  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x1F @@ -5577,16 +5577,16 @@ _08076DBA:  _08076DBE:  	adds r0, r4, 0  	adds r1, r5, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r8, r0  	adds r0, r4, 0  	adds r1, r6, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r7, r0, 24 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _08076E06 @@ -5594,12 +5594,12 @@ _08076DBE:  	eors r4, r0  	adds r0, r4, 0  	adds r1, r5, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r5, r0, 24  	adds r0, r4, 0  	adds r1, r6, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r3, r0, 24  	mov r0, r8 @@ -6201,13 +6201,13 @@ sub_807729C: @ 807729C  	ldr r4, _080772D0 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s index 8d5d5a6b4..f047db552 100644 --- a/asm/battle_anim_special.s +++ b/asm/battle_anim_special.s @@ -56,7 +56,7 @@ sub_80EEC0C: @ 80EEC0C  	movs r1, 0x3  	movs r2, 0x1  	bl SetAnimBgAttribute -	ldr r0, _080EEDCC @ =gUnknown_3004FF0 +	ldr r0, _080EEDCC @ =gHealthboxSpriteIds  	adds r4, r0  	ldrb r0, [r4]  	ldr r1, _080EEDD0 @ =gSprites @@ -209,7 +209,7 @@ _080EEDBC: .4byte gUnknown_2022986  _080EEDC0: .4byte 0x00003f3f  _080EEDC4: .4byte 0x00003f3d  _080EEDC8: .4byte 0x00003f42 -_080EEDCC: .4byte gUnknown_3004FF0 +_080EEDCC: .4byte gHealthboxSpriteIds  _080EEDD0: .4byte gSprites  _080EEDD4: .4byte SpriteCallbackDummy  _080EEDD8: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap @@ -392,7 +392,7 @@ _080EEF00:  	movs r1, 0x1  	movs r2, 0  	bl SetAnimBgAttribute -	ldr r0, _080EEFC4 @ =gUnknown_3004FF0 +	ldr r0, _080EEFC4 @ =gHealthboxSpriteIds  	add r0, r8  	ldrb r0, [r0]  	lsls r1, r0, 4 @@ -443,7 +443,7 @@ _080EEFB4: .4byte gUnknown_2022984  _080EEFB8: .4byte gUnknown_2022986  _080EEFBC: .4byte 0x00003f3f  _080EEFC0: .4byte gSprites -_080EEFC4: .4byte gUnknown_3004FF0 +_080EEFC4: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80EEDF4  	thumb_func_start sub_80EEFC8 @@ -458,7 +458,7 @@ sub_80EEFC8: @ 80EEFC8  	adds r7, r1, 0  	lsls r2, 24  	lsrs r2, 24 -	ldr r0, _080EF0A0 @ =gUnknown_3004FF0 +	ldr r0, _080EF0A0 @ =gHealthboxSpriteIds  	adds r2, r0  	ldrb r0, [r2]  	lsls r5, r0, 4 @@ -553,7 +553,7 @@ sub_80EEFC8: @ 80EEFC8  	pop {r0}  	bx r0  	.align 2, 0 -_080EF0A0: .4byte gUnknown_3004FF0 +_080EF0A0: .4byte gHealthboxSpriteIds  _080EF0A4: .4byte gSprites  _080EF0A8: .4byte 0x0000d709  _080EF0AC: .4byte 0x0000d70a @@ -591,7 +591,7 @@ sub_80EF0E0: @ 80EF0E0  	push {r5,r6}  	lsls r0, 24  	lsrs r0, 24 -	ldr r1, _080EF168 @ =gUnknown_3004FF0 +	ldr r1, _080EF168 @ =gHealthboxSpriteIds  	adds r0, r1  	ldrb r0, [r0]  	ldr r1, _080EF16C @ =gSprites @@ -650,7 +650,7 @@ sub_80EF0E0: @ 80EF0E0  	pop {r0}  	bx r0  	.align 2, 0 -_080EF168: .4byte gUnknown_3004FF0 +_080EF168: .4byte gHealthboxSpriteIds  _080EF16C: .4byte gSprites  _080EF170: .4byte 0x0000d709  _080EF174: .4byte 0x0000d70a @@ -963,13 +963,13 @@ _080EF3D8:  	ldr r5, _080EF450 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r1, r0, 0  	lsls r1, 24  	ldr r2, _080EF454 @ =gSprites @@ -1095,7 +1095,7 @@ sub_80EF4E0: @ 80EF4E0  	push {lr}  	lsls r0, 24  	lsrs r2, r0, 24 -	ldr r0, _080EF4FC @ =gUnknown_2024018 +	ldr r0, _080EF4FC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r0, [r0, 0x8] @@ -1107,7 +1107,7 @@ sub_80EF4E0: @ 80EF4E0  	movs r0, 0  	b _080EF518  	.align 2, 0 -_080EF4FC: .4byte gUnknown_2024018 +_080EF4FC: .4byte gBattleSpritesDataPtr  _080EF500: .4byte gBattleAnimArgs  _080EF504:  	ldr r1, _080EF50C @ =gBattleAnimArgs @@ -1240,14 +1240,14 @@ sub_80EF5AC: @ 80EF5AC  	mov r8, r2  	ldrb r0, [r2]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x30]  	mov r1, r8  	ldrb r0, [r1]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r0, 0x10 @@ -1257,7 +1257,7 @@ sub_80EF5AC: @ 80EF5AC  	adds r4, r0  	ldr r0, _080EF684 @ =sub_80EF8C0  	str r0, [r4] -	ldr r0, _080EF688 @ =gUnknown_2024018 +	ldr r0, _080EF688 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r3, [r0, 0x8]  	ldr r1, _080EF68C @ =gBattlerSpriteIds @@ -1302,7 +1302,7 @@ _080EF678: .4byte gUnknown_82606F4  _080EF67C: .4byte gSprites  _080EF680: .4byte gBattleAnimTarget  _080EF684: .4byte sub_80EF8C0 -_080EF688: .4byte gUnknown_2024018 +_080EF688: .4byte gBattleSpritesDataPtr  _080EF68C: .4byte gBattlerSpriteIds  _080EF690: .4byte gTasks  _080EF694: .4byte sub_80EF698 @@ -1411,14 +1411,14 @@ _080EF708:  	mov r8, r1  	ldrb r0, [r1]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x30]  	mov r1, r8  	ldrb r0, [r1]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r0, 0x10 @@ -1605,7 +1605,7 @@ sub_80EF8F0: @ 80EF8F0  	lsls r0, 24  	cmp r0, 0  	beq _080EF99E -	ldr r0, _080EF914 @ =gUnknown_2024018 +	ldr r0, _080EF914 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r0, [r0, 0x8] @@ -1615,7 +1615,7 @@ sub_80EF8F0: @ 80EF8F0  	str r0, [r4, 0x1C]  	b _080EF99E  	.align 2, 0 -_080EF914: .4byte gUnknown_2024018 +_080EF914: .4byte gBattleSpritesDataPtr  _080EF918: .4byte sub_80F0478  _080EF91C:  	cmp r0, 0x6 @@ -2040,7 +2040,7 @@ _080EFC52:  	adds r0, r1  	strh r0, [r4, 0x22]  	strh r5, [r4, 0x26] -	ldr r0, _080EFC84 @ =gUnknown_2024018 +	ldr r0, _080EFC84 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r0, [r0, 0x8] @@ -2052,7 +2052,7 @@ _080EFC52:  	b _080EFC96  	.align 2, 0  _080EFC80: .4byte 0xffffff00 -_080EFC84: .4byte gUnknown_2024018 +_080EFC84: .4byte gBattleSpritesDataPtr  _080EFC88: .4byte sub_80EFF80  _080EFC8C:  	ldr r0, _080EFC9C @ =sub_80EFCA0 @@ -2090,7 +2090,7 @@ sub_80EFCA0: @ 80EFCA0  	adds r0, r4, 0  	movs r1, 0x1  	bl StartSpriteAffineAnim -	ldr r0, _080EFCE4 @ =gUnknown_2024018 +	ldr r0, _080EFCE4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	strh r5, [r0, 0xC] @@ -2103,7 +2103,7 @@ _080EFCDC:  	pop {r0}  	bx r0  	.align 2, 0 -_080EFCE4: .4byte gUnknown_2024018 +_080EFCE4: .4byte gBattleSpritesDataPtr  _080EFCE8: .4byte sub_80EFCEC  	thumb_func_end sub_80EFCA0 @@ -2135,7 +2135,7 @@ _080EFD0C:  	.4byte _080EFED4  	.4byte _080EFF34  _080EFD28: -	ldr r1, _080EFD4C @ =gUnknown_2024018 +	ldr r1, _080EFD4C @ =gBattleSpritesDataPtr  	ldr r5, [r1]  	ldr r2, [r5, 0x8]  	ldrh r3, [r2, 0xC] @@ -2153,7 +2153,7 @@ _080EFD28:  	strh r0, [r1, 0xC]  	b _080EFD56  	.align 2, 0 -_080EFD4C: .4byte gUnknown_2024018 +_080EFD4C: .4byte gBattleSpritesDataPtr  _080EFD50:  	adds r0, r3, 0  	adds r0, 0xB0 @@ -2214,7 +2214,7 @@ _080EFDB6:  	bl ChangeSpriteAffineAnim  	b _080EFF7A  _080EFDC0: -	ldr r1, _080EFDE4 @ =gUnknown_2024018 +	ldr r1, _080EFDE4 @ =gBattleSpritesDataPtr  	ldr r5, [r1]  	ldr r2, [r5, 0x8]  	ldrh r3, [r2, 0xC] @@ -2232,7 +2232,7 @@ _080EFDC0:  	strh r0, [r1, 0xC]  	b _080EFDEE  	.align 2, 0 -_080EFDE4: .4byte gUnknown_2024018 +_080EFDE4: .4byte gBattleSpritesDataPtr  _080EFDE8:  	adds r0, r3, 0  	adds r0, 0xB0 @@ -2307,7 +2307,7 @@ _080EFE68:  	movs r1, 0x1  	bl ChangeSpriteAffineAnim  _080EFE70: -	ldr r1, _080EFE94 @ =gUnknown_2024018 +	ldr r1, _080EFE94 @ =gBattleSpritesDataPtr  	ldr r5, [r1]  	ldr r2, [r5, 0x8]  	ldrh r3, [r2, 0xC] @@ -2325,7 +2325,7 @@ _080EFE70:  	strh r0, [r1, 0xC]  	b _080EFE9E  	.align 2, 0 -_080EFE94: .4byte gUnknown_2024018 +_080EFE94: .4byte gBattleSpritesDataPtr  _080EFE98:  	adds r0, r3, 0  	adds r0, 0xB0 @@ -2367,7 +2367,7 @@ _080EFED4:  	strh r0, [r4, 0x34]  	lsls r0, 16  	asrs r1, r0, 24 -	ldr r0, _080EFF04 @ =gUnknown_2024018 +	ldr r0, _080EFF04 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r0, [r0, 0x8] @@ -2383,7 +2383,7 @@ _080EFED4:  	str r0, [r4, 0x1C]  	b _080EFF7A  	.align 2, 0 -_080EFF04: .4byte gUnknown_2024018 +_080EFF04: .4byte gBattleSpritesDataPtr  _080EFF08: .4byte sub_80EFF80  _080EFF0C:  	cmp r0, 0x4 @@ -3045,7 +3045,7 @@ _080F03F0:  	adds r2, r0  	lsls r2, 2  	adds r2, r4 -	ldr r0, _080F046C @ =gUnknown_2024018 +	ldr r0, _080F046C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r1, [r0, 0x9] @@ -3075,7 +3075,7 @@ _080F045C: .4byte 0xfffffee0  _080F0460: .4byte gSprites  _080F0464: .4byte gBattlerSpriteIds  _080F0468: .4byte gBattleAnimTarget -_080F046C: .4byte gUnknown_2024018 +_080F046C: .4byte gBattleSpritesDataPtr  _080F0470: .4byte sub_80F018C  _080F0474: .4byte gUnknown_2024005  	thumb_func_end sub_80F0378 @@ -3356,7 +3356,7 @@ sub_80F0674: @ 80F0674  	ands r0, r1  	cmp r0, 0  	beq _080F0692 -	ldr r0, _080F06A0 @ =gUnknown_2024018 +	ldr r0, _080F06A0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x8]  	ldrb r0, [r1, 0xA] @@ -3368,7 +3368,7 @@ _080F0692:  	.align 2, 0  _080F0698: .4byte gMain  _080F069C: .4byte 0x00000439 -_080F06A0: .4byte gUnknown_2024018 +_080F06A0: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_80F0674  	thumb_func_start sub_80F06A4 @@ -4771,7 +4771,7 @@ sub_80F1198: @ 80F1198  _080F11BC: .4byte gMain  _080F11C0: .4byte 0x00000439  _080F11C4: -	ldr r2, _080F1200 @ =gUnknown_2024018 +	ldr r2, _080F1200 @ =gBattleSpritesDataPtr  	ldr r0, [r2]  	ldr r1, [r0, 0x8]  	ldrb r0, [r1, 0xA] @@ -4800,7 +4800,7 @@ _080F11F6:  	bl DestroySprite  	b _080F1212  	.align 2, 0 -_080F1200: .4byte gUnknown_2024018 +_080F1200: .4byte gBattleSpritesDataPtr  _080F1204: .4byte gUnknown_840BF48  _080F1208: .4byte gUnknown_840BFA8  _080F120C: @@ -5420,7 +5420,7 @@ sub_80F16CC: @ 80F16CC  	lsls r0, 24  	lsrs r0, 24  	ldr r3, _080F16F4 @ =gBattleAnimArgs -	ldr r1, _080F16F8 @ =gUnknown_2024018 +	ldr r1, _080F16F8 @ =gBattleSpritesDataPtr  	ldr r2, [r1]  	ldr r1, _080F16FC @ =gBattleAnimAttacker  	ldrb r1, [r1] @@ -5436,7 +5436,7 @@ sub_80F16CC: @ 80F16CC  	bx r0  	.align 2, 0  _080F16F4: .4byte gBattleAnimArgs -_080F16F8: .4byte gUnknown_2024018 +_080F16F8: .4byte gBattleSpritesDataPtr  _080F16FC: .4byte gBattleAnimAttacker  	thumb_func_end sub_80F16CC @@ -5467,7 +5467,7 @@ sub_80F1720: @ 80F1720  	lsrs r6, r0, 24  	movs r0, 0  	mov r8, r0 -	ldr r0, _080F17DC @ =gUnknown_2024018 +	ldr r0, _080F17DC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r6, 1 @@ -5547,7 +5547,7 @@ _080F179E:  	strh r0, [r1, 0xA]  	b _080F180E  	.align 2, 0 -_080F17DC: .4byte gUnknown_2024018 +_080F17DC: .4byte gBattleSpritesDataPtr  _080F17E0: .4byte 0x0000ffff  _080F17E4: .4byte 0x000027f9  _080F17E8: .4byte gUnknown_83AD350 @@ -5555,7 +5555,7 @@ _080F17EC: .4byte gUnknown_83ADC58  _080F17F0: .4byte sub_80F181C  _080F17F4: .4byte gTasks  _080F17F8: -	ldr r0, _080F1818 @ =gUnknown_2024018 +	ldr r0, _080F1818 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r6, 1 @@ -5573,7 +5573,7 @@ _080F180E:  	pop {r0}  	bx r0  	.align 2, 0 -_080F1818: .4byte gUnknown_2024018 +_080F1818: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_80F1720  	thumb_func_start sub_80F181C @@ -5600,7 +5600,7 @@ sub_80F181C: @ 80F181C  	.align 2, 0  _080F1844: .4byte gTasks  _080F1848: -	ldr r0, _080F189C @ =gUnknown_2024018 +	ldr r0, _080F189C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r0, [r0, 0xA] @@ -5622,12 +5622,12 @@ _080F186A:  	ldrb r0, [r4, 0x8]  	mov r8, r0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r5, r0, 24  	mov r0, r8  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r2, r0, 24  	movs r1, 0x1E @@ -5642,7 +5642,7 @@ _080F186A:  	lsrs r5, r0, 24  	b _080F1906  	.align 2, 0 -_080F189C: .4byte gUnknown_2024018 +_080F189C: .4byte gBattleSpritesDataPtr  _080F18A0: .4byte gUnknown_83FF168  _080F18A4:  	cmp r0, 0 @@ -5817,7 +5817,7 @@ sub_80F19E0: @ 80F19E0  	cmp r0, 0x1  	bne _080F1A1A  	ldrb r1, [r1, 0x8] -	ldr r0, _080F1A28 @ =gUnknown_2024018 +	ldr r0, _080F1A28 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x4]  	lsls r0, r1, 1 @@ -5836,7 +5836,7 @@ _080F1A20:  	bx r0  	.align 2, 0  _080F1A24: .4byte gTasks -_080F1A28: .4byte gUnknown_2024018 +_080F1A28: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_80F19E0  	thumb_func_start sub_80F1A2C @@ -5990,7 +5990,7 @@ sub_80F1B3C: @ 80F1B3C  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r5, _080F1BB0 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -6002,7 +6002,7 @@ sub_80F1B3C: @ 80F1B3C  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x6] @@ -6220,7 +6220,7 @@ sub_80F1D14: @ 80F1D14  	push {lr}  	lsls r0, 24  	lsrs r2, r0, 24 -	ldr r0, _080F1D2C @ =gUnknown_2024018 +	ldr r0, _080F1D2C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrh r1, [r0] @@ -6230,7 +6230,7 @@ sub_80F1D14: @ 80F1D14  	movs r0, 0x1  	b _080F1D6C  	.align 2, 0 -_080F1D2C: .4byte gUnknown_2024018 +_080F1D2C: .4byte gBattleSpritesDataPtr  _080F1D30: .4byte gBattleAnimArgs  _080F1D34:  	cmp r1, 0xFA @@ -6277,7 +6277,7 @@ sub_80F1D7C: @ 80F1D7C  	lsls r0, 24  	lsrs r0, 24  	ldr r3, _080F1DA0 @ =gBattleAnimAttacker -	ldr r1, _080F1DA4 @ =gUnknown_2024018 +	ldr r1, _080F1DA4 @ =gBattleSpritesDataPtr  	ldr r2, [r1]  	ldr r1, [r2, 0x8]  	ldrh r1, [r1] @@ -6292,7 +6292,7 @@ sub_80F1D7C: @ 80F1D7C  	bx r0  	.align 2, 0  _080F1DA0: .4byte gBattleAnimAttacker -_080F1DA4: .4byte gUnknown_2024018 +_080F1DA4: .4byte gBattleSpritesDataPtr  _080F1DA8: .4byte gBattleAnimTarget  	thumb_func_end sub_80F1D7C diff --git a/asm/battle_anim_status_effects.s b/asm/battle_anim_status_effects.s index 783b39a2e..c70d88cef 100644 --- a/asm/battle_anim_status_effects.s +++ b/asm/battle_anim_status_effects.s @@ -344,7 +344,7 @@ sub_80783FC: @ 80783FC  	ldr r4, _080784AC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	ldr r1, _080784B0 @ =0xffe00000 @@ -352,7 +352,7 @@ sub_80783FC: @ 80783FC  	lsrs r5, r0, 16  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	ldr r1, _080784B4 @ =0xffdc0000 @@ -662,7 +662,7 @@ sub_8078694: @ 8078694  	lsls r0, 24  	lsrs r4, r0, 24  	movs r3, 0 -	ldr r0, _080786B8 @ =gUnknown_2024018 +	ldr r0, _080786B8 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrh r0, [r0] @@ -677,7 +677,7 @@ _080786AC:  	ldr r0, [r0]  	mov pc, r0  	.align 2, 0 -_080786B8: .4byte gUnknown_2024018 +_080786B8: .4byte gBattleSpritesDataPtr  _080786BC: .4byte _080786C0  	.align 2, 0  _080786C0: @@ -907,7 +907,7 @@ LaunchStatusAnimation: @ 807886C  	strb r4, [r0]  	ldr r0, _080788B0 @ =gUnknown_81C6E84  	movs r2, 0 -	bl sub_80725D4 +	bl LaunchBattleAnimation  	ldr r0, _080788B4 @ =task0A_80788BC  	movs r1, 0xA  	bl CreateTask @@ -935,14 +935,14 @@ task0A_80788BC: @ 80788BC  	push {r4,lr}  	lsls r0, 24  	lsrs r4, r0, 24 -	ldr r0, _08078904 @ =gUnknown_2037EDC +	ldr r0, _08078904 @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _08078908 @ =gUnknown_2037EE1 +	ldr r0, _08078908 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _080788FE -	ldr r0, _0807890C @ =gUnknown_2024018 +	ldr r0, _0807890C @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r1, _08078910 @ =gTasks  	lsls r0, r4, 2 @@ -968,9 +968,9 @@ _080788FE:  	pop {r0}  	bx r0  	.align 2, 0 -_08078904: .4byte gUnknown_2037EDC -_08078908: .4byte gUnknown_2037EE1 -_0807890C: .4byte gUnknown_2024018 +_08078904: .4byte gAnimScriptCallback +_08078908: .4byte gAnimScriptActive +_0807890C: .4byte gBattleSpritesDataPtr  _08078910: .4byte gTasks  	thumb_func_end task0A_80788BC diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s index 48cde2fa8..a52931868 100644 --- a/asm/battle_anim_utility_funcs.s +++ b/asm/battle_anim_utility_funcs.s @@ -722,7 +722,7 @@ sub_80BACEC: @ 80BACEC  	movs r0, 0xA  	bl SetGpuReg  _080BAD7A: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080BADFE @@ -1192,7 +1192,7 @@ _080BB130:  	movs r2, 0x1  	bl SetAnimBgAttribute  _080BB18E: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080BB20A @@ -3186,7 +3186,7 @@ _080BC144:  	adds r3, r4  	lsls r3, 3  	adds r3, r0 -	ldr r0, _080BC18C @ =gUnknown_2024018 +	ldr r0, _080BC18C @ =gBattleSpritesDataPtr  	ldr r4, [r0]  	ldr r2, _080BC190 @ =gBattleAnimAttacker  	ldrb r0, [r2] @@ -3217,7 +3217,7 @@ _080BC180:  	bx r0  	.align 2, 0  _080BC188: .4byte gTasks -_080BC18C: .4byte gUnknown_2024018 +_080BC18C: .4byte gBattleSpritesDataPtr  _080BC190: .4byte gBattleAnimAttacker  _080BC194: .4byte sub_80BC19C  _080BC198: .4byte gUnknown_2037EE2 @@ -3235,7 +3235,7 @@ sub_80BC19C: @ 80BC19C  	lsls r0, 5  	cmp r1, r0  	bne _080BC1E0 -	ldr r0, _080BC1EC @ =gUnknown_2024018 +	ldr r0, _080BC1EC @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080BC1F0 @ =gBattleAnimAttacker  	ldrb r3, [r0] @@ -3264,7 +3264,7 @@ _080BC1E0:  	bx r0  	.align 2, 0  _080BC1E8: .4byte gBattleAnimArgs -_080BC1EC: .4byte gUnknown_2024018 +_080BC1EC: .4byte gBattleSpritesDataPtr  _080BC1F0: .4byte gBattleAnimAttacker  _080BC1F4: .4byte gTasks  	thumb_func_end sub_80BC19C @@ -3707,7 +3707,7 @@ _080BC544:  	strh r0, [r1, 0xC]  	movs r0, 0x20  	strh r0, [r1, 0xE] -	ldr r2, _080BC56C @ =gUnknown_2023F4C +	ldr r2, _080BC56C @ =gIntroSlideFlags  	ldrh r1, [r2]  	ldr r0, _080BC570 @ =0x0000fffe  	ands r0, r1 @@ -3715,7 +3715,7 @@ _080BC544:  	b _080BC6BA  	.align 2, 0  _080BC568: .4byte gUnknown_2022986 -_080BC56C: .4byte gUnknown_2023F4C +_080BC56C: .4byte gIntroSlideFlags  _080BC570: .4byte 0x0000fffe  _080BC574:  	lsls r0, r4, 2 @@ -4075,7 +4075,7 @@ _080BC820:  	strh r0, [r1, 0xE]  	movs r0, 0x1  	strh r0, [r1, 0x12] -	ldr r2, _080BC850 @ =gUnknown_2023F4C +	ldr r2, _080BC850 @ =gIntroSlideFlags  	ldrh r1, [r2]  	ldr r0, _080BC854 @ =0x0000fffe  	ands r0, r1 @@ -4084,7 +4084,7 @@ _080BC820:  	.align 2, 0  _080BC848: .4byte gUnknown_2022986  _080BC84C: .4byte gTasks -_080BC850: .4byte gUnknown_2023F4C +_080BC850: .4byte gIntroSlideFlags  _080BC854: .4byte 0x0000fffe  _080BC858:  	ldr r0, _080BC890 @ =gTasks @@ -4398,7 +4398,7 @@ _080BCAC0:  	strh r0, [r1, 0xE]  	movs r0, 0x1  	strh r0, [r1, 0x12] -	ldr r2, _080BCAF0 @ =gUnknown_2023F4C +	ldr r2, _080BCAF0 @ =gIntroSlideFlags  	ldrh r1, [r2]  	ldr r0, _080BCAF4 @ =0x0000fffe  	ands r0, r1 @@ -4407,7 +4407,7 @@ _080BCAC0:  	.align 2, 0  _080BCAE8: .4byte gUnknown_2022986  _080BCAEC: .4byte gTasks -_080BCAF0: .4byte gUnknown_2023F4C +_080BCAF0: .4byte gIntroSlideFlags  _080BCAF4: .4byte 0x0000fffe  _080BCAF8:  	lsls r0, r5, 2 @@ -4782,7 +4782,7 @@ _080BCDDC:  	strh r0, [r1, 0xC]  	movs r0, 0x20  	strh r0, [r1, 0xE] -	ldr r2, _080BCE00 @ =gUnknown_2023F4C +	ldr r2, _080BCE00 @ =gIntroSlideFlags  	ldrh r1, [r2]  	ldr r0, _080BCE04 @ =0x0000fffe  	ands r0, r1 @@ -4790,7 +4790,7 @@ _080BCDDC:  	b _080BCEE6  	.align 2, 0  _080BCDFC: .4byte gUnknown_2022986 -_080BCE00: .4byte gUnknown_2023F4C +_080BCE00: .4byte gIntroSlideFlags  _080BCE04: .4byte 0x0000fffe  _080BCE08:  	ldr r2, _080BCECC @ =gUnknown_2022986 diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s index 50d0b4caf..86712cef4 100644 --- a/asm/battle_controller_link_opponent.s +++ b/asm/battle_controller_link_opponent.s @@ -116,7 +116,7 @@ sub_803A70C: @ 803A70C  	bne _0803A77C  	adds r0, r2, r4  	ldrh r0, [r0, 0x6] -	bl sub_803477C +	bl FreeTrainerFrontPicPaletteAndTile  	ldrb r0, [r5]  	adds r0, r6  	ldrb r0, [r0] @@ -165,7 +165,7 @@ _0803A798: .4byte 0xfffffc00  	thumb_func_start sub_803A79C  sub_803A79C: @ 803A79C  	push {r4,lr} -	ldr r4, _0803A7DC @ =gUnknown_2024018 +	ldr r4, _0803A7DC @ =gBattleSpritesDataPtr  	ldr r1, [r4]  	ldr r3, _0803A7E0 @ =gActiveBattler  	ldrb r0, [r3] @@ -196,7 +196,7 @@ _0803A7D4:  	pop {r0}  	bx r0  	.align 2, 0 -_0803A7DC: .4byte gUnknown_2024018 +_0803A7DC: .4byte gBattleSpritesDataPtr  _0803A7E0: .4byte gActiveBattler  	thumb_func_end sub_803A79C @@ -206,11 +206,11 @@ sub_803A7E4: @ 803A7E4  	mov r7, r8  	push {r7}  	movs r6, 0 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0803A80C -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0803A840 @@ -222,7 +222,7 @@ sub_803A7E4: @ 803A7E4  	beq _0803A840  _0803A80C:  	ldr r2, _0803A830 @ =gSprites -	ldr r1, _0803A834 @ =gUnknown_3004FF0 +	ldr r1, _0803A834 @ =gHealthboxSpriteIds  	ldr r0, _0803A838 @ =gActiveBattler  	ldrb r0, [r0]  	adds r0, r1 @@ -240,12 +240,12 @@ _0803A80C:  	.align 2, 0  _0803A82C: .4byte gBattleTypeFlags  _0803A830: .4byte gSprites -_0803A834: .4byte gUnknown_3004FF0 +_0803A834: .4byte gHealthboxSpriteIds  _0803A838: .4byte gActiveBattler  _0803A83C: .4byte SpriteCallbackDummy  _0803A840:  	ldr r2, _0803A95C @ =gSprites -	ldr r5, _0803A960 @ =gUnknown_3004FF0 +	ldr r5, _0803A960 @ =gHealthboxSpriteIds  	ldr r0, _0803A964 @ =gActiveBattler  	ldrb r3, [r0]  	adds r0, r3, r5 @@ -291,7 +291,7 @@ _0803A888:  	lsrs r3, r0, 24  	cmp r3, 0x1  	bne _0803A936 -	ldr r7, _0803A96C @ =gUnknown_2024018 +	ldr r7, _0803A96C @ =gBattleSpritesDataPtr  	ldr r0, [r7]  	mov r1, r8  	ldrb r2, [r1] @@ -386,10 +386,10 @@ _0803A936:  	b _0803A988  	.align 2, 0  _0803A95C: .4byte gSprites -_0803A960: .4byte gUnknown_3004FF0 +_0803A960: .4byte gHealthboxSpriteIds  _0803A964: .4byte gActiveBattler  _0803A968: .4byte SpriteCallbackDummy -_0803A96C: .4byte gUnknown_2024018 +_0803A96C: .4byte gBattleSpritesDataPtr  _0803A970: .4byte 0x000027f9  _0803A974: .4byte gBattleTypeFlags  _0803A978: .4byte gMPlayInfo_BGM @@ -400,7 +400,7 @@ _0803A97C:  	lsls r2, 1  	bl m4aMPlayVolumeControl  _0803A988: -	ldr r0, _0803A9BC @ =gUnknown_2024018 +	ldr r0, _0803A9BC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r3, _0803A9C0 @ =gActiveBattler  	ldrb r1, [r3] @@ -426,7 +426,7 @@ _0803A9AA:  	.align 2, 0  _0803A9B4: .4byte gMPlayInfo_BGM  _0803A9B8: .4byte 0x0000ffff -_0803A9BC: .4byte gUnknown_2024018 +_0803A9BC: .4byte gBattleSpritesDataPtr  _0803A9C0: .4byte gActiveBattler  _0803A9C4: .4byte gUnknown_3004FE0  _0803A9C8: .4byte sub_803A79C @@ -439,7 +439,7 @@ sub_803A9CC: @ 803A9CC  	mov r6, r9  	mov r5, r8  	push {r5-r7} -	ldr r0, _0803ABEC @ =gUnknown_2024018 +	ldr r0, _0803ABEC @ =gBattleSpritesDataPtr  	mov r8, r0  	ldr r0, [r0]  	ldr r7, _0803ABF0 @ =gActiveBattler @@ -556,7 +556,7 @@ _0803AAA6:  	mov r1, r10  	strb r1, [r0, 0x9]  _0803AABA: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0803AB50 @@ -579,7 +579,7 @@ _0803AABA:  	ldr r1, _0803AC04 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r2, _0803AC08 @ =gUnknown_3004FF0 +	ldr r2, _0803AC08 @ =gHealthboxSpriteIds  	mov r8, r2  	ldrb r0, [r5]  	adds r1, r4, 0 @@ -623,7 +623,7 @@ _0803AABA:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  _0803AB50:  	ldr r1, _0803AC00 @ =gUnknown_3004FFC  	ldr r5, _0803ABF0 @ =gActiveBattler @@ -636,7 +636,7 @@ _0803AB50:  	ldr r1, _0803AC04 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _0803AC08 @ =gUnknown_3004FF0 +	ldr r4, _0803AC08 @ =gHealthboxSpriteIds  	ldrb r1, [r5]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -674,8 +674,8 @@ _0803AB50:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback -	ldr r0, _0803ABEC @ =gUnknown_2024018 +	bl SetBattlerShadowSpriteCallback +	ldr r0, _0803ABEC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x8]  	ldrb r1, [r2, 0x9] @@ -698,14 +698,14 @@ _0803ABDC:  	pop {r0}  	bx r0  	.align 2, 0 -_0803ABEC: .4byte gUnknown_2024018 +_0803ABEC: .4byte gBattleSpritesDataPtr  _0803ABF0: .4byte gActiveBattler  _0803ABF4: .4byte gBattlerPartyIndexes  _0803ABF8: .4byte gEnemyParty  _0803ABFC: .4byte gBattleTypeFlags  _0803AC00: .4byte gUnknown_3004FFC  _0803AC04: .4byte gSprites -_0803AC08: .4byte gUnknown_3004FF0 +_0803AC08: .4byte gHealthboxSpriteIds  _0803AC0C: .4byte gUnknown_3004FE0  _0803AC10: .4byte sub_803A7E4  	thumb_func_end sub_803A9CC @@ -734,7 +734,7 @@ sub_803AC14: @ 803AC14  	ldrsh r0, [r1, r4]  	cmp r0, 0  	bne _0803ACC0 -	ldr r6, _0803AC7C @ =gUnknown_2024018 +	ldr r6, _0803AC7C @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r1, [r0, 0x4]  	lsls r4, r3, 1 @@ -760,7 +760,7 @@ sub_803AC14: @ 803AC14  _0803AC70: .4byte gSprites  _0803AC74: .4byte gBattlerSpriteIds  _0803AC78: .4byte gActiveBattler -_0803AC7C: .4byte gUnknown_2024018 +_0803AC7C: .4byte gBattleSpritesDataPtr  _0803AC80: .4byte gBattlerPartyIndexes  _0803AC84: .4byte gEnemyParty  _0803AC88: @@ -802,7 +802,7 @@ CompleteOnHealthbarDone_4: @ 803ACCC  	push {r4-r6,lr}  	ldr r6, _0803AD0C @ =gActiveBattler  	ldrb r0, [r6] -	ldr r5, _0803AD10 @ =gUnknown_3004FF0 +	ldr r5, _0803AD10 @ =gHealthboxSpriteIds  	adds r1, r0, r5  	ldrb r1, [r1]  	movs r2, 0 @@ -829,7 +829,7 @@ CompleteOnHealthbarDone_4: @ 803ACCC  	b _0803AD18  	.align 2, 0  _0803AD0C: .4byte gActiveBattler -_0803AD10: .4byte gUnknown_3004FF0 +_0803AD10: .4byte gHealthboxSpriteIds  _0803AD14:  	bl RecordedOpponentBufferExecCompleted  _0803AD18: @@ -856,7 +856,7 @@ sub_803AD20: @ 803AD20  	lsls r0, 31  	cmp r0, 0  	bne _0803AD4E -	ldr r0, _0803AD60 @ =gUnknown_3004FF0 +	ldr r0, _0803AD60 @ =gHealthboxSpriteIds  	adds r0, r3, r0  	ldrb r0, [r0]  	bl SetHealthboxSpriteInvisible @@ -868,13 +868,13 @@ _0803AD4E:  _0803AD54: .4byte gSprites  _0803AD58: .4byte gBattlerSpriteIds  _0803AD5C: .4byte gActiveBattler -_0803AD60: .4byte gUnknown_3004FF0 +_0803AD60: .4byte gHealthboxSpriteIds  	thumb_func_end sub_803AD20  	thumb_func_start sub_803AD64  sub_803AD64: @ 803AD64  	push {r4-r6,lr} -	ldr r0, _0803ADC4 @ =gUnknown_2024018 +	ldr r0, _0803ADC4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _0803ADC8 @ =gActiveBattler  	ldrb r2, [r6] @@ -906,8 +906,8 @@ sub_803AD64: @ 803AD64  	adds r0, r4  	bl DestroySprite  	ldrb r0, [r6] -	bl EnemyShadowCallbackToSetInvisible -	ldr r1, _0803ADD4 @ =gUnknown_3004FF0 +	bl HideBattlerShadowSprite +	ldr r1, _0803ADD4 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -918,11 +918,11 @@ _0803ADBE:  	pop {r0}  	bx r0  	.align 2, 0 -_0803ADC4: .4byte gUnknown_2024018 +_0803ADC4: .4byte gBattleSpritesDataPtr  _0803ADC8: .4byte gActiveBattler  _0803ADCC: .4byte gBattlerSpriteIds  _0803ADD0: .4byte gSprites -_0803ADD4: .4byte gUnknown_3004FF0 +_0803ADD4: .4byte gHealthboxSpriteIds  	thumb_func_end sub_803AD64  	thumb_func_start CompleteOnInactiveTextPrinter_5 @@ -1007,7 +1007,7 @@ _0803AE66:  sub_803AE6C: @ 803AE6C  	push {r4,lr}  	ldr r2, _0803AEC0 @ =gSprites -	ldr r0, _0803AEC4 @ =gUnknown_3004FF0 +	ldr r0, _0803AEC4 @ =gHealthboxSpriteIds  	ldr r4, _0803AEC8 @ =gActiveBattler  	ldrb r3, [r4]  	adds r0, r3, r0 @@ -1021,7 +1021,7 @@ sub_803AE6C: @ 803AE6C  	ldr r0, _0803AECC @ =SpriteCallbackDummy  	cmp r1, r0  	bne _0803AEB8 -	ldr r0, _0803AED0 @ =gUnknown_2024018 +	ldr r0, _0803AED0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r3, 2 @@ -1049,10 +1049,10 @@ _0803AEB8:  	bx r0  	.align 2, 0  _0803AEC0: .4byte gSprites -_0803AEC4: .4byte gUnknown_3004FF0 +_0803AEC4: .4byte gHealthboxSpriteIds  _0803AEC8: .4byte gActiveBattler  _0803AECC: .4byte SpriteCallbackDummy -_0803AED0: .4byte gUnknown_2024018 +_0803AED0: .4byte gBattleSpritesDataPtr  _0803AED4: .4byte gUnknown_3004FE0  _0803AED8: .4byte sub_803AEDC  	thumb_func_end sub_803AE6C @@ -1060,7 +1060,7 @@ _0803AED8: .4byte sub_803AEDC  	thumb_func_start sub_803AEDC  sub_803AEDC: @ 803AEDC  	push {lr} -	ldr r0, _0803AF18 @ =gUnknown_2024018 +	ldr r0, _0803AF18 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _0803AF1C @ =gActiveBattler  	ldrb r1, [r0] @@ -1088,7 +1088,7 @@ _0803AF14:  	pop {r0}  	bx r0  	.align 2, 0 -_0803AF18: .4byte gUnknown_2024018 +_0803AF18: .4byte gBattleSpritesDataPtr  _0803AF1C: .4byte gActiveBattler  _0803AF20: .4byte gMPlayInfo_BGM  _0803AF24: .4byte 0x0000ffff @@ -1097,7 +1097,7 @@ _0803AF24: .4byte 0x0000ffff  	thumb_func_start sub_803AF28  sub_803AF28: @ 803AF28  	push {r4,r5,lr} -	ldr r3, _0803AFD4 @ =gUnknown_2024018 +	ldr r3, _0803AFD4 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldr r5, _0803AFD8 @ =gActiveBattler  	ldrb r1, [r5] @@ -1143,7 +1143,7 @@ sub_803AF28: @ 803AF28  	adds r0, r1  	movs r1, 0  	bl StartSpriteAnim -	ldr r4, _0803AFE8 @ =gUnknown_3004FF0 +	ldr r4, _0803AFE8 @ =gHealthboxSpriteIds  	ldrb r1, [r5]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -1176,12 +1176,12 @@ _0803AFCC:  	pop {r0}  	bx r0  	.align 2, 0 -_0803AFD4: .4byte gUnknown_2024018 +_0803AFD4: .4byte gBattleSpritesDataPtr  _0803AFD8: .4byte gActiveBattler  _0803AFDC: .4byte 0x000027f9  _0803AFE0: .4byte gBattlerSpriteIds  _0803AFE4: .4byte gSprites -_0803AFE8: .4byte gUnknown_3004FF0 +_0803AFE8: .4byte gHealthboxSpriteIds  _0803AFEC: .4byte gBattlerPartyIndexes  _0803AFF0: .4byte gEnemyParty  _0803AFF4: .4byte gUnknown_3004FE0 @@ -1191,7 +1191,7 @@ _0803AFF8: .4byte sub_803AE6C  	thumb_func_start sub_803AFFC  sub_803AFFC: @ 803AFFC  	push {r4-r6,lr} -	ldr r6, _0803B0A0 @ =gUnknown_2024018 +	ldr r6, _0803B0A0 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r5, _0803B0A4 @ =gActiveBattler  	ldrb r2, [r5] @@ -1258,7 +1258,7 @@ _0803B02E:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  	ldr r1, _0803B0BC @ =gUnknown_3004FE0  	ldrb r0, [r5]  	lsls r0, 2 @@ -1270,7 +1270,7 @@ _0803B098:  	pop {r0}  	bx r0  	.align 2, 0 -_0803B0A0: .4byte gUnknown_2024018 +_0803B0A0: .4byte gBattleSpritesDataPtr  _0803B0A4: .4byte gActiveBattler  _0803B0A8: .4byte gBattlerPartyIndexes  _0803B0AC: .4byte gEnemyParty @@ -1284,7 +1284,7 @@ _0803B0C0: .4byte sub_803AF28  	thumb_func_start CompleteOnFinishedStatusAnimation_5  CompleteOnFinishedStatusAnimation_5: @ 803B0C4  	push {lr} -	ldr r0, _0803B0EC @ =gUnknown_2024018 +	ldr r0, _0803B0EC @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _0803B0F0 @ =gActiveBattler  	ldrb r1, [r0] @@ -1303,14 +1303,14 @@ _0803B0E6:  	pop {r0}  	bx r0  	.align 2, 0 -_0803B0EC: .4byte gUnknown_2024018 +_0803B0EC: .4byte gBattleSpritesDataPtr  _0803B0F0: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedStatusAnimation_5  	thumb_func_start CompleteOnFinishedBattleAnimation_5  CompleteOnFinishedBattleAnimation_5: @ 803B0F4  	push {lr} -	ldr r0, _0803B11C @ =gUnknown_2024018 +	ldr r0, _0803B11C @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _0803B120 @ =gActiveBattler  	ldrb r1, [r0] @@ -1329,7 +1329,7 @@ _0803B116:  	pop {r0}  	bx r0  	.align 2, 0 -_0803B11C: .4byte gUnknown_2024018 +_0803B11C: .4byte gBattleSpritesDataPtr  _0803B120: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedBattleAnimation_5 @@ -3581,12 +3581,12 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4  	mov r8, r0  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	ldrb r0, [r6] -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -3659,7 +3659,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  	ldr r1, _0803C4FC @ =gUnknown_3004FE0  	ldrb r0, [r6]  	lsls r0, 2 @@ -3785,12 +3785,12 @@ sub_803C550: @ 803C550  	mov r9, r0  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -3911,7 +3911,7 @@ LinkOpponentHandleReturnPokeToBall: @ 803C6D4  	ldrb r3, [r0]  	cmp r3, 0  	bne _0803C71C -	ldr r0, _0803C710 @ =gUnknown_2024018 +	ldr r0, _0803C710 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r2, 1 @@ -3929,7 +3929,7 @@ LinkOpponentHandleReturnPokeToBall: @ 803C6D4  	.align 2, 0  _0803C708: .4byte gUnknown_2022BC4  _0803C70C: .4byte gActiveBattler -_0803C710: .4byte gUnknown_2024018 +_0803C710: .4byte gBattleSpritesDataPtr  _0803C714: .4byte gUnknown_3004FE0  _0803C718: .4byte sub_803C76C  _0803C71C: @@ -3951,8 +3951,8 @@ _0803C71C:  	adds r0, r4  	bl DestroySprite  	ldrb r0, [r6] -	bl EnemyShadowCallbackToSetInvisible -	ldr r1, _0803C768 @ =gUnknown_3004FF0 +	bl HideBattlerShadowSprite +	ldr r1, _0803C768 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -3965,13 +3965,13 @@ _0803C758:  	.align 2, 0  _0803C760: .4byte gBattlerSpriteIds  _0803C764: .4byte gSprites -_0803C768: .4byte gUnknown_3004FF0 +_0803C768: .4byte gHealthboxSpriteIds  	thumb_func_end LinkOpponentHandleReturnPokeToBall  	thumb_func_start sub_803C76C  sub_803C76C: @ 803C76C  	push {r4-r6,lr} -	ldr r6, _0803C78C @ =gUnknown_2024018 +	ldr r6, _0803C78C @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _0803C790 @ =gActiveBattler  	ldrb r2, [r5] @@ -3987,7 +3987,7 @@ sub_803C76C: @ 803C76C  	beq _0803C7C2  	b _0803C7EA  	.align 2, 0 -_0803C78C: .4byte gUnknown_2024018 +_0803C78C: .4byte gBattleSpritesDataPtr  _0803C790: .4byte gActiveBattler  _0803C794:  	ldr r1, [r4] @@ -4245,7 +4245,7 @@ _0803C992:  	mov r8, r0  	ldrb r1, [r0]  	mov r0, r9 -	bl sub_80346C4 +	bl DecompressTrainerFrontPic  	mov r1, r8  	ldrb r0, [r1]  	bl GetBattlerPosition @@ -4496,7 +4496,7 @@ _0803CBB4: .4byte sub_803A70C  	thumb_func_start sub_803CBB8  sub_803CBB8: @ 803CBB8  	push {r4-r6,lr} -	ldr r6, _0803CC04 @ =gUnknown_2024018 +	ldr r6, _0803CC04 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _0803CC08 @ =gActiveBattler  	ldrb r2, [r5] @@ -4533,7 +4533,7 @@ _0803CBEC:  	strb r1, [r0, 0x4]  	b _0803CC48  	.align 2, 0 -_0803CC04: .4byte gUnknown_2024018 +_0803CC04: .4byte gBattleSpritesDataPtr  _0803CC08: .4byte gActiveBattler  _0803CC0C:  	ldrb r1, [r3] @@ -4708,7 +4708,7 @@ _0803CCA6:  	adds r1, 0x10  	adds r2, r1  	str r2, [r3] -	ldr r3, _0803CD98 @ =gUnknown_2024008 +	ldr r3, _0803CD98 @ =gTransformedPersonalities  	ldrb r1, [r6]  	lsls r1, 2  	adds r1, r3 @@ -4731,9 +4731,9 @@ _0803CD88: .4byte gAnimMoveDmg  _0803CD8C: .4byte gUnknown_2037EFE  _0803CD90: .4byte gUnknown_2037F00  _0803CD94: .4byte gAnimDisableStructPtr -_0803CD98: .4byte gUnknown_2024008 +_0803CD98: .4byte gTransformedPersonalities  _0803CD9C: -	ldr r0, _0803CDC0 @ =gUnknown_2024018 +	ldr r0, _0803CDC0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r6]  	ldr r2, [r0, 0x4] @@ -4753,7 +4753,7 @@ _0803CDBA:  	pop {r0}  	bx r0  	.align 2, 0 -_0803CDC0: .4byte gUnknown_2024018 +_0803CDC0: .4byte gBattleSpritesDataPtr  _0803CDC4: .4byte gUnknown_3004FE0  _0803CDC8: .4byte RecordedOpponentDoMoveAnimation  	thumb_func_end RecordedOpponentHandleMoveAnimation @@ -4783,7 +4783,7 @@ RecordedOpponentDoMoveAnimation: @ 803CDCC  	adds r1, r2  	ldrb r1, [r1]  	mov r8, r1 -	ldr r7, _0803CE20 @ =gUnknown_2024018 +	ldr r7, _0803CE20 @ =gBattleSpritesDataPtr  	ldr r5, [r7]  	ldr r1, [r5, 0x4]  	lsls r0, r3, 1 @@ -4801,7 +4801,7 @@ RecordedOpponentDoMoveAnimation: @ 803CDCC  	.align 2, 0  _0803CE18: .4byte gUnknown_2022BC4  _0803CE1C: .4byte gActiveBattler -_0803CE20: .4byte gUnknown_2024018 +_0803CE20: .4byte gBattleSpritesDataPtr  _0803CE24:  	cmp r2, 0x2  	beq _0803CE8E @@ -4857,10 +4857,10 @@ _0803CE64:  	strb r1, [r0, 0x4]  	b _0803CF40  _0803CE8E: -	ldr r0, _0803CEF4 @ =gUnknown_2037EDC +	ldr r0, _0803CEF4 @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _0803CEF8 @ =gUnknown_2037EE1 +	ldr r0, _0803CEF8 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _0803CF40 @@ -4894,7 +4894,7 @@ _0803CE8E:  	ands r0, r2  	strb r0, [r1]  _0803CEDC: -	ldr r0, _0803CEFC @ =gUnknown_2024018 +	ldr r0, _0803CEFC @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _0803CF00 @ =gActiveBattler  	ldrb r1, [r0] @@ -4907,9 +4907,9 @@ _0803CEDC:  	strb r1, [r0, 0x4]  	b _0803CF40  	.align 2, 0 -_0803CEF4: .4byte gUnknown_2037EDC -_0803CEF8: .4byte gUnknown_2037EE1 -_0803CEFC: .4byte gUnknown_2024018 +_0803CEF4: .4byte gAnimScriptCallback +_0803CEF8: .4byte gAnimScriptActive +_0803CEFC: .4byte gBattleSpritesDataPtr  _0803CF00: .4byte gActiveBattler  _0803CF04:  	ldrb r1, [r0] @@ -5107,7 +5107,7 @@ sub_803D018: @ 803D018  	adds r3, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _0803D0A4 @ =gUnknown_3004FF0 +	ldr r1, _0803D0A4 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -5120,7 +5120,7 @@ _0803D094: .4byte gActiveBattler  _0803D098: .4byte 0x00007fff  _0803D09C: .4byte gBattlerPartyIndexes  _0803D0A0: .4byte gEnemyParty -_0803D0A4: .4byte gUnknown_3004FF0 +_0803D0A4: .4byte gHealthboxSpriteIds  _0803D0A8:  	ldr r1, _0803D0F0 @ =gBattlerPartyIndexes  	lsls r0, r4, 1 @@ -5135,7 +5135,7 @@ _0803D0A8:  	adds r2, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _0803D0F8 @ =gUnknown_3004FF0 +	ldr r1, _0803D0F8 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -5159,7 +5159,7 @@ _0803D0D2:  	.align 2, 0  _0803D0F0: .4byte gBattlerPartyIndexes  _0803D0F4: .4byte gEnemyParty -_0803D0F8: .4byte gUnknown_3004FF0 +_0803D0F8: .4byte gHealthboxSpriteIds  _0803D0FC: .4byte gUnknown_3004FE0  _0803D100: .4byte gActiveBattler  _0803D104: .4byte CompleteOnHealthbarDone_4 @@ -5182,7 +5182,7 @@ sub_803D114: @ 803D114  	lsls r0, 24  	cmp r0, 0  	bne _0803D168 -	ldr r0, _0803D174 @ =gUnknown_3004FF0 +	ldr r0, _0803D174 @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r0  	ldrb r0, [r0] @@ -5197,7 +5197,7 @@ sub_803D114: @ 803D114  	movs r2, 0x9  	bl UpdateHealthboxAttribute  	ldrb r2, [r4] -	ldr r0, _0803D180 @ =gUnknown_2024018 +	ldr r0, _0803D180 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x4]  	lsls r1, r2, 1 @@ -5221,10 +5221,10 @@ _0803D168:  	bx r0  	.align 2, 0  _0803D170: .4byte gActiveBattler -_0803D174: .4byte gUnknown_3004FF0 +_0803D174: .4byte gHealthboxSpriteIds  _0803D178: .4byte gBattlerPartyIndexes  _0803D17C: .4byte gEnemyParty -_0803D180: .4byte gUnknown_2024018 +_0803D180: .4byte gBattleSpritesDataPtr  _0803D184: .4byte gUnknown_3004FE0  _0803D188: .4byte CompleteOnFinishedStatusAnimation_5  	thumb_func_end sub_803D114 @@ -5595,7 +5595,7 @@ RecordedOpponentHandleIntroSlide: @ 803D420  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _0803D450 @ =gUnknown_2023F4C +	ldr r2, _0803D450 @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -5606,7 +5606,7 @@ RecordedOpponentHandleIntroSlide: @ 803D420  	.align 2, 0  _0803D448: .4byte gUnknown_2022BC4  _0803D44C: .4byte gActiveBattler -_0803D450: .4byte gUnknown_2023F4C +_0803D450: .4byte gIntroSlideFlags  	thumb_func_end RecordedOpponentHandleIntroSlide  	thumb_func_start sub_803D454 @@ -5683,7 +5683,7 @@ sub_803D454: @ 803D454  	adds r1, r4  	ldrb r0, [r6]  	strh r0, [r1, 0x8] -	ldr r3, _0803D550 @ =gUnknown_2024018 +	ldr r3, _0803D550 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r2, [r6]  	ldr r1, [r0, 0x4] @@ -5729,7 +5729,7 @@ _0803D540: .4byte sub_8075590  _0803D544: .4byte sub_803D648  _0803D548: .4byte sub_803D564  _0803D54C: .4byte gTasks -_0803D550: .4byte gUnknown_2024018 +_0803D550: .4byte gBattleSpritesDataPtr  _0803D554: .4byte gUnknown_2024000  _0803D558: .4byte sub_80491B0  _0803D55C: .4byte gUnknown_3004FE0 @@ -5756,7 +5756,7 @@ sub_803D564: @ 803D564  	adds r0, r1  	ldrh r0, [r0, 0x8]  	strb r0, [r7] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0803D59E @@ -5849,7 +5849,7 @@ sub_803D648: @ 803D648  	push {r4,lr}  	adds r4, r0, 0  	ldrh r0, [r4, 0x6] -	bl sub_803477C +	bl FreeTrainerFrontPicPaletteAndTile  	ldrh r0, [r4, 0x38]  	ldr r1, _0803D674 @ =0x000003ff  	ands r1, r0 @@ -5893,7 +5893,7 @@ RecordedOpponentHandleDrawPartyStatusSummary: @ 803D67C  _0803D6A4: .4byte gUnknown_2022BC4  _0803D6A8: .4byte gActiveBattler  _0803D6AC: -	ldr r4, _0803D704 @ =gUnknown_2024018 +	ldr r4, _0803D704 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r3, _0803D708 @ =gActiveBattler  	ldrb r1, [r3] @@ -5937,7 +5937,7 @@ _0803D6AC:  	strb r1, [r3, 0x1]  	b _0803D776  	.align 2, 0 -_0803D704: .4byte gUnknown_2024018 +_0803D704: .4byte gBattleSpritesDataPtr  _0803D708: .4byte gActiveBattler  _0803D70C: .4byte gUnknown_2022BC4  _0803D710: @@ -5963,7 +5963,7 @@ _0803D718:  	adds r1, r2  	movs r3, 0  	strb r0, [r1] -	ldr r6, _0803D784 @ =gUnknown_2024018 +	ldr r6, _0803D784 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldrb r1, [r5]  	ldr r2, [r0, 0x4] @@ -6000,7 +6000,7 @@ _0803D776:  	.align 2, 0  _0803D77C: .4byte gUnknown_2022BC8  _0803D780: .4byte gUnknown_2024000 -_0803D784: .4byte gUnknown_2024018 +_0803D784: .4byte gBattleSpritesDataPtr  _0803D788: .4byte gUnknown_3004FE0  _0803D78C: .4byte sub_803D790  	thumb_func_end RecordedOpponentHandleDrawPartyStatusSummary @@ -6008,7 +6008,7 @@ _0803D78C: .4byte sub_803D790  	thumb_func_start sub_803D790  sub_803D790: @ 803D790  	push {r4,lr} -	ldr r4, _0803D7D0 @ =gUnknown_2024018 +	ldr r4, _0803D7D0 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r3, _0803D7D4 @ =gActiveBattler  	ldrb r1, [r3] @@ -6039,14 +6039,14 @@ _0803D7C8:  	pop {r0}  	bx r0  	.align 2, 0 -_0803D7D0: .4byte gUnknown_2024018 +_0803D7D0: .4byte gBattleSpritesDataPtr  _0803D7D4: .4byte gActiveBattler  	thumb_func_end sub_803D790  	thumb_func_start RecordedOpponentHandleCmd49  RecordedOpponentHandleCmd49: @ 803D7D8  	push {lr} -	ldr r0, _0803D814 @ =gUnknown_2024018 +	ldr r0, _0803D814 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _0803D818 @ =gActiveBattler  	ldrb r3, [r0] @@ -6075,7 +6075,7 @@ _0803D80A:  	pop {r0}  	bx r0  	.align 2, 0 -_0803D814: .4byte gUnknown_2024018 +_0803D814: .4byte gBattleSpritesDataPtr  _0803D818: .4byte gActiveBattler  _0803D81C: .4byte gTasks  _0803D820: .4byte gUnknown_2024000 @@ -6095,7 +6095,7 @@ RecordedOpponentHandleSpriteInvisibility: @ 803D834  	push {r4,lr}  	ldr r4, _0803D884 @ =gActiveBattler  	ldrb r0, [r4] -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _0803D87A diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s index c0409ce57..f8a83d85e 100644 --- a/asm/battle_controller_link_partner.s +++ b/asm/battle_controller_link_partner.s @@ -147,7 +147,7 @@ _080D430C: .4byte SpriteCallbackDummy  	thumb_func_start sub_80D4310  sub_80D4310: @ 80D4310  	push {r4,lr} -	ldr r4, _080D4350 @ =gUnknown_2024018 +	ldr r4, _080D4350 @ =gBattleSpritesDataPtr  	ldr r1, [r4]  	ldr r3, _080D4354 @ =gActiveBattler  	ldrb r0, [r3] @@ -178,7 +178,7 @@ _080D4348:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4350: .4byte gUnknown_2024018 +_080D4350: .4byte gBattleSpritesDataPtr  _080D4354: .4byte gActiveBattler  	thumb_func_end sub_80D4310 @@ -186,11 +186,11 @@ _080D4354: .4byte gActiveBattler  sub_80D4358: @ 80D4358  	push {r4-r6,lr}  	movs r6, 0 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080D437C -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080D43B0 @@ -202,7 +202,7 @@ sub_80D4358: @ 80D4358  	beq _080D43B0  _080D437C:  	ldr r2, _080D43A0 @ =gSprites -	ldr r1, _080D43A4 @ =gUnknown_3004FF0 +	ldr r1, _080D43A4 @ =gHealthboxSpriteIds  	ldr r0, _080D43A8 @ =gActiveBattler  	ldrb r0, [r0]  	adds r0, r1 @@ -220,12 +220,12 @@ _080D437C:  	.align 2, 0  _080D439C: .4byte gBattleTypeFlags  _080D43A0: .4byte gSprites -_080D43A4: .4byte gUnknown_3004FF0 +_080D43A4: .4byte gHealthboxSpriteIds  _080D43A8: .4byte gActiveBattler  _080D43AC: .4byte SpriteCallbackDummy  _080D43B0:  	ldr r2, _080D4420 @ =gSprites -	ldr r5, _080D4424 @ =gUnknown_3004FF0 +	ldr r5, _080D4424 @ =gHealthboxSpriteIds  	ldr r0, _080D4428 @ =gActiveBattler  	ldrb r3, [r0]  	adds r0, r3, r5 @@ -262,7 +262,7 @@ _080D43E8:  _080D43F4:  	cmp r6, 0  	beq _080D441A -	ldr r0, _080D4430 @ =gUnknown_2024018 +	ldr r0, _080D4430 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r3, _080D4428 @ =gActiveBattler  	ldrb r1, [r3] @@ -285,10 +285,10 @@ _080D441A:  	bx r0  	.align 2, 0  _080D4420: .4byte gSprites -_080D4424: .4byte gUnknown_3004FF0 +_080D4424: .4byte gHealthboxSpriteIds  _080D4428: .4byte gActiveBattler  _080D442C: .4byte SpriteCallbackDummy -_080D4430: .4byte gUnknown_2024018 +_080D4430: .4byte gBattleSpritesDataPtr  _080D4434: .4byte gUnknown_3004FE0  _080D4438: .4byte sub_80D4310  	thumb_func_end sub_80D4358 @@ -296,7 +296,7 @@ _080D4438: .4byte sub_80D4310  	thumb_func_start sub_80D443C  sub_80D443C: @ 80D443C  	push {r4-r7,lr} -	ldr r0, _080D4568 @ =gUnknown_2024018 +	ldr r0, _080D4568 @ =gBattleSpritesDataPtr  	mov r12, r0  	ldr r0, [r0]  	ldr r6, _080D456C @ =gActiveBattler @@ -344,7 +344,7 @@ _080D4460:  	lsls r0, 2  	adds r0, r2  	strb r4, [r0, 0x9] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080D4500 @@ -365,7 +365,7 @@ _080D4460:  	ldr r1, _080D4578 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _080D457C @ =gUnknown_3004FF0 +	ldr r4, _080D457C @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r1, r7, 0  	eors r1, r0 @@ -401,7 +401,7 @@ _080D4500:  	ldr r1, _080D4578 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r5, _080D457C @ =gUnknown_3004FF0 +	ldr r5, _080D457C @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r5  	ldrb r0, [r0] @@ -421,7 +421,7 @@ _080D4500:  	adds r0, r5  	ldrb r0, [r0]  	bl SetHealthboxSpriteVisible -	ldr r0, _080D4568 @ =gUnknown_2024018 +	ldr r0, _080D4568 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x8]  	ldrb r1, [r2, 0x9] @@ -440,12 +440,12 @@ _080D4562:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4568: .4byte gUnknown_2024018 +_080D4568: .4byte gBattleSpritesDataPtr  _080D456C: .4byte gActiveBattler  _080D4570: .4byte gBattleTypeFlags  _080D4574: .4byte gUnknown_3004FFC  _080D4578: .4byte gSprites -_080D457C: .4byte gUnknown_3004FF0 +_080D457C: .4byte gHealthboxSpriteIds  _080D4580: .4byte gBattlerPartyIndexes  _080D4584: .4byte gPlayerParty  _080D4588: .4byte gUnknown_3004FE0 @@ -490,7 +490,7 @@ sub_80D45D0: @ 80D45D0  	push {r4-r6,lr}  	ldr r5, _080D4610 @ =gActiveBattler  	ldrb r0, [r5] -	ldr r6, _080D4614 @ =gUnknown_3004FF0 +	ldr r6, _080D4614 @ =gHealthboxSpriteIds  	adds r1, r0, r6  	ldrb r1, [r1]  	movs r2, 0 @@ -517,7 +517,7 @@ sub_80D45D0: @ 80D45D0  	b _080D4632  	.align 2, 0  _080D4610: .4byte gActiveBattler -_080D4614: .4byte gUnknown_3004FF0 +_080D4614: .4byte gHealthboxSpriteIds  _080D4618:  	ldr r2, _080D4638 @ =gBattlerPartyIndexes  	ldrb r1, [r5] @@ -571,7 +571,7 @@ sub_80D4640: @ 80D4640  	lsls r0, 2  	adds r0, r6  	bl DestroySprite -	ldr r1, _080D46A4 @ =gUnknown_3004FF0 +	ldr r1, _080D46A4 @ =gHealthboxSpriteIds  	ldrb r0, [r4]  	adds r0, r1  	ldrb r0, [r0] @@ -585,13 +585,13 @@ _080D4690:  _080D4698: .4byte gSprites  _080D469C: .4byte gBattlerSpriteIds  _080D46A0: .4byte gActiveBattler -_080D46A4: .4byte gUnknown_3004FF0 +_080D46A4: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80D4640  	thumb_func_start sub_80D46A8  sub_80D46A8: @ 80D46A8  	push {r4-r6,lr} -	ldr r0, _080D4704 @ =gUnknown_2024018 +	ldr r0, _080D4704 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _080D4708 @ =gActiveBattler  	ldrb r2, [r6] @@ -622,7 +622,7 @@ sub_80D46A8: @ 80D46A8  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _080D4714 @ =gUnknown_3004FF0 +	ldr r1, _080D4714 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -633,11 +633,11 @@ _080D46FC:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4704: .4byte gUnknown_2024018 +_080D4704: .4byte gBattleSpritesDataPtr  _080D4708: .4byte gActiveBattler  _080D470C: .4byte gBattlerSpriteIds  _080D4710: .4byte gSprites -_080D4714: .4byte gUnknown_3004FF0 +_080D4714: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80D46A8  	thumb_func_start sub_80D4718 @@ -722,7 +722,7 @@ _080D47A6:  sub_80D47AC: @ 80D47AC  	push {r4,lr}  	ldr r2, _080D4800 @ =gSprites -	ldr r0, _080D4804 @ =gUnknown_3004FF0 +	ldr r0, _080D4804 @ =gHealthboxSpriteIds  	ldr r4, _080D4808 @ =gActiveBattler  	ldrb r3, [r4]  	adds r0, r3, r0 @@ -736,7 +736,7 @@ sub_80D47AC: @ 80D47AC  	ldr r0, _080D480C @ =SpriteCallbackDummy  	cmp r1, r0  	bne _080D47F8 -	ldr r0, _080D4810 @ =gUnknown_2024018 +	ldr r0, _080D4810 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r3, 2 @@ -764,10 +764,10 @@ _080D47F8:  	bx r0  	.align 2, 0  _080D4800: .4byte gSprites -_080D4804: .4byte gUnknown_3004FF0 +_080D4804: .4byte gHealthboxSpriteIds  _080D4808: .4byte gActiveBattler  _080D480C: .4byte SpriteCallbackDummy -_080D4810: .4byte gUnknown_2024018 +_080D4810: .4byte gBattleSpritesDataPtr  _080D4814: .4byte gUnknown_3004FE0  _080D4818: .4byte sub_80D481C  	thumb_func_end sub_80D47AC @@ -775,7 +775,7 @@ _080D4818: .4byte sub_80D481C  	thumb_func_start sub_80D481C  sub_80D481C: @ 80D481C  	push {lr} -	ldr r0, _080D4844 @ =gUnknown_2024018 +	ldr r0, _080D4844 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080D4848 @ =gActiveBattler  	ldrb r1, [r0] @@ -794,7 +794,7 @@ _080D483E:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4844: .4byte gUnknown_2024018 +_080D4844: .4byte gBattleSpritesDataPtr  _080D4848: .4byte gActiveBattler  	thumb_func_end sub_80D481C @@ -803,7 +803,7 @@ sub_80D484C: @ 80D484C  	push {r4-r7,lr}  	mov r7, r8  	push {r7} -	ldr r3, _080D4918 @ =gUnknown_2024018 +	ldr r3, _080D4918 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldr r7, _080D491C @ =gActiveBattler  	ldrb r1, [r7] @@ -863,7 +863,7 @@ sub_80D484C: @ 80D484C  	adds r0, r1  	movs r1, 0  	bl StartSpriteAnim -	ldr r4, _080D4938 @ =gUnknown_3004FF0 +	ldr r4, _080D4938 @ =gHealthboxSpriteIds  	ldrb r1, [r7]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -895,7 +895,7 @@ _080D490E:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4918: .4byte gUnknown_2024018 +_080D4918: .4byte gBattleSpritesDataPtr  _080D491C: .4byte gActiveBattler  _080D4920: .4byte 0x000027f9  _080D4924: .4byte c3_0802FDF4 @@ -903,7 +903,7 @@ _080D4928: .4byte gBattlerPartyIndexes  _080D492C: .4byte gPlayerParty  _080D4930: .4byte gBattlerSpriteIds  _080D4934: .4byte gSprites -_080D4938: .4byte gUnknown_3004FF0 +_080D4938: .4byte gHealthboxSpriteIds  _080D493C: .4byte gUnknown_3004FE0  _080D4940: .4byte sub_80D47AC  	thumb_func_end sub_80D484C @@ -911,7 +911,7 @@ _080D4940: .4byte sub_80D47AC  	thumb_func_start sub_80D4944  sub_80D4944: @ 80D4944  	push {r4-r6,lr} -	ldr r6, _080D49C4 @ =gUnknown_2024018 +	ldr r6, _080D49C4 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r4, _080D49C8 @ =gActiveBattler  	ldrb r2, [r4] @@ -974,7 +974,7 @@ _080D49BC:  	pop {r0}  	bx r0  	.align 2, 0 -_080D49C4: .4byte gUnknown_2024018 +_080D49C4: .4byte gBattleSpritesDataPtr  _080D49C8: .4byte gActiveBattler  _080D49CC: .4byte gBattlerPartyIndexes  _080D49D0: .4byte gPlayerParty @@ -1045,7 +1045,7 @@ _080D4A5C: .4byte gBitTable  	thumb_func_start sub_80D4A60  sub_80D4A60: @ 80D4A60  	push {lr} -	ldr r0, _080D4A88 @ =gUnknown_2024018 +	ldr r0, _080D4A88 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080D4A8C @ =gActiveBattler  	ldrb r1, [r0] @@ -1064,14 +1064,14 @@ _080D4A82:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4A88: .4byte gUnknown_2024018 +_080D4A88: .4byte gBattleSpritesDataPtr  _080D4A8C: .4byte gActiveBattler  	thumb_func_end sub_80D4A60  	thumb_func_start sub_80D4A90  sub_80D4A90: @ 80D4A90  	push {lr} -	ldr r0, _080D4AB8 @ =gUnknown_2024018 +	ldr r0, _080D4AB8 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080D4ABC @ =gActiveBattler  	ldrb r1, [r0] @@ -1090,7 +1090,7 @@ _080D4AB2:  	pop {r0}  	bx r0  	.align 2, 0 -_080D4AB8: .4byte gUnknown_2024018 +_080D4AB8: .4byte gBattleSpritesDataPtr  _080D4ABC: .4byte gActiveBattler  	thumb_func_end sub_80D4A90 @@ -3352,7 +3352,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4  	muls r0, r5  	ldr r4, _080D5EB0 @ =gPlayerParty  	adds r0, r4 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldrb r0, [r6]  	lsls r0, 1  	add r0, r8 @@ -3375,12 +3375,12 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4  	mov r8, r0  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	ldrb r0, [r6] -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -3491,7 +3491,7 @@ LinkPartnerHandleSendOutPoke: @ 80D5ED0  	muls r0, r2  	ldr r2, _080D5F34 @ =gPlayerParty  	adds r0, r2 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldrb r0, [r5]  	lsls r1, r0, 9  	adds r1, r6 @@ -3567,12 +3567,12 @@ sub_80D5F40: @ 80D5F40  	mov r10, r0  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -3693,7 +3693,7 @@ LinkPartnerHandleReturnPokeToBall: @ 80D60AC  	ldrb r3, [r0]  	cmp r3, 0  	bne _080D60F4 -	ldr r0, _080D60E8 @ =gUnknown_2024018 +	ldr r0, _080D60E8 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r2, 1 @@ -3711,7 +3711,7 @@ LinkPartnerHandleReturnPokeToBall: @ 80D60AC  	.align 2, 0  _080D60E0: .4byte gUnknown_2022BC4  _080D60E4: .4byte gActiveBattler -_080D60E8: .4byte gUnknown_2024018 +_080D60E8: .4byte gBattleSpritesDataPtr  _080D60EC: .4byte gUnknown_3004FE0  _080D60F0: .4byte sub_80D613C  _080D60F4: @@ -3732,7 +3732,7 @@ _080D60F4:  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _080D6138 @ =gUnknown_3004FF0 +	ldr r1, _080D6138 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -3745,13 +3745,13 @@ _080D612A:  	.align 2, 0  _080D6130: .4byte gBattlerSpriteIds  _080D6134: .4byte gSprites -_080D6138: .4byte gUnknown_3004FF0 +_080D6138: .4byte gHealthboxSpriteIds  	thumb_func_end LinkPartnerHandleReturnPokeToBall  	thumb_func_start sub_80D613C  sub_80D613C: @ 80D613C  	push {r4-r6,lr} -	ldr r6, _080D615C @ =gUnknown_2024018 +	ldr r6, _080D615C @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _080D6160 @ =gActiveBattler  	ldrb r2, [r5] @@ -3767,7 +3767,7 @@ sub_80D613C: @ 80D613C  	beq _080D6192  	b _080D61BA  	.align 2, 0 -_080D615C: .4byte gUnknown_2024018 +_080D615C: .4byte gBattleSpritesDataPtr  _080D6160: .4byte gActiveBattler  _080D6164:  	ldr r1, [r4] @@ -4087,7 +4087,7 @@ _080D63F0: .4byte sub_80D42A8  	thumb_func_start sub_80D63F4  sub_80D63F4: @ 80D63F4  	push {r4-r6,lr} -	ldr r6, _080D6440 @ =gUnknown_2024018 +	ldr r6, _080D6440 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _080D6444 @ =gActiveBattler  	ldrb r2, [r5] @@ -4124,7 +4124,7 @@ _080D6428:  	strb r1, [r0, 0x4]  	b _080D64BE  	.align 2, 0 -_080D6440: .4byte gUnknown_2024018 +_080D6440: .4byte gBattleSpritesDataPtr  _080D6444: .4byte gActiveBattler  _080D6448:  	ldrb r1, [r3] @@ -4329,7 +4329,7 @@ _080D6522:  	adds r1, 0x10  	adds r2, r1  	str r2, [r3] -	ldr r3, _080D6614 @ =gUnknown_2024008 +	ldr r3, _080D6614 @ =gTransformedPersonalities  	ldrb r1, [r6]  	lsls r1, 2  	adds r1, r3 @@ -4352,9 +4352,9 @@ _080D6604: .4byte gAnimMoveDmg  _080D6608: .4byte gUnknown_2037EFE  _080D660C: .4byte gUnknown_2037F00  _080D6610: .4byte gAnimDisableStructPtr -_080D6614: .4byte gUnknown_2024008 +_080D6614: .4byte gTransformedPersonalities  _080D6618: -	ldr r0, _080D663C @ =gUnknown_2024018 +	ldr r0, _080D663C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r6]  	ldr r2, [r0, 0x4] @@ -4374,7 +4374,7 @@ _080D6636:  	pop {r0}  	bx r0  	.align 2, 0 -_080D663C: .4byte gUnknown_2024018 +_080D663C: .4byte gBattleSpritesDataPtr  _080D6640: .4byte gUnknown_3004FE0  _080D6644: .4byte sub_80D6648  	thumb_func_end sub_80D6510 @@ -4404,7 +4404,7 @@ sub_80D6648: @ 80D6648  	adds r1, r2  	ldrb r1, [r1]  	mov r8, r1 -	ldr r7, _080D669C @ =gUnknown_2024018 +	ldr r7, _080D669C @ =gBattleSpritesDataPtr  	ldr r5, [r7]  	ldr r1, [r5, 0x4]  	lsls r0, r3, 1 @@ -4422,7 +4422,7 @@ sub_80D6648: @ 80D6648  	.align 2, 0  _080D6694: .4byte gUnknown_2022BC4  _080D6698: .4byte gActiveBattler -_080D669C: .4byte gUnknown_2024018 +_080D669C: .4byte gBattleSpritesDataPtr  _080D66A0:  	cmp r2, 0x2  	beq _080D670A @@ -4478,10 +4478,10 @@ _080D66E0:  	strb r1, [r0, 0x4]  	b _080D67BC  _080D670A: -	ldr r0, _080D6770 @ =gUnknown_2037EDC +	ldr r0, _080D6770 @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _080D6774 @ =gUnknown_2037EE1 +	ldr r0, _080D6774 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _080D67BC @@ -4515,7 +4515,7 @@ _080D670A:  	ands r0, r2  	strb r0, [r1]  _080D6758: -	ldr r0, _080D6778 @ =gUnknown_2024018 +	ldr r0, _080D6778 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080D677C @ =gActiveBattler  	ldrb r1, [r0] @@ -4528,9 +4528,9 @@ _080D6758:  	strb r1, [r0, 0x4]  	b _080D67BC  	.align 2, 0 -_080D6770: .4byte gUnknown_2037EDC -_080D6774: .4byte gUnknown_2037EE1 -_080D6778: .4byte gUnknown_2024018 +_080D6770: .4byte gAnimScriptCallback +_080D6774: .4byte gAnimScriptActive +_080D6778: .4byte gBattleSpritesDataPtr  _080D677C: .4byte gActiveBattler  _080D6780:  	ldrb r1, [r0] @@ -4728,7 +4728,7 @@ sub_80D6894: @ 80D6894  	adds r3, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _080D6920 @ =gUnknown_3004FF0 +	ldr r1, _080D6920 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -4741,7 +4741,7 @@ _080D6910: .4byte gActiveBattler  _080D6914: .4byte 0x00007fff  _080D6918: .4byte gBattlerPartyIndexes  _080D691C: .4byte gPlayerParty -_080D6920: .4byte gUnknown_3004FF0 +_080D6920: .4byte gHealthboxSpriteIds  _080D6924:  	ldr r1, _080D696C @ =gBattlerPartyIndexes  	lsls r0, r4, 1 @@ -4756,7 +4756,7 @@ _080D6924:  	adds r2, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _080D6974 @ =gUnknown_3004FF0 +	ldr r1, _080D6974 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -4780,7 +4780,7 @@ _080D694E:  	.align 2, 0  _080D696C: .4byte gBattlerPartyIndexes  _080D6970: .4byte gPlayerParty -_080D6974: .4byte gUnknown_3004FF0 +_080D6974: .4byte gHealthboxSpriteIds  _080D6978: .4byte gUnknown_3004FE0  _080D697C: .4byte gActiveBattler  _080D6980: .4byte sub_80D45D0 @@ -4803,7 +4803,7 @@ sub_80D6990: @ 80D6990  	lsls r0, 24  	cmp r0, 0  	bne _080D69E4 -	ldr r0, _080D69F0 @ =gUnknown_3004FF0 +	ldr r0, _080D69F0 @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r0  	ldrb r0, [r0] @@ -4818,7 +4818,7 @@ sub_80D6990: @ 80D6990  	movs r2, 0x9  	bl UpdateHealthboxAttribute  	ldrb r2, [r4] -	ldr r0, _080D69FC @ =gUnknown_2024018 +	ldr r0, _080D69FC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x4]  	lsls r1, r2, 1 @@ -4842,10 +4842,10 @@ _080D69E4:  	bx r0  	.align 2, 0  _080D69EC: .4byte gActiveBattler -_080D69F0: .4byte gUnknown_3004FF0 +_080D69F0: .4byte gHealthboxSpriteIds  _080D69F4: .4byte gBattlerPartyIndexes  _080D69F8: .4byte gPlayerParty -_080D69FC: .4byte gUnknown_2024018 +_080D69FC: .4byte gBattleSpritesDataPtr  _080D6A00: .4byte gUnknown_3004FE0  _080D6A04: .4byte sub_80D4A60  	thumb_func_end sub_80D6990 @@ -5217,7 +5217,7 @@ LinkPartnerHandleIntroSlide: @ 80D6CA0  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _080D6CD0 @ =gUnknown_2023F4C +	ldr r2, _080D6CD0 @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -5228,7 +5228,7 @@ LinkPartnerHandleIntroSlide: @ 80D6CA0  	.align 2, 0  _080D6CC8: .4byte gUnknown_2022BC4  _080D6CCC: .4byte gActiveBattler -_080D6CD0: .4byte gUnknown_2023F4C +_080D6CD0: .4byte gIntroSlideFlags  	thumb_func_end LinkPartnerHandleIntroSlide  	thumb_func_start sub_80D6CD4 @@ -5412,7 +5412,7 @@ _080D6E0C:  	adds r1, r4  	ldrb r0, [r5]  	strh r0, [r1, 0x8] -	ldr r3, _080D6EBC @ =gUnknown_2024018 +	ldr r3, _080D6EBC @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r2, [r5]  	ldr r1, [r0, 0x4] @@ -5457,7 +5457,7 @@ _080D6EAC: .4byte gBattlerSpriteIds  _080D6EB0: .4byte gActiveBattler  _080D6EB4: .4byte sub_80D6ED0  _080D6EB8: .4byte gTasks -_080D6EBC: .4byte gUnknown_2024018 +_080D6EBC: .4byte gBattleSpritesDataPtr  _080D6EC0: .4byte gUnknown_2024000  _080D6EC4: .4byte sub_80491B0  _080D6EC8: .4byte gUnknown_3004FE0 @@ -5494,7 +5494,7 @@ _080D6EFC:  	mov r9, r0  	ldrh r0, [r1, 0x8]  	strb r0, [r7] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080D6F1C @@ -5557,7 +5557,7 @@ _080D6F4C:  	muls r0, r2  	ldr r2, _080D6FCC @ =gPlayerParty  	adds r0, r2 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldrb r0, [r7]  	movs r1, 0  	bl sub_80D5F40 @@ -5615,7 +5615,7 @@ sub_80D6FDC: @ 80D6FDC  _080D7004: .4byte gUnknown_2022BC4  _080D7008: .4byte gActiveBattler  _080D700C: -	ldr r6, _080D7088 @ =gUnknown_2024018 +	ldr r6, _080D7088 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r5, _080D708C @ =gActiveBattler  	ldrb r1, [r5] @@ -5678,7 +5678,7 @@ _080D7080:  	pop {r0}  	bx r0  	.align 2, 0 -_080D7088: .4byte gUnknown_2024018 +_080D7088: .4byte gBattleSpritesDataPtr  _080D708C: .4byte gActiveBattler  _080D7090: .4byte gUnknown_2022BC8  _080D7094: .4byte gUnknown_2024000 @@ -5689,7 +5689,7 @@ _080D709C: .4byte sub_80D70A0  	thumb_func_start sub_80D70A0  sub_80D70A0: @ 80D70A0  	push {r4,lr} -	ldr r4, _080D70E0 @ =gUnknown_2024018 +	ldr r4, _080D70E0 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r3, _080D70E4 @ =gActiveBattler  	ldrb r1, [r3] @@ -5720,14 +5720,14 @@ _080D70D8:  	pop {r0}  	bx r0  	.align 2, 0 -_080D70E0: .4byte gUnknown_2024018 +_080D70E0: .4byte gBattleSpritesDataPtr  _080D70E4: .4byte gActiveBattler  	thumb_func_end sub_80D70A0  	thumb_func_start sub_80D70E8  sub_80D70E8: @ 80D70E8  	push {lr} -	ldr r0, _080D7124 @ =gUnknown_2024018 +	ldr r0, _080D7124 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080D7128 @ =gActiveBattler  	ldrb r3, [r0] @@ -5756,7 +5756,7 @@ _080D711A:  	pop {r0}  	bx r0  	.align 2, 0 -_080D7124: .4byte gUnknown_2024018 +_080D7124: .4byte gBattleSpritesDataPtr  _080D7128: .4byte gActiveBattler  _080D712C: .4byte gTasks  _080D7130: .4byte gUnknown_2024000 @@ -5776,7 +5776,7 @@ LinkPartnerHandleSpriteInvisibility: @ 80D7144  	push {r4,lr}  	ldr r4, _080D7194 @ =gActiveBattler  	ldrb r0, [r4] -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _080D718A diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s index df31ccd92..92efcecbc 100644 --- a/asm/battle_controller_oak.s +++ b/asm/battle_controller_oak.s @@ -722,7 +722,7 @@ _080E7B48: .4byte gSpecialVar_ItemId  	thumb_func_start sub_80E7B4C  sub_80E7B4C: @ 80E7B4C  	push {r4-r7,lr} -	ldr r4, _080E7CB0 @ =gUnknown_2024018 +	ldr r4, _080E7CB0 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r5, _080E7CB4 @ =gActiveBattler  	ldrb r2, [r5] @@ -796,7 +796,7 @@ _080E7BB2:  	ands r0, r1  	cmp r0, 0  	bne _080E7CA8 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080E7C46 @@ -817,7 +817,7 @@ _080E7BB2:  	ldr r1, _080E7CC8 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _080E7CCC @ =gUnknown_3004FF0 +	ldr r4, _080E7CCC @ =gHealthboxSpriteIds  	ldrb r0, [r5]  	adds r1, r6, 0  	eors r1, r0 @@ -853,7 +853,7 @@ _080E7C46:  	ldr r1, _080E7CC8 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r5, _080E7CCC @ =gUnknown_3004FF0 +	ldr r5, _080E7CCC @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r5  	ldrb r0, [r0] @@ -873,7 +873,7 @@ _080E7C46:  	adds r0, r5  	ldrb r0, [r0]  	bl SetHealthboxSpriteVisible -	ldr r0, _080E7CB0 @ =gUnknown_2024018 +	ldr r0, _080E7CB0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x8]  	ldrb r1, [r2, 0x9] @@ -892,14 +892,14 @@ _080E7CA8:  	pop {r0}  	bx r0  	.align 2, 0 -_080E7CB0: .4byte gUnknown_2024018 +_080E7CB0: .4byte gBattleSpritesDataPtr  _080E7CB4: .4byte gActiveBattler  _080E7CB8: .4byte gBattlerPartyIndexes  _080E7CBC: .4byte gPlayerParty  _080E7CC0: .4byte gBattleTypeFlags  _080E7CC4: .4byte gUnknown_3004FFC  _080E7CC8: .4byte gSprites -_080E7CCC: .4byte gUnknown_3004FF0 +_080E7CCC: .4byte gHealthboxSpriteIds  _080E7CD0: .4byte gUnknown_3004FE0  _080E7CD4: .4byte sub_80E7CD8  	thumb_func_end sub_80E7B4C @@ -911,7 +911,7 @@ sub_80E7CD8: @ 80E7CD8  	push {r7}  	movs r4, 0  	ldr r2, _080E7DD8 @ =gSprites -	ldr r0, _080E7DDC @ =gUnknown_3004FF0 +	ldr r0, _080E7DDC @ =gHealthboxSpriteIds  	ldr r1, _080E7DE0 @ =gActiveBattler  	mov r8, r1  	ldrb r3, [r1] @@ -930,7 +930,7 @@ sub_80E7CD8: @ 80E7CD8  _080E7D02:  	cmp r4, 0  	beq _080E7DCE -	ldr r7, _080E7DE8 @ =gUnknown_2024018 +	ldr r7, _080E7DE8 @ =gBattleSpritesDataPtr  	ldr r0, [r7]  	ldr r4, [r0, 0x4]  	lsls r0, r3, 1 @@ -1034,10 +1034,10 @@ _080E7DCE:  	bx r0  	.align 2, 0  _080E7DD8: .4byte gSprites -_080E7DDC: .4byte gUnknown_3004FF0 +_080E7DDC: .4byte gHealthboxSpriteIds  _080E7DE0: .4byte gActiveBattler  _080E7DE4: .4byte SpriteCallbackDummy -_080E7DE8: .4byte gUnknown_2024018 +_080E7DE8: .4byte gBattleSpritesDataPtr  _080E7DEC: .4byte 0x000027f9  _080E7DF0: .4byte c3_0802FDF4  _080E7DF4: .4byte gBattlerPartyIndexes @@ -1070,7 +1070,7 @@ sub_80E7E04: @ 80E7E04  	str r7, [sp, 0x8]  	ldrh r2, [r1, 0xA]  	str r2, [sp, 0xC] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1147,7 +1147,7 @@ _080E7E4A:  	movs r1, 0xB  	bl EmitTwoReturnValues  	strb r5, [r4] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1294,7 +1294,7 @@ sub_80E7F7C: @ 80E7F7C  	adds r4, r6  	ldr r2, [r4]  	subs r2, r1 -	ldr r0, _080E8044 @ =gUnknown_3004FF0 +	ldr r0, _080E8044 @ =gHealthboxSpriteIds  	add r0, r10  	ldrb r1, [r0]  	mov r0, r9 @@ -1320,7 +1320,7 @@ _080E8034: .4byte gTasks  _080E8038: .4byte gPlayerParty  _080E803C: .4byte gExperienceTables  _080E8040: .4byte gBaseStats -_080E8044: .4byte gUnknown_3004FF0 +_080E8044: .4byte gHealthboxSpriteIds  _080E8048: .4byte sub_80E804C  	thumb_func_end sub_80E7F7C @@ -1356,7 +1356,7 @@ _080E807C:  	ldrh r2, [r6, 0xA]  	mov r10, r2  	ldrb r7, [r6, 0xC] -	ldr r5, _080E8144 @ =gUnknown_3004FF0 +	ldr r5, _080E8144 @ =gHealthboxSpriteIds  	adds r5, r7, r5  	ldrb r1, [r5]  	adds r0, r7, 0 @@ -1443,7 +1443,7 @@ _080E807C:  	str r0, [r6]  	b _080E8178  	.align 2, 0 -_080E8144: .4byte gUnknown_3004FF0 +_080E8144: .4byte gHealthboxSpriteIds  _080E8148: .4byte gPlayerParty  _080E814C: .4byte gExperienceTables  _080E8150: .4byte gBaseStats @@ -1488,7 +1488,7 @@ sub_80E8190: @ 80E8190  	adds r0, r1  	ldrb r4, [r0, 0xC]  	ldrb r6, [r0, 0x8] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1536,7 +1536,7 @@ sub_80E81F0: @ 80E81F0  	lsls r0, 3  	adds r2, r0, r1  	ldrb r5, [r2, 0xC] -	ldr r0, _080E8260 @ =gUnknown_2024018 +	ldr r0, _080E8260 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r5, 1 @@ -1557,7 +1557,7 @@ sub_80E81F0: @ 80E81F0  	adds r0, r7, 0  	movs r1, 0x38  	bl GetMonData -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1571,7 +1571,7 @@ sub_80E81F0: @ 80E81F0  	ldrh r0, [r0]  	cmp r4, r0  	bne _080E8270 -	ldr r0, _080E826C @ =gUnknown_3004FF0 +	ldr r0, _080E826C @ =gHealthboxSpriteIds  	adds r0, r2, r0  	ldrb r0, [r0]  	adds r1, r7, 0 @@ -1580,12 +1580,12 @@ sub_80E81F0: @ 80E81F0  	b _080E8284  	.align 2, 0  _080E825C: .4byte gTasks -_080E8260: .4byte gUnknown_2024018 +_080E8260: .4byte gBattleSpritesDataPtr  _080E8264: .4byte gPlayerParty  _080E8268: .4byte gBattlerPartyIndexes -_080E826C: .4byte gUnknown_3004FF0 +_080E826C: .4byte gHealthboxSpriteIds  _080E8270: -	ldr r0, _080E8298 @ =gUnknown_3004FF0 +	ldr r0, _080E8298 @ =gHealthboxSpriteIds  	adds r0, r5, r0  	ldrb r0, [r0]  	movs r1, 0x64 @@ -1607,7 +1607,7 @@ _080E8292:  	pop {r0}  	bx r0  	.align 2, 0 -_080E8298: .4byte gUnknown_3004FF0 +_080E8298: .4byte gHealthboxSpriteIds  _080E829C: .4byte gPlayerParty  _080E82A0: .4byte gTasks  _080E82A4: .4byte sub_80E82A8 @@ -1681,7 +1681,7 @@ sub_80E82F4: @ 80E82F4  	lsls r0, 2  	adds r0, r6  	bl DestroySprite -	ldr r1, _080E8358 @ =gUnknown_3004FF0 +	ldr r1, _080E8358 @ =gHealthboxSpriteIds  	ldrb r0, [r4]  	adds r0, r1  	ldrb r0, [r0] @@ -1695,7 +1695,7 @@ _080E8344:  _080E834C: .4byte gSprites  _080E8350: .4byte gBattlerSpriteIds  _080E8354: .4byte gActiveBattler -_080E8358: .4byte gUnknown_3004FF0 +_080E8358: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80E82F4  	thumb_func_start sub_80E835C @@ -2366,7 +2366,7 @@ sub_80E88C0: @ 80E88C0  	push {r4-r6,lr}  	ldr r5, _080E8900 @ =gActiveBattler  	ldrb r0, [r5] -	ldr r6, _080E8904 @ =gUnknown_3004FF0 +	ldr r6, _080E8904 @ =gHealthboxSpriteIds  	adds r1, r0, r6  	ldrb r1, [r1]  	movs r2, 0 @@ -2393,7 +2393,7 @@ sub_80E88C0: @ 80E88C0  	b _080E8922  	.align 2, 0  _080E8900: .4byte gActiveBattler -_080E8904: .4byte gUnknown_3004FF0 +_080E8904: .4byte gHealthboxSpriteIds  _080E8908:  	ldr r2, _080E8928 @ =gBattlerPartyIndexes  	ldrb r1, [r5] @@ -2496,7 +2496,7 @@ _080E89BE:  	thumb_func_start sub_80E89C4  sub_80E89C4: @ 80E89C4  	push {r4-r6,lr} -	ldr r0, _080E8A20 @ =gUnknown_2024018 +	ldr r0, _080E8A20 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _080E8A24 @ =gActiveBattler  	ldrb r2, [r6] @@ -2527,7 +2527,7 @@ sub_80E89C4: @ 80E89C4  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _080E8A30 @ =gUnknown_3004FF0 +	ldr r1, _080E8A30 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -2538,11 +2538,11 @@ _080E8A18:  	pop {r0}  	bx r0  	.align 2, 0 -_080E8A20: .4byte gUnknown_2024018 +_080E8A20: .4byte gBattleSpritesDataPtr  _080E8A24: .4byte gActiveBattler  _080E8A28: .4byte gBattlerSpriteIds  _080E8A2C: .4byte gSprites -_080E8A30: .4byte gUnknown_3004FF0 +_080E8A30: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80E89C4  	thumb_func_start sub_80E8A34 @@ -2577,7 +2577,7 @@ _080E8A68: .4byte SpriteCallbackDummy  	thumb_func_start CompleteOnFinishedBattleAnimation_4  CompleteOnFinishedBattleAnimation_4: @ 80E8A6C  	push {lr} -	ldr r0, _080E8A94 @ =gUnknown_2024018 +	ldr r0, _080E8A94 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080E8A98 @ =gActiveBattler  	ldrb r1, [r0] @@ -2596,7 +2596,7 @@ _080E8A8E:  	pop {r0}  	bx r0  	.align 2, 0 -_080E8A94: .4byte gUnknown_2024018 +_080E8A94: .4byte gBattleSpritesDataPtr  _080E8A98: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedBattleAnimation_4 @@ -2660,7 +2660,7 @@ _080E8B10: .4byte gBitTable  	thumb_func_start CompleteOnFinishedStatusAnimation_4  CompleteOnFinishedStatusAnimation_4: @ 80E8B14  	push {lr} -	ldr r0, _080E8B3C @ =gUnknown_2024018 +	ldr r0, _080E8B3C @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080E8B40 @ =gActiveBattler  	ldrb r1, [r0] @@ -2679,7 +2679,7 @@ _080E8B36:  	pop {r0}  	bx r0  	.align 2, 0 -_080E8B3C: .4byte gUnknown_2024018 +_080E8B3C: .4byte gBattleSpritesDataPtr  _080E8B40: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedStatusAnimation_4 @@ -4936,7 +4936,7 @@ _080E9E24:  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _080E9E68 @ =gUnknown_3004FF0 +	ldr r1, _080E9E68 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -4949,7 +4949,7 @@ _080E9E5A:  	.align 2, 0  _080E9E60: .4byte gBattlerSpriteIds  _080E9E64: .4byte gSprites -_080E9E68: .4byte gUnknown_3004FF0 +_080E9E68: .4byte gHealthboxSpriteIds  	thumb_func_end WallyHandleReturnMonToBall  	thumb_func_start sub_80E9E6C @@ -5255,7 +5255,7 @@ sub_80EA0F4: @ 80EA0F4  	thumb_func_start sub_80EA100  sub_80EA100: @ 80EA100  	push {r4-r6,lr} -	ldr r6, _080EA14C @ =gUnknown_2024018 +	ldr r6, _080EA14C @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _080EA150 @ =gActiveBattler  	ldrb r2, [r5] @@ -5292,7 +5292,7 @@ _080EA134:  	strb r1, [r0, 0x4]  	b _080EA1CA  	.align 2, 0 -_080EA14C: .4byte gUnknown_2024018 +_080EA14C: .4byte gBattleSpritesDataPtr  _080EA150: .4byte gActiveBattler  _080EA154:  	ldrb r1, [r3] @@ -5377,7 +5377,7 @@ sub_80EA1EC: @ 80EA1EC  	thumb_func_start sub_80EA1F8  sub_80EA1F8: @ 80EA1F8  	push {r4,r5,lr} -	ldr r0, _080EA238 @ =gUnknown_2024018 +	ldr r0, _080EA238 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x8]  	movs r0, 0x4 @@ -5406,7 +5406,7 @@ sub_80EA1F8: @ 80EA1F8  	pop {r0}  	bx r0  	.align 2, 0 -_080EA238: .4byte gUnknown_2024018 +_080EA238: .4byte gBattleSpritesDataPtr  _080EA23C: .4byte gUnknown_2024005  _080EA240: .4byte gActiveBattler  _080EA244: .4byte gUnknown_3004FE0 @@ -5423,7 +5423,7 @@ sub_80EA24C: @ 80EA24C  	adds r1, 0x1  	adds r0, r1  	ldrb r1, [r0] -	ldr r0, _080EA29C @ =gUnknown_2024018 +	ldr r0, _080EA29C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	strb r1, [r0, 0x8] @@ -5452,7 +5452,7 @@ sub_80EA24C: @ 80EA24C  	.align 2, 0  _080EA294: .4byte gUnknown_2022BC4  _080EA298: .4byte gActiveBattler -_080EA29C: .4byte gUnknown_2024018 +_080EA29C: .4byte gBattleSpritesDataPtr  _080EA2A0: .4byte gUnknown_2024005  _080EA2A4: .4byte gUnknown_3004FE0  _080EA2A8: .4byte sub_80E7970 @@ -5558,7 +5558,7 @@ sub_80EA2B8: @ 80EA2B8  	adds r1, 0x10  	adds r2, r1  	str r2, [r3] -	ldr r3, _080EA3AC @ =gUnknown_2024008 +	ldr r3, _080EA3AC @ =gTransformedPersonalities  	ldrb r1, [r6]  	lsls r1, 2  	adds r1, r3 @@ -5581,9 +5581,9 @@ _080EA39C: .4byte gAnimMoveDmg  _080EA3A0: .4byte gUnknown_2037EFE  _080EA3A4: .4byte gUnknown_2037F00  _080EA3A8: .4byte gAnimDisableStructPtr -_080EA3AC: .4byte gUnknown_2024008 +_080EA3AC: .4byte gTransformedPersonalities  _080EA3B0: -	ldr r0, _080EA3D4 @ =gUnknown_2024018 +	ldr r0, _080EA3D4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r6]  	ldr r2, [r0, 0x4] @@ -5603,7 +5603,7 @@ _080EA3CE:  	pop {r0}  	bx r0  	.align 2, 0 -_080EA3D4: .4byte gUnknown_2024018 +_080EA3D4: .4byte gBattleSpritesDataPtr  _080EA3D8: .4byte gUnknown_3004FE0  _080EA3DC: .4byte sub_80EA3E0  	thumb_func_end sub_80EA2B8 @@ -5628,7 +5628,7 @@ sub_80EA3E0: @ 80EA3E0  	ldrb r0, [r1]  	lsls r0, 8  	orrs r4, r0 -	ldr r7, _080EA42C @ =gUnknown_2024018 +	ldr r7, _080EA42C @ =gBattleSpritesDataPtr  	ldr r5, [r7]  	ldr r1, [r5, 0x4]  	lsls r0, r3, 1 @@ -5646,7 +5646,7 @@ sub_80EA3E0: @ 80EA3E0  	.align 2, 0  _080EA424: .4byte gUnknown_2022BC4  _080EA428: .4byte gActiveBattler -_080EA42C: .4byte gUnknown_2024018 +_080EA42C: .4byte gBattleSpritesDataPtr  _080EA430:  	cmp r2, 0x2  	beq _080EA494 @@ -5699,10 +5699,10 @@ _080EA46A:  	strb r1, [r0, 0x4]  	b _080EA520  _080EA494: -	ldr r0, _080EA4DC @ =gUnknown_2037EDC +	ldr r0, _080EA4DC @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _080EA4E0 @ =gUnknown_2037EE1 +	ldr r0, _080EA4E0 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _080EA520 @@ -5734,8 +5734,8 @@ _080EA4C8:  	strb r1, [r0, 0x4]  	b _080EA520  	.align 2, 0 -_080EA4DC: .4byte gUnknown_2037EDC -_080EA4E0: .4byte gUnknown_2037EE1 +_080EA4DC: .4byte gAnimScriptCallback +_080EA4E0: .4byte gAnimScriptActive  _080EA4E4:  	ldrb r1, [r0]  	movs r0, 0x40 @@ -6379,7 +6379,7 @@ sub_80EA9B8: @ 80EA9B8  	adds r3, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _080EAA44 @ =gUnknown_3004FF0 +	ldr r1, _080EAA44 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -6392,7 +6392,7 @@ _080EAA34: .4byte gActiveBattler  _080EAA38: .4byte 0x00007fff  _080EAA3C: .4byte gBattlerPartyIndexes  _080EAA40: .4byte gPlayerParty -_080EAA44: .4byte gUnknown_3004FF0 +_080EAA44: .4byte gHealthboxSpriteIds  _080EAA48:  	ldr r1, _080EAAA0 @ =gBattlerPartyIndexes  	lsls r0, r4, 1 @@ -6407,7 +6407,7 @@ _080EAA48:  	adds r2, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r4, _080EAAA8 @ =gUnknown_3004FF0 +	ldr r4, _080EAAA8 @ =gHealthboxSpriteIds  	adds r1, r0, r4  	ldrb r1, [r1]  	str r7, [sp] @@ -6438,7 +6438,7 @@ _080EAA82:  	.align 2, 0  _080EAAA0: .4byte gBattlerPartyIndexes  _080EAAA4: .4byte gPlayerParty -_080EAAA8: .4byte gUnknown_3004FF0 +_080EAAA8: .4byte gHealthboxSpriteIds  _080EAAAC: .4byte gUnknown_3004FE0  _080EAAB0: .4byte gActiveBattler  _080EAAB4: .4byte sub_80E88C0 @@ -6787,7 +6787,7 @@ sub_80EAD20: @ 80EAD20  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _080EAD50 @ =gUnknown_2023F4C +	ldr r2, _080EAD50 @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -6798,7 +6798,7 @@ sub_80EAD20: @ 80EAD20  	.align 2, 0  _080EAD48: .4byte gUnknown_2022BC4  _080EAD4C: .4byte gActiveBattler -_080EAD50: .4byte gUnknown_2023F4C +_080EAD50: .4byte gIntroSlideFlags  	thumb_func_end sub_80EAD20  	thumb_func_start sub_80EAD54 @@ -6928,7 +6928,7 @@ _080EAD64:  	adds r1, r4  	ldrb r0, [r7]  	strh r0, [r1, 0x8] -	ldr r3, _080EAED0 @ =gUnknown_2024018 +	ldr r3, _080EAED0 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r2, [r7]  	ldr r1, [r0, 0x4] @@ -6977,13 +6977,13 @@ _080EAEC0: .4byte gUnknown_8239FD4  _080EAEC4: .4byte gSaveBlock2Ptr  _080EAEC8: .4byte sub_80EB0A8  _080EAECC: .4byte gTasks -_080EAED0: .4byte gUnknown_2024018 +_080EAED0: .4byte gBattleSpritesDataPtr  _080EAED4: .4byte gUnknown_2024000  _080EAED8: .4byte sub_80491B0  _080EAEDC: .4byte gUnknown_3004FE0  _080EAEE0: .4byte nullsub_13  _080EAEE4: -	ldr r0, _080EAF20 @ =gUnknown_2024018 +	ldr r0, _080EAF20 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080EAF24 @ =gActiveBattler  	ldrb r3, [r0] @@ -7014,7 +7014,7 @@ _080EAF18:  	pop {r0}  	bx r0  	.align 2, 0 -_080EAF20: .4byte gUnknown_2024018 +_080EAF20: .4byte gBattleSpritesDataPtr  _080EAF24: .4byte gActiveBattler  _080EAF28: .4byte gTasks  _080EAF2C: .4byte gUnknown_2024000 @@ -7031,7 +7031,7 @@ sub_80EAF34: @ 80EAF34  	adds r6, r0, 0  	lsls r6, 24  	lsrs r6, 24 -	ldr r0, _080EB07C @ =gUnknown_2024018 +	ldr r0, _080EB07C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r6, 2 @@ -7076,12 +7076,12 @@ sub_80EAF34: @ 80EAF34  	mov r10, r0  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -7178,7 +7178,7 @@ sub_80EAF34: @ 80EAF34  	pop {r0}  	bx r0  	.align 2, 0 -_080EB07C: .4byte gUnknown_2024018 +_080EB07C: .4byte gBattleSpritesDataPtr  _080EB080: .4byte gBattlerPartyIndexes  _080EB084: .4byte gUnknown_2022BC4  _080EB088: .4byte gPlayerParty @@ -7272,7 +7272,7 @@ sub_80EB11C: @ 80EB11C  _080EB144: .4byte gUnknown_2022BC4  _080EB148: .4byte gActiveBattler  _080EB14C: -	ldr r0, _080EB190 @ =gUnknown_2024018 +	ldr r0, _080EB190 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r5, _080EB194 @ =gActiveBattler  	ldrb r1, [r5] @@ -7306,7 +7306,7 @@ _080EB18A:  	pop {r0}  	bx r0  	.align 2, 0 -_080EB190: .4byte gUnknown_2024018 +_080EB190: .4byte gBattleSpritesDataPtr  _080EB194: .4byte gActiveBattler  _080EB198: .4byte gUnknown_2022BC8  _080EB19C: .4byte gUnknown_2024000 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 0618be95f..3bc790216 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -145,7 +145,7 @@ sub_8035B58: @ 8035B58  	bne _08035BC8  	adds r0, r2, r4  	ldrh r0, [r0, 0x6] -	bl sub_803477C +	bl FreeTrainerFrontPicPaletteAndTile  	ldrb r0, [r5]  	adds r0, r6  	ldrb r0, [r0] @@ -194,7 +194,7 @@ _08035BE4: .4byte 0xfffffc00  	thumb_func_start sub_8035BE8  sub_8035BE8: @ 8035BE8  	push {r4,lr} -	ldr r4, _08035C28 @ =gUnknown_2024018 +	ldr r4, _08035C28 @ =gBattleSpritesDataPtr  	ldr r1, [r4]  	ldr r3, _08035C2C @ =gActiveBattler  	ldrb r0, [r3] @@ -225,7 +225,7 @@ _08035C20:  	pop {r0}  	bx r0  	.align 2, 0 -_08035C28: .4byte gUnknown_2024018 +_08035C28: .4byte gBattleSpritesDataPtr  _08035C2C: .4byte gActiveBattler  	thumb_func_end sub_8035BE8 @@ -233,11 +233,11 @@ _08035C2C: .4byte gActiveBattler  sub_8035C30: @ 8035C30  	push {r4-r7,lr}  	movs r6, 0 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _08035C54 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _08035C88 @@ -249,7 +249,7 @@ sub_8035C30: @ 8035C30  	beq _08035C88  _08035C54:  	ldr r2, _08035C78 @ =gSprites -	ldr r1, _08035C7C @ =gUnknown_3004FF0 +	ldr r1, _08035C7C @ =gHealthboxSpriteIds  	ldr r0, _08035C80 @ =gActiveBattler  	ldrb r0, [r0]  	adds r0, r1 @@ -267,12 +267,12 @@ _08035C54:  	.align 2, 0  _08035C74: .4byte gBattleTypeFlags  _08035C78: .4byte gSprites -_08035C7C: .4byte gUnknown_3004FF0 +_08035C7C: .4byte gHealthboxSpriteIds  _08035C80: .4byte gActiveBattler  _08035C84: .4byte SpriteCallbackDummy  _08035C88:  	ldr r2, _08035D84 @ =gSprites -	ldr r5, _08035D88 @ =gUnknown_3004FF0 +	ldr r5, _08035D88 @ =gHealthboxSpriteIds  	ldr r0, _08035D8C @ =gActiveBattler  	ldrb r3, [r0]  	adds r0, r3, r5 @@ -310,7 +310,7 @@ _08035CCA:  	bne _08035CD0  	b _08035DD2  _08035CD0: -	ldr r0, _08035D94 @ =gUnknown_2024018 +	ldr r0, _08035D94 @ =gBattleSpritesDataPtr  	mov r12, r0  	ldr r0, [r0]  	ldr r7, _08035D8C @ =gActiveBattler @@ -399,10 +399,10 @@ _08035CD0:  	b _08035DB0  	.align 2, 0  _08035D84: .4byte gSprites -_08035D88: .4byte gUnknown_3004FF0 +_08035D88: .4byte gHealthboxSpriteIds  _08035D8C: .4byte gActiveBattler  _08035D90: .4byte SpriteCallbackDummy -_08035D94: .4byte gUnknown_2024018 +_08035D94: .4byte gBattleSpritesDataPtr  _08035D98: .4byte 0x000027f9  _08035D9C: .4byte gBattleTypeFlags  _08035DA0: .4byte gMPlayInfo_BGM @@ -413,7 +413,7 @@ _08035DA4:  	lsls r2, 1  	bl m4aMPlayVolumeControl  _08035DB0: -	ldr r0, _08035DE0 @ =gUnknown_2024018 +	ldr r0, _08035DE0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r3, _08035DE4 @ =gActiveBattler  	ldrb r1, [r3] @@ -437,7 +437,7 @@ _08035DD2:  	.align 2, 0  _08035DD8: .4byte gMPlayInfo_BGM  _08035DDC: .4byte 0x0000ffff -_08035DE0: .4byte gUnknown_2024018 +_08035DE0: .4byte gBattleSpritesDataPtr  _08035DE4: .4byte gActiveBattler  _08035DE8: .4byte gUnknown_3004FE0  _08035DEC: .4byte sub_8035BE8 @@ -449,7 +449,7 @@ sub_8035DF0: @ 8035DF0  	mov r7, r9  	mov r6, r8  	push {r6,r7} -	ldr r4, _08035FC0 @ =gUnknown_2024018 +	ldr r4, _08035FC0 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r1, _08035FC4 @ =gActiveBattler  	mov r9, r1 @@ -530,7 +530,7 @@ _08035E7E:  	beq _08035E96  	b _08035FB4  _08035E96: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _08035F28 @@ -552,7 +552,7 @@ _08035E96:  	ldr r1, _08035FD8 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _08035FDC @ =gUnknown_3004FF0 +	ldr r4, _08035FDC @ =gHealthboxSpriteIds  	mov r1, r9  	ldrb r0, [r1]  	adds r1, r7, 0 @@ -595,7 +595,7 @@ _08035E96:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  _08035F28:  	ldr r1, _08035FD4 @ =gUnknown_3004FFC  	ldr r5, _08035FC4 @ =gActiveBattler @@ -608,7 +608,7 @@ _08035F28:  	ldr r1, _08035FD8 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _08035FDC @ =gUnknown_3004FF0 +	ldr r4, _08035FDC @ =gHealthboxSpriteIds  	ldrb r1, [r5]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -646,8 +646,8 @@ _08035F28:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback -	ldr r0, _08035FC0 @ =gUnknown_2024018 +	bl SetBattlerShadowSpriteCallback +	ldr r0, _08035FC0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x8]  	ldrb r1, [r2, 0x9] @@ -669,14 +669,14 @@ _08035FB4:  	pop {r0}  	bx r0  	.align 2, 0 -_08035FC0: .4byte gUnknown_2024018 +_08035FC0: .4byte gBattleSpritesDataPtr  _08035FC4: .4byte gActiveBattler  _08035FC8: .4byte gBattlerPartyIndexes  _08035FCC: .4byte gEnemyParty  _08035FD0: .4byte gBattleTypeFlags  _08035FD4: .4byte gUnknown_3004FFC  _08035FD8: .4byte gSprites -_08035FDC: .4byte gUnknown_3004FF0 +_08035FDC: .4byte gHealthboxSpriteIds  _08035FE0: .4byte gUnknown_3004FE0  _08035FE4: .4byte sub_8035C30  	thumb_func_end sub_8035DF0 @@ -705,7 +705,7 @@ sub_8035FE8: @ 8035FE8  	ldrsh r0, [r1, r4]  	cmp r0, 0  	bne _08036094 -	ldr r6, _08036050 @ =gUnknown_2024018 +	ldr r6, _08036050 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r1, [r0, 0x4]  	lsls r4, r3, 1 @@ -731,7 +731,7 @@ sub_8035FE8: @ 8035FE8  _08036044: .4byte gSprites  _08036048: .4byte gBattlerSpriteIds  _0803604C: .4byte gActiveBattler -_08036050: .4byte gUnknown_2024018 +_08036050: .4byte gBattleSpritesDataPtr  _08036054: .4byte gBattlerPartyIndexes  _08036058: .4byte gEnemyParty  _0803605C: @@ -773,7 +773,7 @@ sub_80360A0: @ 80360A0  	push {r4-r6,lr}  	ldr r6, _080360E0 @ =gActiveBattler  	ldrb r0, [r6] -	ldr r5, _080360E4 @ =gUnknown_3004FF0 +	ldr r5, _080360E4 @ =gHealthboxSpriteIds  	adds r1, r0, r5  	ldrb r1, [r1]  	movs r2, 0 @@ -800,7 +800,7 @@ sub_80360A0: @ 80360A0  	b _08036124  	.align 2, 0  _080360E0: .4byte gActiveBattler -_080360E4: .4byte gUnknown_3004FF0 +_080360E4: .4byte gHealthboxSpriteIds  _080360E8:  	movs r0, 0x1  	bl sub_80EB2E0 @@ -852,7 +852,7 @@ sub_803612C: @ 803612C  	lsls r0, 31  	cmp r0, 0  	bne _0803615A -	ldr r0, _0803616C @ =gUnknown_3004FF0 +	ldr r0, _0803616C @ =gHealthboxSpriteIds  	adds r0, r3, r0  	ldrb r0, [r0]  	bl SetHealthboxSpriteInvisible @@ -864,13 +864,13 @@ _0803615A:  _08036160: .4byte gSprites  _08036164: .4byte gBattlerSpriteIds  _08036168: .4byte gActiveBattler -_0803616C: .4byte gUnknown_3004FF0 +_0803616C: .4byte gHealthboxSpriteIds  	thumb_func_end sub_803612C  	thumb_func_start sub_8036170  sub_8036170: @ 8036170  	push {r4-r6,lr} -	ldr r0, _080361D0 @ =gUnknown_2024018 +	ldr r0, _080361D0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _080361D4 @ =gActiveBattler  	ldrb r2, [r6] @@ -902,8 +902,8 @@ sub_8036170: @ 8036170  	adds r0, r4  	bl DestroySprite  	ldrb r0, [r6] -	bl EnemyShadowCallbackToSetInvisible -	ldr r1, _080361E0 @ =gUnknown_3004FF0 +	bl HideBattlerShadowSprite +	ldr r1, _080361E0 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -914,11 +914,11 @@ _080361CA:  	pop {r0}  	bx r0  	.align 2, 0 -_080361D0: .4byte gUnknown_2024018 +_080361D0: .4byte gBattleSpritesDataPtr  _080361D4: .4byte gActiveBattler  _080361D8: .4byte gBattlerSpriteIds  _080361DC: .4byte gSprites -_080361E0: .4byte gUnknown_3004FF0 +_080361E0: .4byte gHealthboxSpriteIds  	thumb_func_end sub_8036170  	thumb_func_start sub_80361E4 @@ -1003,7 +1003,7 @@ _08036272:  sub_8036278: @ 8036278  	push {r4,lr}  	ldr r2, _080362CC @ =gSprites -	ldr r0, _080362D0 @ =gUnknown_3004FF0 +	ldr r0, _080362D0 @ =gHealthboxSpriteIds  	ldr r4, _080362D4 @ =gActiveBattler  	ldrb r3, [r4]  	adds r0, r3, r0 @@ -1017,7 +1017,7 @@ sub_8036278: @ 8036278  	ldr r0, _080362D8 @ =SpriteCallbackDummy  	cmp r1, r0  	bne _080362C4 -	ldr r0, _080362DC @ =gUnknown_2024018 +	ldr r0, _080362DC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r3, 2 @@ -1045,10 +1045,10 @@ _080362C4:  	bx r0  	.align 2, 0  _080362CC: .4byte gSprites -_080362D0: .4byte gUnknown_3004FF0 +_080362D0: .4byte gHealthboxSpriteIds  _080362D4: .4byte gActiveBattler  _080362D8: .4byte SpriteCallbackDummy -_080362DC: .4byte gUnknown_2024018 +_080362DC: .4byte gBattleSpritesDataPtr  _080362E0: .4byte gUnknown_3004FE0  _080362E4: .4byte sub_80362E8  	thumb_func_end sub_8036278 @@ -1056,7 +1056,7 @@ _080362E4: .4byte sub_80362E8  	thumb_func_start sub_80362E8  sub_80362E8: @ 80362E8  	push {lr} -	ldr r0, _08036324 @ =gUnknown_2024018 +	ldr r0, _08036324 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08036328 @ =gActiveBattler  	ldrb r1, [r0] @@ -1084,7 +1084,7 @@ _08036320:  	pop {r0}  	bx r0  	.align 2, 0 -_08036324: .4byte gUnknown_2024018 +_08036324: .4byte gBattleSpritesDataPtr  _08036328: .4byte gActiveBattler  _0803632C: .4byte gMPlayInfo_BGM  _08036330: .4byte 0x0000ffff @@ -1093,7 +1093,7 @@ _08036330: .4byte 0x0000ffff  	thumb_func_start sub_8036334  sub_8036334: @ 8036334  	push {r4,r5,lr} -	ldr r3, _080363E0 @ =gUnknown_2024018 +	ldr r3, _080363E0 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldr r5, _080363E4 @ =gActiveBattler  	ldrb r1, [r5] @@ -1139,7 +1139,7 @@ sub_8036334: @ 8036334  	adds r0, r1  	movs r1, 0  	bl StartSpriteAnim -	ldr r4, _080363F4 @ =gUnknown_3004FF0 +	ldr r4, _080363F4 @ =gHealthboxSpriteIds  	ldrb r1, [r5]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -1172,12 +1172,12 @@ _080363D8:  	pop {r0}  	bx r0  	.align 2, 0 -_080363E0: .4byte gUnknown_2024018 +_080363E0: .4byte gBattleSpritesDataPtr  _080363E4: .4byte gActiveBattler  _080363E8: .4byte 0x000027f9  _080363EC: .4byte gBattlerSpriteIds  _080363F0: .4byte gSprites -_080363F4: .4byte gUnknown_3004FF0 +_080363F4: .4byte gHealthboxSpriteIds  _080363F8: .4byte gBattlerPartyIndexes  _080363FC: .4byte gEnemyParty  _08036400: .4byte gUnknown_3004FE0 @@ -1187,7 +1187,7 @@ _08036404: .4byte sub_8036278  	thumb_func_start sub_8036408  sub_8036408: @ 8036408  	push {r4-r6,lr} -	ldr r6, _080364AC @ =gUnknown_2024018 +	ldr r6, _080364AC @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r5, _080364B0 @ =gActiveBattler  	ldrb r2, [r5] @@ -1254,7 +1254,7 @@ _0803643A:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  	ldr r1, _080364C8 @ =gUnknown_3004FE0  	ldrb r0, [r5]  	lsls r0, 2 @@ -1266,7 +1266,7 @@ _080364A4:  	pop {r0}  	bx r0  	.align 2, 0 -_080364AC: .4byte gUnknown_2024018 +_080364AC: .4byte gBattleSpritesDataPtr  _080364B0: .4byte gActiveBattler  _080364B4: .4byte gBattlerPartyIndexes  _080364B8: .4byte gEnemyParty @@ -1280,7 +1280,7 @@ _080364CC: .4byte sub_8036334  	thumb_func_start sub_80364D0  sub_80364D0: @ 80364D0  	push {lr} -	ldr r0, _080364F8 @ =gUnknown_2024018 +	ldr r0, _080364F8 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080364FC @ =gActiveBattler  	ldrb r1, [r0] @@ -1299,14 +1299,14 @@ _080364F2:  	pop {r0}  	bx r0  	.align 2, 0 -_080364F8: .4byte gUnknown_2024018 +_080364F8: .4byte gBattleSpritesDataPtr  _080364FC: .4byte gActiveBattler  	thumb_func_end sub_80364D0  	thumb_func_start sub_8036500  sub_8036500: @ 8036500  	push {lr} -	ldr r0, _08036528 @ =gUnknown_2024018 +	ldr r0, _08036528 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _0803652C @ =gActiveBattler  	ldrb r1, [r0] @@ -1325,7 +1325,7 @@ _08036522:  	pop {r0}  	bx r0  	.align 2, 0 -_08036528: .4byte gUnknown_2024018 +_08036528: .4byte gBattleSpritesDataPtr  _0803652C: .4byte gActiveBattler  	thumb_func_end sub_8036500 @@ -3594,12 +3594,12 @@ sub_80377FC: @ 80377FC  	ldrh r0, [r0]  	muls r0, r5  	adds r0, r6 -	bl sub_8034658 +	bl DecompressGhostFrontPic  	ldrb r0, [r4]  	bl sub_8074900  	lsls r0, 24  	lsrs r5, r0, 24 -	ldr r3, _0803788C @ =gUnknown_2024018 +	ldr r3, _0803788C @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r1, [r4]  	ldr r2, [r0, 0x4] @@ -3628,7 +3628,7 @@ _0803787C: .4byte gBattlerPartyIndexes  _08037880: .4byte gActiveBattler  _08037884: .4byte gEnemyParty  _08037888: .4byte gBattleTypeFlags -_0803788C: .4byte gUnknown_2024018 +_0803788C: .4byte gBattleSpritesDataPtr  _08037890:  	ldrb r1, [r4]  	lsls r0, r1, 1 @@ -3638,7 +3638,7 @@ _08037890:  	adds r0, r6  	bl BattleLoadOpponentMonSpriteGfx  	ldrb r0, [r4] -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	lsls r0, 24  	lsrs r5, r0, 24  _080378AA: @@ -3653,7 +3653,7 @@ _080378AA:  	ldr r6, _080379A0 @ =gMultiuseSpriteTemplate  	ldrb r0, [r7]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -3743,7 +3743,7 @@ _080378AA:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  _08037986:  	ldr r0, _080379C0 @ =gUnknown_3004FE0  	ldrb r1, [r7] @@ -3877,12 +3877,12 @@ sub_8037A28: @ 8037A28  	mov r9, r0  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -4003,7 +4003,7 @@ sub_8037BAC: @ 8037BAC  	ldrb r3, [r0]  	cmp r3, 0  	bne _08037BF4 -	ldr r0, _08037BE8 @ =gUnknown_2024018 +	ldr r0, _08037BE8 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r2, 1 @@ -4021,7 +4021,7 @@ sub_8037BAC: @ 8037BAC  	.align 2, 0  _08037BE0: .4byte gUnknown_2022BC4  _08037BE4: .4byte gActiveBattler -_08037BE8: .4byte gUnknown_2024018 +_08037BE8: .4byte gBattleSpritesDataPtr  _08037BEC: .4byte gUnknown_3004FE0  _08037BF0: .4byte sub_8037C44  _08037BF4: @@ -4043,8 +4043,8 @@ _08037BF4:  	adds r0, r4  	bl DestroySprite  	ldrb r0, [r6] -	bl EnemyShadowCallbackToSetInvisible -	ldr r1, _08037C40 @ =gUnknown_3004FF0 +	bl HideBattlerShadowSprite +	ldr r1, _08037C40 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -4057,13 +4057,13 @@ _08037C30:  	.align 2, 0  _08037C38: .4byte gBattlerSpriteIds  _08037C3C: .4byte gSprites -_08037C40: .4byte gUnknown_3004FF0 +_08037C40: .4byte gHealthboxSpriteIds  	thumb_func_end sub_8037BAC  	thumb_func_start sub_8037C44  sub_8037C44: @ 8037C44  	push {r4-r6,lr} -	ldr r6, _08037C64 @ =gUnknown_2024018 +	ldr r6, _08037C64 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _08037C68 @ =gActiveBattler  	ldrb r2, [r5] @@ -4079,7 +4079,7 @@ sub_8037C44: @ 8037C44  	beq _08037C9A  	b _08037CC2  	.align 2, 0 -_08037C64: .4byte gUnknown_2024018 +_08037C64: .4byte gBattleSpritesDataPtr  _08037C68: .4byte gActiveBattler  _08037C6C:  	ldr r1, [r4] @@ -4195,7 +4195,7 @@ _08037D3A:  	mov r8, r0  	ldrb r1, [r0]  	mov r0, r9 -	bl sub_80346C4 +	bl DecompressTrainerFrontPic  	mov r1, r8  	ldrb r0, [r1]  	bl GetBattlerPosition @@ -4414,7 +4414,7 @@ _08037F0E:  	mov r8, r0  	ldrb r1, [r0]  	mov r0, r9 -	bl sub_80346C4 +	bl DecompressTrainerFrontPic  	mov r1, r8  	ldrb r0, [r1]  	bl GetBattlerPosition @@ -4657,7 +4657,7 @@ _08038120: .4byte sub_8035B58  	thumb_func_start sub_8038124  sub_8038124: @ 8038124  	push {r4-r6,lr} -	ldr r6, _08038170 @ =gUnknown_2024018 +	ldr r6, _08038170 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _08038174 @ =gActiveBattler  	ldrb r2, [r5] @@ -4694,7 +4694,7 @@ _08038158:  	strb r1, [r0, 0x4]  	b _080381B4  	.align 2, 0 -_08038170: .4byte gUnknown_2024018 +_08038170: .4byte gBattleSpritesDataPtr  _08038174: .4byte gActiveBattler  _08038178:  	ldrb r1, [r3] @@ -4869,7 +4869,7 @@ _08038212:  	adds r1, 0x10  	adds r2, r1  	str r2, [r3] -	ldr r3, _08038304 @ =gUnknown_2024008 +	ldr r3, _08038304 @ =gTransformedPersonalities  	ldrb r1, [r6]  	lsls r1, 2  	adds r1, r3 @@ -4892,9 +4892,9 @@ _080382F4: .4byte gAnimMoveDmg  _080382F8: .4byte gUnknown_2037EFE  _080382FC: .4byte gUnknown_2037F00  _08038300: .4byte gAnimDisableStructPtr -_08038304: .4byte gUnknown_2024008 +_08038304: .4byte gTransformedPersonalities  _08038308: -	ldr r0, _0803832C @ =gUnknown_2024018 +	ldr r0, _0803832C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r6]  	ldr r2, [r0, 0x4] @@ -4914,7 +4914,7 @@ _08038326:  	pop {r0}  	bx r0  	.align 2, 0 -_0803832C: .4byte gUnknown_2024018 +_0803832C: .4byte gBattleSpritesDataPtr  _08038330: .4byte gUnknown_3004FE0  _08038334: .4byte sub_8038338  	thumb_func_end sub_8038200 @@ -4944,7 +4944,7 @@ sub_8038338: @ 8038338  	adds r1, r2  	ldrb r1, [r1]  	mov r8, r1 -	ldr r7, _0803838C @ =gUnknown_2024018 +	ldr r7, _0803838C @ =gBattleSpritesDataPtr  	ldr r5, [r7]  	ldr r1, [r5, 0x4]  	lsls r0, r3, 1 @@ -4962,7 +4962,7 @@ sub_8038338: @ 8038338  	.align 2, 0  _08038384: .4byte gUnknown_2022BC4  _08038388: .4byte gActiveBattler -_0803838C: .4byte gUnknown_2024018 +_0803838C: .4byte gBattleSpritesDataPtr  _08038390:  	cmp r2, 0x2  	beq _080383FA @@ -5018,10 +5018,10 @@ _080383D0:  	strb r1, [r0, 0x4]  	b _080384AC  _080383FA: -	ldr r0, _08038460 @ =gUnknown_2037EDC +	ldr r0, _08038460 @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _08038464 @ =gUnknown_2037EE1 +	ldr r0, _08038464 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _080384AC @@ -5055,7 +5055,7 @@ _080383FA:  	ands r0, r2  	strb r0, [r1]  _08038448: -	ldr r0, _08038468 @ =gUnknown_2024018 +	ldr r0, _08038468 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _0803846C @ =gActiveBattler  	ldrb r1, [r0] @@ -5068,9 +5068,9 @@ _08038448:  	strb r1, [r0, 0x4]  	b _080384AC  	.align 2, 0 -_08038460: .4byte gUnknown_2037EDC -_08038464: .4byte gUnknown_2037EE1 -_08038468: .4byte gUnknown_2024018 +_08038460: .4byte gAnimScriptCallback +_08038464: .4byte gAnimScriptActive +_08038468: .4byte gBattleSpritesDataPtr  _0803846C: .4byte gActiveBattler  _08038470:  	ldrb r1, [r0] @@ -5596,7 +5596,7 @@ sub_8038844: @ 8038844  	adds r3, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _080388D0 @ =gUnknown_3004FF0 +	ldr r1, _080388D0 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -5609,7 +5609,7 @@ _080388C0: .4byte gActiveBattler  _080388C4: .4byte 0x00007fff  _080388C8: .4byte gBattlerPartyIndexes  _080388CC: .4byte gEnemyParty -_080388D0: .4byte gUnknown_3004FF0 +_080388D0: .4byte gHealthboxSpriteIds  _080388D4:  	ldr r1, _0803891C @ =gBattlerPartyIndexes  	lsls r0, r4, 1 @@ -5624,7 +5624,7 @@ _080388D4:  	adds r2, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _08038924 @ =gUnknown_3004FF0 +	ldr r1, _08038924 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -5648,7 +5648,7 @@ _080388FE:  	.align 2, 0  _0803891C: .4byte gBattlerPartyIndexes  _08038920: .4byte gEnemyParty -_08038924: .4byte gUnknown_3004FF0 +_08038924: .4byte gHealthboxSpriteIds  _08038928: .4byte gUnknown_3004FE0  _0803892C: .4byte gActiveBattler  _08038930: .4byte sub_80360A0 @@ -5671,7 +5671,7 @@ sub_8038940: @ 8038940  	lsls r0, 24  	cmp r0, 0  	bne _08038994 -	ldr r0, _080389A0 @ =gUnknown_3004FF0 +	ldr r0, _080389A0 @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r0  	ldrb r0, [r0] @@ -5686,7 +5686,7 @@ sub_8038940: @ 8038940  	movs r2, 0x9  	bl UpdateHealthboxAttribute  	ldrb r2, [r4] -	ldr r0, _080389AC @ =gUnknown_2024018 +	ldr r0, _080389AC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x4]  	lsls r1, r2, 1 @@ -5710,10 +5710,10 @@ _08038994:  	bx r0  	.align 2, 0  _0803899C: .4byte gActiveBattler -_080389A0: .4byte gUnknown_3004FF0 +_080389A0: .4byte gHealthboxSpriteIds  _080389A4: .4byte gBattlerPartyIndexes  _080389A8: .4byte gEnemyParty -_080389AC: .4byte gUnknown_2024018 +_080389AC: .4byte gBattleSpritesDataPtr  _080389B0: .4byte gUnknown_3004FE0  _080389B4: .4byte sub_80364D0  	thumb_func_end sub_8038940 @@ -6084,7 +6084,7 @@ OpponentHandleIntroSlide: @ 8038C4C  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _08038C7C @ =gUnknown_2023F4C +	ldr r2, _08038C7C @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -6095,7 +6095,7 @@ OpponentHandleIntroSlide: @ 8038C4C  	.align 2, 0  _08038C74: .4byte gUnknown_2022BC4  _08038C78: .4byte gActiveBattler -_08038C7C: .4byte gUnknown_2023F4C +_08038C7C: .4byte gIntroSlideFlags  	thumb_func_end OpponentHandleIntroSlide  	thumb_func_start sub_8038C80 @@ -6172,7 +6172,7 @@ sub_8038C80: @ 8038C80  	adds r1, r4  	ldrb r0, [r6]  	strh r0, [r1, 0x8] -	ldr r3, _08038D7C @ =gUnknown_2024018 +	ldr r3, _08038D7C @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r2, [r6]  	ldr r1, [r0, 0x4] @@ -6218,7 +6218,7 @@ _08038D6C: .4byte sub_8075590  _08038D70: .4byte sub_8038D90  _08038D74: .4byte sub_8038DC4  _08038D78: .4byte gTasks -_08038D7C: .4byte gUnknown_2024018 +_08038D7C: .4byte gBattleSpritesDataPtr  _08038D80: .4byte gUnknown_2024000  _08038D84: .4byte sub_80491B0  _08038D88: .4byte gUnknown_3004FE0 @@ -6230,7 +6230,7 @@ sub_8038D90: @ 8038D90  	push {r4,lr}  	adds r4, r0, 0  	ldrh r0, [r4, 0x6] -	bl sub_803477C +	bl FreeTrainerFrontPicPaletteAndTile  	ldrh r0, [r4, 0x38]  	ldr r1, _08038DBC @ =0x000003ff  	ands r1, r0 @@ -6271,7 +6271,7 @@ sub_8038DC4: @ 8038DC4  	adds r0, r1  	ldrh r0, [r0, 0x8]  	strb r0, [r7] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _08038DFE @@ -6382,7 +6382,7 @@ sub_8038EA8: @ 8038EA8  _08038ED0: .4byte gUnknown_2022BC4  _08038ED4: .4byte gActiveBattler  _08038ED8: -	ldr r4, _08038F30 @ =gUnknown_2024018 +	ldr r4, _08038F30 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r3, _08038F34 @ =gActiveBattler  	ldrb r1, [r3] @@ -6426,7 +6426,7 @@ _08038ED8:  	strb r1, [r3, 0x1]  	b _08038FA2  	.align 2, 0 -_08038F30: .4byte gUnknown_2024018 +_08038F30: .4byte gBattleSpritesDataPtr  _08038F34: .4byte gActiveBattler  _08038F38: .4byte gUnknown_2022BC4  _08038F3C: @@ -6452,7 +6452,7 @@ _08038F44:  	adds r1, r2  	movs r3, 0  	strb r0, [r1] -	ldr r6, _08038FB0 @ =gUnknown_2024018 +	ldr r6, _08038FB0 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldrb r1, [r5]  	ldr r2, [r0, 0x4] @@ -6489,7 +6489,7 @@ _08038FA2:  	.align 2, 0  _08038FA8: .4byte gUnknown_2022BC8  _08038FAC: .4byte gUnknown_2024000 -_08038FB0: .4byte gUnknown_2024018 +_08038FB0: .4byte gBattleSpritesDataPtr  _08038FB4: .4byte gUnknown_3004FE0  _08038FB8: .4byte sub_8038FBC  	thumb_func_end sub_8038EA8 @@ -6497,7 +6497,7 @@ _08038FB8: .4byte sub_8038FBC  	thumb_func_start sub_8038FBC  sub_8038FBC: @ 8038FBC  	push {r4,lr} -	ldr r4, _08038FFC @ =gUnknown_2024018 +	ldr r4, _08038FFC @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r3, _08039000 @ =gActiveBattler  	ldrb r1, [r3] @@ -6528,14 +6528,14 @@ _08038FF4:  	pop {r0}  	bx r0  	.align 2, 0 -_08038FFC: .4byte gUnknown_2024018 +_08038FFC: .4byte gBattleSpritesDataPtr  _08039000: .4byte gActiveBattler  	thumb_func_end sub_8038FBC  	thumb_func_start sub_8039004  sub_8039004: @ 8039004  	push {lr} -	ldr r0, _08039040 @ =gUnknown_2024018 +	ldr r0, _08039040 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _08039044 @ =gActiveBattler  	ldrb r3, [r0] @@ -6564,7 +6564,7 @@ _08039036:  	pop {r0}  	bx r0  	.align 2, 0 -_08039040: .4byte gUnknown_2024018 +_08039040: .4byte gBattleSpritesDataPtr  _08039044: .4byte gActiveBattler  _08039048: .4byte gTasks  _0803904C: .4byte gUnknown_2024000 @@ -6584,7 +6584,7 @@ sub_8039060: @ 8039060  	push {r4,lr}  	ldr r4, _080390B0 @ =gActiveBattler  	ldrb r0, [r4] -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _080390A6 diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 197816465..913e020cb 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -2571,7 +2571,7 @@ _0802F80C: .4byte gSaveBlock2Ptr  	thumb_func_start sub_802F810  sub_802F810: @ 802F810  	push {r4,lr} -	ldr r4, _0802F850 @ =gUnknown_2024018 +	ldr r4, _0802F850 @ =gBattleSpritesDataPtr  	ldr r1, [r4]  	ldr r3, _0802F854 @ =gActiveBattler  	ldrb r0, [r3] @@ -2602,7 +2602,7 @@ _0802F848:  	pop {r0}  	bx r0  	.align 2, 0 -_0802F850: .4byte gUnknown_2024018 +_0802F850: .4byte gBattleSpritesDataPtr  _0802F854: .4byte gActiveBattler  	thumb_func_end sub_802F810 @@ -2610,11 +2610,11 @@ _0802F854: .4byte gActiveBattler  sub_802F858: @ 802F858  	push {r4-r7,lr}  	movs r6, 0 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0802F87C -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0802F8B0 @@ -2626,7 +2626,7 @@ sub_802F858: @ 802F858  	beq _0802F8B0  _0802F87C:  	ldr r2, _0802F8A0 @ =gSprites -	ldr r1, _0802F8A4 @ =gUnknown_3004FF0 +	ldr r1, _0802F8A4 @ =gHealthboxSpriteIds  	ldr r0, _0802F8A8 @ =gActiveBattler  	ldrb r0, [r0]  	adds r0, r1 @@ -2644,12 +2644,12 @@ _0802F87C:  	.align 2, 0  _0802F89C: .4byte gBattleTypeFlags  _0802F8A0: .4byte gSprites -_0802F8A4: .4byte gUnknown_3004FF0 +_0802F8A4: .4byte gHealthboxSpriteIds  _0802F8A8: .4byte gActiveBattler  _0802F8AC: .4byte SpriteCallbackDummy  _0802F8B0:  	ldr r2, _0802F9B0 @ =gSprites -	ldr r5, _0802F9B4 @ =gUnknown_3004FF0 +	ldr r5, _0802F9B4 @ =gHealthboxSpriteIds  	ldr r0, _0802F9B8 @ =gActiveBattler  	ldrb r3, [r0]  	adds r0, r3, r5 @@ -2687,7 +2687,7 @@ _0802F8F2:  	bne _0802F8F8  	b _0802FA32  _0802F8F8: -	ldr r0, _0802F9C0 @ =gUnknown_2024018 +	ldr r0, _0802F9C0 @ =gBattleSpritesDataPtr  	mov r12, r0  	ldr r0, [r0]  	ldr r7, _0802F9B8 @ =gActiveBattler @@ -2780,10 +2780,10 @@ _0802F934:  	b _0802F9DC  	.align 2, 0  _0802F9B0: .4byte gSprites -_0802F9B4: .4byte gUnknown_3004FF0 +_0802F9B4: .4byte gHealthboxSpriteIds  _0802F9B8: .4byte gActiveBattler  _0802F9BC: .4byte SpriteCallbackDummy -_0802F9C0: .4byte gUnknown_2024018 +_0802F9C0: .4byte gBattleSpritesDataPtr  _0802F9C4: .4byte 0x000027f9  _0802F9C8: .4byte gBattleTypeFlags  _0802F9CC: .4byte gMPlayInfo_BGM @@ -2805,7 +2805,7 @@ _0802F9DC:  	ldr r5, _0802FA48 @ =gPlayerParty  	adds r0, r5  	bl HandleLowHpMusicChange -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0802FA12 @@ -2819,7 +2819,7 @@ _0802F9DC:  	adds r0, r5  	bl HandleLowHpMusicChange  _0802FA12: -	ldr r0, _0802FA4C @ =gUnknown_2024018 +	ldr r0, _0802FA4C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r4]  	ldr r2, [r0, 0x4] @@ -2845,7 +2845,7 @@ _0802FA3C: .4byte 0x0000ffff  _0802FA40: .4byte gBattlerPartyIndexes  _0802FA44: .4byte gActiveBattler  _0802FA48: .4byte gPlayerParty -_0802FA4C: .4byte gUnknown_2024018 +_0802FA4C: .4byte gBattleSpritesDataPtr  _0802FA50: .4byte gUnknown_3004FE0  _0802FA54: .4byte sub_802F810  	thumb_func_end sub_802F858 @@ -2856,7 +2856,7 @@ sub_802FA58: @ 802FA58  	mov r7, r9  	mov r6, r8  	push {r6,r7} -	ldr r0, _0802FBCC @ =gUnknown_2024018 +	ldr r0, _0802FBCC @ =gBattleSpritesDataPtr  	mov r9, r0  	ldr r0, [r0]  	ldr r1, _0802FBD0 @ =gActiveBattler @@ -2930,7 +2930,7 @@ _0802FABC:  	adds r0, r2, 0  	bl sub_80F1720  _0802FAF0: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0802FB5C @@ -2952,7 +2952,7 @@ _0802FAF0:  	ldr r1, _0802FBE4 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _0802FBE8 @ =gUnknown_3004FF0 +	ldr r4, _0802FBE8 @ =gHealthboxSpriteIds  	mov r1, r8  	ldrb r0, [r1]  	adds r1, r7, 0 @@ -2991,7 +2991,7 @@ _0802FB5C:  	ldr r1, _0802FBE4 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r5, _0802FBE8 @ =gUnknown_3004FF0 +	ldr r5, _0802FBE8 @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r5  	ldrb r0, [r0] @@ -3011,7 +3011,7 @@ _0802FB5C:  	adds r0, r5  	ldrb r0, [r0]  	bl SetHealthboxSpriteVisible -	ldr r0, _0802FBCC @ =gUnknown_2024018 +	ldr r0, _0802FBCC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x8]  	ldrb r1, [r2, 0x9] @@ -3033,14 +3033,14 @@ _0802FBBE:  	pop {r0}  	bx r0  	.align 2, 0 -_0802FBCC: .4byte gUnknown_2024018 +_0802FBCC: .4byte gBattleSpritesDataPtr  _0802FBD0: .4byte gActiveBattler  _0802FBD4: .4byte gBattlerPartyIndexes  _0802FBD8: .4byte gPlayerParty  _0802FBDC: .4byte gBattleTypeFlags  _0802FBE0: .4byte gUnknown_3004FFC  _0802FBE4: .4byte gSprites -_0802FBE8: .4byte gUnknown_3004FF0 +_0802FBE8: .4byte gHealthboxSpriteIds  _0802FBEC: .4byte gUnknown_3004FE0  _0802FBF0: .4byte sub_802F858  	thumb_func_end sub_802FA58 @@ -3049,7 +3049,7 @@ _0802FBF0: .4byte sub_802F858  sub_802FBF4: @ 802FBF4  	push {r4-r6,lr}  	ldr r2, _0802FC8C @ =gSprites -	ldr r0, _0802FC90 @ =gUnknown_3004FF0 +	ldr r0, _0802FC90 @ =gHealthboxSpriteIds  	ldr r6, _0802FC94 @ =gActiveBattler  	ldrb r3, [r6]  	adds r0, r3, r0 @@ -3063,7 +3063,7 @@ sub_802FBF4: @ 802FBF4  	ldr r0, _0802FC98 @ =SpriteCallbackDummy  	cmp r1, r0  	bne _0802FC84 -	ldr r5, _0802FC9C @ =gUnknown_2024018 +	ldr r5, _0802FC9C @ =gBattleSpritesDataPtr  	ldr r0, [r5]  	ldr r1, [r0, 0x4]  	lsls r0, r3, 1 @@ -3123,10 +3123,10 @@ _0802FC84:  	bx r0  	.align 2, 0  _0802FC8C: .4byte gSprites -_0802FC90: .4byte gUnknown_3004FF0 +_0802FC90: .4byte gHealthboxSpriteIds  _0802FC94: .4byte gActiveBattler  _0802FC98: .4byte SpriteCallbackDummy -_0802FC9C: .4byte gUnknown_2024018 +_0802FC9C: .4byte gBattleSpritesDataPtr  _0802FCA0: .4byte 0x000027f9  _0802FCA4: .4byte gUnknown_3004FE0  _0802FCA8: .4byte sub_802FCAC @@ -3135,7 +3135,7 @@ _0802FCA8: .4byte sub_802FCAC  	thumb_func_start sub_802FCAC  sub_802FCAC: @ 802FCAC  	push {r4,lr} -	ldr r0, _0802FD00 @ =gUnknown_2024018 +	ldr r0, _0802FD00 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r4, _0802FD04 @ =gActiveBattler  	ldrb r1, [r4] @@ -3174,7 +3174,7 @@ _0802FCFA:  	pop {r0}  	bx r0  	.align 2, 0 -_0802FD00: .4byte gUnknown_2024018 +_0802FD00: .4byte gBattleSpritesDataPtr  _0802FD04: .4byte gActiveBattler  _0802FD08: .4byte gMPlayInfo_BGM  _0802FD0C: .4byte 0x0000ffff @@ -3185,7 +3185,7 @@ _0802FD14: .4byte gPlayerParty  	thumb_func_start sub_802FD18  sub_802FD18: @ 802FD18  	push {r4-r6,lr} -	ldr r6, _0802FDCC @ =gUnknown_2024018 +	ldr r6, _0802FDCC @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r5, _0802FDD0 @ =gActiveBattler  	ldrb r2, [r5] @@ -3237,7 +3237,7 @@ _0802FD4A:  	bne _0802FDC4  	adds r0, r3, r4  	bl DestroySprite -	ldr r4, _0802FDE8 @ =gUnknown_3004FF0 +	ldr r4, _0802FDE8 @ =gHealthboxSpriteIds  	ldrb r1, [r5]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -3270,14 +3270,14 @@ _0802FDC4:  	pop {r0}  	bx r0  	.align 2, 0 -_0802FDCC: .4byte gUnknown_2024018 +_0802FDCC: .4byte gBattleSpritesDataPtr  _0802FDD0: .4byte gActiveBattler  _0802FDD4: .4byte gBattlerPartyIndexes  _0802FDD8: .4byte gPlayerParty  _0802FDDC: .4byte gSprites  _0802FDE0: .4byte gUnknown_3004FFC  _0802FDE4: .4byte SpriteCallbackDummy -_0802FDE8: .4byte gUnknown_3004FF0 +_0802FDE8: .4byte gHealthboxSpriteIds  _0802FDEC: .4byte gUnknown_3004FE0  _0802FDF0: .4byte sub_802FBF4  	thumb_func_end sub_802FD18 @@ -3312,7 +3312,7 @@ CompleteOnHealthbarDone: @ 802FE24  	push {r4-r6,lr}  	ldr r5, _0802FE64 @ =gActiveBattler  	ldrb r0, [r5] -	ldr r6, _0802FE68 @ =gUnknown_3004FF0 +	ldr r6, _0802FE68 @ =gHealthboxSpriteIds  	adds r1, r0, r6  	ldrb r1, [r1]  	movs r2, 0 @@ -3339,7 +3339,7 @@ CompleteOnHealthbarDone: @ 802FE24  	b _0802FE86  	.align 2, 0  _0802FE64: .4byte gActiveBattler -_0802FE68: .4byte gUnknown_3004FF0 +_0802FE68: .4byte gHealthboxSpriteIds  _0802FE6C:  	ldr r2, _0802FE8C @ =gBattlerPartyIndexes  	ldrb r1, [r5] @@ -3399,7 +3399,7 @@ sub_802FEAC: @ 802FEAC  	str r7, [sp, 0x8]  	ldrh r2, [r1, 0xA]  	str r2, [sp, 0xC] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -3476,7 +3476,7 @@ _0802FEF2:  	movs r1, 0xB  	bl EmitTwoReturnValues  	strb r5, [r4] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -3623,7 +3623,7 @@ sub_8030024: @ 8030024  	adds r4, r6  	ldr r2, [r4]  	subs r2, r1 -	ldr r0, _080300EC @ =gUnknown_3004FF0 +	ldr r0, _080300EC @ =gHealthboxSpriteIds  	add r0, r10  	ldrb r1, [r0]  	mov r0, r9 @@ -3649,7 +3649,7 @@ _080300DC: .4byte gTasks  _080300E0: .4byte gPlayerParty  _080300E4: .4byte gExperienceTables  _080300E8: .4byte gBaseStats -_080300EC: .4byte gUnknown_3004FF0 +_080300EC: .4byte gHealthboxSpriteIds  _080300F0: .4byte sub_80300F4  	thumb_func_end sub_8030024 @@ -3685,7 +3685,7 @@ _08030124:  	ldrh r2, [r6, 0xA]  	mov r10, r2  	ldrb r7, [r6, 0xC] -	ldr r5, _080301EC @ =gUnknown_3004FF0 +	ldr r5, _080301EC @ =gHealthboxSpriteIds  	adds r5, r7, r5  	ldrb r1, [r5]  	adds r0, r7, 0 @@ -3772,7 +3772,7 @@ _08030124:  	str r0, [r6]  	b _08030220  	.align 2, 0 -_080301EC: .4byte gUnknown_3004FF0 +_080301EC: .4byte gHealthboxSpriteIds  _080301F0: .4byte gPlayerParty  _080301F4: .4byte gExperienceTables  _080301F8: .4byte gBaseStats @@ -3817,7 +3817,7 @@ sub_8030238: @ 8030238  	adds r0, r1  	ldrb r4, [r0, 0xC]  	ldrb r6, [r0, 0x8] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -3865,7 +3865,7 @@ sub_8030298: @ 8030298  	lsls r0, 3  	adds r2, r0, r1  	ldrb r5, [r2, 0xC] -	ldr r0, _08030308 @ =gUnknown_2024018 +	ldr r0, _08030308 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r5, 1 @@ -3886,7 +3886,7 @@ sub_8030298: @ 8030298  	adds r0, r7, 0  	movs r1, 0x38  	bl GetMonData -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -3900,7 +3900,7 @@ sub_8030298: @ 8030298  	ldrh r0, [r0]  	cmp r4, r0  	bne _08030318 -	ldr r0, _08030314 @ =gUnknown_3004FF0 +	ldr r0, _08030314 @ =gHealthboxSpriteIds  	adds r0, r2, r0  	ldrb r0, [r0]  	adds r1, r7, 0 @@ -3909,12 +3909,12 @@ sub_8030298: @ 8030298  	b _0803032C  	.align 2, 0  _08030304: .4byte gTasks -_08030308: .4byte gUnknown_2024018 +_08030308: .4byte gBattleSpritesDataPtr  _0803030C: .4byte gPlayerParty  _08030310: .4byte gBattlerPartyIndexes -_08030314: .4byte gUnknown_3004FF0 +_08030314: .4byte gHealthboxSpriteIds  _08030318: -	ldr r0, _08030340 @ =gUnknown_3004FF0 +	ldr r0, _08030340 @ =gHealthboxSpriteIds  	adds r0, r5, r0  	ldrb r0, [r0]  	movs r1, 0x64 @@ -3936,7 +3936,7 @@ _0803033A:  	pop {r0}  	bx r0  	.align 2, 0 -_08030340: .4byte gUnknown_3004FF0 +_08030340: .4byte gHealthboxSpriteIds  _08030344: .4byte gPlayerParty  _08030348: .4byte gTasks  _0803034C: .4byte sub_8030350 @@ -4207,7 +4207,7 @@ sub_8030538: @ 8030538  	lsls r0, 2  	adds r0, r6  	bl DestroySprite -	ldr r1, _0803059C @ =gUnknown_3004FF0 +	ldr r1, _0803059C @ =gHealthboxSpriteIds  	ldrb r0, [r4]  	adds r0, r1  	ldrb r0, [r0] @@ -4221,13 +4221,13 @@ _08030588:  _08030590: .4byte gSprites  _08030594: .4byte gBattlerSpriteIds  _08030598: .4byte gActiveBattler -_0803059C: .4byte gUnknown_3004FF0 +_0803059C: .4byte gHealthboxSpriteIds  	thumb_func_end sub_8030538  	thumb_func_start sub_80305A0  sub_80305A0: @ 80305A0  	push {r4-r6,lr} -	ldr r0, _080305FC @ =gUnknown_2024018 +	ldr r0, _080305FC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _08030600 @ =gActiveBattler  	ldrb r2, [r6] @@ -4258,7 +4258,7 @@ sub_80305A0: @ 80305A0  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _0803060C @ =gUnknown_3004FF0 +	ldr r1, _0803060C @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -4269,11 +4269,11 @@ _080305F4:  	pop {r0}  	bx r0  	.align 2, 0 -_080305FC: .4byte gUnknown_2024018 +_080305FC: .4byte gBattleSpritesDataPtr  _08030600: .4byte gActiveBattler  _08030604: .4byte gBattlerSpriteIds  _08030608: .4byte gSprites -_0803060C: .4byte gUnknown_3004FF0 +_0803060C: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80305A0  	thumb_func_start sub_8030610 @@ -4457,7 +4457,7 @@ CompleteOnSpecialAnimDone: @ 8030778  	ldrb r0, [r0]  	cmp r0, 0  	beq _0803079E -	ldr r0, _080307AC @ =gUnknown_2024018 +	ldr r0, _080307AC @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080307B0 @ =gActiveBattler  	ldrb r1, [r0] @@ -4478,7 +4478,7 @@ _080307A2:  	bx r0  	.align 2, 0  _080307A8: .4byte gUnknown_2024005 -_080307AC: .4byte gUnknown_2024018 +_080307AC: .4byte gBattleSpritesDataPtr  _080307B0: .4byte gActiveBattler  	thumb_func_end CompleteOnSpecialAnimDone @@ -4906,7 +4906,7 @@ _08030AF8: .4byte sub_8077764  	thumb_func_start CompleteOnFinishedStatusAnimation  CompleteOnFinishedStatusAnimation: @ 8030AFC  	push {lr} -	ldr r0, _08030B24 @ =gUnknown_2024018 +	ldr r0, _08030B24 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08030B28 @ =gActiveBattler  	ldrb r1, [r0] @@ -4925,14 +4925,14 @@ _08030B1E:  	pop {r0}  	bx r0  	.align 2, 0 -_08030B24: .4byte gUnknown_2024018 +_08030B24: .4byte gBattleSpritesDataPtr  _08030B28: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedStatusAnimation  	thumb_func_start CompleteOnFinishedBattleAnimation  CompleteOnFinishedBattleAnimation: @ 8030B2C  	push {lr} -	ldr r0, _08030B54 @ =gUnknown_2024018 +	ldr r0, _08030B54 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08030B58 @ =gActiveBattler  	ldrb r1, [r0] @@ -4951,7 +4951,7 @@ _08030B4E:  	pop {r0}  	bx r0  	.align 2, 0 -_08030B54: .4byte gUnknown_2024018 +_08030B54: .4byte gBattleSpritesDataPtr  _08030B58: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedBattleAnimation @@ -7297,7 +7297,7 @@ PlayerHandleLoadMonSprite: @ 8031F00  	muls r0, r2  	ldr r2, _08031F54 @ =gPlayerParty  	adds r0, r2 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldr r2, _08031F58 @ =gSprites  	ldr r0, _08031F5C @ =gBattlerSpriteIds  	ldrb r3, [r4] @@ -7361,7 +7361,7 @@ PlayerHandleSwitchInAnim: @ 8031F68  	muls r0, r2  	ldr r2, _08031FE0 @ =gPlayerParty  	adds r0, r2 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldr r1, _08031FE4 @ =gUnknown_2023FF8  	ldrb r0, [r5]  	adds r0, r1 @@ -7447,12 +7447,12 @@ sub_8031FF4: @ 8031FF4  	mov r10, r0  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -7573,7 +7573,7 @@ PlayerHandleReturnPokeToBall: @ 8032160  	ldrb r3, [r0]  	cmp r3, 0  	bne _080321A8 -	ldr r0, _0803219C @ =gUnknown_2024018 +	ldr r0, _0803219C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r2, 1 @@ -7591,7 +7591,7 @@ PlayerHandleReturnPokeToBall: @ 8032160  	.align 2, 0  _08032194: .4byte gUnknown_2022BC4  _08032198: .4byte gActiveBattler -_0803219C: .4byte gUnknown_2024018 +_0803219C: .4byte gBattleSpritesDataPtr  _080321A0: .4byte gUnknown_3004FE0  _080321A4: .4byte sub_80321F0  _080321A8: @@ -7612,7 +7612,7 @@ _080321A8:  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _080321EC @ =gUnknown_3004FF0 +	ldr r1, _080321EC @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -7625,13 +7625,13 @@ _080321DE:  	.align 2, 0  _080321E4: .4byte gBattlerSpriteIds  _080321E8: .4byte gSprites -_080321EC: .4byte gUnknown_3004FF0 +_080321EC: .4byte gHealthboxSpriteIds  	thumb_func_end PlayerHandleReturnPokeToBall  	thumb_func_start sub_80321F0  sub_80321F0: @ 80321F0  	push {r4-r6,lr} -	ldr r6, _08032210 @ =gUnknown_2024018 +	ldr r6, _08032210 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _08032214 @ =gActiveBattler  	ldrb r2, [r5] @@ -7647,7 +7647,7 @@ sub_80321F0: @ 80321F0  	beq _08032246  	b _0803226E  	.align 2, 0 -_08032210: .4byte gUnknown_2024018 +_08032210: .4byte gBattleSpritesDataPtr  _08032214: .4byte gActiveBattler  _08032218:  	ldr r1, [r4] @@ -8164,7 +8164,7 @@ _0803264C: .4byte sub_802F7A0  	thumb_func_start sub_8032650  sub_8032650: @ 8032650  	push {r4-r6,lr} -	ldr r6, _0803269C @ =gUnknown_2024018 +	ldr r6, _0803269C @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _080326A0 @ =gActiveBattler  	ldrb r2, [r5] @@ -8201,7 +8201,7 @@ _08032684:  	strb r1, [r0, 0x4]  	b _0803271A  	.align 2, 0 -_0803269C: .4byte gUnknown_2024018 +_0803269C: .4byte gBattleSpritesDataPtr  _080326A0: .4byte gActiveBattler  _080326A4:  	ldrb r1, [r3] @@ -8296,7 +8296,7 @@ PlayerHandlePaletteFade: @ 803273C  	thumb_func_start sub_803275C  sub_803275C: @ 803275C  	push {r4,r5,lr} -	ldr r0, _0803279C @ =gUnknown_2024018 +	ldr r0, _0803279C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x8]  	movs r0, 0x4 @@ -8325,7 +8325,7 @@ sub_803275C: @ 803275C  	pop {r0}  	bx r0  	.align 2, 0 -_0803279C: .4byte gUnknown_2024018 +_0803279C: .4byte gBattleSpritesDataPtr  _080327A0: .4byte gUnknown_2024005  _080327A4: .4byte gActiveBattler  _080327A8: .4byte gUnknown_3004FE0 @@ -8342,7 +8342,7 @@ PlayerHandleBallThrowAnim: @ 80327B0  	adds r1, 0x1  	adds r0, r1  	ldrb r1, [r0] -	ldr r0, _08032800 @ =gUnknown_2024018 +	ldr r0, _08032800 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	strb r1, [r0, 0x8] @@ -8371,7 +8371,7 @@ PlayerHandleBallThrowAnim: @ 80327B0  	.align 2, 0  _080327F8: .4byte gUnknown_2022BC4  _080327FC: .4byte gActiveBattler -_08032800: .4byte gUnknown_2024018 +_08032800: .4byte gBattleSpritesDataPtr  _08032804: .4byte gUnknown_2024005  _08032808: .4byte gUnknown_3004FE0  _0803280C: .4byte CompleteOnSpecialAnimDone @@ -8503,7 +8503,7 @@ _08032852:  	adds r1, 0x10  	adds r2, r1  	str r2, [r3] -	ldr r3, _08032944 @ =gUnknown_2024008 +	ldr r3, _08032944 @ =gTransformedPersonalities  	ldrb r1, [r6]  	lsls r1, 2  	adds r1, r3 @@ -8526,9 +8526,9 @@ _08032934: .4byte gAnimMoveDmg  _08032938: .4byte gUnknown_2037EFE  _0803293C: .4byte gUnknown_2037F00  _08032940: .4byte gAnimDisableStructPtr -_08032944: .4byte gUnknown_2024008 +_08032944: .4byte gTransformedPersonalities  _08032948: -	ldr r0, _0803296C @ =gUnknown_2024018 +	ldr r0, _0803296C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r6]  	ldr r2, [r0, 0x4] @@ -8548,7 +8548,7 @@ _08032966:  	pop {r0}  	bx r0  	.align 2, 0 -_0803296C: .4byte gUnknown_2024018 +_0803296C: .4byte gBattleSpritesDataPtr  _08032970: .4byte gUnknown_3004FE0  _08032974: .4byte sub_8032978  	thumb_func_end PlayerHandleMoveAnimation @@ -8578,7 +8578,7 @@ sub_8032978: @ 8032978  	adds r1, r2  	ldrb r1, [r1]  	mov r8, r1 -	ldr r7, _080329CC @ =gUnknown_2024018 +	ldr r7, _080329CC @ =gBattleSpritesDataPtr  	ldr r5, [r7]  	ldr r1, [r5, 0x4]  	lsls r0, r3, 1 @@ -8596,7 +8596,7 @@ sub_8032978: @ 8032978  	.align 2, 0  _080329C4: .4byte gUnknown_2022BC4  _080329C8: .4byte gActiveBattler -_080329CC: .4byte gUnknown_2024018 +_080329CC: .4byte gBattleSpritesDataPtr  _080329D0:  	cmp r2, 0x2  	beq _08032A3A @@ -8652,10 +8652,10 @@ _08032A10:  	strb r1, [r0, 0x4]  	b _08032AEC  _08032A3A: -	ldr r0, _08032AA0 @ =gUnknown_2037EDC +	ldr r0, _08032AA0 @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _08032AA4 @ =gUnknown_2037EE1 +	ldr r0, _08032AA4 @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _08032AEC @@ -8689,7 +8689,7 @@ _08032A3A:  	ands r0, r2  	strb r0, [r1]  _08032A88: -	ldr r0, _08032AA8 @ =gUnknown_2024018 +	ldr r0, _08032AA8 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08032AAC @ =gActiveBattler  	ldrb r1, [r0] @@ -8702,9 +8702,9 @@ _08032A88:  	strb r1, [r0, 0x4]  	b _08032AEC  	.align 2, 0 -_08032AA0: .4byte gUnknown_2037EDC -_08032AA4: .4byte gUnknown_2037EE1 -_08032AA8: .4byte gUnknown_2024018 +_08032AA0: .4byte gAnimScriptCallback +_08032AA4: .4byte gAnimScriptActive +_08032AA8: .4byte gBattleSpritesDataPtr  _08032AAC: .4byte gActiveBattler  _08032AB0:  	ldrb r1, [r0] @@ -9198,7 +9198,7 @@ sub_8032E4C: @ 8032E4C  	adds r3, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r1, _08032ED8 @ =gUnknown_3004FF0 +	ldr r1, _08032ED8 @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r7, [sp] @@ -9211,7 +9211,7 @@ _08032EC8: .4byte gActiveBattler  _08032ECC: .4byte 0x00007fff  _08032ED0: .4byte gBattlerPartyIndexes  _08032ED4: .4byte gPlayerParty -_08032ED8: .4byte gUnknown_3004FF0 +_08032ED8: .4byte gHealthboxSpriteIds  _08032EDC:  	ldr r1, _08032F34 @ =gBattlerPartyIndexes  	lsls r0, r4, 1 @@ -9226,7 +9226,7 @@ _08032EDC:  	adds r2, r0, 0  	mov r1, r9  	ldrb r0, [r1] -	ldr r4, _08032F3C @ =gUnknown_3004FF0 +	ldr r4, _08032F3C @ =gHealthboxSpriteIds  	adds r1, r0, r4  	ldrb r1, [r1]  	str r7, [sp] @@ -9257,7 +9257,7 @@ _08032F16:  	.align 2, 0  _08032F34: .4byte gBattlerPartyIndexes  _08032F38: .4byte gPlayerParty -_08032F3C: .4byte gUnknown_3004FF0 +_08032F3C: .4byte gHealthboxSpriteIds  _08032F40: .4byte gUnknown_3004FE0  _08032F44: .4byte gActiveBattler  _08032F48: .4byte CompleteOnHealthbarDone @@ -9345,7 +9345,7 @@ sub_8032FE8: @ 8032FE8  	lsls r0, 24  	cmp r0, 0  	bne _0803303C -	ldr r0, _08033048 @ =gUnknown_3004FF0 +	ldr r0, _08033048 @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r0  	ldrb r0, [r0] @@ -9360,7 +9360,7 @@ sub_8032FE8: @ 8032FE8  	movs r2, 0x9  	bl UpdateHealthboxAttribute  	ldrb r2, [r4] -	ldr r0, _08033054 @ =gUnknown_2024018 +	ldr r0, _08033054 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x4]  	lsls r1, r2, 1 @@ -9384,10 +9384,10 @@ _0803303C:  	bx r0  	.align 2, 0  _08033044: .4byte gActiveBattler -_08033048: .4byte gUnknown_3004FF0 +_08033048: .4byte gHealthboxSpriteIds  _0803304C: .4byte gBattlerPartyIndexes  _08033050: .4byte gPlayerParty -_08033054: .4byte gUnknown_2024018 +_08033054: .4byte gBattleSpritesDataPtr  _08033058: .4byte gUnknown_3004FE0  _0803305C: .4byte CompleteOnFinishedStatusAnimation  	thumb_func_end sub_8032FE8 @@ -9913,7 +9913,7 @@ PlayerHandleIntroSlide: @ 8033444  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _08033474 @ =gUnknown_2023F4C +	ldr r2, _08033474 @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -9924,7 +9924,7 @@ PlayerHandleIntroSlide: @ 8033444  	.align 2, 0  _0803346C: .4byte gUnknown_2022BC4  _08033470: .4byte gActiveBattler -_08033474: .4byte gUnknown_2023F4C +_08033474: .4byte gIntroSlideFlags  	thumb_func_end PlayerHandleIntroSlide  	thumb_func_start PlayerHandleIntroTrainerBallThrow @@ -10046,7 +10046,7 @@ PlayerHandleIntroTrainerBallThrow: @ 8033478  	adds r1, r4  	ldrb r0, [r7]  	strh r0, [r1, 0x8] -	ldr r3, _080335E4 @ =gUnknown_2024018 +	ldr r3, _080335E4 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r2, [r7]  	ldr r1, [r0, 0x4] @@ -10096,7 +10096,7 @@ _080335D4: .4byte gUnknown_8239FD4  _080335D8: .4byte gSaveBlock2Ptr  _080335DC: .4byte task05_08033660  _080335E0: .4byte gTasks -_080335E4: .4byte gUnknown_2024018 +_080335E4: .4byte gBattleSpritesDataPtr  _080335E8: .4byte gUnknown_2024000  _080335EC: .4byte sub_80491B0  _080335F0: .4byte gUnknown_3004FE0 @@ -10128,7 +10128,7 @@ sub_80335F8: @ 80335F8  	ldr r1, _08033654 @ =gPlayerParty  	adds r0, r1  	adds r1, r4, 0 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldr r0, _08033658 @ =gBattlerSpriteIds  	adds r4, r0  	ldrb r1, [r4] @@ -10179,7 +10179,7 @@ _0803368C:  	mov r9, r0  	ldrh r0, [r1, 0x8]  	strb r0, [r7] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080336AC @@ -10242,7 +10242,7 @@ _080336DC:  	muls r0, r2  	ldr r2, _0803375C @ =gPlayerParty  	adds r0, r2 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldrb r0, [r7]  	movs r1, 0  	bl sub_8031FF4 @@ -10300,7 +10300,7 @@ PlayerHandleDrawPartyStatusSummary: @ 803376C  _08033794: .4byte gUnknown_2022BC4  _08033798: .4byte gActiveBattler  _0803379C: -	ldr r6, _08033818 @ =gUnknown_2024018 +	ldr r6, _08033818 @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r5, _0803381C @ =gActiveBattler  	ldrb r1, [r5] @@ -10363,7 +10363,7 @@ _08033810:  	pop {r0}  	bx r0  	.align 2, 0 -_08033818: .4byte gUnknown_2024018 +_08033818: .4byte gBattleSpritesDataPtr  _0803381C: .4byte gActiveBattler  _08033820: .4byte gUnknown_2022BC8  _08033824: .4byte gUnknown_2024000 @@ -10374,7 +10374,7 @@ _0803382C: .4byte sub_8033830  	thumb_func_start sub_8033830  sub_8033830: @ 8033830  	push {r4,lr} -	ldr r4, _08033870 @ =gUnknown_2024018 +	ldr r4, _08033870 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r3, _08033874 @ =gActiveBattler  	ldrb r1, [r3] @@ -10405,14 +10405,14 @@ _08033868:  	pop {r0}  	bx r0  	.align 2, 0 -_08033870: .4byte gUnknown_2024018 +_08033870: .4byte gBattleSpritesDataPtr  _08033874: .4byte gActiveBattler  	thumb_func_end sub_8033830  	thumb_func_start PlayerHandleCmd49  PlayerHandleCmd49: @ 8033878  	push {lr} -	ldr r0, _080338B4 @ =gUnknown_2024018 +	ldr r0, _080338B4 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080338B8 @ =gActiveBattler  	ldrb r3, [r0] @@ -10441,7 +10441,7 @@ _080338AA:  	pop {r0}  	bx r0  	.align 2, 0 -_080338B4: .4byte gUnknown_2024018 +_080338B4: .4byte gBattleSpritesDataPtr  _080338B8: .4byte gActiveBattler  _080338BC: .4byte gTasks  _080338C0: .4byte gUnknown_2024000 @@ -10471,7 +10471,7 @@ PlayerHandleSpriteInvisibility: @ 80338EC  	push {r4,lr}  	ldr r4, _0803393C @ =gActiveBattler  	ldrb r0, [r4] -	bl sub_8075224 +	bl IsBattlerSpritePresent  	lsls r0, 24  	cmp r0, 0  	beq _08033932 diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s index 8f42aa9eb..72e71cf23 100644 --- a/asm/battle_controller_pokedude.s +++ b/asm/battle_controller_pokedude.s @@ -147,7 +147,7 @@ sub_8156184: @ 8156184  	ldrsh r0, [r1, r4]  	cmp r0, 0  	bne _08156230 -	ldr r6, _081561EC @ =gUnknown_2024018 +	ldr r6, _081561EC @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r1, [r0, 0x4]  	lsls r4, r3, 1 @@ -173,7 +173,7 @@ sub_8156184: @ 8156184  _081561E0: .4byte gSprites  _081561E4: .4byte gBattlerSpriteIds  _081561E8: .4byte gActiveBattler -_081561EC: .4byte gUnknown_2024018 +_081561EC: .4byte gBattleSpritesDataPtr  _081561F0: .4byte gBattlerPartyIndexes  _081561F4: .4byte gEnemyParty  _081561F8: @@ -259,7 +259,7 @@ _08156290: .4byte gUnknown_3004F80  	thumb_func_start sub_8156294  sub_8156294: @ 8156294  	push {r4,lr} -	ldr r0, _081562DC @ =gUnknown_2024018 +	ldr r0, _081562DC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r4, _081562E0 @ =gActiveBattler  	ldrb r1, [r4] @@ -292,7 +292,7 @@ _081562D4:  	pop {r0}  	bx r0  	.align 2, 0 -_081562DC: .4byte gUnknown_2024018 +_081562DC: .4byte gBattleSpritesDataPtr  _081562E0: .4byte gActiveBattler  _081562E4: .4byte c3_0802FDF4  _081562E8: .4byte gBattlerPartyIndexes @@ -303,7 +303,7 @@ _081562EC: .4byte gPlayerParty  sub_81562F0: @ 81562F0  	push {r4-r6,lr}  	ldr r2, _08156388 @ =gSprites -	ldr r0, _0815638C @ =gUnknown_3004FF0 +	ldr r0, _0815638C @ =gHealthboxSpriteIds  	ldr r6, _08156390 @ =gActiveBattler  	ldrb r3, [r6]  	adds r0, r3, r0 @@ -317,7 +317,7 @@ sub_81562F0: @ 81562F0  	ldr r0, _08156394 @ =SpriteCallbackDummy  	cmp r1, r0  	bne _08156380 -	ldr r5, _08156398 @ =gUnknown_2024018 +	ldr r5, _08156398 @ =gBattleSpritesDataPtr  	ldr r0, [r5]  	ldr r1, [r0, 0x4]  	lsls r0, r3, 1 @@ -377,10 +377,10 @@ _08156380:  	bx r0  	.align 2, 0  _08156388: .4byte gSprites -_0815638C: .4byte gUnknown_3004FF0 +_0815638C: .4byte gHealthboxSpriteIds  _08156390: .4byte gActiveBattler  _08156394: .4byte SpriteCallbackDummy -_08156398: .4byte gUnknown_2024018 +_08156398: .4byte gBattleSpritesDataPtr  _0815639C: .4byte 0x000027f9  _081563A0: .4byte gUnknown_3004FE0  _081563A4: .4byte sub_8156294 @@ -389,7 +389,7 @@ _081563A4: .4byte sub_8156294  	thumb_func_start sub_81563A8  sub_81563A8: @ 81563A8  	push {r4-r6,lr} -	ldr r6, _0815645C @ =gUnknown_2024018 +	ldr r6, _0815645C @ =gBattleSpritesDataPtr  	ldr r0, [r6]  	ldr r5, _08156460 @ =gActiveBattler  	ldrb r2, [r5] @@ -441,7 +441,7 @@ _081563DA:  	bne _08156454  	adds r0, r3, r4  	bl DestroySprite -	ldr r4, _08156478 @ =gUnknown_3004FF0 +	ldr r4, _08156478 @ =gHealthboxSpriteIds  	ldrb r1, [r5]  	adds r0, r1, r4  	ldrb r0, [r0] @@ -474,14 +474,14 @@ _08156454:  	pop {r0}  	bx r0  	.align 2, 0 -_0815645C: .4byte gUnknown_2024018 +_0815645C: .4byte gBattleSpritesDataPtr  _08156460: .4byte gActiveBattler  _08156464: .4byte gBattlerPartyIndexes  _08156468: .4byte gPlayerParty  _0815646C: .4byte gSprites  _08156470: .4byte gUnknown_3004FFC  _08156474: .4byte SpriteCallbackDummy -_08156478: .4byte gUnknown_3004FF0 +_08156478: .4byte gHealthboxSpriteIds  _0815647C: .4byte gUnknown_3004FE0  _08156480: .4byte sub_81562F0  	thumb_func_end sub_81563A8 @@ -504,7 +504,7 @@ _08156498: .4byte gUnknown_2024005  	thumb_func_start sub_815649C  sub_815649C: @ 815649C  	push {r4,lr} -	ldr r4, _081564DC @ =gUnknown_2024018 +	ldr r4, _081564DC @ =gBattleSpritesDataPtr  	ldr r1, [r4]  	ldr r3, _081564E0 @ =gActiveBattler  	ldrb r0, [r3] @@ -535,7 +535,7 @@ _081564D4:  	pop {r0}  	bx r0  	.align 2, 0 -_081564DC: .4byte gUnknown_2024018 +_081564DC: .4byte gBattleSpritesDataPtr  _081564E0: .4byte gActiveBattler  	thumb_func_end sub_815649C @@ -698,7 +698,7 @@ _08156620: .4byte gSpecialVar_ItemId  	thumb_func_start sub_8156624  sub_8156624: @ 8156624  	push {r4-r7,lr} -	ldr r4, _08156788 @ =gUnknown_2024018 +	ldr r4, _08156788 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r5, _0815678C @ =gActiveBattler  	ldrb r2, [r5] @@ -772,7 +772,7 @@ _0815668A:  	ands r0, r1  	cmp r0, 0  	bne _08156780 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0815671E @@ -793,7 +793,7 @@ _0815668A:  	ldr r1, _081567A0 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r4, _081567A4 @ =gUnknown_3004FF0 +	ldr r4, _081567A4 @ =gHealthboxSpriteIds  	ldrb r0, [r5]  	adds r1, r6, 0  	eors r1, r0 @@ -829,7 +829,7 @@ _0815671E:  	ldr r1, _081567A0 @ =gSprites  	adds r0, r1  	bl DestroySprite -	ldr r5, _081567A4 @ =gUnknown_3004FF0 +	ldr r5, _081567A4 @ =gHealthboxSpriteIds  	ldrb r1, [r4]  	adds r0, r1, r5  	ldrb r0, [r0] @@ -849,7 +849,7 @@ _0815671E:  	adds r0, r5  	ldrb r0, [r0]  	bl SetHealthboxSpriteVisible -	ldr r0, _08156788 @ =gUnknown_2024018 +	ldr r0, _08156788 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r2, [r0, 0x8]  	ldrb r1, [r2, 0x9] @@ -868,14 +868,14 @@ _08156780:  	pop {r0}  	bx r0  	.align 2, 0 -_08156788: .4byte gUnknown_2024018 +_08156788: .4byte gBattleSpritesDataPtr  _0815678C: .4byte gActiveBattler  _08156790: .4byte gBattlerPartyIndexes  _08156794: .4byte gPlayerParty  _08156798: .4byte gBattleTypeFlags  _0815679C: .4byte gUnknown_3004FFC  _081567A0: .4byte gSprites -_081567A4: .4byte gUnknown_3004FF0 +_081567A4: .4byte gHealthboxSpriteIds  _081567A8: .4byte gUnknown_3004FE0  _081567AC: .4byte sub_81567B0  	thumb_func_end sub_8156624 @@ -887,7 +887,7 @@ sub_81567B0: @ 81567B0  	push {r7}  	movs r4, 0  	ldr r2, _081568B0 @ =gSprites -	ldr r0, _081568B4 @ =gUnknown_3004FF0 +	ldr r0, _081568B4 @ =gHealthboxSpriteIds  	ldr r1, _081568B8 @ =gActiveBattler  	mov r8, r1  	ldrb r3, [r1] @@ -906,7 +906,7 @@ sub_81567B0: @ 81567B0  _081567DA:  	cmp r4, 0  	beq _081568A6 -	ldr r7, _081568C0 @ =gUnknown_2024018 +	ldr r7, _081568C0 @ =gBattleSpritesDataPtr  	ldr r0, [r7]  	ldr r4, [r0, 0x4]  	lsls r0, r3, 1 @@ -1010,10 +1010,10 @@ _081568A6:  	bx r0  	.align 2, 0  _081568B0: .4byte gSprites -_081568B4: .4byte gUnknown_3004FF0 +_081568B4: .4byte gHealthboxSpriteIds  _081568B8: .4byte gActiveBattler  _081568BC: .4byte SpriteCallbackDummy -_081568C0: .4byte gUnknown_2024018 +_081568C0: .4byte gBattleSpritesDataPtr  _081568C4: .4byte 0x000027f9  _081568C8: .4byte c3_0802FDF4  _081568CC: .4byte gBattlerPartyIndexes @@ -1046,7 +1046,7 @@ sub_81568DC: @ 81568DC  	str r7, [sp, 0x8]  	ldrh r2, [r1, 0xA]  	str r2, [sp, 0xC] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1123,7 +1123,7 @@ _08156922:  	movs r1, 0xB  	bl EmitTwoReturnValues  	strb r5, [r4] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1270,7 +1270,7 @@ sub_8156A54: @ 8156A54  	adds r4, r6  	ldr r2, [r4]  	subs r2, r1 -	ldr r0, _08156B1C @ =gUnknown_3004FF0 +	ldr r0, _08156B1C @ =gHealthboxSpriteIds  	add r0, r10  	ldrb r1, [r0]  	mov r0, r9 @@ -1296,7 +1296,7 @@ _08156B0C: .4byte gTasks  _08156B10: .4byte gPlayerParty  _08156B14: .4byte gExperienceTables  _08156B18: .4byte gBaseStats -_08156B1C: .4byte gUnknown_3004FF0 +_08156B1C: .4byte gHealthboxSpriteIds  _08156B20: .4byte sub_8156B24  	thumb_func_end sub_8156A54 @@ -1332,7 +1332,7 @@ _08156B54:  	ldrh r2, [r6, 0xA]  	mov r10, r2  	ldrb r7, [r6, 0xC] -	ldr r5, _08156C1C @ =gUnknown_3004FF0 +	ldr r5, _08156C1C @ =gHealthboxSpriteIds  	adds r5, r7, r5  	ldrb r1, [r5]  	adds r0, r7, 0 @@ -1419,7 +1419,7 @@ _08156B54:  	str r0, [r6]  	b _08156C50  	.align 2, 0 -_08156C1C: .4byte gUnknown_3004FF0 +_08156C1C: .4byte gHealthboxSpriteIds  _08156C20: .4byte gPlayerParty  _08156C24: .4byte gExperienceTables  _08156C28: .4byte gBaseStats @@ -1464,7 +1464,7 @@ sub_8156C68: @ 8156C68  	adds r0, r1  	ldrb r4, [r0, 0xC]  	ldrb r6, [r0, 0x8] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1512,7 +1512,7 @@ sub_8156CC8: @ 8156CC8  	lsls r0, 3  	adds r2, r0, r1  	ldrb r5, [r2, 0xC] -	ldr r0, _08156D38 @ =gUnknown_2024018 +	ldr r0, _08156D38 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x4]  	lsls r0, r5, 1 @@ -1533,7 +1533,7 @@ sub_8156CC8: @ 8156CC8  	adds r0, r7, 0  	movs r1, 0x38  	bl GetMonData -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1547,7 +1547,7 @@ sub_8156CC8: @ 8156CC8  	ldrh r0, [r0]  	cmp r4, r0  	bne _08156D48 -	ldr r0, _08156D44 @ =gUnknown_3004FF0 +	ldr r0, _08156D44 @ =gHealthboxSpriteIds  	adds r0, r2, r0  	ldrb r0, [r0]  	adds r1, r7, 0 @@ -1556,12 +1556,12 @@ sub_8156CC8: @ 8156CC8  	b _08156D5C  	.align 2, 0  _08156D34: .4byte gTasks -_08156D38: .4byte gUnknown_2024018 +_08156D38: .4byte gBattleSpritesDataPtr  _08156D3C: .4byte gPlayerParty  _08156D40: .4byte gBattlerPartyIndexes -_08156D44: .4byte gUnknown_3004FF0 +_08156D44: .4byte gHealthboxSpriteIds  _08156D48: -	ldr r0, _08156D70 @ =gUnknown_3004FF0 +	ldr r0, _08156D70 @ =gHealthboxSpriteIds  	adds r0, r5, r0  	ldrb r0, [r0]  	movs r1, 0x64 @@ -1583,7 +1583,7 @@ _08156D6A:  	pop {r0}  	bx r0  	.align 2, 0 -_08156D70: .4byte gUnknown_3004FF0 +_08156D70: .4byte gHealthboxSpriteIds  _08156D74: .4byte gPlayerParty  _08156D78: .4byte gTasks  _08156D7C: .4byte sub_8156D80 @@ -1662,7 +1662,7 @@ sub_8156DCC: @ 8156DCC  	lsls r0, 2  	adds r0, r6  	bl DestroySprite -	ldr r1, _08156E38 @ =gUnknown_3004FF0 +	ldr r1, _08156E38 @ =gHealthboxSpriteIds  	ldrb r0, [r4]  	adds r0, r1  	ldrb r0, [r0] @@ -1673,7 +1673,7 @@ sub_8156DCC: @ 8156DCC  _08156E2C: .4byte gActiveBattler  _08156E30: .4byte gSprites  _08156E34: .4byte gBattlerSpriteIds -_08156E38: .4byte gUnknown_3004FF0 +_08156E38: .4byte gHealthboxSpriteIds  _08156E3C:  	ldr r2, _08156E6C @ =gSprites  	ldr r0, _08156E70 @ =gBattlerSpriteIds @@ -1689,7 +1689,7 @@ _08156E3C:  	lsls r0, 31  	cmp r0, 0  	bne _08156E66 -	ldr r0, _08156E74 @ =gUnknown_3004FF0 +	ldr r0, _08156E74 @ =gHealthboxSpriteIds  	adds r0, r3, r0  	ldrb r0, [r0]  	bl SetHealthboxSpriteInvisible @@ -1701,7 +1701,7 @@ _08156E66:  	.align 2, 0  _08156E6C: .4byte gSprites  _08156E70: .4byte gBattlerSpriteIds -_08156E74: .4byte gUnknown_3004FF0 +_08156E74: .4byte gHealthboxSpriteIds  	thumb_func_end sub_8156DCC  	thumb_func_start sub_8156E78 @@ -1709,7 +1709,7 @@ sub_8156E78: @ 8156E78  	push {r4-r6,lr}  	ldr r5, _08156EB8 @ =gActiveBattler  	ldrb r0, [r5] -	ldr r6, _08156EBC @ =gUnknown_3004FF0 +	ldr r6, _08156EBC @ =gHealthboxSpriteIds  	adds r1, r0, r6  	ldrb r1, [r1]  	movs r2, 0 @@ -1736,7 +1736,7 @@ sub_8156E78: @ 8156E78  	b _08156EDA  	.align 2, 0  _08156EB8: .4byte gActiveBattler -_08156EBC: .4byte gUnknown_3004FF0 +_08156EBC: .4byte gHealthboxSpriteIds  _08156EC0:  	ldr r2, _08156EE0 @ =gBattlerPartyIndexes  	ldrb r1, [r5] @@ -1839,7 +1839,7 @@ _08156F76:  	thumb_func_start sub_8156F7C  sub_8156F7C: @ 8156F7C  	push {r4-r6,lr} -	ldr r0, _08156FD8 @ =gUnknown_2024018 +	ldr r0, _08156FD8 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _08156FDC @ =gActiveBattler  	ldrb r2, [r6] @@ -1870,7 +1870,7 @@ sub_8156F7C: @ 8156F7C  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _08156FE8 @ =gUnknown_3004FF0 +	ldr r1, _08156FE8 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -1881,11 +1881,11 @@ _08156FD0:  	pop {r0}  	bx r0  	.align 2, 0 -_08156FD8: .4byte gUnknown_2024018 +_08156FD8: .4byte gBattleSpritesDataPtr  _08156FDC: .4byte gActiveBattler  _08156FE0: .4byte gBattlerSpriteIds  _08156FE4: .4byte gSprites -_08156FE8: .4byte gUnknown_3004FF0 +_08156FE8: .4byte gHealthboxSpriteIds  	thumb_func_end sub_8156F7C  	thumb_func_start sub_8156FEC @@ -1920,7 +1920,7 @@ _08157020: .4byte SpriteCallbackDummy  	thumb_func_start sub_8157024  sub_8157024: @ 8157024  	push {lr} -	ldr r0, _0815704C @ =gUnknown_2024018 +	ldr r0, _0815704C @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08157050 @ =gActiveBattler  	ldrb r1, [r0] @@ -1939,14 +1939,14 @@ _08157046:  	pop {r0}  	bx r0  	.align 2, 0 -_0815704C: .4byte gUnknown_2024018 +_0815704C: .4byte gBattleSpritesDataPtr  _08157050: .4byte gActiveBattler  	thumb_func_end sub_8157024  	thumb_func_start sub_8157054  sub_8157054: @ 8157054  	push {lr} -	ldr r0, _0815707C @ =gUnknown_2024018 +	ldr r0, _0815707C @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08157080 @ =gActiveBattler  	ldrb r1, [r0] @@ -1965,7 +1965,7 @@ _08157076:  	pop {r0}  	bx r0  	.align 2, 0 -_0815707C: .4byte gUnknown_2024018 +_0815707C: .4byte gBattleSpritesDataPtr  _08157080: .4byte gActiveBattler  	thumb_func_end sub_8157054 @@ -2029,7 +2029,7 @@ _081570F8: .4byte gBitTable  	thumb_func_start CompleteOnFinishedStatusAnimation_7  CompleteOnFinishedStatusAnimation_7: @ 81570FC  	push {lr} -	ldr r0, _08157124 @ =gUnknown_2024018 +	ldr r0, _08157124 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _08157128 @ =gActiveBattler  	ldrb r1, [r0] @@ -2048,7 +2048,7 @@ _0815711E:  	pop {r0}  	bx r0  	.align 2, 0 -_08157124: .4byte gUnknown_2024018 +_08157124: .4byte gBattleSpritesDataPtr  _08157128: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedStatusAnimation_7 @@ -3922,7 +3922,7 @@ sub_81580E0: @ 81580E0  	add r0, r10  	bl BattleLoadOpponentMonSpriteGfx  	ldrb r0, [r6] -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24 @@ -3937,7 +3937,7 @@ sub_81580E0: @ 81580E0  	mov r9, r0  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -4018,7 +4018,7 @@ sub_81580E0: @ 81580E0  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  	ldr r1, _08158234 @ =gUnknown_3004FE0  	ldrb r0, [r6]  	lsls r0, 2 @@ -4075,7 +4075,7 @@ sub_815823C: @ 815823C  	muls r0, r2  	ldr r2, _081582AC @ =gPlayerParty  	adds r0, r2 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	ldr r1, _081582B0 @ =gUnknown_2023FF8  	ldrb r0, [r5]  	adds r0, r1 @@ -4152,7 +4152,7 @@ _081582FC:  	lsls r0, 2  	adds r0, r4  	bl DestroySprite -	ldr r1, _08158340 @ =gUnknown_3004FF0 +	ldr r1, _08158340 @ =gHealthboxSpriteIds  	ldrb r0, [r6]  	adds r0, r1  	ldrb r0, [r0] @@ -4165,7 +4165,7 @@ _08158332:  	.align 2, 0  _08158338: .4byte gBattlerSpriteIds  _0815833C: .4byte gSprites -_08158340: .4byte gUnknown_3004FF0 +_08158340: .4byte gHealthboxSpriteIds  	thumb_func_end sub_81582C0  	thumb_func_start sub_8158344 @@ -4249,7 +4249,7 @@ _081583EC: .4byte 0x0000fffe  _081583F0:  	ldrb r1, [r7]  	movs r0, 0x84 -	bl sub_80346C4 +	bl DecompressTrainerFrontPic  	ldrb r0, [r7]  	bl GetBattlerPosition  	adds r1, r0, 0 @@ -4505,7 +4505,7 @@ sub_8158610: @ 8158610  	thumb_func_start sub_815861C  sub_815861C: @ 815861C  	push {r4-r6,lr} -	ldr r6, _08158668 @ =gUnknown_2024018 +	ldr r6, _08158668 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, _0815866C @ =gActiveBattler  	ldrb r2, [r5] @@ -4542,7 +4542,7 @@ _08158650:  	strb r1, [r0, 0x4]  	b _0815872A  	.align 2, 0 -_08158668: .4byte gUnknown_2024018 +_08158668: .4byte gBattleSpritesDataPtr  _0815866C: .4byte gActiveBattler  _08158670:  	ldrb r1, [r3] @@ -4656,7 +4656,7 @@ sub_8158748: @ 8158748  	thumb_func_start sub_8158754  sub_8158754: @ 8158754  	push {r4,r5,lr} -	ldr r0, _08158794 @ =gUnknown_2024018 +	ldr r0, _08158794 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x8]  	movs r0, 0x4 @@ -4685,7 +4685,7 @@ sub_8158754: @ 8158754  	pop {r0}  	bx r0  	.align 2, 0 -_08158794: .4byte gUnknown_2024018 +_08158794: .4byte gBattleSpritesDataPtr  _08158798: .4byte gUnknown_2024005  _0815879C: .4byte gActiveBattler  _081587A0: .4byte gUnknown_3004FE0 @@ -4702,7 +4702,7 @@ sub_81587A8: @ 81587A8  	adds r1, 0x1  	adds r0, r1  	ldrb r1, [r0] -	ldr r0, _081587F8 @ =gUnknown_2024018 +	ldr r0, _081587F8 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	strb r1, [r0, 0x8] @@ -4731,7 +4731,7 @@ sub_81587A8: @ 81587A8  	.align 2, 0  _081587F0: .4byte gUnknown_2022BC4  _081587F4: .4byte gActiveBattler -_081587F8: .4byte gUnknown_2024018 +_081587F8: .4byte gBattleSpritesDataPtr  _081587FC: .4byte gUnknown_2024005  _08158800: .4byte gUnknown_3004FE0  _08158804: .4byte sub_8156484 @@ -4837,7 +4837,7 @@ sub_8158814: @ 8158814  	adds r1, 0x10  	adds r2, r1  	str r2, [r3] -	ldr r3, _08158908 @ =gUnknown_2024008 +	ldr r3, _08158908 @ =gTransformedPersonalities  	ldrb r1, [r6]  	lsls r1, 2  	adds r1, r3 @@ -4860,9 +4860,9 @@ _081588F8: .4byte gAnimMoveDmg  _081588FC: .4byte gUnknown_2037EFE  _08158900: .4byte gUnknown_2037F00  _08158904: .4byte gAnimDisableStructPtr -_08158908: .4byte gUnknown_2024008 +_08158908: .4byte gTransformedPersonalities  _0815890C: -	ldr r0, _08158930 @ =gUnknown_2024018 +	ldr r0, _08158930 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldrb r1, [r6]  	ldr r2, [r0, 0x4] @@ -4882,7 +4882,7 @@ _0815892A:  	pop {r0}  	bx r0  	.align 2, 0 -_08158930: .4byte gUnknown_2024018 +_08158930: .4byte gBattleSpritesDataPtr  _08158934: .4byte gUnknown_3004FE0  _08158938: .4byte sub_815893C  	thumb_func_end sub_8158814 @@ -4907,7 +4907,7 @@ sub_815893C: @ 815893C  	ldrb r0, [r1]  	lsls r0, 8  	orrs r4, r0 -	ldr r7, _08158988 @ =gUnknown_2024018 +	ldr r7, _08158988 @ =gBattleSpritesDataPtr  	ldr r5, [r7]  	ldr r1, [r5, 0x4]  	lsls r0, r3, 1 @@ -4925,7 +4925,7 @@ sub_815893C: @ 815893C  	.align 2, 0  _08158980: .4byte gUnknown_2022BC4  _08158984: .4byte gActiveBattler -_08158988: .4byte gUnknown_2024018 +_08158988: .4byte gBattleSpritesDataPtr  _0815898C:  	cmp r2, 0x2  	beq _081589F0 @@ -4978,10 +4978,10 @@ _081589C6:  	strb r1, [r0, 0x4]  	b _08158A7C  _081589F0: -	ldr r0, _08158A38 @ =gUnknown_2037EDC +	ldr r0, _08158A38 @ =gAnimScriptCallback  	ldr r0, [r0]  	bl _call_via_r0 -	ldr r0, _08158A3C @ =gUnknown_2037EE1 +	ldr r0, _08158A3C @ =gAnimScriptActive  	ldrb r0, [r0]  	cmp r0, 0  	bne _08158A7C @@ -5013,8 +5013,8 @@ _08158A24:  	strb r1, [r0, 0x4]  	b _08158A7C  	.align 2, 0 -_08158A38: .4byte gUnknown_2037EDC -_08158A3C: .4byte gUnknown_2037EE1 +_08158A38: .4byte gAnimScriptCallback +_08158A3C: .4byte gAnimScriptActive  _08158A40:  	ldrb r1, [r0]  	movs r0, 0x40 @@ -5519,7 +5519,7 @@ _08158E18:  	bl GetMonData  	adds r3, r0, 0  	ldrb r0, [r7] -	ldr r1, _08158E7C @ =gUnknown_3004FF0 +	ldr r1, _08158E7C @ =gHealthboxSpriteIds  	adds r1, r0, r1  	ldrb r1, [r1]  	str r6, [sp] @@ -5532,14 +5532,14 @@ _08158E6C: .4byte gEnemyParty  _08158E70: .4byte gUnknown_2022BC4  _08158E74: .4byte gActiveBattler  _08158E78: .4byte 0x00007fff -_08158E7C: .4byte gUnknown_3004FF0 +_08158E7C: .4byte gHealthboxSpriteIds  _08158E80:  	adds r0, r5, 0  	movs r1, 0x3A  	bl GetMonData  	adds r2, r0, 0  	ldrb r0, [r7] -	ldr r4, _08158EC0 @ =gUnknown_3004FF0 +	ldr r4, _08158EC0 @ =gHealthboxSpriteIds  	adds r1, r0, r4  	ldrb r1, [r1]  	str r6, [sp] @@ -5564,7 +5564,7 @@ _08158EA8:  	pop {r0}  	bx r0  	.align 2, 0 -_08158EC0: .4byte gUnknown_3004FF0 +_08158EC0: .4byte gHealthboxSpriteIds  _08158EC4: .4byte gUnknown_3004FE0  _08158EC8: .4byte gActiveBattler  _08158ECC: .4byte sub_8156E78 @@ -5681,7 +5681,7 @@ _08158FA8:  	ldr r0, _08158FFC @ =gEnemyParty  _08158FB8:  	adds r2, r1, r0 -	ldr r1, _08159000 @ =gUnknown_3004FF0 +	ldr r1, _08159000 @ =gHealthboxSpriteIds  	ldr r4, _08159004 @ =gActiveBattler  	ldrb r0, [r4]  	adds r0, r1 @@ -5690,7 +5690,7 @@ _08158FB8:  	movs r2, 0x9  	bl UpdateHealthboxAttribute  	ldrb r2, [r4] -	ldr r0, _08159008 @ =gUnknown_2024018 +	ldr r0, _08159008 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x4]  	lsls r1, r2, 1 @@ -5715,9 +5715,9 @@ _08158FF2:  	.align 2, 0  _08158FF8: .4byte gBattlerPartyIndexes  _08158FFC: .4byte gEnemyParty -_08159000: .4byte gUnknown_3004FF0 +_08159000: .4byte gHealthboxSpriteIds  _08159004: .4byte gActiveBattler -_08159008: .4byte gUnknown_2024018 +_08159008: .4byte gBattleSpritesDataPtr  _0815900C: .4byte gUnknown_3004FE0  _08159010: .4byte sub_8157054  	thumb_func_end sub_8158F6C @@ -6102,7 +6102,7 @@ sub_81592D0: @ 81592D0  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _08159300 @ =gUnknown_2023F4C +	ldr r2, _08159300 @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -6113,7 +6113,7 @@ sub_81592D0: @ 81592D0  	.align 2, 0  _081592F8: .4byte gUnknown_2022BC4  _081592FC: .4byte gActiveBattler -_08159300: .4byte gUnknown_2023F4C +_08159300: .4byte gIntroSlideFlags  	thumb_func_end sub_81592D0  	thumb_func_start sub_8159304 @@ -6230,7 +6230,7 @@ sub_8159304: @ 8159304  	adds r1, r4  	ldrb r0, [r7]  	strh r0, [r1, 0x8] -	ldr r3, _08159464 @ =gUnknown_2024018 +	ldr r3, _08159464 @ =gBattleSpritesDataPtr  	ldr r0, [r3]  	ldrb r2, [r7]  	ldr r1, [r0, 0x4] @@ -6279,7 +6279,7 @@ _08159454: .4byte 0x0000d6f8  _08159458: .4byte gUnknown_8239FD4  _0815945C: .4byte sub_81595EC  _08159460: .4byte gTasks -_08159464: .4byte gUnknown_2024018 +_08159464: .4byte gBattleSpritesDataPtr  _08159468: .4byte gUnknown_2024000  _0815946C: .4byte sub_80491B0  _08159470: .4byte gUnknown_3004FE0 @@ -6296,7 +6296,7 @@ sub_8159478: @ 8159478  	adds r6, r0, 0  	lsls r6, 24  	lsrs r6, 24 -	ldr r0, _081595C0 @ =gUnknown_2024018 +	ldr r0, _081595C0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r6, 2 @@ -6341,12 +6341,12 @@ sub_8159478: @ 8159478  	mov r10, r0  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24  	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -6443,7 +6443,7 @@ sub_8159478: @ 8159478  	pop {r0}  	bx r0  	.align 2, 0 -_081595C0: .4byte gUnknown_2024018 +_081595C0: .4byte gBattleSpritesDataPtr  _081595C4: .4byte gBattlerPartyIndexes  _081595C8: .4byte gUnknown_2022BC4  _081595CC: .4byte gPlayerParty @@ -6537,7 +6537,7 @@ sub_8159660: @ 8159660  _08159688: .4byte gUnknown_2022BC4  _0815968C: .4byte gActiveBattler  _08159690: -	ldr r0, _081596D4 @ =gUnknown_2024018 +	ldr r0, _081596D4 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r5, _081596D8 @ =gActiveBattler  	ldrb r1, [r5] @@ -6571,7 +6571,7 @@ _081596CE:  	pop {r0}  	bx r0  	.align 2, 0 -_081596D4: .4byte gUnknown_2024018 +_081596D4: .4byte gBattleSpritesDataPtr  _081596D8: .4byte gActiveBattler  _081596DC: .4byte gUnknown_2022BC8  _081596E0: .4byte gUnknown_2024000 diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index 9e01ad2fd..634ca455d 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -302,7 +302,7 @@ _080DD772:  sub_80DD778: @ 80DD778  	push {lr}  	ldr r2, _080DD7A0 @ =gSprites -	ldr r1, _080DD7A4 @ =gUnknown_3004FF0 +	ldr r1, _080DD7A4 @ =gHealthboxSpriteIds  	ldr r0, _080DD7A8 @ =gActiveBattler  	ldrb r0, [r0]  	adds r0, r1 @@ -322,7 +322,7 @@ _080DD79C:  	bx r0  	.align 2, 0  _080DD7A0: .4byte gSprites -_080DD7A4: .4byte gUnknown_3004FF0 +_080DD7A4: .4byte gHealthboxSpriteIds  _080DD7A8: .4byte gActiveBattler  _080DD7AC: .4byte SpriteCallbackDummy  	thumb_func_end sub_80DD778 @@ -366,7 +366,7 @@ CompleteOnSpecialAnimDone_0: @ 80DD7F0  	ldrb r0, [r0]  	cmp r0, 0  	beq _080DD816 -	ldr r0, _080DD824 @ =gUnknown_2024018 +	ldr r0, _080DD824 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080DD828 @ =gActiveBattler  	ldrb r1, [r0] @@ -387,7 +387,7 @@ _080DD81A:  	bx r0  	.align 2, 0  _080DD820: .4byte gUnknown_2024005 -_080DD824: .4byte gUnknown_2024018 +_080DD824: .4byte gBattleSpritesDataPtr  _080DD828: .4byte gActiveBattler  	thumb_func_end CompleteOnSpecialAnimDone_0 @@ -449,7 +449,7 @@ _080DD894: .4byte gSpecialVar_ItemId  	thumb_func_start CompleteOnFinishedBattleAnimation_3  CompleteOnFinishedBattleAnimation_3: @ 80DD898  	push {lr} -	ldr r0, _080DD8C0 @ =gUnknown_2024018 +	ldr r0, _080DD8C0 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080DD8C4 @ =gActiveBattler  	ldrb r1, [r0] @@ -468,7 +468,7 @@ _080DD8BA:  	pop {r0}  	bx r0  	.align 2, 0 -_080DD8C0: .4byte gUnknown_2024018 +_080DD8C0: .4byte gBattleSpritesDataPtr  _080DD8C4: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedBattleAnimation_3 @@ -532,7 +532,7 @@ _080DD93C: .4byte gBitTable  	thumb_func_start CompleteOnFinishedStatusAnimation_3  CompleteOnFinishedStatusAnimation_3: @ 80DD940  	push {lr} -	ldr r0, _080DD968 @ =gUnknown_2024018 +	ldr r0, _080DD968 @ =gBattleSpritesDataPtr  	ldr r2, [r0]  	ldr r0, _080DD96C @ =gActiveBattler  	ldrb r1, [r0] @@ -551,7 +551,7 @@ _080DD962:  	pop {r0}  	bx r0  	.align 2, 0 -_080DD968: .4byte gUnknown_2024018 +_080DD968: .4byte gBattleSpritesDataPtr  _080DD96C: .4byte gActiveBattler  	thumb_func_end CompleteOnFinishedStatusAnimation_3 @@ -749,7 +749,7 @@ sub_80DDAC8: @ 80DDAC8  	thumb_func_start sub_80DDAD4  sub_80DDAD4: @ 80DDAD4  	push {r4,r5,lr} -	ldr r0, _080DDB14 @ =gUnknown_2024018 +	ldr r0, _080DDB14 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0x8]  	movs r0, 0x4 @@ -778,7 +778,7 @@ sub_80DDAD4: @ 80DDAD4  	pop {r0}  	bx r0  	.align 2, 0 -_080DDB14: .4byte gUnknown_2024018 +_080DDB14: .4byte gBattleSpritesDataPtr  _080DDB18: .4byte gUnknown_2024005  _080DDB1C: .4byte gActiveBattler  _080DDB20: .4byte gUnknown_3004FE0 @@ -795,7 +795,7 @@ sub_80DDB28: @ 80DDB28  	adds r1, 0x1  	adds r0, r1  	ldrb r1, [r0] -	ldr r0, _080DDB78 @ =gUnknown_2024018 +	ldr r0, _080DDB78 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	strb r1, [r0, 0x8] @@ -824,7 +824,7 @@ sub_80DDB28: @ 80DDB28  	.align 2, 0  _080DDB70: .4byte gUnknown_2022BC4  _080DDB74: .4byte gActiveBattler -_080DDB78: .4byte gUnknown_2024018 +_080DDB78: .4byte gBattleSpritesDataPtr  _080DDB7C: .4byte gUnknown_2024005  _080DDB80: .4byte gUnknown_3004FE0  _080DDB84: .4byte CompleteOnSpecialAnimDone_0 @@ -1081,7 +1081,7 @@ sub_80DDD68: @ 80DDD68  	thumb_func_start SafariHandleStatusIconUpdate  SafariHandleStatusIconUpdate: @ 80DDD74  	push {lr} -	ldr r0, _080DDDA0 @ =gUnknown_3004FF0 +	ldr r0, _080DDDA0 @ =gHealthboxSpriteIds  	ldr r1, _080DDDA4 @ =gActiveBattler  	ldrb r1, [r1]  	adds r0, r1, r0 @@ -1100,7 +1100,7 @@ SafariHandleStatusIconUpdate: @ 80DDD74  	pop {r0}  	bx r0  	.align 2, 0 -_080DDDA0: .4byte gUnknown_3004FF0 +_080DDDA0: .4byte gHealthboxSpriteIds  _080DDDA4: .4byte gActiveBattler  _080DDDA8: .4byte gBattlerPartyIndexes  _080DDDAC: .4byte gPlayerParty @@ -1332,7 +1332,7 @@ SafariHandleIntroSlide: @ 80DDF20  	adds r0, r1  	ldrb r0, [r0]  	bl sub_80BC3A0 -	ldr r2, _080DDF50 @ =gUnknown_2023F4C +	ldr r2, _080DDF50 @ =gIntroSlideFlags  	ldrh r0, [r2]  	movs r1, 0x1  	orrs r0, r1 @@ -1343,13 +1343,13 @@ SafariHandleIntroSlide: @ 80DDF20  	.align 2, 0  _080DDF48: .4byte gUnknown_2022BC4  _080DDF4C: .4byte gActiveBattler -_080DDF50: .4byte gUnknown_2023F4C +_080DDF50: .4byte gIntroSlideFlags  	thumb_func_end SafariHandleIntroSlide  	thumb_func_start SafariHandleIntroTrainerBallThrow  SafariHandleIntroTrainerBallThrow: @ 80DDF54  	push {r4,r5,lr} -	ldr r5, _080DDF98 @ =gUnknown_3004FF0 +	ldr r5, _080DDF98 @ =gHealthboxSpriteIds  	ldr r4, _080DDF9C @ =gActiveBattler  	ldrb r1, [r4]  	adds r0, r1, r5 @@ -1380,7 +1380,7 @@ SafariHandleIntroTrainerBallThrow: @ 80DDF54  	pop {r0}  	bx r0  	.align 2, 0 -_080DDF98: .4byte gUnknown_3004FF0 +_080DDF98: .4byte gHealthboxSpriteIds  _080DDF9C: .4byte gActiveBattler  _080DDFA0: .4byte gBattlerPartyIndexes  _080DDFA4: .4byte gPlayerParty diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s index 5337929a1..cf53430ad 100644 --- a/asm/battle_controllers.s +++ b/asm/battle_controllers.s @@ -54,7 +54,7 @@ sub_800D278: @ 800D278  	movs r3, 0  	ldr r1, _0800D2F0 @ =gUnknown_3004FE0  	mov r12, r1 -	ldr r7, _0800D2F4 @ =gUnknown_2023BD6 +	ldr r7, _0800D2F4 @ =gBattlerPositions  	movs r6, 0xFF  	ldr r5, _0800D2F8 @ =gUnknown_2023FF8  	ldr r4, _0800D2FC @ =gUnknown_2023FFC @@ -97,7 +97,7 @@ _0800D2E4: .4byte gUnknown_3004F84  _0800D2E8: .4byte nullsub_12  _0800D2EC: .4byte nullsub_13  _0800D2F0: .4byte gUnknown_3004FE0 -_0800D2F4: .4byte gUnknown_2023BD6 +_0800D2F4: .4byte gBattlerPositions  _0800D2F8: .4byte gUnknown_2023FF8  _0800D2FC: .4byte gUnknown_2023FFC  _0800D300: .4byte gUnknown_2023BC8 @@ -173,7 +173,7 @@ sub_800D364: @ 800D364  	ldr r2, _0800D3A4 @ =gUnknown_3004FE0  	ldr r1, _0800D3A8 @ =sub_81560A4  	str r1, [r2] -	ldr r0, _0800D3AC @ =gUnknown_2023BD6 +	ldr r0, _0800D3AC @ =gBattlerPositions  	strb r3, [r0]  	str r1, [r2, 0x4]  	strb r4, [r0, 0x1] @@ -186,7 +186,7 @@ _0800D39C: .4byte gUnknown_3004F84  _0800D3A0: .4byte sub_80123C0  _0800D3A4: .4byte gUnknown_3004FE0  _0800D3A8: .4byte sub_81560A4 -_0800D3AC: .4byte gUnknown_2023BD6 +_0800D3AC: .4byte gBattlerPositions  _0800D3B0: .4byte gBattlersCount  _0800D3B4:  	movs r0, 0x80 @@ -217,7 +217,7 @@ _0800D3E4:  _0800D3E8:  	str r0, [r1]  	adds r2, r1, 0 -	ldr r1, _0800D408 @ =gUnknown_2023BD6 +	ldr r1, _0800D408 @ =gBattlerPositions  	movs r0, 0  	strb r0, [r1]  	ldr r0, _0800D40C @ =sub_8035A7C @@ -230,7 +230,7 @@ _0800D3E8:  	.align 2, 0  _0800D400: .4byte gUnknown_3004FE0  _0800D404: .4byte SetBankFuncToPlayerBufferRunCommand -_0800D408: .4byte gUnknown_2023BD6 +_0800D408: .4byte gBattlerPositions  _0800D40C: .4byte sub_8035A7C  _0800D410: .4byte gBattlersCount  _0800D414: @@ -245,7 +245,7 @@ _0800D414:  	ldr r3, _0800D44C @ =gUnknown_3004FE0  	ldr r1, _0800D450 @ =sub_81560A4  	str r1, [r3] -	ldr r2, _0800D454 @ =gUnknown_2023BD6 +	ldr r2, _0800D454 @ =gBattlerPositions  	movs r0, 0  	strb r0, [r2]  	str r1, [r3, 0x4] @@ -262,12 +262,12 @@ _0800D444: .4byte gUnknown_3004F84  _0800D448: .4byte sub_80123C0  _0800D44C: .4byte gUnknown_3004FE0  _0800D450: .4byte sub_81560A4 -_0800D454: .4byte gUnknown_2023BD6 +_0800D454: .4byte gBattlerPositions  _0800D458:  	ldr r2, _0800D480 @ =gUnknown_3004FE0  	ldr r0, _0800D484 @ =SetBankFuncToPlayerBufferRunCommand  	str r0, [r2] -	ldr r1, _0800D488 @ =gUnknown_2023BD6 +	ldr r1, _0800D488 @ =gBattlerPositions  	strb r3, [r1]  	ldr r3, _0800D48C @ =sub_8035A7C  	str r3, [r2, 0x4] @@ -289,7 +289,7 @@ _0800D478:  	.align 2, 0  _0800D480: .4byte gUnknown_3004FE0  _0800D484: .4byte SetBankFuncToPlayerBufferRunCommand -_0800D488: .4byte gUnknown_2023BD6 +_0800D488: .4byte gBattlerPositions  _0800D48C: .4byte sub_8035A7C  _0800D490: .4byte gBattlersCount  	thumb_func_end sub_800D364 @@ -318,7 +318,7 @@ sub_800D494: @ 800D494  	ldr r2, _0800D4DC @ =gUnknown_3004FE0  	ldr r0, _0800D4E0 @ =SetBankFuncToPlayerBufferRunCommand  	str r0, [r2] -	ldr r1, _0800D4E4 @ =gUnknown_2023BD6 +	ldr r1, _0800D4E4 @ =gBattlerPositions  	strb r3, [r1]  	ldr r0, _0800D4E8 @ =sub_803A668  	str r0, [r2, 0x4] @@ -332,14 +332,14 @@ _0800D4D4: .4byte gUnknown_3004F84  _0800D4D8: .4byte sub_80123C0  _0800D4DC: .4byte gUnknown_3004FE0  _0800D4E0: .4byte SetBankFuncToPlayerBufferRunCommand -_0800D4E4: .4byte gUnknown_2023BD6 +_0800D4E4: .4byte gBattlerPositions  _0800D4E8: .4byte sub_803A668  _0800D4EC: .4byte gBattlersCount  _0800D4F0:  	ldr r2, _0800D508 @ =gUnknown_3004FE0  	ldr r0, _0800D50C @ =SetBankFuncToPlayerBufferRunCommand  	str r0, [r2, 0x4] -	ldr r1, _0800D510 @ =gUnknown_2023BD6 +	ldr r1, _0800D510 @ =gBattlerPositions  	strb r4, [r1, 0x1]  	ldr r0, _0800D514 @ =sub_803A668  	str r0, [r2] @@ -350,7 +350,7 @@ _0800D4F0:  	.align 2, 0  _0800D508: .4byte gUnknown_3004FE0  _0800D50C: .4byte SetBankFuncToPlayerBufferRunCommand -_0800D510: .4byte gUnknown_2023BD6 +_0800D510: .4byte gBattlerPositions  _0800D514: .4byte sub_803A668  _0800D518: .4byte gBattlersCount  _0800D51C: @@ -369,7 +369,7 @@ _0800D51C:  	ldr r2, _0800D55C @ =gUnknown_3004FE0  	ldr r4, _0800D560 @ =SetBankFuncToPlayerBufferRunCommand  	str r4, [r2] -	ldr r1, _0800D564 @ =gUnknown_2023BD6 +	ldr r1, _0800D564 @ =gBattlerPositions  	movs r0, 0  	strb r0, [r1]  	ldr r3, _0800D568 @ =sub_803A668 @@ -387,13 +387,13 @@ _0800D554: .4byte gUnknown_3004F84  _0800D558: .4byte sub_80123C0  _0800D55C: .4byte gUnknown_3004FE0  _0800D560: .4byte SetBankFuncToPlayerBufferRunCommand -_0800D564: .4byte gUnknown_2023BD6 +_0800D564: .4byte gBattlerPositions  _0800D568: .4byte sub_803A668  _0800D56C:  	ldr r2, _0800D590 @ =gUnknown_3004FE0  	ldr r0, _0800D594 @ =SetBankFuncToPlayerBufferRunCommand  	str r0, [r2, 0x4] -	ldr r1, _0800D598 @ =gUnknown_2023BD6 +	ldr r1, _0800D598 @ =gBattlerPositions  	strb r3, [r1, 0x1]  	ldr r3, _0800D59C @ =sub_803A668  	str r3, [r2] @@ -411,7 +411,7 @@ _0800D588:  	.align 2, 0  _0800D590: .4byte gUnknown_3004FE0  _0800D594: .4byte SetBankFuncToPlayerBufferRunCommand -_0800D598: .4byte gUnknown_2023BD6 +_0800D598: .4byte gBattlerPositions  _0800D59C: .4byte sub_803A668  _0800D5A0: .4byte gBattlersCount  _0800D5A4: @@ -431,7 +431,7 @@ _0800D5BC:  	mov r10, r0  	ldr r1, _0800D5EC @ =gLinkPlayers  	mov r12, r1 -	ldr r7, _0800D5F0 @ =gUnknown_2023BD6 +	ldr r7, _0800D5F0 @ =gBattlerPositions  	mov r8, r0  	ldr r6, _0800D5F4 @ =gBattlerPartyIndexes  	movs r4, 0 @@ -452,7 +452,7 @@ _0800D5D0:  _0800D5E4: .4byte gUnknown_3004F84  _0800D5E8: .4byte sub_80123C0  _0800D5EC: .4byte gLinkPlayers -_0800D5F0: .4byte gUnknown_2023BD6 +_0800D5F0: .4byte gBattlerPositions  _0800D5F4: .4byte gBattlerPartyIndexes  _0800D5F8:  	cmp r0, 0x3 @@ -680,7 +680,7 @@ _0800D78C:  	movs r0, 0x1  	add r0, r8  	mov r10, r0 -	ldr r0, _0800D7B8 @ =gUnknown_2023BD6 +	ldr r0, _0800D7B8 @ =gBattlerPositions  	add r0, r8  	mov r9, r0  	mov r0, r8 @@ -699,7 +699,7 @@ _0800D7A0:  	ldr r0, _0800D7BC @ =gPlayerParty  	b _0800D7C2  	.align 2, 0 -_0800D7B8: .4byte gUnknown_2023BD6 +_0800D7B8: .4byte gBattlerPositions  _0800D7BC: .4byte gPlayerParty  _0800D7C0:  	ldr r0, _0800D800 @ =gEnemyParty diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s deleted file mode 100644 index ba54bafbb..000000000 --- a/asm/battle_gfx_sfx_util.s +++ /dev/null @@ -1,3606 +0,0 @@ -	.include "asm/macros.inc" -	.include "constants/constants.inc" - -	.syntax unified - -	.text - -	thumb_func_start AllocateBattleSpritesData -AllocateBattleSpritesData: @ 8033DB8 -	push {r4,lr} -	ldr r4, _08033DF4 @ =gUnknown_2024018 -	movs r0, 0x10 -	bl AllocZeroed -	str r0, [r4] -	movs r0, 0x10 -	bl AllocZeroed -	ldr r1, [r4] -	str r0, [r1] -	movs r0, 0x30 -	bl AllocZeroed -	ldr r1, [r4] -	str r0, [r1, 0x4] -	movs r0, 0x10 -	bl AllocZeroed -	ldr r1, [r4] -	str r0, [r1, 0x8] -	movs r0, 0x50 -	bl AllocZeroed -	ldr r1, [r4] -	str r0, [r1, 0xC] -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_08033DF4: .4byte gUnknown_2024018 -	thumb_func_end AllocateBattleSpritesData - -	thumb_func_start FreeBattleSpritesData -FreeBattleSpritesData: @ 8033DF8 -	push {r4,r5,lr} -	ldr r5, _08033E38 @ =gUnknown_2024018 -	ldr r0, [r5] -	cmp r0, 0 -	beq _08033E32 -	ldr r0, [r0, 0xC] -	bl Free -	ldr r0, [r5] -	movs r4, 0 -	str r4, [r0, 0xC] -	ldr r0, [r0, 0x8] -	bl Free -	ldr r0, [r5] -	str r4, [r0, 0x8] -	ldr r0, [r0, 0x4] -	bl Free -	ldr r0, [r5] -	str r4, [r0, 0x4] -	ldr r0, [r0] -	bl Free -	ldr r0, [r5] -	str r4, [r0] -	bl Free -	str r4, [r5] -_08033E32: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.align 2, 0 -_08033E38: .4byte gUnknown_2024018 -	thumb_func_end FreeBattleSpritesData - -	thumb_func_start sub_8033E3C -sub_8033E3C: @ 8033E3C -	push {r4-r7,lr} -	adds r6, r0, 0 -	ldrh r0, [r6, 0x30] -	lsls r0, 24 -	lsrs r0, 24 -	ldr r7, _08033E80 @ =gSprites -	lsls r1, r0, 4 -	adds r1, r0 -	lsls r5, r1, 2 -	adds r3, r5, r7 -	adds r0, r3, 0 -	adds r0, 0x3F -	ldrb r4, [r0] -	lsls r0, r4, 26 -	cmp r0, 0 -	bge _08033EA0 -	adds r0, r3, 0 -	adds r0, 0x3E -	ldrb r0, [r0] -	lsls r0, 29 -	cmp r0, 0 -	blt _08033EA0 -	adds r1, r3, 0 -	adds r1, 0x2C -	ldrb r2, [r1] -	lsls r0, r2, 25 -	cmp r0, 0 -	bge _08033E84 -	movs r0, 0x41 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -	b _08033EA0 -	.align 2, 0 -_08033E80: .4byte gSprites -_08033E84: -	lsls r0, r4, 27 -	cmp r0, 0 -	bge _08033EA0 -	adds r0, r7, 0 -	adds r0, 0x1C -	adds r0, r5, r0 -	ldr r1, _08033EA8 @ =sub_8012100 -	str r1, [r0] -	adds r0, r3, 0 -	movs r1, 0 -	bl StartSpriteAffineAnim -	ldr r0, _08033EAC @ =SpriteCallbackDummy -	str r0, [r6, 0x1C] -_08033EA0: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08033EA8: .4byte sub_8012100 -_08033EAC: .4byte SpriteCallbackDummy -	thumb_func_end sub_8033E3C - -	thumb_func_start sub_8033EB0 -sub_8033EB0: @ 8033EB0 -	push {r4,lr} -	adds r4, r0, 0 -	lsls r1, 24 -	adds r3, r4, 0 -	adds r3, 0x2C -	ldrb r0, [r3] -	movs r2, 0x40 -	orrs r0, r2 -	strb r0, [r3] -	ldr r0, _08033ED4 @ =SpriteCallbackDummy -	str r0, [r4, 0x1C] -	cmp r1, 0 -	bne _08033ED8 -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAffineAnim -	b _08033EE0 -	.align 2, 0 -_08033ED4: .4byte SpriteCallbackDummy -_08033ED8: -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAffineAnim -_08033EE0: -	adds r0, r4, 0 -	bl AnimateSprite -	pop {r4} -	pop {r0} -	bx r0 -	thumb_func_end sub_8033EB0 - -	thumb_func_start sub_8033EEC -sub_8033EEC: @ 8033EEC -	push {lr} -	adds r2, r0, 0 -	ldr r0, _08033F14 @ =gUnknown_2023F4C -	ldrh r1, [r0] -	movs r0, 0x1 -	ands r0, r1 -	cmp r0, 0 -	bne _08033F0E -	ldrh r0, [r2, 0x2E] -	ldrh r1, [r2, 0x24] -	adds r0, r1 -	strh r0, [r2, 0x24] -	lsls r0, 16 -	cmp r0, 0 -	bne _08033F0E -	ldr r0, _08033F18 @ =SpriteCallbackDummy -	str r0, [r2, 0x1C] -_08033F0E: -	pop {r0} -	bx r0 -	.align 2, 0 -_08033F14: .4byte gUnknown_2023F4C -_08033F18: .4byte SpriteCallbackDummy -	thumb_func_end sub_8033EEC - -	thumb_func_start InitAndLaunchChosenStatusAnimation -InitAndLaunchChosenStatusAnimation: @ 8033F1C -	push {r4-r6,lr} -	adds r4, r1, 0 -	lsls r0, 24 -	ldr r6, _08033F50 @ =gUnknown_2024018 -	ldr r1, [r6] -	ldr r5, _08033F54 @ =gActiveBattler -	ldrb r2, [r5] -	ldr r3, [r1, 0x4] -	lsls r1, r2, 1 -	adds r1, r2 -	lsls r1, 2 -	adds r1, r3 -	ldrb r2, [r1] -	movs r3, 0x10 -	orrs r2, r3 -	strb r2, [r1] -	cmp r0, 0 -	bne _08033F9C -	cmp r4, 0x20 -	bne _08033F58 -	ldrb r0, [r5] -	movs r1, 0x6 -	bl LaunchStatusAnimation -	b _08034016 -	.align 2, 0 -_08033F50: .4byte gUnknown_2024018 -_08033F54: .4byte gActiveBattler -_08033F58: -	cmp r4, 0x8 -	beq _08033F64 -	movs r0, 0x80 -	ands r0, r4 -	cmp r0, 0 -	beq _08033F6E -_08033F64: -	ldrb r0, [r5] -	movs r1, 0 -	bl LaunchStatusAnimation -	b _08034016 -_08033F6E: -	cmp r4, 0x10 -	bne _08033F7C -	ldrb r0, [r5] -	movs r1, 0x2 -	bl LaunchStatusAnimation -	b _08034016 -_08033F7C: -	movs r0, 0x7 -	ands r0, r4 -	cmp r0, 0 -	beq _08033F8E -	ldrb r0, [r5] -	movs r1, 0x4 -	bl LaunchStatusAnimation -	b _08034016 -_08033F8E: -	cmp r4, 0x40 -	bne _08033FFE -	ldrb r0, [r5] -	movs r1, 0x5 -	bl LaunchStatusAnimation -	b _08034016 -_08033F9C: -	movs r0, 0xF0 -	lsls r0, 12 -	ands r0, r4 -	cmp r0, 0 -	beq _08033FB0 -	ldrb r0, [r5] -	movs r1, 0x3 -	bl LaunchStatusAnimation -	b _08034016 -_08033FB0: -	movs r0, 0x7 -	ands r0, r4 -	cmp r0, 0 -	beq _08033FC2 -	ldrb r0, [r5] -	movs r1, 0x1 -	bl LaunchStatusAnimation -	b _08034016 -_08033FC2: -	movs r0, 0x80 -	lsls r0, 21 -	ands r0, r4 -	cmp r0, 0 -	beq _08033FD6 -	ldrb r0, [r5] -	movs r1, 0x7 -	bl LaunchStatusAnimation -	b _08034016 -_08033FD6: -	movs r0, 0x80 -	lsls r0, 20 -	ands r0, r4 -	cmp r0, 0 -	beq _08033FEA -	ldrb r0, [r5] -	movs r1, 0x8 -	bl LaunchStatusAnimation -	b _08034016 -_08033FEA: -	movs r0, 0xE0 -	lsls r0, 8 -	ands r0, r4 -	cmp r0, 0 -	beq _08033FFE -	ldrb r0, [r5] -	movs r1, 0x9 -	bl LaunchStatusAnimation -	b _08034016 -_08033FFE: -	ldr r0, [r6] -	ldrb r2, [r5] -	ldr r0, [r0, 0x4] -	lsls r1, r2, 1 -	adds r1, r2 -	lsls r1, 2 -	adds r1, r0 -	ldrb r2, [r1] -	movs r0, 0x11 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -_08034016: -	pop {r4-r6} -	pop {r0} -	bx r0 -	thumb_func_end InitAndLaunchChosenStatusAnimation - -	thumb_func_start TryHandleLaunchBattleTableAnimation -TryHandleLaunchBattleTableAnimation: @ 803401C -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	sub sp, 0x4 -	ldr r4, [sp, 0x24] -	lsls r0, 24 -	lsrs r6, r0, 24 -	lsls r1, 24 -	lsrs r1, 24 -	mov r10, r1 -	lsls r2, 24 -	lsrs r2, 24 -	str r2, [sp] -	lsls r3, 24 -	lsrs r5, r3, 24 -	lsls r4, 16 -	lsrs r7, r4, 16 -	cmp r5, 0 -	bne _08034064 -	movs r0, 0x80 -	ands r0, r7 -	cmp r0, 0 -	beq _08034064 -	ldr r0, _08034060 @ =gBattleMonForms -	adds r0, r6, r0 -	movs r2, 0x7F -	adds r1, r7, 0 -	ands r1, r2 -	strb r1, [r0] -	movs r0, 0x1 -	b _08034132 -	.align 2, 0 -_08034060: .4byte gBattleMonForms -_08034064: -	ldr r0, _08034090 @ =gUnknown_2024018 -	mov r9, r0 -	ldr r0, [r0] -	ldr r0, [r0] -	lsls r4, r6, 2 -	adds r0, r4, r0 -	ldrb r1, [r0] -	movs r2, 0x4 -	mov r8, r2 -	mov r0, r8 -	ands r0, r1 -	cmp r0, 0 -	beq _080340E0 -	adds r0, r5, 0 -	bl ShouldAnimBeDoneRegardlessOfSubsitute -	lsls r0, 24 -	cmp r0, 0 -	bne _08034094 -	movs r0, 0x1 -	b _08034132 -	.align 2, 0 -_08034090: .4byte gUnknown_2024018 -_08034094: -	mov r1, r9 -	ldr r0, [r1] -	ldr r0, [r0] -	adds r0, r4, r0 -	ldrb r1, [r0] -	mov r0, r8 -	ands r0, r1 -	cmp r0, 0 -	beq _080340E0 -	cmp r5, 0x2 -	bne _080340E0 -	ldr r1, _080340D8 @ =gSprites -	ldr r0, _080340DC @ =gBattlerSpriteIds -	adds r0, r6, r0 -	ldrb r2, [r0] -	lsls r0, r2, 4 -	adds r0, r2 -	lsls r0, 2 -	adds r0, r1 -	adds r0, 0x3E -	ldrb r0, [r0] -	lsls r0, 29 -	cmp r0, 0 -	bge _080340E0 -	adds r0, r6, 0 -	movs r1, 0x1 -	bl LoadBattleMonGfxAndAnimate -	adds r0, r6, 0 -	bl ClearBehindSubstituteBit -	movs r0, 0x1 -	b _08034132 -	.align 2, 0 -_080340D8: .4byte gSprites -_080340DC: .4byte gBattlerSpriteIds -_080340E0: -	ldr r0, _08034144 @ =gBattleAnimAttacker -	mov r2, r10 -	strb r2, [r0] -	ldr r0, _08034148 @ =gBattleAnimTarget -	mov r1, sp -	ldrb r1, [r1] -	strb r1, [r0] -	ldr r4, _0803414C @ =gUnknown_2024018 -	ldr r0, [r4] -	ldr r0, [r0, 0x8] -	strh r7, [r0] -	ldr r0, _08034150 @ =gUnknown_81C6EA8 -	adds r1, r5, 0 -	movs r2, 0 -	bl sub_80725D4 -	ldr r0, _08034154 @ =Task_ClearBitWhenBattleTableAnimDone -	movs r1, 0xA -	bl CreateTask -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _08034158 @ =gTasks -	lsls r1, r0, 2 -	adds r1, r0 -	lsls r1, 3 -	adds r1, r2 -	strh r6, [r1, 0x8] -	ldr r0, [r4] -	movs r2, 0x8 -	ldrsh r1, [r1, r2] -	ldr r2, [r0, 0x4] -	lsls r0, r1, 1 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	ldrb r1, [r0] -	movs r2, 0x20 -	orrs r1, r2 -	strb r1, [r0] -	movs r0, 0 -_08034132: -	add sp, 0x4 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r1} -	bx r1 -	.align 2, 0 -_08034144: .4byte gBattleAnimAttacker -_08034148: .4byte gBattleAnimTarget -_0803414C: .4byte gUnknown_2024018 -_08034150: .4byte gUnknown_81C6EA8 -_08034154: .4byte Task_ClearBitWhenBattleTableAnimDone -_08034158: .4byte gTasks -	thumb_func_end TryHandleLaunchBattleTableAnimation - -	thumb_func_start Task_ClearBitWhenBattleTableAnimDone -Task_ClearBitWhenBattleTableAnimDone: @ 803415C -	push {r4,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r0, _080341A4 @ =gUnknown_2037EDC -	ldr r0, [r0] -	bl _call_via_r0 -	ldr r0, _080341A8 @ =gUnknown_2037EE1 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _0803419E -	ldr r0, _080341AC @ =gUnknown_2024018 -	ldr r2, [r0] -	ldr r1, _080341B0 @ =gTasks -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r0, r1 -	movs r1, 0x8 -	ldrsh r0, [r0, r1] -	ldr r2, [r2, 0x4] -	lsls r1, r0, 1 -	adds r1, r0 -	lsls r1, 2 -	adds r1, r2 -	ldrb r2, [r1] -	movs r0, 0x21 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -	adds r0, r4, 0 -	bl DestroyTask -_0803419E: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_080341A4: .4byte gUnknown_2037EDC -_080341A8: .4byte gUnknown_2037EE1 -_080341AC: .4byte gUnknown_2024018 -_080341B0: .4byte gTasks -	thumb_func_end Task_ClearBitWhenBattleTableAnimDone - -	thumb_func_start ShouldAnimBeDoneRegardlessOfSubsitute -ShouldAnimBeDoneRegardlessOfSubsitute: @ 80341B4 -	push {lr} -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0xD -	bgt _080341C8 -	cmp r0, 0xA -	bge _080341CC -	cmp r0, 0x2 -	beq _080341CC -	b _080341D0 -_080341C8: -	cmp r0, 0x11 -	bne _080341D0 -_080341CC: -	movs r0, 0x1 -	b _080341D2 -_080341D0: -	movs r0, 0 -_080341D2: -	pop {r1} -	bx r1 -	thumb_func_end ShouldAnimBeDoneRegardlessOfSubsitute - -	thumb_func_start InitAndLaunchSpecialAnimation -InitAndLaunchSpecialAnimation: @ 80341D8 -	push {r4,lr} -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	lsls r3, 24 -	lsrs r3, 24 -	ldr r0, _08034230 @ =gBattleAnimAttacker -	strb r1, [r0] -	ldr r0, _08034234 @ =gBattleAnimTarget -	strb r2, [r0] -	ldr r0, _08034238 @ =gUnknown_81C6F18 -	adds r1, r3, 0 -	movs r2, 0 -	bl sub_80725D4 -	ldr r0, _0803423C @ =Task_ClearBitWhenSpecialAnimDone -	movs r1, 0xA -	bl CreateTask -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _08034240 @ =gTasks -	lsls r1, r0, 2 -	adds r1, r0 -	lsls r1, 3 -	adds r1, r2 -	strh r4, [r1, 0x8] -	ldr r0, _08034244 @ =gUnknown_2024018 -	ldr r0, [r0] -	movs r2, 0x8 -	ldrsh r1, [r1, r2] -	ldr r2, [r0, 0x4] -	lsls r0, r1, 1 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	ldrb r1, [r0] -	movs r2, 0x40 -	orrs r1, r2 -	strb r1, [r0] -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034230: .4byte gBattleAnimAttacker -_08034234: .4byte gBattleAnimTarget -_08034238: .4byte gUnknown_81C6F18 -_0803423C: .4byte Task_ClearBitWhenSpecialAnimDone -_08034240: .4byte gTasks -_08034244: .4byte gUnknown_2024018 -	thumb_func_end InitAndLaunchSpecialAnimation - -	thumb_func_start Task_ClearBitWhenSpecialAnimDone -Task_ClearBitWhenSpecialAnimDone: @ 8034248 -	push {r4,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r0, _08034290 @ =gUnknown_2037EDC -	ldr r0, [r0] -	bl _call_via_r0 -	ldr r0, _08034294 @ =gUnknown_2037EE1 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _0803428A -	ldr r0, _08034298 @ =gUnknown_2024018 -	ldr r2, [r0] -	ldr r1, _0803429C @ =gTasks -	lsls r0, r4, 2 -	adds r0, r4 -	lsls r0, 3 -	adds r0, r1 -	movs r1, 0x8 -	ldrsh r0, [r0, r1] -	ldr r2, [r2, 0x4] -	lsls r1, r0, 1 -	adds r1, r0 -	lsls r1, 2 -	adds r1, r2 -	ldrb r2, [r1] -	movs r0, 0x41 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -	adds r0, r4, 0 -	bl DestroyTask -_0803428A: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034290: .4byte gUnknown_2037EDC -_08034294: .4byte gUnknown_2037EE1 -_08034298: .4byte gUnknown_2024018 -_0803429C: .4byte gTasks -	thumb_func_end Task_ClearBitWhenSpecialAnimDone - -	thumb_func_start IsMoveWithoutAnimation -IsMoveWithoutAnimation: @ 80342A0 -	movs r0, 0 -	bx lr -	thumb_func_end IsMoveWithoutAnimation - -	thumb_func_start mplay_80342A4 -mplay_80342A4: @ 80342A4 -	push {r4,r5,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	movs r5, 0 -	bl IsSEPlaying -	lsls r0, 24 -	cmp r0, 0 -	beq _080342EC -	ldr r2, _080342F4 @ =gUnknown_2024018 -	ldr r0, [r2] -	ldr r1, [r0, 0x4] -	lsls r0, r4, 1 -	adds r0, r4 -	lsls r0, 2 -	adds r0, r1 -	ldrb r1, [r0, 0x8] -	adds r1, 0x1 -	strb r1, [r0, 0x8] -	ldr r2, [r2] -	ldr r0, _080342F8 @ =gActiveBattler -	ldrb r1, [r0] -	ldr r2, [r2, 0x4] -	lsls r0, r1, 1 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	ldrb r0, [r0, 0x8] -	cmp r0, 0x1D -	bls _080342F0 -	ldr r0, _080342FC @ =gMPlayInfo_SE1 -	bl m4aMPlayStop -	ldr r0, _08034300 @ =gMPlayInfo_SE2 -	bl m4aMPlayStop -_080342EC: -	cmp r5, 0 -	beq _08034304 -_080342F0: -	movs r0, 0x1 -	b _08034316 -	.align 2, 0 -_080342F4: .4byte gUnknown_2024018 -_080342F8: .4byte gActiveBattler -_080342FC: .4byte gMPlayInfo_SE1 -_08034300: .4byte gMPlayInfo_SE2 -_08034304: -	ldr r0, _0803431C @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r1, [r0, 0x4] -	lsls r0, r4, 1 -	adds r0, r4 -	lsls r0, 2 -	adds r0, r1 -	strb r5, [r0, 0x8] -	movs r0, 0 -_08034316: -	pop {r4,r5} -	pop {r1} -	bx r1 -	.align 2, 0 -_0803431C: .4byte gUnknown_2024018 -	thumb_func_end mplay_80342A4 - -	thumb_func_start BattleLoadOpponentMonSpriteGfx -BattleLoadOpponentMonSpriteGfx: @ 8034320 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	sub sp, 0x8 -	adds r4, r0, 0 -	lsls r1, 24 -	lsrs r1, 24 -	mov r8, r1 -	movs r1, 0 -	bl GetMonData -	str r0, [sp] -	ldr r0, _08034360 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	mov r2, r8 -	lsls r1, r2, 2 -	adds r2, r1, r0 -	ldrh r0, [r2, 0x2] -	cmp r0, 0 -	bne _08034364 -	adds r0, r4, 0 -	movs r1, 0xB -	bl GetMonData -	lsls r0, 16 -	lsrs r5, r0, 16 -	ldr r6, [sp] -	b _0803436C -	.align 2, 0 -_08034360: .4byte gUnknown_2024018 -_08034364: -	ldrh r5, [r2, 0x2] -	ldr r0, _080343C0 @ =gUnknown_2024008 -	adds r0, r1, r0 -	ldr r6, [r0] -_0803436C: -	adds r0, r4, 0 -	movs r1, 0x1 -	bl GetMonData -	mov r10, r0 -	mov r0, r8 -	bl GetBattlerPosition -	lsls r0, 24 -	lsls r2, r5, 3 -	ldr r1, _080343C4 @ =gMonFrontPicTable -	adds r2, r1 -	ldr r1, _080343C8 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	lsrs r0, 22 -	adds r1, 0x4 -	adds r1, r0 -	ldr r1, [r1] -	adds r0, r2, 0 -	adds r2, r5, 0 -	adds r3, r6, 0 -	bl HandleLoadSpecialPokePic_DontHandleDeoxys -	mov r3, r8 -	lsls r2, r3, 4 -	movs r0, 0x80 -	lsls r0, 1 -	adds r7, r2, r0 -	ldr r0, _080343CC @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	lsls r1, r3, 2 -	adds r0, r1, r0 -	ldrh r0, [r0, 0x2] -	str r1, [sp, 0x4] -	mov r9, r2 -	cmp r0, 0 -	bne _080343D0 -	adds r0, r4, 0 -	bl GetMonFrontSpritePal -	b _080343DA -	.align 2, 0 -_080343C0: .4byte gUnknown_2024008 -_080343C4: .4byte gMonFrontPicTable -_080343C8: .4byte gMonSpritesGfxPtr -_080343CC: .4byte gUnknown_2024018 -_080343D0: -	adds r0, r5, 0 -	mov r1, r10 -	ldr r2, [sp] -	bl GetFrontSpritePalFromSpeciesAndPersonality -_080343DA: -	adds r6, r0, 0 -	movs r0, 0x80 -	lsls r0, 3 -	bl AllocZeroed -	adds r4, r0, 0 -	adds r0, r6, 0 -	adds r1, r4, 0 -	bl LZDecompressWram -	adds r0, r4, 0 -	adds r1, r7, 0 -	movs r2, 0x20 -	bl LoadPalette -	mov r1, r9 -	adds r1, 0x80 -	adds r0, r4, 0 -	movs r2, 0x20 -	bl LoadPalette -	adds r0, r4, 0 -	bl Free -	ldr r0, _08034478 @ =0x00000181 -	cmp r5, r0 -	bne _0803443C -	movs r7, 0x80 -	lsls r7, 1 -	add r7, r9 -	ldr r5, _0803447C @ =gBattleStruct -	ldr r1, [r5] -	movs r4, 0x80 -	lsls r4, 1 -	adds r1, r4 -	adds r0, r6, 0 -	bl LZDecompressWram -	ldr r0, _08034480 @ =gBattleMonForms -	add r0, r8 -	ldrb r1, [r0] -	lsls r1, 5 -	adds r1, r4 -	ldr r0, [r5] -	adds r0, r1 -	adds r1, r7, 0 -	movs r2, 0x20 -	bl LoadPalette -_0803443C: -	ldr r0, _08034484 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	ldr r1, [sp, 0x4] -	adds r0, r1, r0 -	ldrh r0, [r0, 0x2] -	cmp r0, 0 -	beq _08034468 -	ldr r3, _08034488 @ =0x00007fff -	adds r0, r7, 0 -	movs r1, 0x10 -	movs r2, 0x6 -	bl BlendPalette -	lsls r1, r7, 1 -	ldr r0, _0803448C @ =gPlttBufferFaded -	adds r0, r1, r0 -	ldr r2, _08034490 @ =gPlttBufferUnfaded -	adds r1, r2 -	ldr r2, _08034494 @ =0x04000008 -	bl CpuSet -_08034468: -	add sp, 0x8 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034478: .4byte 0x00000181 -_0803447C: .4byte gBattleStruct -_08034480: .4byte gBattleMonForms -_08034484: .4byte gUnknown_2024018 -_08034488: .4byte 0x00007fff -_0803448C: .4byte gPlttBufferFaded -_08034490: .4byte gPlttBufferUnfaded -_08034494: .4byte 0x04000008 -	thumb_func_end BattleLoadOpponentMonSpriteGfx - -	thumb_func_start sub_8034498 -sub_8034498: @ 8034498 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	sub sp, 0x8 -	adds r6, r0, 0 -	lsls r1, 24 -	lsrs r1, 24 -	mov r8, r1 -	movs r1, 0 -	bl GetMonData -	str r0, [sp] -	ldr r0, _080344D8 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	mov r2, r8 -	lsls r1, r2, 2 -	adds r2, r1, r0 -	ldrh r0, [r2, 0x2] -	cmp r0, 0 -	bne _080344DC -	adds r0, r6, 0 -	movs r1, 0xB -	bl GetMonData -	lsls r0, 16 -	lsrs r5, r0, 16 -	ldr r4, [sp] -	b _080344E4 -	.align 2, 0 -_080344D8: .4byte gUnknown_2024018 -_080344DC: -	ldrh r5, [r2, 0x2] -	ldr r0, _08034538 @ =gUnknown_2024008 -	adds r0, r1, r0 -	ldr r4, [r0] -_080344E4: -	adds r0, r6, 0 -	movs r1, 0x1 -	bl GetMonData -	str r0, [sp, 0x4] -	mov r0, r8 -	bl GetBattlerPosition -	lsls r0, 24 -	lsrs r7, r0, 24 -	movs r0, 0x1 -	mov r1, r8 -	bl sub_804455C -	lsls r0, 24 -	lsrs r0, 24 -	mov r1, r8 -	lsls r1, 2 -	mov r10, r1 -	cmp r0, 0x1 -	beq _0803451C -	ldr r0, _0803453C @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	add r0, r10 -	ldrh r0, [r0, 0x2] -	cmp r0, 0 -	beq _08034548 -_0803451C: -	lsls r0, r5, 3 -	ldr r1, _08034540 @ =gMonBackPicTable -	adds r0, r1 -	ldr r1, _08034544 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	lsls r2, r7, 2 -	adds r1, 0x4 -	adds r1, r2 -	ldr r1, [r1] -	adds r2, r5, 0 -	adds r3, r4, 0 -	bl HandleLoadSpecialPokePic_DontHandleDeoxys -	b _08034562 -	.align 2, 0 -_08034538: .4byte gUnknown_2024008 -_0803453C: .4byte gUnknown_2024018 -_08034540: .4byte gMonBackPicTable -_08034544: .4byte gMonSpritesGfxPtr -_08034548: -	lsls r0, r5, 3 -	ldr r1, _08034584 @ =gMonBackPicTable -	adds r0, r1 -	ldr r1, _08034588 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	lsls r2, r7, 2 -	adds r1, 0x4 -	adds r1, r2 -	ldr r1, [r1] -	adds r2, r5, 0 -	adds r3, r4, 0 -	bl HandleLoadSpecialPokePic -_08034562: -	mov r2, r8 -	lsls r1, r2, 4 -	movs r0, 0x80 -	lsls r0, 1 -	adds r7, r1, r0 -	ldr r0, _0803458C @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	add r0, r10 -	ldrh r0, [r0, 0x2] -	mov r9, r1 -	cmp r0, 0 -	bne _08034590 -	adds r0, r6, 0 -	bl GetMonFrontSpritePal -	b _0803459A -	.align 2, 0 -_08034584: .4byte gMonBackPicTable -_08034588: .4byte gMonSpritesGfxPtr -_0803458C: .4byte gUnknown_2024018 -_08034590: -	adds r0, r5, 0 -	ldr r1, [sp, 0x4] -	ldr r2, [sp] -	bl GetFrontSpritePalFromSpeciesAndPersonality -_0803459A: -	adds r6, r0, 0 -	movs r0, 0x80 -	lsls r0, 3 -	bl AllocZeroed -	adds r4, r0, 0 -	adds r0, r6, 0 -	adds r1, r4, 0 -	bl LZDecompressWram -	adds r0, r4, 0 -	adds r1, r7, 0 -	movs r2, 0x20 -	bl LoadPalette -	mov r1, r9 -	adds r1, 0x80 -	adds r0, r4, 0 -	movs r2, 0x20 -	bl LoadPalette -	adds r0, r4, 0 -	bl Free -	ldr r0, _08034638 @ =0x00000181 -	cmp r5, r0 -	bne _080345FC -	movs r7, 0x80 -	lsls r7, 1 -	add r7, r9 -	ldr r5, _0803463C @ =gBattleStruct -	ldr r1, [r5] -	movs r4, 0x80 -	lsls r4, 1 -	adds r1, r4 -	adds r0, r6, 0 -	bl LZDecompressWram -	ldr r0, _08034640 @ =gBattleMonForms -	add r0, r8 -	ldrb r1, [r0] -	lsls r1, 5 -	adds r1, r4 -	ldr r0, [r5] -	adds r0, r1 -	adds r1, r7, 0 -	movs r2, 0x20 -	bl LoadPalette -_080345FC: -	ldr r0, _08034644 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	add r0, r10 -	ldrh r0, [r0, 0x2] -	cmp r0, 0 -	beq _08034626 -	ldr r3, _08034648 @ =0x00007fff -	adds r0, r7, 0 -	movs r1, 0x10 -	movs r2, 0x6 -	bl BlendPalette -	lsls r1, r7, 1 -	ldr r0, _0803464C @ =gPlttBufferFaded -	adds r0, r1, r0 -	ldr r2, _08034650 @ =gPlttBufferUnfaded -	adds r1, r2 -	ldr r2, _08034654 @ =0x04000008 -	bl CpuSet -_08034626: -	add sp, 0x8 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034638: .4byte 0x00000181 -_0803463C: .4byte gBattleStruct -_08034640: .4byte gBattleMonForms -_08034644: .4byte gUnknown_2024018 -_08034648: .4byte 0x00007fff -_0803464C: .4byte gPlttBufferFaded -_08034650: .4byte gPlttBufferUnfaded -_08034654: .4byte 0x04000008 -	thumb_func_end sub_8034498 - -	thumb_func_start sub_8034658 -sub_8034658: @ 8034658 -	push {r4-r6,lr} -	lsls r4, r1, 24 -	lsrs r4, 24 -	adds r0, r4, 0 -	bl GetBattlerPosition -	lsls r0, 24 -	ldr r2, _080346B8 @ =gUnknown_8E93B38 -	ldr r1, _080346BC @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	lsrs r0, 22 -	adds r1, 0x4 -	adds r1, r0 -	ldr r1, [r1] -	adds r0, r2, 0 -	bl LZ77UnCompWram -	lsls r4, 4 -	movs r0, 0x80 -	lsls r0, 1 -	adds r6, r4, r0 -	movs r0, 0x80 -	lsls r0, 3 -	bl AllocZeroed -	adds r5, r0, 0 -	ldr r0, _080346C0 @ =gUnknown_8E93B14 -	adds r1, r5, 0 -	bl LZDecompressWram -	adds r0, r5, 0 -	adds r1, r6, 0 -	movs r2, 0x20 -	bl LoadPalette -	adds r4, 0x80 -	adds r0, r5, 0 -	adds r1, r4, 0 -	movs r2, 0x20 -	bl LoadPalette -	adds r0, r5, 0 -	bl Free -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_080346B8: .4byte gUnknown_8E93B38 -_080346BC: .4byte gMonSpritesGfxPtr -_080346C0: .4byte gUnknown_8E93B14 -	thumb_func_end sub_8034658 - -	thumb_func_start sub_80346C4 -sub_80346C4: @ 80346C4 -	push {r4-r6,lr} -	mov r6, r8 -	push {r6} -	sub sp, 0x8 -	adds r5, r0, 0 -	adds r0, r1, 0 -	lsls r5, 16 -	lsrs r5, 16 -	lsls r0, 24 -	lsrs r0, 24 -	bl GetBattlerPosition -	adds r4, r0, 0 -	lsls r4, 24 -	lsls r5, 3 -	ldr r6, _0803473C @ =gTrainerFrontPicTable -	adds r6, r5, r6 -	ldr r0, _08034740 @ =gMonSpritesGfxPtr -	mov r8, r0 -	ldr r0, [r0] -	lsrs r4, 22 -	adds r0, 0x4 -	adds r0, r4 -	ldr r1, [r0] -	adds r0, r6, 0 -	movs r2, 0 -	bl DecompressPicFromTable -	mov r1, r8 -	ldr r0, [r1] -	adds r0, 0x4 -	adds r0, r4 -	ldr r0, [r0] -	str r0, [sp] -	ldrh r2, [r6, 0x4] -	ldr r0, _08034744 @ =0xffff0000 -	ldr r1, [sp, 0x4] -	ands r1, r0 -	orrs r1, r2 -	str r1, [sp, 0x4] -	ldrh r2, [r6, 0x6] -	lsls r2, 16 -	ldr r0, _08034748 @ =0x0000ffff -	ands r0, r1 -	orrs r0, r2 -	str r0, [sp, 0x4] -	mov r0, sp -	bl LoadSpriteSheet -	ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable -	adds r5, r0 -	adds r0, r5, 0 -	bl LoadCompressedSpritePaletteUsingHeap -	add sp, 0x8 -	pop {r3} -	mov r8, r3 -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0803473C: .4byte gTrainerFrontPicTable -_08034740: .4byte gMonSpritesGfxPtr -_08034744: .4byte 0xffff0000 -_08034748: .4byte 0x0000ffff -_0803474C: .4byte gTrainerFrontPicPaletteTable -	thumb_func_end sub_80346C4 - -	thumb_func_start sub_8034750 -sub_8034750: @ 8034750 -	push {lr} -	lsls r0, 16 -	lsls r1, 24 -	ldr r2, _08034774 @ =gUnknown_8239FD4 -	lsrs r0, 13 -	adds r0, r2 -	ldr r0, [r0] -	lsrs r1, 4 -	movs r2, 0x80 -	lsls r2, 17 -	adds r1, r2 -	lsrs r1, 16 -	movs r2, 0x20 -	bl LoadCompressedPalette -	pop {r0} -	bx r0 -	.align 2, 0 -_08034774: .4byte gUnknown_8239FD4 -	thumb_func_end sub_8034750 - -	thumb_func_start nullsub_16 -nullsub_16: @ 8034778 -	bx lr -	thumb_func_end nullsub_16 - -	thumb_func_start sub_803477C -sub_803477C: @ 803477C -	push {r4,lr} -	adds r4, r0, 0 -	lsls r4, 16 -	ldr r0, _080347A0 @ =gTrainerFrontPicPaletteTable -	lsrs r4, 13 -	adds r0, r4, r0 -	ldrh r0, [r0, 0x4] -	bl FreeSpritePaletteByTag -	ldr r0, _080347A4 @ =gTrainerFrontPicTable -	adds r4, r0 -	ldrh r0, [r4, 0x6] -	bl FreeSpriteTilesByTag -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_080347A0: .4byte gTrainerFrontPicPaletteTable -_080347A4: .4byte gTrainerFrontPicTable -	thumb_func_end sub_803477C - -	thumb_func_start sub_80347A8 -sub_80347A8: @ 80347A8 -	push {r4-r7,lr} -	ldr r4, _080347D4 @ =gUnknown_8260260 -	adds r0, r4, 0 -	bl LoadSpritePalette -	adds r4, 0x8 -	adds r0, r4, 0 -	bl LoadSpritePalette -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	bne _080347E0 -	ldr r0, _080347D8 @ =gUnknown_8260208 -	bl LoadCompressedSpriteSheetUsingHeap -	ldr r0, _080347DC @ =gUnknown_8260210 -	bl LoadCompressedSpriteSheetUsingHeap -	movs r5, 0x2 -	b _08034802 -	.align 2, 0 -_080347D4: .4byte gUnknown_8260260 -_080347D8: .4byte gUnknown_8260208 -_080347DC: .4byte gUnknown_8260210 -_080347E0: -	ldr r4, _08034828 @ =gUnknown_8260218 -	adds r0, r4, 0 -	bl LoadCompressedSpriteSheetUsingHeap -	adds r4, 0x8 -	adds r0, r4, 0 -	bl LoadCompressedSpriteSheetUsingHeap -	ldr r4, _0803482C @ =gUnknown_8260228 -	adds r0, r4, 0 -	bl LoadCompressedSpriteSheetUsingHeap -	adds r4, 0x8 -	adds r0, r4, 0 -	bl LoadCompressedSpriteSheetUsingHeap -	movs r5, 0x4 -_08034802: -	movs r4, 0 -	cmp r4, r5 -	bcs _08034822 -	ldr r7, _08034830 @ =gUnknown_2023BD6 -	ldr r6, _08034834 @ =gUnknown_8260240 -_0803480C: -	adds r0, r4, r7 -	ldrb r0, [r0] -	lsls r0, 3 -	adds r0, r6 -	bl LoadCompressedSpriteSheetUsingHeap -	adds r0, r4, 0x1 -	lsls r0, 24 -	lsrs r4, r0, 24 -	cmp r4, r5 -	bcc _0803480C -_08034822: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034828: .4byte gUnknown_8260218 -_0803482C: .4byte gUnknown_8260228 -_08034830: .4byte gUnknown_2023BD6 -_08034834: .4byte gUnknown_8260240 -	thumb_func_end sub_80347A8 - -	thumb_func_start BattleLoadAllHealthBoxesGfx -BattleLoadAllHealthBoxesGfx: @ 8034838 -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	adds r5, r4, 0 -	movs r6, 0 -	cmp r4, 0 -	bne _08034848 -	b _0803495A -_08034848: -	cmp r4, 0x1 -	bne _08034864 -	ldr r4, _08034860 @ =gUnknown_8260260 -	adds r0, r4, 0 -	bl LoadSpritePalette -	adds r4, 0x8 -	adds r0, r4, 0 -	bl LoadSpritePalette -	b _0803495A -	.align 2, 0 -_08034860: .4byte gUnknown_8260260 -_08034864: -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	bne _080348CC -	cmp r4, 0x2 -	bne _0803489C -	ldr r0, _08034888 @ =gBattleTypeFlags -	ldr r0, [r0] -	movs r1, 0x80 -	ands r0, r1 -	cmp r0, 0 -	beq _08034890 -	ldr r0, _0803488C @ =gUnknown_8260238 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_08034888: .4byte gBattleTypeFlags -_0803488C: .4byte gUnknown_8260238 -_08034890: -	ldr r0, _08034898 @ =gUnknown_8260208 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_08034898: .4byte gUnknown_8260208 -_0803489C: -	cmp r4, 0x3 -	bne _080348AC -	ldr r0, _080348A8 @ =gUnknown_8260210 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_080348A8: .4byte gUnknown_8260210 -_080348AC: -	cmp r4, 0x4 -	bne _080348BC -	ldr r0, _080348B8 @ =gUnknown_2023BD6 -	ldrb r0, [r0] -	b _08034944 -	.align 2, 0 -_080348B8: .4byte gUnknown_2023BD6 -_080348BC: -	cmp r4, 0x5 -	bne _08034958 -	ldr r0, _080348C8 @ =gUnknown_2023BD6 -	ldrb r0, [r0, 0x1] -	b _08034944 -	.align 2, 0 -_080348C8: .4byte gUnknown_2023BD6 -_080348CC: -	cmp r4, 0x2 -	bne _080348DC -	ldr r0, _080348D8 @ =gUnknown_8260218 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_080348D8: .4byte gUnknown_8260218 -_080348DC: -	cmp r4, 0x3 -	bne _080348EC -	ldr r0, _080348E8 @ =gUnknown_8260220 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_080348E8: .4byte gUnknown_8260220 -_080348EC: -	cmp r4, 0x4 -	bne _080348FC -	ldr r0, _080348F8 @ =gUnknown_8260228 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_080348F8: .4byte gUnknown_8260228 -_080348FC: -	cmp r4, 0x5 -	bne _0803490C -	ldr r0, _08034908 @ =gUnknown_8260230 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_08034908: .4byte gUnknown_8260230 -_0803490C: -	cmp r4, 0x6 -	bne _0803491C -	ldr r0, _08034918 @ =gUnknown_2023BD6 -	ldrb r0, [r0] -	b _08034944 -	.align 2, 0 -_08034918: .4byte gUnknown_2023BD6 -_0803491C: -	cmp r4, 0x7 -	bne _0803492C -	ldr r0, _08034928 @ =gUnknown_2023BD6 -	ldrb r0, [r0, 0x1] -	b _08034944 -	.align 2, 0 -_08034928: .4byte gUnknown_2023BD6 -_0803492C: -	cmp r4, 0x8 -	bne _0803493C -	ldr r0, _08034938 @ =gUnknown_2023BD6 -	ldrb r0, [r0, 0x2] -	b _08034944 -	.align 2, 0 -_08034938: .4byte gUnknown_2023BD6 -_0803493C: -	cmp r5, 0x9 -	bne _08034958 -	ldr r0, _08034950 @ =gUnknown_2023BD6 -	ldrb r0, [r0, 0x3] -_08034944: -	lsls r0, 3 -	ldr r1, _08034954 @ =gUnknown_8260240 -	adds r0, r1 -	bl LoadCompressedSpriteSheetUsingHeap -	b _0803495A -	.align 2, 0 -_08034950: .4byte gUnknown_2023BD6 -_08034954: .4byte gUnknown_8260240 -_08034958: -	movs r6, 0x1 -_0803495A: -	adds r0, r6, 0 -	pop {r4-r6} -	pop {r1} -	bx r1 -	thumb_func_end BattleLoadAllHealthBoxesGfx - -	thumb_func_start LoadBattleBarGfx -LoadBattleBarGfx: @ 8034964 -	push {lr} -	ldr r0, _0803497C @ =gFile_graphics_interface_hp_numbers -	ldr r1, _08034980 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	movs r2, 0xBA -	lsls r2, 1 -	adds r1, r2 -	ldr r1, [r1] -	bl LZDecompressWram -	pop {r0} -	bx r0 -	.align 2, 0 -_0803497C: .4byte gFile_graphics_interface_hp_numbers -_08034980: .4byte gMonSpritesGfxPtr -	thumb_func_end LoadBattleBarGfx - -	thumb_func_start BattleInitAllSprites -BattleInitAllSprites: @ 8034984 -	push {r4-r6,lr} -	adds r5, r0, 0 -	adds r4, r1, 0 -	movs r6, 0 -	ldrb r0, [r5] -	cmp r0, 0x6 -	bls _08034994 -	b _08034AF2 -_08034994: -	lsls r0, 2 -	ldr r1, _080349A0 @ =_080349A4 -	adds r0, r1 -	ldr r0, [r0] -	mov pc, r0 -	.align 2, 0 -_080349A0: .4byte _080349A4 -	.align 2, 0 -_080349A4: -	.4byte _080349C0 -	.4byte _080349C6 -	.4byte _08034AD0 -	.4byte _080349DC -	.4byte _08034A0C -	.4byte _08034A48 -	.4byte _08034AE8 -_080349C0: -	bl ClearSpritesBankHealthboxAnimData -	b _08034AD0 -_080349C6: -	ldrb r0, [r4] -	bl BattleLoadAllHealthBoxesGfx -	lsls r0, 24 -	cmp r0, 0 -	beq _080349D4 -	b _08034ACC -_080349D4: -	ldrb r0, [r4] -	adds r0, 0x1 -	strb r0, [r4] -	b _08034AF2 -_080349DC: -	ldr r0, _080349F4 @ =gBattleTypeFlags -	ldr r0, [r0] -	movs r1, 0x80 -	ands r0, r1 -	cmp r0, 0 -	beq _080349F8 -	ldrb r0, [r4] -	cmp r0, 0 -	bne _080349F8 -	bl CreateSafariPlayerHealthboxSprites -	b _080349FE -	.align 2, 0 -_080349F4: .4byte gBattleTypeFlags -_080349F8: -	ldrb r0, [r4] -	bl CreateBankHealthboxSprites -_080349FE: -	ldr r2, _08034A08 @ =gUnknown_3004FF0 -	ldrb r1, [r4] -	adds r1, r2 -	strb r0, [r1] -	b _08034ABA -	.align 2, 0 -_08034A08: .4byte gUnknown_3004FF0 -_08034A0C: -	ldrb r0, [r4] -	bl SetBankHealthboxSpritePos -	ldr r0, _08034A2C @ =gUnknown_2023BD6 -	ldrb r1, [r4] -	adds r0, r1, r0 -	ldrb r0, [r0] -	cmp r0, 0x1 -	bhi _08034A34 -	ldr r0, _08034A30 @ =gUnknown_3004FF0 -	adds r0, r1, r0 -	ldrb r0, [r0] -	movs r1, 0 -	bl nullsub_21 -	b _08034ABA -	.align 2, 0 -_08034A2C: .4byte gUnknown_2023BD6 -_08034A30: .4byte gUnknown_3004FF0 -_08034A34: -	ldr r0, _08034A44 @ =gUnknown_3004FF0 -	adds r0, r1, r0 -	ldrb r0, [r0] -	movs r1, 0x1 -	bl nullsub_21 -	b _08034ABA -	.align 2, 0 -_08034A44: .4byte gUnknown_3004FF0 -_08034A48: -	ldrb r0, [r4] -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	bne _08034A90 -	ldr r0, _08034A80 @ =gBattleTypeFlags -	ldr r0, [r0] -	movs r1, 0x80 -	ands r0, r1 -	cmp r0, 0 -	bne _08034AAE -	ldr r0, _08034A84 @ =gUnknown_3004FF0 -	ldrb r1, [r4] -	adds r0, r1, r0 -	ldrb r0, [r0] -	ldr r2, _08034A88 @ =gBattlerPartyIndexes -	lsls r1, 1 -	adds r1, r2 -	ldrh r2, [r1] -	movs r1, 0x64 -	muls r1, r2 -	ldr r2, _08034A8C @ =gPlayerParty -	adds r1, r2 -	movs r2, 0 -	bl UpdateHealthboxAttribute -	b _08034AAE -	.align 2, 0 -_08034A80: .4byte gBattleTypeFlags -_08034A84: .4byte gUnknown_3004FF0 -_08034A88: .4byte gBattlerPartyIndexes -_08034A8C: .4byte gPlayerParty -_08034A90: -	ldr r0, _08034AD8 @ =gUnknown_3004FF0 -	ldrb r1, [r4] -	adds r0, r1, r0 -	ldrb r0, [r0] -	ldr r2, _08034ADC @ =gBattlerPartyIndexes -	lsls r1, 1 -	adds r1, r2 -	ldrh r2, [r1] -	movs r1, 0x64 -	muls r1, r2 -	ldr r2, _08034AE0 @ =gEnemyParty -	adds r1, r2 -	movs r2, 0 -	bl UpdateHealthboxAttribute -_08034AAE: -	ldr r1, _08034AD8 @ =gUnknown_3004FF0 -	ldrb r0, [r4] -	adds r0, r1 -	ldrb r0, [r0] -	bl SetHealthboxSpriteInvisible -_08034ABA: -	ldrb r0, [r4] -	adds r0, 0x1 -	strb r0, [r4] -	ldr r1, _08034AE4 @ =gBattlersCount -	lsls r0, 24 -	lsrs r0, 24 -	ldrb r1, [r1] -	cmp r0, r1 -	bne _08034AF2 -_08034ACC: -	movs r0, 0 -	strb r0, [r4] -_08034AD0: -	ldrb r0, [r5] -	adds r0, 0x1 -	strb r0, [r5] -	b _08034AF2 -	.align 2, 0 -_08034AD8: .4byte gUnknown_3004FF0 -_08034ADC: .4byte gBattlerPartyIndexes -_08034AE0: .4byte gEnemyParty -_08034AE4: .4byte gBattlersCount -_08034AE8: -	bl LoadAndCreateEnemyShadowSprites -	bl sub_8127CAC -	movs r6, 0x1 -_08034AF2: -	adds r0, r6, 0 -	pop {r4-r6} -	pop {r1} -	bx r1 -	thumb_func_end BattleInitAllSprites - -	thumb_func_start ClearSpritesHealthboxAnimData -ClearSpritesHealthboxAnimData: @ 8034AFC -	push {r4,lr} -	ldr r4, _08034B20 @ =gUnknown_2024018 -	ldr r0, [r4] -	ldr r0, [r0, 0x4] -	movs r1, 0 -	movs r2, 0x30 -	bl memset -	ldr r0, [r4] -	ldr r0, [r0, 0x8] -	movs r1, 0 -	movs r2, 0x10 -	bl memset -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034B20: .4byte gUnknown_2024018 -	thumb_func_end ClearSpritesHealthboxAnimData - -	thumb_func_start ClearSpritesBankHealthboxAnimData -ClearSpritesBankHealthboxAnimData: @ 8034B24 -	push {lr} -	bl ClearSpritesHealthboxAnimData -	ldr r0, _08034B3C @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	movs r1, 0 -	movs r2, 0x10 -	bl memset -	pop {r0} -	bx r0 -	.align 2, 0 -_08034B3C: .4byte gUnknown_2024018 -	thumb_func_end ClearSpritesBankHealthboxAnimData - -	thumb_func_start CopyAllBattleSpritesInvisibilities -CopyAllBattleSpritesInvisibilities: @ 8034B40 -	push {r4-r7,lr} -	mov r7, r9 -	mov r6, r8 -	push {r6,r7} -	movs r4, 0 -	ldr r5, _08034BA4 @ =gBattlersCount -	ldrb r0, [r5] -	cmp r4, r0 -	bge _08034B96 -	ldr r0, _08034BA8 @ =gSprites -	mov r9, r0 -	movs r0, 0x1 -	mov r12, r0 -	movs r0, 0x2 -	negs r0, r0 -	mov r8, r0 -	ldr r7, _08034BAC @ =gUnknown_2024018 -	ldr r6, _08034BB0 @ =gBattlerSpriteIds -_08034B64: -	ldr r0, [r7] -	ldr r0, [r0] -	lsls r3, r4, 2 -	adds r3, r0 -	adds r0, r4, r6 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	add r0, r9 -	adds r0, 0x3E -	ldrb r1, [r0] -	lsls r1, 29 -	lsrs r1, 31 -	mov r0, r12 -	ands r1, r0 -	ldrb r2, [r3] -	mov r0, r8 -	ands r0, r2 -	orrs r0, r1 -	strb r0, [r3] -	adds r4, 0x1 -	ldrb r0, [r5] -	cmp r4, r0 -	blt _08034B64 -_08034B96: -	pop {r3,r4} -	mov r8, r3 -	mov r9, r4 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08034BA4: .4byte gBattlersCount -_08034BA8: .4byte gSprites -_08034BAC: .4byte gUnknown_2024018 -_08034BB0: .4byte gBattlerSpriteIds -	thumb_func_end CopyAllBattleSpritesInvisibilities - -	thumb_func_start CopyBattleSpriteInvisibility -CopyBattleSpriteInvisibility: @ 8034BB4 -	lsls r0, 24 -	lsrs r0, 24 -	ldr r1, _08034BE8 @ =gUnknown_2024018 -	ldr r1, [r1] -	ldr r1, [r1] -	lsls r3, r0, 2 -	adds r3, r1 -	ldr r2, _08034BEC @ =gSprites -	ldr r1, _08034BF0 @ =gBattlerSpriteIds -	adds r0, r1 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	adds r0, 0x3E -	ldrb r1, [r0] -	lsls r1, 29 -	lsrs r1, 31 -	ldrb r2, [r3] -	movs r0, 0x2 -	negs r0, r0 -	ands r0, r2 -	orrs r0, r1 -	strb r0, [r3] -	bx lr -	.align 2, 0 -_08034BE8: .4byte gUnknown_2024018 -_08034BEC: .4byte gSprites -_08034BF0: .4byte gBattlerSpriteIds -	thumb_func_end CopyBattleSpriteInvisibility - -	thumb_func_start sub_8034BF4 -sub_8034BF4: @ 8034BF4 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	sub sp, 0x18 -	lsls r0, 24 -	lsrs r0, 24 -	mov r9, r0 -	lsls r1, 24 -	lsrs r1, 24 -	str r1, [sp] -	lsls r2, 24 -	lsrs r2, 24 -	cmp r2, 0xFF -	beq _08034C16 -	b _08034D88 -_08034C16: -	bl GetBattlerPosition -	lsls r0, 24 -	lsrs r0, 24 -	mov r10, r0 -	ldr r0, _08034D58 @ =gBattlerPartyIndexes -	mov r1, r9 -	lsls r1, 1 -	adds r0, r1, r0 -	str r0, [sp, 0xC] -	ldrh r0, [r0] -	movs r2, 0x64 -	muls r0, r2 -	ldr r3, _08034D5C @ =gEnemyParty -	adds r0, r3 -	movs r1, 0xB -	bl GetMonData -	lsls r0, 16 -	lsrs r0, 16 -	mov r8, r0 -	ldr r1, [sp, 0xC] -	ldrh r0, [r1] -	movs r2, 0x64 -	muls r0, r2 -	ldr r3, _08034D5C @ =gEnemyParty -	adds r0, r3 -	movs r1, 0 -	bl GetMonData -	str r0, [sp, 0x4] -	ldr r1, [sp, 0xC] -	ldrh r0, [r1] -	movs r2, 0x64 -	muls r0, r2 -	ldr r3, _08034D5C @ =gEnemyParty -	adds r0, r3 -	movs r1, 0x1 -	bl GetMonData -	adds r7, r0, 0 -	mov r1, r8 -	lsls r0, r1, 3 -	ldr r1, _08034D60 @ =gMonFrontPicTable -	adds r0, r1 -	ldr r4, _08034D64 @ =gMonSpritesGfxPtr -	ldr r1, [r4] -	mov r2, r10 -	lsls r5, r2, 2 -	adds r1, 0x4 -	adds r1, r5 -	ldr r1, [r1] -	mov r2, r8 -	ldr r3, [sp, 0x4] -	bl HandleLoadSpecialPokePic_DontHandleDeoxys -	ldr r0, [r4] -	adds r0, 0x4 -	adds r0, r5 -	ldr r2, [r0] -	ldr r5, _08034D68 @ =gSprites -	ldr r4, _08034D6C @ =gBattlerSpriteIds -	add r4, r9 -	ldrb r1, [r4] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r5 -	ldrh r0, [r0, 0x4] -	lsls r0, 22 -	lsrs r0, 17 -	ldr r1, _08034D70 @ =0x06010000 -	adds r0, r1 -	ldr r1, _08034D74 @ =0x040000d4 -	str r2, [r1] -	str r0, [r1, 0x4] -	ldr r0, _08034D78 @ =0x84000200 -	str r0, [r1, 0x8] -	ldr r0, [r1, 0x8] -	mov r3, r9 -	lsls r0, r3, 20 -	movs r1, 0x80 -	lsls r1, 17 -	adds r0, r1 -	lsrs r0, 16 -	mov r10, r0 -	mov r0, r8 -	adds r1, r7, 0 -	ldr r2, [sp, 0x4] -	bl GetFrontSpritePalFromSpeciesAndPersonality -	adds r6, r0, 0 -	movs r0, 0x80 -	lsls r0, 3 -	bl AllocZeroed -	adds r7, r0, 0 -	adds r0, r6, 0 -	adds r1, r7, 0 -	bl LZDecompressWram -	adds r0, r7, 0 -	mov r1, r10 -	movs r2, 0x20 -	bl LoadPalette -	adds r0, r7, 0 -	bl Free -	mov r0, r9 -	bl GetBankSpriteDefault_Y -	ldrb r2, [r4] -	lsls r1, r2, 4 -	adds r1, r2 -	lsls r1, 2 -	adds r1, r5 -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r1, 0x22] -	ldrb r1, [r4] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r5 -	ldr r1, _08034D7C @ =gBattleMonForms -	add r1, r9 -	ldrb r1, [r1] -	bl StartSpriteAnim -	ldr r2, [sp, 0xC] -	ldrh r0, [r2] -	movs r3, 0x64 -	muls r0, r3 -	ldr r1, _08034D5C @ =gEnemyParty -	adds r0, r1 -	movs r1, 0xB -	mov r2, r8 -	muls r2, r1 -	ldr r1, _08034D80 @ =gSpeciesNames -	adds r2, r1 -	movs r1, 0x2 -	bl SetMonData -	ldr r4, _08034D84 @ =gUnknown_3004FF0 -	add r4, r9 -	ldrb r0, [r4] -	ldr r2, [sp, 0xC] -	ldrh r1, [r2] -	movs r3, 0x64 -	muls r1, r3 -	ldr r2, _08034D5C @ =gEnemyParty -	adds r1, r2 -	bl sub_80496C0 -	ldrb r0, [r4] -	movs r1, 0x1 -	bl sub_804981C -	b _08035062 -	.align 2, 0 -_08034D58: .4byte gBattlerPartyIndexes -_08034D5C: .4byte gEnemyParty -_08034D60: .4byte gMonFrontPicTable -_08034D64: .4byte gMonSpritesGfxPtr -_08034D68: .4byte gSprites -_08034D6C: .4byte gBattlerSpriteIds -_08034D70: .4byte 0x06010000 -_08034D74: .4byte 0x040000d4 -_08034D78: .4byte 0x84000200 -_08034D7C: .4byte gBattleMonForms -_08034D80: .4byte gSpeciesNames -_08034D84: .4byte gUnknown_3004FF0 -_08034D88: -	cmp r2, 0 -	beq _08034E4C -	ldr r0, _08034E28 @ =gBattlerSpriteIds -	mov r3, r9 -	adds r5, r3, r0 -	ldrb r1, [r5] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r6, _08034E2C @ =gSprites -	adds r0, r6 -	ldr r4, _08034E30 @ =gUnknown_2024018 -	ldr r1, [r4] -	ldr r1, [r1, 0x8] -	ldrb r1, [r1] -	bl StartSpriteAnim -	mov r1, r9 -	lsls r0, r1, 20 -	movs r2, 0x80 -	lsls r2, 17 -	adds r0, r2 -	lsrs r0, 16 -	mov r10, r0 -	ldr r2, _08034E34 @ =gBattleStruct -	ldr r0, [r4] -	ldr r0, [r0, 0x8] -	ldrh r1, [r0] -	lsls r1, 5 -	movs r3, 0x80 -	lsls r3, 1 -	adds r1, r3 -	ldr r0, [r2] -	adds r0, r1 -	mov r1, r10 -	movs r2, 0x20 -	bl LoadPalette -	ldr r1, _08034E38 @ =gBattleMonForms -	add r1, r9 -	ldr r0, [r4] -	ldr r0, [r0, 0x8] -	ldrh r0, [r0] -	strb r0, [r1] -	ldr r0, [r4] -	ldr r1, [r0] -	mov r2, r9 -	lsls r0, r2, 2 -	adds r0, r1 -	ldrh r0, [r0, 0x2] -	cmp r0, 0 -	beq _08034E0E -	ldr r3, _08034E3C @ =0x00007fff -	mov r0, r10 -	movs r1, 0x10 -	movs r2, 0x6 -	bl BlendPalette -	mov r3, r10 -	lsls r1, r3, 1 -	ldr r0, _08034E40 @ =gPlttBufferFaded -	adds r0, r1, r0 -	ldr r2, _08034E44 @ =gPlttBufferUnfaded -	adds r1, r2 -	ldr r2, _08034E48 @ =0x04000008 -	bl CpuSet -_08034E0E: -	mov r0, r9 -	bl GetBankSpriteDefault_Y -	ldrb r2, [r5] -	lsls r1, r2, 4 -	adds r1, r2 -	lsls r1, 2 -	adds r1, r6 -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r1, 0x22] -	b _08035062 -	.align 2, 0 -_08034E28: .4byte gBattlerSpriteIds -_08034E2C: .4byte gSprites -_08034E30: .4byte gUnknown_2024018 -_08034E34: .4byte gBattleStruct -_08034E38: .4byte gBattleMonForms -_08034E3C: .4byte 0x00007fff -_08034E40: .4byte gPlttBufferFaded -_08034E44: .4byte gPlttBufferUnfaded -_08034E48: .4byte 0x04000008 -_08034E4C: -	mov r0, r9 -	bl GetBattlerPosition -	lsls r0, 24 -	lsrs r0, 24 -	mov r10, r0 -	ldr r0, [sp] -	bl GetBattlerSide -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x1 -	bne _08034E80 -	ldr r1, _08034E78 @ =gBattlerPartyIndexes -	ldr r2, [sp] -	lsls r0, r2, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _08034E7C @ =gEnemyParty -	b _08034E90 -	.align 2, 0 -_08034E78: .4byte gBattlerPartyIndexes -_08034E7C: .4byte gEnemyParty -_08034E80: -	ldr r1, _08034EFC @ =gBattlerPartyIndexes -	ldr r3, [sp] -	lsls r0, r3, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _08034F00 @ =gPlayerParty -_08034E90: -	adds r0, r1 -	movs r1, 0xB -	bl GetMonData -	lsls r0, 16 -	lsrs r0, 16 -	mov r8, r0 -	mov r0, r9 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	bne _08034F10 -	ldr r0, _08034EFC @ =gBattlerPartyIndexes -	mov r1, r9 -	lsls r4, r1, 1 -	adds r4, r0 -	ldrh r0, [r4] -	movs r7, 0x64 -	muls r0, r7 -	ldr r5, _08034F00 @ =gPlayerParty -	adds r0, r5 -	movs r1, 0 -	bl GetMonData -	str r0, [sp, 0x4] -	ldrh r0, [r4] -	muls r0, r7 -	adds r0, r5 -	movs r1, 0x1 -	bl GetMonData -	adds r7, r0, 0 -	mov r2, r8 -	lsls r0, r2, 3 -	ldr r1, _08034F04 @ =gMonBackPicTable -	adds r0, r1 -	ldr r1, _08034F08 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	mov r3, r10 -	lsls r5, r3, 2 -	adds r1, 0x4 -	adds r1, r5 -	ldr r1, [r1] -	ldr r2, _08034F0C @ =gUnknown_2024008 -	mov r3, r9 -	lsls r4, r3, 2 -	adds r2, r4, r2 -	ldr r3, [r2] -	mov r2, r8 -	bl HandleLoadSpecialPokePic_DontHandleDeoxys -	b _08034F5E -	.align 2, 0 -_08034EFC: .4byte gBattlerPartyIndexes -_08034F00: .4byte gPlayerParty -_08034F04: .4byte gMonBackPicTable -_08034F08: .4byte gMonSpritesGfxPtr -_08034F0C: .4byte gUnknown_2024008 -_08034F10: -	ldr r0, _08035074 @ =gBattlerPartyIndexes -	mov r1, r9 -	lsls r4, r1, 1 -	adds r4, r0 -	ldrh r0, [r4] -	movs r7, 0x64 -	muls r0, r7 -	ldr r5, _08035078 @ =gEnemyParty -	adds r0, r5 -	movs r1, 0 -	bl GetMonData -	str r0, [sp, 0x4] -	ldrh r0, [r4] -	muls r0, r7 -	adds r0, r5 -	movs r1, 0x1 -	bl GetMonData -	adds r7, r0, 0 -	mov r2, r8 -	lsls r0, r2, 3 -	ldr r1, _0803507C @ =gMonFrontPicTable -	adds r0, r1 -	ldr r1, _08035080 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	mov r3, r10 -	lsls r5, r3, 2 -	adds r1, 0x4 -	adds r1, r5 -	ldr r1, [r1] -	ldr r2, _08035084 @ =gUnknown_2024008 -	mov r3, r9 -	lsls r4, r3, 2 -	adds r2, r4, r2 -	ldr r3, [r2] -	mov r2, r8 -	bl HandleLoadSpecialPokePic_DontHandleDeoxys -_08034F5E: -	str r4, [sp, 0x14] -	ldr r0, _08035080 @ =gMonSpritesGfxPtr -	ldr r0, [r0] -	adds r0, 0x4 -	adds r0, r5 -	ldr r2, [r0] -	ldr r0, _08035088 @ =gBattlerSpriteIds -	add r0, r9 -	str r0, [sp, 0x10] -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r1, _0803508C @ =gSprites -	adds r0, r1 -	ldrh r0, [r0, 0x4] -	lsls r0, 22 -	lsrs r0, 17 -	ldr r1, _08035090 @ =0x06010000 -	adds r0, r1 -	ldr r1, _08035094 @ =0x040000d4 -	str r2, [r1] -	str r0, [r1, 0x4] -	ldr r0, _08035098 @ =0x84000200 -	str r0, [r1, 0x8] -	ldr r0, [r1, 0x8] -	mov r2, r9 -	lsls r0, r2, 20 -	movs r3, 0x80 -	lsls r3, 17 -	adds r0, r3 -	lsrs r0, 16 -	mov r10, r0 -	mov r0, r8 -	adds r1, r7, 0 -	ldr r2, [sp, 0x4] -	bl GetFrontSpritePalFromSpeciesAndPersonality -	adds r6, r0, 0 -	movs r0, 0x80 -	lsls r0, 3 -	bl AllocZeroed -	adds r7, r0, 0 -	adds r0, r6, 0 -	adds r1, r7, 0 -	bl LZDecompressWram -	adds r0, r7, 0 -	mov r1, r10 -	movs r2, 0x20 -	bl LoadPalette -	adds r0, r7, 0 -	bl Free -	ldr r0, _0803509C @ =0x00000181 -	cmp r8, r0 -	bne _08034FFC -	ldr r5, _080350A0 @ =gBattleStruct -	ldr r1, [r5] -	movs r4, 0x80 -	lsls r4, 1 -	adds r1, r4 -	adds r0, r6, 0 -	bl LZDecompressWram -	ldr r0, _080350A4 @ =gBattleMonForms -	ldr r1, [sp] -	adds r0, r1, r0 -	ldrb r1, [r0] -	lsls r1, 5 -	adds r1, r4 -	ldr r0, [r5] -	adds r0, r1 -	mov r1, r10 -	movs r2, 0x20 -	bl LoadPalette -_08034FFC: -	ldr r3, _080350A8 @ =0x00007fff -	mov r0, r10 -	movs r1, 0x10 -	movs r2, 0x6 -	bl BlendPalette -	mov r2, r10 -	lsls r1, r2, 1 -	ldr r0, _080350AC @ =gPlttBufferFaded -	adds r0, r1, r0 -	ldr r2, _080350B0 @ =gPlttBufferUnfaded -	adds r1, r2 -	ldr r2, _080350B4 @ =0x04000008 -	bl CpuSet -	ldr r0, _080350B8 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	ldr r3, [sp, 0x14] -	adds r0, r3, r0 -	mov r1, r8 -	strh r1, [r0, 0x2] -	ldr r0, _080350A4 @ =gBattleMonForms -	mov r2, r9 -	adds r4, r2, r0 -	ldr r3, [sp] -	adds r0, r3, r0 -	ldrb r0, [r0] -	strb r0, [r4] -	mov r0, r9 -	bl GetBankSpriteDefault_Y -	ldr r1, [sp, 0x10] -	ldrb r2, [r1] -	lsls r1, r2, 4 -	adds r1, r2 -	lsls r1, 2 -	ldr r2, _0803508C @ =gSprites -	adds r1, r2 -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r1, 0x22] -	ldr r3, [sp, 0x10] -	ldrb r1, [r3] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	ldrb r1, [r4] -	bl StartSpriteAnim -_08035062: -	add sp, 0x18 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035074: .4byte gBattlerPartyIndexes -_08035078: .4byte gEnemyParty -_0803507C: .4byte gMonFrontPicTable -_08035080: .4byte gMonSpritesGfxPtr -_08035084: .4byte gUnknown_2024008 -_08035088: .4byte gBattlerSpriteIds -_0803508C: .4byte gSprites -_08035090: .4byte 0x06010000 -_08035094: .4byte 0x040000d4 -_08035098: .4byte 0x84000200 -_0803509C: .4byte 0x00000181 -_080350A0: .4byte gBattleStruct -_080350A4: .4byte gBattleMonForms -_080350A8: .4byte 0x00007fff -_080350AC: .4byte gPlttBufferFaded -_080350B0: .4byte gPlttBufferUnfaded -_080350B4: .4byte 0x04000008 -_080350B8: .4byte gUnknown_2024018 -	thumb_func_end sub_8034BF4 - -	thumb_func_start sub_80350BC -sub_80350BC: @ 80350BC -	push {r4-r7,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	adds r6, r4, 0 -	lsls r1, 24 -	cmp r1, 0 -	bne _08035158 -	adds r0, r4, 0 -	bl GetBattlerPosition -	lsls r0, 24 -	lsrs r5, r0, 24 -	adds r0, r4, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _080350FC -	ldr r0, _080350F4 @ =gFile_graphics_battle_anims_sprites_substitute_sheet -	ldr r1, _080350F8 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	lsls r4, r5, 2 -	adds r1, 0x4 -	adds r1, r4 -	ldr r1, [r1] -	bl LZDecompressVram -	b _0803510E -	.align 2, 0 -_080350F4: .4byte gFile_graphics_battle_anims_sprites_substitute_sheet -_080350F8: .4byte gMonSpritesGfxPtr -_080350FC: -	ldr r0, _08035144 @ =gFile_graphics_battle_anims_sprites_substitute_tilemap -	ldr r1, _08035148 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	lsls r4, r5, 2 -	adds r1, 0x4 -	adds r1, r4 -	ldr r1, [r1] -	bl LZDecompressVram -_0803510E: -	movs r3, 0x1 -	lsls r6, 4 -	ldr r7, _0803514C @ =gFile_graphics_battle_anims_sprites_substitute_palette -	ldr r0, _08035148 @ =gMonSpritesGfxPtr -	ldr r0, [r0] -	adds r0, 0x4 -	adds r4, r0, r4 -	ldr r2, _08035150 @ =0x040000d4 -	ldr r5, _08035154 @ =0x84000200 -_08035120: -	ldr r0, [r4] -	lsls r1, r3, 11 -	adds r1, r0, r1 -	str r0, [r2] -	str r1, [r2, 0x4] -	str r5, [r2, 0x8] -	ldr r0, [r2, 0x8] -	adds r3, 0x1 -	cmp r3, 0x3 -	ble _08035120 -	movs r0, 0x80 -	lsls r0, 1 -	adds r1, r6, r0 -	adds r0, r7, 0 -	movs r2, 0x20 -	bl LoadCompressedPalette -	b _0803519A -	.align 2, 0 -_08035144: .4byte gFile_graphics_battle_anims_sprites_substitute_tilemap -_08035148: .4byte gMonSpritesGfxPtr -_0803514C: .4byte gFile_graphics_battle_anims_sprites_substitute_palette -_08035150: .4byte 0x040000d4 -_08035154: .4byte 0x84000200 -_08035158: -	adds r0, r4, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _08035184 -	ldr r1, _0803517C @ =gBattlerPartyIndexes -	lsls r0, r4, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _08035180 @ =gEnemyParty -	adds r0, r1 -	adds r1, r4, 0 -	bl BattleLoadOpponentMonSpriteGfx -	b _0803519A -	.align 2, 0 -_0803517C: .4byte gBattlerPartyIndexes -_08035180: .4byte gEnemyParty -_08035184: -	ldr r1, _080351A0 @ =gBattlerPartyIndexes -	lsls r0, r6, 1 -	adds r0, r1 -	ldrh r1, [r0] -	movs r0, 0x64 -	muls r0, r1 -	ldr r1, _080351A4 @ =gPlayerParty -	adds r0, r1 -	adds r1, r6, 0 -	bl sub_8034498 -_0803519A: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_080351A0: .4byte gBattlerPartyIndexes -_080351A4: .4byte gPlayerParty -	thumb_func_end sub_80350BC - -	thumb_func_start LoadBattleMonGfxAndAnimate -LoadBattleMonGfxAndAnimate: @ 80351A8 -	push {r4-r6,lr} -	adds r5, r1, 0 -	adds r4, r2, 0 -	lsls r0, 24 -	lsrs r6, r0, 24 -	lsls r5, 24 -	lsrs r5, 24 -	lsls r4, 24 -	lsrs r4, 24 -	adds r0, r6, 0 -	adds r1, r5, 0 -	bl sub_80350BC -	lsls r0, r4, 4 -	adds r0, r4 -	lsls r0, 2 -	ldr r1, _080351E4 @ =gSprites -	adds r4, r0, r1 -	ldr r0, _080351E8 @ =gBattleMonForms -	adds r0, r6, r0 -	ldrb r1, [r0] -	adds r0, r4, 0 -	bl StartSpriteAnim -	cmp r5, 0 -	bne _080351EC -	adds r0, r6, 0 -	bl GetSubstituteSpriteDefault_Y -	b _080351F2 -	.align 2, 0 -_080351E4: .4byte gSprites -_080351E8: .4byte gBattleMonForms -_080351EC: -	adds r0, r6, 0 -	bl GetBankSpriteDefault_Y -_080351F2: -	lsls r0, 24 -	lsrs r0, 24 -	strh r0, [r4, 0x22] -	pop {r4-r6} -	pop {r0} -	bx r0 -	thumb_func_end LoadBattleMonGfxAndAnimate - -	thumb_func_start TrySetBehindSubstituteSpriteBit -TrySetBehindSubstituteSpriteBit: @ 8035200 -	push {lr} -	lsls r0, 24 -	lsrs r2, r0, 24 -	lsls r1, 16 -	lsrs r1, 16 -	cmp r1, 0xA4 -	bne _08035220 -	ldr r0, _08035224 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0] -	lsls r1, r2, 2 -	adds r1, r0 -	ldrb r0, [r1] -	movs r2, 0x4 -	orrs r0, r2 -	strb r0, [r1] -_08035220: -	pop {r0} -	bx r0 -	.align 2, 0 -_08035224: .4byte gUnknown_2024018 -	thumb_func_end TrySetBehindSubstituteSpriteBit - -	thumb_func_start ClearBehindSubstituteBit -ClearBehindSubstituteBit: @ 8035228 -	lsls r0, 24 -	ldr r1, _08035240 @ =gUnknown_2024018 -	ldr r1, [r1] -	ldr r1, [r1] -	lsrs r0, 22 -	adds r0, r1 -	ldrb r2, [r0] -	movs r1, 0x5 -	negs r1, r1 -	ands r1, r2 -	strb r1, [r0] -	bx lr -	.align 2, 0 -_08035240: .4byte gUnknown_2024018 -	thumb_func_end ClearBehindSubstituteBit - -	thumb_func_start HandleLowHpMusicChange -HandleLowHpMusicChange: @ 8035244 -	push {r4-r7,lr} -	adds r5, r0, 0 -	lsls r1, 24 -	lsrs r6, r1, 24 -	adds r7, r6, 0 -	movs r1, 0x39 -	bl GetMonData -	adds r4, r0, 0 -	lsls r4, 16 -	lsrs r4, 16 -	adds r0, r5, 0 -	movs r1, 0x3A -	bl GetMonData -	adds r1, r0, 0 -	lsls r4, 16 -	asrs r4, 16 -	lsls r1, 16 -	asrs r1, 16 -	adds r0, r4, 0 -	bl GetHPBarLevel -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x1 -	bne _080352BC -	ldr r7, _080352B8 @ =gUnknown_2024018 -	ldr r0, [r7] -	ldr r2, [r0] -	lsls r4, r6, 2 -	adds r0, r4, r2 -	ldrb r1, [r0] -	movs r5, 0x2 -	movs r3, 0x2 -	adds r0, r3, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _0803530E -	adds r0, r6, 0 -	eors r0, r5 -	lsls r0, 2 -	adds r0, r2 -	ldrb r1, [r0] -	adds r0, r3, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _080352AA -	movs r0, 0x53 -	bl PlaySE -_080352AA: -	ldr r0, [r7] -	ldr r1, [r0] -	adds r1, r4, r1 -	ldrb r0, [r1] -	orrs r0, r5 -	strb r0, [r1] -	b _0803530E -	.align 2, 0 -_080352B8: .4byte gUnknown_2024018 -_080352BC: -	ldr r4, _080352E4 @ =gUnknown_2024018 -	ldr r0, [r4] -	ldr r0, [r0] -	lsls r1, r6, 2 -	adds r1, r0 -	ldrb r2, [r1] -	movs r0, 0x3 -	negs r0, r0 -	ands r0, r2 -	strb r0, [r1] -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	bne _080352E8 -	movs r0, 0x53 -	bl m4aSongNumStop -	b _0803530E -	.align 2, 0 -_080352E4: .4byte gUnknown_2024018 -_080352E8: -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	beq _0803530E -	ldr r1, [r4] -	movs r0, 0x2 -	eors r7, r0 -	ldr r1, [r1] -	lsls r0, r7, 2 -	adds r0, r1 -	ldrb r1, [r0] -	movs r0, 0x2 -	ands r0, r1 -	cmp r0, 0 -	bne _0803530E -	movs r0, 0x53 -	bl m4aSongNumStop -_0803530E: -	pop {r4-r7} -	pop {r0} -	bx r0 -	thumb_func_end HandleLowHpMusicChange - -	thumb_func_start BattleStopLowHpSound -BattleStopLowHpSound: @ 8035314 -	push {r4-r6,lr} -	movs r0, 0 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r5, _08035364 @ =gUnknown_2024018 -	ldr r0, [r5] -	ldr r0, [r0] -	lsls r1, r4, 2 -	adds r1, r0 -	ldrb r2, [r1] -	movs r6, 0x3 -	negs r6, r6 -	adds r0, r6, 0 -	ands r0, r2 -	strb r0, [r1] -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	beq _08035356 -	ldr r2, [r5] -	movs r0, 0x2 -	adds r1, r4, 0 -	eors r1, r0 -	ldr r0, [r2] -	lsls r1, 2 -	adds r1, r0 -	ldrb r2, [r1] -	adds r0, r6, 0 -	ands r0, r2 -	strb r0, [r1] -_08035356: -	movs r0, 0x53 -	bl m4aSongNumStop -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035364: .4byte gUnknown_2024018 -	thumb_func_end BattleStopLowHpSound - -	thumb_func_start GetMonHPBarLevel -GetMonHPBarLevel: @ 8035368 -	push {r4,r5,lr} -	adds r5, r0, 0 -	movs r1, 0x39 -	bl GetMonData -	adds r4, r0, 0 -	lsls r4, 16 -	lsrs r4, 16 -	adds r0, r5, 0 -	movs r1, 0x3A -	bl GetMonData -	adds r1, r0, 0 -	lsls r4, 16 -	asrs r4, 16 -	lsls r1, 16 -	asrs r1, 16 -	adds r0, r4, 0 -	bl GetHPBarLevel -	lsls r0, 24 -	lsrs r0, 24 -	pop {r4,r5} -	pop {r1} -	bx r1 -	thumb_func_end GetMonHPBarLevel - -	thumb_func_start sub_803539C -sub_803539C: @ 803539C -	push {r4-r7,lr} -	mov r7, r9 -	mov r6, r8 -	push {r6,r7} -	ldr r0, _08035440 @ =gMain -	ldr r1, _08035444 @ =0x00000439 -	adds r0, r1 -	ldrb r1, [r0] -	movs r0, 0x2 -	ands r0, r1 -	cmp r0, 0 -	beq _08035432 -	movs r0, 0 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	mov r8, r0 -	movs r0, 0x2 -	bl GetBattlerAtPosition -	lsls r0, 24 -	lsrs r0, 24 -	mov r9, r0 -	ldr r5, _08035448 @ =gBattlerPartyIndexes -	mov r1, r8 -	lsls r0, r1, 1 -	adds r0, r5 -	ldrb r0, [r0] -	bl pokemon_order_func -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	mov r1, r9 -	lsls r0, r1, 1 -	adds r0, r5 -	ldrb r0, [r0] -	bl pokemon_order_func -	lsls r0, 24 -	lsrs r5, r0, 24 -	movs r7, 0x64 -	adds r0, r4, 0 -	muls r0, r7 -	ldr r6, _0803544C @ =gPlayerParty -	adds r4, r0, r6 -	adds r0, r4, 0 -	movs r1, 0x39 -	bl GetMonData -	cmp r0, 0 -	beq _0803540E -	adds r0, r4, 0 -	mov r1, r8 -	bl HandleLowHpMusicChange -_0803540E: -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	beq _08035432 -	adds r0, r5, 0 -	muls r0, r7 -	adds r4, r0, r6 -	adds r0, r4, 0 -	movs r1, 0x39 -	bl GetMonData -	cmp r0, 0 -	beq _08035432 -	adds r0, r4, 0 -	mov r1, r9 -	bl HandleLowHpMusicChange -_08035432: -	pop {r3,r4} -	mov r8, r3 -	mov r9, r4 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035440: .4byte gMain -_08035444: .4byte 0x00000439 -_08035448: .4byte gBattlerPartyIndexes -_0803544C: .4byte gPlayerParty -	thumb_func_end sub_803539C - -	thumb_func_start sub_8035450 -sub_8035450: @ 8035450 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	lsls r0, 24 -	lsrs r0, 24 -	mov r8, r0 -	movs r5, 0 -	ldr r0, _080354E0 @ =gBattlersCount -	ldrb r0, [r0] -	cmp r5, r0 -	bge _08035520 -	movs r0, 0x3 -	mov r10, r8 -	mov r1, r10 -	ands r1, r0 -	mov r10, r1 -	movs r6, 0 -	movs r2, 0x3F -	negs r2, r2 -	mov r9, r2 -_0803547C: -	lsls r0, r5, 24 -	lsrs r0, 24 -	bl sub_8075224 -	lsls r0, 24 -	cmp r0, 0 -	beq _08035514 -	ldr r4, _080354E4 @ =gSprites -	ldr r0, _080354E8 @ =gBattlerSpriteIds -	adds r3, r5, r0 -	ldrb r1, [r3] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	ldrb r1, [r0, 0x1] -	movs r7, 0x4 -	negs r7, r7 -	adds r2, r7, 0 -	ands r1, r2 -	mov r2, r10 -	orrs r1, r2 -	strb r1, [r0, 0x1] -	mov r7, r8 -	cmp r7, 0 -	bne _080354F0 -	ldr r0, _080354EC @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r2, [r0, 0x4] -	adds r2, r6, r2 -	ldrb r1, [r3] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	ldrb r0, [r0, 0x3] -	lsls r0, 26 -	lsrs r0, 27 -	strb r0, [r2, 0x6] -	ldrb r1, [r3] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r4 -	ldrb r1, [r0, 0x3] -	mov r2, r9 -	ands r1, r2 -	strb r1, [r0, 0x3] -	b _08035514 -	.align 2, 0 -_080354E0: .4byte gBattlersCount -_080354E4: .4byte gSprites -_080354E8: .4byte gBattlerSpriteIds -_080354EC: .4byte gUnknown_2024018 -_080354F0: -	ldrb r0, [r3] -	lsls r2, r0, 4 -	adds r2, r0 -	lsls r2, 2 -	adds r2, r4 -	ldr r0, _08035530 @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r0, [r0, 0x4] -	adds r0, r6, r0 -	ldrb r1, [r0, 0x6] -	movs r0, 0x1F -	ands r1, r0 -	lsls r1, 1 -	ldrb r0, [r2, 0x3] -	mov r3, r9 -	ands r0, r3 -	orrs r0, r1 -	strb r0, [r2, 0x3] -_08035514: -	adds r6, 0xC -	adds r5, 0x1 -	ldr r0, _08035534 @ =gBattlersCount -	ldrb r0, [r0] -	cmp r5, r0 -	blt _0803547C -_08035520: -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035530: .4byte gUnknown_2024018 -_08035534: .4byte gBattlersCount -	thumb_func_end sub_8035450 - -	thumb_func_start LoadAndCreateEnemyShadowSprites -LoadAndCreateEnemyShadowSprites: @ 8035538 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	ldr r0, _08035614 @ =gUnknown_8250A0C -	bl LoadCompressedSpriteSheetUsingHeap -	movs r0, 0x1 -	bl GetBattlerAtPosition -	adds r5, r0, 0 -	lsls r5, 24 -	lsrs r5, 24 -	ldr r0, _08035618 @ =gUnknown_8250A1C -	mov r8, r0 -	adds r0, r5, 0 -	movs r1, 0 -	bl sub_8074480 -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	adds r0, r5, 0 -	movs r1, 0x1 -	bl sub_8074480 -	adds r2, r0, 0 -	lsls r2, 24 -	lsrs r2, 8 -	movs r0, 0xE8 -	lsls r0, 13 -	adds r2, r0 -	asrs r2, 16 -	mov r0, r8 -	adds r1, r4, 0 -	movs r3, 0xC8 -	bl CreateSprite -	ldr r6, _0803561C @ =gUnknown_2024018 -	ldr r1, [r6] -	ldr r2, [r1, 0x4] -	lsls r1, r5, 1 -	adds r1, r5 -	lsls r1, 2 -	adds r2, r1, r2 -	strb r0, [r2, 0x7] -	ldr r7, _08035620 @ =gSprites -	ldr r0, [r6] -	ldr r0, [r0, 0x4] -	adds r1, r0 -	ldrb r1, [r1, 0x7] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r7 -	strh r5, [r0, 0x2E] -	bl sub_8075290 -	lsls r0, 24 -	cmp r0, 0 -	beq _0803560A -	movs r0, 0x3 -	bl GetBattlerAtPosition -	adds r5, r0, 0 -	lsls r5, 24 -	lsrs r5, 24 -	adds r0, r5, 0 -	movs r1, 0 -	bl sub_8074480 -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	adds r0, r5, 0 -	movs r1, 0x1 -	bl sub_8074480 -	adds r2, r0, 0 -	lsls r2, 24 -	lsrs r2, 8 -	movs r0, 0xE8 -	lsls r0, 13 -	adds r2, r0 -	asrs r2, 16 -	mov r0, r8 -	adds r1, r4, 0 -	movs r3, 0xC8 -	bl CreateSprite -	ldr r1, [r6] -	ldr r2, [r1, 0x4] -	lsls r1, r5, 1 -	adds r1, r5 -	lsls r1, 2 -	adds r2, r1, r2 -	strb r0, [r2, 0x7] -	ldr r0, [r6] -	ldr r0, [r0, 0x4] -	adds r1, r0 -	ldrb r1, [r1, 0x7] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r7 -	strh r5, [r0, 0x2E] -_0803560A: -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035614: .4byte gUnknown_8250A0C -_08035618: .4byte gUnknown_8250A1C -_0803561C: .4byte gUnknown_2024018 -_08035620: .4byte gSprites -	thumb_func_end LoadAndCreateEnemyShadowSprites - -	thumb_func_start SpriteCB_EnemyShadow -SpriteCB_EnemyShadow: @ 8035624 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	adds r5, r0, 0 -	movs r0, 0 -	mov r8, r0 -	ldrh r0, [r5, 0x2E] -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r0, _08035668 @ =gBattlerSpriteIds -	adds r0, r4, r0 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r1, _0803566C @ =gSprites -	adds r7, r0, r1 -	adds r6, r7, 0 -	adds r6, 0x3E -	ldrb r1, [r6] -	movs r0, 0x1 -	ands r0, r1 -	cmp r0, 0 -	beq _08035660 -	adds r0, r4, 0 -	bl sub_8075224 -	lsls r0, 24 -	cmp r0, 0 -	bne _08035674 -_08035660: -	ldr r0, _08035670 @ =SpriteCB_SetInvisible -	str r0, [r5, 0x1C] -	b _080356EA -	.align 2, 0 -_08035668: .4byte gBattlerSpriteIds -_0803566C: .4byte gSprites -_08035670: .4byte SpriteCB_SetInvisible -_08035674: -	ldr r0, _08035690 @ =gUnknown_2037EE1 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _08035686 -	ldrb r1, [r6] -	movs r0, 0x4 -	ands r0, r1 -	cmp r0, 0 -	beq _08035698 -_08035686: -	movs r0, 0x1 -	mov r8, r0 -	ldr r2, _08035694 @ =gUnknown_2024018 -	lsls r4, 2 -	b _080356BA -	.align 2, 0 -_08035690: .4byte gUnknown_2037EE1 -_08035694: .4byte gUnknown_2024018 -_08035698: -	ldr r2, _080356F4 @ =gUnknown_2024018 -	ldr r0, [r2] -	ldr r0, [r0] -	lsls r1, r4, 2 -	adds r3, r1, r0 -	ldrh r0, [r3, 0x2] -	adds r4, r1, 0 -	cmp r0, 0 -	beq _080356BA -	ldr r0, _080356F8 @ =gUnknown_823A004 -	ldrh r1, [r3, 0x2] -	adds r1, r0 -	ldrb r0, [r1] -	cmp r0, 0 -	bne _080356BA -	movs r0, 0x1 -	mov r8, r0 -_080356BA: -	ldr r0, [r2] -	ldr r0, [r0] -	adds r0, r4, r0 -	ldrb r1, [r0] -	movs r0, 0x4 -	ands r0, r1 -	cmp r0, 0 -	beq _080356CE -	movs r0, 0x1 -	mov r8, r0 -_080356CE: -	ldrh r0, [r7, 0x20] -	strh r0, [r5, 0x20] -	ldrh r0, [r7, 0x24] -	strh r0, [r5, 0x24] -	adds r2, r5, 0 -	adds r2, 0x3E -	mov r0, r8 -	lsls r3, r0, 2 -	ldrb r1, [r2] -	movs r0, 0x5 -	negs r0, r0 -	ands r0, r1 -	orrs r0, r3 -	strb r0, [r2] -_080356EA: -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_080356F4: .4byte gUnknown_2024018 -_080356F8: .4byte gUnknown_823A004 -	thumb_func_end SpriteCB_EnemyShadow - -	thumb_func_start SpriteCB_SetInvisible -SpriteCB_SetInvisible: @ 80356FC -	adds r0, 0x3E -	ldrb r1, [r0] -	movs r2, 0x4 -	orrs r1, r2 -	strb r1, [r0] -	bx lr -	thumb_func_end SpriteCB_SetInvisible - -	thumb_func_start SetBankEnemyShadowSpriteCallback -SetBankEnemyShadowSpriteCallback: @ 8035708 -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	adds r6, r4, 0 -	lsls r1, 16 -	lsrs r5, r1, 16 -	adds r0, r4, 0 -	bl GetBattlerSide -	lsls r0, 24 -	cmp r0, 0 -	beq _08035784 -	ldr r0, _08035758 @ =gUnknown_2024018 -	ldr r3, [r0] -	ldr r1, [r3] -	lsls r0, r4, 2 -	adds r1, r0, r1 -	ldrh r0, [r1, 0x2] -	cmp r0, 0 -	beq _08035732 -	adds r5, r0, 0 -_08035732: -	ldr r0, _0803575C @ =gUnknown_823A004 -	adds r0, r5, r0 -	ldrb r0, [r0] -	cmp r0, 0 -	beq _08035768 -	ldr r2, _08035760 @ =gSprites -	ldr r1, [r3, 0x4] -	lsls r0, r4, 1 -	adds r0, r4 -	lsls r0, 2 -	adds r0, r1 -	ldrb r1, [r0, 0x7] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r2, 0x1C -	adds r0, r2 -	ldr r1, _08035764 @ =SpriteCB_EnemyShadow -	b _08035782 -	.align 2, 0 -_08035758: .4byte gUnknown_2024018 -_0803575C: .4byte gUnknown_823A004 -_08035760: .4byte gSprites -_08035764: .4byte SpriteCB_EnemyShadow -_08035768: -	ldr r2, _0803578C @ =gSprites -	ldr r1, [r3, 0x4] -	lsls r0, r6, 1 -	adds r0, r6 -	lsls r0, 2 -	adds r0, r1 -	ldrb r1, [r0, 0x7] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r2, 0x1C -	adds r0, r2 -	ldr r1, _08035790 @ =SpriteCB_SetInvisible -_08035782: -	str r1, [r0] -_08035784: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0803578C: .4byte gSprites -_08035790: .4byte SpriteCB_SetInvisible -	thumb_func_end SetBankEnemyShadowSpriteCallback - -	thumb_func_start EnemyShadowCallbackToSetInvisible -EnemyShadowCallbackToSetInvisible: @ 8035794 -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _080357BC @ =gSprites -	ldr r1, _080357C0 @ =gUnknown_2024018 -	ldr r1, [r1] -	ldr r3, [r1, 0x4] -	lsls r1, r0, 1 -	adds r1, r0 -	lsls r1, 2 -	adds r1, r3 -	ldrb r1, [r1, 0x7] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r2, 0x1C -	adds r0, r2 -	ldr r1, _080357C4 @ =SpriteCB_SetInvisible -	str r1, [r0] -	bx lr -	.align 2, 0 -_080357BC: .4byte gSprites -_080357C0: .4byte gUnknown_2024018 -_080357C4: .4byte SpriteCB_SetInvisible -	thumb_func_end EnemyShadowCallbackToSetInvisible - -	thumb_func_start sub_80357C8 -sub_80357C8: @ 80357C8 -	push {r4-r7,lr} -	ldr r2, _08035894 @ =0x06000240 -	movs r7, 0xF0 -	lsls r7, 8 -	movs r5, 0x8 -_080357D2: -	movs r4, 0xF -_080357D4: -	ldrh r1, [r2] -	adds r0, r7, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _080357E4 -	adds r0, r7, 0 -	orrs r0, r1 -	strh r0, [r2] -_080357E4: -	ldrh r1, [r2] -	movs r6, 0xF0 -	lsls r6, 4 -	adds r0, r6, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _080357F8 -	adds r0, r6, 0 -	orrs r0, r1 -	strh r0, [r2] -_080357F8: -	ldrh r1, [r2] -	movs r3, 0xF0 -	movs r0, 0xF0 -	ands r0, r1 -	cmp r0, 0 -	bne _0803580A -	adds r0, r1, 0 -	orrs r0, r3 -	strh r0, [r2] -_0803580A: -	ldrh r1, [r2] -	movs r3, 0xF -	movs r0, 0xF -	ands r0, r1 -	cmp r0, 0 -	bne _0803581C -	adds r0, r1, 0 -	orrs r0, r3 -	strh r0, [r2] -_0803581C: -	adds r2, 0x2 -	subs r4, 0x1 -	cmp r4, 0 -	bge _080357D4 -	subs r5, 0x1 -	cmp r5, 0 -	bge _080357D2 -	ldr r2, _08035898 @ =0x06000600 -	movs r5, 0 -	movs r7, 0xF0 -	lsls r7, 8 -_08035832: -	adds r3, r5, 0x1 -	movs r4, 0xF -_08035836: -	ldrh r1, [r2] -	adds r0, r7, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _0803584A -	movs r5, 0xC0 -	lsls r5, 7 -	adds r0, r5, 0 -	orrs r0, r1 -	strh r0, [r2] -_0803584A: -	ldrh r1, [r2] -	adds r0, r6, 0 -	ands r0, r1 -	cmp r0, 0 -	bne _0803585E -	movs r5, 0xC0 -	lsls r5, 3 -	adds r0, r5, 0 -	orrs r0, r1 -	strh r0, [r2] -_0803585E: -	ldrh r1, [r2] -	movs r0, 0xF0 -	ands r0, r1 -	cmp r0, 0 -	bne _0803586E -	movs r0, 0x60 -	orrs r0, r1 -	strh r0, [r2] -_0803586E: -	ldrh r1, [r2] -	movs r0, 0xF -	ands r0, r1 -	cmp r0, 0 -	bne _0803587E -	movs r0, 0x6 -	orrs r0, r1 -	strh r0, [r2] -_0803587E: -	adds r2, 0x2 -	subs r4, 0x1 -	cmp r4, 0 -	bge _08035836 -	adds r5, r3, 0 -	cmp r5, 0x11 -	ble _08035832 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035894: .4byte 0x06000240 -_08035898: .4byte 0x06000600 -	thumb_func_end sub_80357C8 - -	thumb_func_start ClearTemporarySpeciesSpriteData -ClearTemporarySpeciesSpriteData: @ 803589C -	push {r4,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	lsls r1, 24 -	ldr r0, _080358CC @ =gUnknown_2024018 -	ldr r0, [r0] -	ldr r2, [r0] -	lsls r0, r4, 2 -	adds r0, r2 -	movs r3, 0 -	movs r2, 0 -	strh r2, [r0, 0x2] -	ldr r0, _080358D0 @ =gBattleMonForms -	adds r0, r4, r0 -	strb r3, [r0] -	cmp r1, 0 -	bne _080358C4 -	adds r0, r4, 0 -	bl ClearBehindSubstituteBit -_080358C4: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_080358CC: .4byte gUnknown_2024018 -_080358D0: .4byte gBattleMonForms -	thumb_func_end ClearTemporarySpeciesSpriteData - -	thumb_func_start AllocateMonSpritesGfx -AllocateMonSpritesGfx: @ 80358D4 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	movs r6, 0 -	ldr r4, _080359A4 @ =gMonSpritesGfxPtr -	str r6, [r4] -	movs r0, 0xC0 -	lsls r0, 1 -	bl AllocZeroed -	str r0, [r4] -	movs r0, 0x80 -	lsls r0, 8 -	bl AllocZeroed -	ldr r1, [r4] -	str r0, [r1] -_080358FA: -	ldr r0, _080359A4 @ =gMonSpritesGfxPtr -	ldr r1, [r0] -	lsls r4, r6, 2 -	adds r2, r1, 0x4 -	adds r2, r4 -	lsls r3, r6, 13 -	ldr r0, [r1] -	adds r0, r3 -	str r0, [r2] -	lsls r3, r6, 1 -	adds r0, r3, r6 -	lsls r0, 3 -	adds r1, r0, r1 -	ldr r2, _080359A8 @ =gUnknown_825DEF0 -	adds r1, 0x14 -	adds r0, r2 -	ldm r0!, {r2,r5,r7} -	stm r1!, {r2,r5,r7} -	ldm r0!, {r2,r5,r7} -	stm r1!, {r2,r5,r7} -	movs r5, 0 -	mov r9, r3 -	lsls r0, r6, 5 -	mov r8, r0 -	adds r1, r6, 0x1 -	mov r10, r1 -	mov r12, r8 -	adds r7, r4, 0 -_08035932: -	ldr r2, _080359A4 @ =gMonSpritesGfxPtr -	ldr r1, [r2] -	lsls r4, r5, 3 -	add r4, r12 -	adds r3, r1, 0 -	adds r3, 0x74 -	adds r3, r4 -	adds r0, r1, 0x4 -	adds r0, r7 -	lsls r2, r5, 11 -	ldr r0, [r0] -	adds r0, r2 -	str r0, [r3] -	adds r1, r4 -	adds r1, 0x78 -	movs r0, 0x80 -	lsls r0, 4 -	strh r0, [r1] -	adds r0, r5, 0x1 -	lsls r0, 24 -	lsrs r5, r0, 24 -	cmp r5, 0x3 -	bls _08035932 -	ldr r1, _080359A4 @ =gMonSpritesGfxPtr -	ldr r2, [r1] -	mov r5, r9 -	adds r0, r5, r6 -	lsls r0, 3 -	adds r1, r2, 0 -	adds r1, 0x20 -	adds r1, r0 -	mov r0, r8 -	adds r0, 0x74 -	adds r2, r0 -	str r2, [r1] -	mov r7, r10 -	lsls r0, r7, 24 -	lsrs r6, r0, 24 -	cmp r6, 0x3 -	bls _080358FA -	movs r0, 0x80 -	lsls r0, 5 -	bl AllocZeroed -	ldr r1, _080359A4 @ =gMonSpritesGfxPtr -	ldr r1, [r1] -	movs r2, 0xBA -	lsls r2, 1 -	adds r1, r2 -	str r0, [r1] -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_080359A4: .4byte gMonSpritesGfxPtr -_080359A8: .4byte gUnknown_825DEF0 -	thumb_func_end AllocateMonSpritesGfx - -	thumb_func_start FreeMonSpritesGfx -FreeMonSpritesGfx: @ 80359AC -	push {r4-r6,lr} -	ldr r6, _08035A24 @ =gMonSpritesGfxPtr -	ldr r0, [r6] -	cmp r0, 0 -	beq _08035A1E -	movs r1, 0xBE -	lsls r1, 1 -	adds r0, r1 -	ldr r0, [r0] -	cmp r0, 0 -	beq _080359D2 -	bl Free -	ldr r0, [r6] -	movs r1, 0xBE -	lsls r1, 1 -	adds r0, r1 -	movs r1, 0 -	str r1, [r0] -_080359D2: -	ldr r0, [r6] -	movs r1, 0xBC -	lsls r1, 1 -	adds r0, r1 -	ldr r0, [r0] -	cmp r0, 0 -	beq _080359F0 -	bl Free -	ldr r0, [r6] -	movs r1, 0xBC -	lsls r1, 1 -	adds r0, r1 -	movs r1, 0 -	str r1, [r0] -_080359F0: -	ldr r0, [r6] -	movs r5, 0xBA -	lsls r5, 1 -	adds r0, r5 -	ldr r0, [r0] -	bl Free -	ldr r0, [r6] -	adds r5, r0, r5 -	movs r4, 0 -	str r4, [r5] -	ldr r0, [r0] -	bl Free -	ldr r0, [r6] -	str r4, [r0] -	str r4, [r0, 0x4] -	str r4, [r0, 0x8] -	str r4, [r0, 0xC] -	str r4, [r0, 0x10] -	bl Free -	str r4, [r6] -_08035A1E: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_08035A24: .4byte gMonSpritesGfxPtr -	thumb_func_end FreeMonSpritesGfx - -	thumb_func_start ShouldPlayNormalPokeCry -ShouldPlayNormalPokeCry: @ 8035A28 -	push {r4,r5,lr} -	adds r5, r0, 0 -	movs r1, 0x37 -	bl GetMonData -	ldr r1, _08035A6C @ =0x00000fff -	ands r1, r0 -	cmp r1, 0 -	bne _08035A70 -	adds r0, r5, 0 -	movs r1, 0x39 -	bl GetMonData -	adds r4, r0, 0 -	lsls r4, 16 -	lsrs r4, 16 -	adds r0, r5, 0 -	movs r1, 0x3A -	bl GetMonData -	adds r1, r0, 0 -	lsls r4, 16 -	asrs r4, 16 -	lsls r1, 16 -	asrs r1, 16 -	adds r0, r4, 0 -	bl GetHPBarLevel -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x2 -	ble _08035A70 -	movs r0, 0x1 -	b _08035A72 -	.align 2, 0 -_08035A6C: .4byte 0x00000fff -_08035A70: -	movs r0, 0 -_08035A72: -	pop {r4,r5} -	pop {r1} -	bx r1 -	thumb_func_end ShouldPlayNormalPokeCry - -	.align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_interface.s b/asm/battle_interface.s index 959e4e19d..8f6361bb4 100644 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -255,8 +255,8 @@ sub_8047CAC: @ 8047CAC  	bx r0  	thumb_func_end sub_8047CAC -	thumb_func_start CreateBankHealthboxSprites -CreateBankHealthboxSprites: @ 8047CE0 +	thumb_func_start CreateBattlerHealthboxSprites +CreateBattlerHealthboxSprites: @ 8047CE0  	push {r4-r7,lr}  	mov r7, r10  	mov r6, r9 @@ -268,7 +268,7 @@ CreateBankHealthboxSprites: @ 8047CE0  	mov r10, r0  	movs r0, 0  	str r0, [sp] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08047DF4 @@ -522,7 +522,7 @@ _08047E98:  _08047F1A:  	str r0, [sp]  _08047F1C: -	ldr r0, _08047FF4 @ =gUnknown_2023BD6 +	ldr r0, _08047FF4 @ =gBattlerPositions  	add r0, r10  	ldrb r1, [r0]  	lsls r0, r1, 1 @@ -621,12 +621,12 @@ _08047FE4: .4byte gSprites  _08047FE8: .4byte 0x000003ff  _08047FEC: .4byte 0xfffffc00  _08047FF0: .4byte sub_8048128 -_08047FF4: .4byte gUnknown_2023BD6 +_08047FF4: .4byte gBattlerPositions  _08047FF8: .4byte gUnknown_82602F8  _08047FFC: .4byte gUnknown_82603C4  _08048000: .4byte 0x06010000  _08048004: .4byte 0x04000010 -	thumb_func_end CreateBankHealthboxSprites +	thumb_func_end CreateBattlerHealthboxSprites  	thumb_func_start CreateSafariPlayerHealthboxSprites  CreateSafariPlayerHealthboxSprites: @ 8048008 @@ -808,7 +808,7 @@ SetBattleBarStruct: @ 8048150  	ldr r7, [sp, 0x14]  	lsls r0, 24  	lsrs r0, 24 -	ldr r6, _08048180 @ =gUnknown_2024018 +	ldr r6, _08048180 @ =gBattleSpritesDataPtr  	ldr r4, [r6]  	ldr r5, [r4, 0xC]  	lsls r4, r0, 2 @@ -828,7 +828,7 @@ SetBattleBarStruct: @ 8048150  	pop {r0}  	bx r0  	.align 2, 0 -_08048180: .4byte gUnknown_2024018 +_08048180: .4byte gBattleSpritesDataPtr  _08048184: .4byte 0xffff8000  	thumb_func_end SetBattleBarStruct @@ -970,10 +970,10 @@ DestoryHealthboxSprite: @ 8048248  _08048284: .4byte gSprites  	thumb_func_end DestoryHealthboxSprite -	thumb_func_start nullsub_21 -nullsub_21: @ 8048288 +	thumb_func_start DummyBattleInterfaceFunc +DummyBattleInterfaceFunc: @ 8048288  	bx lr -	thumb_func_end nullsub_21 +	thumb_func_end DummyBattleInterfaceFunc  	thumb_func_start UpdateOamPriorityInAllHealthboxes  UpdateOamPriorityInAllHealthboxes: @ 804828C @@ -996,7 +996,7 @@ UpdateOamPriorityInAllHealthboxes: @ 804828C  	lsls r5, r0, 2  	movs r7, 0xD  	negs r7, r7 -	ldr r2, _08048318 @ =gUnknown_3004FF0 +	ldr r2, _08048318 @ =gHealthboxSpriteIds  	mov r9, r2  _080482B6:  	mov r1, r9 @@ -1048,17 +1048,17 @@ _08048304:  	.align 2, 0  _08048310: .4byte gBattlersCount  _08048314: .4byte gSprites -_08048318: .4byte gUnknown_3004FF0 +_08048318: .4byte gHealthboxSpriteIds  	thumb_func_end UpdateOamPriorityInAllHealthboxes -	thumb_func_start SetBankHealthboxSpritePos -SetBankHealthboxSpritePos: @ 804831C +	thumb_func_start InitBattlerHealthboxCoords +InitBattlerHealthboxCoords: @ 804831C  	push {r4-r6,lr}  	lsls r0, 24  	lsrs r6, r0, 24  	movs r5, 0  	movs r4, 0 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08048348 @@ -1108,7 +1108,7 @@ _0804837C:  	movs r5, 0x20  	movs r4, 0x2C  _08048380: -	ldr r0, _08048394 @ =gUnknown_3004FF0 +	ldr r0, _08048394 @ =gHealthboxSpriteIds  	adds r0, r6, r0  	ldrb r0, [r0]  	adds r1, r5, 0 @@ -1118,8 +1118,8 @@ _08048380:  	pop {r0}  	bx r0  	.align 2, 0 -_08048394: .4byte gUnknown_3004FF0 -	thumb_func_end SetBankHealthboxSpritePos +_08048394: .4byte gHealthboxSpriteIds +	thumb_func_end InitBattlerHealthboxCoords  	thumb_func_start UpdateLvlInHealthbox  UpdateLvlInHealthbox: @ 8048398 @@ -1169,7 +1169,7 @@ UpdateLvlInHealthbox: @ 8048398  	lsls r0, 24  	cmp r0, 0  	bne _08048420 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	ldr r2, _08048418 @ =0x06010420  	adds r1, r4, r2 @@ -1230,7 +1230,7 @@ sub_8048440: @ 8048440  	lsls r0, 24  	cmp r0, 0  	bne _08048514 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08048514 @@ -1315,7 +1315,7 @@ _08048514:  	ldrh r0, [r7, 0x3A]  	lsls r0, 24  	lsrs r6, r0, 24 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -1457,7 +1457,7 @@ sub_8048618: @ 8048618  	lsls r0, 24  	lsrs r0, 24  	mov r10, r0 -	ldr r0, _08048700 @ =gUnknown_2024018 +	ldr r0, _08048700 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	mov r3, r10 @@ -1541,7 +1541,7 @@ _080486C6:  	.align 2, 0  _080486F8: .4byte gUnknown_8260542  _080486FC: .4byte gSprites -_08048700: .4byte gUnknown_2024018 +_08048700: .4byte gBattleSpritesDataPtr  _08048704: .4byte gUnknown_8260540  _08048708: .4byte gMonSpritesGfxPtr  _0804870C: .4byte 0x06010000 @@ -1966,7 +1966,7 @@ _08048A66:  	ldr r2, _08048B80 @ =gBattlerPartyIndexes  	mov r8, r2  _08048A6E: -	ldr r0, _08048B84 @ =gUnknown_3004FF0 +	ldr r0, _08048B84 @ =gHealthboxSpriteIds  	mov r1, r9  	adds r6, r1, r0  	ldrb r1, [r6] @@ -1993,7 +1993,7 @@ _08048A8C:  	bne _08048AA2  	b _08048CE0  _08048AA2: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08048ABA @@ -2004,7 +2004,7 @@ _08048AA2:  	bne _08048ABA  	b _08048CE0  _08048ABA: -	ldr r5, _08048B8C @ =gUnknown_2024018 +	ldr r5, _08048B8C @ =gBattleSpritesDataPtr  	ldr r0, [r5]  	ldr r3, [r0]  	mov r0, r9 @@ -2036,7 +2036,7 @@ _08048ABA:  	lsls r0, 24  	cmp r0, 0  	bne _08048BE8 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08048B08 @@ -2099,9 +2099,9 @@ _08048B16:  _08048B78: .4byte gBattlersCount  _08048B7C: .4byte gSprites  _08048B80: .4byte gBattlerPartyIndexes -_08048B84: .4byte gUnknown_3004FF0 +_08048B84: .4byte gHealthboxSpriteIds  _08048B88: .4byte SpriteCallbackDummy -_08048B8C: .4byte gUnknown_2024018 +_08048B8C: .4byte gBattleSpritesDataPtr  _08048B90: .4byte gBattleTypeFlags  _08048B94: .4byte 0x06010000  _08048B98: .4byte 0x05000040 @@ -2242,7 +2242,7 @@ _08048C94:  	movs r2, 0x4  	bl UpdateHealthboxAttribute  _08048CCA: -	ldr r0, _08048D0C @ =gUnknown_3004FF0 +	ldr r0, _08048D0C @ =gHealthboxSpriteIds  	add r0, r9  	ldrb r1, [r0]  	lsls r0, r1, 4 @@ -2275,7 +2275,7 @@ _08048CF2:  	.align 2, 0  _08048D04: .4byte gEnemyParty  _08048D08: .4byte gBattleTypeFlags -_08048D0C: .4byte gUnknown_3004FF0 +_08048D0C: .4byte gHealthboxSpriteIds  _08048D10: .4byte gBattlersCount  	thumb_func_end sub_8048A4C @@ -2323,7 +2323,7 @@ _08048D64:  	movs r7, 0x1  	cmp r4, 0  	beq _08048D74 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08048D7A @@ -3668,7 +3668,7 @@ _08049782:  	adds r1, r6, 0  	movs r2, 0x6  	bl sub_804A6E8 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	ldr r2, _080497F0 @ =0x06010400  	adds r5, r4, r2 @@ -3877,7 +3877,7 @@ UpdateStatusIconInHealthbox: @ 8049934  	movs r1, 0x37  	bl GetMonData  	adds r4, r0, 0 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	movs r3, 0x12  	mov r8, r3 @@ -4009,7 +4009,7 @@ _08049A7E:  	adds r4, 0x1  	cmp r4, 0x2  	ble _08049A7E -	ldr r0, _08049AEC @ =gUnknown_2024018 +	ldr r0, _08049AEC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0]  	adds r0, r7, r0 @@ -4042,7 +4042,7 @@ _08049AD4:  _08049AE0: .4byte gSprites  _08049AE4: .4byte 0x06010000  _08049AE8: .4byte 0x04000008 -_08049AEC: .4byte gUnknown_2024018 +_08049AEC: .4byte gBattleSpritesDataPtr  _08049AF0: .4byte 0x04000010  _08049AF4:  	mov r1, r9 @@ -4084,7 +4084,7 @@ _08049AF4:  	ldr r2, _08049BD8 @ =0x04000018  	adds r0, r6, 0  	bl CpuSet -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -4096,7 +4096,7 @@ _08049AF4:  	cmp r0, 0x1  	bne _08049BAE  _08049B62: -	ldr r0, _08049BDC @ =gUnknown_2024018 +	ldr r0, _08049BDC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r7, 2 @@ -4149,7 +4149,7 @@ _08049BCC: .4byte gPlttBufferUnfaded + 0x200  _08049BD0: .4byte 0x05000200  _08049BD4: .4byte 0x06010000  _08049BD8: .4byte 0x04000018 -_08049BDC: .4byte gUnknown_2024018 +_08049BDC: .4byte gBattleSpritesDataPtr  _08049BE0: .4byte 0x04000008  	thumb_func_end UpdateStatusIconInHealthbox @@ -4381,7 +4381,7 @@ UpdateHealthboxAttribute: @ 8049D98  	mov r9, r0  	cmp r7, 0  	bne _08049DD4 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08049DD4 @@ -4470,7 +4470,7 @@ _08049E4C:  	movs r3, 0  	bl sub_8049FD8  _08049E80: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	lsrs r0, 24  	mov r10, r0 @@ -4652,7 +4652,7 @@ sub_8049FD8: @ 8049FD8  	mov r9, r2  	cmp r2, 0  	bne _0804A024 -	ldr r0, _0804A020 @ =gUnknown_2024018 +	ldr r0, _0804A020 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0xC]  	mov r1, r8 @@ -4673,9 +4673,9 @@ sub_8049FD8: @ 8049FD8  	adds r7, r5, 0  	b _0804A080  	.align 2, 0 -_0804A020: .4byte gUnknown_2024018 +_0804A020: .4byte gBattleSpritesDataPtr  _0804A024: -	ldr r2, _0804A0D0 @ =gUnknown_2024018 +	ldr r2, _0804A0D0 @ =gBattleSpritesDataPtr  	mov r10, r2  	ldr r0, [r2]  	ldr r2, [r0, 0xC] @@ -4726,7 +4726,7 @@ _0804A080:  	beq _0804A09C  	cmp r2, 0  	bne _0804A0A4 -	ldr r0, _0804A0D0 @ =gUnknown_2024018 +	ldr r0, _0804A0D0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0]  	adds r0, r7, r0 @@ -4744,7 +4744,7 @@ _0804A0A4:  	negs r0, r0  	cmp r4, r0  	bne _0804A0BE -	ldr r0, _0804A0D0 @ =gUnknown_2024018 +	ldr r0, _0804A0D0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0xC]  	mov r2, r8 @@ -4764,7 +4764,7 @@ _0804A0BE:  	pop {r1}  	bx r1  	.align 2, 0 -_0804A0D0: .4byte gUnknown_2024018 +_0804A0D0: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_8049FD8  	thumb_func_start sub_804A0D4 @@ -4784,7 +4784,7 @@ sub_804A0D4: @ 804A0D4  	beq _0804A1D8  	b _0804A2D6  _0804A0F0: -	ldr r0, _0804A184 @ =gUnknown_2024018 +	ldr r0, _0804A184 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0xC]  	lsls r5, r6, 2 @@ -4818,7 +4818,7 @@ _0804A12C:  	ldr r0, _0804A188 @ =gSprites  	mov r8, r0  _0804A132: -	ldr r0, _0804A184 @ =gUnknown_2024018 +	ldr r0, _0804A184 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0, 0xC]  	adds r0, r7, r6 @@ -4858,7 +4858,7 @@ _0804A132:  	bl CpuSet  	b _0804A1C2  	.align 2, 0 -_0804A184: .4byte gUnknown_2024018 +_0804A184: .4byte gBattleSpritesDataPtr  _0804A188: .4byte gSprites  _0804A18C: .4byte 0x06010000  _0804A190: .4byte 0x04000008 @@ -4895,7 +4895,7 @@ _0804A1C2:  _0804A1D0: .4byte 0x06010040  _0804A1D4: .4byte 0x04000008  _0804A1D8: -	ldr r0, _0804A27C @ =gUnknown_2024018 +	ldr r0, _0804A27C @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0xC]  	lsls r5, r6, 2 @@ -4955,7 +4955,7 @@ _0804A23A:  	ldrb r1, [r1]  	lsls r1, 5  	adds r0, r1 -	ldr r1, _0804A27C @ =gUnknown_2024018 +	ldr r1, _0804A27C @ =gBattleSpritesDataPtr  	ldr r1, [r1]  	ldr r1, [r1, 0xC]  	adds r1, r4, r1 @@ -4977,7 +4977,7 @@ _0804A23A:  	bl CpuSet  	b _0804A2CC  	.align 2, 0 -_0804A27C: .4byte gUnknown_2024018 +_0804A27C: .4byte gBattleSpritesDataPtr  _0804A280: .4byte gBattlerPartyIndexes  _0804A284: .4byte gPlayerParty  _0804A288: .4byte gSprites @@ -4992,7 +4992,7 @@ _0804A294:  	ldrb r1, [r1]  	lsls r1, 5  	adds r0, r1 -	ldr r1, _0804A2E4 @ =gUnknown_2024018 +	ldr r1, _0804A2E4 @ =gBattleSpritesDataPtr  	ldr r1, [r1]  	ldr r1, [r1, 0xC]  	adds r1, r4, r1 @@ -5025,7 +5025,7 @@ _0804A2D6:  	pop {r0}  	bx r0  	.align 2, 0 -_0804A2E4: .4byte gUnknown_2024018 +_0804A2E4: .4byte gBattleSpritesDataPtr  _0804A2E8: .4byte 0x06010b80  _0804A2EC: .4byte 0x04000008  	thumb_func_end sub_804A0D4 @@ -72,7 +72,7 @@ _080B4008:  	strh r0, [r6, 0x2E]  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -80,7 +80,7 @@ _080B4008:  	strh r0, [r6, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x6] @@ -156,13 +156,13 @@ _080B40BC:  	strh r0, [r6, 0x2E]  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x36] @@ -214,13 +214,13 @@ _080B4144:  	ldr r4, _080B4188 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -556,7 +556,7 @@ _080B43F6:  	ldr r5, _080B4488 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	ldr r6, _080B4484 @ =gBattleAnimArgs @@ -567,7 +567,7 @@ _080B43F6:  	lsrs r4, 16  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r1, r0, 0  	lsls r1, 24  	lsrs r1, 24 @@ -643,7 +643,7 @@ _080B44B4:  	ldr r5, _080B4508 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -651,7 +651,7 @@ _080B44B4:  	strh r0, [r6, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x6] @@ -801,13 +801,13 @@ _080B45F4:  _080B45F6:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x12 diff --git a/asm/dark.s b/asm/dark.s index ad0ff597a..cbc4060c3 100644 --- a/asm/dark.s +++ b/asm/dark.s @@ -256,26 +256,26 @@ sub_80B7ACC: @ 80B7ACC  	ldr r6, _080B7B38 @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x30]  	ldr r5, _080B7B3C @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x34]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -634,7 +634,7 @@ sub_80B7DA4: @ 80B7DA4  	ldr r4, _080B7E0C @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x1F @@ -653,7 +653,7 @@ sub_80B7DA4: @ 80B7DA4  	strh r1, [r5, 0x22]  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r1, r0, 0 @@ -1087,7 +1087,7 @@ _080B817C:  	ldr r4, _080B81C8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x1F @@ -1104,7 +1104,7 @@ _080B817C:  	strh r1, [r5, 0x22]  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r1, r0, 0x4 @@ -1836,7 +1836,7 @@ sub_80B86EC: @ 80B86EC  	movs r2, 0x1  	bl SetAnimBgAttribute  _080B8750: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080B87CA diff --git a/asm/dragon.s b/asm/dragon.s index 66e76017a..956e8b1e0 100644 --- a/asm/dragon.s +++ b/asm/dragon.s @@ -12,13 +12,13 @@ sub_80B725C: @ 80B725C  	ldr r4, _080B72A4 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -90,13 +90,13 @@ sub_80B72F8: @ 80B72F8  	ldr r4, _080B7350 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -185,13 +185,13 @@ _080B73C8:  _080B73CA:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -249,14 +249,14 @@ sub_80B7448: @ 80B7448  	ldr r4, _080B749C @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r5, 0  	strh r0, [r6, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x22] @@ -726,14 +726,14 @@ sub_80B77E4: @ 80B77E4  	mov r8, r1  	ldrb r0, [r1]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	mov r2, r8  	ldrb r0, [r2]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r3, [r5, 0x8] diff --git a/asm/electric.s b/asm/electric.s index ed9e1da1f..7b100e73e 100644 --- a/asm/electric.s +++ b/asm/electric.s @@ -123,13 +123,13 @@ sub_80ADCB8: @ 80ADCB8  	ldr r4, _080ADCFC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -260,7 +260,7 @@ _080ADDC8:  	bne _080ADDF0  	adds r0, r4, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20] @@ -273,14 +273,14 @@ _080ADDEC: .4byte gBattleAnimArgs  _080ADDF0:  	adds r0, r4, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	adds r0, r4, 0  	movs r1, 0x3  _080ADE02: -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -379,7 +379,7 @@ sub_80ADEB0: @ 80ADEB0  	ldr r6, _080ADF28 @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -387,7 +387,7 @@ sub_80ADEB0: @ 80ADEB0  	strh r0, [r4, 0x34]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -555,7 +555,7 @@ _080AE024:  	ldr r5, _080AE060 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080AE064 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -564,7 +564,7 @@ _080AE024:  	strh r0, [r6, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -626,7 +626,7 @@ _080AE0AA:  _080AE0B2:  	adds r0, r6, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080AE11C @ =gBattleAnimArgs  	lsrs r0, 24 @@ -635,7 +635,7 @@ _080AE0B2:  	strh r0, [r5, 0x20]  	adds r0, r6, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x2] @@ -811,7 +811,7 @@ sub_80AE220: @ 80AE220  	ldr r6, _080AE268 @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	ldr r1, _080AE26C @ =gTasks  	lsls r4, r5, 2  	adds r4, r5 @@ -825,7 +825,7 @@ sub_80AE220: @ 80AE220  	strh r0, [r4, 0x8]  	ldrb r0, [r6]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r5, 0x2] @@ -1233,13 +1233,13 @@ _080AE56C:  _080AE56E:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x24]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x26] @@ -1466,13 +1466,13 @@ _080AE738:  _080AE73A:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1509,13 +1509,13 @@ _080AE790:  _080AE792:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1548,13 +1548,13 @@ sub_80AE7DC: @ 80AE7DC  	ldr r4, _080AE834 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1680,7 +1680,7 @@ _080AE8D4:  	ldr r4, _080AE908 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x24] @@ -1897,13 +1897,13 @@ _080AEA88: .4byte 0x0000fff0  _080AEA8C:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0xE]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x12] @@ -1923,13 +1923,13 @@ _080AEAB4:  	ldr r4, _080AEAE8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x12]  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r2, 0xA @@ -2175,13 +2175,13 @@ _080AEC92:  	ldr r4, _080AECC0 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -2245,13 +2245,13 @@ _080AED20:  	ldr r4, _080AEDA4 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x14]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x16] @@ -2260,7 +2260,7 @@ _080AED20:  	ldr r0, _080AEDA8 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x1C] @@ -2603,7 +2603,7 @@ _080AEFCE:  	ldr r0, _080AF018 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x20 @@ -2625,7 +2625,7 @@ _080AEFF8:  	ldr r4, _080AF018 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] diff --git a/asm/fighting.s b/asm/fighting.s index 78b60aac5..240e2bbb0 100644 --- a/asm/fighting.s +++ b/asm/fighting.s @@ -176,13 +176,13 @@ _080B09E8:  	bl StartSpriteAnim  	mov r0, r8  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	mov r0, r8  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -242,7 +242,7 @@ _080B0A74:  	negs r0, r0  	lsrs r4, r0, 16  _080B0A86: -	ldr r0, _080B0B14 @ =gUnknown_2023BD6 +	ldr r0, _080B0B14 @ =gBattlerPositions  	add r0, r8  	ldrb r1, [r0]  	adds r0, r7, 0 @@ -313,7 +313,7 @@ _080B0B00:  	bx r0  	.align 2, 0  _080B0B10: .4byte gBattleAnimTarget -_080B0B14: .4byte gUnknown_2023BD6 +_080B0B14: .4byte gBattlerPositions  _080B0B18: .4byte 0xfff00000  _080B0B1C: .4byte gUnknown_83E7C08  _080B0B20: .4byte gSprites @@ -644,13 +644,13 @@ sub_80B0D7C: @ 80B0D7C  	ldr r4, _080B0DC8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -778,13 +778,13 @@ _080B0E9C:  _080B0E9E:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -896,7 +896,7 @@ sub_80B0F68: @ 80B0F68  	ldr r4, _080B0F90 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r2, [r6, 0x4] @@ -909,7 +909,7 @@ _080B0F94:  	ldr r4, _080B0FF0 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x4] @@ -918,7 +918,7 @@ _080B0FA6:  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x6] @@ -1040,13 +1040,13 @@ sub_80B107C: @ 80B107C  	ldr r4, _080B10CC @ =sBattler_AI  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1125,7 +1125,7 @@ sub_80B111C: @ 80B111C  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -1135,7 +1135,7 @@ sub_80B111C: @ 80B111C  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -1245,13 +1245,13 @@ _080B1236:  	ldr r4, _080B1298 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r6, r0, 0  	lsls r6, 24  	lsrs r6, 24  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r5, r0, 0  	lsls r5, 24  	lsrs r5, 24 @@ -1259,14 +1259,14 @@ _080B1236:  	mov r8, r2  	ldrb r0, [r2]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24  	mov r1, r8  	ldrb r0, [r1]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	subs r4, r6  	strh r4, [r7, 0x2E] @@ -1344,13 +1344,13 @@ sub_80B12E8: @ 80B12E8  	ldr r4, _080B1320 @ =sBattler_AI  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1418,7 +1418,7 @@ _080B138C:  	strh r0, [r5, 0x30]  	adds r0, r4, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -1426,7 +1426,7 @@ _080B138C:  	strh r0, [r5, 0x34]  	adds r0, r4, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -1473,13 +1473,13 @@ sub_80B13F8: @ 80B13F8  	ldr r4, _080B1474 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] diff --git a/asm/fire.s b/asm/fire.s index ecc1ce493..0e014a48d 100644 --- a/asm/fire.s +++ b/asm/fire.s @@ -484,7 +484,7 @@ sub_80ACC88: @ 80ACC88  	ldr r4, _080ACCD8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -492,7 +492,7 @@ sub_80ACC88: @ 80ACC88  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -522,13 +522,13 @@ sub_80ACCE0: @ 80ACCE0  	ldr r5, _080ACD20 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x22] @@ -1758,7 +1758,7 @@ _080AD612:  	ldr r4, _080AD688 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -1766,7 +1766,7 @@ _080AD612:  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] diff --git a/asm/flying.s b/asm/flying.s index 697138bd8..23fe4371d 100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -228,7 +228,7 @@ _080B1A3C:  	ldr r5, _080B1A90 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -238,7 +238,7 @@ _080B1A3C:  	strh r0, [r6, 0x34]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x6] @@ -316,13 +316,13 @@ _080B1AE4:  _080B1AFC:  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r2, _080B1B58 @ =gBattleAnimArgs  	ldrh r1, [r2] @@ -342,13 +342,13 @@ _080B1AFC:  	ldr r4, _080B1B5C @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -504,7 +504,7 @@ _080B1C72:  	ldr r4, _080B1CB8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -512,7 +512,7 @@ _080B1C72:  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -672,7 +672,7 @@ _080B1DB2:  _080B1DC8:  	adds r0, r6, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080B1E60 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -681,7 +681,7 @@ _080B1DC8:  	strh r0, [r7, 0x20]  	adds r0, r6, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldrh r1, [r4, 0x2]  	lsrs r0, 24 @@ -1627,13 +1627,13 @@ sub_80B24C0: @ 80B24C0  	ldr r5, _080B250C @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -1663,7 +1663,7 @@ sub_80B2514: @ 80B2514  	lsls r0, 24  	cmp r0, 0  	bne _080B25C4 -	ldr r0, _080B2558 @ =gUnknown_2023BD6 +	ldr r0, _080B2558 @ =gBattlerPositions  	ldr r1, _080B255C @ =gBattleAnimTarget  	ldrb r2, [r1]  	adds r0, r2, r0 @@ -1674,7 +1674,7 @@ sub_80B2514: @ 80B2514  	beq _080B2560  	adds r0, r2, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x6] @@ -1682,12 +1682,12 @@ sub_80B2514: @ 80B2514  	b _080B256E  	.align 2, 0  _080B2554: .4byte gBattleAnimArgs -_080B2558: .4byte gUnknown_2023BD6 +_080B2558: .4byte gBattlerPositions  _080B255C: .4byte gBattleAnimTarget  _080B2560:  	adds r0, r2, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x28 @@ -1737,7 +1737,7 @@ _080B25C4:  	ldr r0, _080B267C @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x6] @@ -2127,13 +2127,13 @@ sub_80B2868: @ 80B2868  	ldr r5, _080B2910 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r2, r0, 0  	lsls r2, 24  	lsrs r2, 24 @@ -2237,7 +2237,7 @@ _080B2990:  	ldr r0, _080B29A8 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -2454,13 +2454,13 @@ _080B2B20:  _080B2B22:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -2614,13 +2614,13 @@ _080B2C54:  _080B2C56:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x20 @@ -2773,14 +2773,14 @@ sub_80B2D64: @ 80B2D64  	ldr r6, _080B2E18 @ =gBattleAnimAttacker  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r1, r8  	strh r0, [r1, 0x20]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r6, r0, 0  	lsls r6, 24  	lsrs r6, 24 diff --git a/asm/ghost.s b/asm/ghost.s index 7ff96f41a..b0933f132 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -19,7 +19,7 @@ sub_80B5268: @ 80B5268  	ldr r5, _080B52C8 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -27,7 +27,7 @@ sub_80B5268: @ 80B5268  	strh r0, [r4, 0x34]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -518,7 +518,7 @@ sub_80B563C: @ 80B563C  	mov r8, r0  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0 @@ -527,7 +527,7 @@ sub_80B563C: @ 80B563C  	mov r1, r8  	ldrb r0, [r1]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -637,13 +637,13 @@ _080B572E:  	ldr r4, _080B5794 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x30]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -700,13 +700,13 @@ _080B5798:  	ldr r4, _080B57E8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -1214,7 +1214,7 @@ _080B5B68:  	adds r2, r0  	lsls r2, 2  	adds r2, r4 -	ldr r0, _080B5C18 @ =gUnknown_2024018 +	ldr r0, _080B5C18 @ =gBattleSpritesDataPtr  	ldr r1, [r0]  	ldr r0, _080B5C1C @ =gBattleAnimTarget  	ldrb r0, [r0] @@ -1260,7 +1260,7 @@ _080B5B68:  	b _080B5C24  	.align 2, 0  _080B5C14: .4byte gSprites -_080B5C18: .4byte gUnknown_2024018 +_080B5C18: .4byte gBattleSpritesDataPtr  _080B5C1C: .4byte gBattleAnimTarget  _080B5C20:  	movs r1, 0x80 @@ -1614,12 +1614,12 @@ sub_80B5EC0: @ 80B5EC0  	ldr r4, _080B5F00 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r2, 0xE0 @@ -1636,12 +1636,12 @@ _080B5F08:  	ldr r4, _080B5FD0 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r2, 0xE0 @@ -1652,13 +1652,13 @@ _080B5F08:  _080B5F2C:  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r10, r0  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r1, 0xE0 @@ -1808,7 +1808,7 @@ sub_80B6020: @ 80B6020  	ldr r4, _080B6178 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	str r0, [sp, 0x4] @@ -1860,7 +1860,7 @@ _080B6092:  	beq _080B615E  	adds r0, r4, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r10, r0 @@ -2872,7 +2872,7 @@ sub_80B68C8: @ 80B68C8  	ldr r5, _080B6964 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x1A] diff --git a/asm/ground.s b/asm/ground.s index 8bfa9d914..d9cc47ed2 100644 --- a/asm/ground.s +++ b/asm/ground.s @@ -12,13 +12,13 @@ sub_80B8B6C: @ 80B8B6C  	ldr r5, _080B8BC4 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -27,13 +27,13 @@ sub_80B8B6C: @ 80B8B6C  	ldr r5, _080B8BC8 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x36] @@ -77,13 +77,13 @@ sub_80B8BD4: @ 80B8BD4  	ldr r4, _080B8C30 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -141,7 +141,7 @@ _080B8C74:  	ldr r5, _080B8CBC @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r4, 0x4] @@ -149,7 +149,7 @@ _080B8C74:  	strh r0, [r6, 0x32]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x6] @@ -262,7 +262,7 @@ sub_80B8D58: @ 80B8D58  	ldr r4, _080B8DC4 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r2, [r6, 0x2] @@ -270,7 +270,7 @@ sub_80B8D58: @ 80B8D58  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r3, [r6, 0x4] @@ -1080,7 +1080,7 @@ _080B9396:  _080B93B2:  	adds r0, r4, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r6 @@ -1150,7 +1150,7 @@ _080B943A:  	ldrb r5, [r0]  	adds r0, r5, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r2, _080B949C @ =0x0000fff0 @@ -1698,7 +1698,7 @@ _080B9832:  	adds r4, r0  	adds r0, r5, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x20 @@ -1709,7 +1709,7 @@ _080B9832:  	strh r1, [r4, 0xA]  	adds r0, r5, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x40 @@ -123,26 +123,26 @@ sub_80AF108: @ 80AF108  	ldr r4, _080AF218 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r9, r0  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r8, r0  	ldr r4, _080AF21C @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r3, r0, 24  	ldrb r0, [r4]  	movs r1, 0x3  	str r3, [sp] -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	ldr r1, _080AF220 @ =gBattleAnimArgs @@ -387,7 +387,7 @@ sub_80AF330: @ 80AF330  	ldr r0, _080AF364 @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -417,7 +417,7 @@ _080AF37A:  	ldr r0, _080AF3AC @ =gBattleAnimTarget  	ldrb r0, [r0]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r1, _080AF3A8 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -553,13 +553,13 @@ sub_80AF468: @ 80AF468  	ldr r4, _080AF4B4 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x6] @@ -868,13 +868,13 @@ sub_80AF6D8: @ 80AF6D8  	ldr r4, _080AF720 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -1243,7 +1243,7 @@ _080AF9D4:  	ldrsh r0, [r0, r1]  	cmp r0, 0  	beq _080AF9EC -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _080AF9F8 @@ -1663,13 +1663,13 @@ sub_80AFD4C: @ 80AFD4C  	ldr r5, _080AFD78 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -1970,12 +1970,12 @@ sub_80AFFD4: @ 80AFFD4  	mov r8, r0  	ldrb r0, [r0]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	ldr r7, _080B00C4 @ =gBattleAnimTarget  	ldrb r0, [r7]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r4, 24  	lsls r0, 24  	cmp r4, r0 @@ -1984,7 +1984,7 @@ sub_80AFFD4: @ 80AFFD4  	lsls r0, 8  	strh r0, [r5, 0x3C]  _080B0008: -	ldr r3, _080B00C8 @ =gUnknown_2023BD6 +	ldr r3, _080B00C8 @ =gBattlerPositions  	ldrb r0, [r7]  	adds r0, r3  	ldrb r1, [r0] @@ -2036,13 +2036,13 @@ _080B0068:  	ldr r4, _080B00C0 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -2058,7 +2058,7 @@ _080B0068:  	ldr r4, _080B00C4 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x6] @@ -2075,7 +2075,7 @@ _080B0068:  _080B00BC: .4byte gBattleAnimArgs  _080B00C0: .4byte gBattleAnimAttacker  _080B00C4: .4byte gBattleAnimTarget -_080B00C8: .4byte gUnknown_2023BD6 +_080B00C8: .4byte gBattlerPositions  _080B00CC: .4byte gSprites  _080B00D0:  	ldrh r0, [r6, 0x2] @@ -2085,7 +2085,7 @@ _080B00D0:  	ldr r4, _080B0140 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x6] @@ -2098,7 +2098,7 @@ _080B00D0:  	ldrb r0, [r4]  	movs r1, 0x1  _080B00F8: -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r6, [r6, 0x8] @@ -2197,7 +2197,7 @@ _080B01AA:  	ldr r6, _080B01F8 @ =gBattleAnimTarget  	ldrb r0, [r6]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20] @@ -2217,7 +2217,7 @@ _080B01AA:  	lsls r0, 24  	cmp r0, 0  	bne _080B0200 -	ldr r1, _080B01FC @ =gUnknown_2023BD6 +	ldr r1, _080B01FC @ =gBattlerPositions  	ldrb r0, [r6]  	adds r0, r1  	ldrb r1, [r0] @@ -2230,7 +2230,7 @@ _080B01AA:  	b _080B0202  	.align 2, 0  _080B01F8: .4byte gBattleAnimTarget -_080B01FC: .4byte gUnknown_2023BD6 +_080B01FC: .4byte gBattlerPositions  _080B0200:  	strh r5, [r4, 0x38]  _080B0202: @@ -2365,7 +2365,7 @@ _080B02CE:  	lsls r0, 24  	cmp r0, 0  	bne _080B0328 -	ldr r1, _080B0320 @ =gUnknown_2023BD6 +	ldr r1, _080B0320 @ =gBattlerPositions  	ldr r0, _080B0324 @ =gBattleAnimTarget  	ldrb r0, [r0]  	adds r0, r1 @@ -2378,7 +2378,7 @@ _080B02CE:  	lsls r0, 1  	b _080B032A  	.align 2, 0 -_080B0320: .4byte gUnknown_2023BD6 +_080B0320: .4byte gBattlerPositions  _080B0324: .4byte gBattleAnimTarget  _080B0328:  	ldr r0, _080B0340 @ =0x0000fff0 @@ -2591,12 +2591,12 @@ sub_80B0458: @ 80B0458  	str r0, [sp, 0x4]  	adds r0, r5, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r7, r0, 24  	adds r0, r5, 0  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	mov r1, r8 @@ -2921,7 +2921,7 @@ _080B0742:  	ldr r4, _080B0788 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x4] @@ -2929,7 +2929,7 @@ _080B0742:  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r6, 0x6] diff --git a/asm/normal.s b/asm/normal.s index 4a1e86a4e..75c4dcf6e 100644 --- a/asm/normal.s +++ b/asm/normal.s @@ -1185,7 +1185,7 @@ _080BA1D0:  	cmp r0, 0  	beq _080BA200  	ldr r2, _080BA274 @ =gSprites -	ldr r0, _080BA278 @ =gUnknown_3004FF0 +	ldr r0, _080BA278 @ =gHealthboxSpriteIds  	add r0, r9  	ldrb r1, [r0]  	lsls r0, r1, 4 @@ -1258,7 +1258,7 @@ _080BA268: .4byte gBattleAnimAttacker  _080BA26C: .4byte gBattleAnimTarget  _080BA270: .4byte 0x0000ffff  _080BA274: .4byte gSprites -_080BA278: .4byte gUnknown_3004FF0 +_080BA278: .4byte gHealthboxSpriteIds  	thumb_func_end sub_80BA16C  	thumb_func_start sub_80BA27C diff --git a/asm/party_menu.s b/asm/party_menu.s index ace2e3554..4fac6a6c5 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -13549,7 +13549,7 @@ sub_8125554: @ 8125554  	bl sub_81202F8  	movs r0, 0x2  	bl ScheduleBgCopyTilemapToVram -	bl sub_803539C +	bl HandleBattleLowHpMusicChange  	ldr r1, _081255B4 @ =gTasks  	lsls r0, r5, 2  	adds r0, r5 @@ -17909,7 +17909,7 @@ _081278B0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic  	thumb_func_start sub_81278B4  sub_81278B4: @ 81278B4  	push {lr} -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _081278C4 @@ -18425,7 +18425,7 @@ _08127CF4:  	strb r0, [r6, 0x2]  	b _08127D9C  _08127D02: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08127D40 @@ -18588,7 +18588,7 @@ _08127E26:  	strb r0, [r5, 0x2]  	b _08127EB6  _08127E34: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	bne _08127E6C diff --git a/asm/poison.s b/asm/poison.s index 1a244e136..111ad544a 100644 --- a/asm/poison.s +++ b/asm/poison.s @@ -26,13 +26,13 @@ _080B1636:  	ldr r4, _080B1678 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] diff --git a/asm/pokeball.s b/asm/pokeball.s index 85bfcb620..ed9586d1d 100644 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -17,7 +17,7 @@ DoPokeballSendOutAnimation: @ 804A938  	ldr r1, _0804A98C @ =gUnknown_2024005  	movs r0, 0x1  	strb r0, [r1] -	ldr r0, _0804A990 @ =gUnknown_2024018 +	ldr r0, _0804A990 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r6, _0804A994 @ =gActiveBattler  	ldrb r1, [r6] @@ -50,7 +50,7 @@ DoPokeballSendOutAnimation: @ 804A938  	bx r1  	.align 2, 0  _0804A98C: .4byte gUnknown_2024005 -_0804A990: .4byte gUnknown_2024018 +_0804A990: .4byte gBattleSpritesDataPtr  _0804A994: .4byte gActiveBattler  _0804A998: .4byte sub_804A9A0  _0804A99C: .4byte gTasks @@ -220,13 +220,13 @@ _0804AAF4: .4byte SpriteCB_PlayerMonSendOut_1  _0804AAF8:  	adds r0, r6, 0  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	adds r0, r6, 0  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x18 @@ -276,13 +276,13 @@ _0804AB6C:  	strh r0, [r4, 0x2E]  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32]  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	subs r0, 0x10 @@ -1265,11 +1265,11 @@ _0804B324:  	cmp r5, r0  	bne _0804B3A6  _0804B34E: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0804B3A6 -	ldr r0, _0804B390 @ =gUnknown_2024018 +	ldr r0, _0804B390 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r1, [r0, 0x9] @@ -1293,7 +1293,7 @@ _0804B34E:  	.align 2, 0  _0804B388: .4byte gBattlerPartyIndexes  _0804B38C: .4byte gPlayerParty -_0804B390: .4byte gUnknown_2024018 +_0804B390: .4byte gBattleSpritesDataPtr  _0804B394: .4byte gBattleTypeFlags  _0804B398: .4byte gMPlayInfo_BGM  _0804B39C: @@ -1302,11 +1302,11 @@ _0804B39C:  	movs r2, 0x80  	bl m4aMPlayVolumeControl  _0804B3A6: -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0804B3C0 -	ldr r0, _0804B3CC @ =gUnknown_2024018 +	ldr r0, _0804B3CC @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r1, [r0, 0x9] @@ -1320,7 +1320,7 @@ _0804B3C0:  	.align 2, 0  _0804B3C4: .4byte gMPlayInfo_BGM  _0804B3C8: .4byte 0x0000ffff -_0804B3CC: .4byte gUnknown_2024018 +_0804B3CC: .4byte gBattleSpritesDataPtr  _0804B3D0:  	movs r0, 0  	bl GetBattlerAtPosition @@ -1521,7 +1521,7 @@ _0804B52C:  	strh r1, [r0, 0x26]  	ldr r0, _0804B5C0 @ =gUnknown_2024005  	strb r2, [r0] -	ldr r4, _0804B5C4 @ =gUnknown_2024018 +	ldr r4, _0804B5C4 @ =gBattleSpritesDataPtr  	ldr r0, [r4]  	ldr r0, [r0, 0x4]  	lsls r1, r6, 1 @@ -1573,7 +1573,7 @@ _0804B5B4: .4byte 0xfffffee0  _0804B5B8: .4byte gSprites  _0804B5BC: .4byte gBattlerSpriteIds  _0804B5C0: .4byte gUnknown_2024005 -_0804B5C4: .4byte gUnknown_2024018 +_0804B5C4: .4byte gBattleSpritesDataPtr  	thumb_func_end HandleBallAnimEnd  	thumb_func_start sub_804B5C8 @@ -1639,7 +1639,7 @@ _0804B600:  	ands r0, r1  	cmp r0, 0  	beq _0804B666 -	ldr r0, _0804B680 @ =gUnknown_2024018 +	ldr r0, _0804B680 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x4]  	lsls r1, r7, 1 @@ -1661,7 +1661,7 @@ _0804B670: .4byte gSprites  _0804B674: .4byte gBattlerSpriteIds  _0804B678: .4byte gMain  _0804B67C: .4byte 0x00000439 -_0804B680: .4byte gUnknown_2024018 +_0804B680: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_804B5C8  	thumb_func_start SpriteCB_PlayerMonSendOut_1 @@ -1674,7 +1674,7 @@ SpriteCB_PlayerMonSendOut_1: @ 804B684  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] @@ -1682,7 +1682,7 @@ SpriteCB_PlayerMonSendOut_1: @ 804B684  	lsls r0, 24  	lsrs r0, 24  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, 0x18 @@ -1843,11 +1843,11 @@ _0804B7C8:  	ldrb r0, [r5, 0x6]  	strh r0, [r5, 0x3A]  	strh r1, [r5, 0x2E] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0804B828 -	ldr r0, _0804B820 @ =gUnknown_2024018 +	ldr r0, _0804B820 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r1, [r0, 0x9] @@ -1866,7 +1866,7 @@ _0804B7C8:  	ldr r0, _0804B824 @ =SpriteCB_ReleaseMon2FromBall  	b _0804B82A  	.align 2, 0 -_0804B820: .4byte gUnknown_2024018 +_0804B820: .4byte gBattleSpritesDataPtr  _0804B824: .4byte SpriteCB_ReleaseMon2FromBall  _0804B828:  	ldr r0, _0804B840 @ =sub_804B268 @@ -1920,11 +1920,11 @@ SpriteCB_OpponentMonSendOut: @ 804B868  	ble _0804B8BC  	movs r0, 0  	strh r0, [r5, 0x2E] -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _0804B8B8 -	ldr r0, _0804B8B0 @ =gUnknown_2024018 +	ldr r0, _0804B8B0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r0, [r0, 0x8]  	ldrb r1, [r0, 0x9] @@ -1943,7 +1943,7 @@ SpriteCB_OpponentMonSendOut: @ 804B868  	ldr r0, _0804B8B4 @ =SpriteCB_ReleaseMon2FromBall  	b _0804B8BA  	.align 2, 0 -_0804B8B0: .4byte gUnknown_2024018 +_0804B8B0: .4byte gBattleSpritesDataPtr  _0804B8B4: .4byte SpriteCB_ReleaseMon2FromBall  _0804B8B8:  	ldr r0, _0804B8C4 @ =sub_804B268 @@ -2594,7 +2594,7 @@ sub_804BD94: @ 804BD94  	lsls r0, 24  	lsrs r0, 24  	adds r5, r0, 0 -	ldr r0, _0804BE14 @ =gUnknown_3004FF0 +	ldr r0, _0804BE14 @ =gHealthboxSpriteIds  	adds r0, r5, r0  	ldrb r1, [r0]  	lsls r0, r1, 4 @@ -2653,7 +2653,7 @@ _0804BE0C:  	pop {r0}  	bx r0  	.align 2, 0 -_0804BE14: .4byte gUnknown_3004FF0 +_0804BE14: .4byte gHealthboxSpriteIds  _0804BE18: .4byte gSprites  _0804BE1C: .4byte sub_804BE48  _0804BE20: .4byte sub_804BE24 @@ -2723,7 +2723,7 @@ DoHitAnimHealthboxEffect: @ 804BE70  	adds r3, r1, r2  	movs r0, 0x1  	strh r0, [r3, 0x2E] -	ldr r0, _0804BEB0 @ =gUnknown_3004FF0 +	ldr r0, _0804BEB0 @ =gHealthboxSpriteIds  	adds r4, r0  	ldrb r0, [r4]  	strh r0, [r3, 0x30] @@ -2736,7 +2736,7 @@ DoHitAnimHealthboxEffect: @ 804BE70  	.align 2, 0  _0804BEA8: .4byte SpriteCB_HitAnimHealthoxEffect  _0804BEAC: .4byte gSprites -_0804BEB0: .4byte gUnknown_3004FF0 +_0804BEB0: .4byte gHealthboxSpriteIds  	thumb_func_end DoHitAnimHealthboxEffect  	thumb_func_start SpriteCB_HitAnimHealthoxEffect diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s index 8fc385744..de3071fd6 100644 --- a/asm/pokemon_jump_2.s +++ b/asm/pokemon_jump_2.s @@ -6896,7 +6896,7 @@ _0814AE2A:  	ldrh r0, [r7]  	ldr r1, [r7, 0x4]  	ldr r2, [r7, 0x8] -	bl GetFrontSpritePalFromSpeciesAndPersonality +	bl GetMonSpritePalFromSpeciesAndPersonality  	str r0, [sp, 0x20]  	add r0, sp, 0x20  	ldr r1, [r0, 0x4] diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index a7777c2ca..47097a060 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -16568,7 +16568,7 @@ _08093C4E:  	adds r1, r4  	ldrh r0, [r1]  	mov r1, r9 -	bl GetFrontSpritePalFromSpeciesAndPersonality +	bl GetMonSpritePalFromSpeciesAndPersonality  	ldr r1, [r5]  	ldr r3, _08093CE8 @ =0x00000cd8  	adds r2, r1, r3 diff --git a/asm/psychic.s b/asm/psychic.s index 874a35948..cff45fc8c 100644 --- a/asm/psychic.s +++ b/asm/psychic.s @@ -77,7 +77,7 @@ _080B2F5A:  	lsls r0, 24  	cmp r0, 0  	bne _080B2F90 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080B2F90 @@ -112,7 +112,7 @@ _080B2F90:  _080B2FA6:  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080B3004 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -121,7 +121,7 @@ _080B2FA6:  	strh r0, [r6, 0x20]  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x2] @@ -411,7 +411,7 @@ _080B31EA:  	lsls r0, 24  	cmp r0, 0  	bne _080B3232 -	bl sub_8075290 +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _080B3232 @@ -484,13 +484,13 @@ sub_80B3278: @ 80B3278  	ldr r4, _080B32C0 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -573,14 +573,14 @@ sub_80B32F4: @ 80B32F4  _080B333A:  	ldrb r0, [r6]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r4  	strh r0, [r5, 0x20]  	ldrb r0, [r6]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r7 @@ -888,13 +888,13 @@ sub_80B3584: @ 80B3584  	ldr r4, _080B3610 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x24] @@ -1206,13 +1206,13 @@ sub_80B37EC: @ 80B37EC  	ldr r4, _080B382C @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] @@ -2053,13 +2053,13 @@ _080B3EA4:  	ldr r4, _080B3EF8 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x20]  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x22] diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index 9ec3e3580..483314c54 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -294,8 +294,8 @@ _080779B0:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback -	bl sub_8075290 +	bl SetBattlerShadowSpriteCallback +	bl IsDoubleBattle  	lsls r0, 24  	cmp r0, 0  	beq _08077A14 @@ -315,7 +315,7 @@ _080779B0:  	lsls r1, 16  	lsrs r1, 16  	adds r0, r4, 0 -	bl SetBankEnemyShadowSpriteCallback +	bl SetBattlerShadowSpriteCallback  _08077A14:  	ldr r1, _08077A4C @ =gUnknown_2023FF8  	ldr r0, _08077A50 @ =gBattlerInMenuId @@ -455,7 +455,7 @@ _08077B1C:  	ldr r1, _08077B60 @ =gEnemyParty  	adds r0, r1  	adds r1, r4, 0 -	bl sub_8034658 +	bl DecompressGhostFrontPic  	b _08077C24  	.align 2, 0  _08077B54: .4byte gBattlersCount @@ -463,7 +463,7 @@ _08077B58: .4byte gBattleTypeFlags  _08077B5C: .4byte gBattlerPartyIndexes  _08077B60: .4byte gEnemyParty  _08077B64: -	ldr r0, _08077B90 @ =gUnknown_2024018 +	ldr r0, _08077B90 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r4, 2 @@ -485,13 +485,13 @@ _08077B64:  	bl BattleLoadOpponentMonSpriteGfx  	b _08077C24  	.align 2, 0 -_08077B90: .4byte gUnknown_2024018 +_08077B90: .4byte gBattleSpritesDataPtr  _08077B94: .4byte gBattlerPartyIndexes  _08077B98: .4byte gEnemyParty  _08077B9C:  	adds r0, r4, 0  	movs r1, 0 -	bl sub_80350BC +	bl BattleLoadSubstituteOrMonSpriteGfx  	b _08077C24  _08077BA6:  	ldr r0, _08077BC0 @ =gBattleTypeFlags @@ -524,7 +524,7 @@ _08077BDA:  	bl sub_8034750  	b _08077C24  _08077BE2: -	ldr r0, _08077C10 @ =gUnknown_2024018 +	ldr r0, _08077C10 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r4, 2 @@ -543,16 +543,16 @@ _08077BE2:  	ldr r1, _08077C18 @ =gPlayerParty  	adds r0, r1  	adds r1, r4, 0 -	bl sub_8034498 +	bl BattleLoadPlayerMonSpriteGfx  	b _08077C24  	.align 2, 0 -_08077C10: .4byte gUnknown_2024018 +_08077C10: .4byte gBattleSpritesDataPtr  _08077C14: .4byte gBattlerPartyIndexes  _08077C18: .4byte gPlayerParty  _08077C1C:  	adds r0, r4, 0  	movs r1, 0 -	bl sub_80350BC +	bl BattleLoadSubstituteOrMonSpriteGfx  _08077C24:  	ldr r0, _08077C34 @ =gBattleScripting  	adds r0, 0x22 @@ -598,7 +598,7 @@ _08077C50:  _08077C6C: .4byte gBattlersCount  _08077C70: .4byte gBattleTypeFlags  _08077C74: -	ldr r0, _08077C90 @ =gUnknown_2024018 +	ldr r0, _08077C90 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r7, 2 @@ -612,10 +612,10 @@ _08077C74:  	bl GetSubstituteSpriteDefault_Y  	b _08077C9A  	.align 2, 0 -_08077C90: .4byte gUnknown_2024018 +_08077C90: .4byte gBattleSpritesDataPtr  _08077C94:  	adds r0, r7, 0 -	bl GetBankSpriteDefault_Y +	bl GetBattlerSpriteDefault_Y  _08077C9A:  	lsls r0, 24  	lsrs r0, 24 @@ -665,7 +665,7 @@ _08077CD2:  	ldr r5, _08077D98 @ =gMultiuseSpriteTemplate  	adds r0, r7, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -891,7 +891,7 @@ _08077EA8:  	ldr r5, _08077FCC @ =gMultiuseSpriteTemplate  	adds r0, r7, 0  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	adds r4, r0, 0  	lsls r4, 24  	lsrs r4, 24 @@ -965,7 +965,7 @@ _08077F84:  	adds r2, r0  	lsls r2, 2  	adds r2, r1 -	ldr r0, _08077FE0 @ =gUnknown_2024018 +	ldr r0, _08077FE0 @ =gBattleSpritesDataPtr  	ldr r0, [r0]  	ldr r1, [r0]  	lsls r0, r7, 2 @@ -997,7 +997,7 @@ _08077FD0: .4byte gBattlerSpriteIds  _08077FD4: .4byte gSprites  _08077FD8: .4byte SpriteCallbackDummy  _08077FDC: .4byte gBattleMonForms -_08077FE0: .4byte gUnknown_2024018 +_08077FE0: .4byte gBattleSpritesDataPtr  	thumb_func_end sub_8077C38  	thumb_func_start CreateHealthboxSprite @@ -1036,15 +1036,15 @@ _08078014:  	b _08078166  _08078026:  	adds r0, r5, 0 -	bl CreateBankHealthboxSprites +	bl CreateBattlerHealthboxSprites  _0807802C:  	lsls r0, 24  	lsrs r6, r0, 24 -	ldr r0, _08078068 @ =gUnknown_3004FF0 +	ldr r0, _08078068 @ =gHealthboxSpriteIds  	adds r4, r5, r0  	strb r6, [r4]  	adds r0, r5, 0 -	bl SetBankHealthboxSpritePos +	bl InitBattlerHealthboxCoords  	adds r0, r6, 0  	bl SetHealthboxSpriteVisible  	adds r0, r5, 0 @@ -1065,7 +1065,7 @@ _0807802C:  	bl UpdateHealthboxAttribute  	b _080780C0  	.align 2, 0 -_08078068: .4byte gUnknown_3004FF0 +_08078068: .4byte gHealthboxSpriteIds  _0807806C: .4byte gBattlerPartyIndexes  _08078070: .4byte gEnemyParty  _08078074: @@ -1117,22 +1117,22 @@ _080780C0:  	cmp r0, 0x2  	bne _080780F8  _080780DC: -	ldr r0, _080780F4 @ =gUnknown_3004FF0 +	ldr r0, _080780F4 @ =gHealthboxSpriteIds  	adds r0, r5, r0  	ldrb r0, [r0]  	movs r1, 0x1 -	bl nullsub_21 +	bl DummyBattleInterfaceFunc  	b _08078104  	.align 2, 0  _080780EC: .4byte gBattlerPartyIndexes  _080780F0: .4byte gPlayerParty -_080780F4: .4byte gUnknown_3004FF0 +_080780F4: .4byte gHealthboxSpriteIds  _080780F8: -	ldr r0, _08078130 @ =gUnknown_3004FF0 +	ldr r0, _08078130 @ =gHealthboxSpriteIds  	adds r0, r5, r0  	ldrb r0, [r0]  	movs r1, 0 -	bl nullsub_21 +	bl DummyBattleInterfaceFunc  _08078104:  	adds r0, r5, 0  	bl GetBattlerSide @@ -1154,7 +1154,7 @@ _08078104:  	bl SetHealthboxSpriteInvisible  	b _08078166  	.align 2, 0 -_08078130: .4byte gUnknown_3004FF0 +_08078130: .4byte gHealthboxSpriteIds  _08078134: .4byte gBattlerPartyIndexes  _08078138: .4byte gEnemyParty  _0807813C: diff --git a/asm/rock.s b/asm/rock.s index 39f3c7780..cef182f32 100644 --- a/asm/rock.s +++ b/asm/rock.s @@ -713,13 +713,13 @@ sub_80B4BD0: @ 80B4BD0  	ldr r5, _080B4C54 @ =gBattleAnimAttacker  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r9, r0  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r1, 0xC0 @@ -729,13 +729,13 @@ sub_80B4BD0: @ 80B4BD0  	ldr r4, _080B4C58 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r10, r0  	ldrb r0, [r4]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 8  	movs r2, 0xC0 @@ -1331,13 +1331,13 @@ sub_80B50A0: @ 80B50A0  	ldr r5, _080B50EC @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r5]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r2, _080B50F0 @ =gBattleAnimArgs diff --git a/asm/water.s b/asm/water.s index eac5fc3c1..e7465befa 100644 --- a/asm/water.s +++ b/asm/water.s @@ -130,7 +130,7 @@ sub_80AAC98: @ 80AAC98  	beq _080AACC8  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldr r4, _080AACC4 @ =gBattleAnimArgs @@ -143,7 +143,7 @@ _080AACC4: .4byte gBattleAnimArgs  _080AACC8:  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	ldr r4, _080AADA0 @ =gBattleAnimArgs  	lsrs r0, 24 @@ -153,7 +153,7 @@ _080AACDA:  	strh r0, [r6, 0x20]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r4, [r4, 0x2] @@ -184,7 +184,7 @@ _080AAD10:  	ldr r4, _080AADA8 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x32] @@ -192,7 +192,7 @@ _080AAD10:  	strh r0, [r6, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r6, 0x36] @@ -390,7 +390,7 @@ _080AAEBA:  	ldr r4, _080AAF14 @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	adds r0, r6 @@ -399,7 +399,7 @@ _080AAEBA:  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r7, [r7, 0x6] @@ -577,7 +577,7 @@ sub_80AB024: @ 80AB024  	ldr r4, _080AB08C @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x32] @@ -585,7 +585,7 @@ sub_80AB024: @ 80AB024  	strh r0, [r5, 0x34]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x36] @@ -737,13 +737,13 @@ sub_80AB168: @ 80AB168  	ldr r7, _080AB1B4 @ =gBattleAnimAttacker  	ldrb r0, [r7]  	movs r1, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x20]  	ldrb r0, [r7]  	movs r1, 0x1 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x22] @@ -877,7 +877,7 @@ _080AB27A:  	ldr r4, _080AB2BC @ =gBattleAnimTarget  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r1, [r5, 0x4] @@ -885,7 +885,7 @@ _080AB27A:  	strh r0, [r6, 0x32]  	ldrb r0, [r4]  	adds r1, r7, 0 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	ldrh r5, [r5, 0x6] @@ -2397,13 +2397,13 @@ sub_80ABE4C: @ 80ABE4C  	ldr r4, _080ABF54 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	mov r8, r0  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r6, r0, 24  	movs r5, 0xAC @@ -3025,14 +3025,14 @@ sub_80AC328: @ 80AC328  	ldr r4, _080AC3B0 @ =gBattleAnimAttacker  	ldrb r0, [r4]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	movs r6, 0  	strh r0, [r5, 0xE]  	ldrb r0, [r4]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r5, 0x10] @@ -3502,13 +3502,13 @@ sub_80AC6D8: @ 80AC6D8  	ldr r5, _080AC714 @ =gBattleAnimTarget  	ldrb r0, [r5]  	movs r1, 0x2 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x30]  	ldrb r0, [r5]  	movs r1, 0x3 -	bl sub_8074480 +	bl GetBattlerSpriteCoord  	lsls r0, 24  	lsrs r0, 24  	strh r0, [r4, 0x32] diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 3d1de8ac5..4b45f3669 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -10,8 +10,8 @@ gUnknown_81C68F4:: @ 81C68F4  gUnknown_81C6E84:: @ 81C6E84  	.incbin "baserom.gba", 0x1C6E84, 0x24 -gUnknown_81C6EA8:: @ 81C6EA8 +gBattleAnims_General:: @ 81C6EA8  	.incbin "baserom.gba", 0x1C6EA8, 0x70 -gUnknown_81C6F18:: @ 81C6F18 +gBattleAnims_Special:: @ 81C6F18  	.incbin "baserom.gba", 0x1C6F18, 0xF690 diff --git a/data/data.s b/data/data.s index 0322670c0..943c71678 100644 --- a/data/data.s +++ b/data/data.s @@ -166,7 +166,7 @@ gTrainerBackPicTable:: @ 8239FA4  gUnknown_8239FD4:: @ 8239FD4  	.incbin "baserom.gba", 0x239FD4, 0x30 -gUnknown_823A004:: @ 823A004 +gEnemyMonElevation:: @ 823A004  	.incbin "baserom.gba", 0x23A004, 0x4554  gTrainerClassNames:: @ 823E558 @@ -344,10 +344,10 @@ gUnknown_8250994:: @ 8250994  gUnknown_82509F4:: @ 82509F4  	.incbin "baserom.gba", 0x2509F4, 0x18 -gUnknown_8250A0C:: @ 8250A0C +gSpriteSheet_EnemyShadow:: @ 8250A0C  	.incbin "baserom.gba", 0x250A0C, 0x10 -gUnknown_8250A1C:: @ 8250A1C +gSpriteTemplate_EnemyShadow:: @ 8250A1C  	.incbin "baserom.gba", 0x250A1C, 0x18  gUnknown_8250A34:: @ 8250A34 @@ -356,35 +356,10 @@ gUnknown_8250A34:: @ 8250A34  gUnknown_8250B20:: @ 8250B20  	.incbin "baserom.gba", 0x250B20, 0xE4 -	.section .rodata.825EF0C +	.section .rodata.8260270 -	.align 2 -gUnknown_8260208:: @ 8260208 -	.incbin "baserom.gba", 0x260208, 0x8 - -gUnknown_8260210:: @ 8260210 -	.incbin "baserom.gba", 0x260210, 0x8 - -gUnknown_8260218:: @ 8260218 -	.incbin "baserom.gba", 0x260218, 0x8 - -gUnknown_8260220:: @ 8260220 -	.incbin "baserom.gba", 0x260220, 0x8 - -gUnknown_8260228:: @ 8260228 -	.incbin "baserom.gba", 0x260228, 0x8 - -gUnknown_8260230:: @ 8260230 -	.incbin "baserom.gba", 0x260230, 0x8 - -gUnknown_8260238:: @ 8260238 -	.incbin "baserom.gba", 0x260238, 0x8 - -gUnknown_8260240:: @ 8260240 -	.incbin "baserom.gba", 0x260240, 0x20 - -gUnknown_8260260:: @ 8260260 -	.incbin "baserom.gba", 0x260260, 0x18 +gUnknown_8260270:: @ 8260270 +	.incbin "baserom.gba", 0x260270, 0x8  gUnknown_8260278:: @ 8260278  	.incbin "baserom.gba", 0x260278, 0x30 diff --git a/data/graphics.s b/data/graphics.s index 83d14001d..034db89da 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -146,7 +146,7 @@ gFile_graphics_interface_ball_Open_sheet:: @ 8D022E8  	.incbin "graphics/interface/ball_open.4bpp.lz"  	.align 2 -gFile_graphics_interface_blank_sheet:: @ 8D02364 +gBlankGfxCompressed:: @ 8D02364  	.incbin "graphics/interface/blank.4bpp.lz"  	.align 2 @@ -1062,8 +1062,11 @@ gFile_graphics_unused_basic_frame_tilemap:: @ 8D11A78  	.incbin "graphics/unused/basic_frame.bin.lz"  	.align 2 -gUnknown_8D11B84:: @ 8D11B84 -	.incbin "baserom.gba", 0xD11B84, 0x40 +gBattleInterface_BallStatusBarPal:: @ 8D11B84 +	.incbin "baserom.gba", 0xD11B84, 0x20 + +gBattleInterface_BallDisplayPal:: @ 8D11BA4 +	.incbin "baserom.gba", 0xD11BA4, 0x20  gUnknown_8D11BC4:: @ 8D11BC4  	.incbin "baserom.gba", 0xD11BC4, 0xF00 @@ -1761,23 +1764,23 @@ gFile_graphics_battle_anims_sprites_186_palette:: @ 8D1F31C  	.incbin "graphics/battle_anims/sprites/186.gbapal.lz"  	.align 2 -gUnknown_8D1F340:: @ 8D1F340 +gHealthboxSinglesPlayerGfx:: @ 8D1F340  	.incbin "baserom.gba", 0xD1F340, 0x2C4  	.align 2 -gUnknown_8D1F604:: @ 8D1F604 +gHealthboxSinglesOpponentGfx:: @ 8D1F604  	.incbin "baserom.gba", 0xD1F604, 0x190  	.align 2 -gUnknown_8D1F794:: @ 8D1F794 +gHealthboxDoublesPlayerGfx:: @ 8D1F794  	.incbin "baserom.gba", 0xD1F794, 0x194  	.align 2 -gUnknown_8D1F928:: @ 8D1F928 +gHealthboxDoublesOpponentGfx:: @ 8D1F928  	.incbin "baserom.gba", 0xD1F928, 0x194  	.align 2 -gFile_graphics_battle_interface_healthbox_safari_sheet:: @ 8D1FABC +gHealthboxSafariGfx:: @ 8D1FABC  	.incbin "graphics/battle_interface/healthbox_safari.4bpp.lz"  	.align 2 @@ -2365,15 +2368,15 @@ gFile_graphics_battle_anims_sprites_240_palette:: @ 8D2D068  	.incbin "graphics/battle_anims/sprites/240.gbapal.lz"  	.align 2 -gFile_graphics_battle_anims_sprites_substitute_palette:: @ 8D2D090 +gSubstituteDollPal:: @ 8D2D090  	.incbin "graphics/battle_anims/sprites/substitute.gbapal.lz"  	.align 2 -gFile_graphics_battle_anims_sprites_substitute_sheet:: @ 8D2D0B4 +gSubstituteDollGfx:: @ 8D2D0B4  	.incbin "graphics/battle_anims/sprites/substitute.4bpp.lz"  	.align 2 -gFile_graphics_battle_anims_sprites_substitute_tilemap:: @ 8D2D2F4 +gSubstituteDollTilemap:: @ 8D2D2F4  	.incbin "graphics/battle_anims/sprites/substitute.bin.lz"  	.align 2 @@ -15923,10 +15926,10 @@ gFile_graphics_battle_anims_sprites_271_sheet:: @ 8E93AB4  	.incbin "graphics/battle_anims/sprites/271.4bpp.lz"  	.align 2 -gUnknown_8E93B14:: @ 8E93B14 +gGhostPalette:: @ 8E93B14  	.incbin "baserom.gba", 0xE93B14, 0x24 -gUnknown_8E93B38:: @ 8E93B38 +gGhostFrontPic:: @ 8E93B38  	.incbin "baserom.gba", 0xE93B38, 0x368  gUnknown_8E93EA0:: @ 8E93EA0 diff --git a/include/battle.h b/include/battle.h index b1284fd6c..1a8fa0201 100644 --- a/include/battle.h +++ b/include/battle.h @@ -863,9 +863,9 @@ struct BattleAnimationInfo  struct BattleHealthboxInfo  { -    u8 flag_x1 : 1; -    u8 flag_x2 : 1; -    u8 flag_x4 : 1; +    u8 partyStatusSummaryShown : 1; +    u8 healthboxIsBouncing : 1; +    u8 battlerIsBouncing : 1;      u8 ballAnimActive : 1; // 0x8      u8 statusAnimActive : 1; // x10      u8 animFromTableActive : 1; // x20 @@ -876,11 +876,11 @@ struct BattleHealthboxInfo      u8 field_1_x20 : 1;      u8 field_1_x40 : 1;      u8 field_1_x80 : 1; -    u8 field_2; -    u8 field_3; +    u8 healthboxBounceSpriteId; +    u8 battlerBounceSpriteId;      u8 animationState;      u8 field_5; -    u8 field_6; +    u8 matrixNum;      u8 shadowSpriteId;      u8 field_8;      u8 field_9; @@ -894,12 +894,12 @@ struct BattleBarInfo      s32 maxValue;      s32 currentValue;      s32 receivedValue; -    s32 field_10; +    s32 currValue;  };  struct BattleSpriteData  { -    struct BattleSpriteInfo *bankData; +    struct BattleSpriteInfo *battlerData;      struct BattleHealthboxInfo *healthBoxesData;      struct BattleAnimationInfo *animationData;      struct BattleBarInfo *battleBars; @@ -949,6 +949,10 @@ extern u8 gPotentialItemEffectBattler;  extern u8 gBattlersCount;  extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];  extern s32 gBattleMoveDamage; +extern u16 gIntroSlideFlags; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; +extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];  extern u8 gBattleOutcome;  extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; diff --git a/include/battle_2.h b/include/battle_2.h index 02050afd9..72fcb0e11 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -46,6 +46,7 @@ void RunBattleScriptCommands(void);  bool8 TryRunFromBattle(u8 bank);  void sub_800FD9C(void);  void sub_80120C4(struct Sprite *); +void sub_8012100(struct Sprite *);  extern const u8 gStatusConditionString_PoisonJpn[8];  extern const u8 gStatusConditionString_SleepJpn[8]; diff --git a/include/battle_anim.h b/include/battle_anim.h index 0406c78a0..fb744c316 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -126,7 +126,7 @@ u8 sub_80A6D94(void);  u8 sub_80A8364(u8);  void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));  void oamt_add_pos2_onto_pos1(struct Sprite *sprite); -u8 GetBankSpriteDefault_Y(u8 bank); +u8 GetBattlerSpriteDefault_Y(u8 bank);  u8 sub_80A82E4(u8 bank);  u8 GetSubstituteSpriteDefault_Y(u8 bank); @@ -147,6 +147,7 @@ void ResetSpriteRotScale(u8 spriteId);  void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);  bool8 IsContest(void);  void sub_80759DC(u8 spriteId); +bool8 IsBattlerSpritePresent(u8 battlerId);  // battle_anim_mon_movement.c  void AnimTask_ShakeMon(u8 taskId); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index df00c3526..577bce485 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -242,7 +242,6 @@ void EmitCmd55(u8 bufferId, u8 arg1);  // player controller  void SetControllerToPlayer(void); -void nullsub_21(void);  void PlayerHandleGetRawMonData(void);  void sub_80587B0(void);  void sub_805CC00(struct Sprite *sprite); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 313a29811..39cea7ad1 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -1,50 +1,45 @@ -#ifndef GUARD_BATTLE_GFX_SFX_UTIL -#define GUARD_BATTLE_GFX_SFX_UTIL +#ifndef GUARD_BATTLE_GFX_SFX_UTIL_H +#define GUARD_BATTLE_GFX_SFX_UTIL_H  void AllocateBattleSpritesData(void);  void FreeBattleSpritesData(void); -u16 ChooseMoveAndTargetInBattlePalace(void); -void sub_805D714(struct Sprite *sprite); -void sub_805D770(struct Sprite *sprite, bool8 arg1); -void sub_805D7AC(struct Sprite *sprite); +void sub_8033E3C(struct Sprite *sprite); +void sub_8033EEC(struct Sprite *sprite);  void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status); -bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId, u16 argument); -void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId); +bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId, u16 argument); +void InitAndLaunchSpecialAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId);  bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn); -bool8 mplay_80342A4(u8 bank); -void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank); -void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank); -void nullsub_23(void); -void nullsub_24(u16 species); -void DecompressTrainerFrontPic(u16 frontPicId, u8 bank); -void DecompressTrainerBackPic(u16 backPicId, u8 bank); -void nullsub_25(u8 arg0); -void FreeTrainerFrontPicPalette(u16 frontPicId); -void sub_805DFFC(void); +bool8 mplay_80342A4(u8 battlerId); +void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId); +void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); +void DecompressGhostFrontPic(u16 frontPicId, u8 battlerId); +void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId); +void sub_8034750(u16 a1, u8 a2); +void nullsub_16(u8 a1); +void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId);  bool8 BattleLoadAllHealthBoxesGfx(u8 state);  void LoadBattleBarGfx(u8 arg0); -bool8 BattleInitAllSprites(u8 *state1, u8 *bank); +bool8 BattleInitAllSprites(u8 *state, u8 *battlerId);  void ClearSpritesHealthboxAnimData(void);  void CopyAllBattleSpritesInvisibilities(void); -void CopyBattleSpriteInvisibility(u8 bank); -void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform); -void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite); -void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId); -void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move); -void ClearBehindSubstituteBit(u8 bank); -void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank); +void CopyBattleSpriteInvisibility(u8 battlerId); +void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 notTransform); +void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite); +void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId); +void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move); +void ClearBehindSubstituteBit(u8 battlerId); +void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId);  void BattleStopLowHpSound(void); -u8 GetMonHPBarLevel(struct Pokemon *mon); -void sub_805EAE8(void); -void sub_805EB9C(u8 affineMode); +void HandleBattleLowHpMusicChange(void); +void sub_8035450(u8 affineMode);  void LoadAndCreateEnemyShadowSprites(void);  void SpriteCB_SetInvisible(struct Sprite *sprite); -void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species); -void EnemyShadowCallbackToSetInvisible(u8 bank); -void sub_805EF14(void); -void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute); +void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species); +void HideBattlerShadowSprite(u8 battlerId); +void sub_80357C8(void); +void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);  void AllocateMonSpritesGfx(void);  void FreeMonSpritesGfx(void);  bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon); -#endif // GUARD_BATTLE_GFX_SFX_UTIL +#endif // GUARD_BATTLE_GFX_SFX_UTIL_H diff --git a/include/battle_interface.h b/include/battle_interface.h index 27f93a3c2..bdcb4d80e 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -30,12 +30,18 @@ enum  #define TAG_HEALTHBOX_OPPONENT1_TILE    0xD701  #define TAG_HEALTHBOX_OPPONENT2_TILE    0xD702 +#define TAG_HEALTHBAR_PLAYER1_TILE      0xD704 +#define TAG_HEALTHBAR_OPPONENT1_TILE    0xD705 +#define TAG_HEALTHBAR_PLAYER2_TILE      0xD706 +#define TAG_HEALTHBAR_OPPONENT2_TILE    0xD707 +  #define TAG_HEALTHBOX_SAFARI_TILE       0xD70B  #define TAG_STATUS_SUMMARY_BAR_TILE     0xD70C  #define TAG_STATUS_SUMMARY_BALLS_TILE   0xD714  #define TAG_HEALTHBOX_PAL               0xD6FF +#define TAG_HEALTHBAR_PAL               0xD704  #define TAG_STATUS_SUMMARY_BAR_PAL      0xD710  #define TAG_STATUS_SUMMARY_BALLS_PAL    0xD712 @@ -55,7 +61,7 @@ enum      HEALTHBOX_SAFARI_BALLS_TEXT  }; -u8 CreateBankHealthboxSprites(u8 bank); +u8 CreateBattlerHealthboxSprites(u8 bank);  u8 CreateSafariPlayerHealthboxSprites(void);  void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);  void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); @@ -63,7 +69,7 @@ void SetHealthboxSpriteVisible(u8 healthboxSpriteId);  void DestoryHealthboxSprite(u8 healthboxSpriteId);  void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);  void UpdateOamPriorityInAllHealthboxes(u8 priority); -void SetBankHealthboxSpritePos(u8 bank); +void InitBattlerHealthboxCoords(u8 bank);  void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);  void SwapHpBarsWithHpText(void);  u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); @@ -72,5 +78,7 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem  s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3);  u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);  u8 GetHPBarLevel(s16 hp, s16 maxhp); +void sub_80496C0(u8 spriteId, struct Pokemon *mon); +void sub_804981C(u8 spriteId, u8);  #endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/data2.h b/include/data2.h index 3ce3c33c8..421695f18 100644 --- a/include/data2.h +++ b/include/data2.h @@ -2,6 +2,7 @@  #define GUARD_DATA2_H  #include "global.h" +#include "constants/species.h"  struct MonCoords  { @@ -23,8 +24,22 @@ extern const u16 gUnknown_8251FEE[];  extern const u16 gUnknown_8252324[];  extern const u16 gUnknown_82539D4[]; +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[];  extern const struct CompressedSpritePalette gMonPaletteTable[];  extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const struct CompressedSpritePalette gUnknown_8239FD4[]; + +extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; +extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; + +extern const u8 gEnemyMonElevation[NUM_SPECIES]; + +extern const u8 *const gBattleAnims_General[]; +extern const u8 *const gBattleAnims_Special[]; +  extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];  extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; diff --git a/include/graphics.h b/include/graphics.h index e8503609e..6f9d8b762 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -961,4 +961,20 @@ extern const u8 gFile_graphics_items_icon_palettes_sapphire_palette[];  extern const u8 gFile_graphics_items_icons_return_to_field_arrow_sheet[];  extern const u8 gFile_graphics_items_icon_palettes_return_to_field_arrow_palette[]; +extern const u32 gHealthboxSinglesPlayerGfx[]; +extern const u32 gHealthboxSinglesOpponentGfx[]; +extern const u32 gHealthboxDoublesPlayerGfx[]; +extern const u32 gHealthboxDoublesOpponentGfx[]; +extern const u32 gHealthboxSafariGfx[]; +extern const u32 gBlankGfxCompressed[]; +extern const u16 gBattleInterface_BallStatusBarPal[]; +extern const u16 gBattleInterface_BallDisplayPal[]; +extern const u32 gFile_graphics_interface_hp_numbers[]; + +extern const u32 gGhostFrontPic[]; +extern const u32 gGhostPalette[]; +extern const u32 gSubstituteDollGfx[]; +extern const u32 gSubstituteDollTilemap[]; +extern const u16 gSubstituteDollPal[]; +  #endif //GUARD_GRAPHICS_H diff --git a/include/party_menu.h b/include/party_menu.h index e4fc182e9..2ae33175c 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -62,5 +62,6 @@ void sub_81279E0(void);  void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc);  u8 GetItemEffectType(u16 itemId);  u8 pokemon_order_func(u8); +void sub_8127CAC(void);  #endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon.h b/include/pokemon.h index 9dd5850b4..d2eefd390 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -539,6 +539,7 @@ extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];  extern const u16 *const gLevelUpLearnsets[];  extern const u8 gFacilityClassToPicIndex[];  extern const u8 gFacilityClassToTrainerClass[]; +extern const struct SpriteTemplate gUnknown_825DEF0[];  void ZeroBoxMonData(struct BoxPokemon *boxMon);  void ZeroMonData(struct Pokemon *mon); @@ -640,7 +641,7 @@ void ClearBattleMonForms(void);  void PlayBattleBGM(void);  void PlayMapChosenOrBattleBGM(u16 songId);  const u32 *GetMonFrontSpritePal(struct Pokemon *mon); -const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality); +const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);  const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);  const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);  bool32 IsHMMove2(u16 move); diff --git a/ld_script.txt b/ld_script.txt index d9506d33f..f268484e5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -71,7 +71,7 @@ SECTIONS {          asm/battle_script_commands.o(.text);          asm/battle_util2.o(.text);          asm/battle_controller_player.o(.text); -        asm/battle_gfx_sfx_util.o(.text); +        src/battle_gfx_sfx_util.o(.text);          asm/battle_controller_opponent.o(.text);          asm/battle_ai_switch_items.o(.text);          asm/battle_controller_link_opponent.o(.text); @@ -384,7 +384,8 @@ SECTIONS {          src/trig.o(.rodata);          src/util.o(.rodata);          src/daycare.o(.rodata); -        data/data.o(.rodata.825EF0C); +        src/battle_gfx_sfx_util.o(.rodata); +        data/data.o(.rodata.8260270);          data/tilesets.o(.rodata);          data/maps.o(.rodata);          src/fieldmap.o(.rodata); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c new file mode 100644 index 000000000..bea4406bc --- /dev/null +++ b/src/battle_gfx_sfx_util.c @@ -0,0 +1,1059 @@ +#include "global.h" +#include "main.h" +#include "m4a.h" +#include "task.h" +#include "malloc.h" +#include "graphics.h" +#include "sound.h" +#include "decompress.h" +#include "palette.h" +#include "sprite.h" +#include "data2.h" +#include "util.h" +#include "party_menu.h" +#include "battle.h" +#include "battle_2.h" +#include "battle_controllers.h" +#include "battle_ai_script_commands.h" +#include "battle_anim.h" +#include "battle_interface.h" +#include "constants/species.h" +#include "constants/moves.h" +#include "constants/songs.h" + +static bool8 ShouldAnimBeDoneRegardlessOfSubsitute(u8 animId); +static void Task_ClearBitWhenBattleTableAnimDone(u8 taskId); +static void Task_ClearBitWhenSpecialAnimDone(u8 taskId); +static void ClearSpritesBattlerHealthboxAnimData(void); + +static const struct CompressedSpriteSheet sSpriteSheet_SinglesPlayerHealthbox = +{ +    .data = gHealthboxSinglesPlayerGfx, +    .size = 0x1000, +    .tag = TAG_HEALTHBOX_PLAYER1_TILE, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_SinglesOpponentHealthbox = +{ +    .data = gHealthboxSinglesOpponentGfx, +    .size = 0x1000, +    .tag = TAG_HEALTHBOX_OPPONENT1_TILE, +}; + +static const struct CompressedSpriteSheet sSpriteSheets_DoublesPlayerHealthbox[2] = +{ +    { +        .data = gHealthboxDoublesPlayerGfx, +        .size = 0x800, +        .tag = TAG_HEALTHBOX_PLAYER1_TILE, +    }, +    { +        .data = gHealthboxDoublesPlayerGfx, +        .size = 0x800, +        .tag = TAG_HEALTHBOX_PLAYER2_TILE, +    }, +}; + +static const struct CompressedSpriteSheet sSpriteSheets_DoublesOpponentHealthbox[2] = +{ +    { +        .data = gHealthboxDoublesOpponentGfx, +        .size = 0x800, +        .tag = TAG_HEALTHBOX_OPPONENT1_TILE, +    }, +    { +        .data = gHealthboxDoublesOpponentGfx, +        .size = 0x800, +        .tag = TAG_HEALTHBOX_OPPONENT2_TILE, +    }, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_SafariHealthbox = +{ +    .data = gHealthboxSafariGfx, +    .size = 0x1000, +    .tag = TAG_HEALTHBOX_SAFARI_TILE, +}; + +static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_COUNT] = +{ +    { +        .data = gBlankGfxCompressed, +        .size = 0x100, +        .tag = TAG_HEALTHBAR_PLAYER1_TILE, +    }, +    { +        .data = gBlankGfxCompressed, +        .size = 0x120, +        .tag = TAG_HEALTHBAR_OPPONENT1_TILE, +    }, +    { +        .data = gBlankGfxCompressed, +        .size = 0x100, +        .tag = TAG_HEALTHBAR_PLAYER2_TILE, +    }, +    { +        .data = gBlankGfxCompressed, +        .size = 0x120, +        .tag = TAG_HEALTHBAR_OPPONENT2_TILE, +    }, +}; + +static const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] = +{ +    { +        .data = gBattleInterface_BallStatusBarPal, +        .tag = TAG_HEALTHBOX_PAL, +    }, +    { +        .data = gBattleInterface_BallDisplayPal, +        .tag = TAG_HEALTHBAR_PAL, +    }, +}; + +void AllocateBattleSpritesData(void) +{ +    gBattleSpritesDataPtr = AllocZeroed(sizeof(struct BattleSpriteData)); +    gBattleSpritesDataPtr->battlerData = AllocZeroed(sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); +    gBattleSpritesDataPtr->healthBoxesData = AllocZeroed(sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT); +    gBattleSpritesDataPtr->animationData = AllocZeroed(sizeof(struct BattleAnimationInfo)); +    gBattleSpritesDataPtr->battleBars = AllocZeroed(sizeof(struct BattleBarInfo) * MAX_BATTLERS_COUNT); +} + +void FreeBattleSpritesData(void) +{ +    if (gBattleSpritesDataPtr) +    { +        FREE_AND_SET_NULL(gBattleSpritesDataPtr->battleBars); +        FREE_AND_SET_NULL(gBattleSpritesDataPtr->animationData); +        FREE_AND_SET_NULL(gBattleSpritesDataPtr->healthBoxesData); +        FREE_AND_SET_NULL(gBattleSpritesDataPtr->battlerData); +        FREE_AND_SET_NULL(gBattleSpritesDataPtr); +    } +} + +void sub_8033E3C(struct Sprite *sprite) +{ +    u8 spriteId = sprite->data[1]; + +    if (!gSprites[spriteId].affineAnimEnded) +        return; +    if (gSprites[spriteId].invisible) +        return; +    if (gSprites[spriteId].animPaused) +        gSprites[spriteId].animPaused = 0; +    else if (gSprites[spriteId].animEnded) +    { +        gSprites[spriteId].callback = sub_8012100; +        StartSpriteAffineAnim(&gSprites[spriteId], 0); +        sprite->callback = SpriteCallbackDummy; +    } +} + +// not used +static void sub_8033EB0(struct Sprite *sprite, bool8 arg1) +{ +    sprite->animPaused = 1; +    sprite->callback = SpriteCallbackDummy; +    if (!arg1) +        StartSpriteAffineAnim(sprite, 1); +    else +        StartSpriteAffineAnim(sprite, 1); +    AnimateSprite(sprite); +} + +void sub_8033EEC(struct Sprite *sprite) +{ +    if (!(gIntroSlideFlags & 1)) +    { +        sprite->pos2.x += sprite->data[0]; +        if (sprite->pos2.x == 0) +            sprite->callback = SpriteCallbackDummy; +    } +} + +void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status) +{ +    gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 1; +    if (!isStatus2) +    { +        if (status == STATUS1_FREEZE) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_FRZ); +        else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_PSN); +        else if (status == STATUS1_BURN) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_BRN); +        else if (status & STATUS1_SLEEP) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_SLP); +        else if (status == STATUS1_PARALYSIS) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_PRZ); +        else // no animation +            gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 0; +    } +    else +    { +        if (status & STATUS2_INFATUATION) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_INFATUATION); +        else if (status & STATUS2_CONFUSION) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_CONFUSION); +        else if (status & STATUS2_CURSED) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_CURSED); +        else if (status & STATUS2_NIGHTMARE) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_NIGHTMARE); +        else if (status & STATUS2_WRAPPED) +            LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_WRAPPED); // this animation doesn't actually exist +        else // no animation +            gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 0; +    } +} + +#define tBattlerId data[0] + +bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId, u16 argument) +{ +    u8 taskId; + +    if (tableId == B_ANIM_CASTFORM_CHANGE && (argument & 0x80)) +    { +        gBattleMonForms[activeBattler] = (argument & ~(0x80)); +        return TRUE; +    } +    else if (gBattleSpritesDataPtr->battlerData[activeBattler].behindSubstitute +        && !ShouldAnimBeDoneRegardlessOfSubsitute(tableId)) +    { +        return TRUE; +    } +    else if (gBattleSpritesDataPtr->battlerData[activeBattler].behindSubstitute +        && tableId == B_ANIM_SUBSTITUTE_FADE +        && gSprites[gBattlerSpriteIds[activeBattler]].invisible) +    { +        LoadBattleMonGfxAndAnimate(activeBattler, TRUE, gBattlerSpriteIds[activeBattler]); +        ClearBehindSubstituteBit(activeBattler); +        return TRUE; +    } +    gBattleAnimAttacker = atkBattler; +    gBattleAnimTarget = defBattler; +    gBattleSpritesDataPtr->animationData->animArg = argument; +    LaunchBattleAnimation(gBattleAnims_General, tableId, FALSE); +    taskId = CreateTask(Task_ClearBitWhenBattleTableAnimDone, 10); +    gTasks[taskId].tBattlerId = activeBattler; +    gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].tBattlerId].animFromTableActive = 1; +    return FALSE; +} + +static void Task_ClearBitWhenBattleTableAnimDone(u8 taskId) +{ +    gAnimScriptCallback(); +    if (!gAnimScriptActive) +    { +        gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].tBattlerId].animFromTableActive = 0; +        DestroyTask(taskId); +    } +} + +static bool8 ShouldAnimBeDoneRegardlessOfSubsitute(u8 animId) +{ +    switch (animId) +    { +    case B_ANIM_SUBSTITUTE_FADE: +    case B_ANIM_RAIN_CONTINUES: +    case B_ANIM_SUN_CONTINUES: +    case B_ANIM_SANDSTORM_CONTINUES: +    case B_ANIM_HAIL_CONTINUES: +    case B_ANIM_SNATCH_MOVE: +        return TRUE; +    default: +        return FALSE; +    } +} + +void InitAndLaunchSpecialAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId) +{ +    u8 taskId; + +    gBattleAnimAttacker = atkBattler; +    gBattleAnimTarget = defBattler; +    LaunchBattleAnimation(gBattleAnims_Special, tableId, FALSE); +    taskId = CreateTask(Task_ClearBitWhenSpecialAnimDone, 10); +    gTasks[taskId].tBattlerId = activeBattler; +    gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].tBattlerId].specialAnimActive = 1; +} + +static void Task_ClearBitWhenSpecialAnimDone(u8 taskId) +{ +    gAnimScriptCallback(); +    if (!gAnimScriptActive) +    { +        gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].tBattlerId].specialAnimActive = 0; +        DestroyTask(taskId); +    } +} + +bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn) +{ +    return FALSE; +} + +bool8 mplay_80342A4(u8 battlerId) +{ +    u8 zero = 0; + +    if (IsSEPlaying()) +    { +        ++gBattleSpritesDataPtr->healthBoxesData[battlerId].field_8; +        if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_8 < 30) +            return TRUE; +        m4aMPlayStop(&gMPlayInfo_SE1); +        m4aMPlayStop(&gMPlayInfo_SE2); +    } +    if (zero == 0) +    { +        gBattleSpritesDataPtr->healthBoxesData[battlerId].field_8 = 0; +        return FALSE; +    } +    else +    { +        return TRUE; +    } +} + +void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId) +{ +    u32 monsPersonality, currentPersonality, otId; +    u16 species; +    u8 position; +    u16 paletteOffset; +    const void *lzPaletteData; +    void *buffer; + +    monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY); +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) +    { +        species = GetMonData(mon, MON_DATA_SPECIES); +        currentPersonality = monsPersonality; +    } +    else +    { +        species = gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies; +        currentPersonality = gTransformedPersonalities[battlerId]; +    } +    otId = GetMonData(mon, MON_DATA_OT_ID); +    position = GetBattlerPosition(battlerId); +    HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], +                                              gMonSpritesGfxPtr->sprites[position], +                                              species, currentPersonality); +    paletteOffset = 0x100 + battlerId * 16; +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) +        lzPaletteData = GetMonFrontSpritePal(mon); +    else +        lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality); +    buffer = AllocZeroed(0x400); +    LZDecompressWram(lzPaletteData, buffer); +    LoadPalette(buffer, paletteOffset, 0x20); +    LoadPalette(buffer, 0x80 + battlerId * 16, 0x20); +    Free(buffer); +    if (species == SPECIES_CASTFORM) +    { +        paletteOffset = 0x100 + battlerId * 16; +        LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); +        LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20); +    } +    // transform's pink color +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) +    { +        BlendPalette(paletteOffset, 16, 6, RGB_WHITE); +        CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); +    } +} + +void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId) +{ +    u32 monsPersonality, currentPersonality, otId; +    u16 species; +    u8 position; +    u16 paletteOffset; +    const void *lzPaletteData; +    void *buffer; + +    monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY); +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) +    { +        species = GetMonData(mon, MON_DATA_SPECIES); +        currentPersonality = monsPersonality; +    } +    else +    { +        species = gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies; +        currentPersonality = gTransformedPersonalities[battlerId]; +    } +    otId = GetMonData(mon, MON_DATA_OT_ID); +    position = GetBattlerPosition(battlerId); +    if (sub_804455C(1, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) +        HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], +                                                  gMonSpritesGfxPtr->sprites[position], +                                                  species, currentPersonality); +    else +        HandleLoadSpecialPokePic(&gMonBackPicTable[species], +                                gMonSpritesGfxPtr->sprites[position], +                                species, currentPersonality); +    paletteOffset = 0x100 + battlerId * 16; +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) +        lzPaletteData = GetMonFrontSpritePal(mon); +    else +        lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality); +    buffer = AllocZeroed(0x400); +    LZDecompressWram(lzPaletteData, buffer); +    LoadPalette(buffer, paletteOffset, 0x20); +    LoadPalette(buffer, 0x80 + battlerId * 16, 0x20); +    Free(buffer); +    if (species == SPECIES_CASTFORM) +    { +        paletteOffset = 0x100 + battlerId * 16; +        LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); +        LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20); +    } +    // transform's pink color +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) +    { +        BlendPalette(paletteOffset, 16, 6, RGB_WHITE); +        CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); +    } +} + +void DecompressGhostFrontPic(u16 frontPicId, u8 battlerId) +{ +    u16 palOffset; +    void *buffer; +    u8 position = GetBattlerPosition(battlerId); + +    LZ77UnCompWram(gGhostFrontPic, gMonSpritesGfxPtr->sprites[position]); +    palOffset = 0x100 + 16 * battlerId; +    buffer = AllocZeroed(0x400); +    LZDecompressWram(gGhostPalette, buffer); +    LoadPalette(buffer, palOffset, 0x20); +    LoadPalette(buffer, 0x80 + 16 * battlerId, 0x20); +    Free(buffer); +} + +void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId) +{ +    struct SpriteSheet sheet; +    u8 position = GetBattlerPosition(battlerId); + +    DecompressPicFromTable(&gTrainerFrontPicTable[frontPicId], gMonSpritesGfxPtr->sprites[position], SPECIES_NONE); +    sheet.data = gMonSpritesGfxPtr->sprites[position]; +    sheet.size = gTrainerFrontPicTable[frontPicId].size; +    sheet.tag = gTrainerFrontPicTable[frontPicId].tag; +    LoadSpriteSheet(&sheet); +    LoadCompressedSpritePaletteUsingHeap(&gTrainerFrontPicPaletteTable[frontPicId]); +} + +void sub_8034750(u16 a1, u8 a2) +{ +    LoadCompressedPalette(gUnknown_8239FD4[a1].data, (a2 + 16) * 16, 0x20); +} + +void nullsub_16(u8 a1) +{ +} + +void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId) +{ +    FreeSpritePaletteByTag(gTrainerFrontPicPaletteTable[frontPicId].tag); +    FreeSpriteTilesByTag(gTrainerFrontPicTable[frontPicId].tag); +} + +// not used +static void BattleLoadAllHealthBoxesGfxAtOnce(void) +{ +    u8 numberOfBattlers = 0; +    u8 i; + +    LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); +    LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]); +    if (!IsDoubleBattle()) +    { +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_SinglesPlayerHealthbox); +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_SinglesOpponentHealthbox); +        numberOfBattlers = 2; +    } +    else +    { +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesPlayerHealthbox[0]); +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesPlayerHealthbox[1]); +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesOpponentHealthbox[0]); +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesOpponentHealthbox[1]); +        numberOfBattlers = MAX_BATTLERS_COUNT; +    } +    for (i = 0; i < numberOfBattlers; ++i) +        LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[i]]); +} + +bool8 BattleLoadAllHealthBoxesGfx(u8 state) +{ +    bool8 retVal = FALSE; + +    if (state) +    { +        if (state == 1) +        { +            LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); +            LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]); +        } +        else if (!IsDoubleBattle()) +        { +            if (state == 2) +            { +                if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) +                    LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_SafariHealthbox); +                else +                    LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_SinglesPlayerHealthbox); +            } +            else if (state == 3) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_SinglesOpponentHealthbox); +            else if (state == 4) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[0]]); +            else if (state == 5) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[1]]); +            else +                retVal = TRUE; +        } +        else +        { +            if (state == 2) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesPlayerHealthbox[0]); +            else if (state == 3) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesPlayerHealthbox[1]); +            else if (state == 4) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesOpponentHealthbox[0]); +            else if (state == 5) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_DoublesOpponentHealthbox[1]); +            else if (state == 6) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[0]]); +            else if (state == 7) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[1]]); +            else if (state == 8) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[2]]); +            else if (state == 9) +                LoadCompressedSpriteSheetUsingHeap(&sSpriteSheets_HealthBar[gBattlerPositions[3]]); +            else +                retVal = TRUE; +        } +    } +    return retVal; +} + +void LoadBattleBarGfx(u8 arg0) +{ +    LZDecompressWram(gFile_graphics_interface_hp_numbers, gMonSpritesGfxPtr->barFontGfx); +} + +bool8 BattleInitAllSprites(u8 *state, u8 *battlerId) +{ +    bool8 retVal = FALSE; + +    switch (*state) +    { +    case 0: +        ClearSpritesBattlerHealthboxAnimData(); +        ++*state; +        break; +    case 1: +        if (!BattleLoadAllHealthBoxesGfx(*battlerId)) +        { +            ++*battlerId; +        } +        else +        { +            *battlerId = 0; +            ++*state; +        } +        break; +    case 2: +        ++*state; +        break; +    case 3: +        if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && *battlerId == 0) +            gHealthboxSpriteIds[*battlerId] = CreateSafariPlayerHealthboxSprites(); +        else +            gHealthboxSpriteIds[*battlerId] = CreateBattlerHealthboxSprites(*battlerId); + +        ++*battlerId; +        if (*battlerId == gBattlersCount) +        { +            *battlerId = 0; +            ++*state; +        } +        break; +    case 4: +        InitBattlerHealthboxCoords(*battlerId); +        if (gBattlerPositions[*battlerId] <= 1) +            DummyBattleInterfaceFunc(gHealthboxSpriteIds[*battlerId], FALSE); +        else +            DummyBattleInterfaceFunc(gHealthboxSpriteIds[*battlerId], TRUE); + +        ++*battlerId; +        if (*battlerId == gBattlersCount) +        { +            *battlerId = 0; +            ++*state; +        } +        break; +    case 5: +        if (GetBattlerSide(*battlerId) == B_SIDE_PLAYER) +        { +            if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) +                UpdateHealthboxAttribute(gHealthboxSpriteIds[*battlerId], &gPlayerParty[gBattlerPartyIndexes[*battlerId]], HEALTHBOX_ALL); +        } +        else +        { +            UpdateHealthboxAttribute(gHealthboxSpriteIds[*battlerId], &gEnemyParty[gBattlerPartyIndexes[*battlerId]], HEALTHBOX_ALL); +        } +        SetHealthboxSpriteInvisible(gHealthboxSpriteIds[*battlerId]); +        ++*battlerId; +        if (*battlerId == gBattlersCount) +        { +            *battlerId = 0; +            ++*state; +        } +        break; +    case 6: +        LoadAndCreateEnemyShadowSprites(); +        sub_8127CAC(); +        retVal = TRUE; +        break; +    } +    return retVal; +} + +void ClearSpritesHealthboxAnimData(void) +{ +    memset(gBattleSpritesDataPtr->healthBoxesData, 0, sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT); +    memset(gBattleSpritesDataPtr->animationData, 0, sizeof(struct BattleAnimationInfo)); +} + +static void ClearSpritesBattlerHealthboxAnimData(void) +{ +    ClearSpritesHealthboxAnimData(); +    memset(gBattleSpritesDataPtr->battlerData, 0, sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); +} + +void CopyAllBattleSpritesInvisibilities(void) +{ +    s32 i; + +    for (i = 0; i < gBattlersCount; ++i) +        gBattleSpritesDataPtr->battlerData[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; +} + +void CopyBattleSpriteInvisibility(u8 battlerId) +{ +    gBattleSpritesDataPtr->battlerData[battlerId].invisible = gSprites[gBattlerSpriteIds[battlerId]].invisible; +} + +void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 notTransform) +{ +    u16 paletteOffset, targetSpecies; +    u32 personalityValue; +    u32 otId; +    u8 position; +    const u32 *lzPaletteData; +    void *buffer; + +    //TODO: notTransform is bool8 in pokeem. Document it with a more reasonable name here.  +    if (notTransform == 255) +    { +        const void *src; +        void *dst; +         +        position = GetBattlerPosition(battlerAtk); +        targetSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_SPECIES); +        personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_PERSONALITY); +        otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID); +        HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[targetSpecies], +                                                  gMonSpritesGfxPtr->sprites[position], +                                                  targetSpecies, +                                                  personalityValue); +        src = gMonSpritesGfxPtr->sprites[position]; +        dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); +        DmaCopy32(3, src, dst, 0x800); +        paletteOffset = 0x100 + battlerAtk * 16; +        lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); +        buffer = AllocZeroed(0x400); +        LZDecompressWram(lzPaletteData, buffer); +        LoadPalette(buffer, paletteOffset, 32); +        Free(buffer); +        gSprites[gBattlerSpriteIds[battlerAtk]].pos1.y = GetBattlerSpriteDefault_Y(battlerAtk); +        StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleMonForms[battlerAtk]); +        SetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_NICKNAME, gSpeciesNames[targetSpecies]); +        sub_80496C0(gHealthboxSpriteIds[battlerAtk], &gEnemyParty[gBattlerPartyIndexes[battlerAtk]]); +        sub_804981C(gHealthboxSpriteIds[battlerAtk], 1); +    } +    else if (notTransform) +    { +        StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleSpritesDataPtr->animationData->animArg); +        paletteOffset = 0x100 + battlerAtk * 16; +        LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32); +        gBattleMonForms[battlerAtk] = gBattleSpritesDataPtr->animationData->animArg; +        if (gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies != SPECIES_NONE) +        { +            BlendPalette(paletteOffset, 16, 6, RGB_WHITE); +            CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); +        } +        gSprites[gBattlerSpriteIds[battlerAtk]].pos1.y = GetBattlerSpriteDefault_Y(battlerAtk); +    } +    else +    { +        const void *src; +        void *dst; + +        position = GetBattlerPosition(battlerAtk); +        if (GetBattlerSide(battlerDef) == B_SIDE_OPPONENT) +            targetSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerDef]], MON_DATA_SPECIES); +        else +            targetSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerDef]], MON_DATA_SPECIES); +        if (GetBattlerSide(battlerAtk) == B_SIDE_PLAYER) +        { +            personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_PERSONALITY); +            otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID); + +            HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies], +                                                      gMonSpritesGfxPtr->sprites[position], +                                                      targetSpecies, +                                                      gTransformedPersonalities[battlerAtk]); +        } +        else +        { +            personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_PERSONALITY); +            otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID); + +            HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[targetSpecies], +                                                      gMonSpritesGfxPtr->sprites[position], +                                                      targetSpecies, +                                                      gTransformedPersonalities[battlerAtk]); +        } +        src = gMonSpritesGfxPtr->sprites[position]; +        dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); +        DmaCopy32(3, src, dst, 0x800); +        paletteOffset = 0x100 + battlerAtk * 16; +        lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); +        buffer = AllocZeroed(0x400); +        LZDecompressWram(lzPaletteData, buffer); +        LoadPalette(buffer, paletteOffset, 32); +        Free(buffer); +        if (targetSpecies == SPECIES_CASTFORM) +        { +            LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); +            LoadPalette(gBattleStruct->castformPalette[0] + gBattleMonForms[battlerDef] * 16, paletteOffset, 32); +        } +        BlendPalette(paletteOffset, 16, 6, RGB_WHITE); +        CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); +        gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies = targetSpecies; +        gBattleMonForms[battlerAtk] = gBattleMonForms[battlerDef]; +        gSprites[gBattlerSpriteIds[battlerAtk]].pos1.y = GetBattlerSpriteDefault_Y(battlerAtk); +        StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleMonForms[battlerAtk]); +    } +} + +void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) +{ +    u8 position; +    s32 i; +    u32 palOffset; +    const void *substitutePal; + +    if (!loadMonSprite) +    { +        position = GetBattlerPosition(battlerId); +        if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) +            LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[position]); +        else +            LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]); +        i = 1; +        palOffset = battlerId * 16; +        substitutePal = gSubstituteDollPal; +        for (; i < 4; ++i) +        { +            #ifndef NONMATCHING +            register void *dmaSrc asm("r0") = gMonSpritesGfxPtr->sprites[position]; +            #endif +            void *dmaDst = (i * 0x800) + dmaSrc; + +            DmaCopy32(3, dmaSrc, dmaDst, 0x800); +        } +        LoadCompressedPalette(substitutePal, palOffset + 0x100, 0x20); +    } +    else +    { +        if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) +            BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); +        else +            BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); +    } +} + +void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId) +{ +    BattleLoadSubstituteOrMonSpriteGfx(battlerId, loadMonSprite); +    StartSpriteAnim(&gSprites[spriteId], gBattleMonForms[battlerId]); +    if (!loadMonSprite) +        gSprites[spriteId].pos1.y = GetSubstituteSpriteDefault_Y(battlerId); +    else +        gSprites[spriteId].pos1.y = GetBattlerSpriteDefault_Y(battlerId); +} + +void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move) +{ +    if (move == MOVE_SUBSTITUTE) +        gBattleSpritesDataPtr->battlerData[battlerId].behindSubstitute = 1; +} + +void ClearBehindSubstituteBit(u8 battlerId) +{ +    gBattleSpritesDataPtr->battlerData[battlerId].behindSubstitute = 0; +} + +void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) +{ +    u16 hp = GetMonData(mon, MON_DATA_HP); +    u16 maxHP = GetMonData(mon, MON_DATA_MAX_HP); + +    if (GetHPBarLevel(hp, maxHP) == HP_BAR_RED) +    { +        if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong) +        { +            if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) +                PlaySE(SE_T_OOAME); +            gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1; +        } +    } +    else +    { +        gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 0; +        if (!IsDoubleBattle()) +            m4aSongNumStop(SE_T_OOAME); +        else if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) +            m4aSongNumStop(SE_T_OOAME); +    } +} + +void BattleStopLowHpSound(void) +{ +    u8 playerBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + +    gBattleSpritesDataPtr->battlerData[playerBattler].lowHpSong = 0; +    if (IsDoubleBattle()) +        gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0; +    m4aSongNumStop(SE_T_OOAME); +} + +// not used +static u8 GetMonHPBarLevel(struct Pokemon *mon) +{ +    u16 hp = GetMonData(mon, MON_DATA_HP); +    u16 maxHP = GetMonData(mon, MON_DATA_MAX_HP); + +    return GetHPBarLevel(hp, maxHP); +} + +void HandleBattleLowHpMusicChange(void) +{ +    if (gMain.inBattle) +    { +        u8 playerBattler1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); +        u8 playerBattler2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); +        u8 battler1PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBattler1]); +        u8 battler2PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBattler2]); + +        if (GetMonData(&gPlayerParty[battler1PartyId], MON_DATA_HP) != 0) +            HandleLowHpMusicChange(&gPlayerParty[battler1PartyId], playerBattler1); +        if (IsDoubleBattle() && GetMonData(&gPlayerParty[battler2PartyId], MON_DATA_HP) != 0) +            HandleLowHpMusicChange(&gPlayerParty[battler2PartyId], playerBattler2); +    } +} + +void sub_8035450(u8 affineMode) +{ +    s32 i; + +    for (i = 0; i < gBattlersCount; ++i) +    { +        if (IsBattlerSpritePresent(i)) +        { +            gSprites[gBattlerSpriteIds[i]].oam.affineMode = affineMode; +            if (affineMode == ST_OAM_AFFINE_OFF) +            { +                gBattleSpritesDataPtr->healthBoxesData[i].matrixNum = gSprites[gBattlerSpriteIds[i]].oam.matrixNum; +                gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0; +            } +            else +            { +                gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].matrixNum; +            } +        } +    } +} + +void LoadAndCreateEnemyShadowSprites(void) +{ +    u8 battlerId; + +    LoadCompressedSpriteSheetUsingHeap(&gSpriteSheet_EnemyShadow); +    battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); +    gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); +    gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; +    if (IsDoubleBattle()) +    { +        battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); +        gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); +        gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; +    } +} + +static void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) +{ +    bool8 invisible = FALSE; +    u8 battlerId = shadowSprite->tBattlerId; +    struct Sprite *battlerSprite = &gSprites[gBattlerSpriteIds[battlerId]]; + +    if (!battlerSprite->inUse || !IsBattlerSpritePresent(battlerId)) +    { +        shadowSprite->callback = SpriteCB_SetInvisible; +        return; +    } +    if (gAnimScriptActive || battlerSprite->invisible) +        invisible = TRUE; +    else if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE +             && gEnemyMonElevation[gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies] == 0) +        invisible = TRUE; +    if (gBattleSpritesDataPtr->battlerData[battlerId].behindSubstitute) +        invisible = TRUE; +    shadowSprite->pos1.x = battlerSprite->pos1.x; +    shadowSprite->pos2.x = battlerSprite->pos2.x; +    shadowSprite->invisible = invisible; +} + +void SpriteCB_SetInvisible(struct Sprite *sprite) +{ +    sprite->invisible = TRUE; +} + +void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species) +{ +    // The player's shadow is never seen. +    if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) +        return; + +    if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) +        species = gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies; + +    if (gEnemyMonElevation[species] != 0) +        gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].callback = SpriteCB_EnemyShadow; +    else +        gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].callback = SpriteCB_SetInvisible; +} + +void HideBattlerShadowSprite(u8 battlerId) +{ +    gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].callback = SpriteCB_SetInvisible; +} + +void sub_80357C8(void) +{ +    u16 *vramPtr = (u16 *)(VRAM + 0x240); +    s32 i; +    s32 j; + +    for (i = 0; i < 9; ++i) +    { +        for (j = 0; j < 16; ++vramPtr, ++j) +        { +            if (!(*vramPtr & 0xF000)) +                *vramPtr |= 0xF000; +            if (!(*vramPtr & 0x0F00)) +                *vramPtr |= 0x0F00; +            if (!(*vramPtr & 0x00F0)) +                *vramPtr |= 0x00F0; +            if (!(*vramPtr & 0x000F)) +                *vramPtr |= 0x000F; +        } +    } +    vramPtr = (u16 *)(VRAM + 0x600); +    for (i = 0; i < 18; ++i) +    { +        for (j = 0; j < 16; ++vramPtr, ++j) +        { +            if (!(*vramPtr & 0xF000)) +                *vramPtr |= 0x6000; +            if (!(*vramPtr & 0x0F00)) +                *vramPtr |= 0x0600; +            if (!(*vramPtr & 0x00F0)) +                *vramPtr |= 0x0060; +            if (!(*vramPtr & 0x000F)) +                *vramPtr |= 0x0006; +        } +    } +} + +void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute) +{ +    gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies = SPECIES_NONE; +    gBattleMonForms[battlerId] = 0; +    if (!dontClearSubstitute) +        ClearBehindSubstituteBit(battlerId); +} + +void AllocateMonSpritesGfx(void) +{ +    u8 i = 0, j; + +    gMonSpritesGfxPtr = NULL; +    gMonSpritesGfxPtr = AllocZeroed(sizeof(*gMonSpritesGfxPtr)); +    gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x8000); +    for (i = 0; i < MAX_BATTLERS_COUNT; ++i) +    { +        gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000); +        *(gMonSpritesGfxPtr->templates + i) = gUnknown_825DEF0[i]; + +        for (j = 0; j < 4; ++j) +        { +            gMonSpritesGfxPtr->field_74[i][j].data = gMonSpritesGfxPtr->sprites[i] + (j * 0x800); +            gMonSpritesGfxPtr->field_74[i][j].size = 0x800; +        } + +        gMonSpritesGfxPtr->templates[i].images = gMonSpritesGfxPtr->field_74[i]; +    } +    gMonSpritesGfxPtr->barFontGfx = AllocZeroed(0x1000); +} + +void FreeMonSpritesGfx(void) +{ +    if (gMonSpritesGfxPtr == NULL) +        return; +    if (gMonSpritesGfxPtr->field_17C != NULL) +        FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); +    if (gMonSpritesGfxPtr->field_178 != NULL) +        FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_178); +    FREE_AND_SET_NULL(gMonSpritesGfxPtr->barFontGfx); +    FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed); +    gMonSpritesGfxPtr->sprites[0] = NULL; +    gMonSpritesGfxPtr->sprites[1] = NULL; +    gMonSpritesGfxPtr->sprites[2] = NULL; +    gMonSpritesGfxPtr->sprites[3] = NULL; +    FREE_AND_SET_NULL(gMonSpritesGfxPtr); +} + +bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon) +{ +    s16 hp, maxHP; +    s32 barLevel; + +    if (GetMonData(mon, MON_DATA_STATUS) & (STATUS1_ANY | STATUS1_TOXIC_COUNTER)) +        return FALSE; +    hp = GetMonData(mon, MON_DATA_HP); +    maxHP = GetMonData(mon, MON_DATA_MAX_HP); +    barLevel = GetHPBarLevel(hp, maxHP); +    if (barLevel <= HP_BAR_YELLOW) +        return FALSE; +    return TRUE; +} diff --git a/src/pokemon.c b/src/pokemon.c index 6f1df249f..848f258be 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6962,10 +6962,10 @@ const u32 *GetMonFrontSpritePal(struct Pokemon *mon)      u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);      u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);      u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0); -    return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality); +    return GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality);  } -const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality) +const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)  {      u32 shinyValue; diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 25a8d4515..5f49173dc 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -104,7 +104,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett          if (paletteTag == 0xFFFF)          {              sCreatingSpriteTemplate.paletteTag = 0xFFFF; -            LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); +            LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);          }          else          { @@ -130,7 +130,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett  void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)  {      if (!isTrainer) -        LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20); +        LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20);      else          LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20);  } diff --git a/sym_common.txt b/sym_common.txt index e875d439b..6e35fb92e 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -120,7 +120,7 @@ gUnknown_3004FD4: @ 3004FD4  gUnknown_3004FE0: @ 3004FE0  	.space 0x10 -gUnknown_3004FF0: @ 3004FF0 +gHealthboxSpriteIds: @ 3004FF0  	.space 0x4  gUnknown_3004FF4: @ 3004FF4 diff --git a/sym_ewram.txt b/sym_ewram.txt index a32ae4268..72572fbdf 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -196,7 +196,7 @@ gBattlersCount: @ 2023BCC  gBattlerPartyIndexes: @ 2023BCE  	.space 0x8 -gUnknown_2023BD6: @ 2023BD6 +gBattlerPositions: @ 2023BD6  	.space 0x4  gUnknown_2023BDA: @ 2023BDA @@ -379,7 +379,7 @@ gBattleWeather: @ 2023F1C  gUnknown_2023F20: @ 2023F20  	.space 0x2C -gUnknown_2023F4C: @ 2023F4C +gIntroSlideFlags: @ 2023F4C  	.space 0x2  gUnknown_2023F4E: @ 2023F4E @@ -427,10 +427,10 @@ gBattlerInMenuId: @ 2024004  gUnknown_2024005: @ 2024005  	.space 0x3 -gUnknown_2024008: @ 2024008 +gTransformedPersonalities: @ 2024008  	.space 0x10 -gUnknown_2024018: @ 2024018 +gBattleSpritesDataPtr: @ 2024018  	.space 0x4  gMonSpritesGfxPtr: @ 202401C @@ -703,13 +703,13 @@ gUnknown_2037ED4: @ 2037ED4  gUnknown_2037ED8: @ 2037ED8  	.space 0x4 -gUnknown_2037EDC: @ 2037EDC +gAnimScriptCallback: @ 2037EDC  	.space 0x4  gUnknown_2037EE0: @ 2037EE0  	.space 0x1 -gUnknown_2037EE1: @ 2037EE1 +gAnimScriptActive: @ 2037EE1  	.space 0x1  gUnknown_2037EE2: @ 2037EE2 | 
