summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_interface.c788
1 files changed, 788 insertions, 0 deletions
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[] = {