Merge branch 'master' of https://github.com/pret/pokeemerald into pretmergenewyears
This commit is contained in:
commit
9e051aa058
63 changed files with 215 additions and 215 deletions
|
@ -681,7 +681,7 @@ struct BattleStruct
|
|||
u16 arenaStartHp[2];
|
||||
u8 arenaLostPlayerMons; // Bits for party member, lost as in referee's decision, not by fainting.
|
||||
u8 arenaLostOpponentMons;
|
||||
u8 alreadyStatusedMoveAttempt; // As bits for battlers; For example when using Thunder Wave on an already paralyzed pokemon.
|
||||
u8 alreadyStatusedMoveAttempt; // As bits for battlers; For example when using Thunder Wave on an already paralyzed Pokémon.
|
||||
u8 debugBattler;
|
||||
u8 magnitudeBasePower;
|
||||
u8 presentBasePower;
|
||||
|
@ -955,7 +955,7 @@ struct BattleSpriteData
|
|||
|
||||
struct MonSpritesGfx
|
||||
{
|
||||
void *firstDecompressed; // ptr to the decompressed sprite of the first pokemon
|
||||
void *firstDecompressed; // ptr to the decompressed sprite of the first Pokémon
|
||||
union {
|
||||
void *ptr[MAX_BATTLERS_COUNT];
|
||||
u8 *byte[MAX_BATTLERS_COUNT];
|
||||
|
|
|
@ -16,12 +16,12 @@
|
|||
#define PALACE_DATA_WIN_STREAK 1
|
||||
#define PALACE_DATA_WIN_STREAK_ACTIVE 2
|
||||
|
||||
// Pokemon in Battle Palace have a move "group" type preference depending on nature
|
||||
// Pokémon in Battle Palace have a move "group" type preference depending on nature
|
||||
#define PALACE_MOVE_GROUP_ATTACK 0
|
||||
#define PALACE_MOVE_GROUP_DEFENSE 1
|
||||
#define PALACE_MOVE_GROUP_SUPPORT 2
|
||||
|
||||
// In palace doubles battles pokemon have a target preference depending on nature
|
||||
// In palace doubles battles Pokémon have a target preference depending on nature
|
||||
#define PALACE_TARGET_STRONGER 0
|
||||
#define PALACE_TARGET_WEAKER 1
|
||||
#define PALACE_TARGET_RANDOM 2
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
#define DEPT_STORE_FLOORNUM_11F 14
|
||||
#define DEPT_STORE_FLOORNUM_ROOFTOP 15
|
||||
|
||||
// Lilycove Pokemon Trainer Fan Club
|
||||
// Lilycove Pokémon Trainer Fan Club
|
||||
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
|
||||
|
||||
#define FANCLUB_GOT_FIRST_FANS 7
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen.
|
||||
// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen.
|
||||
// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------".
|
||||
// In Gen 4 only, migrated Pokémon with Diamond, Pearl, or Platinum's ID show as "----------".
|
||||
// Gen 5 and up read Diamond, Pearl, or Platinum's ID as "Sinnoh".
|
||||
// In Gen 4 and up, migrated Pokemon with HeartGold or SoulSilver's ID show the otherwise unused "Johto" string.
|
||||
// In Gen 4 and up, migrated Pokémon with HeartGold or SoulSilver's ID show the otherwise unused "Johto" string.
|
||||
#define VERSION_SAPPHIRE 1
|
||||
#define VERSION_RUBY 2
|
||||
#define VERSION_EMERALD 3
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef GUARD_CONSTANTS_POKEDEX_H
|
||||
#define GUARD_CONSTANTS_POKEDEX_H
|
||||
|
||||
// National Pokedex order.
|
||||
// National Pokédex order
|
||||
// These constants are NOT disabled by P_GEN_X_POKEMON to keep pokedex_orders.h clean.
|
||||
enum {
|
||||
NATIONAL_DEX_NONE,
|
||||
|
@ -1062,7 +1062,7 @@ enum {
|
|||
|
||||
#define POKEMON_SLOTS_NUMBER (NATIONAL_DEX_COUNT + 1)
|
||||
|
||||
// Hoenn Pokedex order
|
||||
// Hoenn Pokédex order
|
||||
enum {
|
||||
HOENN_DEX_NONE,
|
||||
HOENN_DEX_TREECKO,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef GUARD_CONSTANTS_POKEMON_H
|
||||
#define GUARD_CONSTANTS_POKEMON_H
|
||||
|
||||
// Pokemon types
|
||||
// Pokémon types
|
||||
#define TYPE_NONE 255
|
||||
#define TYPE_NORMAL 0
|
||||
#define TYPE_FIGHTING 1
|
||||
|
@ -24,7 +24,7 @@
|
|||
#define TYPE_FAIRY 18
|
||||
#define NUMBER_OF_MON_TYPES 19
|
||||
|
||||
// Pokemon egg groups
|
||||
// Pokémon egg groups
|
||||
#define EGG_GROUP_NONE 0
|
||||
#define EGG_GROUP_MONSTER 1
|
||||
#define EGG_GROUP_WATER_1 2
|
||||
|
@ -44,7 +44,7 @@
|
|||
|
||||
#define EGG_GROUPS_PER_MON 2
|
||||
|
||||
// Pokemon natures
|
||||
// Pokémon natures
|
||||
#define NATURE_HARDY 0
|
||||
#define NATURE_LONELY 1
|
||||
#define NATURE_BRAVE 2
|
||||
|
@ -72,7 +72,7 @@
|
|||
#define NATURE_QUIRKY 24
|
||||
#define NUM_NATURES 25
|
||||
|
||||
// Pokemon Stats
|
||||
// Pokémon Stats
|
||||
#define STAT_HP 0
|
||||
#define STAT_ATK 1
|
||||
#define STAT_DEF 2
|
||||
|
@ -240,7 +240,7 @@
|
|||
#define GROWTH_FAST 4
|
||||
#define GROWTH_SLOW 5
|
||||
|
||||
// Body colors for pokedex search
|
||||
// Body colors for Pokédex search
|
||||
#define BODY_COLOR_RED 0
|
||||
#define BODY_COLOR_BLUE 1
|
||||
#define BODY_COLOR_YELLOW 2
|
||||
|
@ -316,7 +316,7 @@
|
|||
#define MON_PIC_HEIGHT 64
|
||||
#define MON_PIC_SIZE (MON_PIC_WIDTH * MON_PIC_HEIGHT / 2)
|
||||
|
||||
// Most pokemon have 2 frames (a default and an alternate for their animation).
|
||||
// Most Pokémon have 2 frames (a default and an alternate for their animation).
|
||||
// There are 4 exceptions:
|
||||
// - Deoxys has 2 frames, 1 for each form
|
||||
// - Spinda has 1 frame, presumably to avoid the work of animating its spots
|
||||
|
|
|
@ -170,7 +170,7 @@
|
|||
|
||||
#define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s
|
||||
|
||||
// TV Show states for Pokemon Contest Live Updates
|
||||
// TV Show states for Pokémon Contest Live Updates
|
||||
#define CONTESTLIVE_STATE_INTRO 0
|
||||
#define CONTESTLIVE_STATE_WON_BOTH_ROUNDS 1
|
||||
#define CONTESTLIVE_STATE_BETTER_ROUND2 2
|
||||
|
|
|
@ -214,7 +214,7 @@ struct ContestantStatus
|
|||
u8 comboAppealBonus;
|
||||
u8 repeatJam;
|
||||
u8 nextTurnOrder; // turn position
|
||||
u8 attentionLevel; // How much the Pokemon "stood out"
|
||||
u8 attentionLevel; // How much the Pokémon "stood out"
|
||||
u8 contestantAnimTarget;
|
||||
};
|
||||
|
||||
|
|
|
@ -509,7 +509,7 @@ struct SaveBlock2
|
|||
/*0x90*/ u8 filler_90[0x8];
|
||||
/*0x98*/ struct Time localTimeOffset;
|
||||
/*0xA0*/ struct Time lastBerryTreeUpdate;
|
||||
/*0xA8*/ u32 gcnLinkFlags; // Read by Pokemon Colosseum/XD
|
||||
/*0xA8*/ u32 gcnLinkFlags; // Read by Pokémon Colosseum/XD
|
||||
/*0xAC*/ u32 encryptionKey;
|
||||
/*0xB0*/ struct PlayersApprentice playerApprentice;
|
||||
/*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT];
|
||||
|
|
|
@ -62,7 +62,7 @@ extern const u32 gBallGfx_Cherish[];
|
|||
extern const u32 gBallPal_Cherish[];
|
||||
extern const u32 gOpenPokeballGfx[];
|
||||
|
||||
// pokemon gfx
|
||||
// Pokémon gfx
|
||||
extern const u16 gMonIconPalettes[][16];
|
||||
|
||||
// pokeblock
|
||||
|
@ -278,7 +278,7 @@ extern const u32 gBattleTerrainPalette_StadiumGlacia[];
|
|||
extern const u32 gBattleTerrainPalette_StadiumDrake[];
|
||||
extern const u32 gBattleTerrainPalette_StadiumWallace[];
|
||||
|
||||
// pokedex
|
||||
// Pokédex
|
||||
extern const u32 gPokedexInterface_Gfx[];
|
||||
extern const u16 gPokedexBgHoenn_Pal[];
|
||||
extern const u32 gPokedexMenu_Gfx[];
|
||||
|
@ -1911,7 +1911,7 @@ extern const u32 gBerryPalette_Rowap[];
|
|||
extern const u32 gBerryPalette_Kee[];
|
||||
extern const u32 gBerryPalette_Maranga[];
|
||||
|
||||
//pokenav
|
||||
//PokéNav
|
||||
extern const u16 gPokenavCondition_Pal[];
|
||||
extern const u32 gPokenavCondition_Gfx[];
|
||||
extern const u32 gPokenavCondition_Tilemap[];
|
||||
|
@ -3133,11 +3133,11 @@ extern const u32 gBattleAnimBgImage_Rainbow[];
|
|||
extern const u32 gBattleAnimBGPalette_Rainbow[];
|
||||
extern const u32 gBattleAnimBgTilemap_Rainbow[];
|
||||
|
||||
// Pokedex Area Screen
|
||||
// Pokédex Area Screen
|
||||
extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[];
|
||||
extern const u16 gPokedexAreaScreenAreaUnknown_Pal[];
|
||||
|
||||
// Pokemon Storage System
|
||||
// Pokémon Storage System
|
||||
extern const u32 gStorageSystemMenu_Gfx[];
|
||||
extern const u16 gStorageSystemPartyMenu_Pal[];
|
||||
extern const u32 gStorageSystemPartyMenu_Tilemap[];
|
||||
|
@ -3265,7 +3265,7 @@ extern const u32 gBerryCrush_Crusher_Gfx[];
|
|||
extern const u16 gBerryCrush_Crusher_Pal[];
|
||||
extern const u32 gBerryCrush_TextWindows_Tilemap[];
|
||||
|
||||
// Pokenav
|
||||
// PokéNav
|
||||
extern const u32 gPokenavMessageBox_Gfx[];
|
||||
extern const u32 gPokenavMessageBox_Tilemap[];
|
||||
extern const u16 gPokenavMessageBox_Pal[];
|
||||
|
|
|
@ -17,7 +17,7 @@ void ShowPokemonSummaryScreenHandleDeoxys(u8 mode, struct BoxPokemon *mons, u8 m
|
|||
u8 GetMoveSlotToReplace(void);
|
||||
void SummaryScreen_SetAnimDelayTaskId(u8 taskId);
|
||||
|
||||
// The Pokemon Summary Screen can operate in different modes. Certain features,
|
||||
// The Pokémon Summary Screen can operate in different modes. Certain features,
|
||||
// such as move re-ordering, are available in the different modes.
|
||||
enum PokemonSummaryScreenMode
|
||||
{
|
||||
|
|
|
@ -65,8 +65,8 @@ struct PokenavMonList
|
|||
enum
|
||||
{
|
||||
POKENAV_MODE_NORMAL, // Chosen from Start menu.
|
||||
POKENAV_MODE_FORCE_CALL_READY, // Pokenav tutorial before calling Mr. Stone
|
||||
POKENAV_MODE_FORCE_CALL_EXIT, // Pokenav tutorial after calling Mr. Stone
|
||||
POKENAV_MODE_FORCE_CALL_READY, // PokéNav tutorial before calling Mr. Stone
|
||||
POKENAV_MODE_FORCE_CALL_EXIT, // PokéNav tutorial after calling Mr. Stone
|
||||
};
|
||||
|
||||
enum
|
||||
|
@ -232,8 +232,8 @@ enum
|
|||
[CHECK_PAGE_INTRO_2] = gText_MatchCall##name##_Intro2}
|
||||
|
||||
|
||||
// Pokenav Function IDs
|
||||
// Indices into the LoopedTask tables for each of the main Pokenav features
|
||||
// PokéNav Function IDs
|
||||
// Indices into the LoopedTask tables for each of the main PokéNav features
|
||||
|
||||
enum RegionMapFuncIds
|
||||
{
|
||||
|
|
|
@ -524,7 +524,7 @@ extern const u8 gText_Speed[];
|
|||
extern const u8 gText_Dash[];
|
||||
extern const u8 gText_Plus[];
|
||||
|
||||
//pokedex text
|
||||
//Pokédex text
|
||||
extern const u8 gText_CryOf[];
|
||||
extern const u8 gText_SizeComparedTo[];
|
||||
extern const u8 gText_PokedexRegistration[];
|
||||
|
@ -1130,7 +1130,7 @@ extern const u8 gTrickHouse_Mechadoll_Six2[];
|
|||
extern const u8 gTrickHouse_Mechadoll_Seven2[];
|
||||
extern const u8 gTrickHouse_Mechadoll_Eight2[];
|
||||
|
||||
// Pokedex strings
|
||||
// Pokédex strings
|
||||
extern const u8 gText_SearchForPkmnBasedOnParameters[];
|
||||
extern const u8 gText_SwitchPokedexListings[];
|
||||
extern const u8 gText_ReturnToPokedex[];
|
||||
|
@ -2897,7 +2897,7 @@ extern const u8 gText_WantToPlayAgain[];
|
|||
extern const u8 gText_CommunicationStandby3[];
|
||||
extern const u8 gText_SomeoneDroppedOut[];
|
||||
|
||||
// Pokemon jump
|
||||
// Pokémon jump
|
||||
extern const u8 gText_WantToPlayAgain2[];
|
||||
extern const u8 gText_SomeoneDroppedOut2[];
|
||||
extern const u8 gText_CommunicationStandby4[];
|
||||
|
@ -2972,7 +2972,7 @@ extern const u8 gText_CutenessContest[];
|
|||
extern const u8 gText_SmartnessContest[];
|
||||
extern const u8 gText_ToughnessContest[];
|
||||
|
||||
// Pokenav Match Call
|
||||
// PokéNav Match Call
|
||||
extern const u8 gText_CallCantBeMadeHere[];
|
||||
extern const u8 gText_NumberRegistered[];
|
||||
extern const u8 gText_NumberOfBattles[];
|
||||
|
@ -2982,7 +2982,7 @@ extern const u8 gText_Call[];
|
|||
extern const u8 gText_Check[];
|
||||
extern const u8 gText_Cancel6[];
|
||||
|
||||
// Pokenav Menu Handler
|
||||
// PokéNav Menu Handler
|
||||
extern const u8 gText_CheckMapOfHoenn[];
|
||||
extern const u8 gText_CheckPokemonInDetail[];
|
||||
extern const u8 gText_CallRegisteredTrainer[];
|
||||
|
@ -2999,7 +2999,7 @@ extern const u8 gText_FindToughPokemon[];
|
|||
extern const u8 gText_ReturnToConditionMenu[];
|
||||
extern const u8 gText_NoRibbonWinners[];
|
||||
|
||||
// Pokenav
|
||||
// PokéNav
|
||||
extern const u8 gText_NumberIndex[];
|
||||
extern const u8 gText_RibbonsF700[];
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult)
|
|||
if (GetBattlerAbility(GetBattlerAtPosition(opposingPosition)) != ABILITY_WONDER_GUARD)
|
||||
return FALSE;
|
||||
|
||||
// Check if Pokemon has a super effective move.
|
||||
// Check if Pokémon has a super effective move.
|
||||
for (opposingBattler = GetBattlerAtPosition(opposingPosition), i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
move = gBattleMons[battler].moves[i];
|
||||
|
@ -268,7 +268,7 @@ static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult)
|
|||
else
|
||||
party = gEnemyParty;
|
||||
|
||||
// Find a Pokemon in the party that has a super effective move.
|
||||
// Find a Pokémon in the party that has a super effective move.
|
||||
for (i = firstId; i < lastId; i++)
|
||||
{
|
||||
if (!IsValidForBattle(&party[i]))
|
||||
|
@ -295,7 +295,7 @@ static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult)
|
|||
}
|
||||
}
|
||||
|
||||
return FALSE; // There is not a single Pokemon in the party that has a super effective move against a mon with Wonder Guard.
|
||||
return FALSE; // There is not a single Pokémon in the party that has a super effective move against a mon with Wonder Guard.
|
||||
}
|
||||
|
||||
static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult)
|
||||
|
|
|
@ -543,7 +543,7 @@ static void SlideMonToOriginalPos_Step(struct Sprite *sprite)
|
|||
}
|
||||
|
||||
// Linearly translates a mon to a target offset. The horizontal offset
|
||||
// is mirrored for the opponent's pokemon, and the vertical offset
|
||||
// is mirrored for the opponent's Pokémon, and the vertical offset
|
||||
// is only mirrored if arg 3 is set to 1.
|
||||
// arg 0: 0 = attacker, 1 = target
|
||||
// arg 1: target x pixel offset
|
||||
|
|
|
@ -52,7 +52,7 @@ const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] =
|
|||
},
|
||||
};
|
||||
|
||||
// Placeholders for pokemon sprites to be created for a move animation effect (e.g. Role Play / Snatch)
|
||||
// Placeholders for Pokémon sprites to be created for a move animation effect (e.g. Role Play / Snatch)
|
||||
#define TAG_MOVE_EFFECT_MON_1 55125
|
||||
#define TAG_MOVE_EFFECT_MON_2 55126
|
||||
|
||||
|
@ -2052,7 +2052,7 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
|
|||
return 1;
|
||||
}
|
||||
|
||||
// Create pokemon sprite to be used for a move animation effect (e.g. Role Play / Snatch)
|
||||
// Create Pokémon sprite to be used for a move animation effect (e.g. Role Play / Snatch)
|
||||
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battlerId)
|
||||
{
|
||||
u8 spriteId;
|
||||
|
|
|
@ -1279,12 +1279,12 @@ static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
|||
bool32 bgmRestored = FALSE;
|
||||
bool32 battlerAnimsDone = FALSE;
|
||||
|
||||
// Start shiny animation if applicable for 1st pokemon
|
||||
// Start shiny animation if applicable for 1st Pokémon
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[battler].ballAnimActive)
|
||||
TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]);
|
||||
|
||||
// Start shiny animation if applicable for 2nd pokemon
|
||||
// Start shiny animation if applicable for 2nd Pokémon
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(battler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(battler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(battler)]]);
|
||||
|
|
|
@ -2224,7 +2224,7 @@ static void CreateDomeOpponentMon(u8 monPartyId, u16 tournamentTrainerId, u8 tou
|
|||
#ifdef BUGFIX
|
||||
u8 fixedIv = GetDomeTrainerMonIvs(DOME_TRAINERS[tournamentTrainerId].trainerId);
|
||||
#else
|
||||
u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Using the wrong ID. As a result, all Pokemon have ivs of 3.
|
||||
u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Using the wrong ID. As a result, all Pokémon have ivs of 3.
|
||||
#endif
|
||||
u8 level = SetFacilityPtrsGetLevel();
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[monPartyId],
|
||||
|
@ -2286,13 +2286,13 @@ static void CreateDomeOpponentMons(u16 tournamentTrainerId)
|
|||
}
|
||||
}
|
||||
|
||||
// Returns a bitmask representing which 2 of the trainer's 3 pokemon to select.
|
||||
// Returns a bitmask representing which 2 of the trainer's 3 Pokémon to select.
|
||||
// The choice is calculated solely depending on the type effectiveness of their
|
||||
// movesets against the player's pokemon.
|
||||
// movesets against the player's Pokémon.
|
||||
// There is a 50% chance of either a "good" or "bad" selection mode being used.
|
||||
// In the good mode movesets are preferred which are more effective against the
|
||||
// player, and in the bad mode the opposite is true. If all 3 pokemon tie, the
|
||||
// other mode will be tried. If they tie again, the pokemon selection is random.
|
||||
// player, and in the bad mode the opposite is true. If all 3 Pokémon tie, the
|
||||
// other mode will be tried. If they tie again, the Pokémon selection is random.
|
||||
int GetDomeTrainerSelectedMons(u16 tournamentTrainerId)
|
||||
{
|
||||
int selectedMonBits;
|
||||
|
@ -4747,7 +4747,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
|||
if (lost[1])
|
||||
gSprites[sInfoCard->spriteIds[1 + arrId]].oam.paletteNum = 3;
|
||||
|
||||
// Draw left trainer's pokemon icons.
|
||||
// Draw left trainer's Pokémon icons.
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
if (trainerIds[0] == TRAINER_PLAYER)
|
||||
|
@ -4787,7 +4787,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
|||
}
|
||||
}
|
||||
|
||||
// Draw right trainer's pokemon icons.
|
||||
// Draw right trainer's Pokémon icons.
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
if (trainerIds[1] == TRAINER_PLAYER)
|
||||
|
@ -5138,7 +5138,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun
|
|||
int movePower = 0;
|
||||
SetFacilityPtrsGetLevel();
|
||||
|
||||
// Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons.
|
||||
// Calc move points of all 4 moves for all 3 Pokémon hitting all 3 target mons.
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
|
|
|
@ -337,7 +337,7 @@ static void GenerateOpponentMons(void)
|
|||
if (gFacilityTrainerMons[monId].species == SPECIES_UNOWN)
|
||||
continue;
|
||||
|
||||
// Ensure none of the opponent's pokemon are the same as the potential rental pokemon for the player
|
||||
// Ensure none of the opponent's Pokémon are the same as the potential rental Pokémon for the player
|
||||
for (j = 0; j < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[monId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
|
@ -346,7 +346,7 @@ static void GenerateOpponentMons(void)
|
|||
if (j != (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons))
|
||||
continue;
|
||||
|
||||
// "High tier" pokemon are only allowed on open level mode
|
||||
// "High tier" Pokémon are only allowed on open level mode
|
||||
if (lvlMode == FRONTIER_LVL_50 && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
|
@ -554,7 +554,7 @@ static void GenerateInitialRentalMons(void)
|
|||
i = 0;
|
||||
while (i != PARTY_SIZE)
|
||||
{
|
||||
if (i < rentalRank) // The more times the player has rented, the more initial rentals are generated from a better set of pokemon
|
||||
if (i < rentalRank) // The more times the player has rented, the more initial rentals are generated from a better set of Pokémon
|
||||
monId = GetFactoryMonId(factoryLvlMode, challengeNum, TRUE);
|
||||
else
|
||||
monId = GetFactoryMonId(factoryLvlMode, challengeNum, FALSE);
|
||||
|
@ -562,7 +562,7 @@ static void GenerateInitialRentalMons(void)
|
|||
if (gFacilityTrainerMons[monId].species == SPECIES_UNOWN)
|
||||
continue;
|
||||
|
||||
// Cannot have two pokemon of the same species.
|
||||
// Cannot have two Pokémon of the same species.
|
||||
for (j = firstMonId; j < firstMonId + i; j++)
|
||||
{
|
||||
u16 existingMonId = monIds[j];
|
||||
|
|
|
@ -32,15 +32,15 @@
|
|||
#include "constants/songs.h"
|
||||
#include "constants/rgb.h"
|
||||
|
||||
// Select_ refers to the first Pokemon selection screen where you choose your initial 3 rental Pokemon.
|
||||
// Swap_ refers to the subsequent selection screens where you can swap a Pokemon with one from the beaten trainer
|
||||
// Select_ refers to the first Pokémon selection screen where you choose your initial 3 rental Pokémon.
|
||||
// Swap_ refers to the subsequent selection screens where you can swap a Pokémon with one from the beaten trainer
|
||||
|
||||
// Note that, generally, "Action" will refer to the immediate actions that can be taken on each screen,
|
||||
// i.e. selecting a pokemon or selecting the Cancel button
|
||||
// i.e. selecting a Pokémon or selecting the Cancel button
|
||||
// The "Options menu" will refer to the popup menu that shows when some actions have been selected
|
||||
|
||||
#define SWAP_PLAYER_SCREEN 0 // The screen where the player selects which of their pokemon to swap away
|
||||
#define SWAP_ENEMY_SCREEN 1 // The screen where the player selects which new pokemon from the defeated party to swap for
|
||||
#define SWAP_PLAYER_SCREEN 0 // The screen where the player selects which of their Pokémon to swap away
|
||||
#define SWAP_ENEMY_SCREEN 1 // The screen where the player selects which new Pokémon from the defeated party to swap for
|
||||
|
||||
#define SELECTABLE_MONS_COUNT 6
|
||||
|
||||
|
@ -89,7 +89,7 @@ struct FactorySelectableMon
|
|||
{
|
||||
u16 monId;
|
||||
u16 ballSpriteId;
|
||||
u8 selectedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon
|
||||
u8 selectedId; // 0 - not selected, 1 - first Pokémon, 2 - second Pokémon, 3 - third Pokémon
|
||||
struct Pokemon monData;
|
||||
};
|
||||
|
||||
|
@ -1060,7 +1060,7 @@ static void SpriteCB_Pokeball(struct Sprite *sprite)
|
|||
{
|
||||
if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(PALTAG_BALL_SELECTED))
|
||||
{
|
||||
// Pokeball selected, do rocking animation
|
||||
// Poké Ball selected, do rocking animation
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
if (sprite->data[0] != 0)
|
||||
|
@ -1084,7 +1084,7 @@ static void SpriteCB_Pokeball(struct Sprite *sprite)
|
|||
}
|
||||
else
|
||||
{
|
||||
// Pokeball not selected, remain still
|
||||
// Poké Ball not selected, remain still
|
||||
StartSpriteAnimIfDifferent(sprite, 0);
|
||||
}
|
||||
}
|
||||
|
@ -1521,7 +1521,7 @@ static void Select_Task_Exit(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
// Handles the Yes/No prompt when confirming the 3 selected rental pokemon
|
||||
// Handles the Yes/No prompt when confirming the 3 selected rental Pokémon
|
||||
static void Select_Task_HandleYesNo(u8 taskId)
|
||||
{
|
||||
if (sFactorySelectScreen->monPicAnimating == TRUE)
|
||||
|
@ -1543,14 +1543,14 @@ static void Select_Task_HandleYesNo(u8 taskId)
|
|||
PlaySE(SE_SELECT);
|
||||
if (sFactorySelectScreen->yesNoCursorPos == 0)
|
||||
{
|
||||
// Selected Yes, confirmed selected pokemon
|
||||
// Selected Yes, confirmed selected Pokémon
|
||||
Select_HideChosenMons();
|
||||
gTasks[taskId].tState = 0;
|
||||
gTasks[taskId].func = Select_Task_Exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Selected No, continue choosing pokemon
|
||||
// Selected No, continue choosing Pokémon
|
||||
Select_ErasePopupMenu(SELECT_WIN_YES_NO);
|
||||
Select_DeclineChosenMons();
|
||||
sFactorySelectScreen->fadeSpeciesNameActive = TRUE;
|
||||
|
@ -1560,7 +1560,7 @@ static void Select_Task_HandleYesNo(u8 taskId)
|
|||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
// Pressed B, Continue choosing pokemon
|
||||
// Pressed B, Continue choosing Pokémon
|
||||
PlaySE(SE_SELECT);
|
||||
Select_ErasePopupMenu(SELECT_WIN_YES_NO);
|
||||
Select_DeclineChosenMons();
|
||||
|
@ -1582,7 +1582,7 @@ static void Select_Task_HandleYesNo(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
// Handles the popup menu that shows when a pokemon is selected
|
||||
// Handles the popup menu that shows when a Pokémon is selected
|
||||
static void Select_Task_HandleMenu(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].tState)
|
||||
|
@ -2416,7 +2416,7 @@ static void Swap_Task_Exit(u8 taskId)
|
|||
{
|
||||
case 0:
|
||||
// Set return value for script
|
||||
// TRUE if player kept their current pokemon
|
||||
// TRUE if player kept their current Pokémon
|
||||
if (sFactorySwapScreen->monSwapped == TRUE)
|
||||
{
|
||||
gTasks[taskId].tState++;
|
||||
|
@ -2631,7 +2631,7 @@ static void Swap_Task_HandleMenu(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
// Handles input on the two main swap screens (choosing a current pokeon to get rid of, and choosing a new pokemon to receive)
|
||||
// Handles input on the two main swap screens (choosing a current pokeon to get rid of, and choosing a new Pokémon to receive)
|
||||
static void Swap_Task_HandleChooseMons(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].tState)
|
||||
|
@ -2646,7 +2646,7 @@ static void Swap_Task_HandleChooseMons(u8 taskId)
|
|||
case STATE_CHOOSE_MONS_HANDLE_INPUT:
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
// Run whatever action is currently selected (a pokeball, the Cancel button, etc.)
|
||||
// Run whatever action is currently selected (a Poké Ball, the Cancel button, etc.)
|
||||
PlaySE(SE_SELECT);
|
||||
sFactorySwapScreen->fadeSpeciesNameActive = FALSE;
|
||||
Swap_PrintMonSpeciesAtFade();
|
||||
|
@ -3554,7 +3554,7 @@ static void Swap_HandleActionCursorChange(u8 cursorId)
|
|||
{
|
||||
if (cursorId < FRONTIER_PARTY_SIZE)
|
||||
{
|
||||
// Cursor is on one of the pokemon
|
||||
// Cursor is on one of the Pokémon
|
||||
gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE;
|
||||
Swap_HideActionButtonHighlights();
|
||||
gSprites[sFactorySwapScreen->cursorSpriteId].x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].x;
|
||||
|
|
|
@ -103,7 +103,7 @@ void FreeBattleSpritesData(void)
|
|||
FREE_AND_SET_NULL(gBattleSpritesDataPtr);
|
||||
}
|
||||
|
||||
// Pokemon chooses move to use in Battle Palace rather than player
|
||||
// Pokémon chooses move to use in Battle Palace rather than player
|
||||
u16 ChooseMoveAndTargetInBattlePalace(u32 battler)
|
||||
{
|
||||
s32 i, var1, var2;
|
||||
|
@ -163,7 +163,7 @@ u16 ChooseMoveAndTargetInBattlePalace(u32 battler)
|
|||
chosenMoveId = BattleAI_ChooseMoveOrAction();
|
||||
}
|
||||
|
||||
// If no moves matched the selected group, pick a new move from groups the pokemon has
|
||||
// If no moves matched the selected group, pick a new move from groups the Pokémon has
|
||||
// In this case the AI is not checked again, so the choice may be worse
|
||||
// If a move is chosen this way, there's a 50% chance that it will be unable to use it anyway
|
||||
if (chosenMoveId == -1 || chosenMoveId >= MAX_MON_MOVES)
|
||||
|
@ -356,7 +356,7 @@ static u16 GetBattlePalaceTarget(u32 battler)
|
|||
return BATTLE_OPPOSITE(battler) << 8;
|
||||
}
|
||||
|
||||
// Wait for the pokemon to finish appearing out from the pokeball on send out
|
||||
// Wait for the Pokémon to finish appearing out from the Poké Ball on send out
|
||||
void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite)
|
||||
{
|
||||
u8 spriteId = sprite->data[1];
|
||||
|
|
|
@ -2924,7 +2924,7 @@ void BufferStringBattle(u16 stringID, u32 battler)
|
|||
}
|
||||
}
|
||||
break;
|
||||
case STRINGID_USEDMOVE: // pokemon used a move msg
|
||||
case STRINGID_USEDMOVE: // Pokémon used a move msg
|
||||
if (gBattleStruct->zmove.active && gBattleStruct->zmove.activeCategory != BATTLE_CATEGORY_STATUS)
|
||||
StringCopy(gBattleTextBuff3, GetZMoveName(gBattleMsgDataPtr->currentMove));
|
||||
else if (IsMaxMove(gBattleMsgDataPtr->currentMove))
|
||||
|
@ -3239,7 +3239,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
|||
{
|
||||
u32 dstID = 0; // if they used dstID, why not use srcID as well?
|
||||
const u8 *toCpy = NULL;
|
||||
// This buffer may hold either the name of a trainer, pokemon, or item.
|
||||
// This buffer may hold either the name of a trainer, Pokémon, or item.
|
||||
u8 text[max(max(max(32, TRAINER_NAME_LENGTH + 1), POKEMON_NAME_LENGTH + 1), ITEM_NAME_LENGTH)];
|
||||
u8 multiplayerId;
|
||||
|
||||
|
|
|
@ -1268,7 +1268,7 @@ static void TryHealMons(u8 healCount)
|
|||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
indices[i] = i;
|
||||
|
||||
// Only 'healCount' number of pokemon will be healed.
|
||||
// Only 'healCount' number of Pokémon will be healed.
|
||||
// The order in which they're (attempted to be) healed is random,
|
||||
Shuffle(indices, FRONTIER_PARTY_SIZE, sizeof(indices[0]));
|
||||
|
||||
|
|
|
@ -4246,7 +4246,7 @@ static void Cmd_getexp(void)
|
|||
|
||||
if (IsTradedMon(&gPlayerParty[*expMonId]))
|
||||
{
|
||||
// check if the pokemon doesn't belong to the player
|
||||
// check if the Pokémon doesn't belong to the player
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && *expMonId >= 3)
|
||||
i = STRINGID_EMPTYSTRING4;
|
||||
else
|
||||
|
@ -5759,7 +5759,7 @@ static void Cmd_moveend(void)
|
|||
}
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
case MOVEEND_NEXT_TARGET: // For moves hitting two opposing Pokemon.
|
||||
case MOVEEND_NEXT_TARGET: // For moves hitting two opposing Pokémon.
|
||||
{
|
||||
u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove);
|
||||
// Set a flag if move hits either target (for throat spray that can't check damage)
|
||||
|
@ -11820,7 +11820,7 @@ static void Cmd_forcerandomswitch(void)
|
|||
{
|
||||
firstMonId = 0;
|
||||
lastMonId = PARTY_SIZE;
|
||||
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one pokemon out in single battles
|
||||
battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one Pokémon out in single battles
|
||||
battler1PartyId = gBattlerPartyIndexes[gBattlerTarget];
|
||||
}
|
||||
|
||||
|
@ -12370,7 +12370,7 @@ static void Cmd_setsubstitute(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games)
|
||||
gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; // one bit value will only work for Pokémon which max hp can go to 1020(which is more than possible in games)
|
||||
if (gBattleMoveDamage == 0)
|
||||
gBattleMoveDamage = 1;
|
||||
|
||||
|
@ -13866,7 +13866,7 @@ static void Cmd_tryswapitems(void)
|
|||
{
|
||||
gBattlescriptCurrInstr = cmd->failInstr;
|
||||
}
|
||||
// can't swap if two pokemon don't have an item
|
||||
// can't swap if two Pokémon don't have an item
|
||||
// or if either of them is an enigma berry or a mail
|
||||
else if ((gBattleMons[gBattlerAttacker].item == ITEM_NONE && gBattleMons[gBattlerTarget].item == ITEM_NONE)
|
||||
|| !CanBattlerGetOrLoseItem(gBattlerAttacker, gBattleMons[gBattlerAttacker].item)
|
||||
|
|
|
@ -111,7 +111,7 @@ EWRAM_DATA static u8 *sTrainerBBattleScriptRetAddr = NULL;
|
|||
EWRAM_DATA static bool8 sShouldCheckTrainerBScript = FALSE;
|
||||
EWRAM_DATA static u8 sNoOfPossibleTrainerRetScripts = 0;
|
||||
|
||||
// The first transition is used if the enemy pokemon are lower level than our pokemon.
|
||||
// The first transition is used if the enemy Pokémon are lower level than our Pokémon.
|
||||
// Otherwise, the second transition is used.
|
||||
static const u8 sBattleTransitionTable_Wild[][2] =
|
||||
{
|
||||
|
@ -908,7 +908,7 @@ u8 GetTrainerBattleTransition(void)
|
|||
return B_TRANSITION_AQUA;
|
||||
|
||||
if (gTrainers[gTrainerBattleOpponent_A].doubleBattle == TRUE)
|
||||
minPartyCount = 2; // double battles always at least have 2 pokemon.
|
||||
minPartyCount = 2; // double battles always at least have 2 Pokémon.
|
||||
else
|
||||
minPartyCount = 1;
|
||||
|
||||
|
|
|
@ -309,7 +309,7 @@ static void GenerateInitialRentalMons(void)
|
|||
i = 0;
|
||||
while (i != PARTY_SIZE)
|
||||
{
|
||||
// Cannot have two pokemon of the same species.
|
||||
// Cannot have two Pokémon of the same species.
|
||||
monSetId = Random() % NUM_SLATEPORT_TENT_MONS;
|
||||
for (j = firstMonId; j < firstMonId + i; j++)
|
||||
{
|
||||
|
@ -390,7 +390,7 @@ static void GenerateOpponentMons(void)
|
|||
{
|
||||
sRandMonId = monSet[Random() % numMons];
|
||||
|
||||
// Ensure none of the opponent's pokemon are the same as the potential rental pokemon for the player
|
||||
// Ensure none of the opponent's Pokémon are the same as the potential rental Pokémon for the player
|
||||
for (j = 0; j < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[sRandMonId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
|
|
|
@ -1646,8 +1646,8 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
}
|
||||
|
||||
// Regular battle frontier trainer.
|
||||
// Attempt to fill the trainer's party with random Pokemon until 3 have been
|
||||
// successfully chosen. The trainer's party may not have duplicate pokemon species
|
||||
// Attempt to fill the trainer's party with random Pokémon until 3 have been
|
||||
// successfully chosen. The trainer's party may not have duplicate Pokémon species
|
||||
// or duplicate held items.
|
||||
for (bfMonCount = 0; monSet[bfMonCount] != 0xFFFF; bfMonCount++)
|
||||
;
|
||||
|
@ -1657,12 +1657,12 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
{
|
||||
u16 monId = monSet[Random() % bfMonCount];
|
||||
|
||||
// "High tier" pokemon are only allowed on open level mode
|
||||
// "High tier" Pokémon are only allowed on open level mode
|
||||
// 20 is not a possible value for level here
|
||||
if ((level == FRONTIER_MAX_LEVEL_50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
// Ensure this pokemon species isn't a duplicate.
|
||||
// Ensure this Pokémon species isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
|
||||
|
@ -1681,7 +1681,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
if (j != i + firstMonId)
|
||||
continue;
|
||||
|
||||
// Ensure this exact pokemon index isn't a duplicate. This check doesn't seem necessary
|
||||
// Ensure this exact Pokémon index isn't a duplicate. This check doesn't seem necessary
|
||||
// because the species and held items were already checked directly above.
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
|
@ -1693,7 +1693,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
|
||||
chosenMonIndices[i] = monId;
|
||||
|
||||
// Place the chosen pokemon into the trainer's party.
|
||||
// Place the chosen Pokémon into the trainer's party.
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId],
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
|
@ -1703,7 +1703,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
otID);
|
||||
|
||||
friendship = MAX_FRIENDSHIP;
|
||||
// Give the chosen pokemon its specified moves.
|
||||
// Give the chosen Pokémon its specified moves.
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j);
|
||||
|
@ -1714,7 +1714,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
|
||||
// The pokemon was successfully added to the trainer's party, so it's safe to move on to
|
||||
// The Pokémon was successfully added to the trainer's party, so it's safe to move on to
|
||||
// the next party slot.
|
||||
i++;
|
||||
}
|
||||
|
@ -1770,7 +1770,7 @@ u16 GetRandomFrontierMonFromSet(u16 trainerId)
|
|||
|
||||
do
|
||||
{
|
||||
// "High tier" pokemon are only allowed on open level mode
|
||||
// "High tier" Pokémon are only allowed on open level mode
|
||||
// 20 is not a possible value for level here
|
||||
monId = monSet[Random() % numMons];
|
||||
} while((level == FRONTIER_MAX_LEVEL_50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER);
|
||||
|
@ -2443,8 +2443,8 @@ static void GetPotentialPartnerMoveAndSpecies(u16 trainerId, u16 monId)
|
|||
// These partners can be an NPC or a former/record-mixed Apprentice
|
||||
// When talked to, their response consists of:
|
||||
// PARTNER_MSGID_INTRO - A greeting
|
||||
// PARTNER_MSGID_MON1 - Naming one pokemon on their team, and a move it has
|
||||
// PARTNER_MSGID_MON2_ASK - Naming a second pokemon on their team, a move it has, and asking if they'd like to be their partner
|
||||
// PARTNER_MSGID_MON1 - Naming one Pokémon on their team, and a move it has
|
||||
// PARTNER_MSGID_MON2_ASK - Naming a second Pokémon on their team, a move it has, and asking if they'd like to be their partner
|
||||
// PARTNER_MSGID_ACCEPT - If the player agrees to be their partner
|
||||
// PARTNER_MSGID_REJECT - If the player declines to be their partner
|
||||
static void ShowPartnerCandidateMessage(void)
|
||||
|
@ -2762,7 +2762,7 @@ static void AwardBattleTowerRibbons(void)
|
|||
#ifdef BUGFIX
|
||||
struct RibbonCounter ribbons[MAX_FRONTIER_PARTY_SIZE];
|
||||
#else
|
||||
struct RibbonCounter ribbons[3]; // BUG: 4 Pokemon can receive ribbons in a double battle mode.
|
||||
struct RibbonCounter ribbons[3]; // BUG: 4 Pokémon can receive ribbons in a double battle mode.
|
||||
#endif
|
||||
u8 ribbonType = 0;
|
||||
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
|
@ -3458,7 +3458,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
{
|
||||
u16 monId = monSet[Random() % bfMonCount];
|
||||
|
||||
// Ensure this pokemon species isn't a duplicate.
|
||||
// Ensure this Pokémon species isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
|
||||
|
@ -3477,7 +3477,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
if (j != i + firstMonId)
|
||||
continue;
|
||||
|
||||
// Ensure this exact pokemon index isn't a duplicate. This check doesn't seem necessary
|
||||
// Ensure this exact Pokémon index isn't a duplicate. This check doesn't seem necessary
|
||||
// because the species and held items were already checked directly above.
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
|
@ -3489,7 +3489,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
|
||||
chosenMonIndices[i] = monId;
|
||||
|
||||
// Place the chosen pokemon into the trainer's party.
|
||||
// Place the chosen Pokémon into the trainer's party.
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId],
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
|
@ -3499,7 +3499,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
otID);
|
||||
|
||||
friendship = MAX_FRIENDSHIP;
|
||||
// Give the chosen pokemon its specified moves.
|
||||
// Give the chosen Pokémon its specified moves.
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j);
|
||||
|
@ -3510,7 +3510,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
|||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
|
||||
// The pokemon was successfully added to the trainer's party, so it's safe to move on to
|
||||
// The Pokémon was successfully added to the trainer's party, so it's safe to move on to
|
||||
// the next party slot.
|
||||
i++;
|
||||
}
|
||||
|
|
|
@ -699,7 +699,7 @@ static const u16 *const sPointsArray[] =
|
|||
};
|
||||
|
||||
// Points will always be calculated for these messages
|
||||
// even if current pokemon does not have corresponding move
|
||||
// even if current Pokémon does not have corresponding move
|
||||
static const u16 sSpecialBattleStrings[] =
|
||||
{
|
||||
STRINGID_PKMNPERISHCOUNTFELL, STRINGID_PKMNWISHCAMETRUE, STRINGID_PKMNLOSTPPGRUDGE,
|
||||
|
|
|
@ -2870,7 +2870,7 @@ u8 DoBattlerEndTurnEffects(void)
|
|||
{
|
||||
MAGIC_GUARD_CHECK;
|
||||
// R/S does not perform this sleep check, which causes the nightmare effect to
|
||||
// persist even after the affected Pokemon has been awakened by Shed Skin.
|
||||
// persist even after the affected Pokémon has been awakened by Shed Skin.
|
||||
if (gBattleMons[battler].status1 & STATUS1_SLEEP)
|
||||
{
|
||||
gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 4;
|
||||
|
@ -2959,7 +2959,7 @@ u8 DoBattlerEndTurnEffects(void)
|
|||
}
|
||||
if (gBattlerAttacker != gBattlersCount)
|
||||
{
|
||||
effect = 2; // a pokemon was awaken
|
||||
effect = 2; // a Pokémon was awaken
|
||||
break;
|
||||
}
|
||||
else
|
||||
|
@ -3023,7 +3023,7 @@ u8 DoBattlerEndTurnEffects(void)
|
|||
if (gDisableStructs[battler].disabledMove == gBattleMons[battler].moves[i])
|
||||
break;
|
||||
}
|
||||
if (i == MAX_MON_MOVES) // pokemon does not have the disabled move anymore
|
||||
if (i == MAX_MON_MOVES) // Pokémon does not have the disabled move anymore
|
||||
{
|
||||
gDisableStructs[battler].disabledMove = 0;
|
||||
gDisableStructs[battler].disableTimer = 0;
|
||||
|
@ -3040,7 +3040,7 @@ u8 DoBattlerEndTurnEffects(void)
|
|||
case ENDTURN_ENCORE: // encore
|
||||
if (gDisableStructs[battler].encoreTimer != 0)
|
||||
{
|
||||
if (gBattleMons[battler].moves[gDisableStructs[battler].encoredMovePos] != gDisableStructs[battler].encoredMove) // pokemon does not have the encored move anymore
|
||||
if (gBattleMons[battler].moves[gDisableStructs[battler].encoredMovePos] != gDisableStructs[battler].encoredMove) // Pokémon does not have the encored move anymore
|
||||
{
|
||||
gDisableStructs[battler].encoredMove = 0;
|
||||
gDisableStructs[battler].encoreTimer = 0;
|
||||
|
@ -6146,7 +6146,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
|||
if (gBattleMons[i].ability == ABILITY_TRACE && (gBattleResources->flags->flags[i] & RESOURCE_FLAG_TRACED))
|
||||
{
|
||||
u32 chosenTarget;
|
||||
u32 side = (BATTLE_OPPOSITE(GetBattlerPosition(i))) & BIT_SIDE; // side of the opposing pokemon
|
||||
u32 side = (BATTLE_OPPOSITE(GetBattlerPosition(i))) & BIT_SIDE; // side of the opposing Pokémon
|
||||
u32 target1 = GetBattlerAtPosition(side);
|
||||
u32 target2 = GetBattlerAtPosition(side + BIT_FLANK);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ bool16 ScriptGetPokedexInfo(void)
|
|||
return IsNationalPokedexEnabled();
|
||||
}
|
||||
|
||||
// This shows your Hoenn Pokedex rating and not your National Dex.
|
||||
// This shows your Hoenn Pokédex rating and not your National Dex.
|
||||
const u8 *GetPokedexRatingText(u16 count)
|
||||
{
|
||||
if (count < 10)
|
||||
|
|
|
@ -194,7 +194,7 @@ static void SwapMoveDescAndContestTilemaps(void);
|
|||
#define CONTESTANT_TEXT_COLOR_START 10
|
||||
|
||||
enum {
|
||||
// The "{Pokemon Name} / {Trainer Name}" windows.
|
||||
// The "{Pokémon Name} / {Trainer Name}" windows.
|
||||
WIN_CONTESTANT0_NAME,
|
||||
WIN_CONTESTANT1_NAME,
|
||||
WIN_CONTESTANT2_NAME,
|
||||
|
@ -3429,11 +3429,11 @@ static void RankContestants(void)
|
|||
|
||||
// For each contestant, find the best rank with their point total.
|
||||
// Normally, each point total is different, and this will output the
|
||||
// rankings as expected. However, if two pokemon are tied, then they
|
||||
// rankings as expected. However, if two Pokémon are tied, then they
|
||||
// both get the best rank for that point total.
|
||||
//
|
||||
// For example if the point totals are [100, 80, 80, 50], the ranks will
|
||||
// be [1, 2, 2, 4]. The pokemon with a point total of 80 stop looking
|
||||
// be [1, 2, 2, 4]. The Pokémon with a point total of 80 stop looking
|
||||
// when they see the first 80 in the array, so they both share the '2'
|
||||
// rank.
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
|
@ -4585,10 +4585,10 @@ void MakeContestantNervous(u8 p)
|
|||
// ContestantStatus::nextTurnOrder field of each contestant. The remaining
|
||||
// turns are assigned such that the turn order will reverse.
|
||||
//
|
||||
// For example, if no pokemon have a defined nextTurnOrder, then the 4th
|
||||
// For example, if no Pokémon have a defined nextTurnOrder, then the 4th
|
||||
// will become 1st, the 3rd will become 2nd, etc.
|
||||
//
|
||||
// Note: This function assumes that multiple pokemon cannot have the same
|
||||
// Note: This function assumes that multiple Pokémon cannot have the same
|
||||
// nextTurnOrder value.
|
||||
static void ApplyNextTurnOrder(void)
|
||||
{
|
||||
|
|
|
@ -64,12 +64,12 @@ enum {
|
|||
|
||||
struct CreditsData
|
||||
{
|
||||
u16 monToShow[NUM_MON_SLIDES]; // List of Pokemon species ids that will show during the credits
|
||||
u16 monToShow[NUM_MON_SLIDES]; // List of Pokémon species ids that will show during the credits
|
||||
u16 imgCounter; //how many mon images have been shown
|
||||
u16 nextImgPos; //if the next image spawns left/center/right
|
||||
u16 currShownMon; //index into monToShow
|
||||
u16 numMonToShow; //number of pokemon to show, always NUM_MON_SLIDES after determine function
|
||||
u16 caughtMonIds[NATIONAL_DEX_COUNT]; //temporary location to hold a condensed array of all caught pokemon
|
||||
u16 numMonToShow; //number of Pokémon to show, always NUM_MON_SLIDES after determine function
|
||||
u16 caughtMonIds[NATIONAL_DEX_COUNT]; //temporary location to hold a condensed array of all caught Pokémon
|
||||
u16 numCaughtMon; //count of filled spaces in caughtMonIds
|
||||
u16 unused[7];
|
||||
};
|
||||
|
@ -1556,8 +1556,8 @@ static void DeterminePokemonToShow(void)
|
|||
u16 dexNum;
|
||||
u16 j;
|
||||
|
||||
// Go through the Pokedex, and anything that has gotten caught we put into our massive array.
|
||||
// This basically packs all of the caught pokemon into the front of the array
|
||||
// Go through the Pokédex, and anything that has gotten caught we put into our massive array.
|
||||
// This basically packs all of the caught Pokémon into the front of the array
|
||||
for (dexNum = 1, j = 0; dexNum < NATIONAL_DEX_COUNT; dexNum++)
|
||||
{
|
||||
if (GetSetPokedexFlag(dexNum, FLAG_GET_CAUGHT))
|
||||
|
@ -1571,14 +1571,14 @@ static void DeterminePokemonToShow(void)
|
|||
for (dexNum = j; dexNum < NATIONAL_DEX_COUNT; dexNum++)
|
||||
sCreditsData->caughtMonIds[dexNum] = NATIONAL_DEX_NONE;
|
||||
|
||||
// Cap the number of pokemon we care about to NUM_MON_SLIDES, the max we show in the credits scene (-1 for the starter)
|
||||
// Cap the number of Pokémon we care about to NUM_MON_SLIDES, the max we show in the credits scene (-1 for the starter)
|
||||
sCreditsData->numCaughtMon = j;
|
||||
if (sCreditsData->numCaughtMon < NUM_MON_SLIDES)
|
||||
sCreditsData->numMonToShow = j;
|
||||
else
|
||||
sCreditsData->numMonToShow = NUM_MON_SLIDES;
|
||||
|
||||
// Loop through our list of caught pokemon and select randomly from it to fill the images to show
|
||||
// Loop through our list of caught Pokémon and select randomly from it to fill the images to show
|
||||
j = 0;
|
||||
do
|
||||
{
|
||||
|
@ -1599,7 +1599,7 @@ static void DeterminePokemonToShow(void)
|
|||
}
|
||||
while (sCreditsData->numCaughtMon != 0 && j < NUM_MON_SLIDES);
|
||||
|
||||
// If we don't have enough pokemon in the dex to fill everything, copy the selected mon into the end of the array, so it loops
|
||||
// If we don't have enough Pokémon in the dex to fill everything, copy the selected mon into the end of the array, so it loops
|
||||
if (sCreditsData->numMonToShow < NUM_MON_SLIDES)
|
||||
{
|
||||
for (j = sCreditsData->numMonToShow, page = 0; j < NUM_MON_SLIDES; j++)
|
||||
|
@ -1610,7 +1610,7 @@ static void DeterminePokemonToShow(void)
|
|||
if (page == sCreditsData->numMonToShow)
|
||||
page = 0;
|
||||
}
|
||||
// Ensure the last pokemon is our starter
|
||||
// Ensure the last Pokémon is our starter
|
||||
sCreditsData->monToShow[NUM_MON_SLIDES - 1] = starter;
|
||||
}
|
||||
else
|
||||
|
@ -1618,7 +1618,7 @@ static void DeterminePokemonToShow(void)
|
|||
// Check to see if our starter has already appeared in this list, break if it has
|
||||
for (dexNum = 0; sCreditsData->monToShow[dexNum] != starter && dexNum < NUM_MON_SLIDES; dexNum++);
|
||||
|
||||
// If it has, swap it with the last pokemon, to ensure our starter is the last image
|
||||
// If it has, swap it with the last Pokémon, to ensure our starter is the last image
|
||||
if (dexNum < sCreditsData->numMonToShow - 1)
|
||||
{
|
||||
sCreditsData->monToShow[dexNum] = sCreditsData->monToShow[NUM_MON_SLIDES-1];
|
||||
|
@ -1626,7 +1626,7 @@ static void DeterminePokemonToShow(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
// Ensure the last pokemon is our starter
|
||||
// Ensure the last Pokémon is our starter
|
||||
sCreditsData->monToShow[NUM_MON_SLIDES - 1] = starter;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4172,7 +4172,7 @@
|
|||
FRONTIER_MON_##lastmon##_10,\
|
||||
-1
|
||||
|
||||
// The strong Psychic M/F trainers all use the below pokemon
|
||||
// The strong Psychic M/F trainers all use the below Pokémon
|
||||
// Additionally they use 1 of 3 legendary trios, and Latios or Latias depending on gender
|
||||
#define FRONTIER_MONS_PSYCHIC_2(lati, legend1, legend2, legend3) \
|
||||
FRONTIER_MON_WOBBUFFET_1, \
|
||||
|
|
|
@ -64,7 +64,7 @@ static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] =
|
|||
|
||||
// Each layout array has an array for each of the 6 party slots
|
||||
// The array for each slot has the sprite coords of its various sprites in the following order
|
||||
// Pokemon icon (x, y), held item (x, y), status condition (x, y), menu pokeball (x, y)
|
||||
// Pokémon icon (x, y), held item (x, y), status condition (x, y), menu Poké Ball (x, y)
|
||||
static const u8 sPartyMenuSpriteCoords[PARTY_LAYOUT_COUNT][PARTY_SIZE][4 * 2] =
|
||||
{
|
||||
[PARTY_LAYOUT_SINGLE] =
|
||||
|
@ -953,7 +953,7 @@ static const struct CompressedSpritePalette sSpritePalette_MenuPokeball =
|
|||
gPartyMenuPokeball_Pal, TAG_POKEBALL
|
||||
};
|
||||
|
||||
// Used for the pokeball sprite on each party slot / Cancel button
|
||||
// Used for the Poké Ball sprite on each party slot / Cancel button
|
||||
static const struct SpriteTemplate sSpriteTemplate_MenuPokeball =
|
||||
{
|
||||
.tileTag = TAG_POKEBALL,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#define SQUARE(n)(n * n)
|
||||
#define CUBE(n)(n * n * n)
|
||||
#define SQUARE(n)((n) * (n))
|
||||
#define CUBE(n)((n) * (n) * (n))
|
||||
|
||||
#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4
|
||||
#define EXP_FAST(n)((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5
|
||||
|
|
|
@ -250,10 +250,10 @@ void StoreSelectedPokemonInDaycare(void)
|
|||
StorePokemonInEmptyDaycareSlot(&gPlayerParty[monId], &gSaveBlock1Ptr->daycare);
|
||||
}
|
||||
|
||||
// Shifts the second daycare pokemon slot into the first slot.
|
||||
// Shifts the second daycare Pokémon slot into the first slot.
|
||||
static void ShiftDaycareSlots(struct DayCare *daycare)
|
||||
{
|
||||
// This condition is only satisfied when the player takes out the first pokemon from the daycare.
|
||||
// This condition is only satisfied when the player takes out the first Pokémon from the daycare.
|
||||
if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != SPECIES_NONE
|
||||
&& GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
{
|
||||
|
@ -738,7 +738,7 @@ static void InheritAbility(struct Pokemon *egg, struct BoxPokemon *father, struc
|
|||
}
|
||||
}
|
||||
|
||||
// Counts the number of egg moves a pokemon learns and stores the moves in
|
||||
// Counts the number of egg moves a Pokémon learns and stores the moves in
|
||||
// the given array.
|
||||
static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
|
||||
{
|
||||
|
|
|
@ -259,7 +259,7 @@ static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/field_effects/pics/
|
|||
static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/field_effects/pics/hof_monitor_small.4bpp");
|
||||
static const u16 sHofMonitor_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/hof_monitor.gbapal");
|
||||
|
||||
// Graphics for the lights streaking past your Pokemon when it uses a field move.
|
||||
// Graphics for the lights streaking past your Pokémon when it uses a field move.
|
||||
static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/field_effects/pics/field_move_streaks.4bpp");
|
||||
static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks.gbapal");
|
||||
static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks.bin");
|
||||
|
|
|
@ -84,7 +84,7 @@ bool8 ShowPokenavFieldMessage(const u8 *str)
|
|||
StringExpandPlaceholders(gStringVar4, str);
|
||||
CreateTask(Task_HidePokenavMessageWhenDone, 0);
|
||||
StartMatchCallFromScript(str);
|
||||
sFieldMessageBoxMode = 2;
|
||||
sFieldMessageBoxMode = FIELD_MESSAGE_BOX_NORMAL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -308,7 +308,7 @@ static const struct SpriteTemplate sSpriteTemplate_RecordMixLights =
|
|||
.callback = SpriteCallbackDummy,
|
||||
};
|
||||
|
||||
// For accessing pokemon storage PC or the Hall of Fame PC
|
||||
// For accessing Pokémon storage PC or the Hall of Fame PC
|
||||
void ComputerScreenOpenEffect(u16 increment, u16 unused, u8 priority)
|
||||
{
|
||||
CreateComputerScreenEffectTask(Task_ComputerScreenOpenEffect, increment, unused, priority);
|
||||
|
|
|
@ -326,7 +326,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ
|
|||
},
|
||||
[FRONTIER_FACILITY_FACTORY] =
|
||||
{
|
||||
// Because Factory's pokemon are random, this facility's Brain also uses random pokemon.
|
||||
// Because Factory's Pokémon are random, this facility's Brain also uses random Pokémon.
|
||||
// What is interesting, this team is actually the one Steven uses in the multi tag battle alongside the player.
|
||||
{
|
||||
{
|
||||
|
@ -1947,7 +1947,7 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL
|
|||
|
||||
// gSpecialVar_Result is the level mode before and after calls to this function
|
||||
// gSpecialVar_0x8004 is used to store the return value instead (TRUE if there are insufficient eligible mons)
|
||||
// The names of ineligible pokemon that have been caught are also buffered to print
|
||||
// The names of ineligible Pokémon that have been caught are also buffered to print
|
||||
static void CheckPartyIneligibility(void)
|
||||
{
|
||||
u16 speciesArray[PARTY_SIZE];
|
||||
|
|
|
@ -689,7 +689,7 @@ const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hpb
|
|||
"graphics/battle_interface/misc_frameend.4bpp",
|
||||
"graphics/battle_interface/ball_display.4bpp",
|
||||
"graphics/battle_interface/ball_caught_indicator.4bpp",
|
||||
"graphics/battle_interface/status2.4bpp", // these three duplicate sets of graphics are for the opponent/partner pokemon
|
||||
"graphics/battle_interface/status2.4bpp", // these three duplicate sets of graphics are for the opponent/partner Pokémon
|
||||
"graphics/battle_interface/status3.4bpp",
|
||||
"graphics/battle_interface/status4.4bpp",
|
||||
"graphics/battle_interface/healthbox_doubles_frameend.4bpp",
|
||||
|
@ -1279,7 +1279,7 @@ const u32 gDomeTourneyLineUp_Tilemap[] = INCBIN_U32("graphics/battle_frontier/to
|
|||
const u32 gDomeTourneyInfoCard_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card.4bpp.lz");
|
||||
const u32 gDomeTourneyInfoCard_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_tilemap.bin.lz");
|
||||
const u32 gDomeTourneyInfoCardBg_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_bg.bin.lz");
|
||||
const u32 gDomeTourneyTreeButtons_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.4bpp.lz"); // exit/cancel and pokeball buttons
|
||||
const u32 gDomeTourneyTreeButtons_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.4bpp.lz"); // exit/cancel and Poké Ball buttons
|
||||
const u32 gDomeTourneyTree_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_tree.gbapal.lz");
|
||||
const u32 gDomeTourneyTreeButtons_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.gbapal.lz");
|
||||
const u32 gDomeTourneyMatchCardBg_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_match_card_bg.gbapal.lz");
|
||||
|
@ -1731,7 +1731,7 @@ const u16 gFrontierPassMapCursor_Pal[] = INCBIN_U16("graphics/frontier_pass/map_
|
|||
const u16 gFrontierPassMedalsSilver_Pal[] = INCBIN_U16("graphics/frontier_pass/silver.gbapal");
|
||||
const u16 gFrontierPassMedalsGold_Pal[] = INCBIN_U16("graphics/frontier_pass/gold.gbapal");
|
||||
|
||||
// Pokedex
|
||||
// Pokédex
|
||||
const u16 gPokedexBgHoenn_Pal[] = INCBIN_U16("graphics/pokedex/bg_hoenn.gbapal");
|
||||
const u16 gPokedexCaughtScreen_Pal[] = INCBIN_U16("graphics/pokedex/caught_screen.gbapal");
|
||||
const u16 gPokedexSearchResults_Pal[] = INCBIN_U16("graphics/pokedex/search_results_bg.gbapal");
|
||||
|
@ -1785,7 +1785,7 @@ const u16 gContestResultsTitle_Smart_Tilemap[] = INCBIN_U16("graphics/contest/r
|
|||
const u16 gContestResultsTitle_Tough_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_tough.bin");
|
||||
const u16 gContestResultsTitle_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title.bin");
|
||||
|
||||
// pokenav
|
||||
// PokéNav
|
||||
|
||||
const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph.gbapal");
|
||||
const u32 gPokenavCondition_Gfx[] = INCBIN_U32("graphics/pokenav/condition/graph.4bpp.lz");
|
||||
|
@ -1886,7 +1886,7 @@ const u32 gKantoTrainerCardFront_Tilemap[] = INCBIN_U32("graphics/trainer_card/f
|
|||
const u32 gKantoTrainerCardBack_Tilemap[] = INCBIN_U32("graphics/trainer_card/frlg/back.bin.lz");
|
||||
const u32 gKantoTrainerCardFrontLink_Tilemap[] = INCBIN_U32("graphics/trainer_card/frlg/front_link.bin.lz");
|
||||
|
||||
// pokemon storage system
|
||||
// Pokémon storage system
|
||||
|
||||
const u32 gStorageSystemMenu_Gfx[] = INCBIN_U32("graphics/pokemon_storage/menu.4bpp.lz");
|
||||
const u16 gStorageSystemPartyMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/party_menu.gbapal");
|
||||
|
|
|
@ -625,7 +625,7 @@ static void Task_Hof_TryDisplayAnotherMon(u8 taskId)
|
|||
else
|
||||
{
|
||||
sHofFadePalettes |= (0x10000 << gSprites[gTasks[taskId].tMonSpriteId(currPokeID)].oam.paletteNum);
|
||||
if (gTasks[taskId].tDisplayedMonId < PARTY_SIZE - 1 && currMon[1].species != SPECIES_NONE) // there is another pokemon to display
|
||||
if (gTasks[taskId].tDisplayedMonId < PARTY_SIZE - 1 && currMon[1].species != SPECIES_NONE) // there is another Pokémon to display
|
||||
{
|
||||
gTasks[taskId].tDisplayedMonId++;
|
||||
BeginNormalPaletteFade(sHofFadePalettes, 0, 12, 12, RGB(16, 29, 24));
|
||||
|
|
|
@ -73,7 +73,7 @@ void PickLotteryCornerTicket(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
else // pokemon are always arranged from populated spots first to unpopulated, so the moment a NONE species is found, that's the end of the list.
|
||||
else // Pokémon are always arranged from populated spots first to unpopulated, so the moment a NONE species is found, that's the end of the list.
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -369,7 +369,7 @@ static void VBlankCB_MoveRelearner(void)
|
|||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
// Script arguments: The pokemon to teach is in VAR_0x8004
|
||||
// Script arguments: The Pokémon to teach is in VAR_0x8004
|
||||
void TeachMoveRelearnerMove(void)
|
||||
{
|
||||
LockPlayerFieldControls();
|
||||
|
|
|
@ -1327,7 +1327,7 @@ void UpdateAmbientCry(s16 *state, u16 *delayCounter)
|
|||
}
|
||||
}
|
||||
// Ambient cries after the first one take between 1200-2399 frames (~20-40 seconds)
|
||||
// If the player has a pokemon with the ability Swarm in their party, the time is halved to 600-1199 frames (~10-20 seconds)
|
||||
// If the player has a Pokémon with the ability Swarm in their party, the time is halved to 600-1199 frames (~10-20 seconds)
|
||||
*delayCounter = ((Random() % 1200) + 1200) / divBy;
|
||||
*state = AMB_CRY_WAIT;
|
||||
break;
|
||||
|
@ -1339,7 +1339,7 @@ void UpdateAmbientCry(s16 *state, u16 *delayCounter)
|
|||
}
|
||||
break;
|
||||
case AMB_CRY_IDLE:
|
||||
// No land/water pokemon on this map
|
||||
// No land/water Pokémon on this map
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1350,7 +1350,7 @@ static void ChooseAmbientCrySpecies(void)
|
|||
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE130))
|
||||
&& !IsMirageIslandPresent())
|
||||
{
|
||||
// Only play water pokemon cries on this route
|
||||
// Only play water Pokémon cries on this route
|
||||
// when Mirage Island is not present
|
||||
sIsAmbientCryWaterMon = TRUE;
|
||||
sAmbientCrySpecies = GetLocalWaterMon();
|
||||
|
|
|
@ -180,7 +180,7 @@ enum {
|
|||
};
|
||||
|
||||
enum {
|
||||
// Window ids 0-5 are implicitly assigned to each party pokemon in InitPartyMenuBoxes
|
||||
// Window ids 0-5 are implicitly assigned to each party Pokémon in InitPartyMenuBoxes
|
||||
WIN_MSG = PARTY_SIZE,
|
||||
};
|
||||
|
||||
|
@ -7108,7 +7108,7 @@ static bool8 TrySwitchInPokemon(void)
|
|||
u8 newSlot;
|
||||
u8 i;
|
||||
|
||||
// In a multi battle, slots 1, 4, and 5 are the partner's pokemon
|
||||
// In a multi battle, slots 1, 4, and 5 are the partner's Pokémon
|
||||
if (IsMultiBattle() == TRUE && (slot == 1 || slot == 4 || slot == 5))
|
||||
{
|
||||
StringCopy(gStringVar1, GetTrainerPartnerName());
|
||||
|
|
|
@ -1204,10 +1204,10 @@ static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 spritePalNum, u
|
|||
return LaunchBallFadeMonTask(unFadeLater, spritePalNum, selectedPalettes, BALL_POKE);
|
||||
}
|
||||
|
||||
// Sprite data for the pokemon
|
||||
// Sprite data for the Pokémon
|
||||
#define sSpecies data[7]
|
||||
|
||||
// Sprite data for the pokeball
|
||||
// Sprite data for the Poké Ball
|
||||
#define sMonSpriteId data[0]
|
||||
#define sDelay data[1]
|
||||
#define sMonPalNum data[2]
|
||||
|
@ -1217,7 +1217,7 @@ static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 spritePalNum, u
|
|||
#define sFinalMonY data[6]
|
||||
#define sTrigIdx data[7]
|
||||
|
||||
// Pokeball in Birch intro, and when receiving via trade
|
||||
// Poké Ball in Birch intro, and when receiving via trade
|
||||
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, u16 species)
|
||||
{
|
||||
u8 spriteId;
|
||||
|
|
|
@ -1765,7 +1765,7 @@ static void Task_HandlePokedexStartMenuInput(u8 taskId)
|
|||
CreateMonSpritesAtPos(sPokedexView->selectedPokemon, 0xE);
|
||||
gMain.newKeys |= START_BUTTON; //Exit menu
|
||||
break;
|
||||
case 3: //CLOSE POKEDEX
|
||||
case 3: //CLOSE POKéDEX
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
|
||||
gTasks[taskId].func = Task_ClosePokedex;
|
||||
PlaySE(SE_PC_OFF);
|
||||
|
@ -1965,12 +1965,12 @@ static void Task_HandleSearchResultsStartMenuInput(u8 taskId)
|
|||
CreateMonSpritesAtPos(sPokedexView->selectedPokemon, 0xE);
|
||||
gMain.newKeys |= START_BUTTON;
|
||||
break;
|
||||
case 3: //BACK TO POKEDEX
|
||||
case 3: //BACK TO POKéDEX
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
|
||||
gTasks[taskId].func = Task_ReturnToPokedexFromSearchResults;
|
||||
PlaySE(SE_TRUCK_DOOR);
|
||||
break;
|
||||
case 4: //CLOSE POKEDEX
|
||||
case 4: //CLOSE POKéDEX
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
|
||||
gTasks[taskId].func = Task_ClosePokedexFromSearchResultsStartMenu;
|
||||
PlaySE(SE_PC_OFF);
|
||||
|
@ -2056,7 +2056,7 @@ static void Task_ClosePokedexFromSearchResultsStartMenu(u8 taskId)
|
|||
|
||||
#undef tLoadScreenTaskId
|
||||
|
||||
// For loading main pokedex page or pokedex search results
|
||||
// For loading main pokedex page or Pokédex search results
|
||||
static bool8 LoadPokedexListPage(u8 page)
|
||||
{
|
||||
switch (gMain.state)
|
||||
|
|
|
@ -201,7 +201,7 @@ enum {
|
|||
CURSOR_AREA_IN_BOX,
|
||||
CURSOR_AREA_IN_PARTY,
|
||||
CURSOR_AREA_BOX_TITLE,
|
||||
CURSOR_AREA_BUTTONS, // Party Pokemon and Close Box
|
||||
CURSOR_AREA_BUTTONS, // Party Pokémon and Close Box
|
||||
};
|
||||
#define CURSOR_AREA_IN_HAND CURSOR_AREA_BOX_TITLE // Alt name for cursor area used by Move Items
|
||||
|
||||
|
|
|
@ -91,13 +91,13 @@ enum {
|
|||
#define PSS_LABEL_WINDOW_PORTRAIT_SPECIES 19 // The lower name
|
||||
#define PSS_LABEL_WINDOW_END 20
|
||||
|
||||
// Dynamic fields for the Pokemon Info page
|
||||
// Dynamic fields for the Pokémon Info page
|
||||
#define PSS_DATA_WINDOW_INFO_ORIGINAL_TRAINER 0
|
||||
#define PSS_DATA_WINDOW_INFO_ID 1
|
||||
#define PSS_DATA_WINDOW_INFO_ABILITY 2
|
||||
#define PSS_DATA_WINDOW_INFO_MEMO 3
|
||||
|
||||
// Dynamic fields for the Pokemon Skills page
|
||||
// Dynamic fields for the Pokémon Skills page
|
||||
#define PSS_DATA_WINDOW_SKILLS_HELD_ITEM 0
|
||||
#define PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT 1
|
||||
#define PSS_DATA_WINDOW_SKILLS_STATS_LEFT 2 // HP, Attack, Defense
|
||||
|
@ -180,7 +180,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData
|
|||
u8 currPageIndex;
|
||||
u8 minPageIndex;
|
||||
u8 maxPageIndex;
|
||||
bool8 lockMonFlag; // This is used to prevent the player from changing pokemon in the move deleter select, etc, but it is not needed because the input is handled differently there
|
||||
bool8 lockMonFlag; // This is used to prevent the player from changing Pokémon in the move deleter select, etc, but it is not needed because the input is handled differently there
|
||||
u16 newMove;
|
||||
u8 firstMoveIndex;
|
||||
u8 secondMoveIndex;
|
||||
|
@ -190,7 +190,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData
|
|||
u8 windowIds[8];
|
||||
u8 spriteIds[SPRITE_ARR_ID_COUNT];
|
||||
bool8 handleDeoxys;
|
||||
s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or pokemon data
|
||||
s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or Pokémon data
|
||||
u8 unk_filler4[6];
|
||||
u8 categoryIconSpriteId;
|
||||
} *sMonSummaryScreen = NULL;
|
||||
|
@ -2795,7 +2795,7 @@ static void DrawContestMoveHearts(u16 move)
|
|||
}
|
||||
}
|
||||
|
||||
static void LimitEggSummaryPageDisplay(void) // If the pokemon is an egg, limit the number of pages displayed to 1
|
||||
static void LimitEggSummaryPageDisplay(void) // If the Pokémon is an egg, limit the number of pages displayed to 1
|
||||
{
|
||||
if (sMonSummaryScreen->summary.isEgg)
|
||||
ChangeBgX(3, 0x10000, BG_COORD_SET);
|
||||
|
@ -4122,7 +4122,7 @@ static bool32 UNUSED IsMonAnimationFinished(void)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void StopPokemonAnimations(void) // A subtle effect, this function stops pokemon animations when leaving the PSS
|
||||
static void StopPokemonAnimations(void) // A subtle effect, this function stops Pokémon animations when leaving the PSS
|
||||
{
|
||||
u16 i;
|
||||
u16 paletteIndex;
|
||||
|
|
|
@ -257,7 +257,7 @@ static u32 HandleMainMenuInput(struct Pokenav_Menu *menu)
|
|||
return POKENAV_MENU_FUNC_NONE;
|
||||
}
|
||||
|
||||
// Force the player to select Match Call during the call Mr. Stone pokenav tutorial
|
||||
// Force the player to select Match Call during the call Mr. Stone PokéNav tutorial
|
||||
static u32 HandleMainMenuInputTutorial(struct Pokenav_Menu *menu)
|
||||
{
|
||||
if (UpdateMenuCursorPos(menu))
|
||||
|
@ -287,7 +287,7 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav_Menu *menu)
|
|||
return POKENAV_MENU_FUNC_NONE;
|
||||
}
|
||||
|
||||
// After calling Mr. Stone during the pokenav tutorial, force player to exit or use Match Call again
|
||||
// After calling Mr. Stone during the PokéNav tutorial, force player to exit or use Match Call again
|
||||
static u32 HandleMainMenuInputEndTutorial(struct Pokenav_Menu *menu)
|
||||
{
|
||||
if (UpdateMenuCursorPos(menu))
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
// The purpose of this struct is for outside applications to be
|
||||
// able to access parts of the ROM or its save file, like a public API.
|
||||
// In vanilla, it was used by Colosseum and XD to access pokemon graphics.
|
||||
// In vanilla, it was used by Colosseum and XD to access Pokémon graphics.
|
||||
//
|
||||
// If this struct is rearranged in any way, it defeats the purpose of
|
||||
// having it at all. Applications like PKHex or streaming HUDs may find
|
||||
|
|
|
@ -990,8 +990,8 @@ static const struct RouletteFlashSettings sFlashData_Colors[NUM_ROULETTE_SLOTS +
|
|||
},
|
||||
};
|
||||
|
||||
// Data to flash any pokemon icon (F_FLASH_ICON) on the roulette wheel. One entry for each color row
|
||||
// Each poke icon flashes with the tint of the row color it belongs to, so the pokemon itself is irrelevant
|
||||
// Data to flash any Pokémon icon (F_FLASH_ICON) on the roulette wheel. One entry for each color row
|
||||
// Each poke icon flashes with the tint of the row color it belongs to, so the Pokémon itself is irrelevant
|
||||
static const struct RouletteFlashSettings sFlashData_PokeIcons[NUM_BOARD_COLORS] =
|
||||
{
|
||||
[GET_ROW_IDX(ROW_ORANGE)] = {
|
||||
|
@ -2702,7 +2702,7 @@ static const struct SpriteTemplate sSpriteTemplates_GridIcons[NUM_BOARD_POKES] =
|
|||
}
|
||||
};
|
||||
|
||||
// Wheel icons are listed clockwise starting from 1 oclock on the roulette wheel (with pokeball upside right)
|
||||
// Wheel icons are listed clockwise starting from 1 oclock on the roulette wheel (with Poké Ball upside right)
|
||||
// They go Wynaut -> Azurill -> Skitty -> Makuhita, and Orange -> Green -> Purple
|
||||
static const struct SpriteTemplate sSpriteTemplates_WheelIcons[NUM_ROULETTE_SLOTS] =
|
||||
{
|
||||
|
@ -4481,7 +4481,7 @@ static void SetBallStuck(struct Sprite *sprite)
|
|||
// The below slot ids are relative to the slot the ball got stuck on
|
||||
if ((sRoulette->useTaillow + 1) & sRoulette->partySpeciesFlags)
|
||||
{
|
||||
// If the player has the corresponding pokemon in their party (HAS_SHROOMISH or HAS_TAILLOW),
|
||||
// If the player has the corresponding Pokémon in their party (HAS_SHROOMISH or HAS_TAILLOW),
|
||||
// there's a 75% chance that the ball will be moved to a spot they bet on
|
||||
// assuming it was one of the slots identified as a candidate
|
||||
if (betSlotId && (rand % 256) < 192)
|
||||
|
|
|
@ -119,9 +119,9 @@ void TrySetMapSaveWarpStatus(void)
|
|||
TrySetUnknownWarpStatus();
|
||||
}
|
||||
|
||||
// In FRLG, only bits 0, 4, and 5 are set when the pokedex is received.
|
||||
// In FRLG, only bits 0, 4, and 5 are set when the Pokédex is received.
|
||||
// Bits 1, 2, 3, and 15 are instead set by SetPostgameFlags.
|
||||
// These flags are read by Pokemon Colosseum/XD for linking. XD Additionally requires FLAG_SYS_GAME_CLEAR
|
||||
// These flags are read by Pokémon Colosseum/XD for linking. XD Additionally requires FLAG_SYS_GAME_CLEAR
|
||||
void SetUnlockedPokedexFlags(void)
|
||||
{
|
||||
gSaveBlock2Ptr->gcnLinkFlags |= (1 << 15);
|
||||
|
|
|
@ -256,7 +256,7 @@ void ReducePlayerPartyToSelectedMons(void)
|
|||
|
||||
CpuFill32(0, party, sizeof party);
|
||||
|
||||
// copy the selected pokemon according to the order.
|
||||
// copy the selected Pokémon according to the order.
|
||||
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
|
||||
if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop
|
||||
party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal
|
||||
|
|
|
@ -716,7 +716,7 @@ static bool8 StartMenuPokeNavCallback(void)
|
|||
PlayRainStoppingSoundEffect();
|
||||
RemoveExtraStartMenuWindows();
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
SetMainCallback2(CB2_InitPokeNav); // Display PokeNav
|
||||
SetMainCallback2(CB2_InitPokeNav); // Display PokéNav
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1421,7 +1421,7 @@ static void ShowSaveInfoWindow(void)
|
|||
|
||||
if (FlagGet(FLAG_SYS_POKEDEX_GET) == TRUE)
|
||||
{
|
||||
// Print pokedex count
|
||||
// Print Pokédex count
|
||||
yOffset += 16;
|
||||
AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingPokedex, 0, yOffset, TEXT_SKIP_DRAW, NULL);
|
||||
BufferSaveMenuText(SAVE_MENU_CAUGHT, gStringVar4, color);
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#define STARTER_MON_COUNT 3
|
||||
|
||||
// Position of the sprite of the selected starter Pokemon
|
||||
// Position of the sprite of the selected starter Pokémon
|
||||
#define STARTER_PKMN_POS_X (DISPLAY_WIDTH / 2)
|
||||
#define STARTER_PKMN_POS_Y 64
|
||||
|
||||
|
@ -446,7 +446,7 @@ void CB2_ChooseStarter(void)
|
|||
spriteId = CreateSprite(&sSpriteTemplate_Hand, 120, 56, 2);
|
||||
gSprites[spriteId].data[0] = taskId;
|
||||
|
||||
// Create three Pokeball sprites
|
||||
// Create three Poké Ball sprites
|
||||
spriteId = CreateSprite(&sSpriteTemplate_Pokeball, sPokeballCoords[0][0], sPokeballCoords[0][1], 2);
|
||||
gSprites[spriteId].sTaskId = taskId;
|
||||
gSprites[spriteId].sBallId = 0;
|
||||
|
@ -495,7 +495,7 @@ static void Task_HandleStarterChooseInput(u8 taskId)
|
|||
spriteId = CreateSprite(&sSpriteTemplate_StarterCircle, sPokeballCoords[selection][0], sPokeballCoords[selection][1], 1);
|
||||
gTasks[taskId].tCircleSpriteId = spriteId;
|
||||
|
||||
// Create Pokemon sprite
|
||||
// Create Pokémon sprite
|
||||
spriteId = CreatePokemonFrontSprite(GetStarterPokemon(gTasks[taskId].tStarterSelection), sPokeballCoords[selection][0], sPokeballCoords[selection][1]);
|
||||
gSprites[spriteId].affineAnims = &sAffineAnims_StarterPokemon;
|
||||
gSprites[spriteId].callback = SpriteCB_StarterPokemon;
|
||||
|
@ -637,7 +637,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
|
|||
|
||||
static void SpriteCB_SelectionHand(struct Sprite *sprite)
|
||||
{
|
||||
// Float up and down above selected pokeball
|
||||
// Float up and down above selected Poké Ball
|
||||
sprite->x = sCursorCoords[gTasks[sprite->data[0]].tStarterSelection][0];
|
||||
sprite->y = sCursorCoords[gTasks[sprite->data[0]].tStarterSelection][1];
|
||||
sprite->y2 = Sin(sprite->data[1], 8);
|
||||
|
@ -646,7 +646,7 @@ static void SpriteCB_SelectionHand(struct Sprite *sprite)
|
|||
|
||||
static void SpriteCB_Pokeball(struct Sprite *sprite)
|
||||
{
|
||||
// Animate pokeball if currently selected
|
||||
// Animate Poké Ball if currently selected
|
||||
if (gTasks[sprite->sTaskId].tStarterSelection == sprite->sBallId)
|
||||
StartSpriteAnimIfDifferent(sprite, 1);
|
||||
else
|
||||
|
|
|
@ -680,7 +680,7 @@ static void MainCB2(void)
|
|||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
// Shine the Pokemon logo two more times, and fade in the version banner
|
||||
// Shine the Pokémon logo two more times, and fade in the version banner
|
||||
static void Task_TitleScreenPhase1(u8 taskId)
|
||||
{
|
||||
// Skip to next phase when A, B, Start, or Select is pressed
|
||||
|
@ -728,7 +728,7 @@ static void Task_TitleScreenPhase1(u8 taskId)
|
|||
#undef sParentTaskId
|
||||
#undef sAlphaBlendIdx
|
||||
|
||||
// Create "Press Start" and copyright banners, and slide Pokemon logo up
|
||||
// Create "Press Start" and copyright banners, and slide Pokémon logo up
|
||||
static void Task_TitleScreenPhase2(u8 taskId)
|
||||
{
|
||||
u32 yPos;
|
||||
|
@ -767,7 +767,7 @@ static void Task_TitleScreenPhase2(u8 taskId)
|
|||
if (!(gTasks[taskId].tCounter & 1) && gTasks[taskId].tBg2Y != 0)
|
||||
gTasks[taskId].tBg2Y++;
|
||||
|
||||
// Slide Pokemon logo up
|
||||
// Slide Pokémon logo up
|
||||
yPos = gTasks[taskId].tBg2Y * 256;
|
||||
SetGpuReg(REG_OFFSET_BG2Y_L, yPos);
|
||||
SetGpuReg(REG_OFFSET_BG2Y_H, yPos / 0x10000);
|
||||
|
|
30
src/trade.c
30
src/trade.c
|
@ -168,7 +168,7 @@ static EWRAM_DATA u8 *sMenuTextTileBuffer = NULL;
|
|||
// Bytes 0-2 are used for the player's name text
|
||||
// Bytes 3-5 are used for the partner's name text
|
||||
// Bytes 6-7 are used for the Cancel text
|
||||
// Bytes 8-13 are used for the Choose a Pokemon text
|
||||
// Bytes 8-13 are used for the Choose a Pokémon text
|
||||
// See the corresponding GFXTAGs in src/data/trade.h
|
||||
static EWRAM_DATA u8 *sMenuTextTileBuffers[NUM_MENU_TEXT_SPRITES] = {NULL};
|
||||
|
||||
|
@ -1006,25 +1006,25 @@ static void SetActiveMenuOptions(void)
|
|||
{
|
||||
if (i < sTradeMenu->partyCounts[TRADE_PLAYER])
|
||||
{
|
||||
// Present player pokemon
|
||||
// Present player Pokémon
|
||||
gSprites[sTradeMenu->partySpriteIds[TRADE_PLAYER][i]].invisible = FALSE;
|
||||
sTradeMenu->optionsActive[i] = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Absent player pokemon
|
||||
// Absent player Pokémon
|
||||
sTradeMenu->optionsActive[i] = FALSE;
|
||||
}
|
||||
|
||||
if (i < sTradeMenu->partyCounts[TRADE_PARTNER])
|
||||
{
|
||||
// Present partner pokemon
|
||||
// Present partner Pokémon
|
||||
gSprites[sTradeMenu->partySpriteIds[TRADE_PARTNER][i]].invisible = FALSE;
|
||||
sTradeMenu->optionsActive[i + PARTY_SIZE] = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Absent partner pokemon
|
||||
// Absent partner Pokémon
|
||||
sTradeMenu->optionsActive[i + PARTY_SIZE] = FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -1281,7 +1281,7 @@ static void Leader_HandleCommunication(void)
|
|||
if (sTradeMenu->playerSelectStatus == STATUS_READY
|
||||
&& sTradeMenu->partnerSelectStatus == STATUS_READY)
|
||||
{
|
||||
// Both players have selected a pokemon to trade
|
||||
// Both players have selected a Pokémon to trade
|
||||
sTradeMenu->callbackId = CB_SET_SELECTED_MONS;
|
||||
sTradeMenu->linkData[0] = LINKCMD_SET_MONS_TO_TRADE;
|
||||
sTradeMenu->linkData[1] = sTradeMenu->cursorPosition;
|
||||
|
@ -1291,7 +1291,7 @@ static void Leader_HandleCommunication(void)
|
|||
else if (sTradeMenu->playerSelectStatus == STATUS_READY
|
||||
&& sTradeMenu->partnerSelectStatus == STATUS_CANCEL)
|
||||
{
|
||||
// The player has selected a pokemon to trade,
|
||||
// The player has selected a Pokémon to trade,
|
||||
// but the partner has selected Cancel
|
||||
PrintTradeMessage(MSG_CANCELED);
|
||||
sTradeMenu->linkData[0] = LINKCMD_PARTNER_CANCEL_TRADE;
|
||||
|
@ -1304,7 +1304,7 @@ static void Leader_HandleCommunication(void)
|
|||
else if (sTradeMenu->playerSelectStatus == STATUS_CANCEL
|
||||
&& sTradeMenu->partnerSelectStatus == STATUS_READY)
|
||||
{
|
||||
// The partner has selected a pokemon to trade,
|
||||
// The partner has selected a Pokémon to trade,
|
||||
// but the player has selected cancel
|
||||
PrintTradeMessage(MSG_FRIEND_WANTS_TO_TRADE);
|
||||
sTradeMenu->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE;
|
||||
|
@ -1461,7 +1461,7 @@ static void CB_ProcessMenuInput(void)
|
|||
|
||||
if (sTradeMenu->cursorPosition < PARTY_SIZE)
|
||||
{
|
||||
// Selected pokemon in player's party
|
||||
// Selected Pokémon in player's party
|
||||
DrawTextBorderOuter(1, 1, 14);
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(1));
|
||||
PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions);
|
||||
|
@ -1472,7 +1472,7 @@ static void CB_ProcessMenuInput(void)
|
|||
}
|
||||
else if (sTradeMenu->cursorPosition < PARTY_SIZE * 2)
|
||||
{
|
||||
// Selected pokemon in partner's party
|
||||
// Selected Pokémon in partner's party
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
|
||||
sTradeMenu->callbackId = CB_SHOW_MON_SUMMARY;
|
||||
}
|
||||
|
@ -1848,7 +1848,7 @@ static void SetSelectedMon(u8 cursorPosition)
|
|||
if (sTradeMenu->drawSelectedMonState[whichParty] == 0)
|
||||
{
|
||||
// Start the animation to display just the selected
|
||||
// pokemon in the middle of the screen
|
||||
// Pokémon in the middle of the screen
|
||||
sTradeMenu->drawSelectedMonState[whichParty] = 1;
|
||||
sTradeMenu->selectedMonIdx[whichParty] = cursorPosition;
|
||||
}
|
||||
|
@ -1882,10 +1882,10 @@ static void DrawSelectedMonScreen(u8 whichParty)
|
|||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
ClearWindowTilemap(i + (whichParty * PARTY_SIZE + 2));
|
||||
|
||||
// Re-display the selected pokemon
|
||||
// Re-display the selected Pokémon
|
||||
gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].invisible = FALSE;
|
||||
|
||||
// Move the selected pokemon to the center
|
||||
// Move the selected Pokémon to the center
|
||||
gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].data[0] = 20;
|
||||
gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0]
|
||||
+ sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14;
|
||||
|
@ -3088,13 +3088,13 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx)
|
|||
struct Pokemon *partnerMon = &gEnemyParty[partnerPartyIdx];
|
||||
u16 partnerMail = GetMonData(partnerMon, MON_DATA_MAIL);
|
||||
|
||||
// The mail attached to the sent Pokemon no longer exists in your file.
|
||||
// The mail attached to the sent Pokémon no longer exists in your file.
|
||||
if (playerMail != MAIL_NONE)
|
||||
ClearMail(&gSaveBlock1Ptr->mail[playerMail]);
|
||||
|
||||
SWAP(*playerMon, *partnerMon, sTradeAnim->tempMon);
|
||||
|
||||
// By default, a Pokemon received from a trade will have 70 Friendship.
|
||||
// By default, a Pokémon received from a trade will have 70 Friendship.
|
||||
// Eggs use Friendship to track egg cycles, so don't set this on Eggs.
|
||||
friendship = 70;
|
||||
if (!GetMonData(playerMon, MON_DATA_IS_EGG))
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#define PICS_COUNT 8
|
||||
|
||||
// Needs to be large enough to store either a decompressed pokemon pic or trainer pic
|
||||
// Needs to be large enough to store either a decompressed Pokémon pic or trainer pic
|
||||
#define PIC_SPRITE_SIZE max(MON_PIC_SIZE, TRAINER_PIC_SIZE)
|
||||
#define MAX_PIC_FRAMES max(MAX_MON_PIC_FRAMES, MAX_TRAINER_PIC_FRAMES)
|
||||
|
||||
|
|
2
src/tv.c
2
src/tv.c
|
@ -6206,7 +6206,7 @@ static void DoTVShowSpotTheCuties(void)
|
|||
TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language);
|
||||
TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage);
|
||||
|
||||
// Comments following the intro depend on how many ribbons the pokemon has
|
||||
// Comments following the intro depend on how many ribbons the Pokémon has
|
||||
if (show->cuties.nRibbons < 10)
|
||||
sTVShowState = SPOTCUTIES_STATE_RIBBONS_LOW;
|
||||
else if (show->cuties.nRibbons < 20)
|
||||
|
|
|
@ -73,10 +73,10 @@ struct UsePokeblockSession
|
|||
u8 natureText[34];
|
||||
};
|
||||
|
||||
// This struct is identical to PokenavMonListItem, the struct used for managing lists of pokemon in the pokenav
|
||||
// This struct is identical to PokenavMonListItem, the struct used for managing lists of Pokémon in the PokéNav
|
||||
// Given that this screen is essentially duplicated in the poknav, this struct was probably the same one with
|
||||
// a more general name/purpose
|
||||
// TODO: Once the pokenav conditions screens are documented, resolve the above
|
||||
// TODO: Once the PokéNav conditions screens are documented, resolve the above
|
||||
struct UsePokeblockMenuPokemon
|
||||
{
|
||||
u8 boxId; // Because this screen is never used for the PC this is always set to TOTAL_BOXES_COUNT to refer to party
|
||||
|
@ -1259,7 +1259,7 @@ static void LoadAndCreateSelectionIcons(void)
|
|||
LoadSpriteSheets(spriteSheets);
|
||||
LoadSpritePalettes(spritePals);
|
||||
|
||||
// Fill pokeball selection icons up to number in party
|
||||
// Fill Poké Ball selection icons up to number in party
|
||||
for (i = 0; i < sMenu->info.numSelections - 1; i++)
|
||||
{
|
||||
spriteId = CreateSprite(&spriteTemplate, 226, (i * 20) + 8, 0);
|
||||
|
@ -1489,7 +1489,7 @@ static bool8 LoadNewSelection_CancelToMon(void)
|
|||
case 2:
|
||||
if (!ConditionMenu_UpdateMonEnter(&sMenu->graph, &sMenu->curMonXOffset))
|
||||
{
|
||||
// Load the new adjacent pokemon (not the one being shown)
|
||||
// Load the new adjacent Pokémon (not the one being shown)
|
||||
LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId);
|
||||
sMenu->info.helperState++;
|
||||
}
|
||||
|
@ -1552,7 +1552,7 @@ static bool8 LoadNewSelection_MonToMon(void)
|
|||
case 2:
|
||||
if (!ConditionMenu_UpdateMonEnter(&sMenu->graph, &sMenu->curMonXOffset))
|
||||
{
|
||||
// Load the new adjacent pokemon (not the one being shown)
|
||||
// Load the new adjacent Pokémon (not the one being shown)
|
||||
LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId);
|
||||
sMenu->info.helperState++;
|
||||
}
|
||||
|
@ -1593,8 +1593,8 @@ static void SpriteCB_SelectionIconCancel(struct Sprite *sprite)
|
|||
sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_CONDITION_CANCEL);
|
||||
}
|
||||
|
||||
// Calculate the max id for sparkles/stars that appear around the pokemon on the condition screen
|
||||
// All pokemon start with 1 sparkle (added by CreateConditionSparkleSprites), so the number here +1
|
||||
// Calculate the max id for sparkles/stars that appear around the Pokémon on the condition screen
|
||||
// All Pokémon start with 1 sparkle (added by CreateConditionSparkleSprites), so the number here +1
|
||||
// is the total number of sparkles that appear
|
||||
static void CalculateNumAdditionalSparkles(u8 monIndex)
|
||||
{
|
||||
|
|
|
@ -403,7 +403,7 @@ u8 PickWildMonNature(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
// check synchronize for a pokemon with the same ability
|
||||
// check synchronize for a Pokémon with the same ability
|
||||
if (OW_SYNCHRONIZE_NATURE < GEN_9
|
||||
&& !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG)
|
||||
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_SYNCHRONIZE
|
||||
|
@ -902,16 +902,16 @@ u16 GetLocalWildMon(bool8 *isWaterMon)
|
|||
// Neither
|
||||
if (landMonsInfo == NULL && waterMonsInfo == NULL)
|
||||
return SPECIES_NONE;
|
||||
// Land Pokemon
|
||||
// Land Pokémon
|
||||
else if (landMonsInfo != NULL && waterMonsInfo == NULL)
|
||||
return landMonsInfo->wildPokemon[ChooseWildMonIndex_Land()].species;
|
||||
// Water Pokemon
|
||||
// Water Pokémon
|
||||
else if (landMonsInfo == NULL && waterMonsInfo != NULL)
|
||||
{
|
||||
*isWaterMon = TRUE;
|
||||
return waterMonsInfo->wildPokemon[ChooseWildMonIndex_WaterRock()].species;
|
||||
}
|
||||
// Either land or water Pokemon
|
||||
// Either land or water Pokémon
|
||||
if ((Random() % 100) < 80)
|
||||
{
|
||||
return landMonsInfo->wildPokemon[ChooseWildMonIndex_Land()].species;
|
||||
|
|
Loading…
Reference in a new issue