nonmatching CreatePartyStatusSummarySprites

This commit is contained in:
PikalaxALT
2020-01-12 08:39:43 -05:00
parent 854e8cd3f3
commit 9def25f1d4
2 changed files with 788 additions and 589 deletions
-589
View File
@@ -5,595 +5,6 @@
.text
thumb_func_start CreatePartyStatusSummarySprites
CreatePartyStatusSummarySprites: @ 8048D14
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
str r1, [sp, 0xC]
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
lsls r2, 24
lsrs r2, 24
adds r4, r2, 0
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x10]
cmp r4, 0
beq _08048D44
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08048D88
_08048D44:
ldr r0, [sp, 0x8]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048D64
movs r7, 0
movs r1, 0x88
movs r2, 0x60
movs r0, 0x64
mov r8, r0
ldr r5, _08048D60 @ =0x0000fffb
b _08048D94
.align 2, 0
_08048D60: .4byte 0x0000fffb
_08048D64:
movs r7, 0x1
cmp r4, 0
beq _08048D74
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08048D7A
_08048D74:
movs r1, 0x68
movs r2, 0x28
b _08048D7E
_08048D7A:
movs r1, 0x68
movs r2, 0x10
_08048D7E:
ldr r3, _08048D84 @ =0x0000ff9c
mov r8, r3
b _08048D92
.align 2, 0
_08048D84: .4byte 0x0000ff9c
_08048D88:
movs r7, 0x1
movs r1, 0x68
movs r2, 0x28
ldr r5, _08048E40 @ =0x0000ff9c
mov r8, r5
_08048D92:
movs r5, 0x5
_08048D94:
movs r6, 0
str r6, [sp, 0x14]
lsls r4, r7, 3
ldr r0, _08048E44 @ =sStatusSummaryBarSpriteSheets
mov r10, r0
lsls r3, r7, 1
mov r9, r3
lsls r1, 16
str r1, [sp, 0x20]
lsls r2, 16
str r2, [sp, 0x24]
ldr r2, _08048E48 @ =0x0000ffff
ldr r1, [sp, 0xC]
movs r6, 0x5
_08048DB0:
ldrh r0, [r1]
cmp r0, r2
beq _08048DC4
ldr r3, [sp, 0x14]
lsls r0, r3, 24
movs r3, 0x80
lsls r3, 17
adds r0, r3
lsrs r0, 24
str r0, [sp, 0x14]
_08048DC4:
adds r1, 0x8
subs r6, 0x1
cmp r6, 0
bge _08048DB0
mov r6, r10
adds r0, r4, r6
bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _08048E4C @ =sStatusSummaryBallsSpriteSheets
adds r0, r4, r0
bl LoadSpriteSheet
ldr r0, _08048E50 @ =sStatusSummaryBarSpritePals
adds r0, r4, r0
bl LoadSpritePalette
ldr r0, _08048E54 @ =sStatusSummaryBallsSpritePals
adds r0, r4, r0
bl LoadSpritePalette
mov r1, r9
adds r0, r1, r7
lsls r0, 3
ldr r1, _08048E58 @ =sStatusSummaryBarSpriteTemplates
adds r0, r1
ldr r2, [sp, 0x20]
asrs r1, r2, 16
ldr r3, [sp, 0x24]
asrs r2, r3, 16
movs r3, 0xA
bl CreateSprite
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x18]
lsls r0, 4
ldr r6, [sp, 0x18]
adds r0, r6
lsls r0, 2
ldr r1, _08048E5C @ =gSprites
adds r4, r0, r1
ldr r1, _08048E60 @ =sStatusSummaryBar_SubspriteTable
adds r0, r4, 0
bl SetSubspriteTables
mov r0, r8
strh r0, [r4, 0x24]
strh r5, [r4, 0x2E]
cmp r7, 0
beq _08048E64
ldrh r0, [r4, 0x20]
subs r0, 0x60
strh r0, [r4, 0x20]
ldrb r1, [r4, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r4, 0x3]
b _08048E6A
.align 2, 0
_08048E40: .4byte 0x0000ff9c
_08048E44: .4byte sStatusSummaryBarSpriteSheets
_08048E48: .4byte 0x0000ffff
_08048E4C: .4byte sStatusSummaryBallsSpriteSheets
_08048E50: .4byte sStatusSummaryBarSpritePals
_08048E54: .4byte sStatusSummaryBallsSpritePals
_08048E58: .4byte sStatusSummaryBarSpriteTemplates
_08048E5C: .4byte gSprites
_08048E60: .4byte sStatusSummaryBar_SubspriteTable
_08048E64:
ldrh r0, [r4, 0x20]
adds r0, 0x60
strh r0, [r4, 0x20]
_08048E6A:
movs r6, 0
ldr r1, _08048F14 @ =gSprites
mov r10, r1
mov r4, sp
mov r2, r9
adds r0, r2, r7
lsls r0, 3
str r0, [sp, 0x1C]
movs r3, 0xA
mov r9, r3
mov r8, r6
_08048E80:
ldr r0, _08048F18 @ =sStatusSummaryBallsSpriteTemplates
ldr r5, [sp, 0x24]
ldr r1, _08048F1C @ =0xfffc0000
adds r2, r5, r1
ldr r3, [sp, 0x1C]
adds r0, r3, r0
ldr r5, [sp, 0x20]
asrs r1, r5, 16
asrs r2, 16
movs r3, 0x9
bl CreateSpriteAtEnd
strb r0, [r4]
ldr r0, [sp, 0x10]
cmp r0, 0
bne _08048EB0
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r2, _08048F20 @ =gSprites + 0x1C
adds r1, r2
ldr r0, _08048F24 @ =SpriteCB_StatusSummaryBallsOnSwitchout
str r0, [r1]
_08048EB0:
ldr r5, _08048F14 @ =gSprites
cmp r7, 0
bne _08048ECE
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
strh r7, [r0, 0x24]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
strh r7, [r0, 0x26]
_08048ECE:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0
mov r3, sp
ldrh r3, [r3, 0x18]
strh r3, [r0, 0x2E]
cmp r7, 0
bne _08048F28
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrh r0, [r1, 0x20]
adds r0, 0x18
add r0, r8
strh r0, [r1, 0x20]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r9
strh r1, [r0, 0x30]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x78
b _08048F66
.align 2, 0
_08048F14: .4byte gSprites
_08048F18: .4byte sStatusSummaryBallsSpriteTemplates
_08048F1C: .4byte 0xfffc0000
_08048F20: .4byte gSprites + 0x1C
_08048F24: .4byte SpriteCB_StatusSummaryBallsOnSwitchout
_08048F28:
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r5
ldrh r3, [r2, 0x20]
subs r3, 0x18
movs r1, 0x5
subs r1, r6
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
subs r3, r0
strh r3, [r2, 0x20]
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r5
movs r1, 0x6
subs r1, r6
lsls r0, r1, 3
subs r0, r1
adds r0, 0xA
strh r0, [r2, 0x30]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08048FD4 @ =0x0000ff88
_08048F66:
strh r1, [r0, 0x24]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r7, [r0, 0x32]
adds r4, 0x1
movs r2, 0x7
add r9, r2
movs r3, 0xA
add r8, r3
adds r6, 0x1
cmp r6, 0x5
bgt _08048F86
b _08048E80
_08048F86:
ldr r0, [sp, 0x8]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0804906E
movs r6, 0
ldr r5, _08048FD8 @ =gBattleTypeFlags
mov r10, r5
ldr r0, _08048FDC @ =0x0000ffff
mov r9, r0
ldr r7, _08048FE0 @ =gSprites
ldr r1, _08048FE4 @ =0x000003ff
mov r12, r1
ldr r2, _08048FE8 @ =0xfffffc00
mov r8, r2
mov r4, sp
ldr r5, [sp, 0xC]
_08048FAA:
mov r3, r10
ldr r0, [r3]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08048FEC
ldrh r0, [r5]
cmp r0, r9
beq _08048FF6
cmp r0, 0
bne _0804903E
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x3
b _08049056
.align 2, 0
_08048FD4: .4byte 0x0000ff88
_08048FD8: .4byte gBattleTypeFlags
_08048FDC: .4byte 0x0000ffff
_08048FE0: .4byte gSprites
_08048FE4: .4byte 0x000003ff
_08048FE8: .4byte 0xfffffc00
_08048FEC:
ldr r1, [sp, 0x14]
lsls r0, r1, 24
asrs r0, 24
cmp r6, r0
blt _08049024
_08048FF6:
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x1
mov r0, r12
ands r1, r0
mov r0, r8
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
movs r1, 0x1
strh r1, [r0, 0x3C]
b _08049062
_08049024:
ldrh r0, [r5]
cmp r0, 0
bne _0804903E
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x3
b _08049056
_0804903E:
ldr r0, [r5, 0x4]
cmp r0, 0
beq _08049062
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x2
_08049056:
mov r0, r12
ands r1, r0
mov r0, r8
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
_08049062:
adds r4, 0x1
adds r5, 0x8
adds r6, 0x1
cmp r6, 0x5
ble _08048FAA
b _08049148
_0804906E:
movs r6, 0
ldr r1, _080490B4 @ =gBattleTypeFlags
mov r10, r1
ldr r2, _080490B8 @ =0x0000ffff
mov r9, r2
ldr r7, _080490BC @ =gSprites
ldr r3, _080490C0 @ =0x000003ff
mov r12, r3
ldr r5, _080490C4 @ =0xfffffc00
mov r8, r5
ldr r5, [sp, 0xC]
mov r4, sp
adds r4, 0x5
_08049088:
mov r1, r10
ldr r0, [r1]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _080490C8
ldrh r0, [r5]
cmp r0, r9
beq _080490D2
cmp r0, 0
bne _0804911A
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x3
b _08049132
.align 2, 0
_080490B4: .4byte gBattleTypeFlags
_080490B8: .4byte 0x0000ffff
_080490BC: .4byte gSprites
_080490C0: .4byte 0x000003ff
_080490C4: .4byte 0xfffffc00
_080490C8:
ldr r1, [sp, 0x14]
lsls r0, r1, 24
asrs r0, 24
cmp r6, r0
blt _08049100
_080490D2:
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x1
mov r0, r12
ands r1, r0
mov r0, r8
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
movs r1, 0x1
strh r1, [r0, 0x3C]
b _0804913E
_08049100:
ldrh r0, [r5]
cmp r0, 0
bne _0804911A
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x3
b _08049132
_0804911A:
ldr r0, [r5, 0x4]
cmp r0, 0
beq _0804913E
ldrb r0, [r4]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r7
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x2
_08049132:
mov r0, r12
ands r1, r0
mov r0, r8
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
_0804913E:
subs r4, 0x1
adds r5, 0x8
adds r6, 0x1
cmp r6, 0x5
ble _08049088
_08049148:
ldr r0, _080491A8 @ =TaskDummy
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
ldr r2, _080491AC @ =gTasks
lsls r3, r4, 2
adds r1, r3, r4
lsls r1, 3
adds r0, r1, r2
mov r5, sp
ldrh r5, [r5, 0x8]
strh r5, [r0, 0x8]
mov r6, sp
ldrh r6, [r6, 0x18]
strh r6, [r0, 0xA]
movs r6, 0
adds r0, r2, 0
adds r0, 0xE
adds r1, r0
_08049172:
mov r5, sp
adds r0, r5, r6
ldrb r0, [r0]
strh r0, [r1]
adds r1, 0x2
adds r6, 0x1
cmp r6, 0x5
ble _08049172
adds r0, r3, r4
lsls r0, 3
adds r0, r2
ldrh r6, [r5, 0x10]
strh r6, [r0, 0x1C]
movs r0, 0x6B
movs r1, 0
bl PlaySE12WithPanning
adds r0, r4, 0
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080491A8: .4byte TaskDummy
_080491AC: .4byte gTasks
thumb_func_end CreatePartyStatusSummarySprites
thumb_func_start Task_HidePartyStatusSummary
Task_HidePartyStatusSummary: @ 80491B0
push {r4-r7,lr}
+788
View File
@@ -885,6 +885,794 @@ void SwapHpBarsWithHpText(void)
}
}
#define tBattler data[0]
#define tSummaryBarSpriteId data[1]
#define tBallIconSpriteId(n) data[3 + n]
#define tIsBattleStart data[10]
#define tData15 data[15]
#ifdef NONMATCHING
u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart)
{
bool8 isOpponent;
s8 sp14;
s16 bar_X, bar_Y, bar_pos2_X, bar_data0;
s32 i;
u8 summaryBarSpriteId;
u8 ballIconSpritesIds[PARTY_SIZE];
u8 taskId;
if (!arg2 || GetBattlerPosition(battlerId) != B_POSITION_OPPONENT_RIGHT)
{
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
{
isOpponent = FALSE;
bar_X = 136, bar_Y = 96;
bar_pos2_X = 100;
bar_data0 = -5;
}
else
{
isOpponent = TRUE;
if (!arg2 || !IsDoubleBattle())
bar_X = 104, bar_Y = 40;
else
bar_X = 104, bar_Y = 16;
bar_pos2_X = -100;
bar_data0 = 5;
}
}
else
{
isOpponent = TRUE;
bar_X = 104, bar_Y = 40;
bar_pos2_X = -100;
bar_data0 = 5;
}
for (i = 0, sp14 = 0; i < PARTY_SIZE; i++)
{
if (partyInfo[i].hp != 0xFFFF)
sp14++;
}
LoadCompressedSpriteSheetUsingHeap(&sStatusSummaryBarSpriteSheets[isOpponent]);
LoadSpriteSheet(&sStatusSummaryBallsSpriteSheets[isOpponent]);
LoadSpritePalette(&sStatusSummaryBarSpritePals[isOpponent]);
LoadSpritePalette(&sStatusSummaryBallsSpritePals[isOpponent]);
summaryBarSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10);
SetSubspriteTables(&gSprites[summaryBarSpriteId], sStatusSummaryBar_SubspriteTable);
gSprites[summaryBarSpriteId].pos2.x = bar_pos2_X;
gSprites[summaryBarSpriteId].data[0] = bar_data0;
if (isOpponent)
{
gSprites[summaryBarSpriteId].pos1.x -= 96;
gSprites[summaryBarSpriteId].oam.matrixNum = ST_OAM_HFLIP;
}
else
{
gSprites[summaryBarSpriteId].pos1.x += 96;
}
for (i = 0; i < PARTY_SIZE; i++)
{
ballIconSpritesIds[i] = CreateSpriteAtEnd(&sStatusSummaryBallsSpriteTemplates[isOpponent], bar_X, bar_Y - 4, 9);
if (!isBattleStart)
gSprites[ballIconSpritesIds[i]].callback = SpriteCB_StatusSummaryBallsOnSwitchout;
if (!isOpponent)
{
gSprites[ballIconSpritesIds[i]].pos2.x = 0;
gSprites[ballIconSpritesIds[i]].pos2.y = 0;
}
gSprites[ballIconSpritesIds[i]].data[0] = summaryBarSpriteId;
if (!isOpponent)
{
gSprites[ballIconSpritesIds[i]].pos1.x += 10 * i + 24;
gSprites[ballIconSpritesIds[i]].data[1] = i * 7 + 10;
gSprites[ballIconSpritesIds[i]].pos2.x = 120;
}
else
{
gSprites[ballIconSpritesIds[i]].pos1.x -= 10 * (5 - i) + 24;
gSprites[ballIconSpritesIds[i]].data[1] = (6 - i) * 7 + 10;
gSprites[ballIconSpritesIds[i]].pos2.x = -120;
}
gSprites[ballIconSpritesIds[i]].data[2] = isOpponent;
}
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
{
for (i = 0; i < PARTY_SIZE; i++)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
{
gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[i]].data[7] = 1;
}
else if (partyInfo[i].hp == 0) // fainted mon
{
gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
}
else if (partyInfo[i].status != 0) // mon with major status
{
gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
}
}
else
{
if (i >= sp14) // empty slot or an egg
{
gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[i]].data[7] = 1;
}
else if (partyInfo[i].hp == 0) // fainted mon
{
gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
}
else if (partyInfo[i].status != 0) // mon with major status
{
gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
}
}
}
}
else
{
/*
* FIXME: r4 and r5 are loaded correctly but in the wrong
* order.
*/
for (i = 0; i < PARTY_SIZE; i++)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
{
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[5 - i]].data[7] = 1;
}
else if (partyInfo[i].hp == 0) // fainted mon
{
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 3;
}
else if (partyInfo[i].status != 0) // mon with major status
{
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 2;
}
}
else
{
if (i >= sp14) // empty slot or an egg
{
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[5 - i]].data[7] = 1;
}
else if (partyInfo[i].hp == 0) // fainted mon
{
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 3;
}
else if (partyInfo[i].status != 0) // mon with major status
{
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 2;
}
}
}
}
taskId = CreateTask(TaskDummy, 5);
gTasks[taskId].tBattler = battlerId;
gTasks[taskId].tSummaryBarSpriteId = summaryBarSpriteId;
for (i = 0; i < PARTY_SIZE; i++)
gTasks[taskId].tBallIconSpriteId(i) = ballIconSpritesIds[i];
gTasks[taskId].tIsBattleStart = isBattleStart;
PlaySE12WithPanning(SE_TB_START, 0);
return taskId;
}
#else
NAKED
u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
"\tmov r6, r9\n"
"\tmov r5, r8\n"
"\tpush {r5-r7}\n"
"\tsub sp, 0x28\n"
"\tstr r1, [sp, 0xC]\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tstr r0, [sp, 0x8]\n"
"\tlsls r2, 24\n"
"\tlsrs r2, 24\n"
"\tadds r4, r2, 0\n"
"\tlsls r3, 24\n"
"\tlsrs r3, 24\n"
"\tstr r3, [sp, 0x10]\n"
"\tcmp r4, 0\n"
"\tbeq _08048D44\n"
"\tbl GetBattlerPosition\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tcmp r0, 0x3\n"
"\tbeq _08048D88\n"
"_08048D44:\n"
"\tldr r0, [sp, 0x8]\n"
"\tbl GetBattlerSide\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbne _08048D64\n"
"\tmovs r7, 0\n"
"\tmovs r1, 0x88\n"
"\tmovs r2, 0x60\n"
"\tmovs r0, 0x64\n"
"\tmov r8, r0\n"
"\tldr r5, _08048D60 @ =0x0000fffb\n"
"\tb _08048D94\n"
"\t.align 2, 0\n"
"_08048D60: .4byte 0x0000fffb\n"
"_08048D64:\n"
"\tmovs r7, 0x1\n"
"\tcmp r4, 0\n"
"\tbeq _08048D74\n"
"\tbl IsDoubleBattle\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbne _08048D7A\n"
"_08048D74:\n"
"\tmovs r1, 0x68\n"
"\tmovs r2, 0x28\n"
"\tb _08048D7E\n"
"_08048D7A:\n"
"\tmovs r1, 0x68\n"
"\tmovs r2, 0x10\n"
"_08048D7E:\n"
"\tldr r3, _08048D84 @ =0x0000ff9c\n"
"\tmov r8, r3\n"
"\tb _08048D92\n"
"\t.align 2, 0\n"
"_08048D84: .4byte 0x0000ff9c\n"
"_08048D88:\n"
"\tmovs r7, 0x1\n"
"\tmovs r1, 0x68\n"
"\tmovs r2, 0x28\n"
"\tldr r5, _08048E40 @ =0x0000ff9c\n"
"\tmov r8, r5\n"
"_08048D92:\n"
"\tmovs r5, 0x5\n"
"_08048D94:\n"
"\tmovs r6, 0\n"
"\tstr r6, [sp, 0x14]\n"
"\tlsls r4, r7, 3\n"
"\tldr r0, _08048E44 @ =sStatusSummaryBarSpriteSheets\n"
"\tmov r10, r0\n"
"\tlsls r3, r7, 1\n"
"\tmov r9, r3\n"
"\tlsls r1, 16\n"
"\tstr r1, [sp, 0x20]\n"
"\tlsls r2, 16\n"
"\tstr r2, [sp, 0x24]\n"
"\tldr r2, _08048E48 @ =0x0000ffff\n"
"\tldr r1, [sp, 0xC]\n"
"\tmovs r6, 0x5\n"
"_08048DB0:\n"
"\tldrh r0, [r1]\n"
"\tcmp r0, r2\n"
"\tbeq _08048DC4\n"
"\tldr r3, [sp, 0x14]\n"
"\tlsls r0, r3, 24\n"
"\tmovs r3, 0x80\n"
"\tlsls r3, 17\n"
"\tadds r0, r3\n"
"\tlsrs r0, 24\n"
"\tstr r0, [sp, 0x14]\n"
"_08048DC4:\n"
"\tadds r1, 0x8\n"
"\tsubs r6, 0x1\n"
"\tcmp r6, 0\n"
"\tbge _08048DB0\n"
"\tmov r6, r10\n"
"\tadds r0, r4, r6\n"
"\tbl LoadCompressedSpriteSheetUsingHeap\n"
"\tldr r0, _08048E4C @ =sStatusSummaryBallsSpriteSheets\n"
"\tadds r0, r4, r0\n"
"\tbl LoadSpriteSheet\n"
"\tldr r0, _08048E50 @ =sStatusSummaryBarSpritePals\n"
"\tadds r0, r4, r0\n"
"\tbl LoadSpritePalette\n"
"\tldr r0, _08048E54 @ =sStatusSummaryBallsSpritePals\n"
"\tadds r0, r4, r0\n"
"\tbl LoadSpritePalette\n"
"\tmov r1, r9\n"
"\tadds r0, r1, r7\n"
"\tlsls r0, 3\n"
"\tldr r1, _08048E58 @ =sStatusSummaryBarSpriteTemplates\n"
"\tadds r0, r1\n"
"\tldr r2, [sp, 0x20]\n"
"\tasrs r1, r2, 16\n"
"\tldr r3, [sp, 0x24]\n"
"\tasrs r2, r3, 16\n"
"\tmovs r3, 0xA\n"
"\tbl CreateSprite\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tstr r0, [sp, 0x18]\n"
"\tlsls r0, 4\n"
"\tldr r6, [sp, 0x18]\n"
"\tadds r0, r6\n"
"\tlsls r0, 2\n"
"\tldr r1, _08048E5C @ =gSprites\n"
"\tadds r4, r0, r1\n"
"\tldr r1, _08048E60 @ =sStatusSummaryBar_SubspriteTable\n"
"\tadds r0, r4, 0\n"
"\tbl SetSubspriteTables\n"
"\tmov r0, r8\n"
"\tstrh r0, [r4, 0x24]\n"
"\tstrh r5, [r4, 0x2E]\n"
"\tcmp r7, 0\n"
"\tbeq _08048E64\n"
"\tldrh r0, [r4, 0x20]\n"
"\tsubs r0, 0x60\n"
"\tstrh r0, [r4, 0x20]\n"
"\tldrb r1, [r4, 0x3]\n"
"\tmovs r0, 0x3F\n"
"\tnegs r0, r0\n"
"\tands r0, r1\n"
"\tmovs r1, 0x10\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4, 0x3]\n"
"\tb _08048E6A\n"
"\t.align 2, 0\n"
"_08048E40: .4byte 0x0000ff9c\n"
"_08048E44: .4byte sStatusSummaryBarSpriteSheets\n"
"_08048E48: .4byte 0x0000ffff\n"
"_08048E4C: .4byte sStatusSummaryBallsSpriteSheets\n"
"_08048E50: .4byte sStatusSummaryBarSpritePals\n"
"_08048E54: .4byte sStatusSummaryBallsSpritePals\n"
"_08048E58: .4byte sStatusSummaryBarSpriteTemplates\n"
"_08048E5C: .4byte gSprites\n"
"_08048E60: .4byte sStatusSummaryBar_SubspriteTable\n"
"_08048E64:\n"
"\tldrh r0, [r4, 0x20]\n"
"\tadds r0, 0x60\n"
"\tstrh r0, [r4, 0x20]\n"
"_08048E6A:\n"
"\tmovs r6, 0\n"
"\tldr r1, _08048F14 @ =gSprites\n"
"\tmov r10, r1\n"
"\tmov r4, sp\n"
"\tmov r2, r9\n"
"\tadds r0, r2, r7\n"
"\tlsls r0, 3\n"
"\tstr r0, [sp, 0x1C]\n"
"\tmovs r3, 0xA\n"
"\tmov r9, r3\n"
"\tmov r8, r6\n"
"_08048E80:\n"
"\tldr r0, _08048F18 @ =sStatusSummaryBallsSpriteTemplates\n"
"\tldr r5, [sp, 0x24]\n"
"\tldr r1, _08048F1C @ =0xfffc0000\n"
"\tadds r2, r5, r1\n"
"\tldr r3, [sp, 0x1C]\n"
"\tadds r0, r3, r0\n"
"\tldr r5, [sp, 0x20]\n"
"\tasrs r1, r5, 16\n"
"\tasrs r2, 16\n"
"\tmovs r3, 0x9\n"
"\tbl CreateSpriteAtEnd\n"
"\tstrb r0, [r4]\n"
"\tldr r0, [sp, 0x10]\n"
"\tcmp r0, 0\n"
"\tbne _08048EB0\n"
"\tldrb r0, [r4]\n"
"\tlsls r1, r0, 4\n"
"\tadds r1, r0\n"
"\tlsls r1, 2\n"
"\tldr r2, _08048F20 @ =gSprites + 0x1C\n"
"\tadds r1, r2\n"
"\tldr r0, _08048F24 @ =SpriteCB_StatusSummaryBallsOnSwitchout\n"
"\tstr r0, [r1]\n"
"_08048EB0:\n"
"\tldr r5, _08048F14 @ =gSprites\n"
"\tcmp r7, 0\n"
"\tbne _08048ECE\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadd r0, r10\n"
"\tstrh r7, [r0, 0x24]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadd r0, r10\n"
"\tstrh r7, [r0, 0x26]\n"
"_08048ECE:\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r5\n"
"\tmovs r1, 0\n"
"\tmov r3, sp\n"
"\tldrh r3, [r3, 0x18]\n"
"\tstrh r3, [r0, 0x2E]\n"
"\tcmp r7, 0\n"
"\tbne _08048F28\n"
"\tldrb r0, [r4]\n"
"\tlsls r1, r0, 4\n"
"\tadds r1, r0\n"
"\tlsls r1, 2\n"
"\tadds r1, r5\n"
"\tldrh r0, [r1, 0x20]\n"
"\tadds r0, 0x18\n"
"\tadd r0, r8\n"
"\tstrh r0, [r1, 0x20]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r5\n"
"\tmov r1, r9\n"
"\tstrh r1, [r0, 0x30]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r5\n"
"\tmovs r1, 0x78\n"
"\tb _08048F66\n"
"\t.align 2, 0\n"
"_08048F14: .4byte gSprites\n"
"_08048F18: .4byte sStatusSummaryBallsSpriteTemplates\n"
"_08048F1C: .4byte 0xfffc0000\n"
"_08048F20: .4byte gSprites + 0x1C\n"
"_08048F24: .4byte SpriteCB_StatusSummaryBallsOnSwitchout\n"
"_08048F28:\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r5\n"
"\tldrh r3, [r2, 0x20]\n"
"\tsubs r3, 0x18\n"
"\tmovs r1, 0x5\n"
"\tsubs r1, r6\n"
"\tlsls r0, r1, 2\n"
"\tadds r0, r1\n"
"\tlsls r0, 1\n"
"\tsubs r3, r0\n"
"\tstrh r3, [r2, 0x20]\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r5\n"
"\tmovs r1, 0x6\n"
"\tsubs r1, r6\n"
"\tlsls r0, r1, 3\n"
"\tsubs r0, r1\n"
"\tadds r0, 0xA\n"
"\tstrh r0, [r2, 0x30]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r5\n"
"\tldr r1, _08048FD4 @ =0x0000ff88\n"
"_08048F66:\n"
"\tstrh r1, [r0, 0x24]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r5\n"
"\tstrh r7, [r0, 0x32]\n"
"\tadds r4, 0x1\n"
"\tmovs r2, 0x7\n"
"\tadd r9, r2\n"
"\tmovs r3, 0xA\n"
"\tadd r8, r3\n"
"\tadds r6, 0x1\n"
"\tcmp r6, 0x5\n"
"\tbgt _08048F86\n"
"\tb _08048E80\n"
"_08048F86:\n"
"\tldr r0, [sp, 0x8]\n"
"\tbl GetBattlerSide\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbne _0804906E\n"
"\tmovs r6, 0\n"
"\tldr r5, _08048FD8 @ =gBattleTypeFlags\n"
"\tmov r10, r5\n"
"\tldr r0, _08048FDC @ =0x0000ffff\n"
"\tmov r9, r0\n"
"\tldr r7, _08048FE0 @ =gSprites\n"
"\tldr r1, _08048FE4 @ =0x000003ff\n"
"\tmov r12, r1\n"
"\tldr r2, _08048FE8 @ =0xfffffc00\n"
"\tmov r8, r2\n"
"\tmov r4, sp\n"
"\tldr r5, [sp, 0xC]\n"
"_08048FAA:\n"
"\tmov r3, r10\n"
"\tldr r0, [r3]\n"
"\tmovs r1, 0x40\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _08048FEC\n"
"\tldrh r0, [r5]\n"
"\tcmp r0, r9\n"
"\tbeq _08048FF6\n"
"\tcmp r0, 0\n"
"\tbne _0804903E\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x3\n"
"\tb _08049056\n"
"\t.align 2, 0\n"
"_08048FD4: .4byte 0x0000ff88\n"
"_08048FD8: .4byte gBattleTypeFlags\n"
"_08048FDC: .4byte 0x0000ffff\n"
"_08048FE0: .4byte gSprites\n"
"_08048FE4: .4byte 0x000003ff\n"
"_08048FE8: .4byte 0xfffffc00\n"
"_08048FEC:\n"
"\tldr r1, [sp, 0x14]\n"
"\tlsls r0, r1, 24\n"
"\tasrs r0, 24\n"
"\tcmp r6, r0\n"
"\tblt _08049024\n"
"_08048FF6:\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x1\n"
"\tmov r0, r12\n"
"\tands r1, r0\n"
"\tmov r0, r8\n"
"\tands r0, r3\n"
"\torrs r0, r1\n"
"\tstrh r0, [r2, 0x4]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r7\n"
"\tmovs r1, 0x1\n"
"\tstrh r1, [r0, 0x3C]\n"
"\tb _08049062\n"
"_08049024:\n"
"\tldrh r0, [r5]\n"
"\tcmp r0, 0\n"
"\tbne _0804903E\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x3\n"
"\tb _08049056\n"
"_0804903E:\n"
"\tldr r0, [r5, 0x4]\n"
"\tcmp r0, 0\n"
"\tbeq _08049062\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x2\n"
"_08049056:\n"
"\tmov r0, r12\n"
"\tands r1, r0\n"
"\tmov r0, r8\n"
"\tands r0, r3\n"
"\torrs r0, r1\n"
"\tstrh r0, [r2, 0x4]\n"
"_08049062:\n"
"\tadds r4, 0x1\n"
"\tadds r5, 0x8\n"
"\tadds r6, 0x1\n"
"\tcmp r6, 0x5\n"
"\tble _08048FAA\n"
"\tb _08049148\n"
"_0804906E:\n"
"\tmovs r6, 0\n"
"\tldr r1, _080490B4 @ =gBattleTypeFlags\n"
"\tmov r10, r1\n"
"\tldr r2, _080490B8 @ =0x0000ffff\n"
"\tmov r9, r2\n"
"\tldr r7, _080490BC @ =gSprites\n"
"\tldr r3, _080490C0 @ =0x000003ff\n"
"\tmov r12, r3\n"
"\tldr r5, _080490C4 @ =0xfffffc00\n"
"\tmov r8, r5\n"
"\tldr r5, [sp, 0xC]\n"
"\tmov r4, sp\n"
"\tadds r4, 0x5\n"
"_08049088:\n"
"\tmov r1, r10\n"
"\tldr r0, [r1]\n"
"\tmovs r1, 0x40\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _080490C8\n"
"\tldrh r0, [r5]\n"
"\tcmp r0, r9\n"
"\tbeq _080490D2\n"
"\tcmp r0, 0\n"
"\tbne _0804911A\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x3\n"
"\tb _08049132\n"
"\t.align 2, 0\n"
"_080490B4: .4byte gBattleTypeFlags\n"
"_080490B8: .4byte 0x0000ffff\n"
"_080490BC: .4byte gSprites\n"
"_080490C0: .4byte 0x000003ff\n"
"_080490C4: .4byte 0xfffffc00\n"
"_080490C8:\n"
"\tldr r1, [sp, 0x14]\n"
"\tlsls r0, r1, 24\n"
"\tasrs r0, 24\n"
"\tcmp r6, r0\n"
"\tblt _08049100\n"
"_080490D2:\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x1\n"
"\tmov r0, r12\n"
"\tands r1, r0\n"
"\tmov r0, r8\n"
"\tands r0, r3\n"
"\torrs r0, r1\n"
"\tstrh r0, [r2, 0x4]\n"
"\tldrb r1, [r4]\n"
"\tlsls r0, r1, 4\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tadds r0, r7\n"
"\tmovs r1, 0x1\n"
"\tstrh r1, [r0, 0x3C]\n"
"\tb _0804913E\n"
"_08049100:\n"
"\tldrh r0, [r5]\n"
"\tcmp r0, 0\n"
"\tbne _0804911A\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x3\n"
"\tb _08049132\n"
"_0804911A:\n"
"\tldr r0, [r5, 0x4]\n"
"\tcmp r0, 0\n"
"\tbeq _0804913E\n"
"\tldrb r0, [r4]\n"
"\tlsls r2, r0, 4\n"
"\tadds r2, r0\n"
"\tlsls r2, 2\n"
"\tadds r2, r7\n"
"\tldrh r3, [r2, 0x4]\n"
"\tlsls r1, r3, 22\n"
"\tlsrs r1, 22\n"
"\tadds r1, 0x2\n"
"_08049132:\n"
"\tmov r0, r12\n"
"\tands r1, r0\n"
"\tmov r0, r8\n"
"\tands r0, r3\n"
"\torrs r0, r1\n"
"\tstrh r0, [r2, 0x4]\n"
"_0804913E:\n"
"\tsubs r4, 0x1\n"
"\tadds r5, 0x8\n"
"\tadds r6, 0x1\n"
"\tcmp r6, 0x5\n"
"\tble _08049088\n"
"_08049148:\n"
"\tldr r0, _080491A8 @ =TaskDummy\n"
"\tmovs r1, 0x5\n"
"\tbl CreateTask\n"
"\tlsls r0, 24\n"
"\tlsrs r4, r0, 24\n"
"\tldr r2, _080491AC @ =gTasks\n"
"\tlsls r3, r4, 2\n"
"\tadds r1, r3, r4\n"
"\tlsls r1, 3\n"
"\tadds r0, r1, r2\n"
"\tmov r5, sp\n"
"\tldrh r5, [r5, 0x8]\n"
"\tstrh r5, [r0, 0x8]\n"
"\tmov r6, sp\n"
"\tldrh r6, [r6, 0x18]\n"
"\tstrh r6, [r0, 0xA]\n"
"\tmovs r6, 0\n"
"\tadds r0, r2, 0\n"
"\tadds r0, 0xE\n"
"\tadds r1, r0\n"
"_08049172:\n"
"\tmov r5, sp\n"
"\tadds r0, r5, r6\n"
"\tldrb r0, [r0]\n"
"\tstrh r0, [r1]\n"
"\tadds r1, 0x2\n"
"\tadds r6, 0x1\n"
"\tcmp r6, 0x5\n"
"\tble _08049172\n"
"\tadds r0, r3, r4\n"
"\tlsls r0, 3\n"
"\tadds r0, r2\n"
"\tldrh r6, [r5, 0x10]\n"
"\tstrh r6, [r0, 0x1C]\n"
"\tmovs r0, 0x6B\n"
"\tmovs r1, 0\n"
"\tbl PlaySE12WithPanning\n"
"\tadds r0, r4, 0\n"
"\tadd sp, 0x28\n"
"\tpop {r3-r5}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tmov r10, r5\n"
"\tpop {r4-r7}\n"
"\tpop {r1}\n"
"\tbx r1\n"
"\t.align 2, 0\n"
"_080491A8: .4byte TaskDummy\n"
"_080491AC: .4byte gTasks");
}
#endif //NONMATCHING
const u8 gUnknown_8260556[] = _("{HIGHLIGHT 02}");
const u16 gUnknown_826055A[] = {