@@ -821,24 +821,14 @@ void SetPlayerAvatarTransitionFlags(u16 transitionFlags)
|
|||||||
static void DoPlayerAvatarTransition(void)
|
static void DoPlayerAvatarTransition(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u32 flags = gPlayerAvatar.unk1;
|
u8 flags = gPlayerAvatar.unk1;
|
||||||
|
|
||||||
if (flags != 0)
|
if (flags != 0)
|
||||||
{
|
{
|
||||||
for (i = 0; i < 8; i++, flags >>= 1)
|
for (i = 0; i < 8; i++, flags >>= 1)
|
||||||
{
|
{
|
||||||
#ifdef NONMATCHING
|
|
||||||
if (flags & 1)
|
if (flags & 1)
|
||||||
{
|
|
||||||
gUnknown_084974B8[i](&gEventObjects[gPlayerAvatar.eventObjectId]);
|
gUnknown_084974B8[i](&gEventObjects[gPlayerAvatar.eventObjectId]);
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (flags & 1)
|
|
||||||
{
|
|
||||||
register void (*const *funcs)(struct EventObject *) asm("r0") = gUnknown_084974B8;
|
|
||||||
funcs[i](&gEventObjects[gPlayerAvatar.eventObjectId]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
gPlayerAvatar.unk1 = 0;
|
gPlayerAvatar.unk1 = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
259
src/ice.c
259
src/ice.c
@@ -917,7 +917,7 @@ void AnimSwirlingSnowball_Step2(struct Sprite *sprite)
|
|||||||
sprite->pos2.x = 0;
|
sprite->pos2.x = 0;
|
||||||
sprite->data[0] = 128;
|
sprite->data[0] = 128;
|
||||||
|
|
||||||
tempVar = GetBattlerSide(gBattleAnimAttacker) != 0 ? 20 : -20;
|
tempVar = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 20 : -20;
|
||||||
|
|
||||||
sprite->data[3] = Sin(sprite->data[0], tempVar);
|
sprite->data[3] = Sin(sprite->data[0], tempVar);
|
||||||
sprite->data[4] = Cos(sprite->data[0], 0xF);
|
sprite->data[4] = Cos(sprite->data[0], 0xF);
|
||||||
@@ -1208,60 +1208,61 @@ void AnimTask_Haze2(u8 taskId)
|
|||||||
|
|
||||||
switch (gTasks[taskId].data[12])
|
switch (gTasks[taskId].data[12])
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (++gTasks[taskId].data[10] == 4)
|
if (++gTasks[taskId].data[10] == 4)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[10] = 0;
|
gTasks[taskId].data[10] = 0;
|
||||||
gTasks[taskId].data[9]++;
|
gTasks[taskId].data[9]++;
|
||||||
gTasks[taskId].data[11] = gUnknown_08595C5C[gTasks[taskId].data[9]];
|
gTasks[taskId].data[11] = gUnknown_08595C5C[gTasks[taskId].data[9]];
|
||||||
|
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
|
||||||
if (gTasks[taskId].data[11] == 9)
|
if (gTasks[taskId].data[11] == 9)
|
||||||
{
|
|
||||||
gTasks[taskId].data[12]++;
|
|
||||||
gTasks[taskId].data[11] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (++gTasks[taskId].data[11] == 0x51)
|
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[11] = 9;
|
|
||||||
gTasks[taskId].data[12]++;
|
gTasks[taskId].data[12]++;
|
||||||
|
gTasks[taskId].data[11] = 0;
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
case 2:
|
break;
|
||||||
if (++gTasks[taskId].data[10] == 4)
|
case 1:
|
||||||
{
|
if (++gTasks[taskId].data[11] == 0x51)
|
||||||
gTasks[taskId].data[10] = 0;
|
{
|
||||||
gTasks[taskId].data[11]--;
|
gTasks[taskId].data[11] = 9;
|
||||||
|
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
|
|
||||||
if (gTasks[taskId].data[11] == 0)
|
|
||||||
{
|
|
||||||
gTasks[taskId].data[12]++;
|
|
||||||
gTasks[taskId].data[11] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
sub_80A6B30(&subStruct);
|
|
||||||
sub_80A6C68(1);
|
|
||||||
sub_80A6C68(2);
|
|
||||||
|
|
||||||
gTasks[taskId].data[12]++;
|
gTasks[taskId].data[12]++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (++gTasks[taskId].data[10] == 4)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[10] = 0;
|
||||||
|
gTasks[taskId].data[11]--;
|
||||||
|
|
||||||
// fall through
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
|
||||||
case 4:
|
if (gTasks[taskId].data[11] == 0)
|
||||||
if (!IsContest())
|
{
|
||||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
gTasks[taskId].data[12]++;
|
||||||
|
gTasks[taskId].data[11] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
sub_80A6B30(&subStruct);
|
||||||
|
sub_80A6C68(1);
|
||||||
|
sub_80A6C68(2);
|
||||||
|
|
||||||
gBattle_BG1_X = 0;
|
gTasks[taskId].data[12]++;
|
||||||
gBattle_BG1_Y = 0;
|
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
// fall through
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
case 4:
|
||||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
if (!IsContest())
|
||||||
DestroyAnimVisualTask(taskId);
|
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||||
|
|
||||||
|
gBattle_BG1_X = 0;
|
||||||
|
gBattle_BG1_Y = 0;
|
||||||
|
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||||
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
||||||
|
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||||
|
DestroyAnimVisualTask(taskId);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1315,54 +1316,55 @@ void AnimTask_OverlayFogTiles(u8 taskId)
|
|||||||
|
|
||||||
switch (gTasks[taskId].data[12])
|
switch (gTasks[taskId].data[12])
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
gTasks[taskId].data[9] += 1;
|
gTasks[taskId].data[9] += 1;
|
||||||
gTasks[taskId].data[11] = gUnknown_08595C88[gTasks[taskId].data[9]];
|
gTasks[taskId].data[11] = gUnknown_08595C88[gTasks[taskId].data[9]];
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11]));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11]));
|
||||||
if (gTasks[taskId].data[11] == 5)
|
if (gTasks[taskId].data[11] == 5)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[12]++;
|
||||||
|
gTasks[taskId].data[11] = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (++gTasks[taskId].data[11] == 0x51)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[11] = 5;
|
||||||
|
gTasks[taskId].data[12]++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (++gTasks[taskId].data[10] == 4)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[10] = 0;
|
||||||
|
gTasks[taskId].data[11] -= 1;
|
||||||
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
|
||||||
|
if (gTasks[taskId].data[11] == 0)
|
||||||
{
|
{
|
||||||
gTasks[taskId].data[12]++;
|
gTasks[taskId].data[12]++;
|
||||||
gTasks[taskId].data[11] = 0;
|
gTasks[taskId].data[11] = 0;
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
case 1:
|
break;
|
||||||
if (++gTasks[taskId].data[11] == 0x51)
|
case 3:
|
||||||
{
|
sub_80A6B30(&subStruct);
|
||||||
gTasks[taskId].data[11] = 5;
|
sub_80A6C68(1);
|
||||||
gTasks[taskId].data[12]++;
|
sub_80A6C68(2);
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if (++gTasks[taskId].data[10] == 4)
|
|
||||||
{
|
|
||||||
gTasks[taskId].data[10] = 0;
|
|
||||||
gTasks[taskId].data[11] -= 1;
|
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11]));
|
|
||||||
if (gTasks[taskId].data[11] == 0)
|
|
||||||
{
|
|
||||||
gTasks[taskId].data[12]++;
|
|
||||||
gTasks[taskId].data[11] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
sub_80A6B30(&subStruct);
|
|
||||||
sub_80A6C68(1);
|
|
||||||
sub_80A6C68(2);
|
|
||||||
|
|
||||||
gTasks[taskId].data[12]++;
|
gTasks[taskId].data[12]++;
|
||||||
|
|
||||||
// fall through
|
// fall through
|
||||||
case 4:
|
case 4:
|
||||||
if (!IsContest())
|
if (!IsContest())
|
||||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
|
||||||
|
|
||||||
gBattle_BG1_X = 0;
|
gBattle_BG1_X = 0;
|
||||||
gBattle_BG1_Y = 0;
|
gBattle_BG1_Y = 0;
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
||||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1425,8 +1427,6 @@ void InitPoisonGasCloudAnim(struct Sprite *sprite)
|
|||||||
void MovePoisonGasCloud(struct Sprite *sprite)
|
void MovePoisonGasCloud(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
int value;
|
int value;
|
||||||
register s16 value2 asm("r5");
|
|
||||||
int unused;
|
|
||||||
|
|
||||||
switch (sprite->data[7] & 0xFF)
|
switch (sprite->data[7] & 0xFF)
|
||||||
{
|
{
|
||||||
@@ -1441,8 +1441,7 @@ void MovePoisonGasCloud(struct Sprite *sprite)
|
|||||||
|
|
||||||
if (sprite->data[0] <= 0)
|
if (sprite->data[0] <= 0)
|
||||||
{
|
{
|
||||||
value2 = 80;
|
sprite->data[0] = 80;
|
||||||
sprite->data[0] = value2;
|
|
||||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
||||||
sprite->data[1] = sprite->pos1.x;
|
sprite->data[1] = sprite->pos1.x;
|
||||||
sprite->data[2] = sprite->pos1.x;
|
sprite->data[2] = sprite->pos1.x;
|
||||||
@@ -1450,10 +1449,12 @@ void MovePoisonGasCloud(struct Sprite *sprite)
|
|||||||
sprite->data[3] = sprite->pos1.y;
|
sprite->data[3] = sprite->pos1.y;
|
||||||
sprite->data[4] = sprite->pos1.y + 29;
|
sprite->data[4] = sprite->pos1.y + 29;
|
||||||
sprite->data[7]++;
|
sprite->data[7]++;
|
||||||
if (!IsContest() && gBattlerPositions[gBattleAnimTarget] & 1)
|
if (IsContest())
|
||||||
|
sprite->data[5] = 80;
|
||||||
|
else if (GET_BATTLER_SIDE2(gBattleAnimTarget) != B_SIDE_PLAYER)
|
||||||
sprite->data[5] = 204;
|
sprite->data[5] = 204;
|
||||||
else
|
else
|
||||||
sprite->data[5] = value2;
|
sprite->data[5] = 80;
|
||||||
|
|
||||||
sprite->pos2.y = 0;
|
sprite->pos2.y = 0;
|
||||||
value = gSineTable[sprite->data[5]];
|
value = gSineTable[sprite->data[5]];
|
||||||
@@ -1490,13 +1491,13 @@ void MovePoisonGasCloud(struct Sprite *sprite)
|
|||||||
|
|
||||||
if (sprite->data[0] <= 0)
|
if (sprite->data[0] <= 0)
|
||||||
{
|
{
|
||||||
asm("mov r5, #0"); // unused local variable?
|
|
||||||
unused = 0;
|
|
||||||
sprite->data[0] = 0x300;
|
sprite->data[0] = 0x300;
|
||||||
sprite->data[1] = sprite->pos1.x += sprite->pos2.x;
|
sprite->data[1] = sprite->pos1.x += sprite->pos2.x;
|
||||||
sprite->data[3] = sprite->pos1.y += sprite->pos2.y;
|
sprite->data[3] = sprite->pos1.y += sprite->pos2.y;
|
||||||
sprite->data[4] = sprite->pos1.y + 4;
|
sprite->data[4] = sprite->pos1.y + 4;
|
||||||
if (!IsContest() && gBattlerPositions[gBattleAnimTarget] & 1)
|
if (IsContest())
|
||||||
|
sprite->data[2] = -0x10;
|
||||||
|
else if (GET_BATTLER_SIDE2(gBattleAnimTarget) != B_SIDE_PLAYER)
|
||||||
sprite->data[2] = 0x100;
|
sprite->data[2] = 0x100;
|
||||||
else
|
else
|
||||||
sprite->data[2] = -0x10;
|
sprite->data[2] = -0x10;
|
||||||
@@ -1535,43 +1536,43 @@ void AnimTask_Hail2(u8 taskId)
|
|||||||
struct Task *task = &gTasks[taskId];
|
struct Task *task = &gTasks[taskId];
|
||||||
switch (task->data[0])
|
switch (task->data[0])
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (++task->data[4] > 2)
|
if (++task->data[4] > 2)
|
||||||
{
|
{
|
||||||
task->data[4] = 0;
|
task->data[4] = 0;
|
||||||
task->data[5] = 0;
|
task->data[5] = 0;
|
||||||
task->data[2] = 0;
|
task->data[2] = 0;
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (task->data[5] == 0)
|
if (task->data[5] == 0)
|
||||||
{
|
{
|
||||||
if (GenerateHailParticle(task->data[3], task->data[2], taskId, 1))
|
if (GenerateHailParticle(task->data[3], task->data[2], taskId, 1))
|
||||||
task->data[1]++;
|
task->data[1]++;
|
||||||
|
|
||||||
if (++task->data[2] == 3)
|
if (++task->data[2] == 3)
|
||||||
{
|
{
|
||||||
if (++task->data[3] == 10)
|
if (++task->data[3] == 10)
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
else
|
|
||||||
task->data[0]--;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
task->data[0]--;
|
||||||
task->data[5] = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
task->data[5]--;
|
task->data[5] = 1;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 2:
|
}
|
||||||
if (task->data[1] == 0)
|
else
|
||||||
DestroyAnimVisualTask(taskId);
|
{
|
||||||
break;
|
task->data[5]--;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (task->data[1] == 0)
|
||||||
|
DestroyAnimVisualTask(taskId);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -572,9 +572,6 @@ static void Task_BardSong(u8 taskId)
|
|||||||
struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard;
|
struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard;
|
||||||
u8 *str = gStringVar4 + task->tCharIndex;
|
u8 *str = gStringVar4 + task->tCharIndex;
|
||||||
u16 wordLen = 0;
|
u16 wordLen = 0;
|
||||||
// Can't get it to match without hacking
|
|
||||||
u32 temp;
|
|
||||||
register s16 zero asm("r1");
|
|
||||||
|
|
||||||
while (*str != CHAR_SPACE
|
while (*str != CHAR_SPACE
|
||||||
&& *str != CHAR_NEWLINE
|
&& *str != CHAR_NEWLINE
|
||||||
@@ -588,17 +585,22 @@ static void Task_BardSong(u8 taskId)
|
|||||||
sUnknownBardRelated = MACRO2(bard->songLyrics[task->tCurrWord]);
|
sUnknownBardRelated = MACRO2(bard->songLyrics[task->tCurrWord]);
|
||||||
else
|
else
|
||||||
sUnknownBardRelated = MACRO2(bard->temporaryLyrics[task->tCurrWord]);
|
sUnknownBardRelated = MACRO2(bard->temporaryLyrics[task->tCurrWord]);
|
||||||
temp = gBardSong.length / wordLen;
|
|
||||||
zero = 0;
|
gBardSong.length /= wordLen;
|
||||||
gBardSong.length = temp;
|
|
||||||
if (gBardSong.length <= 0)
|
if (gBardSong.length <= 0)
|
||||||
gBardSong.length = 1;
|
gBardSong.length = 1;
|
||||||
task->tCurrWord++;
|
task->tCurrWord++;
|
||||||
|
|
||||||
if (task->data[2] == 0)
|
if (task->data[2] == 0)
|
||||||
|
{
|
||||||
task->tState = 3;
|
task->tState = 3;
|
||||||
|
task->data[1] = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
task->tState = 5;
|
task->tState = 5;
|
||||||
task->data[1] = zero;
|
task->data[1] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ void ReadPlttIntoBuffers(void)
|
|||||||
bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targetY, u16 blendColor)
|
bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targetY, u16 blendColor)
|
||||||
{
|
{
|
||||||
u8 temp;
|
u8 temp;
|
||||||
register u32 _blendColor asm("r8") = blendColor;
|
u16 color = blendColor;
|
||||||
|
|
||||||
if (gPaletteFade.active)
|
if (gPaletteFade.active)
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
|
|||||||
gPaletteFade_delay = delay;
|
gPaletteFade_delay = delay;
|
||||||
gPaletteFade.y = startY;
|
gPaletteFade.y = startY;
|
||||||
gPaletteFade.targetY = targetY;
|
gPaletteFade.targetY = targetY;
|
||||||
gPaletteFade.blendColor = _blendColor;
|
gPaletteFade.blendColor = color;
|
||||||
gPaletteFade.active = 1;
|
gPaletteFade.active = 1;
|
||||||
gPaletteFade.mode = NORMAL_FADE;
|
gPaletteFade.mode = NORMAL_FADE;
|
||||||
|
|
||||||
|
|||||||
@@ -1238,7 +1238,6 @@ const u16* GetValidMonIconPalettePtr(u16 species)
|
|||||||
return gMonIconPaletteTable[gMonIconPaletteIndices[species]].data;
|
return gMonIconPaletteTable[gMonIconPaletteIndices[species]].data;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: try to find a way to avoid using asm statement
|
|
||||||
u8 UpdateMonIconFrame(struct Sprite *sprite)
|
u8 UpdateMonIconFrame(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
u8 result = 0;
|
u8 result = 0;
|
||||||
@@ -1262,10 +1261,7 @@ u8 UpdateMonIconFrame(struct Sprite *sprite)
|
|||||||
(u8 *)sprite->images + (sSpriteImageSizes[sprite->oam.shape][sprite->oam.size] * frame),
|
(u8 *)sprite->images + (sSpriteImageSizes[sprite->oam.shape][sprite->oam.size] * frame),
|
||||||
(u8 *)(OBJ_VRAM0 + sprite->oam.tileNum * TILE_SIZE_4BPP),
|
(u8 *)(OBJ_VRAM0 + sprite->oam.tileNum * TILE_SIZE_4BPP),
|
||||||
sSpriteImageSizes[sprite->oam.shape][sprite->oam.size]);
|
sSpriteImageSizes[sprite->oam.shape][sprite->oam.size]);
|
||||||
{
|
sprite->animDelayCounter = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration & 0xFF;
|
||||||
register u8 duration asm("r0") = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration;
|
|
||||||
sprite->animDelayCounter = duration;
|
|
||||||
}
|
|
||||||
sprite->animCmdIndex++;
|
sprite->animCmdIndex++;
|
||||||
result = sprite->animCmdIndex;
|
result = sprite->animCmdIndex;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user