some more fakematch fix

This commit is contained in:
DizzyEggg
2019-02-01 12:26:40 +01:00
parent e3bec4b480
commit c0db311637
2 changed files with 155 additions and 154 deletions
+130 -129
View File
@@ -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;
} }
} }
+2 -2
View File
@@ -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;