diff options
Diffstat (limited to 'src/battle_main.c')
-rw-r--r-- | src/battle_main.c | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/src/battle_main.c b/src/battle_main.c index 741461b0b..37ab6109c 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1961,10 +1961,10 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir if (gTrainers[trainerNum].doubleBattle == TRUE) personalityValue = 0x80; - else if (gTrainers[trainerNum].encounterMusic_gender & 0x80) - personalityValue = 0x78; + else if (gTrainers[trainerNum].encounterMusic_gender & F_TRAINER_FEMALE) + personalityValue = 0x78; // Use personality more likely to result in a female Pokémon else - personalityValue = 0x88; + personalityValue = 0x88; // Use personality more likely to result in a male Pokémon for (j = 0; gTrainers[trainerNum].trainerName[j] != EOS; j++) nameHash += gTrainers[trainerNum].trainerName[j]; @@ -2082,9 +2082,9 @@ void SpriteCB_VsLetterDummy(struct Sprite *sprite) static void SpriteCB_VsLetter(struct Sprite *sprite) { if (sprite->data[0] != 0) - sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); + sprite->x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); else - sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); + sprite->x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); sprite->data[2] += 0x180; @@ -2618,8 +2618,8 @@ static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite) { if ((gIntroSlideFlags & 1) == 0) { - sprite->pos2.x += 2; - if (sprite->pos2.x == 0) + sprite->x2 += 2; + if (sprite->x2 == 0) { sprite->callback = SpriteCb_WildMonShowHealthbox; } @@ -2730,7 +2730,7 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite) if (--sprite->data[4] == 0) { sprite->data[4] = 2; - sprite->pos2.y += 8; // Move the sprite down. + sprite->y2 += 8; // Move the sprite down. if (--sprite->data[3] < 0) { FreeSpriteOamMatrix(sprite); @@ -2795,8 +2795,8 @@ static void SpriteCB_BattleSpriteSlideLeft(struct Sprite *sprite) { if (!(gIntroSlideFlags & 1)) { - sprite->pos2.x -= 2; - if (sprite->pos2.x == 0) + sprite->x2 -= 2; + if (sprite->x2 == 0) { sprite->callback = SpriteCallbackDummy_3; sprite->data[1] = 0; @@ -2821,8 +2821,8 @@ void SpriteCB_FaintSlideAnim(struct Sprite *sprite) { if (!(gIntroSlideFlags & 1)) { - sprite->pos2.x += sprite->sSpeedX; - sprite->pos2.y += sprite->sSpeedY; + sprite->x2 += sprite->sSpeedX; + sprite->y2 += sprite->sSpeedY; } } @@ -2872,8 +2872,8 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude) gSprites[invisibleSpriteId].sAmplitude = amplitude; gSprites[invisibleSpriteId].sBouncerSpriteId = bouncerSpriteId; gSprites[invisibleSpriteId].sWhich = which; - gSprites[bouncerSpriteId].pos2.x = 0; - gSprites[bouncerSpriteId].pos2.y = 0; + gSprites[bouncerSpriteId].x2 = 0; + gSprites[bouncerSpriteId].y2 = 0; } void EndBounceEffect(u8 battler, u8 which) @@ -2899,8 +2899,8 @@ void EndBounceEffect(u8 battler, u8 which) gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing = 0; } - gSprites[bouncerSpriteId].pos2.x = 0; - gSprites[bouncerSpriteId].pos2.y = 0; + gSprites[bouncerSpriteId].x2 = 0; + gSprites[bouncerSpriteId].y2 = 0; } static void SpriteCB_BounceEffect(struct Sprite *sprite) @@ -2913,7 +2913,7 @@ static void SpriteCB_BounceEffect(struct Sprite *sprite) else index = sprite->sSinIndex; - gSprites[bouncerSpriteId].pos2.y = Sin(index, sprite->sAmplitude) + sprite->sAmplitude; + gSprites[bouncerSpriteId].y2 = Sin(index, sprite->sAmplitude) + sprite->sAmplitude; sprite->sSinIndex = (sprite->sSinIndex + sprite->sDelta) & 0xFF; } @@ -5039,7 +5039,7 @@ static void HandleEndTurn_FinishBattle(void) } } } - PutPokemonTodayCaughtOnAir(); + TryPutPokemonTodayOnAir(); } if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK @@ -5052,7 +5052,7 @@ static void HandleEndTurn_FinishBattle(void) | BATTLE_TYPE_WALLY_TUTORIAL)) && gBattleResults.shinyWildMon) { - sub_80EE184(); + TryPutBreakingNewsOnAir(); } sub_8186444(); @@ -5148,7 +5148,12 @@ static void ReturnFromBattleToOverworld(void) if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) { UpdateRoamerHPStatus(&gEnemyParty[0]); + +#ifndef BUGFIX if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) +#else + if ((gBattleOutcome == B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) // Bug: When Roar is used by roamer, gBattleOutcome is B_OUTCOME_PLAYER_TELEPORTED (5). +#endif // & with B_OUTCOME_WON (1) will return TRUE and deactivates the roamer. SetRoamerInactive(); } |