re-match battle_anim_water functions (from #1136)
This commit is contained in:
parent
063596d87b
commit
03f46ff23a
1 changed files with 18 additions and 407 deletions
|
@ -797,11 +797,15 @@ static void AnimSmallBubblePair_Step(struct Sprite *sprite)
|
||||||
DestroyAnimSprite(sprite);
|
DestroyAnimSprite(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
|
||||||
void AnimTask_CreateSurfWave(u8 taskId)
|
void AnimTask_CreateSurfWave(u8 taskId)
|
||||||
{
|
{
|
||||||
struct BattleAnimBgData animBg;
|
struct BattleAnimBgData animBg;
|
||||||
u8 taskId2;
|
u8 taskId2;
|
||||||
|
u16 *x;
|
||||||
|
u16 *y;
|
||||||
|
|
||||||
|
x = &gBattle_BG1_X;
|
||||||
|
y = &gBattle_BG1_Y;
|
||||||
|
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||||
|
@ -832,30 +836,30 @@ void AnimTask_CreateSurfWave(u8 taskId)
|
||||||
gTasks[taskId2].data[2] = 0x1000;
|
gTasks[taskId2].data[2] = 0x1000;
|
||||||
if (IsContest())
|
if (IsContest())
|
||||||
{
|
{
|
||||||
gBattle_BG1_X = -80;
|
*x = -80;
|
||||||
gBattle_BG1_Y = -48;
|
*y = -48;
|
||||||
gTasks[taskId].data[0] = 2;
|
gTasks[taskId].data[0] = 2;
|
||||||
gTasks[taskId].data[1] = 1;
|
gTasks[taskId].data[1] = 1;
|
||||||
gTasks[taskId2].data[3] = 0;
|
gTasks[taskId2].data[3] = 0;
|
||||||
}
|
}
|
||||||
else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||||
{
|
{
|
||||||
gBattle_BG1_X = -224;
|
*x = -224;
|
||||||
gBattle_BG1_Y = 256;
|
*y = 256;
|
||||||
gTasks[taskId].data[0] = 2;
|
gTasks[taskId].data[0] = 2;
|
||||||
gTasks[taskId].data[1] = -1;
|
gTasks[taskId].data[1] = -1;
|
||||||
gTasks[taskId2].data[3] = 1;
|
gTasks[taskId2].data[3] = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattle_BG1_X = 0;
|
*x = 0;
|
||||||
gBattle_BG1_Y = -48;
|
*y = -48;
|
||||||
gTasks[taskId].data[0] = -2;
|
gTasks[taskId].data[0] = -2;
|
||||||
gTasks[taskId].data[1] = 1;
|
gTasks[taskId].data[1] = 1;
|
||||||
gTasks[taskId2].data[3] = 0;
|
gTasks[taskId2].data[3] = 0;
|
||||||
}
|
}
|
||||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
SetGpuReg(REG_OFFSET_BG1HOFS, *x);
|
||||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
SetGpuReg(REG_OFFSET_BG1VOFS, *y);
|
||||||
if (gTasks[taskId2].data[3] == 0)
|
if (gTasks[taskId2].data[3] == 0)
|
||||||
{
|
{
|
||||||
gTasks[taskId2].data[4] = 48;
|
gTasks[taskId2].data[4] = 48;
|
||||||
|
@ -869,235 +873,7 @@ void AnimTask_CreateSurfWave(u8 taskId)
|
||||||
gTasks[taskId].data[6] = 1;
|
gTasks[taskId].data[6] = 1;
|
||||||
gTasks[taskId].func = AnimTask_CreateSurfWave_Step1;
|
gTasks[taskId].func = AnimTask_CreateSurfWave_Step1;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
NAKED
|
|
||||||
void AnimTask_CreateSurfWave(u8 taskId)
|
|
||||||
{
|
|
||||||
asm_unified("push {r4-r7,lr}\n\
|
|
||||||
mov r7, r10\n\
|
|
||||||
mov r6, r9\n\
|
|
||||||
mov r5, r8\n\
|
|
||||||
push {r5-r7}\n\
|
|
||||||
sub sp, 0x10\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r0, 24\n\
|
|
||||||
mov r10, r0\n\
|
|
||||||
ldr r1, =0x00003f42\n\
|
|
||||||
movs r0, 0x50\n\
|
|
||||||
bl SetGpuReg\n\
|
|
||||||
movs r1, 0x80\n\
|
|
||||||
lsls r1, 5\n\
|
|
||||||
movs r0, 0x52\n\
|
|
||||||
bl SetGpuReg\n\
|
|
||||||
movs r0, 0x1\n\
|
|
||||||
movs r1, 0x4\n\
|
|
||||||
movs r2, 0x1\n\
|
|
||||||
bl SetAnimBgAttribute\n\
|
|
||||||
movs r0, 0x1\n\
|
|
||||||
movs r1, 0\n\
|
|
||||||
movs r2, 0x1\n\
|
|
||||||
bl SetAnimBgAttribute\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
bl sub_80A6B30\n\
|
|
||||||
bl IsContest\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bne _081079E0\n\
|
|
||||||
movs r0, 0x1\n\
|
|
||||||
movs r1, 0x3\n\
|
|
||||||
movs r2, 0x1\n\
|
|
||||||
bl SetAnimBgAttribute\n\
|
|
||||||
ldr r0, =gBattleAnimAttacker\n\
|
|
||||||
ldrb r0, [r0]\n\
|
|
||||||
bl GetBattlerSide\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r0, 24\n\
|
|
||||||
cmp r0, 0x1\n\
|
|
||||||
bne _081079D0\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
ldrb r0, [r0, 0x9]\n\
|
|
||||||
ldr r1, =gBattleAnimBgTilemap_SurfOpponent\n\
|
|
||||||
bl AnimLoadCompressedBgTilemap\n\
|
|
||||||
b _081079EA\n\
|
|
||||||
.pool\n\
|
|
||||||
_081079D0:\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
ldrb r0, [r0, 0x9]\n\
|
|
||||||
ldr r1, =gBattleAnimBgTilemap_SurfPlayer\n\
|
|
||||||
bl AnimLoadCompressedBgTilemap\n\
|
|
||||||
b _081079EA\n\
|
|
||||||
.pool\n\
|
|
||||||
_081079E0:\n\
|
|
||||||
ldr r1, =gBattleAnimBgTilemap_SurfContest\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
movs r2, 0x1\n\
|
|
||||||
bl AnimLoadCompressedBgTilemapHandleContest\n\
|
|
||||||
_081079EA:\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
ldrb r0, [r0, 0x9]\n\
|
|
||||||
ldr r1, =gBattleAnimBgImage_Surf\n\
|
|
||||||
mov r2, sp\n\
|
|
||||||
ldrh r2, [r2, 0xA]\n\
|
|
||||||
bl AnimLoadCompressedBgGfx\n\
|
|
||||||
ldr r0, =gBattleAnimArgs\n\
|
|
||||||
movs r1, 0\n\
|
|
||||||
ldrsh r0, [r0, r1]\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bne _08107A24\n\
|
|
||||||
ldr r0, =gBattleAnimBgPalette_Surf\n\
|
|
||||||
mov r1, sp\n\
|
|
||||||
ldrb r1, [r1, 0x8]\n\
|
|
||||||
lsls r1, 4\n\
|
|
||||||
movs r2, 0x20\n\
|
|
||||||
bl LoadCompressedPalette\n\
|
|
||||||
b _08107A32\n\
|
|
||||||
.pool\n\
|
|
||||||
_08107A24:\n\
|
|
||||||
ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal\n\
|
|
||||||
mov r1, sp\n\
|
|
||||||
ldrb r1, [r1, 0x8]\n\
|
|
||||||
lsls r1, 4\n\
|
|
||||||
movs r2, 0x20\n\
|
|
||||||
bl LoadCompressedPalette\n\
|
|
||||||
_08107A32:\n\
|
|
||||||
ldr r0, =AnimTask_SurfWaveScanlineEffect\n\
|
|
||||||
ldr r4, =gTasks\n\
|
|
||||||
mov r2, r10\n\
|
|
||||||
lsls r5, r2, 2\n\
|
|
||||||
adds r1, r5, r2\n\
|
|
||||||
lsls r1, 3\n\
|
|
||||||
adds r6, r1, r4\n\
|
|
||||||
ldrb r1, [r6, 0x7]\n\
|
|
||||||
adds r1, 0x1\n\
|
|
||||||
lsls r1, 24\n\
|
|
||||||
lsrs r1, 24\n\
|
|
||||||
bl CreateTask\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r0, 24\n\
|
|
||||||
mov r8, r0\n\
|
|
||||||
movs r0, 0\n\
|
|
||||||
mov r9, r0\n\
|
|
||||||
mov r1, r8\n\
|
|
||||||
strh r1, [r6, 0x26]\n\
|
|
||||||
mov r2, r8\n\
|
|
||||||
lsls r0, r2, 2\n\
|
|
||||||
add r0, r8\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r7, r0, r4\n\
|
|
||||||
mov r0, r9\n\
|
|
||||||
strh r0, [r7, 0x8]\n\
|
|
||||||
movs r0, 0x80\n\
|
|
||||||
lsls r0, 5\n\
|
|
||||||
strh r0, [r7, 0xA]\n\
|
|
||||||
strh r0, [r7, 0xC]\n\
|
|
||||||
bl IsContest\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r4, r0, 24\n\
|
|
||||||
cmp r4, 0\n\
|
|
||||||
beq _08107AB4\n\
|
|
||||||
ldr r1, =0x0000ffb0\n\
|
|
||||||
adds r0, r1, 0\n\
|
|
||||||
ldr r2, =gBattle_BG1_X\n\
|
|
||||||
strh r0, [r2]\n\
|
|
||||||
adds r1, 0x20\n\
|
|
||||||
adds r0, r1, 0\n\
|
|
||||||
ldr r2, =gBattle_BG1_Y\n\
|
|
||||||
strh r0, [r2]\n\
|
|
||||||
movs r0, 0x2\n\
|
|
||||||
strh r0, [r6, 0x8]\n\
|
|
||||||
movs r0, 0x1\n\
|
|
||||||
strh r0, [r6, 0xA]\n\
|
|
||||||
mov r0, r9\n\
|
|
||||||
strh r0, [r7, 0xE]\n\
|
|
||||||
b _08107B0E\n\
|
|
||||||
.pool\n\
|
|
||||||
_08107AB4:\n\
|
|
||||||
ldr r0, =gBattleAnimAttacker\n\
|
|
||||||
ldrb r0, [r0]\n\
|
|
||||||
bl GetBattlerSide\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r1, r0, 24\n\
|
|
||||||
cmp r1, 0x1\n\
|
|
||||||
bne _08107AF8\n\
|
|
||||||
ldr r2, =0x0000ff20\n\
|
|
||||||
adds r0, r2, 0\n\
|
|
||||||
ldr r2, =gBattle_BG1_X\n\
|
|
||||||
strh r0, [r2]\n\
|
|
||||||
movs r2, 0x80\n\
|
|
||||||
lsls r2, 1\n\
|
|
||||||
adds r0, r2, 0\n\
|
|
||||||
ldr r2, =gBattle_BG1_Y\n\
|
|
||||||
strh r0, [r2]\n\
|
|
||||||
movs r0, 0x2\n\
|
|
||||||
strh r0, [r6, 0x8]\n\
|
|
||||||
ldr r0, =0x0000ffff\n\
|
|
||||||
strh r0, [r6, 0xA]\n\
|
|
||||||
strh r1, [r7, 0xE]\n\
|
|
||||||
b _08107B0E\n\
|
|
||||||
.pool\n\
|
|
||||||
_08107AF8:\n\
|
|
||||||
ldr r0, =gBattle_BG1_X\n\
|
|
||||||
strh r4, [r0]\n\
|
|
||||||
ldr r1, =0x0000ffd0\n\
|
|
||||||
adds r0, r1, 0\n\
|
|
||||||
ldr r2, =gBattle_BG1_Y\n\
|
|
||||||
strh r0, [r2]\n\
|
|
||||||
ldr r0, =0x0000fffe\n\
|
|
||||||
strh r0, [r6, 0x8]\n\
|
|
||||||
movs r0, 0x1\n\
|
|
||||||
strh r0, [r6, 0xA]\n\
|
|
||||||
strh r4, [r7, 0xE]\n\
|
|
||||||
_08107B0E:\n\
|
|
||||||
ldr r0, =gBattle_BG1_X\n\
|
|
||||||
ldrh r1, [r0]\n\
|
|
||||||
movs r0, 0x14\n\
|
|
||||||
bl SetGpuReg\n\
|
|
||||||
ldr r2, =gBattle_BG1_Y\n\
|
|
||||||
ldrh r1, [r2]\n\
|
|
||||||
movs r0, 0x16\n\
|
|
||||||
bl SetGpuReg\n\
|
|
||||||
ldr r1, =gTasks\n\
|
|
||||||
mov r2, r8\n\
|
|
||||||
lsls r0, r2, 2\n\
|
|
||||||
add r0, r8\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r1, r0, r1\n\
|
|
||||||
movs r2, 0xE\n\
|
|
||||||
ldrsh r0, [r1, r2]\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bne _08107B54\n\
|
|
||||||
movs r0, 0x30\n\
|
|
||||||
strh r0, [r1, 0x10]\n\
|
|
||||||
movs r0, 0x70\n\
|
|
||||||
b _08107B58\n\
|
|
||||||
.pool\n\
|
|
||||||
_08107B54:\n\
|
|
||||||
movs r0, 0\n\
|
|
||||||
strh r0, [r1, 0x10]\n\
|
|
||||||
_08107B58:\n\
|
|
||||||
strh r0, [r1, 0x12]\n\
|
|
||||||
ldr r1, =gTasks\n\
|
|
||||||
mov r2, r10\n\
|
|
||||||
adds r0, r5, r2\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
movs r1, 0x1\n\
|
|
||||||
strh r1, [r0, 0x14]\n\
|
|
||||||
ldr r1, =AnimTask_CreateSurfWave_Step1\n\
|
|
||||||
str r1, [r0]\n\
|
|
||||||
add sp, 0x10\n\
|
|
||||||
pop {r3-r5}\n\
|
|
||||||
mov r8, r3\n\
|
|
||||||
mov r9, r4\n\
|
|
||||||
mov r10, r5\n\
|
|
||||||
pop {r4-r7}\n\
|
|
||||||
pop {r0}\n\
|
|
||||||
bx r0\n\
|
|
||||||
.pool\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
|
||||||
static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
||||||
{
|
{
|
||||||
struct BattleAnimBgData animBg;
|
struct BattleAnimBgData animBg;
|
||||||
|
@ -1105,7 +881,6 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
||||||
u16 rgbBuffer;
|
u16 rgbBuffer;
|
||||||
u16 *BGptrX = &gBattle_BG1_X;
|
u16 *BGptrX = &gBattle_BG1_X;
|
||||||
u16 *BGptrY = &gBattle_BG1_Y;
|
u16 *BGptrY = &gBattle_BG1_Y;
|
||||||
s16 unkUse;
|
|
||||||
u32 palOffset;
|
u32 palOffset;
|
||||||
u16 palNum;
|
u16 palNum;
|
||||||
|
|
||||||
|
@ -1118,9 +893,7 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
||||||
rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7];
|
rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7];
|
||||||
for (i = 6; i != 0; i--)
|
for (i = 6; i != 0; i--)
|
||||||
{
|
{
|
||||||
palNum = animBg.paletteId * 16;
|
gPlttBufferFaded[animBg.paletteId * 16 + 1 + i] = gPlttBufferFaded[animBg.paletteId * 16 + 1 + i - 1]; // 1 + i - 1 is needed to match for some bizarre reason
|
||||||
palOffset = 1 + i;
|
|
||||||
gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1];
|
|
||||||
}
|
}
|
||||||
gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer;
|
gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer;
|
||||||
gTasks[taskId].data[5] = 0;
|
gTasks[taskId].data[5] = 0;
|
||||||
|
@ -1128,16 +901,15 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
||||||
if (++gTasks[taskId].data[6] > 1)
|
if (++gTasks[taskId].data[6] > 1)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[6] = 0;
|
gTasks[taskId].data[6] = 0;
|
||||||
unkUse = ++gTasks[taskId].data[3];
|
if (++gTasks[taskId].data[3] <= 13)
|
||||||
if (unkUse <= 13)
|
|
||||||
{
|
{
|
||||||
gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256);
|
gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[3]) | ((16 - gTasks[taskId].data[3]) << 8));
|
||||||
gTasks[taskId].data[4]++;
|
gTasks[taskId].data[4]++;
|
||||||
}
|
}
|
||||||
if (gTasks[taskId].data[3] > 54)
|
if (gTasks[taskId].data[3] > 54)
|
||||||
{
|
{
|
||||||
unkUse = --gTasks[taskId].data[4];
|
gTasks[taskId].data[4]--;
|
||||||
gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256);
|
gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[4]) | ((16 - gTasks[taskId].data[4]) << 8));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F))
|
if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F))
|
||||||
|
@ -1146,167 +918,6 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
||||||
gTasks[taskId].func = AnimTask_CreateSurfWave_Step2;
|
gTasks[taskId].func = AnimTask_CreateSurfWave_Step2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
NAKED
|
|
||||||
static void AnimTask_CreateSurfWave_Step1(u8 taskId)
|
|
||||||
{
|
|
||||||
asm_unified("push {r4-r7,lr}\n\
|
|
||||||
sub sp, 0x10\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r5, r0, 24\n\
|
|
||||||
ldr r1, =gBattle_BG1_X\n\
|
|
||||||
ldr r2, =gBattle_BG1_Y\n\
|
|
||||||
ldr r0, =gTasks\n\
|
|
||||||
lsls r4, r5, 2\n\
|
|
||||||
adds r4, r5\n\
|
|
||||||
lsls r4, 3\n\
|
|
||||||
adds r4, r0\n\
|
|
||||||
ldrh r0, [r4, 0x8]\n\
|
|
||||||
ldrh r3, [r1]\n\
|
|
||||||
adds r0, r3\n\
|
|
||||||
strh r0, [r1]\n\
|
|
||||||
ldrh r0, [r4, 0xA]\n\
|
|
||||||
ldrh r1, [r2]\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
strh r0, [r2]\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
bl sub_80A6B30\n\
|
|
||||||
ldrh r0, [r4, 0xA]\n\
|
|
||||||
ldrh r3, [r4, 0xC]\n\
|
|
||||||
adds r0, r3\n\
|
|
||||||
strh r0, [r4, 0xC]\n\
|
|
||||||
ldrh r0, [r4, 0x12]\n\
|
|
||||||
adds r0, 0x1\n\
|
|
||||||
strh r0, [r4, 0x12]\n\
|
|
||||||
lsls r0, 16\n\
|
|
||||||
asrs r0, 16\n\
|
|
||||||
cmp r0, 0x4\n\
|
|
||||||
bne _08107C18\n\
|
|
||||||
ldr r1, =gPlttBufferFaded\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
ldrb r0, [r0, 0x8]\n\
|
|
||||||
lsls r0, 4\n\
|
|
||||||
adds r0, 0x7\n\
|
|
||||||
lsls r0, 1\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
ldrh r6, [r0]\n\
|
|
||||||
movs r2, 0x6\n\
|
|
||||||
adds r7, r1, 0\n\
|
|
||||||
adds r3, r7, 0\n\
|
|
||||||
mov r4, sp\n\
|
|
||||||
_08107BDE:\n\
|
|
||||||
ldrb r0, [r4, 0x8]\n\
|
|
||||||
lsls r0, 4\n\
|
|
||||||
adds r1, r2, 0x1\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
lsls r1, r0, 1\n\
|
|
||||||
adds r1, r3\n\
|
|
||||||
subs r0, 0x1\n\
|
|
||||||
lsls r0, 1\n\
|
|
||||||
adds r0, r3\n\
|
|
||||||
ldrh r0, [r0]\n\
|
|
||||||
strh r0, [r1]\n\
|
|
||||||
subs r0, r2, 0x1\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r2, r0, 24\n\
|
|
||||||
cmp r2, 0\n\
|
|
||||||
bne _08107BDE\n\
|
|
||||||
mov r0, sp\n\
|
|
||||||
ldrb r0, [r0, 0x8]\n\
|
|
||||||
lsls r0, 4\n\
|
|
||||||
adds r0, 0x1\n\
|
|
||||||
lsls r0, 1\n\
|
|
||||||
adds r0, r7\n\
|
|
||||||
strh r6, [r0]\n\
|
|
||||||
ldr r1, =gTasks\n\
|
|
||||||
lsls r0, r5, 2\n\
|
|
||||||
adds r0, r5\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
strh r2, [r0, 0x12]\n\
|
|
||||||
_08107C18:\n\
|
|
||||||
ldr r1, =gTasks\n\
|
|
||||||
lsls r2, r5, 2\n\
|
|
||||||
adds r0, r2, r5\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r3, r0, r1\n\
|
|
||||||
ldrh r0, [r3, 0x14]\n\
|
|
||||||
adds r0, 0x1\n\
|
|
||||||
strh r0, [r3, 0x14]\n\
|
|
||||||
lsls r0, 16\n\
|
|
||||||
asrs r0, 16\n\
|
|
||||||
adds r4, r1, 0\n\
|
|
||||||
adds r6, r2, 0\n\
|
|
||||||
cmp r0, 0x1\n\
|
|
||||||
ble _08107C86\n\
|
|
||||||
movs r0, 0\n\
|
|
||||||
strh r0, [r3, 0x14]\n\
|
|
||||||
ldrh r0, [r3, 0xE]\n\
|
|
||||||
adds r2, r0, 0x1\n\
|
|
||||||
strh r2, [r3, 0xE]\n\
|
|
||||||
lsls r0, r2, 16\n\
|
|
||||||
asrs r0, 16\n\
|
|
||||||
cmp r0, 0xD\n\
|
|
||||||
bgt _08107C62\n\
|
|
||||||
movs r1, 0x26\n\
|
|
||||||
ldrsh r0, [r3, r1]\n\
|
|
||||||
lsls r1, r0, 2\n\
|
|
||||||
adds r1, r0\n\
|
|
||||||
lsls r1, 3\n\
|
|
||||||
adds r1, r4\n\
|
|
||||||
movs r0, 0x10\n\
|
|
||||||
subs r0, r2\n\
|
|
||||||
lsls r0, 8\n\
|
|
||||||
orrs r2, r0\n\
|
|
||||||
strh r2, [r1, 0xA]\n\
|
|
||||||
ldrh r0, [r3, 0x10]\n\
|
|
||||||
adds r0, 0x1\n\
|
|
||||||
strh r0, [r3, 0x10]\n\
|
|
||||||
_08107C62:\n\
|
|
||||||
movs r1, 0xE\n\
|
|
||||||
ldrsh r0, [r3, r1]\n\
|
|
||||||
cmp r0, 0x36\n\
|
|
||||||
ble _08107C86\n\
|
|
||||||
ldrh r2, [r3, 0x10]\n\
|
|
||||||
subs r2, 0x1\n\
|
|
||||||
strh r2, [r3, 0x10]\n\
|
|
||||||
movs r1, 0x26\n\
|
|
||||||
ldrsh r0, [r3, r1]\n\
|
|
||||||
lsls r1, r0, 2\n\
|
|
||||||
adds r1, r0\n\
|
|
||||||
lsls r1, 3\n\
|
|
||||||
adds r1, r4\n\
|
|
||||||
movs r0, 0x10\n\
|
|
||||||
subs r0, r2\n\
|
|
||||||
lsls r0, 8\n\
|
|
||||||
orrs r2, r0\n\
|
|
||||||
strh r2, [r1, 0xA]\n\
|
|
||||||
_08107C86:\n\
|
|
||||||
adds r0, r6, r5\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r2, r0, r4\n\
|
|
||||||
movs r3, 0x26\n\
|
|
||||||
ldrsh r1, [r2, r3]\n\
|
|
||||||
lsls r0, r1, 2\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
lsls r0, 3\n\
|
|
||||||
adds r0, r4\n\
|
|
||||||
ldrh r0, [r0, 0xA]\n\
|
|
||||||
movs r3, 0x1F\n\
|
|
||||||
ands r3, r0\n\
|
|
||||||
cmp r3, 0\n\
|
|
||||||
bne _08107CA8\n\
|
|
||||||
strh r3, [r2, 0x8]\n\
|
|
||||||
ldr r0, =AnimTask_CreateSurfWave_Step2\n\
|
|
||||||
str r0, [r2]\n\
|
|
||||||
_08107CA8:\n\
|
|
||||||
add sp, 0x10\n\
|
|
||||||
pop {r4-r7}\n\
|
|
||||||
pop {r0}\n\
|
|
||||||
bx r0\n\
|
|
||||||
.pool\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void AnimTask_CreateSurfWave_Step2(u8 taskId)
|
static void AnimTask_CreateSurfWave_Step2(u8 taskId)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue