nonmatching CreatePartyStatusSummarySprites
This commit is contained in:
@@ -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[] = {
|
||||
|
||||
Reference in New Issue
Block a user