summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_interface.s589
-rw-r--r--src/battle_interface.c788
2 files changed, 788 insertions, 589 deletions
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index aeffb047f..5d3aa7b20 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -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}
diff --git a/src/battle_interface.c b/src/battle_interface.c
index e8a1f5a02..77ac1db80 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -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[] = {