Merge pull request #532 from DizzyEggg/bored

Fix some fakematches
This commit is contained in:
Diegoisawesome
2019-02-01 10:04:42 -06:00
committed by GitHub
5 changed files with 170 additions and 181 deletions
+1 -11
View File
@@ -821,25 +821,15 @@ 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;
} }
} }
+11 -10
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);
@@ -1262,6 +1262,7 @@ void AnimTask_Haze2(u8 taskId)
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;
} }
} }
@@ -1363,6 +1364,7 @@ void AnimTask_OverlayFogTiles(u8 taskId)
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;
+9 -7
View File
@@ -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:
+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;
+1 -5
View File
@@ -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;