Feat/enums (#139)

This commit is contained in:
cawtds 2026-03-29 16:13:16 +02:00 committed by GitHub
parent 44ddd0f330
commit 95cfa0abd0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
107 changed files with 2892 additions and 2897 deletions

View File

@ -14,7 +14,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
u8 GetStageByBerryTreeId(u8);
u8 ItemIdToBerryType(u16 item);
u8 ItemIdToBerryType(enum Item item);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
void Bag_ChooseBerry(void);

File diff suppressed because it is too large Load Diff

View File

@ -10,12 +10,12 @@ u8 CountPokemonInDaycare(struct DayCare *daycare);
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
s8 Daycare_FindEmptySpot(struct DayCare *daycare);
void StoreSelectedPokemonInDaycare(void);
u16 TakePokemonFromDaycare(void);
enum Species TakePokemonFromDaycare(void);
void GetDaycareCost(void);
u8 GetNumLevelsGainedFromDaycare(void);
void TriggerPendingDaycareEgg(void);
void RejectEggFromDayCare(void);
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
void CreateEgg(struct Pokemon *mon, enum Species species, bool8 setHotSpringsLocation);
void GiveEggFromDaycare(void);
bool8 DoEggActions_CheckHatch(void);
u16 GetSelectedMonNickAndSpecies(void);
@ -32,7 +32,7 @@ void EggHatch(void);
u8 GetEggStepsToSubtract(void);
bool8 ShouldEggHatch(void);
u8 GetEggCyclesToSubtract(void);
u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves);
u8 GetEggMovesBySpecies(enum Species species, u16 *eggMoves);
void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycareMon);
u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves);

View File

@ -74,11 +74,11 @@ u32 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s
u32 LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src);
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg);
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality);
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg);
void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg);
void LoadSpecialPokePic(void *dest, enum Species species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePicIsEgg(void *dest, enum Species species, u32 personality, bool8 isFrontPic, bool32 isEgg);
u32 GetDecompressedDataSize(const u32 *ptr);
bool32 IsCompressedData(const u32 *ptr);

View File

@ -263,7 +263,7 @@ u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent);
u8 GetMoveDirectionAnimNum(u8 direction);
u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority);
void FieldEffectFreeTilesIfUnused(u16 tileStart);
u16 GetOverworldWeatherSpecies(u16 species);
enum Species GetOverworldWeatherSpecies(enum Species species);
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 shiny, bool32 female);
// Exported data declarations

View File

@ -8,8 +8,8 @@ void LoadEvoSparkleSpriteAndPal(void);
u8 EvolutionSparkles_SpiralUpward(u16 arg0);
u8 EvolutionSparkles_ArcDown(void);
u8 EvolutionSparkles_CircleInward(void);
u8 EvolutionSparkles_SprayAndFlash(u16 species);
u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species);
u8 EvolutionSparkles_SprayAndFlash(enum Species species);
u8 EvolutionSparkles_SprayAndFlash_Trade(enum Species species);
u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId);
#define EvoGraphicsTaskEvoStop data[8]

View File

@ -81,7 +81,7 @@ void StartLavaridgeGymB1FWarp(u8 a0);
void StartLavaridgeGym1FWarp(u8 a0);
void ApplyGlobalFieldPaletteTint(u8 paletteIdx);
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, bool8 unused);
u8 CreateMonSprite_PicBox(enum Species species, s16 x, s16 y, bool8 unused);
void ReturnToFieldFromFlyMapSelect(void);
void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
void SpriteCB_PopOutOfAsh(struct Sprite *sprite);

View File

@ -4,18 +4,18 @@
#include "constants/field_move.h"
struct FieldMoveInfo {
u16 defaultSpecies;
enum Species defaultSpecies;
bool32 (*isUnlockedFunc)(void);
u16 moveId;
enum Move moveId;
u8 partyMessageId;
const u8* description;
const u8 *description;
bool32 (*setUpFunc)(void);
const u8* questLogText;
const u8 *questLogText;
};
extern const struct FieldMoveInfo gFieldMovesInfo[];
bool32 FieldMove_IsUnlocked(enum FieldMove fieldMove);
u16 FieldMove_GetDefaultSpecies(enum FieldMove fieldMove);
enum Species FieldMove_GetDefaultSpecies(enum FieldMove fieldMove);
#endif // GUARD_FIELD_MOVE_H

View File

@ -5,35 +5,35 @@
extern u16 gScrollableMultichoice_ScrollOffset;
u8 GetLeadMonIndex(void);
size_t CountDigits(s32 value);
void TV_PrintIntToStringVar(u8 varidx, s32 number);
u16 GetStarterSpecies(void);
void StopPokemonLeagueLightingEffectTask(void);
void FieldCB_ShowPortholeView(void);
u8 ContextNpcGetTextColor(void);
void SetPCBoxToSendMon(u8);
u16 GetPCBoxToSendMon(void);
bool8 CutMoveRuinValleyCheck(void);
bool8 InMultiPartnerRoom(void);
bool8 InPokemonCenter(void);
bool8 IsDestinationBoxFull(void);
bool8 ShouldShowBoxWasFullMessage(void);
u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr);
u8 GetUnlockedSeviiAreas(void);
u32 GetPlayerTrainerId(void);
bool8 CutMoveRuinValleyCheck(void);
void CutMoveOpenDottedHoleDoor(void);
void RunMassageCooldownStepCounter(void);
void IncrementResortGorgeousStepCounter(void);
void IncrementBirthIslandRockStepCount(void);
void ResetCyclingRoadChallengeData(void);
void ResetFieldTasksArgs(void);
bool8 UsedPokemonCenterWarp(void);
enum Species GetStarterSpecies(void);
size_t CountDigits(s32 value);
u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr);
u16 GetPCBoxToSendMon(void);
u32 GetPlayerTrainerId(void);
u8 ContextNpcGetTextColor(void);
u8 GetLeadMonIndex(void);
u8 GetUnlockedSeviiAreas(void);
void CutMoveOpenDottedHoleDoor(void);
void DoPicboxCancel(void);
void FieldCB_ShowPortholeView(void);
void FrontierGamblerSetWonOrLost(bool8 won);
void IncrementBirthIslandRockStepCount(void);
void IncrementResortGorgeousStepCounter(void);
void QuestLog_CheckDepartingIndoorsMap(void);
void QuestLog_TryRecordDepartedLocation(void);
bool8 InPokemonCenter(void);
void UpdateFrontierManiac(u16 daysSince);
void ResetCyclingRoadChallengeData(void);
void ResetFieldTasksArgs(void);
void RunMassageCooldownStepCounter(void);
void SetPCBoxToSendMon(u8);
void StopPokemonLeagueLightingEffectTask(void);
void TV_PrintIntToStringVar(u8 varidx, s32 number);
void UpdateFrontierGambler(u16 daysSince);
void FrontierGamblerSetWonOrLost(bool8 won);
bool8 InMultiPartnerRoom(void);
void DoPicboxCancel(void);
void UpdateFrontierManiac(u16 daysSince);
#endif // GUARD_FIELD_SPECIALS_H

View File

@ -420,7 +420,7 @@ struct RecordMixingGiftData
{
u8 unk0;
u8 quantity;
u16 itemId;
enum Item itemId;
u8 filler4[8];
};
@ -715,7 +715,7 @@ struct WarpData
struct ItemSlot
{
u16 itemId;
enum Item itemId;
u16 quantity;
};
@ -768,8 +768,8 @@ struct Mail
/*0x00*/ u16 words[MAIL_WORDS_COUNT];
/*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH];
/*0x1E*/ u16 species;
/*0x20*/ u16 itemId;
/*0x1E*/ enum Species species;
/*0x20*/ enum Item itemId;
};
struct DayCareMail

View File

@ -13,7 +13,7 @@ int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int lett
int GetMaxWidthInMenuTable(const struct MenuAction *actions, int numActions);
int GetMaxWidthInSubsetOfMenuTable(const struct MenuAction *actions, const u8 *actionIds, int numActions);
int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu);
void CopyMonCategoryText(u16 species, u8 *dest);
void CopyMonCategoryText(enum Species species, u8 *dest);
u8 *GetStringClearToWidth(u8 *dest, int fontId, const u8 *str, int totalStringWidth);
void PadNameString(u8 *dest, u8 padChar);
void ConvertInternationalPlayerNameStripChar(u8 *, u8);

View File

@ -103,6 +103,60 @@ extern const struct ItemInfo gItemsInfo[];
extern struct BagPocket gBagPockets[];
extern const struct TmHmIndexKey gTMHMItemMoveIds[];
bool32 AddPyramidBagItem(enum Item itemId, u16 count);
bool32 HasAtLeastOneBerry(void);
bool32 HasAtLeastOnePokeBall(void);
bool32 IsHoldEffectChoice(enum HoldEffect holdEffect);
bool32 IsItemBall(enum Item itemId);
bool32 IsItemHM(enum Item itemId);
bool32 IsItemTM(enum Item itemId);
bool32 IsItemTMHM(enum Item itemId);
bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile volatile);
bool32 RemovePyramidBagItem(enum Item itemId, u16 count);
bool32 AddBagItem(enum Item itemId, u16 amount);
bool32 AddPCItem(enum Item itemId, u16 count);
bool32 CheckBagHasItem(enum Item itemId, u16 count);
bool32 CheckBagHasSpace(enum Item itemId, u16 count);
bool32 CheckPCHasItem(enum Item itemId, u16 count);
bool32 IsBagPocketNonEmpty(u8 pocket);
bool32 RemoveBagItem(enum Item itemId, u16 count);
const u8 *GetItemDescription(enum Item itemId);
const u8 *GetItemEffect(enum Item itemId);
const u8 *GetItemName(enum Item itemId);
enum Pocket GetItemPocket(enum Item itemId);
ItemUseFunc GetItemFieldFunc(enum Item itemId);
u16 CountTotalItemQuantityInBag(enum Item item);
u16 GetItemSecondaryId(enum Item itemId);
u16 GetPCItemQuantity(u16 *quantity);
u32 GetFreeSpaceForItemInBag(enum Item itemId);
u32 GetItemFlingPower(enum Item itemId);
u32 GetItemPrice(enum Item itemId);
u32 GetItemSellPrice(enum Item itemId);
u32 GetItemStatus1Mask(enum Item itemId);
u8 *CopyItemName(enum Item itemId, u8 *string);
u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *string, u32 quantity);
u8 CountItemsInPC(void);
u8 CountUsedPCItemSlots(void);
u8 GetItemBattleUsage(enum Item itemId);
u8 GetItemConsumability(enum Item itemId);
u8 GetItemHoldEffect(enum Item itemId);
u8 GetItemHoldEffectParam(enum Item itemId);
u8 GetItemImportance(enum Item itemId);
u8 GetItemType(enum Item itemId);
u8 GetPocketByItemId(enum Item itemId);
void ClearBag(void);
void ClearPCItemSlots(void);
void CompactItemsInBagPocket(enum Pocket pocketId);
void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity);
void ItemPcCompaction(void);
void MoveItemSlotInPC(struct ItemSlot *itemSlots_, u32 from, u32 to_);
void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to);
void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count);
void RemovePCItem(u8 index, u16 count);
void SetBagItemsPointers(void);
void SwapRegisteredBike(void);
void TrySetObtainedItemQuestLogEvent(enum Item itemId);
#define UNPACK_ITEM_TO_TM_INDEX(_tm) case CAT(ITEM_TM_, _tm): return CAT(ENUM_TM_HM_, _tm) + 1;
#define UNPACK_ITEM_TO_HM_INDEX(_hm) case CAT(ITEM_HM_, _hm): return CAT(ENUM_TM_HM_, _hm) + 1;
#define UNPACK_ITEM_TO_TM_MOVE_ID(_tm) case CAT(ITEM_TM_, _tm): return CAT(MOVE_, _tm);
@ -173,7 +227,7 @@ static inline enum Item GetTMHMItemId(enum TMHMIndex index)
return gTMHMItemMoveIds[index].itemId;
}
static inline u16 GetTMHMMoveId(enum TMHMIndex index)
static inline enum Move GetTMHMMoveId(enum TMHMIndex index)
{
return gTMHMItemMoveIds[index].moveId;
}
@ -181,12 +235,12 @@ static inline u16 GetTMHMMoveId(enum TMHMIndex index)
void BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, struct ItemSlot newSlot);
struct ItemSlot BagPocket_GetSlotData(struct BagPocket *pocket, u32 pocketPos);
static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, u16 itemId, u16 quantity)
static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, enum Item itemId, u16 quantity)
{
BagPocket_SetSlotData(pocket, pocketPos, (struct ItemSlot) {itemId, quantity});
}
static inline u16 GetBagItemId(enum Pocket pocketId, u32 pocketPos)
static inline enum Item GetBagItemId(enum Pocket pocketId, u32 pocketPos)
{
return BagPocket_GetSlotData(&gBagPockets[pocketId], pocketPos).itemId;
}
@ -201,65 +255,5 @@ static inline struct ItemSlot GetBagItemIdAndQuantity(enum Pocket pocketId, u32
return BagPocket_GetSlotData(&gBagPockets[pocketId], pocketPos);
}
void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity);
u8 *CopyItemName(u16 itemId, u8 *string);
u8 *CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
bool8 CheckBagHasSpace(u16 itemId, u16 count);
u32 GetFreeSpaceForItemInBag(u16 itemId);
bool8 RemoveBagItem(u16 itemId, u16 count);
void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count);
u8 GetPocketByItemId(u16 itemId);
u8 CountUsedPCItemSlots(void);
bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void SwapRegisteredBike(void);
const u8 *GetItemName(u16 itemId);
u32 GetItemPrice(u16 itemId);
u8 GetItemHoldEffect(u16 itemId);
u8 GetItemHoldEffectParam(u16 itemId);
const u8 *GetItemDescription(u16 itemId);
u8 GetItemImportance(u16 itemId);
u8 GetItemConsumability(u16 itemId);
enum Pocket GetItemPocket(u16 itemId);
u8 GetItemType(u16 itemId);
ItemUseFunc GetItemFieldFunc(u16 itemId);
u8 GetItemBattleUsage(u16 itemId);
u16 GetItemSecondaryId(u16 itemId);
u32 GetItemFlingPower(u32 itemId);
void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to);
void MoveItemSlotInPC(struct ItemSlot *itemSlots_, u32 from, u32 to_);
void ClearBag(void);
void ClearPCItemSlots(void);
void TrySetObtainedItemQuestLogEvent(u16 itemId);
bool8 AddBagItem(u16 itemId, u16 amount);
u16 CountTotalItemQuantityInBag(u16 item);
bool32 AddPyramidBagItem(enum Item itemId, u16 count);
bool32 RemovePyramidBagItem(enum Item itemId, u16 count);
u8 GetItemImportance(u16 itemId);
u16 GetPCItemQuantity(u16 *);
void SetBagItemsPointers(void);
void ItemPcCompaction(void);
void RemovePCItem(u8 index, u16 count);
void CompactItemsInBagPocket(enum Pocket pocketId);
u8 CountItemsInPC(void);
bool32 HasAtLeastOneBerry(void);
bool32 HasAtLeastOnePokeBall(void);
bool32 IsItemTM(u16 itemId);
bool32 IsItemHM(u16 itemId);
bool32 IsItemTMHM(u16 itemId);
bool32 IsItemBall(u16 itemId);
const u8 *GetItemEffect(u32 itemId);
u32 GetItemStatus1Mask(u16 itemId);
bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile volatile);
u32 GetItemSellPrice(u32 itemId);
bool32 IsHoldEffectChoice(enum HoldEffect holdEffect);
#endif // GUARD_ITEM_H

View File

@ -9,9 +9,9 @@ extern const struct SpriteTemplate gItemIconSpriteTemplate;
bool8 AllocItemIconTemporaryBuffers(void);
void FreeItemIconTemporaryBuffers(void);
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId);
u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
const void *GetItemIconPic(u16 itemId);
const void *GetItemIconPalette(u16 itemId);
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId);
u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId);
const void *GetItemIconPic(enum Item itemId);
const void *GetItemIconPalette(enum Item itemId);
#endif // GUARD_ITEM_MENU_ICONS

View File

@ -8,7 +8,7 @@ extern const struct SpritePalette gSpritePalette_Bag;
void AddBagVisualSprite(u8 bagPocketId);
void SetBagVisualPocketId(u8 bagPocketId);
void ShakeBagSprite(void);
void AddBagItemIconSprite(u16 itemId, u8 id);
void AddBagItemIconSprite(enum Item itemId, u8 id);
void RemoveBagItemIconSprite(u8 id);
void CreateItemMenuSwapLine(void);
void SetItemMenuSwapLineInvisibility(bool8 invisible);

View File

@ -46,9 +46,9 @@ void ItemUseInBattle_PartyMenu(u8 taskId);
void ItemUseInBattle_PartyMenuChooseMove(u8 taskId);
void Task_UseDigEscapeRopeOnField(u8 taskId);
u8 CanUseEscapeRopeOnCurrMap(void);
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId);
void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8);
void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16);
void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, enum Item itemId, u16 param);
void FieldCB_UseItemOnField(void);
enum {
@ -60,7 +60,7 @@ enum {
};
bool32 CanThrowBall(void);
bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon);
bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon);
extern void (*sItemUseOnFieldCB)(u8 taskId);

View File

@ -29,14 +29,14 @@ void ReadMail(struct Mail * mail, void (*savedCallback)(void), bool8 messageExis
void ClearMailData(void);
void ClearMailStruct(struct Mail *mail);
bool8 MonHasMail(struct Pokemon *mon);
u8 GiveMailToMon(struct Pokemon *mon, u16 itemId);
u16 SpeciesToMailSpecies(u16 species, u32 personality);
u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
u8 GiveMailToMon(struct Pokemon *mon, enum Item itemId);
u16 SpeciesToMailSpecies(enum Species species, u32 personality);
enum Species MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
u8 GiveMailToMon2(struct Pokemon *mon, struct Mail *mail);
void TakeMailFromMon(struct Pokemon *mon);
void ClearMailItemId(u8 mailId);
u8 SaveMailToPC(struct Mail *mail);
u8 TakeMailFromMonAndSave(struct Pokemon *mon);
bool8 ItemIsMail(u16 itemId);
bool8 ItemIsMail(enum Item itemId);
#endif // GUARD_MAIL_H

View File

@ -49,12 +49,12 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u
void PrintPlayerNameOnWindow(u8 windowId, const u8 * src, u16 x, u16 y);
void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
bool8 IsBlendTaskActive(void);
u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId);
s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId);
u8 Menu2_GetMonPosAttribute(enum Species species, u32 personality, u8 attributeId);
s8 Menu2_GetStarSpritePosAttribute(enum Species species, u32 personality, u8 attributeId);
// list_menu
void LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId);
void DrawMonIconAtPos(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y);
void LoadMonIconPalAtOffset(u8 palOffset, enum Species speciesId);
void DrawMonIconAtPos(u8 windowId, enum Species speciesId, u32 personality, u16 x, u16 y);
void ListMenuLoadStdPalAt(u8 palOffset, u8 palId);
void BlitMenuInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y);

View File

@ -37,8 +37,8 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 palet
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
u8 GetLRKeysPressed(void);
u8 GetLRKeysPressedAndHeld(void);
bool8 IsHoldingItemAllowed(u16 itemId);
bool8 IsWritingMailAllowed(u16 itemId);
bool8 IsHoldingItemAllowed(enum Item itemId);
bool8 IsWritingMailAllowed(enum Item itemId);
void ResetVramOamAndBgCntRegs(void);
void LoadListMenuSwapLineGfx(void);
void CreateSwapLineSprites(u8 *spriteIds, u8 count);

View File

@ -206,6 +206,6 @@ enum ItemObtainFlags
FLAG_GET_ITEM_OBTAINED,
FLAG_SET_ITEM_OBTAINED,
};
bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId);
bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId);
#endif //GUARD_OVERWORLD_H

View File

@ -15,7 +15,7 @@ struct PartyMenu
s8 slotId;
s8 slotId2;
u8 action;
u16 bagItem;
enum Item bagItem;
s16 data[2];
};
@ -32,76 +32,76 @@ extern const u16 gHeldItemPalette[];
extern void (*gItemUseCB)(u8, TaskFunc);
extern const struct SpriteTemplate gSpriteTemplate_StatusIcons;
void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, u8 messageId, TaskFunc task, MainCallback callback);
void AnimatePartySlot(u8 slot, u8 animNum);
bool32 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move);
bool32 MonKnowsMove(struct Pokemon *mon, enum Move move);
bool8 CB2_FadeFromPartyMenu(void);
bool8 FieldCallback_PrepareFadeInFromMenu(void);
bool8 IsMultiBattle(void);
u8 GetCursorSelectionMonId(void);
u8 GetPartyMenuType(void);
void Task_HandleChooseMonInput(u8 taskId);
bool8 IsPartyMenuTextPrinterActive(void);
enum Move ItemIdToBattleMoveId(enum Item item);
u32 Party_FirstMonWithMove(enum Move moveId);
u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
u8 DisplayPartyMenuMessage(const u8 *str, bool8 keepOpen);
bool8 IsPartyMenuTextPrinterActive(void);
void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 hpDifference, TaskFunc task);
u8 GetAilmentFromStatus(u32 status);
u8 GetCursorSelectionMonId(void);
u8 GetItemEffectType(enum Item item);
u8 GetMonAilment(struct Pokemon *mon);
void DisplayPartyMenuStdMessage(u32 stringId);
void LoadHeldItemIcons(void);
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty);
void LoadPartyMenuAilmentGfx(void);
void SpriteCB_BounceConfirmCancelButton(u8 spriteId, u8 spriteId2, u8 animNum);
void CB2_SelectBagItemToGive(void);
void CB2_GiveHoldItem(void);
bool8 FieldCallback_PrepareFadeInFromMenu(void);
void CB2_ReturnToPartyMenuFromFlyMap(void);
void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData);
void CB2_ShowPartyMenuForItemUse(void);
void ItemUseCB_AbilityCapsule(u8 taskId, TaskFunc task);
void ItemUseCB_AbilityPatch(u8 taskId, TaskFunc task);
void ItemUseCB_BattleScript(u8 taskId, TaskFunc task);
void ItemUseCB_Medicine(u8 taskId, TaskFunc func);
void ItemUseCB_Mint(u8 taskId, TaskFunc task);
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task);
void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task);
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func);
void ItemUseCB_PPUp(u8 taskId, TaskFunc func);
enum Move ItemIdToBattleMoveId(enum Item item);
bool8 MonKnowsMove(struct Pokemon *mon, u16 move);
bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, u16 move);
void ItemUseCB_TMHM(u8 taskId, TaskFunc func);
void ItemUseCB_RareCandy(u8 taskId, TaskFunc func);
void ItemUseCB_DynamaxCandy(u8 taskId, TaskFunc task);
void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func);
void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func);
u8 GetItemEffectType(u16 item);
void CB2_PartyMenuFromStartMenu(void);
void CB2_ChooseMonToGiveItem(void);
void ChooseMonToGiveMailFromMailbox(void);
void InitChooseMonsForBattle(u8 unused);
void ClearSelectedPartyOrder(void);
void ChooseMonForTradingBoard(u8 menuType, MainCallback callback);
void ChooseMonForMoveTutor(void);
void ChooseMonForWirelessMinigame(void);
void OpenPartyMenuInBattle(u8 partyAction);
void Pokedude_OpenPartyMenuInBattle(void);
void Pokedude_ChooseMonForInBattleItem(void);
void ChooseMonForInBattleItem(void);
u8 GetPartyIdFromBattlePartyId(u8 battlePartyId);
u8 GetPartyMenuType(void);
void AnimatePartySlot(u8 slot, u8 animNum);
void BufferBattlePartyCurrentOrder(void);
void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId);
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2);
void SwitchPartyMonSlots(u8 slot, u8 slot2);
u8 GetPartyIdFromBattlePartyId(u8 battlePartyId);
void ShowPartyMenuToShowcaseMultiBattleParty(void);
void ChooseMonForDaycare(void);
void ItemUseCB_BattleChooseMove(u8 taskId, TaskFunc task);
void ItemUseCB_FormChange(u8 taskId, TaskFunc task);
void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task);
void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task);
void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task);
void ItemUseCB_Fusion(u8 taskId, TaskFunc task);
u32 Party_FirstMonWithMove(u16 moveId);
void ChoosePartyMon(void);
bool8 CB2_FadeFromPartyMenu(void);
void ChooseMonForMoveRelearner(void);
void CB2_ChooseMonToGiveItem(void);
void CB2_GiveHoldItem(void);
void CB2_PartyMenuFromStartMenu(void);
void CB2_ReturnToPartyMenuFromFlyMap(void);
void CB2_ReturnToPartyMenuFromSummaryScreen(void);
void CB2_SelectBagItemToGive(void);
void CB2_ShowPartyMenuForItemUse(void);
void ChooseMonForDaycare(void);
void ChooseMonForInBattleItem(void);
void ChooseMonForMoveRelearner(void);
void ChooseMonForMoveTutor(void);
void ChooseMonForTradingBoard(u8 menuType, MainCallback callback);
void ChooseMonForWirelessMinigame(void);
void ChooseMonToGiveMailFromMailbox(void);
void ChoosePartyMon(void);
void ClearSelectedPartyOrder(void);
void DisplayPartyMenuStdMessage(u32 stringId);
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty);
void InitChooseMonsForBattle(u8 unused);
void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, u8 messageId, TaskFunc task, MainCallback callback);
void ItemUseCB_AbilityCapsule(u8 taskId, TaskFunc task);
void ItemUseCB_AbilityPatch(u8 taskId, TaskFunc task);
void ItemUseCB_BattleChooseMove(u8 taskId, TaskFunc task);
void ItemUseCB_BattleScript(u8 taskId, TaskFunc task);
void ItemUseCB_DynamaxCandy(u8 taskId, TaskFunc task);
void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func);
void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task);
void ItemUseCB_FormChange(u8 taskId, TaskFunc task);
void ItemUseCB_Fusion(u8 taskId, TaskFunc task);
void ItemUseCB_Medicine(u8 taskId, TaskFunc func);
void ItemUseCB_Mint(u8 taskId, TaskFunc task);
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func);
void ItemUseCB_PPUp(u8 taskId, TaskFunc func);
void ItemUseCB_RareCandy(u8 taskId, TaskFunc func);
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task);
void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task);
void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task);
void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func);
void ItemUseCB_TMHM(u8 taskId, TaskFunc func);
void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task);
void LoadHeldItemIcons(void);
void LoadPartyMenuAilmentGfx(void);
void OpenPartyMenuInBattle(u8 partyAction);
void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 hpDifference, TaskFunc task);
void Pokedude_ChooseMonForInBattleItem(void);
void Pokedude_OpenPartyMenuInBattle(void);
void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData);
void ShowPartyMenuToShowcaseMultiBattleParty(void);
void SpriteCB_BounceConfirmCancelButton(u8 spriteId, u8 spriteId2, u8 animNum);
void SwitchPartyMonSlots(u8 slot, u8 slot2);
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2);
void Task_HandleChooseMonInput(u8 taskId);
#endif // GUARD_PARTY_MENU_H

View File

@ -16,7 +16,7 @@ struct PokeBallSprite
struct CompressedSpriteSheet pic;
struct SpritePalette palette;
struct SpriteTemplate spriteTemplate;
u16 itemId;
enum Item itemId;
};
extern const struct PokeBallSprite gPokeBalls[];
@ -26,7 +26,7 @@ extern const struct PokeBallSprite gPokeBalls[];
#define POKEBALL_PLAYER_SLIDEIN 0xFD
u8 DoPokeballSendOutAnimation(enum BattlerId battler, s16 pan, u8 kindOfThrow);
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, u16 species);
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, enum Species species);
u8 CreateTradePokeballSprite(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 delay, u32 fadePalettes);
void StartHealthboxSlideIn(enum BattlerId battler);
void DoHitAnimHealthboxEffect(enum BattlerId battler);

View File

@ -108,7 +108,7 @@ bool16 HasAllKantoMons(void);
bool16 HasAllMons(void);
u8* ConvertMonHeightToString(u32 height);
u8* ConvertMonWeightToString(u32 weight);
u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality);
u8 DexScreen_RegisterMonToPokedex(u16 species);
u8 DisplayCaughtMonDexPage(enum Species species, bool32 isShiny, u32 personality);
u8 DexScreen_RegisterMonToPokedex(enum Species species);
#endif // GUARD_POKEDEX_H

View File

@ -3,7 +3,7 @@
void GetAreaMarkerSubsprite(s32 i, s32 dexArea, struct Subsprite * subsprites);
void DestroyPokedexAreaMarkers(u8 taskId);
u8 CreatePokedexAreaMarkers(u16 species, u16 tilesTag, u8 palIdx, u8 y);
u8 CreatePokedexAreaMarkers(enum Species species, u16 tilesTag, u8 palIdx, u8 y);
u8 GetNumPokedexAreaMarkers(u8 taskId);
#endif //GUARD_POKEDEX_AREA_MARKERS_H

View File

@ -9,7 +9,7 @@ u16 GetNationalPokedexCount(u8 caseID);
u16 GetHoennPokedexCount(u8 caseID);
u16 GetKantoPokedexCount(u8 caseID);
u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y);
void DrawFootprint(u8 windowId, u16 species);
void DrawFootprint(u8 windowId, enum Species species);
u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot);
bool16 HasAllRegionalMons(void);
bool16 HasAllHoennMons(void);
@ -17,7 +17,7 @@ bool16 HasAllKantoMons(void);
void ResetPokedexScrollPositions(void);
bool16 HasAllMons(void);
void CB2_OpenPokedex(void);
void PrintMonMeasurements(u16 species, u32 owned);
void PrintMonMeasurements(enum Species species, u32 owned);
u8* ConvertMonHeightToString(u32 height);
u8* ConvertMonWeightToString(u32 weight);
void Task_DisplayCaughtMonDexPage(u8);

View File

@ -11,7 +11,6 @@ enum PokedexAreaScreenState
DEX_UPDATE_AREA_SCREEN
};
void DisplayPokedexAreaScreen(u16 species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState);
void ShowPokedexAreaScreen(u16 species, u8 *screenSwitchState);
void DisplayPokedexAreaScreen(enum Species species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState);
#endif // GUARD_POKEDEX_AREA_SCREEN_H

View File

@ -14,7 +14,7 @@ extern u8 gDexCryScreenState;
bool8 LoadCryWaveformWindow(struct CryScreenWindow *window, u8 windowId);
void UpdateCryWaveformWindow(u8 windowId);
void CryScreenPlayButton(u16 species);
void CryScreenPlayButton(enum Species species);
bool8 LoadCryMeter(struct CryScreenWindow *window, u8 windowId);
void FreeCryScreen(void);

View File

@ -128,7 +128,7 @@ enum MonData {
struct PokemonSubstruct0
{
u16 species:11; // 2047 species.
enum Species species:11; // 2047 species.
enum Type teraType:5; // 30 types.
u16 heldItem:10; // 1023 items.
u16 unused_02:6;
@ -336,7 +336,7 @@ struct Volatiles
struct BattlePokemon
{
/*0x00*/ u16 species;
/*0x00*/ enum Species species;
/*0x02*/ u16 attack;
/*0x04*/ u16 defense;
/*0x06*/ u16 speed;
@ -622,7 +622,7 @@ struct LevelUpMove
struct FormChange
{
u16 method;
u16 targetSpecies;
enum Species targetSpecies;
u16 param1;
u16 param2;
u16 param3;
@ -632,7 +632,7 @@ struct FormChange
struct FormChangeContext
{
enum FormChanges method:16;
u16 currentSpecies;
enum Species currentSpecies;
u16 partyItemUsed;
u16 multichoiceSelection;
u16 heldItem;
@ -729,15 +729,15 @@ void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
void ZeroPlayerPartyMons(void);
void ZeroEnemyPartyMons(void);
u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter);
void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level);
void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv);
void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV);
u32 GetMonPersonality(enum Species species, u8 gender, u8 nature, u8 unownLetter);
void CreateMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateRandomMon(struct Pokemon *mon, enum Species species, u8 level);
void CreateRandomMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u8 fixedIv);
void CreateBoxMon(struct BoxPokemon *boxMon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV);
void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV);
void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
void CreateMaleMon(struct Pokemon *mon, enum Species species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, enum Species species, u8 level, u32 ivs, u32 personality);
void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src);
void CreateBattleTowerMon_HandleLevel(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50);
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
@ -767,9 +767,9 @@ u8 CountAliveMonsInBattle(u8 caseId, enum BattlerId battler);
u8 GetDefaultMoveTarget(enum BattlerId battler);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
bool32 IsPersonalityFemale(u16 species, u32 personality);
u32 GetUnownSpeciesId(u32 personality);
u8 GetGenderFromSpeciesAndPersonality(enum Species species, u32 personality);
bool32 IsPersonalityFemale(enum Species species, u32 personality);
enum Species GetUnownSpeciesId(u32 personality);
void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, enum BattlerPosition battlerPosition);
void SetMultiuseSpriteTemplateToTrainerBack(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition);
void SetMultiuseSpriteTemplateToTrainerFront(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition);
@ -796,33 +796,33 @@ u8 CalculateEnemyPartyCount(void);
u8 CalculateEnemyPartyCountInSide(enum BattlerId battler);
u8 GetMonsStateToDoubles(void);
u8 GetMonsStateToDoubles_2(void);
enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum);
enum Ability GetAbilityBySpecies(enum Species species, u8 abilityNum);
enum Ability GetMonAbility(struct Pokemon *mon);
void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord);
enum TrainerPicID GetSecretBaseTrainerPicIndex(void);
enum TrainerClassID GetSecretBaseTrainerClass(void);
bool8 IsPlayerPartyAndPokemonStorageFull(void);
bool8 IsPokemonStorageFull(void);
const u8 *GetSpeciesName(u16 species);
const u8 *GetSpeciesCategory(u16 species);
const u8 *GetSpeciesPokedexDescription(u16 species);
u32 GetSpeciesHeight(u16 species);
u32 GetSpeciesWeight(u16 species);
enum Type GetSpeciesType(u16 species, u8 slot);
enum Ability GetSpeciesAbility(u16 species, u8 slot);
u32 GetSpeciesBaseHP(u16 species);
u32 GetSpeciesBaseAttack(u16 species);
u32 GetSpeciesBaseDefense(u16 species);
u32 GetSpeciesBaseSpAttack(u16 species);
u32 GetSpeciesBaseSpDefense(u16 species);
u32 GetSpeciesBaseSpeed(u16 species);
u32 GetSpeciesBaseStat(u16 species, u32 statIndex);
const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species);
const u16 *GetSpeciesTeachableLearnset(u16 species);
const u16 *GetSpeciesEggMoves(u16 species);
const struct Evolution *GetSpeciesEvolutions(u16 species);
const u16 *GetSpeciesFormTable(u16 species);
const struct FormChange *GetSpeciesFormChanges(u16 species);
const u8 *GetSpeciesName(enum Species species);
const u8 *GetSpeciesCategory(enum Species species);
const u8 *GetSpeciesPokedexDescription(enum Species species);
u32 GetSpeciesHeight(enum Species species);
u32 GetSpeciesWeight(enum Species species);
enum Type GetSpeciesType(enum Species species, u8 slot);
enum Ability GetSpeciesAbility(enum Species species, u8 slot);
u32 GetSpeciesBaseHP(enum Species species);
u32 GetSpeciesBaseAttack(enum Species species);
u32 GetSpeciesBaseDefense(enum Species species);
u32 GetSpeciesBaseSpAttack(enum Species species);
u32 GetSpeciesBaseSpDefense(enum Species species);
u32 GetSpeciesBaseSpeed(enum Species species);
u32 GetSpeciesBaseStat(enum Species species, u32 statIndex);
const struct LevelUpMove *GetSpeciesLevelUpLearnset(enum Species species);
const u16 *GetSpeciesTeachableLearnset(enum Species species);
const u16 *GetSpeciesEggMoves(enum Species species);
const struct Evolution *GetSpeciesEvolutions(enum Species species);
const u16 *GetSpeciesFormTable(enum Species species);
const struct FormChange *GetSpeciesFormChanges(enum Species species);
u8 CalculatePPWithBonus(enum Move move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBoxMonPPBonus(struct BoxPokemon *mon, u8 moveIndex);
@ -840,16 +840,16 @@ u32 GetGMaxTargetSpecies(u32 species);
bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct EvolutionParam *params, struct Pokemon *tradePartner, u32 partyId, bool32 *canStopEvo, enum EvoState evoState);
u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 evolutionItem, struct Pokemon *tradePartner, bool32 *canStopEvo, enum EvoState evoState);
bool8 IsMonPastEvolutionLevel(struct Pokemon *mon);
u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum);
enum Species NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum);
u32 NationalToRegionalOrder(enum NationalDexOrder nationalNum);
enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum);
enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species);
u32 SpeciesToRegionalPokedexNum(u16 species);
enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species);
enum NationalDexOrder SpeciesToNationalPokedexNum(enum Species species);
u32 SpeciesToRegionalPokedexNum(enum Species species);
enum HoennDexOrder SpeciesToHoennPokedexNum(enum Species species);
enum NationalDexOrder RegionalToNationalOrder(u32 regionNum);
enum NationalDexOrder HoennToNationalOrder(enum HoennDexOrder hoennNum);
enum KantoDexOrder SpeciesToKantoDexNum(u16 species);
bool32 IsSpeciesInKantoDex(u16 species);
enum KantoDexOrder SpeciesToKantoDexNum(enum Species species);
bool32 IsSpeciesInKantoDex(enum Species species);
enum NationalDexOrder KantoToNationalDexNum(enum KantoDexOrder kantoNum);
enum KantoDexOrder NationalToKantoDexNum(enum NationalDexOrder natDexNum);
enum NationalDexOrder HoennToNationalDexNum(enum HoennDexOrder hoennNum);
@ -867,22 +867,22 @@ u8 CalculateFriendshipBonuses(struct Pokemon *mon, u32 modifier, enum HoldEffect
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
u16 GetMonEVCount(struct Pokemon *mon);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
u8 CanLearnTeachableMove(u16 species, enum Move move);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
u16 SpeciesToPokedexNum(u16 species);
bool32 IsSpeciesInHoennDex(u16 species);
u8 CanLearnTeachableMove(enum Species species, enum Move move);
u8 GetLevelUpMovesBySpecies(enum Species species, u16 *moves);
u16 SpeciesToPokedexNum(enum Species species);
bool32 IsSpeciesInHoennDex(enum Species species);
u16 GetBattleBGM(void);
void PlayBattleBGM(void);
void PlayMapChosenOrBattleBGM(u16 songId);
void CreateTask_PlayMapChosenOrBattleBGM(u16 songId);
const u16 *GetMonFrontSpritePal(struct Pokemon *mon);
const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality);
const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg);
const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale);
const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg);
const u16 *GetMonSpritePalFromSpeciesAndPersonality(enum Species species, bool32 isShiny, u32 personality);
const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(enum Species species, bool32 isShiny, u32 personality, bool32 isEgg);
const u16 *GetMonSpritePalFromSpecies(enum Species species, bool32 isShiny, bool32 isFemale);
const u16 *GetMonSpritePalFromSpeciesIsEgg(enum Species species, bool32 isShiny, bool32 isFemale, bool32 isEgg);
bool32 IsMoveHM(enum Move move);
bool32 CannotForgetMove(enum Move move);
bool8 IsMonSpriteNotFlipped(u16 species);
bool8 IsMonSpriteNotFlipped(enum Species species);
s8 GetMonFlavorRelation(struct Pokemon *mon, enum Flavor flavor);
s8 GetFlavorRelationByPersonality(u32 personality, enum Flavor flavor);
bool8 IsTradedMon(struct Pokemon *mon);
@ -893,28 +893,28 @@ void SetMonPreventsSwitchingString(void);
void SetWildMonHeldItem(void);
bool8 IsMonShiny(struct Pokemon *mon);
const u8 *GetTrainerPartnerName(void);
void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode);
void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag);
void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame);
void BattleAnimateFrontSprite(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panMode);
void DoMonFrontSpriteAnimation(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panModeAnimFlag);
void PokemonSummaryDoMonAnimation(struct Sprite *sprite, enum Species species, bool8 oneFrame);
void StopPokemonAnimationDelayTask(void);
void BattleAnimateBackSprite(struct Sprite *sprite, u16 species);
void BattleAnimateBackSprite(struct Sprite *sprite, enum Species species);
u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId);
enum TrainerPicID FacilityClassToPicIndex(u16 facilityClass);
enum TrainerPicID PlayerGenderToFrontTrainerPicId(enum Gender playerGender);
void HandleSetPokedexFlag(enum NationalDexOrder nationalNum, u8 caseId, u32 personality);
void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId);
bool8 HasTwoFramesAnimation(u16 species);
bool8 HasTwoFramesAnimation(enum Species species);
struct MonSpritesGfxManager *CreateMonSpritesGfxManager(u8 managerId, u8 mode);
void DestroyMonSpritesGfxManager(u8 managerId);
u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum);
u16 GetFormSpeciesId(u16 speciesId, u8 formId);
u16 GetFormSpeciesId(enum Species speciesId, u8 formId);
u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId);
u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx);
bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method);
bool32 DoesSpeciesHaveFormChangeMethod(enum Species species, enum FormChanges method);
u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove);
void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv);
void TrySpecialOverworldEvo(void);
bool32 SpeciesHasGenderDifferences(u16 species);
bool32 SpeciesHasGenderDifferences(enum Species species);
bool32 TryFormChange(struct Pokemon *mon, enum FormChanges method);
bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method);
void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method);
@ -922,10 +922,10 @@ u32 GetMonFriendshipScore(struct Pokemon *pokemon);
u32 GetMonAffectionHearts(struct Pokemon *pokemon);
void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality);
u8 CalculatePartyCount(struct Pokemon *party);
u16 SanitizeSpeciesId(u16 species);
bool32 IsSpeciesEnabled(u16 species);
enum PokemonCry GetCryIdBySpecies(u16 species);
u16 GetSpeciesPreEvolution(u16 species);
u16 SanitizeSpeciesId(enum Species species);
bool32 IsSpeciesEnabled(enum Species species);
enum PokemonCry GetCryIdBySpecies(enum Species species);
u16 GetSpeciesPreEvolution(enum Species species);
void HealPokemon(struct Pokemon *mon);
void HealBoxPokemon(struct BoxPokemon *boxMon);
void UpdateDaysPassedSinceFormChange(u16 days);
@ -945,8 +945,8 @@ u32 GiveScriptedMonToPlayer(struct Pokemon *mon, u8 slot);
void ChangePokemonNicknameWithCallback(void (*callback)(void));
// pokefirered
u16 GetFirstPartnerMove(u16 species);
enum Move GetFirstPartnerMove(enum Species species);
u8 GetPlayerPartyHighestLevel(void);
bool8 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler);
bool32 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler);
#endif // GUARD_POKEMON_H

View File

@ -193,7 +193,7 @@ enum AnimFunctionIDs
ANIM_COUNT,
};
enum BackAnim GetSpeciesBackAnimSet(u16 species);
enum BackAnim GetSpeciesBackAnimSet(enum Species species);
void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId);
void StartMonSummaryAnimation(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId);
void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, enum BackAnim backAnimSet);

View File

@ -8,30 +8,30 @@ extern const struct SpritePalette gMonIconPaletteTable[];
extern const u16 gMonIconPalettes[][16];
// extern const u8 gMonIconPaletteIndices[];
const u8 *GetMonIconPtr(u16 speciesId, u32 personality);
const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg);
const u8 *GetMonIconTiles(u16 iconSpecies, bool32 extra);
const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg);
const u16 *GetValidMonIconPalettePtr(u16 speciesId);
const u8 *GetMonIconPtr(enum Species species, u32 personality);
const u8 *GetMonIconPtrIsEgg(enum Species species, u32 personality, bool32 isEgg);
const u8 *GetMonIconTiles(enum Species species, bool32 extra);
const u8 *GetMonIconTilesIsEgg(enum Species species, u32 personality, bool32 isEgg);
const u16 *GetValidMonIconPalettePtr(enum Species species);
void LoadMonIconPalettes(void);
void FreeMonIconPalettes(void);
u16 GetIconSpeciesNoPersonality(u16);
u8 CreateMonIconNoPersonality(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority);
u16 GetIconSpeciesNoPersonality(enum Species species);
u8 CreateMonIconNoPersonality(enum Species species, SpriteCallback callback, s16 x, s16 y, u8 subpriority);
void FreeAndDestroyMonIconSprite(struct Sprite *);
u16 GetUnownLetterByPersonality(u32 personality);
void SpriteCB_MonIcon(struct Sprite *);
u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality);
u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg);
u8 CreateMonIcon(enum Species species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality);
u8 CreateMonIconIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg);
u8 UpdateMonIconFrame(struct Sprite *sprite);
void LoadMonIconPalette(u16 iconId);
void LoadMonIconPalettePersonality(u16 species, u32 personality);
void FreeMonIconPalette(u16 iconId);
void LoadMonIconPalette(enum Species species);
void LoadMonIconPalettePersonality(enum Species species, u32 personality);
void FreeMonIconPalette(enum Species species);
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
u8 GetMonIconPaletteIndexFromSpecies(u16 species);
u16 GetIconSpecies(u16 species, u32 personality);
u8 GetMonIconPaletteIndexFromSpecies(enum Species species);
enum Species GetIconSpecies(enum Species species, u32 personality);
void TryLoadAllMonIconPalettesAtOffset(u16 offset);
u8 GetValidMonIconPalIndex(u16 species);
void SafeLoadMonIconPalette(u16 species);
void SafeFreeMonIconPalette(u16 species);
u8 GetValidMonIconPalIndex(enum Species species);
void SafeLoadMonIconPalette(enum Species species);
void SafeFreeMonIconPalette(enum Species species);
#endif // GUARD_POKEMON_ICON_H

View File

@ -4,7 +4,7 @@
#include "main.h"
void ResetPokemonJumpRecords(void);
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
void StartPokemonJump(u16 species, MainCallback callback);
bool32 IsSpeciesAllowedInPokemonJump(enum Species species);
void StartPokemonJump(u16 partyId, MainCallback callback);
#endif // GUARD_POKEMON_JUMP_H

View File

@ -8,9 +8,9 @@ bool8 LevelUpVerticalSpritesTaskIsRunning(void);
void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats);
void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr);
void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr);
void StartUseItemAnim_Normal(u8 slotId, u16 itemId, MainCallback callback);
void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback);
void StartUseItemAnim_Normal(u8 slotId, enum Item itemId, MainCallback callback);
void StartUseItemAnim_CantEvolve(u8 slotId, enum Item itemId, MainCallback callback);
bool32 PSA_IsCancelDisabled(void);
void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId, MainCallback callback);
void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, enum Item itemId, enum Move moveId, MainCallback callback);
#endif // GUARD_POKEMON_SPECIAL_ANIM_H

View File

@ -31,8 +31,8 @@ struct PokemonSpecialAnim
/*0x0084*/ u8 nameOfMoveToTeach[MOVE_NAME_LENGTH + 1];
/*0x0091*/ bool8 cancelDisabled;
/*0x0092*/ u16 state;
/*0x0094*/ u16 species;
/*0x0096*/ u16 itemId;
/*0x0094*/ enum Species species;
/*0x0096*/ enum Item itemId;
/*0x0098*/ u16 animType;
/*0x009a*/ u16 slotId;
/*0x009c*/ u16 closeness;
@ -45,13 +45,13 @@ struct PokemonSpecialAnim
struct PokemonSpecialAnim * GetPSAStruct(void);
struct Pokemon * PSA_GetPokemon(void);
struct PokemonSpecialAnimScene * PSA_GetSceneWork(void);
u16 PSA_GetItemId(void);
enum Item PSA_GetItemId(void);
u8 *PSA_GetNameOfMoveForgotten(void);
u8 *PSA_GetNameOfMoveToTeach(void);
u8 *PSA_CopyMonNickname(u8 *dest);
u8 *PSA_GetMonNickname(void);
u8 PSA_GetAnimType(void);
u16 PSA_GetMonSpecies(void);
enum Species PSA_GetMonSpecies(void);
u32 PSA_GetMonPersonality(void);
void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 animType);
@ -73,8 +73,8 @@ bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void);
void PSA_CreateMonSpriteAtCloseness(u8 closeness);
void PSA_SetUpZoomAnim(u8 closeness);
bool8 PSA_IsZoomTaskActive(void);
void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2);
void CreateItemIconSpriteAtMaxCloseness(u16 itemId);
void PSA_SetUpItemUseOnMonAnim(enum Item itemId, u8 closeness, bool32 a2);
void CreateItemIconSpriteAtMaxCloseness(enum Item itemId);
bool8 PSA_IsItemUseOnMonAnimActive(void);
void PSA_UseItem_CleanUpForCancel(void);

View File

@ -57,7 +57,7 @@ struct PokemonShadowSettings
struct PokemonSpriteVisualizer
{
u16 currentmonId;
enum Species currentmonId;
u8 currentmonWindowId;
u8 InstructionsWindowId;
u8 frontspriteId;

View File

@ -28,44 +28,41 @@ struct PokemonStorage
extern struct PokemonStorage *gPokemonStoragePtr;
void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, s32 bytesToBuffer);
u8 CountMonsInBox(u8 boxId);
s16 GetFirstFreeBoxSpot(u8 boxId);
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void);
u8 CountPartyMons(void);
u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n);
void ShowPokemonStorageSystemPC(void);
void ResetPokemonStorageSystem(void);
bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition);
bool8 CheckFreePokemonStorageSpace(void);
s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 mode);
s16 CompactPartySlots(void);
u8 StorageGetCurrentBox(void);
u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request);
void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value);
u32 GetCurrentBoxMonData(u8 boxPosition, s32 request);
void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value);
void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst);
u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition);
void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick);
s16 GetFirstFreeBoxSpot(u8 boxId);
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition);
u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void);
u32 CountAllStorageMons(void);
u32 CountPartyNonEggMons(void);
u32 CountStorageNonEggMons(void);
u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst);
void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src);
u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request);
u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition);
u32 GetCurrentBoxMonData(u8 boxPosition, s32 request);
u8 *GetBoxNamePtr(u8 boxId);
u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n);
u8 CountMonsInBox(u8 boxId);
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
u8 CountPartyMons(void);
u8 StorageGetCurrentBox(void);
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst);
void CB2_ReturnToPokeStorage(void);
void ChooseMonFromStorage();
void CopyBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *dst);
void CreateBoxMonAt(u8 boxId, u8 boxPosition, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 personality, u8 otIDType, u32 otID);
void ZeroBoxMonAt(u8 boxId, u8 boxPosition);
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst);
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition);
u8 *GetBoxNamePtr(u8 boxId);
s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 mode);
bool8 CheckFreePokemonStorageSpace(void);
bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition);
u32 CountStorageNonEggMons(void);
u32 CountAllStorageMons(void);
bool32 AnyStorageMonWithMove(u16 moveId);
void CB2_ReturnToPokeStorage(void);
void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, s32 bytesToBuffer);
void EnterPokeStorage(u8 boxOption);
u32 CountPartyNonEggMons(void);
void ChooseMonFromStorage();
void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst);
void RemoveSelectedPcMon(struct Pokemon *mon);
void ResetPokemonStorageSystem(void);
void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src);
void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value);
void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick);
void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value);
void ShowPokemonStorageSystemPC(void);
void ZeroBoxMonAt(u8 boxId, u8 boxPosition);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H

View File

@ -12,7 +12,7 @@ extern const struct SpritePalette gSpritePal_CategoryIcons;
extern const struct SpriteTemplate gSpriteTemplate_CategoryIcons;
extern MainCallback gInitialSummaryScreenCallback;
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, void (*callback)(void), u16 newMove);
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, void (*callback)(void), enum Move newMove);
u8 GetMoveSlotToReplace(void);
void SummaryScreen_SetUnknownTaskId(u8 a0);
void SummaryScreen_DestroyUnknownTask(void);

View File

@ -63,7 +63,7 @@ struct QuestLogEvent_SwitchedPartyOrder
// QL_EVENT_WITHDREW_ITEM_PC
struct QuestLogEvent_Item
{
u16 itemId;
enum Item itemId;
u16 unused;
u16 species;
u16 itemParam;
@ -154,7 +154,7 @@ struct QuestLogEvent_FieldMove
struct QuestLogEvent_Shop
{
u32 totalMoney; // Total amount of money spent buying or earned selling
u16 lastItemId;
enum Item lastItemId;
u16 itemQuantity; // Total number of items bought or sold
u8 mapSec;
bool8 hasMultipleTransactions;
@ -164,7 +164,7 @@ struct QuestLogEvent_Shop
// QL_EVENT_OBTAINED_STORY_ITEM
struct QuestLogEvent_StoryItem
{
u16 itemId;
enum Item itemId;
u8 mapSec;
};

View File

@ -30,7 +30,7 @@ bool8 (*ScriptMenu_HidePokemonPic(void))(void);
bool8 ScriptMenu_Multichoice(u8 left, u8 top, enum MultichoiceID multichoiceId, bool8 ignoreBPress);
bool8 ScriptMenu_MultichoiceDynamic(u8 left, u8 top, u8 argc, struct ListMenuItem *items, bool8 ignoreBPress, u8 maxBeforeScroll, u32 initialRow, u32 callbackSet);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, enum MultichoiceID multichoiceId, bool8 ignoreBpress, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 ScriptMenu_ShowPokemonPic(enum Species species, u8 x, u8 y);
bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
int ConvertPixelWidthToTileWidth(int width);
int DisplayTextAndGetWidth(const u8 *str, int width);

View File

@ -1,12 +1,12 @@
#ifndef GUARD_SCRIPT_POKEMON_UTIL_H
#define GUARD_SCRIPT_POKEMON_UTIL_H
u32 ScriptGiveMon(u16 species, u8 level, enum Item item);
bool8 ScriptGiveEgg(u16 species);
void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot);
u32 ScriptGiveMon(enum Species species, u8 level, enum Item item);
bool8 ScriptGiveEgg(enum Species species);
void ScriptSetMonMoveSlot(u8 partyIdx, enum Move move, u8 slot);
void HealPlayerParty(void);
void ReducePlayerPartyToSelectedMons(void);
void CreateScriptedWildMon(u16 species, u8 level, u16 item);
void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 species2, u8 level2, enum Item item2);
void CreateScriptedWildMon(enum Species species, u8 level, enum Item item);
void CreateScriptedDoubleWildMon(enum Species species1, u8 level1, enum Item item1, enum Species species2, u8 level2, enum Item item2);
#endif //GUARD_SCRIPT_POKEMON_UTIL_H

View File

@ -10,6 +10,6 @@ void CreatePokemartMenu(const u16 *itemsForSale);
void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *);
u8 GetMartFontId(void);
void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId);
void RecordItemTransaction(enum Item itemId, u16 quantity, u8 logEventId);
#endif // GUARD_SHOP_H

View File

@ -24,13 +24,13 @@ bool8 IsBGMPausedOrStopped(void);
void FadeInBGM(u8 speed);
void FadeOutBGM(u8 speed);
bool8 IsBGMStopped(void);
void PlayCry_Normal(u16 species, s8 pan);
void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority);
void PlayCry_ByMode(u16 species, s8 pan, u8 mode);
void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode);
void PlayCry_Script(u16 species, u8 mode);
void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode);
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode);
void PlayCry_Normal(enum Species species, s8 pan);
void PlayCry_NormalNoDucking(enum Species species, s8 pan, s8 volume, u8 priority);
void PlayCry_ByMode(enum Species species, s8 pan, u8 mode);
void PlayCry_ReleaseDouble(enum Species species, s8 pan, u8 mode);
void PlayCry_Script(enum Species species, u8 mode);
void PlayCry_DuckNoRestore(enum Species species, s8 pan, u8 mode);
void PlayCryInternal(enum Species species, s8 pan, s8 volume, u8 priority, u8 mode);
bool8 IsCryFinished(void);
void StopCryAndClearCrySongs(void);
void StopCry(void);

View File

@ -7,15 +7,15 @@
#define MON_PIC_AFFINE_NONE 3
#define F_MON_PIC_NO_AFFINE (1 << 7)
u16 CreateMonFrontPicSprite(u16 species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonPicSprite_Affine(u16 species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonFrontPicSprite(enum Species species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonPicSprite_Affine(enum Species species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateTrainerFrontPicSprite(enum TrainerPicID trainerPicId, s16 x, s16 y, u8 paletteSlot);
u8 CreateTrainerSprite(enum TrainerPicID trainerPicId, s16 x, s16 y, u8 subpriority, u8 *buffer);
void CopyTrainerBackspriteFramesToDest(u8 trainerPicId, u8 *dest);
void FreeAndDestroyMonPicSprite(u16 spriteId);
void FreeAndDestroyMonPicSpriteNoPalette(u16 spriteId);
void FreeAndDestroyTrainerPicSprite(u16);
void LoadMonFrontPicInWindow(u16 species, bool32 isShiny, u32 personality, u8 paletteSlot, u8 windowId);
void LoadMonFrontPicInWindow(enum Species species, bool32 isShiny, u32 personality, u8 paletteSlot, u8 windowId);
void LoadTrainerFrontPicInWindow(enum TrainerPicID trainerPicID, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
void ResetAllPicSprites(void);

View File

@ -28,7 +28,7 @@ struct WildPokemon
{
u8 minLevel;
u8 maxLevel;
u16 species;
enum Species species;
};
struct WildPokemonInfo
@ -72,7 +72,7 @@ void SeedWildEncounterRng(u16 randVal);
void ResetEncounterRateModifiers(void);
bool8 TryStandardWildEncounter(u32 currMetatileAttrs);
bool8 TryDoDoubleWildBattle(void);
void CreateWildMon(u16 species, u8 level, u8 unownSlot);
void CreateWildMon(enum Species species, u8 level, u8 unownSlot);
u16 GetCurrentMapWildMonHeaderId(void);
u8 ChooseWildMonIndex_Land(void);
u8 ChooseWildMonIndex_WaterRock(void);

View File

@ -142,7 +142,7 @@ static void OakOldManBufferRunCommand(enum BattlerId battler)
static void HandleInputChooseAction(enum BattlerId battler)
{
// Like player, but specifically for Rival in Oak's Lab
u16 itemId = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8);
enum Item itemId = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8);
DoBounceEffect(battler, BOUNCE_HEALTHBOX, 7, 1);
DoBounceEffect(battler, BOUNCE_MON, 7, 1);

View File

@ -15,7 +15,7 @@
#include "constants/event_object_movement.h"
#include "constants/items.h"
static u16 BerryTypeToItemId(u16 berry);
static enum Item BerryTypeToItemId(u16 berry);
static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
static u8 GetNumStagesWateredByBerryTreeId(u8 id);
static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
@ -28,7 +28,7 @@ static u8 GetWeedingBonusByBerryType(u8);
static u8 GetPestsBonusByBerryType(u8);
static void SetTreeMutations(u8 id, u8 berry);
static u8 GetTreeMutationValue(u8 id);
static u16 GetBerryPestSpecies(u8 berryId);
static enum Species GetBerryPestSpecies(u8 berryId);
static void TryForWeeds(struct BerryTree *tree);
static void TryForPests(struct BerryTree *tree);
static void AddTreeBonus(struct BerryTree *tree, u8 bonus);
@ -1969,7 +1969,7 @@ u8 GetMulchByBerryTreeId(u8 id)
return gSaveBlock3Ptr->berryTrees[id].mulch;
}
u8 ItemIdToBerryType(u16 item)
u8 ItemIdToBerryType(enum Item item)
{
u16 berry = item - FIRST_BERRY_INDEX;
@ -1979,9 +1979,9 @@ u8 ItemIdToBerryType(u16 item)
return ITEM_TO_BERRY(item);
}
static u16 BerryTypeToItemId(u16 berry)
static enum Item BerryTypeToItemId(u16 berry)
{
u16 item = berry - 1;
enum Item item = berry - 1;
if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX)
return FIRST_BERRY_INDEX;
@ -2235,12 +2235,15 @@ bool8 ObjectEventInteractionBerryHasWeed(void)
bool8 ObjectEventInteractionBerryHasPests(void)
{
u16 species;
enum Species species;
if (!OW_BERRY_PESTS || !gSaveBlock3Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].pests)
return FALSE;
species = GetBerryPestSpecies(gSaveBlock3Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].berry);
if (species == SPECIES_NONE)
return FALSE;
CreateScriptedWildMon(species, 14 + Random() % 3, ITEM_NONE);
gSaveBlock3Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].pests = FALSE;
return TRUE;
@ -2408,7 +2411,7 @@ static void SetTreeMutations(u8 id, u8 berry)
#endif
}
static u16 GetBerryPestSpecies(u8 berryId)
static enum Species GetBerryPestSpecies(u8 berryId)
{
#if OW_BERRY_PESTS == TRUE
const struct Berry *berry = GetBerryInfo(berryId);

View File

@ -83,7 +83,7 @@ static void BerryPouchInitBgs(void);
static bool8 BerryPouchLoadGfx(void);
static bool8 AllocateListMenuBuffers(void);
static void SetUpListMenuTemplate(void);
static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId);
static void GetBerryNameAndIndexForMenu(u8 * dest, enum Item itemId);
static void BerryPouchMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
static void BerryPouchItemPrintFunc(u8 windowId, u32 itemId, u8 y);
static void BerryPouchSetArrowCursorAt(u8 y, u8 colorIdx);
@ -706,7 +706,7 @@ static void SetUpListMenuTemplate(void)
gMultiuseListMenuTemplate.scrollMultiple = 0;
}
static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId)
static void GetBerryNameAndIndexForMenu(u8 * dest, enum Item itemId)
{
StringCopy(gStringVar4, gText_FontSmall);
StringAppend(gStringVar4, gText_NumberClear01);
@ -724,7 +724,7 @@ static void CopySelectedListMenuItemName(s16 itemIdx, u8 * dest)
StringCopy(dest, &sListMenuStrbuf[itemIdx * 27]);
}
static void CreateBerryPouchItemIcon(u16 item, u8 iconSlot)
static void CreateBerryPouchItemIcon(enum Item item, u8 iconSlot)
{
u8 *spriteIdPtr = &sResources->itemSpriteIds[iconSlot];

View File

@ -58,16 +58,16 @@ struct EggHatchData
u8 windowId;
u8 unused_9;
u8 unused_A;
u16 species;
enum Species species;
u8 textColor[3];
};
// this file's functions
static void ClearDaycareMonMail(struct DayCareMail *mail);
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
static void SetInitialEggData(struct Pokemon *mon, enum Species species, struct DayCare *daycare);
static void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y);
static u8 ModifyBreedingScoreForOvalCharm(u8 score);
static u16 GetEggSpecies(u16 species);
static enum Species GetEggSpecies(enum Species species);
static void Task_EggHatch(u8 taskID);
static void CB2_EggHatch_0(void);
@ -87,11 +87,11 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8
static struct EggHatchData *sEggHatchData;
// RAM buffers used to assist with BuildEggMoveset()
EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0};
EWRAM_DATA static u16 sHatchedEggFatherMoves[MAX_MON_MOVES] = {0};
EWRAM_DATA static u16 sHatchedEggFinalMoves[MAX_MON_MOVES] = {0};
EWRAM_DATA static u16 sHatchedEggEggMoves[EGG_MOVES_ARRAY_COUNT] = {0};
EWRAM_DATA static u16 sHatchedEggMotherMoves[MAX_MON_MOVES] = {0};
EWRAM_DATA static enum Move sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0};
EWRAM_DATA static enum Move sHatchedEggFatherMoves[MAX_MON_MOVES] = {0};
EWRAM_DATA static enum Move sHatchedEggFinalMoves[MAX_MON_MOVES] = {0};
EWRAM_DATA static enum Move sHatchedEggEggMoves[EGG_MOVES_ARRAY_COUNT] = {0};
EWRAM_DATA static enum Move sHatchedEggMotherMoves[MAX_MON_MOVES] = {0};
static const struct WindowTemplate sDaycareLevelMenuWindowTemplate =
{
@ -134,9 +134,9 @@ static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
};
static const struct {
u16 currSpecies;
u16 item;
u16 babySpecies;
enum Species currSpecies;
enum Item item;
enum Species babySpecies;
} sIncenseBabyTable[] =
{
// Regular offspring, Item, Incense Offspring
@ -479,8 +479,8 @@ static void TransferEggMoves(void)
for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
u16 moveLearnerSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SPECIES);
u16 eggSpecies = GetEggSpecies(moveLearnerSpecies);
enum Species moveLearnerSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SPECIES);
enum Species eggSpecies = GetEggSpecies(moveLearnerSpecies);
if (!GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SANITY_HAS_SPECIES))
continue;
@ -614,9 +614,9 @@ static void ApplyDaycareExperience(struct Pokemon *mon)
CalculateMonStats(mon);
}
static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
static enum Species TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
{
u16 species;
enum Species species;
u32 experience;
struct Pokemon pokemon;
@ -645,14 +645,14 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
return species;
}
static u16 TakeSelectedPokemonMonFromDaycareShiftSlots(struct DayCare *daycare, u8 slotId)
static enum Species TakeSelectedPokemonMonFromDaycareShiftSlots(struct DayCare *daycare, u8 slotId)
{
u16 species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]);
enum Species species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]);
ShiftDaycareSlots(daycare);
return species;
}
u16 TakePokemonFromDaycare(void)
enum Species TakePokemonFromDaycare(void)
{
return TakeSelectedPokemonMonFromDaycareShiftSlots(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004);
}
@ -755,7 +755,7 @@ static void UNUSED ClearAllDaycareData(struct DayCare *daycare)
// Determines what the species of an Egg would be based on the given species.
// It determines this by working backwards through the evolution chain of the
// given species.
static u16 GetEggSpecies(u16 species)
static enum Species GetEggSpecies(enum Species species)
{
int i, j, k;
bool8 found;
@ -1032,7 +1032,7 @@ static void InheritAbility(struct Pokemon *egg, struct BoxPokemon *father, struc
u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
{
u16 numEggMoves;
u16 species;
enum Species species;
u32 i;
const u16 *eggMoveLearnset;
@ -1049,7 +1049,7 @@ u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
return numEggMoves;
}
u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves)
u8 GetEggMovesBySpecies(enum Species species, u16 *eggMoves)
{
u16 numEggMoves;
const u16 *eggMoveLearnset;
@ -1145,7 +1145,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++)
{
u16 moveId = ItemIdToBattleMoveId(ITEM_TM01 + j);
enum Move moveId = ItemIdToBattleMoveId(ITEM_TM01 + j);
if (sHatchedEggFatherMoves[i] == moveId && CanLearnTeachableMove(GetMonData(egg, MON_DATA_SPECIES_OR_EGG), moveId))
{
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES)
@ -1194,14 +1194,12 @@ void RejectEggFromDayCare(void)
RemoveEggFromDayCare(&gSaveBlock1Ptr->daycare);
}
static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare)
static void AlterEggSpeciesWithIncenseItem(enum Species *species, struct DayCare *daycare)
{
u32 i;
u16 motherItem, fatherItem;
motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM);
fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM);
enum Item motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM);
enum Item fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM);
for (i = 0; i < ARRAY_COUNT(sIncenseBabyTable); i++)
for (u32 i = 0; i < ARRAY_COUNT(sIncenseBabyTable); i++)
{
if (sIncenseBabyTable[i].babySpecies == *species && motherItem != sIncenseBabyTable[i].item && fatherItem != sIncenseBabyTable[i].item)
{
@ -1212,9 +1210,9 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare
}
static const struct {
u16 offspring;
u16 item;
u16 move;
enum Species offspring;
enum Item item;
enum Move move;
} sBreedingSpecialMoveItemTable[] =
{
// Offspring, Item, Move
@ -1223,11 +1221,11 @@ static const struct {
static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare)
{
u16 i, species = GetMonData(mon, MON_DATA_SPECIES);
u32 motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM);
u32 fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
enum Item motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM);
enum Item fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM);
for (i = 0; i < ARRAY_COUNT(sBreedingSpecialMoveItemTable); i++)
for (u32 i = 0; i < ARRAY_COUNT(sBreedingSpecialMoveItemTable); i++)
{
if (sBreedingSpecialMoveItemTable[i].offspring == species
&& (motherItem == sBreedingSpecialMoveItemTable[i].item ||
@ -1241,13 +1239,13 @@ static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare)
STATIC_ASSERT(P_SCATTERBUG_LINE_FORM_BREED == SPECIES_SCATTERBUG_ICY_SNOW || (P_SCATTERBUG_LINE_FORM_BREED >= SPECIES_SCATTERBUG_POLAR && P_SCATTERBUG_LINE_FORM_BREED <= SPECIES_SCATTERBUG_POKEBALL), ScatterbugLineFormBreedMustBeAValidScatterbugForm);
static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
static enum Species DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
{
u32 i;
u32 species[DAYCARE_MON_COUNT];
u32 eggSpecies, parentSpecies;
enum Species species[DAYCARE_MON_COUNT];
enum Species eggSpecies, parentSpecies;
enum Species motherEggSpecies, fatherEggSpecies;
bool32 hasMotherEverstone, hasFatherEverstone, motherIsForeign, fatherIsForeign;
bool32 motherEggSpecies, fatherEggSpecies;
u32 currentRegion = GetCurrentRegion();
for (i = 0; i < DAYCARE_MON_COUNT; i++)
@ -1323,7 +1321,7 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent
static void _GiveEggFromDaycare(struct DayCare *daycare)
{
struct Pokemon egg;
u16 species;
enum Species species;
u8 parentSlots[DAYCARE_MON_COUNT] = {0};
bool8 isEgg;
@ -1350,7 +1348,7 @@ static void _GiveEggFromDaycare(struct DayCare *daycare)
RemoveEggFromDayCare(daycare);
}
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
void CreateEgg(struct Pokemon *mon, enum Species species, bool8 setHotSpringsLocation)
{
u8 metLevel;
enum PokeBall ball;
@ -1377,7 +1375,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
}
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare)
static void SetInitialEggData(struct Pokemon *mon, enum Species species, struct DayCare *daycare)
{
u32 personality;
u16 ball;
@ -1543,7 +1541,7 @@ u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
{
u32 i;
u16 eggGroups[DAYCARE_MON_COUNT][EGG_GROUPS_PER_MON];
u16 species[DAYCARE_MON_COUNT];
enum Species species[DAYCARE_MON_COUNT];
u32 trainerIds[DAYCARE_MON_COUNT];
u32 genders[DAYCARE_MON_COUNT];
@ -1860,7 +1858,7 @@ u16 TakePokemonFromRoute5Daycare(void)
static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
{
u16 species;
enum Species species;
u32 personality, pokerus;
u8 i, friendship, language, gameMet, markings, isModernFatefulEncounter, ball;
u16 moves[MAX_MON_MOVES];
@ -1906,8 +1904,9 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
static void AddHatchedMonToParty(u8 id)
{
u8 isEgg = 0x46; // ?
u16 species, natDexNum;
bool8 isEgg = 0x46; // ?
enum Species species;
enum NationalDexOrder natDexNum;
u8 name[POKEMON_NAME_LENGTH + 1];
u16 metLevel;
u8 metLocation;
@ -1965,46 +1964,47 @@ bool8 DaycareMonReceivedMail(void)
return BufferDayCareMonReceivedMail(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004);
}
// extern const struct CompressedSpriteSheet gMonFrontPicTable[];
static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16 *speciesLoc)
static u8 EggHatchCreateMonSprite(bool32 useAlt, u8 state, u8 partyId, enum Species *speciesLoc)
{
u8 r4 = 0;
u8 spriteID = 0; // r7
struct Pokemon* mon = NULL; // r5
enum BattlerPosition position = 0;
u8 spriteId = 0;
struct Pokemon *mon = NULL;
if (a0 == 0)
if (useAlt == FALSE)
{
mon = &gPlayerParty[pokeID];
r4 = 1;
mon = &gPlayerParty[partyId];
position = B_POSITION_OPPONENT_LEFT;
}
if (a0 == 1)
if (useAlt == TRUE)
{
mon = &gPlayerParty[pokeID];
r4 = 3;
mon = &gPlayerParty[partyId];
position = B_POSITION_OPPONENT_RIGHT;
}
switch (switchID)
switch (state)
{
case 0:
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->spritesGfx[(a0 * 2) + 1], species, pid);
HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->spritesGfx[(useAlt * 2) + 1], species, pid);
LoadSpritePaletteWithTag(GetMonFrontSpritePal(mon), species);
*speciesLoc = species;
}
break;
}
case 1:
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
SetMultiuseSpriteTemplateToPokemon(species, r4);
spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 70, 6);
gSprites[spriteID].invisible = TRUE;
gSprites[spriteID].callback = SpriteCallbackDummy;
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
SetMultiuseSpriteTemplateToPokemon(species, position);
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 120, 70, 6);
gSprites[spriteId].invisible = TRUE;
gSprites[spriteId].callback = SpriteCallbackDummy;
break;
}
}
return spriteID;
return spriteId;
}
static void VBlankCB_EggHatch(void)
@ -2093,11 +2093,11 @@ static void CB2_EggHatch_0(void)
gMain.state++;
break;
case 5:
EggHatchCreateMonSprite(0, 0, sEggHatchData->eggPartyID, &sEggHatchData->species);
EggHatchCreateMonSprite(FALSE, 0, sEggHatchData->eggPartyID, &sEggHatchData->species);
gMain.state++;
break;
case 6:
sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(0, 1, sEggHatchData->eggPartyID, &sEggHatchData->species);
sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(FALSE, 1, sEggHatchData->eggPartyID, &sEggHatchData->species);
gMain.state++;
break;
case 7:
@ -2148,7 +2148,7 @@ static void Task_EggHatchPlayBGM(u8 taskID)
static void CB2_EggHatch_1(void)
{
u16 species;
enum Species species;
u8 gender;
u32 personality;
@ -2309,7 +2309,7 @@ static void SpriteCB_Egg_2(struct Sprite* sprite)
{
if (++sprite->data[0] > 38)
{
u16 species;
enum Species species;
sprite->callback = SpriteCB_Egg_3;
sprite->data[0] = 0;

View File

@ -209,7 +209,7 @@ struct DebugMenuOption
struct DebugMonData
{
u16 species;
enum Species species;
u8 level;
bool8 isShiny:1;
u8 nature:5;
@ -2401,7 +2401,7 @@ static void DebugAction_FlagsVars_PokedexFlags_All(u8 taskId)
static void DebugAction_FlagsVars_PokedexFlags_Reset(u8 taskId)
{
int boxId, boxPosition, partyId;
u16 species;
enum Species species;
// Reset Pokedex to emtpy
memset(&gSaveBlock1Ptr->dexCaught, 0, sizeof(gSaveBlock1Ptr->dexCaught));
@ -3480,7 +3480,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
u8 iv_val;
u8 EVs[NUM_STATS];
u8 ev_val;
u16 species = sDebugMonData->species;
enum Species species = sDebugMonData->species;
u8 level = sDebugMonData->level;
bool8 isShiny = sDebugMonData->isShiny;
u8 nature = sDebugMonData->nature;
@ -3723,7 +3723,7 @@ static void DebugAction_PCBag_Fill_PCBoxes_Fast(u8 taskId) //Credit: Sierraffini
{
int boxId, boxPosition;
struct BoxPokemon boxMon;
u16 species = SPECIES_BULBASAUR;
enum Species species = SPECIES_BULBASAUR;
u8 speciesName[POKEMON_NAME_LENGTH + 1];
CreateBoxMon(&boxMon, species, 100, Random32(), OTID_STRUCT_PLAYER_ID);

View File

@ -244,12 +244,12 @@ u32 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s
}
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality)
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality)
{
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE);
}
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg)
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg)
{
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, isEgg);
}
@ -1124,12 +1124,12 @@ static bool32 isModeSymDelta(enum CompressionMode mode)
return FALSE;
}
void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic)
void LoadSpecialPokePic(void *dest, enum Species species, u32 personality, bool8 isFrontPic)
{
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE);
}
void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg)
void LoadSpecialPokePicIsEgg(void *dest, enum Species species, u32 personality, bool8 isFrontPic, bool32 isEgg)
{
species = SanitizeSpeciesId(species);
if (species == SPECIES_UNOWN)

View File

@ -87,7 +87,7 @@ enum Statuses
struct DexNavSearch
{
u16 species;
enum Species species;
u16 moves[MAX_MON_MOVES];
u16 heldItem;
u8 abilityNum;
@ -144,13 +144,13 @@ static void Task_DexNavMain(u8 taskId);
static void PrintCurrentSpeciesInfo(void);
// SEARCH
static bool8 TryStartHiddenMonFieldEffect(u8 environment, u8 xSize, u8 ySize, bool8 smallScan);
static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel, u16* moveDst);
static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel);
static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel);
static void DexNavGenerateMoveset(enum Species species, u8 searchLevel, u8 encounterLevel, u16* moveDst);
static u16 DexNavGenerateHeldItem(enum Species species, u8 searchLevel);
static u8 DexNavGetAbilityNum(enum Species species, u8 searchLevel);
static u8 DexNavGeneratePotential(u8 searchLevel);
static u8 DexNavTryGenerateMonLevel(u16 species, u8 environment);
static u8 GetEncounterLevelFromMapData(u16 species, u8 environment);
static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, u16 item, u16* moves);
static u8 DexNavTryGenerateMonLevel(enum Species species, u8 environment);
static u8 GetEncounterLevelFromMapData(enum Species species, u8 environment);
static void CreateDexNavWildMon(enum Species species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move* moves);
static u8 GetPlayerDistance(s16 x, s16 y);
static u8 DexNavPickTile(u8 environment, u8 xSize, u8 ySize, bool8 smallScan);
static void DexNavProximityUpdate(void);
@ -439,7 +439,7 @@ static s16 GetSearchWindowY(void)
}
#define SPECIES_ICON_X 28
static void DrawDexNavSearchMonIcon(u16 species, u8 *dst, bool8 owned)
static void DrawDexNavSearchMonIcon(enum Species species, u8 *dst, bool8 owned)
{
u8 spriteId;
@ -478,7 +478,7 @@ static void AddSearchWindow(u8 width)
#define SEARCH_ARROW_X (WINDOW_MOVE_NAME_X + 90)
#define SEARCH_ARROW_Y 0
static void AddSearchWindowText(u16 species, u8 proximity, u8 searchLevel, bool8 hidden)
static void AddSearchWindowText(enum Species species, u8 proximity, u8 searchLevel, bool8 hidden)
{
u8 windowId = sDexNavSearchDataPtr->windowId;
@ -540,7 +540,7 @@ static void AddSearchWindowText(u16 species, u8 proximity, u8 searchLevel, bool8
#define SEARCH_WINDOW_WIDTH 28
static void DrawSearchWindow(u16 species, u8 potential, bool8 hidden)
static void DrawSearchWindow(enum Species species, u8 potential, bool8 hidden)
{
u8 searchLevel = sDexNavSearchDataPtr->searchLevel;
@ -829,7 +829,7 @@ static void Task_SetUpDexNavSearch(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
u8 searchLevel = GetSearchLevel(species);
// init sprites
@ -879,7 +879,7 @@ static void DexNavSearchBail(u8 taskId, const u8 *script)
static void Task_InitDexNavSearch(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u16 species = task->tSpecies;
enum Species species = (enum Species)task->tSpecies;
u8 environment = task->tEnvironment;
sDexNavSearchDataPtr = AllocZeroed(sizeof(struct DexNavSearch));
@ -966,7 +966,7 @@ static void DexNavUpdateDirectionArrow(void)
static void DexNavDrawIcons(void)
{
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
DrawSearchWindow(species, sDexNavSearchDataPtr->potential, FALSE);
DrawDexNavSearchMonIcon(species, &sDexNavSearchDataPtr->iconSpriteId, GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT));
@ -1024,7 +1024,7 @@ static u8 GetMovementProximityBySearchLevel(void)
static void Task_RevealHiddenMon(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
// remove owned icon if it exists
if (sDexNavSearchDataPtr->ownedIconSpriteId != MAX_SPRITES)
@ -1213,7 +1213,7 @@ static void DexNavUpdateSearchWindow(u8 proximity, u8 searchLevel)
//////////////////////////////
//// DEXNAV MON GENERATOR ////
//////////////////////////////
static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, u16 item, u16* moves)
static void CreateDexNavWildMon(enum Species species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move* moves)
{
struct Pokemon* mon = &gEnemyParty[0];
u8 iv[3] = {NUM_STATS};
@ -1253,7 +1253,7 @@ static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityN
// gets a random level of the species based on map data.
//if it was a hidden encounter, updates the environment it is to be found from the wildheader encounterRate
static u8 DexNavTryGenerateMonLevel(u16 species, u8 environment)
static u8 DexNavTryGenerateMonLevel(enum Species species, u8 environment)
{
u8 levelBase = GetEncounterLevelFromMapData(species, environment);
u8 levelBonus = gSaveBlock3Ptr->dexNavChain / 5;
@ -1270,7 +1270,7 @@ static u8 DexNavTryGenerateMonLevel(u16 species, u8 environment)
return levelBase + levelBonus;
}
static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel, u16* moveDst)
static void DexNavGenerateMoveset(enum Species species, u8 searchLevel, u8 encounterLevel, u16* moveDst)
{
bool8 genMove = FALSE;
u16 randVal = Random() % 100;
@ -1325,12 +1325,12 @@ static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel
}
}
static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel)
static u16 DexNavGenerateHeldItem(enum Species species, u8 searchLevel)
{
u16 randVal = Random() % 100;
u8 searchLevelInfluence = searchLevel >> 1;
u16 item1 = gSpeciesInfo[species].itemCommon;
u16 item2 = gSpeciesInfo[species].itemRare;
enum Item item1 = gSpeciesInfo[species].itemCommon;
enum Item item2 = gSpeciesInfo[species].itemRare;
// if both are the same, 100% to hold
if (item1 == item2)
@ -1353,7 +1353,7 @@ static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel)
return ITEM_NONE;
}
static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel)
static u8 DexNavGetAbilityNum(enum Species species, u8 searchLevel)
{
bool8 genAbility = FALSE;
u16 randVal = Random() % 100;
@ -1514,7 +1514,7 @@ static u8 DexNavGeneratePotential(u8 searchLevel)
return 0; // No potential
}
static u8 GetEncounterLevelFromMapData(u16 species, u8 environment)
static u8 GetEncounterLevelFromMapData(enum Species species, u8 environment)
{
u16 headerId = GetCurrentMapWildMonHeaderId();
enum Season season;
@ -1770,7 +1770,7 @@ static bool8 CapturedAllLandMons(u16 headerId)
static bool8 CapturedAllWaterMons(u16 headerId)
{
u32 i;
u16 species;
enum Species species;
u8 count = 0;
enum Season season;
enum TimeOfDay timeOfDay;
@ -1804,7 +1804,7 @@ static bool8 CapturedAllWaterMons(u16 headerId)
static bool8 CapturedAllHiddenMons(u16 headerId)
{
u32 i;
u16 species;
enum Species species;
u8 count = 0;
enum Season season;
enum TimeOfDay timeOfDay;
@ -1910,29 +1910,28 @@ static void DexNavFadeAndExit(void)
SetMainCallback2(DexNav_MainCB);
}
static bool8 SpeciesInArray(u16 species, u8 section)
static bool8 SpeciesInArray(enum Species species, u8 section)
{
u32 i;
u16 dexNum = SpeciesToNationalPokedexNum(species);
switch (section)
{
case 0: //land
for (i = 0; i < LAND_WILD_COUNT; i++)
for (u32 i = 0; i < LAND_WILD_COUNT; i++)
{
if (SpeciesToNationalPokedexNum(sDexNavUiDataPtr->landSpecies[i]) == dexNum)
return TRUE;
}
break;
case 1: //water
for (i = 0; i < WATER_WILD_COUNT; i++)
for (u32 i = 0; i < WATER_WILD_COUNT; i++)
{
if (SpeciesToNationalPokedexNum(sDexNavUiDataPtr->waterSpecies[i]) == dexNum)
return TRUE;
}
break;
case 2: //hidden
for (i = 0; i < HIDDEN_WILD_COUNT; i++)
for (u32 i = 0; i < HIDDEN_WILD_COUNT; i++)
{
if (SpeciesToNationalPokedexNum(sDexNavUiDataPtr->hiddenSpecies[i]) == dexNum)
return TRUE;
@ -1951,7 +1950,7 @@ static void DexNavLoadEncounterData(void)
u8 grassIndex = 0;
u8 waterIndex = 0;
u8 hiddenIndex = 0;
u16 species;
enum Species species;
u32 i;
u16 headerId = GetCurrentMapWildMonHeaderId();
enum Season season;
@ -2003,7 +2002,7 @@ static void DexNavLoadEncounterData(void)
}
}
static void TryDrawIconInSlot(u16 species, s16 x, s16 y)
static void TryDrawIconInSlot(enum Species species, s16 x, s16 y)
{
if (species == SPECIES_NONE || species > NUM_SPECIES)
CreateNoDataIcon(x, y); //'X' in slot
@ -2016,11 +2015,10 @@ static void TryDrawIconInSlot(u16 species, s16 x, s16 y)
static void DrawSpeciesIcons(void)
{
s16 x, y;
u32 i;
u16 species;
enum Species species;
LoadCompressedSpriteSheetUsingHeap(&sNoDataIconSpriteSheet);
for (i = 0; i < LAND_WILD_COUNT; i++)
for (u32 i = 0; i < LAND_WILD_COUNT; i++)
{
species = sDexNavUiDataPtr->landSpecies[i];
x = ROW_LAND_ICON_X + (24 * (i % COL_LAND_COUNT));
@ -2028,7 +2026,7 @@ static void DrawSpeciesIcons(void)
TryDrawIconInSlot(species, x, y);
}
for (i = 0; i < WATER_WILD_COUNT; i++)
for (u32 i = 0; i < WATER_WILD_COUNT; i++)
{
species = sDexNavUiDataPtr->waterSpecies[i];
x = ROW_WATER_ICON_X + 24 * i;
@ -2036,7 +2034,7 @@ static void DrawSpeciesIcons(void)
TryDrawIconInSlot(species, x, y);
}
for (i = 0; i < HIDDEN_WILD_COUNT; i++)
for (u32 i = 0; i < HIDDEN_WILD_COUNT; i++)
{
species = sDexNavUiDataPtr->hiddenSpecies[i];
x = ROW_HIDDEN_ICON_X + 24 * i;
@ -2050,9 +2048,9 @@ static void DrawSpeciesIcons(void)
}
}
static u16 DexNavGetSpecies(void)
static enum Species DexNavGetSpecies(void)
{
u16 species;
enum Species species;
switch (sDexNavUiDataPtr->cursorRow)
{
@ -2126,7 +2124,7 @@ static void SetTypeIconPosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId)
static void PrintCurrentSpeciesInfo(void)
{
u16 species = DexNavGetSpecies();
enum Species species = DexNavGetSpecies();
u16 dexNum = SpeciesToNationalPokedexNum(species);
u8 type1, type2;
@ -2205,7 +2203,7 @@ static void PrintMapName(void)
CopyWindowToVram(WINDOW_REGISTERED, 3);
}
static void PrintSearchableSpecies(u16 species)
static void PrintSearchableSpecies(enum Species species)
{
FillWindowPixelBuffer(WINDOW_REGISTERED, PIXEL_FILL(TEXT_COLOR_TRANSPARENT));
PutWindowTilemap(WINDOW_REGISTERED);
@ -2371,7 +2369,7 @@ static void Task_DexNavWaitFadeIn(u8 taskId)
static void Task_DexNavMain(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u16 species;
enum Species species;
if (IsSEPlaying())
return;
@ -2536,7 +2534,7 @@ bool8 TryFindHiddenPokemon(void)
// hidden pokemon
u16 headerId = GetCurrentMapWildMonHeaderId();
u8 index;
u16 species;
enum Species species;
u8 environment;
u8 taskId;
enum Season season;
@ -2669,7 +2667,7 @@ static void DrawHiddenSearchWindow(u8 width)
static void DexNavDrawHiddenIcons(void)
{
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
DrawHiddenSearchWindow(12);
DrawSearchIcon();

View File

@ -2700,7 +2700,7 @@ static void ResetPickState(void)
sGame->players[sGame->multiplayerId].comm.pickState = PICK_NONE;
}
static u16 GetPrizeItemId(void)
static enum Item GetPrizeItemId(void)
{
return sGame->berryResults[sGame->multiplayerId][BERRY_PRIZE] + FIRST_BERRY_INDEX;
}
@ -2857,7 +2857,7 @@ enum {
static u8 TryGivePrize(void)
{
u8 multiplayerId = sGame->multiplayerId;
u16 itemId = GetPrizeItemId();
enum Item itemId = GetPrizeItemId();
if (GetScore(multiplayerId) != GetHighestScore())
return NO_PRIZE;

View File

@ -34,7 +34,7 @@ static void PopulateAlphabeticalGroups(void);
static u16 GetUnlockedWordsInECGroup(u16);
static u16 GetUnlockedWordsInAlphabeticalGroup(u16);
static bool8 UnlockedECMonOrMove(u16, u8);
static bool32 EC_IsDeoxys(u16 species);
static bool32 EC_IsDeoxys(enum Species species);
static bool8 IsWordUnlocked(u16 word);
#include "data/easy_chat/easy_chat_groups.h"
@ -81,8 +81,11 @@ static const u16 sDefaultBattleStartWords[] = {
EC_WORD_EXCL,
};
static const u16 sDeoxysValue[] = {
static const enum Species sDeoxysValue[] = {
SPECIES_DEOXYS,
SPECIES_DEOXYS_ATTACK,
SPECIES_DEOXYS_DEFENSE,
SPECIES_DEOXYS_SPEED,
};
static bool8 IsECGroupUnlocked(u8 groupId)
@ -623,7 +626,7 @@ static bool8 UnlockedECMonOrMove(u16 wordIndex, u8 groupId)
}
}
static bool32 EC_IsDeoxys(u16 species)
static bool32 EC_IsDeoxys(enum Species species)
{
u32 i;
for (i = 0; i < ARRAY_COUNT(sDeoxysValue); i++)

View File

@ -115,7 +115,7 @@ static u8 MovementType_RaiseHandAndJump_Callback(struct ObjectEvent *, struct Sp
static u8 MovementType_RaiseHandAndSwim_Callback(struct ObjectEvent *, struct Sprite *);
static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *, struct Sprite *);
static void VirtualObject_UpdateAnim(struct Sprite *sprite);
static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female);
static u32 LoadDynamicFollowerPalette(enum Species species, bool32 shiny, bool32 female);
static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
static u16 GetGraphicsIdForMon(u32 species, bool32 shiny, bool32 female);
@ -1960,7 +1960,7 @@ static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphics
// also can write palette tag to the template
static u32 LoadDynamicFollowerPaletteFromGraphicsId(u16 graphicsId, struct SpriteTemplate *template)
{
u16 species = graphicsId & OBJ_EVENT_MON_SPECIES_MASK;
enum Species species = graphicsId & OBJ_EVENT_MON_SPECIES_MASK;
bool32 shiny = graphicsId & OBJ_EVENT_MON_SHINY;
bool32 female = graphicsId & OBJ_EVENT_MON_FEMALE;
u8 paletteNum = LoadDynamicFollowerPalette(species, shiny, female);
@ -2137,7 +2137,7 @@ const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32
}
// Find, or load, the palette for the specified pokemon info
static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female)
static u32 LoadDynamicFollowerPalette(enum Species species, bool32 shiny, bool32 female)
{
u32 paletteNum;
// Use standalone palette, unless entry is OOB or NULL (fallback to front-sprite-based)
@ -2271,7 +2271,7 @@ static void RefreshFollowerGraphics(struct ObjectEvent *objEvent)
}
}
u16 GetOverworldWeatherSpecies(u16 species)
enum Species GetOverworldWeatherSpecies(enum Species species)
{
u32 i;
u32 weather = GetCurrentWeather();
@ -2400,7 +2400,7 @@ bool32 IsFollowerVisible(void)
|| MetatileBehavior_IsForcedMovementTile(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior));
}
static bool8 SpeciesHasType(u16 species, u8 type)
static bool8 SpeciesHasType(enum Species species, enum Type type)
{
return gSpeciesInfo[species].types[0] == type || gSpeciesInfo[species].types[1] == type;
}

View File

@ -386,7 +386,7 @@ static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId)
DestroyTask(taskId);
}
u8 EvolutionSparkles_SprayAndFlash(u16 species)
u8 EvolutionSparkles_SprayAndFlash(enum Species species)
{
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2Init, 0);
gTasks[taskId].data[2] = species;
@ -437,7 +437,7 @@ static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId)
DestroyTask(taskId);
}
u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species)
u8 EvolutionSparkles_SprayAndFlash_Trade(enum Species species)
{
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2TradeInit, 0);
gTasks[taskId].data[2] = species;

View File

@ -1004,7 +1004,7 @@ static void Task_EvolutionScene(u8 taskId)
else
{
// Selected move to forget
u16 move = GetMonData(mon, var + MON_DATA_MOVE1);
enum Move move = GetMonData(mon, var + MON_DATA_MOVE1);
if (CannotForgetMove(move))
{
// Can't forget HMs
@ -1403,7 +1403,7 @@ static void Task_TradeEvolutionScene(u8 taskId)
else
{
// Selected move to forget
u16 move = GetMonData(mon, var + MON_DATA_MOVE1);
enum Move move = GetMonData(mon, var + MON_DATA_MOVE1);
if (CannotForgetMove(move))
{
// Can't forget HMs

View File

@ -819,9 +819,10 @@ bool8 FieldEffectActiveListContains(enum FieldEffect fldeff)
return FALSE;
}
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
u8 CreateMonSprite_PicBox(enum Species species, s16 x, s16 y, u8 subpriority)
{
u16 spriteId = CreateMonFrontPicSprite(species, FALSE, 0x8000, x, y, 0, species);
PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10);
if (spriteId == 0xFFFF)
return MAX_SPRITES;
@ -829,7 +830,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
return spriteId;
}
static u8 CreateMonSprite_FieldMove(u16 species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 subpriority)
static u8 CreateMonSprite_FieldMove(enum Species species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 subpriority)
{
u16 spriteId = CreateMonFrontPicSprite(species, isShiny, personality, x, y, 0, species);
PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10);
@ -3030,7 +3031,7 @@ u32 FldEff_FieldMoveShowMonInit(void)
if (gFieldEffectArguments[0] & SHOW_MON_NOT_IN_PARTY)
{
u16 species = gFieldEffectArguments[0] & (~SHOW_MON_NOT_IN_PARTY);
u32 species = gFieldEffectArguments[0] & (~SHOW_MON_NOT_IN_PARTY);
gFieldEffectArguments[0] = species;
gFieldEffectArguments[1] = FALSE;

View File

@ -187,7 +187,7 @@ const struct FieldMoveInfo gFieldMovesInfo[FIELD_MOVE_COUNT] =
};
u16 FieldMove_GetDefaultSpecies(enum FieldMove fieldMove)
enum Species FieldMove_GetDefaultSpecies(enum FieldMove fieldMove)
{
if (fieldMove >= FIELD_MOVE_COUNT)
return SPECIES_NONE;

View File

@ -18,10 +18,9 @@
static bool32 IsMonValidSpecies(struct Pokemon *pokemon)
{
u16 species = GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG);
if (species == SPECIES_NONE || species == SPECIES_EGG)
return FALSE;
return TRUE;
enum Species species = GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG);
return species != SPECIES_NONE && species != SPECIES_EGG;
}
static bool32 AllMonsFainted(void)

View File

@ -88,7 +88,7 @@ static void Task_AnimatePcTurnOn(u8 taskId);
static void PcTurnOnUpdateMetatileId(bool16 flag);
static void Task_ShakeScreen(u8 taskId);
static void Task_EndScreenShake(u8 taskId);
static u16 SampleResortGorgeousMon(void);
static enum Species SampleResortGorgeousMon(void);
static u16 SampleResortGorgeousReward(void);
static void Task_ElevatorShake(u8 taskId);
static void AnimateElevatorWindowView(u16 nfloors, bool8 direction);
@ -102,7 +102,7 @@ static void Task_SuspendListMenu(u8 taskId);
static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId);
static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static u16 GetStarterSpeciesById(u16 starterIdx);
static enum Species GetStarterSpeciesById(u16 starterIdx);
static void ChangeBoxPokemonNickname_CB(void);
static void ChangePokemonNickname_CB(void);
static void Task_RunPokemonLeagueLightingEffect(u8 taskId);
@ -387,16 +387,13 @@ bool8 PlayerHasGrassPokemonInParty(void)
{
u8 i;
struct Pokemon * pokemon;
u16 species;
for (i = 0; i < PARTY_SIZE; i++)
{
pokemon = &gPlayerParty[i];
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES)
&& !GetMonData(pokemon, MON_DATA_IS_EGG)
)
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG))
{
species = GetMonData(pokemon, MON_DATA_SPECIES);
enum Species species = GetMonData(pokemon, MON_DATA_SPECIES);
if (gSpeciesInfo[species].types[0] == TYPE_GRASS || gSpeciesInfo[species].types[1] == TYPE_GRASS)
return TRUE;
}
@ -646,7 +643,7 @@ bool8 AreLeadMonEVsMaxedOut(void)
bool8 IsStarterFirstStageInParty(void)
{
u16 species = GetStarterSpeciesById(VarGet(VAR_STARTER_MON));
enum Species species = GetStarterSpeciesById(VarGet(VAR_STARTER_MON));
u8 partyCount = CalculatePlayerPartyCount();
u8 i;
for (i = 0; i < partyCount; i++)
@ -907,11 +904,11 @@ void SampleResortGorgeousMonAndReward(void)
StringCopy(gStringVar1, gSpeciesInfo[VarGet(VAR_RESORT_GORGEOUS_REQUESTED_MON)].speciesName);
}
static u16 SampleResortGorgeousMon(void)
static enum Species SampleResortGorgeousMon(void)
{
u16 i;
u16 species;
for (i = 0; i < 100; i++)
enum Species species;
for (u16 i = 0; i < 100; i++)
{
species = (Random() % (NUM_SPECIES - 1)) + 1;
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == TRUE)
@ -1730,20 +1727,20 @@ void ForcePlayerToStartSurfing(void)
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_SURFING);
}
static const u16 sStarterSpecies[] = {
static const enum Species sStarterSpecies[] = {
SPECIES_BULBASAUR,
SPECIES_SQUIRTLE,
SPECIES_CHARMANDER
};
static u16 GetStarterSpeciesById(u16 idx)
static enum Species GetStarterSpeciesById(u16 idx)
{
if (idx >= ARRAY_COUNT(sStarterSpecies))
idx = 0;
return sStarterSpecies[idx];
}
u16 GetStarterSpecies(void)
enum Species GetStarterSpecies(void)
{
return GetStarterSpeciesById(VarGet(VAR_STARTER_MON));
}
@ -1866,16 +1863,15 @@ bool8 NameRaterWasNicknameChanged(void)
void ChangeBoxPokemonNickname(void)
{
struct BoxPokemon * pokemon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos);
u16 species;
enum Species species;
u8 gender;
u32 personality;
GetBoxMonData(pokemon, MON_DATA_NICKNAME, gStringVar3);
GetBoxMonData(pokemon, MON_DATA_NICKNAME, gStringVar2);
species = GetBoxMonData(pokemon, MON_DATA_SPECIES, NULL);
species = GetBoxMonData(pokemon, MON_DATA_SPECIES);
gender = GetBoxMonGender(pokemon);
personality = GetBoxMonData(pokemon, MON_DATA_PERSONALITY, NULL);
personality = GetBoxMonData(pokemon, MON_DATA_PERSONALITY);
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, species, gender, personality, ChangeBoxPokemonNickname_CB);
}
@ -1887,15 +1883,15 @@ static void ChangeBoxPokemonNickname_CB(void)
void ChangePokemonNickname(void)
{
u16 species;
enum Species species;
u8 gender;
u32 personality;
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3);
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2);
species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL);
species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES);
gender = GetMonGender(&gPlayerParty[gSpecialVar_0x8004]);
personality = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL);
personality = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY);
DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, species, gender, personality, ChangePokemonNickname_CB);
}
@ -1946,18 +1942,21 @@ u8 GetUnlockedSeviiAreas(void)
void UpdateTrainerCardPhotoIcons(void)
{
u16 species[PARTY_SIZE];
enum Species species[PARTY_SIZE];
u32 personality[PARTY_SIZE];
u8 i;
u8 partyCount;
for (i = 0; i < PARTY_SIZE; i++)
species[i] = SPECIES_NONE;
partyCount = CalculatePlayerPartyCount();
for (i = 0; i < partyCount; i++)
{
species[i] = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL);
personality[i] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY, NULL);
}
VarSet(VAR_TRAINER_CARD_MON_ICON_1, SpeciesToMailSpecies(species[0], personality[0]));
VarSet(VAR_TRAINER_CARD_MON_ICON_2, SpeciesToMailSpecies(species[1], personality[1]));
VarSet(VAR_TRAINER_CARD_MON_ICON_3, SpeciesToMailSpecies(species[2], personality[2]));
@ -2467,7 +2466,8 @@ bool8 CapeBrinkGetMoveToTeachLeadPokemon(void)
// 8007 = Index of lead mon
// to specialvar = whether a move can be taught in the first place
u8 i, leadMonSlot, moveCount = 0;
u16 moveId, tutorFlag;
enum Move moveId;
u16 tutorFlag;
struct Pokemon *leadMon;
leadMonSlot = GetLeadMonIndex();

View File

@ -237,8 +237,8 @@ static void UpdateWeatherForms(void)
for (i = 0; i < PARTY_SIZE; i++)
{
struct Pokemon *mon = &gPlayerParty[i];
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u16 targetSpecies = GetOverworldWeatherSpecies(species);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
enum Species targetSpecies = GetOverworldWeatherSpecies(species);
if (species != targetSpecies)
{
SetMonData(mon, MON_DATA_SPECIES, &targetSpecies);

View File

@ -82,7 +82,7 @@ int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu)
return finalWidth;
}
void CopyMonCategoryText(u16 species, u8 *dest)
void CopyMonCategoryText(enum Species species, u8 *dest)
{
u8 *str = StringCopy(dest, GetSpeciesCategory(species));
*str = CHAR_SPACE;

View File

@ -32,8 +32,8 @@ EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {};
static bool32 CheckPyramidBagHasItem(enum Item itemId, u16 count);
static bool32 CheckPyramidBagHasSpace(enum Item itemId, u16 count);
static const u8 *ItemId_GetPluralName(u16);
static bool32 DoesItemHavePluralName(u16);
static const u8 *ItemId_GetPluralName(enum Item itemId);
static bool32 DoesItemHavePluralName(enum Item itemId);
static void NONNULL BagPocket_CompactItems(struct BagPocket *pocket);
// Item descriptions and data
@ -142,7 +142,7 @@ static inline u16 GetBagItemQuantityPocket(struct BagPocket *pocket, u32 pocketP
return pocket->itemSlots[pocketPos].quantity;
}
static inline void SetBagItemIdPocket(struct BagPocket *pocket, u32 pocketPos, u16 itemId)
static inline void SetBagItemIdPocket(struct BagPocket *pocket, u32 pocketPos, enum Item itemId)
{
pocket->itemSlots[pocketPos].itemId = itemId;
}
@ -152,7 +152,7 @@ static inline void SetBagItemQuantityPocket(struct BagPocket *pocket, u32 pocket
pocket->itemSlots[pocketPos].quantity = newValue;
}
// static void SetBagItemId(enum Pocket pocketId, u32 pocketPos, u16 itemId)
// static void SetBagItemId(enum Pocket pocketId, u32 pocketPos, enum Item itemId)
// {
// SetBagItemIdPocket(&gBagPockets[pocketId], pocketPos, itemId);
// }
@ -195,14 +195,14 @@ void SetBagItemsPointers(void)
gBagPockets[POCKET_BERRIES].id = POCKET_BERRIES;
}
u8 *CopyItemName(u16 itemId, u8 * dest)
u8 *CopyItemName(enum Item itemId, u8 * dest)
{
return StringCopy(dest, GetItemName(itemId));
}
const u8 sText_s[] =_("s");
u8 *CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity)
u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *dst, u32 quantity)
{
if (quantity == 1)
{
@ -232,7 +232,7 @@ s8 BagPocketGetFirstEmptySlot(u8 pocketId)
return -1;
}
bool8 IsBagPocketNonEmpty(u8 pocketId)
bool32 IsBagPocketNonEmpty(u8 pocketId)
{
u8 i;
@ -245,7 +245,7 @@ bool8 IsBagPocketNonEmpty(u8 pocketId)
return FALSE;
}
bool8 CheckBagHasItem(u16 itemId, u16 count)
bool32 CheckBagHasItem(enum Item itemId, u16 count)
{
u8 i;
enum Pocket pocket = GetItemPocket(itemId);
@ -278,7 +278,7 @@ bool8 CheckBagHasItem(u16 itemId, u16 count)
bool32 HasAtLeastOneBerry(void)
{
u16 itemId;
enum Item itemId;
bool8 exists;
exists = CheckBagHasItem(ITEM_BERRY_POUCH, 1);
@ -311,7 +311,7 @@ bool32 HasAtLeastOnePokeBall(void)
return FALSE;
}
bool8 CheckBagHasSpace(u16 itemId, u16 count)
bool32 CheckBagHasSpace(enum Item itemId, u16 count)
{
if (GetItemPocket(itemId) == POCKET_NONE)
return FALSE;
@ -322,7 +322,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
return GetFreeSpaceForItemInBag(itemId) >= count;
}
static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 itemId)
static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, enum Item itemId)
{
u32 spaceForItem = 0;
struct ItemSlot tempItem;
@ -338,7 +338,7 @@ static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 i
return spaceForItem;
}
u32 GetFreeSpaceForItemInBag(u16 itemId)
u32 GetFreeSpaceForItemInBag(enum Item itemId)
{
u8 pocket = GetItemPocket(itemId);
@ -348,7 +348,7 @@ u32 GetFreeSpaceForItemInBag(u16 itemId)
return BagPocket_GetFreeSpaceForItem(&gBagPockets[GetItemPocket(itemId)], itemId);
}
static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u16 itemId, u32 pocketPos, u32 *nextPocketPos, u16 *count, u16 *tempPocketSlotQuantities)
static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, enum Item itemId, u32 pocketPos, u32 *nextPocketPos, u16 *count, u16 *tempPocketSlotQuantities)
{
struct ItemSlot tempItem = BagPocket_GetSlotData(pocket, pocketPos);
if (tempItem.itemId == ITEM_NONE || tempItem.itemId == itemId)
@ -371,7 +371,7 @@ static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u
return FALSE;
}
static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u16 count)
static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, enum Item itemId, u16 count)
{
u32 itemLookupIndex, itemAddIndex = 0;
@ -413,7 +413,7 @@ static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u1
return count == 0;
}
bool8 AddBagItem(u16 itemId, u16 count)
bool32 AddBagItem(enum Item itemId, u16 count)
{
enum Pocket pocket = GetItemPocket(itemId);
s8 idx;
@ -453,7 +453,7 @@ bool8 AddBagItem(u16 itemId, u16 count)
return BagPocket_AddItem(&gBagPockets[GetItemPocket(itemId)], itemId, count);
}
static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId, u16 count)
static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, enum Item itemId, u16 count)
{
u32 itemLookupIndex, itemRemoveIndex = 0, totalQuantity = 0;
struct ItemSlot tempItem;
@ -491,7 +491,7 @@ static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId,
return totalQuantity >= count;
}
bool8 RemoveBagItem(u16 itemId, u16 count)
bool32 RemoveBagItem(enum Item itemId, u16 count)
{
enum Pocket pocket = GetItemPocket(itemId);
@ -516,7 +516,7 @@ void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count)
BagPocket_SetSlotItemIdAndCount(pocket, slotId, itemSlot.itemId, itemSlot.quantity - count);
}
u8 GetPocketByItemId(u16 itemId)
u8 GetPocketByItemId(enum Item itemId)
{
return GetItemPocket(itemId); // wow such important
}
@ -604,7 +604,7 @@ u8 CountItemsInPC(void)
return BagPocket_CountUsedItemSlots(&dummyPocket);
}
static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket, u16 itemId, u16 count)
static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket, enum Item itemId, u16 count)
{
struct ItemSlot tempItem;
@ -617,13 +617,13 @@ static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket
return FALSE;
}
bool8 CheckPCHasItem(u16 itemId, u16 count)
bool32 CheckPCHasItem(enum Item itemId, u16 count)
{
struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET;
return BagPocket_CheckPocketForItemCount(&dummyPocket, itemId, count);
}
bool8 AddPCItem(u16 itemId, u16 count)
bool32 AddPCItem(enum Item itemId, u16 count)
{
struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET;
return BagPocket_AddItem(&dummyPocket, itemId, count);
@ -683,7 +683,7 @@ void RegisteredItemHandleBikeSwap(void)
}
}
u16 CountTotalItemQuantityInBag(u16 itemId)
u16 CountTotalItemQuantityInBag(enum Item itemId)
{
u16 i;
u16 ownedCount = 0;
@ -899,7 +899,7 @@ bool32 RemovePyramidBagItem(enum Item itemId, u16 count)
}
}
void TrySetObtainedItemQuestLogEvent(u16 itemId)
void TrySetObtainedItemQuestLogEvent(enum Item itemId)
{
// Only some key items trigger this event
if (itemId == ITEM_OAKS_PARCEL
@ -934,7 +934,7 @@ void TrySetObtainedItemQuestLogEvent(u16 itemId)
}
}
u16 SanitizeItemId(u16 itemId)
u16 SanitizeItemId(enum Item itemId)
{
assertf(itemId < ITEMS_COUNT, "invalid item: %d", itemId)
{
@ -944,70 +944,70 @@ u16 SanitizeItemId(u16 itemId)
return itemId;
}
const u8 * GetItemName(u16 itemId)
const u8 *GetItemName(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].name;
}
u32 GetItemPrice(u16 itemId)
u32 GetItemPrice(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].price;
}
static bool32 DoesItemHavePluralName(u16 itemId)
static bool32 DoesItemHavePluralName(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].pluralName != NULL;
}
static const u8 *ItemId_GetPluralName(u16 itemId)
static const u8 *ItemId_GetPluralName(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].pluralName;
}
u8 GetItemHoldEffect(u16 itemId)
u8 GetItemHoldEffect(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].holdEffect;
}
u8 GetItemHoldEffectParam(u16 itemId)
u8 GetItemHoldEffectParam(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].holdEffectParam;
}
const u8 * GetItemDescription(u16 itemId)
const u8 *GetItemDescription(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].description;
}
u8 GetItemImportance(u16 itemId)
u8 GetItemImportance(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].importance;
}
u8 GetItemConsumability(u16 itemId)
u8 GetItemConsumability(enum Item itemId)
{
return !gItemsInfo[SanitizeItemId(itemId)].notConsumed;
}
enum Pocket GetItemPocket(u16 itemId)
enum Pocket GetItemPocket(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].pocket;
}
u8 GetItemType(u16 itemId)
u8 GetItemType(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].type;
}
ItemUseFunc GetItemFieldFunc(u16 itemId)
ItemUseFunc GetItemFieldFunc(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].fieldUseFunc;
}
// Returns an item's battle effect script ID.
u8 GetItemBattleUsage(u16 itemId)
u8 GetItemBattleUsage(enum Item itemId)
{
u16 item = SanitizeItemId(itemId);
enum Item item = SanitizeItemId(itemId);
// Handle E-Reader berries.
if (item == ITEM_ENIGMA_BERRY_E_READER)
{
@ -1036,17 +1036,17 @@ u8 GetItemBattleUsage(u16 itemId)
return gItemsInfo[item].battleUsage;
}
u16 GetItemSecondaryId(u16 itemId)
u16 GetItemSecondaryId(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].secondaryId;
}
u32 GetItemFlingPower(u32 itemId)
u32 GetItemFlingPower(enum Item itemId)
{
return gItemsInfo[SanitizeItemId(itemId)].flingPower;
}
const u8 *GetItemEffect(u32 itemId)
const u8 *GetItemEffect(enum Item itemId)
{
if (itemId == ITEM_ENIGMA_BERRY_E_READER)
#if FREE_ENIGMA_BERRY == FALSE
@ -1059,7 +1059,7 @@ const u8 *GetItemEffect(u32 itemId)
}
u32 GetItemStatus1Mask(u16 itemId)
u32 GetItemStatus1Mask(enum Item itemId)
{
const u8 *effect = GetItemEffect(itemId);
switch (effect[3])
@ -1080,7 +1080,7 @@ u32 GetItemStatus1Mask(u16 itemId)
return 0;
}
bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile)
bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile _volatile)
{
const u8 *effect = GetItemEffect(itemId);
switch (_volatile)
@ -1094,7 +1094,7 @@ bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile)
}
}
u32 GetItemSellPrice(u32 itemId)
u32 GetItemSellPrice(enum Item itemId)
{
return GetItemPrice(itemId) / ITEM_SELL_FACTOR;
}
@ -1106,24 +1106,24 @@ bool32 IsHoldEffectChoice(enum HoldEffect holdEffect)
|| holdEffect == HOLD_EFFECT_CHOICE_SPECS;
}
bool32 IsItemTM(u16 itemId)
bool32 IsItemTM(enum Item itemId)
{
enum TMHMIndex index = GetItemTMHMIndex(SanitizeItemId(itemId));
return index > 0 && index <= NUM_TECHNICAL_MACHINES;
}
bool32 IsItemHM(u16 itemId)
bool32 IsItemHM(enum Item itemId)
{
return GetItemTMHMIndex(SanitizeItemId(itemId)) > NUM_TECHNICAL_MACHINES;
}
bool32 IsItemTMHM(u16 itemId)
bool32 IsItemTMHM(enum Item itemId)
{
enum TMHMIndex index = GetItemTMHMIndex(SanitizeItemId(itemId));
return index > 0 && index <= NUM_ALL_MACHINES;
}
bool32 IsItemBall(u16 itemId)
bool32 IsItemBall(enum Item itemId)
{
return GetPocketByItemId(itemId) == POCKET_POKE_BALLS;
}

View File

@ -42,7 +42,7 @@ void CopyItemIconPicTo4x4Buffer(const void *src, void *dest)
CpuCopy16(src + i * 96, dest + i * 128, 0x60);
}
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId)
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId)
{
struct SpriteTemplate *spriteTemplate;
struct SpriteSheet spriteSheet;
@ -75,7 +75,7 @@ u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId)
return spriteId;
}
u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId)
u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId)
{
struct SpriteTemplate template;
struct SpriteSheet spriteSheet;
@ -106,7 +106,7 @@ u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tiles
return spriteId;
}
const void *GetItemIconPic(u16 itemId)
const void *GetItemIconPic(enum Item itemId)
{
if (itemId == ITEM_FIELD_ARROW)
return gItemIcon_ReturnToFieldArrow; // Use last icon, the "return to field" arrow
@ -122,7 +122,7 @@ const void *GetItemIconPic(u16 itemId)
return gItemsInfo[itemId].iconPic;
}
const void *GetItemIconPalette(u16 itemId)
const void *GetItemIconPalette(enum Item itemId)
{
if (itemId == ITEM_FIELD_ARROW)
return gItemIconPalette_ReturnToFieldArrow;

View File

@ -193,7 +193,7 @@ static void ConfirmSell(u8 taskId);
static void CancelSell(u8 taskId);
// pokefirered functions
static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId);
static void BagListMenuGetItemNameColored(u8 *dest, enum Item itemId);
static void PrintPocketName(void);
static void GoToTMCase_Give(void);
static void GoToBerryPouch_Give(void);
@ -1018,7 +1018,7 @@ static void LoadBagItemListBuffers(u8 pocketId)
gMultiuseListMenuTemplate.maxShowed = gBagMenu->numShownItems[pocketId];
}
static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId)
static void BagListMenuGetItemNameColored(u8 *dest, enum Item itemId)
{
u8* end;
if (itemId == ITEM_TM_CASE || itemId == ITEM_BERRY_POUCH)
@ -1052,10 +1052,9 @@ static void BagMenu_MoveCursorCallback(s32 itemIndex, bool8 onInit, struct ListM
static void BagMenu_ItemPrintCallback(u8 windowId, u32 itemIndex, u8 y)
{
u16 itemId;
enum Item itemId;
u16 itemQuantity;
if (itemIndex == LIST_CANCEL)
return;

View File

@ -160,7 +160,7 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite)
}
}
void AddBagItemIconSprite(u16 itemId, u8 id)
void AddBagItemIconSprite(enum Item itemId, u8 id)
{
u8 *spriteIds = &gBagMenu->spriteIds[ITEMMENUSPRITE_ITEM];

View File

@ -74,7 +74,7 @@ static void ItemPc_PlaceTopMenuScrollIndicatorArrows(void);
static void ItemPc_SetCursorPosition(void);
static void ItemPc_FreeResources(void);
static void Task_ItemPcTurnOff2(u8 taskId);
static u16 ItemPc_GetItemIdBySlotId(u16 itemIndex);
static enum Item ItemPc_GetItemIdBySlotId(u16 itemIndex);
static u16 ItemPc_GetItemQuantityBySlotId(u16 itemIndex);
static void ItemPc_CountPcItems(void);
static void ItemPc_SetScrollPosition(void);
@ -516,7 +516,7 @@ static void ItemPc_BuildListMenuTemplate(void)
gMultiuseListMenuTemplate.cursorKind = 0;
}
static void AddPcItemIconSprite(u16 item, u8 iconSlot)
static void AddPcItemIconSprite(enum Item item, u8 iconSlot)
{
u8 *spriteIdPtr = &sStateDataPtr->itemSpriteIds[iconSlot];
@ -537,7 +537,7 @@ static void AddPcItemIconSprite(u16 item, u8 iconSlot)
}
}
static void RemovePcItemIconSprite(u16 item, u8 iconSlot)
static void RemovePcItemIconSprite(enum Item item, u8 iconSlot)
{
u8 *spriteIdPtr = &sStateDataPtr->itemSpriteIds[iconSlot];
if (*spriteIdPtr == SPRITE_NONE)
@ -549,9 +549,9 @@ static void RemovePcItemIconSprite(u16 item, u8 iconSlot)
*spriteIdPtr = SPRITE_NONE;
}
static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list)
static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
u16 itemId;
enum Item itemId;
const u8 * desc;
if (onInit != TRUE)
PlaySE(SE_SELECT);
@ -705,7 +705,7 @@ static u8 ItemPc_GetCursorPosition(void)
return sListMenuState.scroll + sListMenuState.row;
}
static u16 ItemPc_GetItemIdBySlotId(u16 idx)
static enum Item ItemPc_GetItemIdBySlotId(u16 idx)
{
return gSaveBlock1Ptr->pcItems[idx].itemId;
}
@ -937,7 +937,7 @@ static void Task_ItemPcWithdraw(u8 taskId)
static void ItemPc_DoWithdraw(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u16 itemId = ItemPc_GetItemIdBySlotId(data[1]);
enum Item itemId = ItemPc_GetItemIdBySlotId(data[1]);
u8 windowId;
if (AddBagItem(itemId, tItemCount) == TRUE)
@ -997,7 +997,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId)
static void ItemPc_WithdrawMultipleInitWindow(u16 slotId)
{
u16 itemId = ItemPc_GetItemIdBySlotId(slotId);
enum Item itemId = ItemPc_GetItemIdBySlotId(slotId);
CopyItemName(itemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_WithdrawHowMany);

View File

@ -175,7 +175,7 @@ static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId)
UnlockPlayerFieldControls();
}
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId)
{
if (GetItemPocket(itemId) == POCKET_TM_HM)
return 1;
@ -1059,7 +1059,7 @@ static const u8 sText_CantThrowPokeBall_TwoMons[] = _("Cannot throw a ball!\nThe
static const u8 sText_CantThrowPokeBall_SemiInvulnerable[] = _("Cannot throw a ball!\nThere's no Pokémon in sight!\p");
static const u8 sText_CantThrowPokeBall_Disabled[] = _("POKé BALLS cannot be used\nright now!\p");
static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId)
static bool32 IteamHealsMonVolatile(u32 battler, enum Item itemId)
{
const u8 *effect = GetItemEffect(itemId);
if (effect[3] & ITEM3_STATUS_ALL)
@ -1072,7 +1072,7 @@ static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId)
return FALSE;
}
static bool32 SelectedMonHasVolatile(u16 itemId)
static bool32 SelectedMonHasVolatile(enum Item itemId)
{
if (gPartyMenu.slotId == 0)
return IteamHealsMonVolatile(0, itemId);
@ -1082,7 +1082,7 @@ static bool32 SelectedMonHasVolatile(u16 itemId)
}
// Returns whether an item can be used in battle and sets the fail text.
bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon)
bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon)
{
u16 battleUsage = GetItemBattleUsage(itemId);
bool8 cannotUse = FALSE;
@ -1270,7 +1270,7 @@ void ItemUseOutOfBattle_CannotUse(u8 taskId)
PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]);
}
void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, u16 itemId, u16 param)
void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, enum Item itemId, u16 param)
{
struct QuestLogEvent_Item *data = Alloc(sizeof(*data));

View File

@ -440,7 +440,8 @@ static const struct MailAttrStruct sMessageLayouts_5x2[] = {
void ReadMail(struct Mail * mail, void (*savedCallback)(void), bool8 messageExists)
{
u16 sp0;
u16 species;
enum Species species;
sMailViewResources = AllocZeroed(sizeof(struct MailViewResources));
sMailViewResources->unused = 2;
sMailViewResources->mailArrangementType = 1;

View File

@ -30,25 +30,25 @@ void ClearMailStruct(struct Mail *mail)
bool8 MonHasMail(struct Pokemon *mon)
{
u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF)
enum Item heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != MAIL_NONE)
return TRUE;
else
return FALSE;
}
u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
u8 GiveMailToMon(struct Pokemon *mon, enum Item itemId)
{
u8 heldItem[2];
u8 id, i;
u16 species;
u8 i;
enum Species species;
u32 personality;
heldItem[0] = itemId;
heldItem[1] = itemId >> 8;
for (id = 0; id < PARTY_SIZE; id++)
for (u8 id = 0; id < PARTY_SIZE; id++)
{
if (gSaveBlock1Ptr->mail[id].itemId == 0)
if (gSaveBlock1Ptr->mail[id].itemId == ITEM_NONE)
{
for (i = 0; i < MAIL_WORDS_COUNT; i++)
gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF;
@ -71,18 +71,17 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
return 0xFF;
}
u16 SpeciesToMailSpecies(u16 species, u32 personality)
u16 SpeciesToMailSpecies(enum Species species, u32 personality)
{
if (species == SPECIES_UNOWN) {
u32 mailSpecies = GetUnownLetterByPersonality(personality) + UNOWN_OFFSET;
return mailSpecies;
}
if (species == SPECIES_UNOWN)
return GetUnownLetterByPersonality(personality) + UNOWN_OFFSET;
return species;
}
u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer)
enum Species MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer)
{
u16 result;
enum Species result;
if (mailSpecies >= UNOWN_OFFSET && mailSpecies < UNOWN_OFFSET + NUM_UNOWN_FORMS)
{
@ -100,7 +99,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer)
u8 GiveMailToMon2(struct Pokemon *mon, struct Mail *mail)
{
u8 heldItem[2];
u16 itemId = mail->itemId;
enum Item itemId = mail->itemId;
u8 mailId = GiveMailToMon(mon, itemId);
if (mailId == 0xFF)
@ -169,7 +168,7 @@ u8 TakeMailFromMonAndSave(struct Pokemon *mon)
return newMailId;
}
bool8 ItemIsMail(u16 itemId)
bool8 ItemIsMail(enum Item itemId)
{
switch (itemId)
{

View File

@ -1558,12 +1558,12 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 * src, u16 x, u16 y)
}
}
void LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId)
void LoadMonIconPalAtOffset(u8 palOffset, enum Species speciesId)
{
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, PLTT_SIZE_4BPP);
}
void DrawMonIconAtPos(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
void DrawMonIconAtPos(u8 windowId, enum Species speciesId, u32 personality, u16 x, u16 y)
{
BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality), x, y, 32, 32);
}

View File

@ -68,7 +68,7 @@ static void Task_SmoothBlendLayers(u8 taskId)
}
}
u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId)
u8 Menu2_GetMonPosAttribute(enum Species species, u32 personality, u8 attributeId)
{
// if (species == SPECIES_UNOWN)
// {
@ -97,7 +97,7 @@ u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId)
return 32;
}
s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId)
s8 Menu2_GetStarSpritePosAttribute(enum Species species, u32 personality, u8 attributeId)
{
return Menu2_GetMonPosAttribute(species, personality, attributeId) - 32;
}

View File

@ -152,7 +152,7 @@ u8 GetLRKeysPressedAndHeld(void)
return 0;
}
bool8 IsHoldingItemAllowed(u16 itemId)
bool8 IsHoldingItemAllowed(enum Item itemId)
{
// Enigma Berry can't be held in link areas
if (itemId == ITEM_ENIGMA_BERRY_E_READER
@ -164,7 +164,7 @@ bool8 IsHoldingItemAllowed(u16 itemId)
return TRUE;
}
bool8 IsWritingMailAllowed(u16 itemId)
bool8 IsWritingMailAllowed(enum Item itemId)
{
if ((IsOverworldLinkActive() == TRUE || InUnionRoom() == TRUE) && ItemIsMail(itemId) == TRUE)
return FALSE;

View File

@ -851,7 +851,7 @@ const u8 *GetBufferedString(u8 *buffer, u16 value)
return buffer;
}
static void PrintMoveInfo(u16 move)
static void PrintMoveInfo(enum Move move)
{
const u8 *colors = sTextColors[GENERAL_TEXT_COLOR];
u8 buffer[50];

View File

@ -237,8 +237,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
{
struct Mail mail;
struct Pokemon pokemon;
u16 species;
u16 heldItem;
enum Species species;
enum Item heldItem;
u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0];
void *pokemonPtr = (void *)data;
void *mailPtr = (void *)(data + sizeof(struct Pokemon));

View File

@ -3767,7 +3767,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite)
#define ITEM_ICON_Y 24
#define ITEM_TAG 0x2722 //same as money label
bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId)
bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId)
{
#if OW_SHOW_ITEM_DESCRIPTIONS == OW_ITEM_DESCRIPTIONS_FIRST_TIME
u8 index = item / 8;
@ -3791,10 +3791,10 @@ EWRAM_DATA static u8 sHeaderBoxWindowId = 0;
EWRAM_DATA u8 sItemIconSpriteId = 0;
EWRAM_DATA u8 sItemIconSpriteId2 = 0;
static void ShowItemIconSprite(u16 item, bool8 firstTime, bool8 flash);
static void ShowItemIconSprite(enum Item item, bool8 firstTime, bool8 flash);
static void DestroyItemIconSprite(void);
static u8 ReformatItemDescription(u16 item, u8 *dest)
static u8 ReformatItemDescription(enum Item item, u8 *dest)
{
u8 count = 0;
u8 numLines = 1;
@ -3840,7 +3840,7 @@ void ScriptShowItemDescription(struct ScriptContext *ctx)
{
u8 headerType = ScriptReadByte(ctx);
struct WindowTemplate template;
u16 item = gSpecialVar_0x8006;
enum Item item = gSpecialVar_0x8006;
u8 textY;
u8 *dst;
bool8 handleFlash = FALSE;
@ -3890,7 +3890,7 @@ void ScriptHideItemDescription(struct ScriptContext *ctx)
}
}
static void ShowItemIconSprite(u16 item, bool8 firstTime, bool8 flash)
static void ShowItemIconSprite(enum Item item, bool8 firstTime, bool8 flash)
{
s16 x = 0, y = 0;
u8 iconSpriteId;

View File

@ -228,18 +228,18 @@ static void DisplayPartyPokemonHPBarCheck(struct Pokemon *mon, struct PartyMenuB
static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText);
static bool8 GetBattleEntryEligibility(struct Pokemon *mon);
static bool8 IsMonAllowedInMinigame(u8 slot);
static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 move);
static void DisplayPartyPokemonDataToTeachMove(u8 slot, enum Move move);
static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *dimensions);
static void DisplayPartyPokemonBarDetailToFit(u8 windowId, const u8 *str, u8 color, const u8 *align, u32 width);
static void DisplayPartyPokemonLevel(u8 level, struct PartyMenuBox *menuBox);
static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox);
static void DisplayPartyPokemonGender(u8 gender, enum Species species, u8 *nickname, struct PartyMenuBox *menuBox);
static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox);
static void DisplayPartyPokemonMaxHP(u16 maxhp, struct PartyMenuBox *menuBox);
static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *menuBox);
static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority);
static void CreatePartyMonHeldItemSpriteParameterized(u16 species, u16 item, struct PartyMenuBox *menuBox);
static void CreatePartyMonPokeballSpriteParameterized(u16 species, struct PartyMenuBox *menuBox);
static void CreatePartyMonStatusSpriteParameterized(u16 species, u8 status, struct PartyMenuBox *menuBox);
static void CreatePartyMonIconSpriteParameterized(enum Species species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority);
static void CreatePartyMonHeldItemSpriteParameterized(enum Species species, enum Item item, struct PartyMenuBox *menuBox);
static void CreatePartyMonPokeballSpriteParameterized(enum Species species, struct PartyMenuBox *menuBox);
static void CreatePartyMonStatusSpriteParameterized(enum Species species, u8 status, struct PartyMenuBox *menuBox);
static void CreatePartyMonIconSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox, u32 slot);
static void CreatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox);
static void CreatePartyMonPokeballSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox);
@ -283,7 +283,7 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir);
static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir);
static void Task_PrintAndWaitForText(u8 taskId);
static void PrintMessage(const u8 *text);
static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, u16 item, u16 item2);
static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, enum Item item, enum Item item2);
static bool16 IsMonAllowedInPokemonJump(struct Pokemon *mon);
static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon);
static void Task_CancelParticipationYesNo(u8 taskId);
@ -296,7 +296,7 @@ static void SpriteCB_UpdatePartyMonIcon(struct Sprite *sprite);
static void SpriteCB_BouncePartyMonIcon(struct Sprite *sprite);
static void SpriteCB_HeldItem(struct Sprite *sprite);
static void UpdatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox);
static void ShowOrHideHeldItemSprite(u16 item, struct PartyMenuBox *menuBox);
static void ShowOrHideHeldItemSprite(enum Item item, struct PartyMenuBox *menuBox);
static void CreateHeldItemSpriteForTrade(u8 spriteId, bool8 isMail);
static void SetPartyMonAilmentGfx(struct Pokemon *mon, struct PartyMenuBox *menuBox);
static void UpdatePartyMonAilmentGfx(u8 status, struct PartyMenuBox *menuBox);
@ -368,7 +368,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId);
static void Task_TryLearnNewMoves(u8 taskId);
static void PartyMenuTryEvolution(u8 taskId);
static void DisplayMonNeedsToReplaceMove(u8 taskId);
static void DisplayMonLearnedMove(u8 taskId, u16 move);
static void DisplayMonLearnedMove(u8 taskId, enum Move move);
static void Task_SacredAshDisplayHPRestored(u8 taskId);
static void Task_SacredAshLoop(u8 taskId);
static void UseSacredAsh(u8 taskId);
@ -381,7 +381,7 @@ static void GiveItemToSelectedMon(u8 taskId);
static void Task_UpdateHeldItemSpriteAndClosePartyMenu(u8 taskId);
static void Task_SwitchItemsFromBagYesNo(u8 taskId);
static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void);
static bool8 ReturnGiveItemToBagOrPC(u16 item);
static bool32 ReturnGiveItemToBagOrPC(enum Item item);
static void Task_DisplayGaveMailFromBagMessage(u8 taskId);
static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId);
static void Task_ValidateChosenMonsForBattle(u8 taskId);
@ -423,7 +423,7 @@ static void ItemUseCB_ReplaceMoveWithTMHM(u8 taskId, TaskFunc func);
static void Task_ReplaceMoveWithTMHM(u8 taskId);
static void CB2_UseEvolutionStone(void);
static bool8 MonCanEvolve(void);
static u8 CanTeachMove(struct Pokemon *mon, u16 move);
static u8 CanTeachMove(struct Pokemon *mon, enum Move move);
static void TryItemHoldFormChange(struct Pokemon *mon, s8 slotId);
static void Task_TossHeldItemYesNo(u8 taskId);
static void Task_HandleTossHeldItemYesNoInput(u8);
@ -1036,7 +1036,7 @@ static void DisplayPartyPokemonDataForBattlePyramidHeldItem(u8 slot)
static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot)
{
struct Pokemon *currentPokemon = &gPlayerParty[slot];
u16 item = gSpecialVar_ItemId;
enum Item item = gSpecialVar_ItemId;
if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR)
{
@ -1064,7 +1064,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot)
return TRUE;
}
static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 move)
static void DisplayPartyPokemonDataToTeachMove(u8 slot, enum Move move)
{
switch (CanTeachMove(&gPlayerParty[slot], move))
{
@ -1476,7 +1476,7 @@ static bool8 DoesSelectedMonKnowHM(u8 *slotPtr)
for (u32 i = 0; i < MAX_MON_MOVES; i++)
{
u16 move = GetMonData(&gPlayerParty[*slotPtr], MON_DATA_MOVE1 + i);
enum Move move = GetMonData(&gPlayerParty[*slotPtr], MON_DATA_MOVE1 + i);
if (IsMoveHM(move))
return TRUE;
@ -1840,7 +1840,7 @@ static void Task_ReturnToChooseMonAfterText(u8 taskId)
}
}
static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen, bool8 fromBagMenu)
static void DisplayGaveHeldItemMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen, bool8 fromBagMenu)
{
if (!fromBagMenu) // Used Give option from party menu
ItemUse_SetQuestLogEvent(QL_EVENT_GAVE_HELD_ITEM, mon, item, 0xFFFF);
@ -1855,7 +1855,7 @@ static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep
ScheduleBgCopyTilemapToVram(2);
}
static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen)
static void DisplayTookHeldItemMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen)
{
ItemUse_SetQuestLogEvent(QL_EVENT_TOOK_HELD_ITEM, mon, item, 0xFFFF);
GetMonNickname(mon, gStringVar1);
@ -1865,7 +1865,7 @@ static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep
ScheduleBgCopyTilemapToVram(2);
}
static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item, bool8 keepOpen)
static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen)
{
GetMonNickname(mon, gStringVar1);
CopyItemName(item, gStringVar2);
@ -1874,7 +1874,7 @@ static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item
ScheduleBgCopyTilemapToVram(2);
}
static void DisplaySwitchedHeldItemMessage(u16 item, u16 item2, bool8 keepOpen)
static void DisplaySwitchedHeldItemMessage(enum Item item, enum Item item2, bool8 keepOpen)
{
SetSwappedHeldItemQuestLogEvent(&gPlayerParty[gPartyMenu.slotId], item2, item);
CopyItemName(item, gStringVar1);
@ -1914,7 +1914,7 @@ static u8 TryTakeMonItem(struct Pokemon *mon)
return 2;
}
static void BufferBagFullCantTakeItemMessage(u16 itemId)
static void BufferBagFullCantTakeItemMessage(enum Item itemId)
{
const u8 *string;
@ -2136,16 +2136,20 @@ static void Task_HandleCancelParticipationYesNoInput(u8 taskId)
}
}
static u8 CanTeachMove(struct Pokemon *mon, u16 move)
static u8 CanTeachMove(struct Pokemon *mon, enum Move move)
{
if (GetMonData(mon, MON_DATA_IS_EGG))
return CANNOT_LEARN_MOVE_IS_EGG;
if (MonKnowsMove(mon, move) == TRUE)
if (MonKnowsMove(mon, move))
return ALREADY_KNOWS_MOVE;
if (GetFirstPartnerMove(GetMonData(mon, MON_DATA_SPECIES_OR_EGG)) == move)
return CAN_LEARN_MOVE;
if (!CanLearnTeachableMove(GetMonData(mon, MON_DATA_SPECIES_OR_EGG), move))
return CANNOT_LEARN_MOVE;
return CAN_LEARN_MOVE;
}
@ -2577,7 +2581,7 @@ static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct Pa
DisplayPartyPokemonGender(GetMonGender(mon), GetMonData(mon, MON_DATA_SPECIES), nickname, menuBox);
}
static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox)
static void DisplayPartyPokemonGender(u8 gender, enum Species species, u8 *nickname, struct PartyMenuBox *menuBox)
{
u8 palOffset = BG_PLTT_ID(GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM));
@ -2905,7 +2909,7 @@ static void CreatePartyMonIconSprite(struct Pokemon *mon, struct PartyMenuBox *m
UpdatePartyMonHPBar(menuBox->monSpriteId, mon);
}
static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority)
static void CreatePartyMonIconSpriteParameterized(enum Species species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority)
{
if (species != SPECIES_NONE)
{
@ -2993,7 +2997,7 @@ static void CreatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo
}
}
static void CreatePartyMonHeldItemSpriteParameterized(u16 species, u16 item, struct PartyMenuBox *menuBox)
static void CreatePartyMonHeldItemSpriteParameterized(enum Species species, enum Item item, struct PartyMenuBox *menuBox)
{
if (species != SPECIES_NONE)
{
@ -3008,7 +3012,7 @@ static void UpdatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo
ShowOrHideHeldItemSprite(GetMonData(mon, MON_DATA_HELD_ITEM), menuBox);
}
static void ShowOrHideHeldItemSprite(u16 item, struct PartyMenuBox *menuBox)
static void ShowOrHideHeldItemSprite(enum Item item, struct PartyMenuBox *menuBox)
{
if (item == ITEM_NONE)
{
@ -3032,23 +3036,20 @@ void LoadHeldItemIcons(void)
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty)
{
u16 i;
u16 item;
switch (whichParty)
{
case TRADE_PLAYER:
for (i = 0; i < partyCounts[TRADE_PLAYER]; ++i)
for (u32 i = 0; i < partyCounts[TRADE_PLAYER]; ++i)
{
item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
enum Item item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
if (item != ITEM_NONE)
CreateHeldItemSpriteForTrade(partySpriteIds[i], ItemIsMail(item));
}
break;
case TRADE_PARTNER:
for (i = 0; i < partyCounts[TRADE_PARTNER]; ++i)
for (u32 i = 0; i < partyCounts[TRADE_PARTNER]; ++i)
{
item = GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM);
enum Item item = GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM);
if (item != ITEM_NONE)
CreateHeldItemSpriteForTrade(partySpriteIds[i + PARTY_SIZE], ItemIsMail(item));
}
@ -3091,7 +3092,7 @@ static void CreatePartyMonPokeballSprite(struct Pokemon *mon, struct PartyMenuBo
menuBox->pokeballSpriteId = CreateSprite(&sSpriteTemplate_MenuPokeball, menuBox->spriteCoords[6], menuBox->spriteCoords[7], 8);
}
static void CreatePartyMonPokeballSpriteParameterized(u16 species, struct PartyMenuBox *menuBox)
static void CreatePartyMonPokeballSpriteParameterized(enum Species species, struct PartyMenuBox *menuBox)
{
if (species != SPECIES_NONE)
{
@ -3156,7 +3157,7 @@ static void CreatePartyMonStatusSprite(struct Pokemon *mon, struct PartyMenuBox
}
}
static void CreatePartyMonStatusSpriteParameterized(u16 species, u8 status, struct PartyMenuBox *menuBox)
static void CreatePartyMonStatusSpriteParameterized(enum Species species, u8 status, struct PartyMenuBox *menuBox)
{
if (species != SPECIES_NONE)
{
@ -3230,7 +3231,7 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId)
// Add field moves to action list
for (i = 0; i < MAX_MON_MOVES; ++i)
{
u16 moveId = GetMonData(&mons[slotId], i + MON_DATA_MOVE1);
enum Move moveId = GetMonData(&mons[slotId], i + MON_DATA_MOVE1);
if (moveId == MOVE_NONE)
continue;
for (j = 0; j < FIELD_MOVE_COUNT; ++j)
@ -3777,16 +3778,16 @@ void CB2_GiveHoldItem(void)
static void Task_GiveHoldItem(u8 taskId)
{
u16 item;
enum Item item;
if (!gPaletteFade.active)
{
item = gSpecialVar_ItemId;
DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, FALSE);
GiveItemToMon(&gPlayerParty[gPartyMenu.slotId], item);
RemoveBagItem(item, 1);
gTasks[taskId].func = Task_UpdateHeldItemSprite;
}
if (gPaletteFade.active)
return;
item = gSpecialVar_ItemId;
DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, FALSE);
GiveItemToMon(&gPlayerParty[gPartyMenu.slotId], item);
RemoveBagItem(item, 1);
gTasks[taskId].func = Task_UpdateHeldItemSprite;
}
static void Task_SwitchHoldItemsPrompt(u8 taskId)
@ -3865,12 +3866,12 @@ static void CB2_WriteMailToGiveMon(void)
static void CB2_ReturnToPartyMenuFromWritingMail(void)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = GetMonData(mon, MON_DATA_HELD_ITEM);
// Canceled writing mail
if (gSpecialVar_Result == FALSE)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM);
TakeMailFromMon(mon);
SetMonData(mon, MON_DATA_HELD_ITEM, &sPartyMenuItemId);
RemoveBagItem(sPartyMenuItemId, 1);
@ -3918,7 +3919,7 @@ static void Task_UpdateHeldItemSprite(u8 taskId)
static void CursorCB_TakeItem(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = GetMonData(mon, MON_DATA_HELD_ITEM);
enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM);
PlaySE(SE_SELECT);
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
@ -4096,7 +4097,7 @@ static void Task_LoseMailMessageYesNo(u8 taskId)
static void Task_HandleLoseMailMessageYesNoInput(u8 taskId)
{
u16 item;
enum Item item;
switch (Menu_ProcessInputNoWrapClearOnChoose())
{
@ -4246,8 +4247,8 @@ static void CursorCB_Store(u8 taskId)
// Register mon for the Trading Board in Union Room
static void CursorCB_Register(u8 taskId)
{
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG);
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
enum Species species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
u8 isModernFatefulEncounter = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MODERN_FATEFUL_ENCOUNTER);
switch (CanRegisterMonForTradingBoard(*(struct RfuGameCompatibilityData *)GetHostRfuGameData(), species2, species, isModernFatefulEncounter))
@ -4273,8 +4274,8 @@ static void CursorCB_Register(u8 taskId)
static void CursorCB_Trade1(u8 taskId)
{
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG);
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
enum Species species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
u8 isModernFatefulEncounter = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MODERN_FATEFUL_ENCOUNTER);
u32 stringId = GetUnionRoomTradeMessageId(*(struct RfuGameCompatibilityData *)GetHostRfuGameData(), gRfuPartnerCompatibilityData, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isModernFatefulEncounter);
@ -4596,7 +4597,7 @@ bool32 SetUpFieldMove_RockClimb(void)
return FALSE;
}
static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, u16 item, u16 item2)
static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, enum Item item, enum Item item2)
{
struct QuestLogEvent_SwappedHeldItem *data = Alloc(sizeof(*data));
@ -4776,7 +4777,7 @@ static void CB2_UseTMHMAfterForgettingMove(void)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u8 moveIdx = GetMoveSlotToReplace();
u16 move = GetMonData(mon, moveIdx + MON_DATA_MOVE1);
enum Move move = GetMonData(mon, moveIdx + MON_DATA_MOVE1);
RemoveMonPPBonus(mon, moveIdx);
SetMonMoveSlot(mon, ItemIdToBattleMoveId(gSpecialVar_ItemId), moveIdx);
@ -4800,7 +4801,7 @@ static void Task_SetSacredAshCB(u8 taskId)
}
}
static bool8 IsHPRecoveryItem(u16 item)
static bool8 IsHPRecoveryItem(enum Item item)
{
const u8 *effect = GetItemEffect(item);
@ -4813,7 +4814,7 @@ static bool8 IsHPRecoveryItem(u16 item)
return FALSE;
}
static void GetMedicineItemEffectMessage(u16 item, u32 statusCured)
static void GetMedicineItemEffectMessage(enum Item item, u32 statusCured)
{
switch (GetItemEffectType(item))
{
@ -4881,14 +4882,14 @@ static void GetMedicineItemEffectMessage(u16 item, u32 statusCured)
}
}
static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, u16 item)
static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, enum Item item)
{
if (GetItemEffectType(item) == ITEM_EFFECT_HP_EV && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA)
return FALSE;
return TRUE;
}
static bool8 IsItemFlute(u16 item)
static bool8 IsItemFlute(enum Item item)
{
if (item == ITEM_BLUE_FLUTE || item == ITEM_RED_FLUTE || item == ITEM_YELLOW_FLUTE)
return TRUE;
@ -5270,7 +5271,7 @@ void ItemUseCB_BattleChooseMove(u8 taskId, TaskFunc task)
gTasks[taskId].func = Task_HandleRestoreWhichMoveInput;
}
static bool8 ExecuteTableBasedItemEffect_(u8 partyMonIndex, u16 item, u8 monMoveIndex)
static bool8 ExecuteTableBasedItemEffect_(u8 partyMonIndex, enum Item item, u8 monMoveIndex)
{
if (gMain.inBattle)
return ExecuteTableBasedItemEffect(&gPlayerParty[partyMonIndex], item, GetPartyIdFromBattleSlot(partyMonIndex), monMoveIndex);
@ -5282,7 +5283,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc func)
{
u16 hp = 0;
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = gSpecialVar_ItemId;
enum Item item = gSpecialVar_ItemId;
bool8 canHeal, cannotUse;
u32 oldStatus = GetMonData(mon, MON_DATA_STATUS);
@ -5438,7 +5439,7 @@ void ItemUseCB_ReduceEVStep(u8 taskId, TaskFunc task)
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = gSpecialVar_ItemId;
enum Item item = gSpecialVar_ItemId;
u8 effectType = GetItemEffectType(item);
bool8 cannotUseEffect;
@ -5478,7 +5479,7 @@ void ItemUseCB_ResetEVsStep(u8 taskId, TaskFunc task)
void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = gSpecialVar_ItemId;
enum Item item = gSpecialVar_ItemId;
bool8 cannotUseEffect = ExecuteTableBasedItemEffect(mon, item, gPartyMenu.slotId, 0);
if (cannotUseEffect)
@ -5502,7 +5503,7 @@ static void ShowMoveSelectWindow(u8 slot)
u8 moveCount = 0;
u8 fontId = FONT_NORMAL;
u8 windowId = DisplaySelectionWindow(SELECTWINDOW_MOVES);
u16 move;
enum Move move;
for (i = 0; i < MAX_MON_MOVES; ++i)
{
@ -5616,7 +5617,7 @@ static void ReturnToUseOnWhichMon(u8 taskId)
static void ItemUseCB_RestorePP(u8 taskId, TaskFunc func)
{
u16 move = MOVE_NONE;
enum Move move = MOVE_NONE;
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
gPartyMenuUseExitCallback = TRUE;
@ -5646,7 +5647,7 @@ enum Move ItemIdToBattleMoveId(enum Item item)
return (GetItemPocket(item) == POCKET_TM_HM) ? GetItemTMHMMoveId(item) : MOVE_NONE;
}
bool8 MonKnowsMove(struct Pokemon *mon, u16 move)
bool32 MonKnowsMove(struct Pokemon *mon, enum Move move)
{
u8 i;
@ -5658,7 +5659,7 @@ bool8 MonKnowsMove(struct Pokemon *mon, u16 move)
return FALSE;
}
bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, u16 move)
bool32 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move)
{
u8 i;
@ -5690,7 +5691,7 @@ void ItemUseCB_TMHM(u8 taskId, TaskFunc func)
{
struct Pokemon *mon;
s16 *data;
u16 item;
enum Item item;
PlaySE(SE_SELECT);
mon = &gPlayerParty[gPartyMenu.slotId];
@ -5731,7 +5732,7 @@ static void Task_LearnedMove(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
s16 *data = gPartyMenu.data;
u16 item = gSpecialVar_ItemId;
enum Item item = gSpecialVar_ItemId;
if (learnMoveMethod == LEARN_VIA_TMHM)
{
@ -5814,7 +5815,7 @@ static void CB2_ShowSummaryScreenToForgetMove(void)
static void CB2_ReturnToPartyMenuWhileLearningMove(void)
{
u8 moveIdx = GetMoveSlotToReplace();
u16 move;
enum Move move;
s32 learnMethod = gPartyMenu.learnMoveMethod;
if (learnMethod == LEARN_VIA_TMHM && moveIdx != MAX_MON_MOVES)
@ -5852,7 +5853,7 @@ static void Task_ReplaceMoveWithTMHM(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u8 moveIdx = GetMoveSlotToReplace();
u16 move = GetMonData(mon, moveIdx + MON_DATA_MOVE1);
enum Move move = GetMonData(mon, moveIdx + MON_DATA_MOVE1);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, move);
GetMonNickname(mon, gStringVar1);
@ -5865,7 +5866,7 @@ static void Task_ReplaceMoveWithTMHM(u8 taskId)
static void DisplayPartyMenuForgotMoveMessage(u8 taskId)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 move = GetMonData(mon, MON_DATA_MOVE1 + GetMoveSlotToReplace());
enum Move move = GetMonData(mon, MON_DATA_MOVE1 + GetMoveSlotToReplace());
GetMonNickname(mon, gStringVar1);
StringCopy(gStringVar2, gMovesInfo[move].name);
@ -5876,16 +5877,16 @@ static void DisplayPartyMenuForgotMoveMessage(u8 taskId)
static void Task_PartyMenuReplaceMove(u8 taskId)
{
struct Pokemon *mon;
u16 move;
enum Move move;
if (IsPartyMenuTextPrinterActive() != TRUE)
{
mon = &gPlayerParty[gPartyMenu.slotId];
RemoveMonPPBonus(mon, GetMoveSlotToReplace());
move = gPartyMenu.learnMoveId;
SetMonMoveSlot(mon, move, GetMoveSlotToReplace());
Task_LearnedMove(taskId);
}
if (IsPartyMenuTextPrinterActive())
return;
mon = &gPlayerParty[gPartyMenu.slotId];
RemoveMonPPBonus(mon, GetMoveSlotToReplace());
move = gPartyMenu.learnMoveId;
SetMonMoveSlot(mon, move, GetMoveSlotToReplace());
Task_LearnedMove(taskId);
}
static void StopLearningMovePrompt(u8 taskId)
@ -6210,7 +6211,7 @@ static void DisplayMonNeedsToReplaceMove(u8 taskId)
gTasks[taskId].func = Task_ReplaceMoveYesNo;
}
static void DisplayMonLearnedMove(u8 taskId, u16 move)
static void DisplayMonLearnedMove(u8 taskId, enum Move move)
{
GetMonNickname(&gPlayerParty[gPartyMenu.slotId], gStringVar1);
StringCopy(gStringVar2, gMovesInfo[move].name);
@ -6394,7 +6395,7 @@ static bool8 MonCanEvolve(void)
return GetEvolutionTargetSpecies(&gPlayerParty[gPartyMenu.slotId], EVO_MODE_ITEM_USE, gSpecialVar_ItemId, NULL, NULL, CHECK_EVO) != SPECIES_NONE;
}
u8 GetItemEffectType(u16 item)
u8 GetItemEffectType(enum Item item)
{
u32 statusCure;
const u8 *itemEffect = GetItemEffect(item);
@ -6561,7 +6562,7 @@ static void GiveItemOrMailToSelectedMon(u8 taskId)
static void GiveItemToSelectedMon(u8 taskId)
{
u16 item;
enum Item item;
if (!gPaletteFade.active)
{
@ -6595,12 +6596,12 @@ static void CB2_WriteMailToGiveMonFromBag(void)
static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = GetMonData(mon, MON_DATA_HELD_ITEM);
// Canceled writing mail
if (gSpecialVar_Result == FALSE)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM);
TakeMailFromMon(mon);
SetMonData(mon, MON_DATA_HELD_ITEM, &sPartyMenuItemId);
RemoveBagItem(sPartyMenuItemId, 1);
@ -6637,7 +6638,7 @@ static void Task_SwitchItemsFromBagYesNo(u8 taskId)
static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId)
{
u16 item;
enum Item item;
switch (Menu_ProcessInputNoWrapClearOnChoose())
{
@ -6681,7 +6682,7 @@ static void DisplayItemMustBeRemovedFirstMessage(u8 taskId)
// Returns FALSE if there was no space to return the item
// but there always should be, and the return is ignored in all uses
static bool8 ReturnGiveItemToBagOrPC(u16 item)
static bool32 ReturnGiveItemToBagOrPC(enum Item item)
{
if (gPartyMenu.action == PARTY_ACTION_GIVE_ITEM)
return AddBagItem(item, 1);
@ -6790,7 +6791,7 @@ static u8 CheckBattleEntriesAndGetMessage(void)
maxBattlers = GetMaxBattleEntries();
for (i = 0; i < maxBattlers - 1; i++)
{
u16 species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES);
enum Species species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES);
enum Item item = GetMonData(&party[order[i] - 1], MON_DATA_HELD_ITEM);
for (j = i + 1; j < maxBattlers; j++)
{
@ -7459,7 +7460,7 @@ static void Task_PartyMenuWaitForFade(u8 taskId)
static void Task_TryItemUseFusionChange(u8 taskId);
static void SpriteCB_FormChangeIconMosaic(struct Sprite *sprite);
u8 IsFusionMon(u16 species)
u8 IsFusionMon(enum Species species)
{
u16 i;
const struct Fusion *itemFusion = gFusionTablePointers[species];
@ -7798,9 +7799,8 @@ static void Task_TryItemUseFusionChange(u8 taskId)
void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc)
{
u16 i;
struct Task *task = &gTasks[taskId];
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
const struct Fusion *itemFusion = gFusionTablePointers[species];
PlaySE(SE_SELECT);
@ -7819,7 +7819,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc)
task->func = taskFunc;
return;
}
for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Loops through fusion table and checks if the mon can be unfused
for (u32 i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Loops through fusion table and checks if the mon can be unfused
{
if (gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex].level == 0)
continue;
@ -7841,7 +7841,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc)
case FUSE_MON:
if (task->fusionType == FUSE_MON) // Cancel If Second Mon is Another First Fusion Mon
break;
for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Run through the Fusion table for each species and check if the item matches one of the entries
for (u32 i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Run through the Fusion table for each species and check if the item matches one of the entries
{
if (itemFusion[i].itemId == gSpecialVar_ItemId)
{
@ -7861,7 +7861,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc)
case SECOND_FUSE_MON:
if (task->fusionType != FUSE_MON) // Cancel if Secondary Fusion Mon Chosen First
break;
for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // run through fusion table and check if the fusion works
for (u32 i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // run through fusion table and check if the fusion works
{
if (gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex].level != 0)
continue;
@ -8164,11 +8164,9 @@ static void ShiftMoveSlot(struct Pokemon *mon, u8 slotTo, u8 slotFrom)
SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
}
u32 Party_FirstMonWithMove(u16 moveId)
u32 Party_FirstMonWithMove(enum Move moveId)
{
u8 i;
for (i = 0; i < PARTY_SIZE; i++)
for (u32 i = 0; i < PARTY_SIZE; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE)
break;
@ -8244,7 +8242,7 @@ void GetNumMovesSelectedMonHas(void)
void BufferMoveDeleterNicknameAndMove(void)
{
struct Pokemon *mon = &gPlayerParty[gSpecialVar_0x8004];
u16 move = GetMonData(mon, MON_DATA_MOVE1 + gSpecialVar_0x8005);
enum Move move = GetMonData(mon, MON_DATA_MOVE1 + gSpecialVar_0x8005);
GetMonNickname(mon, gStringVar1);
StringCopy(gStringVar2, GetMoveName(move));

View File

@ -732,7 +732,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
{
u8 wantedCry = gTasks[taskId].tCryTaskWantedCry;
s8 pan = gTasks[taskId].tCryTaskPan;
u16 species = gTasks[taskId].tCryTaskSpecies;
enum Species species = gTasks[taskId].tCryTaskSpecies;
enum BattlerId battler = gTasks[taskId].tCryTaskBattler;
u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId;
struct Pokemon *mon = (void *)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 16) | (u16)(gTasks[taskId].tCryTaskMonPtr2));
@ -1117,7 +1117,7 @@ static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 spritePalNum, u
#define sTrigIdx data[7]
// 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)
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, enum Species species)
{
u8 spriteId;

View File

@ -191,7 +191,7 @@ static void Task_ShowAreaMarkers(u8 taskId)
gSprites[data->spriteId].invisible = FALSE;
}
u8 CreatePokedexAreaMarkers(u16 species, u16 tilesTag, u8 palIdx, u8 y)
u8 CreatePokedexAreaMarkers(enum Species species, u16 tilesTag, u8 palIdx, u8 y)
{
struct SpriteTemplate spriteTemplate;
struct CompressedSpriteSheet spriteSheet;

View File

@ -240,7 +240,7 @@ static u16 TryDoPokedexScroll(u16, u16);
static void UpdateSelectedMonSpriteId(void);
static bool8 TryDoInfoScreenScroll(void);
static u8 ClearMonSprites(void);
static u16 GetPokemonSpriteToDisplay(u16);
static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum);
static u32 CreatePokedexMonSprite(u16, s16, s16);
static void CreateInterfaceSprites(u8);
static void SpriteCB_MoveMonForInfoScreen(struct Sprite *sprite);
@ -283,9 +283,9 @@ static void PrintUnknownMonMeasurements(void);
static u8* GetUnknownMonHeightString(void);
static u8* GetUnknownMonWeightString(void);
static u8* ReplaceDecimalSeparator(const u8* originalString);
static void PrintOwnedMonMeasurements(u16 species);
static void PrintOwnedMonHeight(u16 species);
static void PrintOwnedMonWeight(u16 species);
static void PrintOwnedMonMeasurements(enum Species species);
static void PrintOwnedMonHeight(enum Species species);
static void PrintOwnedMonWeight(enum Species species);
// static u8* ConvertMonHeightToImperialString(u32 height);
// static u8* ConvertMonHeightToMetricString(u32 height);
// static u8* ConvertMonWeightToImperialString(u32 weight);
@ -298,7 +298,7 @@ static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum);
static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum);
static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum);
static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum);
static u16 CreateSizeScreenTrainerPic(u16, s16, s16, s8);
static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16 x, s16 y, s8 paletteSlot);
static u16 GetNextPosition(u8, u16, u16, u16);
static u8 LoadSearchMenu(void);
static void Task_LoadSearchMenu(u8);
@ -2772,12 +2772,12 @@ static u8 ClearMonSprites(void)
return FALSE;
}
static u16 GetPokemonSpriteToDisplay(u16 species)
static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum)
{
if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF)
if (natDexNum >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[natDexNum].dexNum == 0xFFFF)
return 0xFFFF;
else if (sPokedexView->pokedexList[species].seen)
return sPokedexView->pokedexList[species].dexNum;
else if (sPokedexView->pokedexList[natDexNum].seen)
return sPokedexView->pokedexList[natDexNum].dexNum;
else
return 0;
}
@ -4048,7 +4048,7 @@ u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y)
void Task_DisplayCaughtMonDexPage(u8 taskId)
{
u8 spriteId;
u16 species = gTasks[taskId].tSpecies;
enum Species species = gTasks[taskId].tSpecies;
enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species);
switch (gTasks[taskId].tState)
@ -4189,7 +4189,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry)
{
u8 str[0x10];
u8 str2[0x30];
u16 species;
enum Species species;
const u8 *name;
const u8 *category;
const u8 *description;
@ -4229,7 +4229,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry)
PrintInfoScreenText(description, GetStringCenterAlignXOffset(FONT_NORMAL, description, DISPLAY_WIDTH), 95);
}
void PrintMonMeasurements(u16 species, u32 owned)
void PrintMonMeasurements(enum Species species, u32 owned)
{
u32 x = GetMeasurementTextPositions(DEX_HEADER_X);
u32 yTop = GetMeasurementTextPositions(DEX_Y_TOP);
@ -4316,13 +4316,13 @@ static u8* ReplaceDecimalSeparator(const u8* originalString)
return modifiedString;
}
static void PrintOwnedMonMeasurements(u16 species)
static void PrintOwnedMonMeasurements(enum Species species)
{
PrintOwnedMonHeight(species);
PrintOwnedMonWeight(species);
}
static void PrintOwnedMonHeight(u16 species)
static void PrintOwnedMonHeight(enum Species species)
{
u32 height = GetSpeciesHeight(species);
u8* heightString;
@ -4344,7 +4344,7 @@ static void PrintOwnedMonHeight(u16 species)
// return ConvertMonHeightToMetricString(height);
// }
static void PrintOwnedMonWeight(u16 species)
static void PrintOwnedMonWeight(enum Species species)
{
u32 weight = GetSpeciesWeight(species);
u8* weightString;
@ -4662,7 +4662,7 @@ static void UNUSED PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top)
#define NUM_FOOTPRINT_TILES 4
void DrawFootprint(u8 windowId, u16 species)
void DrawFootprint(u8 windowId, enum Species species)
{
u8 ALIGNED(4) footprint4bpp[TILE_SIZE_4BPP * NUM_FOOTPRINT_TILES];
const u8 *footprintGfx = NULL;
@ -4741,7 +4741,7 @@ static u16 GetNextPosition(u8 direction, u16 position, u16 min, u16 max)
// Unown and Spinda use the personality of the first seen individual of that species
// All others use personality 0
static u32 GetPokedexMonPersonality(u16 species)
static u32 GetPokedexMonPersonality(enum Species species)
{
if (species == SPECIES_UNOWN || species == SPECIES_SPINDA)
{
@ -4758,42 +4758,47 @@ static u32 GetPokedexMonPersonality(u16 species)
u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot)
{
nationalNum = NationalPokedexNumToSpecies(nationalNum);
return CreateMonFrontPicSprite(nationalNum, FALSE, GetPokedexMonPersonality(nationalNum), x, y, paletteSlot, TAG_NONE);
enum Species species = NationalPokedexNumToSpecies(nationalNum);
return CreateMonFrontPicSprite(species, FALSE, GetPokedexMonPersonality(species), x, y, paletteSlot, TAG_NONE);
}
static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum)
{
nationalNum = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[nationalNum].pokemonScale;
enum Species species = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[species].pokemonScale;
}
static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum)
{
nationalNum = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[nationalNum].pokemonOffset;
enum Species species = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[species].pokemonOffset;
}
static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum)
{
nationalNum = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[nationalNum].trainerScale;
enum Species species = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[species].trainerScale;
}
static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum)
{
nationalNum = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[nationalNum].trainerOffset;
enum Species species = NationalPokedexNumToSpecies(nationalNum);
return gSpeciesInfo[species].trainerOffset;
}
static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot)
static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16 x, s16 y, s8 paletteSlot)
{
return CreateTrainerFrontPicSprite(species, x, y, paletteSlot);
return CreateTrainerFrontPicSprite(trainerPicId, x, y, paletteSlot);
}
static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, enum BodyColor bodyColor, enum Type type1, enum Type type2)
{
u16 species;
enum Species species;
u16 i;
u16 resultsCount;
enum Type types[2];

View File

@ -85,7 +85,7 @@ struct
/*0x004*/ MainCallback prev; // unused
/*0x008*/ MainCallback next; // unused
/*0x00C*/ u16 state; // unused
/*0x00E*/ u16 species;
/*0x00E*/ enum Species species;
/*0x010*/ struct OverworldArea overworldAreasWithMons[MAX_AREA_HIGHLIGHTS];
/*0x110*/ u16 numOverworldAreas;
/*0x112*/ u16 numSpecialAreas;
@ -113,13 +113,13 @@ struct
EWRAM_DATA u8 gAreaTimeOfDay = 0;
static void FindMapsWithMon(u16);
static void FindMapsWithMon(enum Species species);
static void BuildAreaGlowTilemap(void);
static void SetAreaHasMon(u16, u16);
static void SetSpecialMapHasMon(u16, u16);
static mapsec_u16_t GetRegionMapSectionId(u8, u8);
static bool8 MapHasSpecies(const struct WildEncounterTypes *, u16);
static bool8 MonListHasSpecies(const struct WildPokemonInfo *, u16, u16);
static bool8 MapHasSpecies(const struct WildEncounterTypes *info, enum Species species);
static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, enum Species species, u16 size);
static void DoAreaGlow(void);
static void Task_ShowPokedexAreaScreen(u8 taskId);
static void Task_UpdatePokedexAreaScreen(u8 taskId);
@ -143,7 +143,7 @@ static const u32 sAreaGlow_Gfx[] = INCBIN_U32("graphics/pokedex/emerald/area_glo
static const u32 sPokedexPlusHGSS_ScreenSelectBarSubmenu_Tilemap[] = INCBIN_U32("graphics/pokedex/hgss/SelectBar.bin.smolTM");
static void LoadHGSSScreenSelectBarSubmenu(void);
static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT };
static const enum Species sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT };
// static const mapsec_u16_t sMovingRegionMapSections[3] =
// {
@ -154,7 +154,7 @@ static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT };
static const u16 sFeebasData[][3] =
{
{NUM_SPECIES}
{NUM_SPECIES, MAP_GROUP(MAP_UNDEFINED), MAP_GROUP(MAP_UNDEFINED)}
};
#include "data/pokedex_emerald_area_glow.h"
@ -286,7 +286,7 @@ static bool8 DrawAreaGlow(void)
return TRUE;
}
static void FindMapsWithMon(u16 species)
static void FindMapsWithMon(enum Species species)
{
enum RegionMapType currentRegionMapType;
u16 i;
@ -423,7 +423,7 @@ static mapsec_u16_t GetRegionMapSectionId(u8 mapGroup, u8 mapNum)
return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId;
}
static bool8 MapHasSpecies(const struct WildEncounterTypes *info, u16 species)
static bool8 MapHasSpecies(const struct WildEncounterTypes *info, enum Species species)
{
u32 headerId = GetCurrentMapWildMonHeaderId();
u8 currentMapGroup = gWildMonHeaders[headerId].mapGroup;
@ -453,7 +453,7 @@ static bool8 MapHasSpecies(const struct WildEncounterTypes *info, u16 species)
return FALSE;
}
static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, u16 species, u16 size)
static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, enum Species species, u16 size)
{
u16 i;
if (info != NULL)
@ -705,7 +705,7 @@ bool32 ShouldShowAreaUnknownLabel(void)
#define tState data[0]
void DisplayPokedexAreaScreen(u16 species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState)
void DisplayPokedexAreaScreen(enum Species species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState)
{
u8 taskId;

View File

@ -44,12 +44,12 @@ struct PokedexCryScreen
u8 waveformPreviousY;
u16 unk; // Never read
u8 playStartPos;
u16 species;
enum Species species;
u8 cryOverrideCountdown;
u8 cryRepeatDelay;
};
static void PlayCryScreenCry(u16);
static void PlayCryScreenCry(enum Species species);
static void BufferCryWaveformSegment(void);
static void DrawWaveformFlatline(void);
static void AdvancePlayhead(u8);
@ -324,7 +324,7 @@ void UpdateCryWaveformWindow(u8 windowId)
sDexCryScreen->cryState++;
}
void CryScreenPlayButton(u16 species)
void CryScreenPlayButton(enum Species species)
{
if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !sDexCryScreen->cryOverrideCountdown)
{
@ -345,7 +345,7 @@ void CryScreenPlayButton(u16 species)
}
}
static void PlayCryScreenCry(u16 species)
static void PlayCryScreenCry(enum Species species)
{
PlayCry_NormalNoDucking(species, 0, CRY_VOLUME_RS, CRY_PRIORITY_NORMAL);
sDexCryScreen->cryState = 1;

View File

@ -293,8 +293,8 @@ static EWRAM_DATA u8 sPokeBallRotation = 0;
static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL;
//Pokedex Plus HGSS_Ui
#define MOVES_COUNT_TOTAL (EGG_MOVES_ARRAY_COUNT + MAX_LEVEL_UP_MOVES + NUM_ALL_MACHINES)
EWRAM_DATA static u16 sStatsMoves[MOVES_COUNT_TOTAL] = {0};
EWRAM_DATA static u16 sStatsMovesTMHM_ID[NUM_ALL_MACHINES] = {0};
EWRAM_DATA static enum Move sStatsMoves[MOVES_COUNT_TOTAL] = {0};
EWRAM_DATA static enum Item sStatsMovesTMHM_ID[NUM_ALL_MACHINES] = {0};
struct SearchOptionText
@ -332,7 +332,7 @@ struct SearchMenuItem
struct PokedexListItem
{
u16 dexNum;
enum NationalDexOrder dexNum;
u16 seen:1;
u16 owned:1;
};
@ -340,7 +340,7 @@ struct PokedexListItem
struct PokemonStats
{
u16 species;
enum Species species;
u8 genderRatio;
u8 baseHP;
u8 baseSpeed;
@ -371,7 +371,7 @@ struct EvoScreenData
{
bool8 fromEvoPage;
u8 numAllEvolutions;
u16 targetSpecies[10];
enum Species targetSpecies[10];
u8 numSeen;
bool8 seen[10];
u8 menuPos;
@ -417,7 +417,7 @@ struct PokedexView
struct PokemonStats sPokemonStats;
struct EvoScreenData sEvoScreenData;
struct FromScreenData sFormScreenData;
u16 formSpecies;
enum Species formSpecies;
u16 selectedMonSpriteId;
u16 pokeBallRotationStep;
u16 pokeBallRotationBackup;
@ -478,7 +478,7 @@ static u16 TryDoPokedexScroll(u16, u16);
static void UpdateSelectedMonSpriteId(void);
static bool8 TryDoInfoScreenScroll(void);
static u8 ClearMonSprites(void);
static u16 GetPokemonSpriteToDisplay(u16);
static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum);
static u32 CreatePokedexMonSprite(u16, s16, s16);
static void CreateInterfaceSprites(u8);
static void SpriteCB_MoveMonForInfoScreen(struct Sprite *sprite);
@ -518,7 +518,7 @@ static void ResetOtherVideoRegisters(u16);
static u8 PrintCryScreenSpeciesName(u8, u16, u8, u8);
static void PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top);
static u16 CreateMonSpriteFromNationalDexNumberHGSS(u16 nationalNum, s16 x, s16 y, u16 paletteSlot);
static u16 CreateSizeScreenTrainerPic(u16, s16, s16, s8);
static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16, s16, s8);
static u16 GetNextPosition(u8, u16, u16, u16);
static u8 LoadSearchMenu(void);
static void Task_LoadSearchMenu(u8);
@ -574,8 +574,8 @@ static void Task_LoadEvolutionScreen(u8 taskId);
static void Task_HandleEvolutionScreenInput(u8 taskId);
static void Task_SwitchScreensFromEvolutionScreen(u8 taskId);
static void Task_ExitEvolutionScreen(u8 taskId);
static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines);
static u8 PrintPreEvolutions(u8 taskId, u16 species);
static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, enum Species species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines);
static u8 PrintPreEvolutions(u8 taskId, enum Species species);
//Stat bars on scrolling screens
static void TryDestroyStatBars(void);
static void TryDestroyStatBarsBg(void);
@ -587,7 +587,7 @@ static void SpriteCB_StatBarsBg(struct Sprite *sprite);
//Forms screen
static void Task_LoadFormsScreen(u8 taskId);
static void Task_HandleFormsScreenInput(u8 taskId);
static void PrintForms(u8 taskId, u16 species);
static void PrintForms(u8 taskId, enum Species species);
static void Task_SwitchScreensFromFormsScreen(u8 taskId);
static void Task_ExitFormsScreen(u8 taskId);
@ -595,7 +595,7 @@ static void Task_ExitFormsScreen(u8 taskId);
static u8 ShowCategoryIcon(enum DamageCategory category);
static void DestroyCategoryIcon(void);
static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum);
static enum Species NationalPokedexNumToSpeciesHGSS(enum NationalDexOrder nationalNum);
//Evo screen
u32 GetSpeciesNameFontId(u32 nameWidth);
@ -3057,12 +3057,12 @@ static u8 ClearMonSprites(void)
return FALSE;
}
static u16 GetPokemonSpriteToDisplay(u16 species)
static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum)
{
if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF)
if (natDexNum >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[natDexNum].dexNum == 0xFFFF)
return 0xFFFF;
else if (sPokedexView->pokedexList[species].seen)
return sPokedexView->pokedexList[species].dexNum;
else if (sPokedexView->pokedexList[natDexNum].seen)
return sPokedexView->pokedexList[natDexNum].dexNum;
else
return 0;
}
@ -4093,7 +4093,7 @@ static void UNUSED HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused)
void Task_DisplayCaughtMonDexPageHGSS(u8 taskId)
{
u8 spriteId;
u16 species;
enum Species species;
enum NationalDexOrder dexNum;
if (!POKEDEX_PLUS_HGSS) return; // prevents the compiler from emitting static .rodata
@ -4215,7 +4215,7 @@ static void Task_ExitCaughtMonPage(u8 taskId)
{
if (!gPaletteFade.active)
{
u16 species;
enum Species species;
u32 otId;
u32 personality;
u8 paletteNum;
@ -4351,7 +4351,7 @@ static void SetTypeIconPosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId)
sprite->y = y + 8;
SetSpriteInvisibility(spriteArrayId, FALSE);
}
static void PrintCurrentSpeciesTypeInfo(u8 newEntry, u16 species)
static void PrintCurrentSpeciesTypeInfo(u8 newEntry, enum Species species)
{
enum Type type1, type2;
@ -4402,7 +4402,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry)
{
u8 str[16];
u8 str2[32];
u16 species;
enum Species species;
const u8 *name;
const u8 *category;
const u8 *description;
@ -4517,7 +4517,7 @@ static u8 PrintCryScreenSpeciesName(u8 windowId, u16 num, u8 left, u8 top)
// Unown and Spinda use the personality of the first seen individual of that species
// All others use personality 0
static u32 GetPokedexMonPersonality(u16 species)
static u32 GetPokedexMonPersonality(enum Species species)
{
if (species == SPECIES_UNOWN || species == SPECIES_SPINDA)
{
@ -4562,9 +4562,9 @@ static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum)
return gSpeciesInfo[nationalNum].trainerOffset;
}
static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot)
static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16 x, s16 y, s8 paletteSlot)
{
return CreateTrainerFrontPicSprite(species, x, y, paletteSlot);
return CreateTrainerFrontPicSprite(trainerPicId, x, y, paletteSlot);
}
@ -4667,12 +4667,12 @@ static u16 GetNextPosition(u8 direction, u16 position, u16 min, u16 max)
//* HGSS *
//* *
//************************************
static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum)
static enum Species NationalPokedexNumToSpeciesHGSS(enum NationalDexOrder nationalNum)
{
if (!nationalNum)
return 0;
return SPECIES_NONE;
if (sPokedexView->formSpecies != 0)
if (sPokedexView->formSpecies != SPECIES_NONE)
return sPokedexView->formSpecies;
else
return NationalPokedexNumToSpecies(nationalNum);
@ -4764,7 +4764,7 @@ static void ResetStatsWindows(void)
static void SaveMonDataInStruct(void)
{
u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
u8 evs[NUM_STATS] =
{
[STAT_HP] = gSpeciesInfo[species].evYield_HP,
@ -5054,16 +5054,16 @@ static void PrintStatsScreen_DestroyMoveItemIcon(u8 taskId)
DestroySprite(&gSprites[gTasks[taskId].data[3]]); //Destroy item icon
}
static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *numTutorMoves)
static u16 AddTMTutorMoves(enum Species species, u16 movesTotal, u8 *numTMHMMoves, u8 *numTutorMoves)
{
u16 i, move;
enum Move move;
bool8 isTMMove[MOVES_COUNT] = {0};
const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species);
// TM Moves
if (HGSS_SORT_TMS_BY_NUM)
{
for (i = 0; i < NUM_ALL_MACHINES; i++)
for (u32 i = 0; i < NUM_ALL_MACHINES; i++)
{
move = GetTMHMMoveId(i + 1);
if (move != MOVE_NONE && CanLearnTeachableMove(species, move))
@ -5078,7 +5078,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu
}
else
{
for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++)
for (u32 i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++)
{
move = teachableLearnset[i];
for (u16 j = 0; j < NUM_ALL_MACHINES; j++)
@ -5098,7 +5098,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu
// Tutor Moves
#if P_TUTOR_MOVES_ARRAY
for (i = 0; gTutorMoves[i] != MOVE_UNAVAILABLE; i++)
for (u32 i = 0; gTutorMoves[i] != MOVE_UNAVAILABLE; i++)
{
move = gTutorMoves[i];
if (!isTMMove[move] && CanLearnTeachableMove(species, move))
@ -5109,7 +5109,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu
}
}
#else
for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++)
for (u32 i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++)
{
move = teachableLearnset[i];
if (!isTMMove[move] && CanLearnTeachableMove(species, move))
@ -5125,7 +5125,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu
static bool8 CalculateMoves(void)
{
u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
u16 statsMovesEgg[EGG_MOVES_ARRAY_COUNT] = {0};
u16 statsMovesLevelUp[MAX_LEVEL_UP_MOVES] = {0};
@ -5193,10 +5193,9 @@ static void PrintStatsScreen_Moves_Top(u8 taskId)
u8 level;
u8 moves_x = 5;
u8 moves_y = 3;
u16 move;
u16 item;
u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
enum Move move;
enum Item item;
enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
//Move
move = sStatsMoves[selected];
@ -5266,7 +5265,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId)
static void PrintStatsScreen_Moves_Description(u8 taskId)
{
u16 selected = sPokedexView->moveSelected;
u16 move;
enum Move move;
u8 moves_x = 5;
u8 moves_y = 5;
@ -5308,7 +5307,7 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId)
u8 moves_x = 8;
u8 moves_y = 3;
u8 selected = sPokedexView->moveSelected;
u16 move;
enum Move move;
//Contest
u8 contest_effectValue;
u8 contest_appeal = 0;
@ -5364,7 +5363,7 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId)
static void PrintStatsScreen_NameGender(u8 taskId, u32 num, u32 value)
{
u8 str[16];
u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
u8 base_x = 38;
u8 base_y = 0;
@ -6008,7 +6007,7 @@ static void ResetEvoScreenDataStruct(void)
static void GetSeenFlagTargetSpecies(void)
{
u8 i;
u16 species;
enum Species species;
for (i = 0; i < sPokedexView->sEvoScreenData.numAllEvolutions; i++)
{
species = sPokedexView->sEvoScreenData.targetSpecies[i];
@ -6188,7 +6187,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId)
if (JOY_NEW(A_BUTTON))
{
u16 targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos];
enum Species targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos];
enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(targetSpecies);
if (sPokedexView->isSearchResults && sPokedexView->originalSearchSelectionNum == 0)
sPokedexView->originalSearchSelectionNum = sPokedexListItem->dexNum;
@ -6200,7 +6199,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId)
if (GetSpeciesFormTable(targetSpecies) != NULL)
sPokedexView->formSpecies = targetSpecies;
else
sPokedexView->formSpecies = 0;
sPokedexView->formSpecies = SPECIES_NONE;
sPokedexView->sEvoScreenData.fromEvoPage = TRUE;
PlaySE(SE_PIN);
@ -6278,7 +6277,7 @@ static void CreateCaughtBallEvolutionScreen(u16 targetSpecies, u8 x, u8 y, u16 u
}
}
static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 species, u8 base_x, u8 base_y, u8 base_y_offset, u8 base_i)
static void HandlePreEvolutionSpeciesPrint(u8 taskId, enum Species preSpecies, enum Species species, u8 base_x, u8 base_y, u8 base_y_offset, u8 base_i)
{
bool8 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(preSpecies), FLAG_GET_SEEN);
@ -6309,7 +6308,7 @@ static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 specie
}
}
static bool32 HasTwoPreEvolutions(u32 species)
static bool32 HasTwoPreEvolutions(enum Species species)
{
switch (species)
{
@ -6320,9 +6319,8 @@ static bool32 HasTwoPreEvolutions(u32 species)
}
}
static u8 PrintPreEvolutions(u8 taskId, u16 species)
static u8 PrintPreEvolutions(u8 taskId, enum Species species)
{
u16 i;
u16 j;
u8 base_x = 13+8;
@ -6333,7 +6331,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species)
u16 preEvolutionTwo = 0;
u8 numPreEvolutions = 0;
u16 baseFormSpecies;
enum Species baseFormSpecies;
sPokedexView->sEvoScreenData.isMega = FALSE;
//Check if it's a mega
@ -6341,7 +6339,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species)
if (baseFormSpecies != species)
{
const struct FormChange *formChanges = GetSpeciesFormChanges(baseFormSpecies);
for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++)
for (u32 i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++)
{
if (formChanges[i].method == FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM
&& formChanges[i].targetSpecies == species)
@ -6361,7 +6359,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species)
}
//Calculate previous evolution
for (i = 0; i < NUM_SPECIES; i++)
for (enum Species i = 0; i < NUM_SPECIES; i++)
{
const struct Evolution *evolutions = GetSpeciesEvolutions(i);
if (evolutions == NULL)
@ -6407,7 +6405,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species)
//Calculate if previous evolution also has a previous evolution
if (numPreEvolutions != 0)
{
for (i = 0; i < NUM_SPECIES; i++)
for (enum Species i = 0; i < NUM_SPECIES; i++)
{
const struct Evolution *evolutions = GetSpeciesEvolutions(i);
if (evolutions == NULL)
@ -6486,7 +6484,7 @@ bool32 IsItemSweet(u32 item)
return item >= ITEM_STRAWBERRY_SWEET && item <= ITEM_RIBBON_SWEET;
}
static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines)
static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, enum Species species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines)
{
int i;
u32 depth_x = 4;
@ -7136,7 +7134,7 @@ static void Task_HandleFormsScreenInput(u8 taskId)
#define FORM_SPECIES_END (0xffff)
static void PrintForms(u8 taskId, u16 species)
static void PrintForms(u8 taskId, enum Species species)
{
u8 i;
u8 j = 1;
@ -7832,7 +7830,7 @@ static void Task_ClosePokedexFromSearchResultsStartMenu(u8 taskId)
//************************************
static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, enum BodyColor bodyColor, enum Type type1, enum Type type2)
{
u16 species;
enum Species species;
u16 i;
u16 resultsCount;
enum Type types[2];

View File

@ -74,7 +74,7 @@ struct PokedexScreenData
u16 orderedDexCount;
u8 windowIds[0x10];
u16 dexSpecies;
u16 * bgBufsMem;
u16 *bgBufsMem;
u8 scrollArrowsTaskId;
u8 categoryPageCursorTaskId;
u16 modeSelectCursorPosBak;
@ -87,13 +87,13 @@ struct PokedexScreenData
struct PokedexScreenWindowGfx
{
const u32 * tiles;
const u16 * pal;
const u32 *tiles;
const u16 *pal;
};
struct PokedexCategoryPage
{
const u16 * species;
const enum Species *species;
u8 count;
};
@ -118,7 +118,7 @@ static void DexScreen_RemoveWindow(u8 *windowId_p);
static void DexScreen_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
static void DexScreen_PrintNum3RightAlign(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx);
static void DexScreen_PrintNum4RightAlign(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx);
static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, u16 species, u8 x, u8 y, bool32 allowNationalDex);
static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, enum Species species, u8 x, u8 y, bool32 allowNationalDex);
static u16 DexScreen_GetDexCount(u8 caseId, bool8 whichDex);
static void DexScreen_PrintControlInfo(const u8 *src);
static void DexScreen_DestroyCategoryPageMonIconAndInfoWindows(void);
@ -133,7 +133,7 @@ u8 DexScreen_DrawMonAreaPage(void);
static bool8 DexScreen_IsPageUnlocked(u8 category, u8 pageNum);
static bool8 DexScreen_IsCategoryUnlocked(u8 category);
static u8 DexScreen_GetPageLimitsForCategory(u8 category);
static bool8 DexScreen_LookUpCategoryBySpecies(u16 species);
static bool8 DexScreen_LookUpCategoryBySpecies(enum Species species);
u8 DexScreen_DestroyAreaScreenResources(void);
void DexScreen_CreateCategoryPageSpeciesList(u8 category, u8 pageNum);
static u8 DexScreen_PageNumberToRenderablePages(u16 page);
@ -1598,16 +1598,9 @@ static u8 DexScreen_CreateDexOrderScrollArrows(void)
return AddScrollIndicatorArrowPair(&template, &sPokedexScreenData->modeSelectCursorPosBak);
}
struct PokedexListItem
{
u16 species;
bool8 seen:1;
bool8 caught:1;
};
static void ItemPrintFunc_OrderedListMenu(u8 windowId, u32 itemId, u8 y)
{
u16 species = itemId;
enum Species species = itemId;
bool8 caught = (itemId >> 17) & 1;
u8 type1;
DexScreen_PrintMonDexNo(sPokedexScreenData->numericalOrderWindowId, FONT_SMALL, species, 12, y, sPokedexScreenData->dexOrderId != DEX_ORDER_NUMERICAL_KANTO);
@ -2294,12 +2287,12 @@ static u32 DexScreen_GetDefaultPersonality(int species)
}
}
static void DexScreen_LoadMonPicInWindow(u8 windowId, u16 species, u16 paletteOffset)
static void DexScreen_LoadMonPicInWindow(u8 windowId, enum Species species, u16 paletteOffset)
{
LoadMonFrontPicInWindow(species, FALSE, DexScreen_GetDefaultPersonality(species), paletteOffset >> 4, windowId);
}
static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, u16 species, u8 x, u8 y, bool32 allowNationalDex)
static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, enum Species species, u8 x, u8 y, bool32 allowNationalDex)
{
u16 dexNum;
u8 xNum;
@ -2383,7 +2376,7 @@ static void DexScreen_PrintControlInfo(const u8 *src)
DexScreen_AddTextPrinterParameterized(1, FONT_SMALL, src, 236 - GetStringWidth(FONT_SMALL, src, 0), 2, 4);
}
bool8 DexScreen_DrawMonPicInCategoryPage(u16 species, u8 slot, u8 numSlots)
bool8 DexScreen_DrawMonPicInCategoryPage(enum Species species, u8 slot, u8 numSlots)
{
struct WindowTemplate template;
numSlots--;
@ -2750,7 +2743,7 @@ void DexScreen_DexPageZoomEffectFrame(u8 bg, u8 scale)
FillBgTilemapBufferRect_Palette0(bg, 2, left + 1, divY + 1, width, top + height - divY);
}
void DexScreen_PrintMonCategory(u8 windowId, u16 species, u8 x, u8 y)
void DexScreen_PrintMonCategory(u8 windowId, enum Species species, u8 x, u8 y)
{
u8 *categoryName;
u8 index, categoryStr[12];
@ -2782,7 +2775,7 @@ void DexScreen_PrintMonCategory(u8 windowId, u16 species, u8 x, u8 y)
DexScreen_AddTextPrinterParameterized(windowId, FONT_SMALL, gText_PokedexPokemon, x, y, 0);
}
void DexScreen_PrintMonHeight(u8 windowId, u16 species, u8 x, u8 y)
void DexScreen_PrintMonHeight(u8 windowId, enum Species species, u8 x, u8 y)
{
u8* heightString;
@ -2887,7 +2880,7 @@ static u8* ConvertMeasurementToMetricString(u32 num, u32* index)
return string;
}
void DexScreen_PrintMonWeight(u8 windowId, u16 species, u8 x, u8 y)
void DexScreen_PrintMonWeight(u8 windowId, enum Species species, u8 x, u8 y)
{
u8* weightString;
@ -3015,7 +3008,7 @@ static u8* ReplaceDecimalSeparator(const u8* originalString)
return modifiedString;
}
void DexScreen_PrintMonFlavorText(u8 windowId, u16 species, u8 x, u8 y)
void DexScreen_PrintMonFlavorText(u8 windowId, enum Species species, u8 x, u8 y)
{
struct TextPrinterTemplate printerTemplate;
u16 length;
@ -3054,7 +3047,7 @@ void DexScreen_PrintMonFlavorText(u8 windowId, u16 species, u8 x, u8 y)
#define NUM_FOOTPRINT_TILES 4
void DexScreen_DrawMonFootprint(u8 windowId, u16 species, u8 x, u8 y)
void DexScreen_DrawMonFootprint(u8 windowId, enum Species species, u8 x, u8 y)
{
u16 i, j, tileIdx;
u8 footprintPixel, footprintTile;
@ -3338,10 +3331,10 @@ u8 DexScreen_DestroyAreaScreenResources(void)
return 0;
}
static bool32 DexScreen_MonHasCategoryEntry(u16 species)
static bool32 DexScreen_MonHasCategoryEntry(enum Species species)
{
u16 i, j, k;
u16 natDexNum = SpeciesToNationalPokedexNum(species);
enum NationalDexOrder natDexNum = SpeciesToNationalPokedexNum(species);
for (i = 0; i < ARRAY_COUNT(gDexCategories); i++)
{
@ -3358,7 +3351,7 @@ static bool32 DexScreen_MonHasCategoryEntry(u16 species)
return FALSE;
}
static bool32 DexScreen_CanShowMonInDex(u16 species)
static bool32 DexScreen_CanShowMonInDex(enum Species species)
{
return (IsNationalPokedexEnabled() || IsSpeciesInKantoDex(species)) && DexScreen_MonHasCategoryEntry(species);
}
@ -3366,7 +3359,7 @@ static bool32 DexScreen_CanShowMonInDex(u16 species)
static u8 DexScreen_IsPageUnlocked(u8 categoryNum, u8 pageNum)
{
int i, count;
u16 species;
enum Species species;
count = gDexCategories[categoryNum].page[pageNum].count;
@ -3399,7 +3392,7 @@ static bool8 DexScreen_IsCategoryUnlocked(u8 categoryNum)
void DexScreen_CreateCategoryPageSpeciesList(u8 categoryNum, u8 pageNum)
{
int i, count;
u16 species;
enum Species species;
count = gDexCategories[categoryNum].page[pageNum].count;
sPokedexScreenData->numMonsOnPage = 0;
@ -3447,10 +3440,10 @@ static u8 DexScreen_GetPageLimitsForCategory(u8 category)
}
}
static u8 DexScreen_LookUpCategoryBySpecies(u16 species)
static u8 DexScreen_LookUpCategoryBySpecies(enum Species species)
{
int i, j, k, categoryCount, categoryPageCount, posInPage;
u16 dexSpecies;
enum Species dexSpecies;
for (i = 0; i < ARRAY_COUNT(gDexCategories); i++)
{
@ -3501,7 +3494,7 @@ void DexScreen_InputHandler_StartToCry(void)
#define tPersonalityLo 14
#define tPersonalityHi 15
u8 DexScreen_RegisterMonToPokedex(u16 species)
u8 DexScreen_RegisterMonToPokedex(enum Species species)
{
DexScreen_GetSetPokedexFlag(species, FLAG_SET_SEEN, TRUE);
DexScreen_GetSetPokedexFlag(species, FLAG_SET_CAUGHT, TRUE);
@ -3516,7 +3509,7 @@ u8 DexScreen_RegisterMonToPokedex(u16 species)
return sPokedexScreenData->taskId;
}
u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality)
u8 DisplayCaughtMonDexPage(enum Species species, bool32 isShiny, u32 personality)
{
u8 taskId = 0;
if (POKEDEX_PLUS_HGSS)

View File

@ -79,7 +79,7 @@ extern u16 gSpecialVar_ItemId;
struct SpeciesItem
{
u16 species;
enum Species species;
enum Item item;
};
@ -1289,18 +1289,18 @@ void ZeroEnemyPartyMons(void)
ZeroMonData(&gEnemyParty[i]);
}
void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level)
void CreateRandomMon(struct Pokemon *mon, enum Species species, u8 level)
{
CreateRandomMonWithIVs(mon, species, level, USE_RANDOM_IVS);
}
void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv)
void CreateRandomMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u8 fixedIv)
{
CreateMonWithIVs(mon, species, level, Random32(), OTID_STRUCT_PLAYER_ID, fixedIv);
GiveMonInitialMoveset(mon);
}
void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId)
void CreateMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId)
{
u32 mail;
ZeroMonData(mon);
@ -1310,7 +1310,7 @@ void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, stru
SetMonData(mon, MON_DATA_MAIL, &mail);
}
void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV)
void CreateMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV)
{
CreateMon(mon, species, level, personality, trainerId);
SetBoxMonIVs(&mon->box, fixedIV);
@ -1369,7 +1369,7 @@ void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV)
}
}
void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId)
void CreateBoxMon(struct BoxPokemon *boxMon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId)
{
u8 speciesName[POKEMON_NAME_LENGTH + 1];
u32 value;
@ -1473,7 +1473,7 @@ static bool32 IsValidGender(u32 gender)
}
}
u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter)
u32 GetMonPersonality(enum Species species, u8 gender, u8 nature, u8 unownLetter)
{
u32 personality, actualLetter;
@ -1505,14 +1505,14 @@ u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter)
}
// Used to create the Old Man's Weedle?
void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level)
void CreateMaleMon(struct Pokemon *mon, enum Species species, u8 level)
{
u32 personality = GetMonPersonality(species, MON_MALE, NATURE_RANDOM, RANDOM_UNOWN_LETTER);
CreateMonWithIVs(mon, species, level, personality, OTID_STRUCT_PLAYER_ID, USE_RANDOM_IVS);
GiveMonInitialMoveset(mon);
}
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality)
void CreateMonWithIVsPersonality(struct Pokemon *mon, enum Species species, u8 level, u32 ivs, u32 personality)
{
CreateMon(mon, species, level, personality, OTID_STRUCT_PLAYER_ID);
SetMonData(mon, MON_DATA_IVS, &ivs);
@ -1702,7 +1702,7 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP
GetMonData(mon, MON_DATA_NICKNAME10, dest->nickname);
}
static void CreateEventMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId otId)
static void CreateEventMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId otId)
{
bool32 isModernFatefulEncounter = TRUE;
@ -1800,7 +1800,7 @@ void CalculateMonStats(struct Pokemon *mon)
{
s32 oldMaxHP = GetMonData(mon, MON_DATA_MAX_HP);
s32 currentHP = GetMonData(mon, MON_DATA_HP);
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u8 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
s32 level = GetLevelFromMonExp(mon);
s32 newMaxHP;
@ -1892,7 +1892,7 @@ void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest)
u8 GetLevelFromMonExp(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 exp = GetMonData(mon, MON_DATA_EXP);
s32 level = 1;
@ -1904,7 +1904,7 @@ u8 GetLevelFromMonExp(struct Pokemon *mon)
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon)
{
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP);
s32 level = 1;
@ -1991,7 +1991,7 @@ void GiveMonInitialMoveset(struct Pokemon *mon)
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) //Credit: AsparagusEduardo
{
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
s32 level = GetLevelFromBoxMonExp(boxMon);
s32 i;
enum Move moves[MAX_MON_MOVES] = {MOVE_NONE};
@ -2081,7 +2081,7 @@ void GiveBoxMonDefaultMove(struct BoxPokemon *boxMon, u32 slot)
enum Move MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u32 level)
{
enum Move retVal = MOVE_NONE;
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species);
// since you can learn more than one move per level
@ -2254,7 +2254,7 @@ u8 GetMonGender(struct Pokemon *mon)
u8 GetBoxMonGender(struct BoxPokemon *boxMon)
{
u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES);
u32 personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY);
switch (gSpeciesInfo[species].genderRatio)
@ -2271,7 +2271,7 @@ u8 GetBoxMonGender(struct BoxPokemon *boxMon)
return MON_MALE;
}
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality)
u8 GetGenderFromSpeciesAndPersonality(enum Species species, u32 personality)
{
switch (gSpeciesInfo[species].genderRatio)
{
@ -2287,12 +2287,12 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality)
return MON_MALE;
}
bool32 IsPersonalityFemale(u16 species, u32 personality)
bool32 IsPersonalityFemale(enum Species species, u32 personality)
{
return GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE;
}
u32 GetUnownSpeciesId(u32 personality)
enum Species GetUnownSpeciesId(u32 personality)
{
u16 unownLetter = GetUnownLetterByPersonality(personality);
@ -3554,7 +3554,7 @@ u8 GetMonsStateToDoubles_2(void)
return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON;
}
enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum)
enum Ability GetAbilityBySpecies(enum Species species, u8 abilityNum)
{
int i;
@ -3581,7 +3581,7 @@ enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum)
enum Ability GetMonAbility(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u8 abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM);
return GetAbilityBySpecies(species, abilityNum);
}
@ -3653,7 +3653,7 @@ bool8 IsPokemonStorageFull(void)
return TRUE;
}
const u8 *GetSpeciesName(u16 species)
const u8 *GetSpeciesName(enum Species species)
{
species = SanitizeSpeciesId(species);
if (gSpeciesInfo[species].speciesName[0] == 0)
@ -3661,7 +3661,7 @@ const u8 *GetSpeciesName(u16 species)
return gSpeciesInfo[species].speciesName;
}
const u8 *GetSpeciesCategory(u16 species)
const u8 *GetSpeciesCategory(enum Species species)
{
species = SanitizeSpeciesId(species);
if (gSpeciesInfo[species].categoryName[0] == 0)
@ -3669,7 +3669,7 @@ const u8 *GetSpeciesCategory(u16 species)
return gSpeciesInfo[species].categoryName;
}
const u8 *GetSpeciesPokedexDescription(u16 species)
const u8 *GetSpeciesPokedexDescription(enum Species species)
{
species = SanitizeSpeciesId(species);
if (gSpeciesInfo[species].description == NULL)
@ -3677,57 +3677,57 @@ const u8 *GetSpeciesPokedexDescription(u16 species)
return gSpeciesInfo[species].description;
}
u32 GetSpeciesHeight(u16 species)
u32 GetSpeciesHeight(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].height;
}
u32 GetSpeciesWeight(u16 species)
u32 GetSpeciesWeight(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].weight;
}
enum Type GetSpeciesType(u16 species, u8 slot)
enum Type GetSpeciesType(enum Species species, u8 slot)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].types[slot];
}
enum Ability GetSpeciesAbility(u16 species, u8 slot)
enum Ability GetSpeciesAbility(enum Species species, u8 slot)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].abilities[slot];
}
u32 GetSpeciesBaseHP(u16 species)
u32 GetSpeciesBaseHP(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].baseHP;
}
u32 GetSpeciesBaseAttack(u16 species)
u32 GetSpeciesBaseAttack(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].baseAttack;
}
u32 GetSpeciesBaseDefense(u16 species)
u32 GetSpeciesBaseDefense(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].baseDefense;
}
u32 GetSpeciesBaseSpAttack(u16 species)
u32 GetSpeciesBaseSpAttack(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpAttack;
}
u32 GetSpeciesBaseSpDefense(u16 species)
u32 GetSpeciesBaseSpDefense(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpDefense;
}
u32 GetSpeciesBaseSpeed(u16 species)
u32 GetSpeciesBaseSpeed(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpeed;
}
u32 GetSpeciesBaseStat(u16 species, u32 statIndex)
u32 GetSpeciesBaseStat(enum Species species, u32 statIndex)
{
switch (statIndex)
{
@ -3747,7 +3747,7 @@ u32 GetSpeciesBaseStat(u16 species, u32 statIndex)
return 0;
}
const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species)
const struct LevelUpMove *GetSpeciesLevelUpLearnset(enum Species species)
{
const struct LevelUpMove *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].levelUpLearnset;
if (learnset == NULL)
@ -3755,7 +3755,7 @@ const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species)
return learnset;
}
const u16 *GetSpeciesTeachableLearnset(u16 species)
const u16 *GetSpeciesTeachableLearnset(enum Species species)
{
const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].teachableLearnset;
if (learnset == NULL)
@ -3763,7 +3763,7 @@ const u16 *GetSpeciesTeachableLearnset(u16 species)
return learnset;
}
const u16 *GetSpeciesEggMoves(u16 species)
const u16 *GetSpeciesEggMoves(enum Species species)
{
const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].eggMoveLearnset;
if (learnset == NULL)
@ -3771,7 +3771,7 @@ const u16 *GetSpeciesEggMoves(u16 species)
return learnset;
}
const struct Evolution *GetSpeciesEvolutions(u16 species)
const struct Evolution *GetSpeciesEvolutions(enum Species species)
{
const struct Evolution *evolutions = gSpeciesInfo[SanitizeSpeciesId(species)].evolutions;
if (evolutions == NULL)
@ -3779,7 +3779,7 @@ const struct Evolution *GetSpeciesEvolutions(u16 species)
return evolutions;
}
const u16 *GetSpeciesFormTable(u16 species)
const u16 *GetSpeciesFormTable(enum Species species)
{
const u16 *formTable = gSpeciesInfo[SanitizeSpeciesId(species)].formSpeciesIdTable;
if (formTable == NULL)
@ -3787,7 +3787,7 @@ const u16 *GetSpeciesFormTable(u16 species)
return formTable;
}
const struct FormChange *GetSpeciesFormChanges(u16 species)
const struct FormChange *GetSpeciesFormChanges(enum Species species)
{
const struct FormChange *formChanges = gSpeciesInfo[SanitizeSpeciesId(species)].formChangeTable;
if (formChanges == NULL)
@ -3987,7 +3987,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex,
}
else if (param - 1 < ARRAY_COUNT(sExpCandyExperienceTable)) // EXP Candies
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
dataUnsigned = sExpCandyExperienceTable[param - 1] + GetMonData(mon, MON_DATA_EXP);
if (B_RARE_CANDY_CAP && B_EXP_CAP_TYPE == EXP_CAP_HARD)
@ -5143,7 +5143,7 @@ u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16
bool8 IsMonPastEvolutionLevel(struct Pokemon *mon)
{
int i;
u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0);
u8 level = GetMonData(mon, MON_DATA_LEVEL, 0);
const struct Evolution *evolutions = GetSpeciesEvolutions(species);
@ -5167,20 +5167,20 @@ bool8 IsMonPastEvolutionLevel(struct Pokemon *mon)
return FALSE;
}
u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum)
enum Species NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum)
{
u16 species;
enum Species species;
if (!nationalNum)
return 0;
species = 1;
species = SPECIES_BULBASAUR;
while (species < (NUM_SPECIES) && gSpeciesInfo[species].natDexNum != nationalNum)
species++;
if (species == NUM_SPECIES)
return NATIONAL_DEX_NONE;
return SPECIES_NONE;
return GET_BASE_SPECIES_ID(species);
}
@ -5203,7 +5203,7 @@ enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum)
return hoennNum + 1;
}
enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species)
enum NationalDexOrder SpeciesToNationalPokedexNum(enum Species species)
{
species = SanitizeSpeciesId(species);
if (!species)
@ -5212,7 +5212,7 @@ enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species)
return gSpeciesInfo[species].natDexNum;
}
enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species)
enum HoennDexOrder SpeciesToHoennPokedexNum(enum Species species)
{
if (!species)
return 0;
@ -5254,7 +5254,7 @@ enum KantoDexOrder NationalToKantoDexNum(enum NationalDexOrder natDexNum)
return KANTO_DEX_NONE;
}
enum KantoDexOrder SpeciesToKantoDexNum(u16 species)
enum KantoDexOrder SpeciesToKantoDexNum(enum Species species)
{
if (!species)
return KANTO_DEX_NONE;
@ -5262,7 +5262,7 @@ enum KantoDexOrder SpeciesToKantoDexNum(u16 species)
return NationalToKantoDexNum(SpeciesToNationalPokedexNum(species));
}
bool32 IsSpeciesInKantoDex(u16 species)
bool32 IsSpeciesInKantoDex(enum Species species)
{
return SpeciesToKantoDexNum(species) != KANTO_DEX_NONE;
}
@ -5459,7 +5459,8 @@ u16 ModifyStatByNature(u8 nature, u16 stat, enum Stat statIndex)
void AdjustFriendship(struct Pokemon *mon, u8 event)
{
u16 species, heldItem;
enum Species species;
enum Item heldItem;
enum HoldEffect holdEffect;
s8 mod;
@ -5669,7 +5670,7 @@ u16 GetMonEVCount(struct Pokemon *mon)
bool8 TryIncrementMonLevel(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0);
u8 nextLevel = GetMonData(mon, MON_DATA_LEVEL, 0) + 1;
u32 expPoints = GetMonData(mon, MON_DATA_EXP, 0);
if (expPoints > gExperienceTables[gSpeciesInfo[species].growthRate][MAX_LEVEL])
@ -5688,7 +5689,7 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon)
}
}
u8 CanLearnTeachableMove(u16 species, enum Move move)
u8 CanLearnTeachableMove(enum Species species, enum Move move)
{
const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species);
if (species == SPECIES_EGG)
@ -5701,7 +5702,7 @@ u8 CanLearnTeachableMove(u16 species, enum Move move)
return FALSE;
}
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
u8 GetLevelUpMovesBySpecies(enum Species species, u16 *moves)
{
u8 numMoves = 0;
int i;
@ -5713,18 +5714,20 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
return numMoves;
}
u16 SpeciesToPokedexNum(u16 species)
u16 SpeciesToPokedexNum(enum Species species)
{
enum KantoDexOrder kantoDexNum;
if (IsNationalPokedexEnabled())
return SpeciesToNationalPokedexNum(species);
species = SpeciesToKantoDexNum(species);
if (species <= KANTO_DEX_COUNT)
return species;
kantoDexNum = SpeciesToKantoDexNum(species);
if (kantoDexNum <= KANTO_DEX_COUNT)
return kantoDexNum;
return 0xFFFF;
}
bool32 IsSpeciesInHoennDex(u16 species)
bool32 IsSpeciesInHoennDex(enum Species species)
{
if (SpeciesToHoennPokedexNum(species) > HOENN_DEX_COUNT)
return FALSE;
@ -5857,29 +5860,29 @@ static void Task_PlayMapChosenOrBattleBGM(u8 taskId)
const u16 *GetMonFrontSpritePal(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
bool32 isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
bool32 isEgg = GetMonData(mon, MON_DATA_IS_EGG);
return GetMonSpritePalFromSpeciesAndPersonalityIsEgg(species, isShiny, personality, isEgg);
}
const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality)
const u16 *GetMonSpritePalFromSpeciesAndPersonality(enum Species species, bool32 isShiny, u32 personality)
{
return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, IsPersonalityFemale(species, personality), FALSE);
}
const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg)
const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(enum Species species, bool32 isShiny, u32 personality, bool32 isEgg)
{
return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, IsPersonalityFemale(species, personality), isEgg);
}
const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale)
const u16 *GetMonSpritePalFromSpecies(enum Species species, bool32 isShiny, bool32 isFemale)
{
return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, isFemale, FALSE);
}
const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg)
const u16 *GetMonSpritePalFromSpeciesIsEgg(enum Species species, bool32 isShiny, bool32 isFemale, bool32 isEgg)
{
species = SanitizeSpeciesId(species);
@ -5933,7 +5936,7 @@ bool32 CannotForgetMove(enum Move move)
return IsMoveHM(move);
}
bool8 IsMonSpriteNotFlipped(u16 species)
bool8 IsMonSpriteNotFlipped(enum Species species)
{
return gSpeciesInfo[species].noFlip;
}
@ -6013,7 +6016,7 @@ void SetMonPreventsSwitchingString(void)
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4, sizeof(gStringVar4));
}
static s32 GetWildMonTableIdInAlteringCave(u16 species)
static s32 GetWildMonTableIdInAlteringCave(enum Species species)
{
s32 i;
for (i = 0; i < (s32) ARRAY_COUNT(sAlteringCaveWildMonHeldItems); i++)
@ -6041,7 +6044,7 @@ void SetWildMonHeldItem(void)
if (!(gBattleTypeFlags & (BATTLE_TYPE_POKEDUDE | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE)))
{
u16 rnd;
u16 species;
enum Species species;
u16 count = (WILD_DOUBLE_BATTLE) ? 2 : 1;
u16 i;
bool32 itemHeldBoost = CanFirstMonBoostHeldItemRarity();
@ -6149,7 +6152,7 @@ static void Task_AnimateAfterDelay(u8 taskId)
// }
// }
void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode)
void BattleAnimateFrontSprite(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panMode)
{
if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)))
DoMonFrontSpriteAnimation(sprite, species, noCry, panMode | SKIP_FRONT_ANIM);
@ -6157,7 +6160,7 @@ void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u
DoMonFrontSpriteAnimation(sprite, species, noCry, panMode);
}
void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag)
void DoMonFrontSpriteAnimation(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panModeAnimFlag)
{
s8 pan;
switch (panModeAnimFlag & (u8)~SKIP_FRONT_ANIM) // Exclude anim flag to get pan mode
@ -6204,7 +6207,7 @@ void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry,
}
}
// void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame)
// void PokemonSummaryDoMonAnimation(struct Sprite *sprite, enum Species species, bool8 oneFrame)
// {
// if (!oneFrame && HasTwoFramesAnimation(species))
// StartSpriteAnim(sprite, 1);
@ -6232,7 +6235,7 @@ void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry,
// DestroyTask(delayTaskId);
// }
void BattleAnimateBackSprite(struct Sprite *sprite, u16 species)
void BattleAnimateBackSprite(struct Sprite *sprite, enum Species species)
{
if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)))
{
@ -6328,7 +6331,7 @@ void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId)
HandleSetPokedexFlag(nationalNum, caseId, personality);
}
bool8 HasTwoFramesAnimation(u16 species)
bool8 HasTwoFramesAnimation(enum Species species)
{
return P_TWO_FRAME_FRONT_SPRITES
&& gSpeciesInfo[species].frontAnimFrames != sAnims_SingleFramePlaceHolder
@ -6527,7 +6530,7 @@ u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum)
}
}
u16 GetFormSpeciesId(u16 speciesId, u8 formId)
u16 GetFormSpeciesId(enum Species speciesId, u8 formId)
{
if (GetSpeciesFormTable(speciesId) != NULL)
return GetSpeciesFormTable(speciesId)[formId];
@ -6804,7 +6807,7 @@ u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx)
void TrySetDayLimitToFormChange(struct Pokemon *mon)
{
u32 i;
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++)
@ -6817,7 +6820,7 @@ void TrySetDayLimitToFormChange(struct Pokemon *mon)
}
}
bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method)
bool32 DoesSpeciesHaveFormChangeMethod(enum Species species, enum FormChanges method)
{
u32 i;
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
@ -6833,7 +6836,7 @@ bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method)
u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u8 level = GetMonData(mon, MON_DATA_LEVEL);
const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species);
@ -6943,7 +6946,7 @@ void TrySpecialOverworldEvo(void)
SetMainCallback2(CB2_ReturnToField);
}
bool32 SpeciesHasGenderDifferences(u16 species)
bool32 SpeciesHasGenderDifferences(enum Species species)
{
#if P_GENDER_DIFFERENCES
if (gSpeciesInfo[species].frontPicFemale != NULL
@ -7034,7 +7037,7 @@ bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method)
return FALSE;
}
u16 SanitizeSpeciesId(u16 species)
u16 SanitizeSpeciesId(enum Species species)
{
assertf(species <= NUM_SPECIES && (species == SPECIES_NONE || IsSpeciesEnabled(species)), "invalid species: %d", species)
{
@ -7044,7 +7047,7 @@ u16 SanitizeSpeciesId(u16 species)
return species;
}
bool32 IsSpeciesEnabled(u16 species)
bool32 IsSpeciesEnabled(enum Species species)
{
// This function should not use the GetSpeciesBaseHP function, as the included sanitation will result in an infinite loop
return gSpeciesInfo[species].baseHP > 0 || species == SPECIES_EGG;
@ -7053,7 +7056,7 @@ bool32 IsSpeciesEnabled(u16 species)
void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method)
{
int i, j;
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
if (formChanges == NULL
@ -7181,7 +7184,7 @@ void HealBoxPokemon(struct BoxPokemon *boxMon)
BoxMonRestorePP(boxMon);
}
enum PokemonCry GetCryIdBySpecies(u16 species)
enum PokemonCry GetCryIdBySpecies(enum Species species)
{
species = SanitizeSpeciesId(species);
if (P_CRIES_ENABLED == FALSE || gSpeciesInfo[species].cryId >= CRY_COUNT || gTestRunnerHeadless)
@ -7189,7 +7192,7 @@ enum PokemonCry GetCryIdBySpecies(u16 species)
return gSpeciesInfo[species].cryId;
}
u16 GetSpeciesPreEvolution(u16 species)
u16 GetSpeciesPreEvolution(enum Species species)
{
int i, j;
@ -7423,7 +7426,7 @@ u8 GetPlayerPartyHighestLevel(void)
return level;
}
bool8 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler)
bool32 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler)
{
u8 nickname[POKEMON_NAME_LENGTH + 1];
@ -7437,7 +7440,7 @@ bool8 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler)
return FALSE;
}
u16 GetFirstPartnerMove(u16 species)
enum Move GetFirstPartnerMove(enum Species species)
{
switch(species)
{

View File

@ -468,7 +468,7 @@ static void SetPosForRotation(struct Sprite *sprite, u16 index, s16 amplitudeX,
sprite->y2 = yAdder + amplitudeY;
}
enum BackAnim GetSpeciesBackAnimSet(u16 species)
enum BackAnim GetSpeciesBackAnimSet(enum Species species)
{
if (gSpeciesInfo[species].backAnimId != BACK_ANIM_NONE)
return gSpeciesInfo[species].backAnimId - 1;

View File

@ -134,12 +134,12 @@ static const u16 sSpriteImageSizes[3][4] =
},
};
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality)
u8 CreateMonIcon(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality)
{
return CreateMonIconIsEgg(species, callback, x, y, subpriority, personality, FALSE);
}
u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg)
u8 CreateMonIconIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg)
{
u8 spriteId;
struct MonIconSpriteTemplate iconTemplate =
@ -179,7 +179,7 @@ u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16
}
u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority)
u8 CreateMonIconNoPersonality(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority)
{
u8 spriteId;
struct MonIconSpriteTemplate iconTemplate =
@ -200,7 +200,7 @@ u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s1
return spriteId;
}
u16 GetIconSpecies(u16 species, u32 personality)
enum Species GetIconSpecies(enum Species species, u32 personality)
{
species = SanitizeSpeciesId(species);
if (species == SPECIES_UNOWN)
@ -216,7 +216,7 @@ u16 GetUnownLetterByPersonality(u32 personality)
return GET_UNOWN_LETTER(personality);
}
u16 GetIconSpeciesNoPersonality(u16 species)
u16 GetIconSpeciesNoPersonality(enum Species species)
{
species = SanitizeSpeciesId(species);
@ -225,12 +225,12 @@ u16 GetIconSpeciesNoPersonality(u16 species)
return GetIconSpecies(species, 0);
}
const u8 *GetMonIconPtr(u16 species, u32 personality)
const u8 *GetMonIconPtr(enum Species species, u32 personality)
{
return GetMonIconPtrIsEgg(species, personality, FALSE);
}
const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg)
const u8 *GetMonIconPtrIsEgg(enum Species species, u32 personality, bool32 isEgg)
{
return GetMonIconTilesIsEgg(GetIconSpecies(species, personality), personality, isEgg);
}
@ -248,7 +248,7 @@ void LoadMonIconPalettes(void)
}
// unused
void SafeLoadMonIconPalette(u16 species)
void SafeLoadMonIconPalette(enum Species species)
{
u8 palIndex;
palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
@ -256,14 +256,14 @@ void SafeLoadMonIconPalette(u16 species)
LoadSpritePalette(&gMonIconPaletteTable[palIndex]);
}
void LoadMonIconPalette(u16 species)
void LoadMonIconPalette(enum Species species)
{
u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF)
LoadSpritePalette(&gMonIconPaletteTable[palIndex]);
}
void LoadMonIconPalettePersonality(u16 species, u32 personality)
void LoadMonIconPalettePersonality(enum Species species, u32 personality)
{
u8 palIndex;
species = SanitizeSpeciesId(species);
@ -285,17 +285,15 @@ void FreeMonIconPalettes(void)
}
// unused
void SafeFreeMonIconPalette(u16 species)
void SafeFreeMonIconPalette(enum Species species)
{
u8 palIndex;
palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag);
}
void FreeMonIconPalette(u16 species)
void FreeMonIconPalette(enum Species species)
{
u8 palIndex;
palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag);
}
@ -304,12 +302,12 @@ void SpriteCB_MonIcon(struct Sprite *sprite)
UpdateMonIconFrame(sprite);
}
const u8 *GetMonIconTiles(u16 species, u32 personality)
const u8 *GetMonIconTiles(enum Species species, u32 personality)
{
return GetMonIconTilesIsEgg(species, personality, FALSE);
}
const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg)
const u8 *GetMonIconTilesIsEgg(enum Species species, u32 personality, bool32 isEgg)
{
const u8 *iconSprite;
@ -352,17 +350,17 @@ void TryLoadAllMonIconPalettesAtOffset(u16 offset)
}
}
u8 GetValidMonIconPalIndex(u16 species)
u8 GetValidMonIconPalIndex(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
}
u8 GetMonIconPaletteIndexFromSpecies(u16 species)
u8 GetMonIconPaletteIndexFromSpecies(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex;
}
const u16 *GetValidMonIconPalettePtr(u16 species)
const u16 *GetValidMonIconPalettePtr(enum Species species)
{
return gMonIconPaletteTable[gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex].data;
}

View File

@ -269,7 +269,7 @@ static void InitGame(struct PokemonJump *);
static void ResetForNewGame(struct PokemonJump *);
static void InitPlayerAndJumpTypes(void);
static void ResetPlayersForNewGame(void);
static s16 GetSpeciesPokemonJumpType(u16 species);
static s16 GetSpeciesPokemonJumpType(enum Species species);
static void InitJumpMonInfo(struct PokemonJump_MonInfo *monInfo, struct Pokemon *mon);
static void CB2_PokemonJump(void);
static void Task_StartPokemonJump(u8 taskId);
@ -334,9 +334,9 @@ static void TryUpdateExcellentsRecord(u16);
static bool32 HasEnoughScoreForPrize(void);
static u16 GetPrizeData(void);
static void UnpackPrizeData(u16, u16 *, u16 *);
static u16 GetPrizeItemId(void);
static enum Item GetPrizeItemId(void);
static u16 GetPrizeQuantity(void);
static u16 GetQuantityLimitedByBag(u16 item, u16 quantity);
static u16 GetQuantityLimitedByBag(enum Item item, u16 quantity);
static void SetUpPokeJumpGfxFunc(void (*func)(void));
static void Task_RunPokeJumpGfxFunc(u8 taskId);
static void LoadPokeJumpGfx(void);
@ -376,9 +376,9 @@ static void SetUpPokeJumpGfxFuncById(int);
static bool32 IsPokeJumpGfxFuncFinished(void);
static void SetUpResetVineGfx(void);
static bool32 ResetVineGfx(void);
static void PrintPrizeMessage(u16, u16);
static void PrintPrizeFilledBagMessage(u16);
static void PrintNoRoomForPrizeMessage(u16);
static void PrintPrizeMessage(enum Item itemId, u16 quantity);
static void PrintPrizeFilledBagMessage(enum Item itemId);
static void PrintNoRoomForPrizeMessage(enum Item itemId);
static bool32 DoPrizeMessageAndFanfare(void);
static void ClearMessageWindow(void);
static void SetMonSpriteY(u32 , s16);
@ -814,7 +814,7 @@ static void ResetPlayersForNewGame(void)
}
}
static s16 GetSpeciesPokemonJumpType(u16 species)
static s16 GetSpeciesPokemonJumpType(enum Species species)
{
return gSpeciesInfo[SanitizeSpeciesId(species)].pokemonJumpType;
}
@ -2413,7 +2413,7 @@ static void TryUpdateExcellentsRecord(u16 excellentsInRow)
sPokemonJump->excellentsInRowRecord = excellentsInRow;
}
static const u16 sPrizeItems[] = {
static const enum Item sPrizeItems[] = {
ITEM_LEPPA_BERRY,
ITEM_LUM_BERRY,
ITEM_SITRUS_BERRY,
@ -2446,7 +2446,7 @@ static bool32 HasEnoughScoreForPrize(void)
static u16 GetPrizeData(void)
{
u16 itemId = GetPrizeItemId();
enum Item itemId = GetPrizeItemId();
u16 quantity = GetPrizeQuantity();
return (quantity << 12) | (itemId & 0xFFF);
}
@ -2457,7 +2457,7 @@ static void UnpackPrizeData(u16 data, u16 *itemId, u16 *quantity)
*itemId = data & 0xFFF;
}
static u16 GetPrizeItemId(void)
static enum Item GetPrizeItemId(void)
{
u16 index = Random() % ARRAY_COUNT(sPrizeItems);
return sPrizeItems[index];
@ -2465,10 +2465,9 @@ static u16 GetPrizeItemId(void)
static u16 GetPrizeQuantity(void)
{
u32 quantity, i;
u32 quantity = 0;
quantity = 0;
for (i = 0; i < ARRAY_COUNT(sPrizeQuantityData); i++)
for (u32 i = 0; i < ARRAY_COUNT(sPrizeQuantityData); i++)
{
if (sPokemonJump->comm.jumpScore >= sPrizeQuantityData[i].score)
quantity = sPrizeQuantityData[i].quantity;
@ -2479,7 +2478,7 @@ static u16 GetPrizeQuantity(void)
return quantity;
}
static u16 GetQuantityLimitedByBag(u16 item, u16 quantity)
static u16 GetQuantityLimitedByBag(enum Item item, u16 quantity)
{
while (quantity && !CheckBagHasSpace(item, quantity))
quantity--;
@ -2507,7 +2506,7 @@ static u8 *GetPokeJumpPlayerName(u8 multiplayerId)
return sPokemonJump->players[multiplayerId].name;
}
bool32 IsSpeciesAllowedInPokemonJump(u16 species)
bool32 IsSpeciesAllowedInPokemonJump(enum Species species)
{
return GetSpeciesPokemonJumpType(species) != PKMN_JUMP_TYPE_NONE;
}
@ -2520,7 +2519,7 @@ void IsPokemonJumpSpeciesInParty(void)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES))
{
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
if (IsSpeciesAllowedInPokemonJump(species))
{
gSpecialVar_Result = TRUE;
@ -3150,7 +3149,7 @@ static bool32 ResetVineGfx(void)
static const u8 sPluralTxt[] = _("IES");
static void PrintPrizeMessage(u16 itemId, u16 quantity)
static void PrintPrizeMessage(enum Item itemId, u16 quantity)
{
CopyItemName(itemId, sPokemonJumpGfx->itemName);
ConvertIntToDecimalStringN(sPokemonJumpGfx->itemQuantityStr, quantity, STR_CONV_MODE_LEFT_ALIGN, 1);
@ -3178,7 +3177,7 @@ static void PrintPrizeMessage(u16 itemId, u16 quantity)
sPokemonJumpGfx->msgWindowState = 0;
}
static void PrintPrizeFilledBagMessage(u16 itemId)
static void PrintPrizeFilledBagMessage(enum Item itemId)
{
CopyItemName(itemId, sPokemonJumpGfx->itemName);
DynamicPlaceholderTextUtil_Reset();
@ -3191,7 +3190,7 @@ static void PrintPrizeFilledBagMessage(u16 itemId)
sPokemonJumpGfx->msgWindowState = 0;
}
static void PrintNoRoomForPrizeMessage(u16 itemId)
static void PrintNoRoomForPrizeMessage(enum Item itemId)
{
CopyItemName(itemId, sPokemonJumpGfx->itemName);
DynamicPlaceholderTextUtil_Reset();

View File

@ -71,7 +71,7 @@ static u8 TranslateBigMonSizeTableIndex(u16 a)
return i;
}
static u32 GetMonSize(u16 species, u16 b)
static u32 GetMonSize(enum Species species, u16 b)
{
u64 unk2;
u64 unk4;
@ -98,7 +98,7 @@ static void FormatMonSizeRecord(u8 *string, u32 size)
ConvertIntToDecimalStringN(string, size % 10, STR_CONV_MODE_LEFT_ALIGN, 1);
}
static u8 CompareMonSize(u16 species, u16 *sizeRecord)
static u8 CompareMonSize(enum Species species, u16 *sizeRecord)
{
if (gSpecialVar_Result >= PARTY_SIZE)
{
@ -141,7 +141,7 @@ static u8 CompareMonSize(u16 species, u16 *sizeRecord)
}
// Stores species name in gStringVar1, trainer's name in gStringVar2, and size in gStringVar3
static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord)
static void GetMonSizeRecordInfo(enum Species species, u16 *sizeRecord)
{
u32 size = GetMonSize(species, *sizeRecord);

View File

@ -22,7 +22,7 @@ static EWRAM_DATA bool32 sCancelDisabled = FALSE;
static EWRAM_DATA u8 sPSATaskId = 0;
static EWRAM_DATA struct PokemonSpecialAnim * sPSAWork = NULL;
static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback);
static struct PokemonSpecialAnim *AllocPSA(u8 slotId, enum Item itemId, MainCallback callback);
static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr);
static void SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(struct PokemonSpecialAnim * ptr);
static void SetUpUseItemAnim_CantEvolve(struct PokemonSpecialAnim * ptr);
@ -33,18 +33,18 @@ static void Task_UseTM_NoForget(u8 taskId);
static void Task_MachineSet(u8 taskId);
static void Task_CleanUp(u8 taskId);
static u8 GetClosenessFromFriendship(u16 friendship);
static u16 GetAnimTypeByItemId(u16 itemId);
static u16 GetAnimTypeByItemId(enum Item itemId);
void StartUseItemAnim_Normal(u8 slotId, u16 itemId, MainCallback callback)
void StartUseItemAnim_Normal(u8 slotId, enum Item itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback);
struct PokemonSpecialAnim *ptr = AllocPSA(slotId, itemId, callback);
if (ptr == NULL)
SetMainCallback2(callback);
else
SetUpUseItemAnim_Normal(ptr);
}
void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId, MainCallback callback)
void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, enum Item itemId, enum Move moveId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback);
if (ptr == NULL)
@ -56,7 +56,7 @@ void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId
}
}
void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback)
void StartUseItemAnim_CantEvolve(u8 slotId, enum Item itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback);
if (ptr == NULL)
@ -65,14 +65,14 @@ void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback)
SetUpUseItemAnim_CantEvolve(ptr);
}
static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback)
static struct PokemonSpecialAnim *AllocPSA(u8 slotId, enum Item itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr;
struct Pokemon * pokemon;
u16 moveId;
struct PokemonSpecialAnim *ptr;
struct Pokemon *pokemon;
if (!gMain.inBattle)
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
ptr = Alloc(sizeof(struct PokemonSpecialAnim));
@ -95,7 +95,7 @@ static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback
GetMonData(pokemon, MON_DATA_NICKNAME, ptr->nickname);
if (ptr->animType == PSA_ITEM_ANIM_TYPE_TMHM)
{
moveId = ItemIdToBattleMoveId(itemId);
enum Move moveId = ItemIdToBattleMoveId(itemId);
StringCopy(ptr->nameOfMoveToTeach, GetMoveName(moveId));
}
return ptr;
@ -606,14 +606,14 @@ static void Task_CleanUp(u8 taskId)
}
static const struct {
u16 itemId;
enum Item itemId;
u16 animType;
} sItemAnimMap[2] = {
{ITEM_RARE_CANDY, PSA_ITEM_ANIM_TYPE_DEFAULT},
{ITEM_POTION, PSA_ITEM_ANIM_TYPE_POTION}
};
static u16 GetAnimTypeByItemId(u16 itemId)
static u16 GetAnimTypeByItemId(enum Item itemId)
{
int i;
@ -659,7 +659,7 @@ struct PokemonSpecialAnimScene * PSA_GetSceneWork(void)
return &GetPSAStruct()->sceneResources;
}
u16 PSA_GetItemId(void)
enum Item PSA_GetItemId(void)
{
return GetPSAStruct()->itemId;
}
@ -689,7 +689,7 @@ u8 PSA_GetAnimType(void)
return GetPSAStruct()->animType;
}
u16 PSA_GetMonSpecies(void)
enum Species PSA_GetMonSpecies(void)
{
return GetPSAStruct()->species;
}

View File

@ -31,8 +31,7 @@ static void StartMonWiggleAnim(struct PokemonSpecialAnimScene * scene, u8 frameL
static void StopMonWiggleAnim(struct PokemonSpecialAnimScene * scene);
static void SpriteCallback_MonSpriteWiggle(struct Sprite *sprite);
static void LoadMonSpriteGraphics(u16 *tilees, const u16 *palette);
static struct Sprite *PSA_CreateItemIconObject(u16 itemId);
static u16 GetBlendColorByItemId(u16 itemId);
static struct Sprite *PSA_CreateItemIconObject(enum Item itemId);
static void Task_ItemUseOnMonAnim(u8 taskId);
static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite *sprite);
static void SpriteCB_OutwardSpiralDots(struct Sprite *sprite);
@ -391,7 +390,7 @@ void PSA_HideMessageWindow(void)
void PSA_PrintMessage(u8 messageId)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
u16 itemId = PSA_GetItemId();
enum Item itemId = PSA_GetItemId();
u16 strWidth = 0;
u8 textSpeed = GetPlayerTextSpeedDelay();
struct Pokemon * pokemon = PSA_GetPokemon();
@ -652,7 +651,7 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
struct Pokemon * pokemon = PSA_GetPokemon();
u16 species = GetMonData(pokemon, MON_DATA_SPECIES);
enum Species species = GetMonData(pokemon, MON_DATA_SPECIES);
u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
u8 yOffset = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_Y_OFFSET);
void *monPicBuffer;
@ -872,7 +871,7 @@ static void LoadMonSpriteGraphics(u16 *tiles, const u16 *palette)
#define tTimerReset data[10]
#define tSuppressDots data[11]
void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2)
void PSA_SetUpItemUseOnMonAnim(enum Item itemId, u8 closeness, bool32 a2)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
u8 taskId;
@ -887,18 +886,13 @@ void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2)
gTasks[taskId].tCloseness = closeness;
gTasks[taskId].tYpos = GetYPosByScale(sAffineScales[closeness]);
gTasks[taskId].tData6 = a2;
gTasks[taskId].tBlendColor = GetBlendColorByItemId(itemId);
gTasks[taskId].tBlendColor = RGB_WHITE;
}
}
static u16 GetBlendColorByItemId(u16 itemId)
void CreateItemIconSpriteAtMaxCloseness(enum Item itemId)
{
return RGB_WHITE;
}
void CreateItemIconSpriteAtMaxCloseness(u16 itemId)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
struct PokemonSpecialAnimScene *scene = PSA_GetSceneWork();
scene->itemIconSprite = PSA_CreateItemIconObject(itemId);
if (scene->itemIconSprite != NULL)
{
@ -907,7 +901,7 @@ void CreateItemIconSpriteAtMaxCloseness(u16 itemId)
}
}
static struct Sprite *PSA_CreateItemIconObject(u16 itemId)
static struct Sprite *PSA_CreateItemIconObject(enum Item itemId)
{
u8 spriteId;
spriteId = AddItemIconSprite(1, 1, itemId);
@ -1043,8 +1037,10 @@ void PSA_UseItem_CleanUpForCancel(void)
static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite *sprite, u8 closeness)
{
u16 species, x, y;
enum Species species;
u16 x, y;
u32 personality;
if (closeness == 3)
{
sprite->x = 120;
@ -1185,8 +1181,9 @@ static void CreateStarSprites(struct PokemonSpecialAnimScene * scene)
{
int i;
u8 spriteId;
u16 species;
enum Species species;
u32 personality;
LoadCompressedSpriteSheet(&sSpriteSheet_Star);
LoadSpritePalette(&sSpritePalette_Star);
scene->field_0002 = 0;

View File

@ -520,7 +520,7 @@ static void PrintInstructionsOnWindow(struct PokemonSpriteVisualizer *data)
{
u8 fontId = FONT_SMALL;
u8 x = 2;
u16 species = data->modifyArrows.currValue;
enum Species species = data->modifyArrows.currValue;
u8 textBottom[] = _("BACK:\nFRONT:\nBG:$");
u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$");
@ -576,7 +576,7 @@ static void SetStructPtr(u8 taskId, void *ptr)
static void PrintDigitChars(struct PokemonSpriteVisualizer *data)
{
s32 i;
u16 species = data->modifyArrows.currValue;
enum Species species = data->modifyArrows.currValue;
u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 8];
for (i = 0; i < data->modifyArrows.maxDigits; i++)
@ -783,7 +783,7 @@ static void UpdateBattlerValue(struct PokemonSpriteVisualizer *data)
}
}
static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isShiny, enum BattlerId battler)
static void BattleLoadOpponentMonSpriteGfxCustom(enum Species species, bool8 isFemale, bool8 isShiny, enum BattlerId battler)
{
const u16 *palette = GetMonSpritePalFromSpecies(species, isShiny, isFemale);
u16 paletteOffset = OBJ_PLTT_ID(battler);
@ -794,7 +794,7 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo
static void SetConstSpriteValues(struct PokemonSpriteVisualizer *data)
{
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
data->constSpriteValues.frontPicCoords = gSpeciesInfo[species].frontPicYOffset;
data->constSpriteValues.frontElevation = gSpeciesInfo[species].enemyMonElevation;
data->constSpriteValues.backPicCoords = gSpeciesInfo[species].backPicYOffset;
@ -811,7 +811,8 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data)
{
if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE)
return;
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
data->shadowSettings.definedX = gSpeciesInfo[species].enemyShadowXOffset;
data->shadowSettings.definedY = gSpeciesInfo[species].enemyShadowYOffset;
data->shadowSettings.definedSize = gSpeciesInfo[species].enemyShadowSize;
@ -821,7 +822,7 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data)
data->shadowSettings.overrideSize = data->shadowSettings.definedSize;
}
static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 offset_elevation)
static u8 GetBattlerSpriteFinal_YCustom(enum Species species, s8 offset_picCoords, s8 offset_elevation)
{
u16 offset;
u8 y;
@ -911,7 +912,7 @@ static void SpriteCB_Follower(struct Sprite *sprite)
static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer *data)
{
bool8 invisible = FALSE;
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
{
@ -1041,7 +1042,7 @@ static void DrawFollowerSprite(struct PokemonSpriteVisualizer *data)
if (!OW_POKEMON_OBJECT_EVENTS)
return;
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
u16 graphicsId = species + OBJ_EVENT_MON;
if (data->isShiny)
graphicsId += OBJ_EVENT_MON_SHINY;
@ -1212,7 +1213,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
u8 taskId;
const u16 *palette;
struct PokemonSpriteVisualizer *data;
u16 species;
enum Species species;
s16 offset_y;
u8 front_x = sBattlerCoords[0][1].x;
u8 front_y;
@ -1387,7 +1388,7 @@ static void ResetBGs_PokemonSpriteVisualizer(u16 a)
static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
{
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
//Back
gSprites[data->backspriteId].y = VISUALIZER_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + data->offsetsSpriteValues.offset_back_picCoords;
//Front
@ -1400,7 +1401,7 @@ static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
u8 option = data->submenuYpos[1];
switch (option)
@ -1485,7 +1486,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
u8 option = data->submenuYpos[2];
s8 offset;
u8 y;
@ -1705,7 +1706,7 @@ static void OpenSubmenu(u32 submenu, u8 taskId)
static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
struct Sprite *Frontsprite = &gSprites[data->frontspriteId];
struct Sprite *Backsprite = &gSprites[data->backspriteId];
@ -1989,7 +1990,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data)
{
const u16 *palette;
u16 species = SanitizeSpeciesId(data->currentmonId);
enum Species species = SanitizeSpeciesId(data->currentmonId);
s16 offset_y;
u8 front_x = sBattlerCoords[0][1].x;
u8 front_y;

View File

@ -498,7 +498,7 @@ struct PokemonStorageSystemData
const u16 *displayMonPalette;
u32 displayMonPersonality;
u16 displayMonSpecies;
u16 displayMonItemId;
enum Item displayMonItemId;
u16 displayUnusedVar;
bool8 setMosaic;
u8 displayMonMarkings;
@ -544,7 +544,7 @@ struct PokemonStorageSystemData
u8 inBoxMovingMode;
u16 multiMoveWindowId;
struct PokeStorageItemIcon itemIcons[MAX_ITEM_ICONS];
u16 movingItemId;
enum Item movingItemId;
u16 itemInfoWindowOffset;
struct QuestLogEvent_MovedBoxMon questLogData;
u16 unusedField2;
@ -636,7 +636,7 @@ static void StartDisplayMonMosaic(void);
static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite);
static bool8 IsDisplayMonMosaicActive(void);
static void CreateDisplayMonSprite(void);
static void LoadDisplayMonGfx(u16 species, u32 personality);
static void LoadDisplayMonGfx(enum Species species, u32 personality);
static void PrintDisplayMonInfo(void);
static void UpdateWaveformAnimation(void);
static void InitSupplementalTilemaps(void);
@ -703,7 +703,7 @@ static void DestroyAllPartyMonIcons(void);
static void DoReleaseMonComeBackAnim(void);
static bool8 ResetReleaseMonSpritePtr(void);
static void SetMovingMonPriority(u8 priority);
static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority);
static struct Sprite *CreateMonIconSprite(enum Species species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority);
// Pokémon data
static bool8 TryStorePartyMonInBox(u8 boxId);
@ -776,7 +776,7 @@ static bool8 UpdateItemInfoWindowSlideIn(void);
static bool8 UpdateItemInfoWindowSlideOut(void);
static void InitItemInfoWindow(void);
static void PrintItemDescription(void);
static u16 GetMovingItem(void);
static enum Item GetMovingItem(void);
static bool8 IsActiveItemMoving(void);
static bool8 IsItemIconAnimActive(void);
static void MoveHeldItemWithPartyMenu(void);
@ -785,7 +785,7 @@ static void MoveItemFromCursorToBag(void);
static void Item_TakeMons(u8 cursorArea, u8 cursorPos);
static void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos);
static void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos);
static void InitItemIconInCursor(u16 item);
static void InitItemIconInCursor(enum Item item);
static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos);
static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos);
static void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos);
@ -2382,7 +2382,7 @@ static void Task_OnSelectedMon(u8 taskId)
PlaySE(SE_SELECT);
if (gStorage->boxOption != OPTION_MOVE_ITEMS)
PrintStorageMessage(MSG_IS_SELECTED);
else if (IsActiveItemMoving() || gStorage->displayMonItemId != 0)
else if (IsActiveItemMoving() || gStorage->displayMonItemId != ITEM_NONE)
PrintStorageMessage(MSG_IS_SELECTED2);
else
PrintStorageMessage(MSG_GIVE_TO_MON);
@ -3571,7 +3571,7 @@ static void Task_ChangeScreen(u8 taskId)
static void GiveChosenBagItem(void)
{
u16 item = gSpecialVar_ItemId;
enum Item item = gSpecialVar_ItemId;
if (item != ITEM_NONE)
{
@ -3751,7 +3751,7 @@ static void CreateDisplayMonSprite(void)
}
}
static void LoadDisplayMonGfx(u16 species, u32 personality)
static void LoadDisplayMonGfx(enum Species species, u32 personality)
{
if (gStorage->displayMonSprite == NULL)
return;
@ -4277,7 +4277,7 @@ static u8 GetMonIconPriorityByCursorArea(void)
void CreateMovingMonIcon(void)
{
u32 personality = GetMonData(&gStorage->movingMon, MON_DATA_PERSONALITY);
u16 species = GetMonData(&gStorage->movingMon, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gStorage->movingMon, MON_DATA_SPECIES_OR_EGG);
u8 priority = GetMonIconPriorityByCursorArea();
gStorage->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7);
@ -4299,7 +4299,7 @@ static void InitBoxMonSprites(u8 boxId)
{
u8 boxPosition;
u16 i, j, count;
u16 species;
enum Species species;
u32 personality;
count = 0;
@ -4337,7 +4337,7 @@ static void InitBoxMonSprites(u8 boxId)
void CreateBoxMonIconAtPos(u8 boxPosition)
{
u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES_OR_EGG);
if (species != SPECIES_NONE)
{
@ -4590,7 +4590,7 @@ void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode)
static void CreatePartyMonsSprites(bool8 visible)
{
u16 i, count;
u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES_OR_EGG);
u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY);
gStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12);
@ -4940,7 +4940,7 @@ static void SpriteCB_HeldMon(struct Sprite *sprite)
sprite->y = gStorage->cursorSprite->y + gStorage->cursorSprite->y2 + 4;
}
static u16 TryLoadMonIconTiles(u16 species, u32 personality)
static u16 TryLoadMonIconTiles(enum Species species, u32 personality)
{
u16 i, offset;
@ -4978,7 +4978,7 @@ static u16 TryLoadMonIconTiles(u16 species, u32 personality)
return offset;
}
static void RemoveSpeciesFromIconList(u16 species)
static void RemoveSpeciesFromIconList(enum Species species)
{
u16 i;
bool8 hasFemale = FALSE;
@ -5003,7 +5003,7 @@ static void RemoveSpeciesFromIconList(u16 species)
}
}
static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority)
static struct Sprite *CreateMonIconSprite(enum Species species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority)
{
u16 tileNum;
u8 spriteId;
@ -5654,7 +5654,7 @@ static void GetCursorCoordsByPos(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *
}
}
static u16 GetSpeciesAtCursorPosition(void)
static enum Species GetSpeciesAtCursorPosition(void)
{
switch (sCursorArea)
{
@ -6245,7 +6245,7 @@ static bool8 TryHideReleaseMon(void)
static void ReleaseMon(void)
{
u8 boxId;
u16 item = ITEM_NONE;
enum Item item = ITEM_NONE;
DestroyReleaseMonIcon();
if (sIsMonBeingMoved)
@ -6448,7 +6448,7 @@ s16 CompactPartySlots(void)
for (i = 0, last = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES);
enum Species species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES);
if (species != SPECIES_NONE)
{
if (i != last)
@ -7301,7 +7301,7 @@ static bool8 SetSelectionMenuTexts(void)
static bool8 SetMenuTextsForMon(void)
{
u16 species = GetSpeciesAtCursorPosition();
enum Species species = GetSpeciesAtCursorPosition();
switch (gStorage->boxOption)
{
@ -8105,7 +8105,7 @@ static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn)
static void MultiMove_SetIconToBg(u8 x, u8 y)
{
u8 position = x + (IN_BOX_COLUMNS * y);
u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG);
u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY);
if (species != SPECIES_NONE)
@ -8119,7 +8119,7 @@ static void MultiMove_SetIconToBg(u8 x, u8 y)
static void MultiMove_ClearIconFromBg(u8 x, u8 y)
{
u8 position = x + (IN_BOX_COLUMNS * y);
u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG);
if (species != SPECIES_NONE)
FillWindowPixelRect8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0), 24 * x, 24 * y, 32, 32);
@ -8450,7 +8450,7 @@ static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos)
static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos)
{
u8 id;
u16 item;
enum Item item;
if (gStorage->boxOption != OPTION_MOVE_ITEMS)
return;
@ -8474,7 +8474,7 @@ static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos)
gStorage->movingItemId = gStorage->displayMonItemId;
}
static void InitItemIconInCursor(u16 item)
static void InitItemIconInCursor(enum Item item)
{
const u32 *tiles = GetItemIconPic(item);
const u16 *pal = GetItemIconPalette(item);
@ -8491,7 +8491,7 @@ static void InitItemIconInCursor(u16 item)
static void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos)
{
u8 id;
u16 item;
enum Item item;
if (gStorage->boxOption != OPTION_MOVE_ITEMS)
return;
@ -8542,7 +8542,7 @@ static void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos)
static void Item_TakeMons(u8 cursorArea, u8 cursorPos)
{
u8 id;
u16 item;
enum Item item;
if (gStorage->boxOption != OPTION_MOVE_ITEMS)
return;
@ -8629,7 +8629,7 @@ static const u8 *GetMovingItemName(void)
return GetItemName(gStorage->movingItemId);
}
static u16 GetMovingItem(void)
static enum Item GetMovingItem(void)
{
return gStorage->movingItemId;
}

View File

@ -103,8 +103,8 @@ static void BufferMonSkills(void);
static void BufferMonMoves(void);
static u8 StatusToAilment(u32 status);
static void BufferMonMoveI(u8);
static u16 GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot);
static u16 GetMonPpByMoveSlot(struct Pokemon * mon, u8 moveSlot);
static enum Move GetMonMoveBySlotId(struct Pokemon *mon, u8 moveSlot);
static u16 GetMonPpByMoveSlot(struct Pokemon *mon, u8 moveSlot);
static void CreateShinyStarObj(u16, u16);
static void CreatePokerusIconObj(u16, u16);
static void PokeSum_CreateMonMarkingsSprite(void);
@ -223,8 +223,8 @@ struct PokemonSummaryScreenData
u8 ALIGNED(4) unk3248; /* 0x3248 */
s16 ALIGNED(4) flipPagesBgHofs; /* 0x324C */
u16 moveTypes[MAX_MON_MOVES + 1]; /* 0x3250 */
u16 moveIds[MAX_MON_MOVES + 1]; /* 0x325A */
enum Type moveTypes[MAX_MON_MOVES + 1]; /* 0x3250 */
enum Move moveIds[MAX_MON_MOVES + 1]; /* 0x325A */
u8 ALIGNED(4) numMoves; /* 0x3264 */
u8 ALIGNED(4) isSwappingMoves; /* 0x3268 */
@ -1301,10 +1301,10 @@ void ShowPokemonSummaryScreen(void *party, u8 cursorPos, u8 lastIdx, MainCallbac
SetMainCallback2(CB2_SetUpPSS);
}
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 cursorPos, MainCallback savedCallback, u16 move)
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 cursorPos, MainCallback savedCallback, enum Move move)
{
ShowPokemonSummaryScreen(party, cursorPos, gPlayerPartyCount - 1, savedCallback, PSS_MODE_SELECT_MOVE);
sMonSummaryScreen->moveIds[4] = move;
sMonSummaryScreen->moveIds[MAX_MON_MOVES] = move;
}
static u8 PageFlipInputIsDisabled(u8 direction)
@ -2606,8 +2606,8 @@ static void BufferStat(u8 stat)
static void BufferMonSkills(void)
{
u8 level;
u16 type;
u16 species;
enum Ability ability;
enum Species species;
u32 exp;
u32 expToNextLevel;
@ -2633,9 +2633,9 @@ static void BufferMonSkills(void)
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.expToNextLevelStrBuf, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7);
sMonSkillsPrinterXpos->toNextLevel = GetNumberRightAlign63(sMonSummaryScreen->summary.expToNextLevelStrBuf);
type = GetAbilityBySpecies(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM));
StringCopy(sMonSummaryScreen->summary.abilityNameStrBuf, gAbilitiesInfo[type].name);
StringCopy(sMonSummaryScreen->summary.abilityDescStrBuf, gAbilitiesInfo[type].description);
ability = GetAbilityBySpecies(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM));
StringCopy(sMonSummaryScreen->summary.abilityNameStrBuf, gAbilitiesInfo[ability].name);
StringCopy(sMonSummaryScreen->summary.abilityDescStrBuf, gAbilitiesInfo[ability].description);
sMonSummaryScreen->curMonStatusAilment = StatusToAilment(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
if (sMonSummaryScreen->curMonStatusAilment == AILMENT_NONE)
@ -2661,7 +2661,7 @@ static void BufferMonMoveI(u8 i)
if (i < MAX_MON_MOVES)
sMonSummaryScreen->moveIds[i] = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, i);
if (sMonSummaryScreen->moveIds[i] == 0)
if (sMonSummaryScreen->moveIds[i] == MOVE_NONE)
{
StringCopy(sMonSummaryScreen->summary.moveNameStrBufs[i], gText_PokeSum_OneHyphen);
StringCopy(sMonSummaryScreen->summary.moveCurPpStrBufs[i], gText_PokeSum_TwoHyphens);
@ -2676,7 +2676,7 @@ static void BufferMonMoveI(u8 i)
sMonSummaryScreen->moveTypes[i] = gMovesInfo[sMonSummaryScreen->moveIds[i]].type;
StringCopy(sMonSummaryScreen->summary.moveNameStrBufs[i], gMovesInfo[sMonSummaryScreen->moveIds[i]].name);
if (i >= 4 && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
if (i >= MAX_MON_MOVES && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
{
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveCurPpStrBufs[i],
gMovesInfo[sMonSummaryScreen->moveIds[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
@ -2981,7 +2981,7 @@ static void PokeSum_PrintMoveName(u8 i)
{
u8 colorIdx = 0;
u8 curPP = GetMonPpByMoveSlot(&sMonSummaryScreen->currentMon, i);
u16 move = sMonSummaryScreen->moveIds[i];
enum Move move = sMonSummaryScreen->moveIds[i];
u8 ppBonuses = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES);
u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i);
@ -3899,9 +3899,9 @@ static void BufferSelectedMonData(struct Pokemon * mon)
}
}
static u16 GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot)
static enum Move GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot)
{
u16 move;
enum Move move;
switch (moveSlot)
{
@ -4244,9 +4244,7 @@ static void UpdateCurrentMonBufferFromPartyOrBox(struct Pokemon * mon)
static u8 PokeSum_CanForgetSelectedMove(void)
{
u16 move;
move = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, sMoveSelectionCursorPos);
enum Move move = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, sMoveSelectionCursorPos);
if (CannotForgetMove(move) == TRUE && sMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE)
return FALSE;
@ -4487,7 +4485,7 @@ static void SpriteCB_MonPicDummy(struct Sprite *sprite)
static void PokeSum_CreateMonPicSprite(void)
{
u16 spriteId;
u16 species;
enum Species species;
u32 personality;
bool32 isShiny;
@ -4595,7 +4593,7 @@ static void DestroyBallIconObj(void)
static void PokeSum_CreateMonIconSprite(void)
{
u16 species;
enum Species species;
u32 personality;
species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES_OR_EGG);
@ -4620,8 +4618,7 @@ static void PokeSum_ShowOrHideMonIconSprite(bool8 invisible)
static void PokeSum_DestroyMonIconSprite(void)
{
u16 species;
species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES_OR_EGG);
SafeFreeMonIconPalette(species);
FreeAndDestroyMonIconSprite(&gSprites[sMonSummaryScreen->monIconSpriteId]);
}
@ -5050,7 +5047,7 @@ static void UpdateExpBarObjs(void)
u32 exp;
u32 totalExpToNextLevel;
u32 curExpToNextLevel;
u16 species;
enum Species species;
s64 pointsPerTile;
s64 totalPoints;
u8 animNum;

View File

@ -128,7 +128,7 @@ static const u16 *LoadEvent_BoughtItem(const u16 *);
static const u16 *LoadEvent_SoldItem(const u16 *);
static const u16 *LoadEvent_ObtainedStoryItem(const u16 *);
static const u16 *LoadEvent_ArrivedInLocation(const u16 *);
static bool8 IsSpeciesFromSpecialEncounter(u16);
static bool8 IsSpeciesFromSpecialEncounter(enum Species species);
static bool8 ShouldRegisterEvent_HandleDeparted(u16, const u16 *);
static bool8 ShouldRegisterEvent_DepartedGameCorner(u16, const u16 *);
static void TranslateLinkPartnersName(u8 *);
@ -998,7 +998,7 @@ static const u16 *LoadEvent(u16 eventId, const u16 *eventData)
return eventData;
}
static void QuestLog_GetSpeciesName(u16 species, u8 *dest, u8 stringVarId)
static void QuestLog_GetSpeciesName(enum Species species, u8 *dest, u8 stringVarId)
{
if (dest != NULL)
{
@ -1824,7 +1824,7 @@ static const u16 *LoadEvent_DefeatedWildMon(const u16 *a0)
return (const u16 *)(data + 4);
}
static bool8 IsSpeciesFromSpecialEncounter(u16 species)
static bool8 IsSpeciesFromSpecialEncounter(enum Species species)
{
switch (species)
{
@ -1837,8 +1837,9 @@ static bool8 IsSpeciesFromSpecialEncounter(u16 species)
case SPECIES_HO_OH:
case SPECIES_DEOXYS:
return TRUE;
default:
return FALSE;
}
return FALSE;
}
static u16 *RecordEvent_DefeatedEliteFourMember(u16 *dest, const struct QuestLogEvent_TrainerBattle * data)

View File

@ -55,7 +55,7 @@ void ReshowBattleScreenAfterMenu(void)
static void CB2_ReshowBattleScreenAfterMenu(void)
{
u8 opponentBattler;
u16 species;
enum Species species;
switch (gBattleScripting.reshowMainState)
{

View File

@ -608,7 +608,7 @@ bool8 ScrCmd_random(struct ScriptContext * ctx)
bool8 ScrCmd_additem(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
@ -620,7 +620,7 @@ bool8 ScrCmd_additem(struct ScriptContext * ctx)
bool8 ScrCmd_removeitem(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
@ -631,7 +631,7 @@ bool8 ScrCmd_removeitem(struct ScriptContext * ctx)
bool8 ScrCmd_checkitemspace(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -642,7 +642,7 @@ bool8 ScrCmd_checkitemspace(struct ScriptContext * ctx)
bool8 ScrCmd_checkitem(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -653,7 +653,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext * ctx)
bool8 ScrCmd_checkitemtype(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -663,7 +663,7 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext * ctx)
bool8 ScrCmd_addpcitem(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
@ -674,7 +674,7 @@ bool8 ScrCmd_addpcitem(struct ScriptContext * ctx)
bool8 ScrCmd_checkpcitem(struct ScriptContext * ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -2039,7 +2039,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext * ctx)
bool8 ScrCmd_showmonpic(struct ScriptContext * ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
enum Species species = VarGet(ScriptReadHalfword(ctx));
u8 x = ScriptReadByte(ctx);
u8 y = ScriptReadByte(ctx);
@ -2121,7 +2121,7 @@ u8 *const sScriptStringVars[] =
bool8 ScrCmd_bufferspeciesname(struct ScriptContext * ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 species = VarGet(ScriptReadHalfword(ctx));
enum Species species = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -2167,7 +2167,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext * ctx)
bool8 ScrCmd_bufferitemname(struct ScriptContext * ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -2181,7 +2181,7 @@ static const u8 sText_IES[] = _("IES");
bool8 ScrCmd_bufferitemnameplural(struct ScriptContext * ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 itemId = VarGet(ScriptReadHalfword(ctx));
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -2216,7 +2216,7 @@ bool8 ScrCmd_bufferdecorationname(struct ScriptContext * ctx)
bool8 ScrCmd_buffermovename(struct ScriptContext * ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 moveId = VarGet(ScriptReadHalfword(ctx));
enum Move moveId = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1);
@ -2294,7 +2294,7 @@ bool8 ScrCmd_bufferboxname(struct ScriptContext * ctx)
bool8 ScrCmd_giveegg(struct ScriptContext * ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
enum Species species = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
@ -2306,7 +2306,7 @@ bool8 ScrCmd_setmonmove(struct ScriptContext * ctx)
{
u8 partyIndex = ScriptReadByte(ctx);
u8 slot = ScriptReadByte(ctx);
u16 move = ScriptReadHalfword(ctx);
enum Move move = ScriptReadHalfword(ctx);
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
@ -2316,18 +2316,17 @@ bool8 ScrCmd_setmonmove(struct ScriptContext * ctx)
bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx)
{
u8 i;
u16 moveId = ScriptReadHalfword(ctx);
enum Move moveId = ScriptReadHalfword(ctx);
Script_RequestEffects(SCREFF_V1);
gSpecialVar_Result = PARTY_SIZE;
for (i = 0; i < PARTY_SIZE; i++)
for (u32 i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES);
if (!species)
break;
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId) == TRUE)
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId))
{
gSpecialVar_Result = i;
gSpecialVar_0x8004 = species;
@ -2341,7 +2340,7 @@ bool8 ScrCmd_checkfieldmoveusable(struct ScriptContext* ctx)
{
u32 partyIndex;
enum FieldMove fieldMove = ScriptReadHalfword(ctx);
u16 moveId = gFieldMovesInfo[fieldMove].moveId;
enum Move moveId = gFieldMovesInfo[fieldMove].moveId;
gSpecialVar_Result = FALSE;
Script_RequestEffects(SCREFF_V1);
@ -2361,7 +2360,8 @@ bool8 ScrCmd_checkfieldmoveusable(struct ScriptContext* ctx)
}
else if (OW_FIELD_MOVES_WITHOUT_HMS)
{
u16 species = FieldMove_GetDefaultSpecies(fieldMove);
enum Species species = FieldMove_GetDefaultSpecies(fieldMove);
gFieldEffectArguments[0] = species | SHOW_MON_NOT_IN_PARTY;
gSpecialVar_0x8004 = species;
gSpecialVar_Result = TRUE;
@ -2550,12 +2550,12 @@ bool8 ScrCmd_cleartrainerflag(struct ScriptContext * ctx)
bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
{
u16 species = ScriptReadHalfword(ctx);
enum Species species = ScriptReadHalfword(ctx);
u8 level = ScriptReadByte(ctx);
u16 item = ScriptReadHalfword(ctx);
u16 species2 = ScriptReadHalfword(ctx);
enum Item item = ScriptReadHalfword(ctx);
enum Species species2 = ScriptReadHalfword(ctx);
u8 level2 = ScriptReadByte(ctx);
u16 item2 = ScriptReadHalfword(ctx);
enum Item item2 = ScriptReadHalfword(ctx);
Script_RequestEffects(SCREFF_V1);
@ -2757,7 +2757,7 @@ bool8 ScrCmd_checkplayergender(struct ScriptContext * ctx)
bool8 ScrCmd_playmoncry(struct ScriptContext * ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
enum Species species = VarGet(ScriptReadHalfword(ctx));
u16 mode = VarGet(ScriptReadHalfword(ctx));
Script_RequestEffects(SCREFF_V1 | SCREFF_HARDWARE);

View File

@ -1488,7 +1488,7 @@ static void Task_PokemonPicWindow(u8 taskId)
}
}
bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y)
bool8 ScriptMenu_ShowPokemonPic(enum Species species, u8 x, u8 y)
{
u8 spriteId;
u8 taskId;

View File

@ -151,7 +151,7 @@ void SetTeraType(struct ScriptContext *ctx)
* if side/slot are assigned, it will create the mon at the assigned party location
* if slot == PARTY_SIZE, it will give the mon to first available party or storage slot
*/
static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, enum Item item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, enum Move *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel)
static u32 ScriptGiveMonParameterized(u8 side, u8 slot, enum Species species, u8 level, enum Item item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, enum Move *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel)
{
struct Pokemon mon;
u32 i;
@ -266,7 +266,7 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, e
return MON_GIVEN_TO_PARTY;
}
u32 ScriptGiveMon(u16 species, u8 level, enum Item item)
u32 ScriptGiveMon(enum Species species, u8 level, enum Item item)
{
struct Pokemon mon;
u8 heldItem[2];
@ -306,7 +306,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx)
{
u8 side = ScriptReadByte(ctx);
u8 slot = ScriptReadByte(ctx);
u16 species = VarGet(ScriptReadHalfword(ctx));
enum Species species = VarGet(ScriptReadHalfword(ctx));
u8 level = VarGet(ScriptReadHalfword(ctx));
u32 flags = ScriptReadWord(ctx);
@ -408,7 +408,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx)
#undef PARSE_FLAG
u8 ScriptGiveEgg(u16 species)
u8 ScriptGiveEgg(enum Species species)
{
struct Pokemon mon;
u8 isEgg;
@ -436,13 +436,13 @@ void HasEnoughMonsForDoubleBattle(void)
}
}
static bool8 CheckPartyMonHasHeldItem(u16 item)
static bool8 CheckPartyMonHasHeldItem(enum Item item)
{
int i;
for(i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item)
return TRUE;
}
@ -458,7 +458,7 @@ bool8 DoesPartyHaveEnigmaBerry(void)
return hasItem;
}
void CreateScriptedWildMon(u16 species, u8 level, u16 item)
void CreateScriptedWildMon(enum Species species, u8 level, enum Item item)
{
u8 heldItem[2];
@ -477,7 +477,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item)
}
}
void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 species2, u8 level2, enum Item item2)
void CreateScriptedDoubleWildMon(enum Species species1, u8 level1, enum Item item1, enum Species species2, u8 level2, enum Item item2)
{
u8 heldItem1[2];
u8 heldItem2[2];
@ -510,7 +510,7 @@ void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 s
}
}
void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot)
void ScriptSetMonMoveSlot(u8 monIndex, enum Move move, u8 slot)
{
if (monIndex > PARTY_SIZE)
monIndex = gPlayerPartyCount - 1;
@ -621,7 +621,7 @@ void Script_SetStatus1(struct ScriptContext *ctx)
if (slot >= PARTY_SIZE)
{
u16 species;
enum Species species;
for (slot = 0; slot < PARTY_SIZE; slot++)
{

View File

@ -761,7 +761,7 @@ static void PokeMartWriteNameAndIdAt(struct ListMenuItem *list, u16 index, u8 *d
list->id = index;
}
static void BuyMenuAddItemIcon(u16 item, u8 iconSlot)
static void BuyMenuAddItemIcon(enum Item item, u8 iconSlot)
{
u8 *spriteIdPtr = &sShopData.itemSpriteIds[iconSlot];
@ -1310,7 +1310,7 @@ static void DebugFunc_PrintShopMenuHistoryBeforeClearMaybe(void)
// Records a transaction during a single shopping session.
// This is for the Quest Log to save information about the player's purchases/sales when they finish.
void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId)
void RecordItemTransaction(enum Item itemId, u16 quantity, u8 logEventId)
{
struct QuestLogEvent_Shop *history;

View File

@ -314,7 +314,7 @@ bool8 IsBGMStopped(void)
return FALSE;
}
void PlayCry_Normal(u16 species, s8 pan)
void PlayCry_Normal(enum Species species, s8 pan)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85);
PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, CRY_MODE_NORMAL);
@ -322,13 +322,13 @@ void PlayCry_Normal(u16 species, s8 pan)
RestoreBGMVolumeAfterPokemonCry();
}
void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority)
void PlayCry_NormalNoDucking(enum Species species, s8 pan, s8 volume, u8 priority)
{
PlayCryInternal(species, pan, volume, priority, CRY_MODE_NORMAL);
}
// Assuming it's not CRY_MODE_DOUBLES, this is equivalent to PlayCry_Normal except it allows other modes.
void PlayCry_ByMode(u16 species, s8 pan, u8 mode)
void PlayCry_ByMode(enum Species species, s8 pan, u8 mode)
{
if (mode == CRY_MODE_DOUBLES)
{
@ -344,7 +344,7 @@ void PlayCry_ByMode(u16 species, s8 pan, u8 mode)
}
// Used when releasing multiple Pokémon at once in battle.
void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode)
void PlayCry_ReleaseDouble(enum Species species, s8 pan, u8 mode)
{
if (mode == CRY_MODE_DOUBLES)
{
@ -359,7 +359,7 @@ void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode)
}
// Duck the BGM but don't restore it. Not present in R/S
void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode)
void PlayCry_DuckNoRestore(enum Species species, s8 pan, u8 mode)
{
if (mode == CRY_MODE_DOUBLES)
{
@ -373,7 +373,7 @@ void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode)
}
}
void PlayCry_Script(u16 species, u8 mode)
void PlayCry_Script(enum Species species, u8 mode)
{
if (!QL_IS_PLAYBACK_STATE) // This check is exclusive to FR/LG
{
@ -385,7 +385,7 @@ void PlayCry_Script(u16 species, u8 mode)
}
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode)
void PlayCryInternal(enum Species species, s8 pan, s8 volume, u8 priority, u8 mode)
{
bool32 reverse;
u32 release;

View File

@ -126,11 +126,11 @@ static void LoadBGTemplates(void);
static bool8 HandleLoadTMCaseGraphicsAndPalettes(void);
static void CreateTMCaseListMenuBuffers(void);
static void InitTMCaseListMenuItems(void);
static void GetTMNumberAndMoveString(u8 * dest, u16 itemId);
static void GetTMNumberAndMoveString(u8 *dest, enum Item itemId);
static void List_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
static void List_ItemPrintFunc(u8 windowId, u32 itemId, u8 y);
static void PrintDescription(s32 itemIndex);
static void PrintMoveInfo(u16 itemId);
static void PrintMoveInfo(enum Item itemId);
static void PrintListCursorAtRow(u8 y, u8 colorIdx);
static void CreateListScrollArrows(void);
static void TMCaseSetup_GetTMCount(void);
@ -173,11 +173,11 @@ static void PrintPlayersMoney(void);
static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs);
static u8 AddContextMenu(u8 * windowId, u8 windowIndex);
static void RemoveContextMenu(u8 * windowId);
static u8 CreateDiscSprite(u16 itemId);
static u8 CreateDiscSprite(enum Item itemId);
static void SetDiscSpriteAnim(struct Sprite *sprite, u8 tmIdx);
static void TintDiscpriteByType(u8 type);
static void SetDiscSpritePosition(struct Sprite *sprite, u8 tmIdx);
static void SwapDisc(u8 spriteId, u16 itemId);
static void SwapDisc(u8 spriteId, enum Item itemId);
static void SpriteCB_SwapDisc(struct Sprite *sprite);
static const struct BgTemplate sBGTemplates[] = {
@ -675,7 +675,7 @@ static void InitTMCaseListMenuItems(void)
gMultiuseListMenuTemplate.scrollMultiple = 0;
}
static void GetTMNumberAndMoveString(u8 *dest, u16 itemId)
static void GetTMNumberAndMoveString(u8 *dest, enum Item itemId)
{
StringCopy(gStringVar4, gText_FontSmall);
if (IsItemHM(itemId))
@ -699,7 +699,7 @@ static void GetTMNumberAndMoveString(u8 *dest, u16 itemId)
static void List_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
u16 itemId;
enum Item itemId;
if (itemIndex == LIST_CANCEL)
itemId = ITEM_NONE;
@ -719,7 +719,7 @@ static void List_ItemPrintFunc(u8 windowId, u32 itemIndex, u8 y)
{
if (itemIndex != LIST_CANCEL)
{
u16 itemId = GetBagItemId(POCKET_TM_HM, itemIndex);
enum Item itemId = GetBagItemId(POCKET_TM_HM, itemIndex);
if (!IsItemHM(itemId))
{
if (!GetItemImportance(itemId))
@ -743,10 +743,12 @@ static void List_ItemPrintFunc(u8 windowId, u32 itemIndex, u8 y)
static void PrintDescription(s32 itemIndex)
{
const u8 * str;
if (itemIndex != LIST_CANCEL)
str = GetItemDescription(GetBagItemId(POCKET_TM_HM, itemIndex));
else
str = gText_TMCaseWillBePutAway;
FillWindowPixelBuffer(WIN_DESCRIPTION, 0);
TMCase_Print(WIN_DESCRIPTION, FONT_NORMAL, str, 2, 3, 1, 0, 0, COLOR_LIGHT);
}
@ -1045,8 +1047,9 @@ static void Action_Use(u8 taskId)
static void Action_Give(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u16 itemId = GetBagItemId(POCKET_TM_HM, tListPos);
s16 *data = gTasks[taskId].data;
enum Item itemId = GetBagItemId(POCKET_TM_HM, tListPos);
RemoveContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
ClearStdWindowAndFrameToTransparent(WIN_SELECTED_MSG, FALSE);
ClearWindowTilemap(WIN_SELECTED_MSG);
@ -1548,23 +1551,21 @@ static void DrawMoveInfoLabels(void)
CopyWindowToVram(WIN_MOVE_INFO_LABELS, COPYWIN_GFX);
}
static void PrintMoveInfo(u16 itemId)
static void PrintMoveInfo(enum Item itemId)
{
u8 i;
u16 move;
const u8 * str;
FillWindowPixelRect(WIN_MOVE_INFO, 0, 0, 0, 40, 48);
if (itemId == ITEM_NONE)
{
for (i = 0; i < 4; i++)
for (u32 i = 0; i < 4; i++)
TMCase_Print(WIN_MOVE_INFO, FONT_NORMAL_COPY_2, gText_ThreeHyphens, 7, 12 * i, 0, 0, TEXT_SKIP_DRAW, COLOR_MOVE_INFO);
CopyWindowToVram(WIN_MOVE_INFO, COPYWIN_GFX);
}
else
{
const u8 *str;
enum Move move = ItemIdToBattleMoveId(itemId);
// Draw type icon
move = ItemIdToBattleMoveId(itemId);
BlitMenuInfoIcon(WIN_MOVE_INFO, gMovesInfo[move].type + 1, 0, 0);
// Print power
@ -1630,7 +1631,7 @@ static void RemoveContextMenu(u8 * windowId)
*windowId = WINDOW_NONE;
}
static u8 CreateDiscSprite(u16 itemId)
static u8 CreateDiscSprite(enum Item itemId)
{
u8 spriteId = CreateSprite(&sSpriteTemplate_Disc, DISC_BASE_X, DISC_BASE_Y, 0);
u8 tmIdx;
@ -1696,7 +1697,7 @@ static void SetDiscSpritePosition(struct Sprite *sprite, u8 tmIdx)
#define sItemId data[0]
#define sState data[1]
static void SwapDisc(u8 spriteId, u16 itemId)
static void SwapDisc(u8 spriteId, enum Item itemId)
{
gSprites[spriteId].sItemId = itemId;
gSprites[spriteId].sState = 0;

Some files were not shown because too many files have changed in this diff Show More