diff --git a/.gitignore b/.gitignore index fa01e7526f..af9009dd01 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,6 @@ sound/**/*.bin sound/songs/midi/*.s tools/agbcc *.map -*.ld *.bat *.dump *.sa* diff --git a/Makefile b/Makefile index 443ea1bb20..db883cb60c 100644 --- a/Makefile +++ b/Makefile @@ -146,8 +146,6 @@ ifneq ($(MODERN),1) CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef endif -LDFLAGS = -Map ../../$(MAP) - SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := tools/gbagfx/gbagfx$(EXE) AIF := tools/aif2pcm/aif2pcm$(EXE) @@ -280,8 +278,7 @@ clean-check-tools: @$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);) mostlyclean: tidynonmodern tidymodern tidycheck - rm -f $(SAMPLE_SUBDIR)/*.bin - rm -f $(CRY_SUBDIR)/*.bin + find sound -iname '*.bin' -exec rm {} + rm -f $(MID_SUBDIR)/*.s find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc @@ -466,19 +463,20 @@ endef $(foreach src, $(TEST_SRCS), $(eval $(call TEST_DEP,$(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(TEST_SUBDIR)/%.c,%,$(src))))) ifeq ($(MODERN),0) -LD_SCRIPT := ld_script.txt +LD_SCRIPT := ld_script.ld LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld else -LD_SCRIPT := ld_script_modern.txt +LD_SCRIPT := ld_script_modern.ld LD_SCRIPT_DEPS := endif $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld +LDFLAGS = -Map ../../$(MAP) $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " - @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) + @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent $(ROM): $(ELF) @@ -489,7 +487,7 @@ agbcc: all modern: all -LD_SCRIPT_TEST := ld_script_test.txt +LD_SCRIPT_TEST := ld_script_test.ld $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index bed903cab2..9f0f1dcd15 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1209,7 +1209,7 @@ BattleScript_EffectClangorousSoul: attackstring ppreduce cutonethirdhpraisestats BattleScript_ButItFailed - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_SKIP_DMG_TRACK | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_BIDE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE attackanimation waitanimation healthbarupdate BS_ATTACKER @@ -6843,7 +6843,7 @@ BattleScript_DamagingWeatherHeal: printstring STRINGID_ICEBODYHPGAIN waitmessage B_WAIT_TIME_LONG BattleScript_DamagingWeatherHpChange: - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER @@ -6853,7 +6853,7 @@ BattleScript_DamagingWeatherLoopIncrement:: addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop BattleScript_DamagingWeatherContinuesEnd:: - bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE call BattleScript_ActivateWeatherAbilities end2 @@ -7390,7 +7390,7 @@ BattleScript_EarthEaterActivates:: call BattleScript_AbilityPopUp pause B_WAIT_TIME_LONG tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH @@ -7967,7 +7967,7 @@ BattleScript_CudChewActivates:: call BattleScript_AbilityPopUp setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries consumeberry BS_TARGET, FALSE - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER setbyte sBERRY_OVERRIDE, 0 @@ -9114,14 +9114,14 @@ BattleScript_GrassyTerrainLoop: printstring STRINGID_GRASSYTERRAINHEALS waitmessage B_WAIT_TIME_LONG BattleScript_GrassyTerrainHpChange: - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER BattleScript_GrassyTerrainLoopIncrement:: addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop BattleScript_GrassyTerrainLoopEnd:: - bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_PERMANENT, BattleScript_GrassyTerrainHealEnd BattleScript_GrassyTerrainHealEnd: end2 @@ -9399,7 +9399,7 @@ BattleScript_KingsShieldEffect:: return BattleScript_BanefulBunkerEffect:: - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT seteffectsecondary setmoveeffect 0 @@ -9677,7 +9677,7 @@ BattleScript_ItemHealHP_RemoveItemRet_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING removeitem BS_SCRIPTING @@ -9692,7 +9692,7 @@ BattleScript_ItemHealHP_RemoveItemEnd2_Anim: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER removeitem BS_ATTACKER @@ -9748,7 +9748,7 @@ BattleScript_ItemHealHP_Ret:: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER return @@ -9803,7 +9803,7 @@ BattleScript_BerryConfuseHealEnd2_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING printstring STRINGID_FORXCOMMAYZ @@ -9822,7 +9822,7 @@ BattleScript_BerryConfuseHealRet_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING printstring STRINGID_FORXCOMMAYZ @@ -10560,7 +10560,7 @@ BattleScript_DamageNonTypesLoop:: waitmessage B_WAIT_TIME_LONG effectivenesssound hitanimation BS_ATTACKER - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER @@ -10570,7 +10570,7 @@ BattleScript_DamageNonTypesLoopIncrement:: addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamageNonTypesLoop BattleScript_DamageNonTypesContinuesEnd:: - bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE end2 BattleScript_EffectTryReducePP:: diff --git a/gflib/malloc.c b/gflib/malloc.c index b3191e30b6..0fd8b29571 100644 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -7,6 +7,8 @@ static void *sHeapStart; static u32 sHeapSize; +EWRAM_DATA u8 gHeap[HEAP_SIZE] = {0}; + void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size) { struct MemBlock *header = (struct MemBlock *)block; diff --git a/gflib/malloc.h b/gflib/malloc.h index d17291b3cd..60421dac2f 100644 --- a/gflib/malloc.h +++ b/gflib/malloc.h @@ -1,7 +1,6 @@ #ifndef GUARD_ALLOC_H #define GUARD_ALLOC_H -#define HEAP_SIZE 0x1C000 #define FREE_AND_SET_NULL(ptr) \ { \ @@ -42,7 +41,8 @@ struct MemBlock u8 data[0]; }; -extern u8 gHeap[]; +#define HEAP_SIZE 0x1C000 +extern u8 gHeap[HEAP_SIZE]; #if TESTING || !defined(NDEBUG) diff --git a/graphics/fonts/japanese_frlg_female_font.png b/graphics/fonts/japanese_frlg_female.png similarity index 100% rename from graphics/fonts/japanese_frlg_female_font.png rename to graphics/fonts/japanese_frlg_female.png diff --git a/graphics/fonts/japanese_frlg_male_font.png b/graphics/fonts/japanese_frlg_male.png similarity index 100% rename from graphics/fonts/japanese_frlg_male_font.png rename to graphics/fonts/japanese_frlg_male.png diff --git a/graphics/spinda_spots/spot_0.png b/graphics/pokemon/spinda/spots/spot_0.png similarity index 100% rename from graphics/spinda_spots/spot_0.png rename to graphics/pokemon/spinda/spots/spot_0.png diff --git a/graphics/spinda_spots/spot_1.png b/graphics/pokemon/spinda/spots/spot_1.png similarity index 100% rename from graphics/spinda_spots/spot_1.png rename to graphics/pokemon/spinda/spots/spot_1.png diff --git a/graphics/spinda_spots/spot_2.png b/graphics/pokemon/spinda/spots/spot_2.png similarity index 100% rename from graphics/spinda_spots/spot_2.png rename to graphics/pokemon/spinda/spots/spot_2.png diff --git a/graphics/spinda_spots/spot_3.png b/graphics/pokemon/spinda/spots/spot_3.png similarity index 100% rename from graphics/spinda_spots/spot_3.png rename to graphics/pokemon/spinda/spots/spot_3.png diff --git a/graphics/unused/.gitignore b/graphics/unused/.gitignore new file mode 100644 index 0000000000..b929a6cae7 --- /dev/null +++ b/graphics/unused/.gitignore @@ -0,0 +1 @@ +redyellowgreen_frame.bin \ No newline at end of file diff --git a/graphics/unused/redyellowgreen_frame.bin b/graphics/unused/redyellowgreen_frame.bin deleted file mode 100644 index 6852998fb8..0000000000 Binary files a/graphics/unused/redyellowgreen_frame.bin and /dev/null differ diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index b565c0e914..6a2728aff4 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -20,7 +20,7 @@ JPCONTESTGFXDIR := graphics/contest/japanese POKEDEXGFXDIR := graphics/pokedex STARTERGFXDIR := graphics/starter_choose NAMINGGFXDIR := graphics/naming_screen -SPINDAGFXDIR := graphics/spinda_spots +SPINDAGFXDIR := graphics/pokemon/spinda/spots types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy contest_types := cool beauty cute smart tough @@ -253,10 +253,10 @@ $(FONTGFXDIR)/short.fwjpnfont: $(FONTGFXDIR)/japanese_short.png $(FONTGFXDIR)/braille.fwjpnfont: $(FONTGFXDIR)/braille.png $(GFX) $< $@ -$(FONTGFXDIR)/frlg_male.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_male_font.png +$(FONTGFXDIR)/frlg_male.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_male.png $(GFX) $< $@ -$(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female_font.png +$(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female.png $(GFX) $< $@ diff --git a/include/battle.h b/include/battle.h index 9d83e0d9f8..b276f5080c 100644 --- a/include/battle.h +++ b/include/battle.h @@ -44,6 +44,9 @@ #define BATTLE_BUFFER_LINK_SIZE 0x1000 +// Special indicator value for shellBellDmg in SpecialStatus +#define IGNORE_SHELL_BELL 0xFFFF + struct ResourceFlags { u32 flags[MAX_BATTLERS_COUNT]; @@ -166,7 +169,7 @@ struct ProtectStruct struct SpecialStatus { - s32 dmg; + s32 shellBellDmg; s32 physicalDmg; s32 specialDmg; u8 physicalBattlerId; @@ -739,9 +742,9 @@ struct BattleStruct // The assert below is to ensure palaceFlags is large enough to store these flags without overlap. STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLERS_COUNT + MAX_MON_MOVES, PalaceFlagsTooSmall) -#define F_DYNAMIC_TYPE_1 (1 << 6) -#define F_DYNAMIC_TYPE_2 (1 << 7) -#define DYNAMIC_TYPE_MASK (F_DYNAMIC_TYPE_1 - 1) +#define DYNAMIC_TYPE_MASK ((1 << 6) - 1) +#define F_DYNAMIC_TYPE_IGNORE_PHYSICALITY (1 << 6) // If set, the dynamic type's physicality won't be used for certain move effects. +#define F_DYNAMIC_TYPE_SET (1 << 7) // Set for all dynamic types to distinguish a dynamic type of Normal (0) from no dynamic type. #define GET_MOVE_TYPE(move, typeArg) \ { \ @@ -991,7 +994,7 @@ extern u16 gChosenMove; extern u16 gCalledMove; extern s32 gBattleMoveDamage; extern s32 gHpDealt; -extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; +extern s32 gBideDmg[MAX_BATTLERS_COUNT]; extern u16 gLastUsedItem; extern u16 gLastUsedAbility; extern u8 gBattlerAttacker; @@ -1017,7 +1020,7 @@ extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u16 gMoveResultFlags; extern u32 gHitMarker; -extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; +extern u8 gBideTarget[MAX_BATTLERS_COUNT]; extern u8 gUnusedFirstBattleVar2; extern u32 gSideStatuses[NUM_BATTLE_SIDES]; extern struct SideTimer gSideTimers[NUM_BATTLE_SIDES]; diff --git a/include/constants/battle.h b/include/constants/battle.h index ddbb8b2eea..35addb937b 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -191,7 +191,7 @@ #define STATUS4_GLAIVE_RUSH (1 << 6) #define HITMARKER_WAKE_UP_CLEAR (1 << 4) // Cleared when waking up. Never set or checked. -#define HITMARKER_SKIP_DMG_TRACK (1 << 5) +#define HITMARKER_IGNORE_BIDE (1 << 5) #define HITMARKER_DESTINYBOND (1 << 6) #define HITMARKER_NO_ANIMATIONS (1 << 7) // set from battleSceneOff. Never changed during battle #define HITMARKER_IGNORE_SUBSTITUTE (1 << 8) @@ -199,7 +199,7 @@ #define HITMARKER_ATTACKSTRING_PRINTED (1 << 10) #define HITMARKER_NO_PPDEDUCT (1 << 11) #define HITMARKER_SWAP_ATTACKER_TARGET (1 << 12) -#define HITMARKER_IGNORE_SAFEGUARD (1 << 13) +#define HITMARKER_STATUS_ABILITY_EFFECT (1 << 13) #define HITMARKER_SYNCHRONISE_EFFECT (1 << 14) #define HITMARKER_RUN (1 << 15) #define HITMARKER_IGNORE_DISGUISE (1 << 16) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index cb873bbce6..0a41ebb6b8 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -25,24 +25,24 @@ #define NUMBER_OF_MON_TYPES 19 // Pokemon egg groups -#define EGG_GROUP_NONE 0 -#define EGG_GROUP_MONSTER 1 -#define EGG_GROUP_WATER_1 2 -#define EGG_GROUP_BUG 3 -#define EGG_GROUP_FLYING 4 -#define EGG_GROUP_FIELD 5 -#define EGG_GROUP_FAIRY 6 -#define EGG_GROUP_GRASS 7 -#define EGG_GROUP_HUMAN_LIKE 8 -#define EGG_GROUP_WATER_3 9 -#define EGG_GROUP_MINERAL 10 -#define EGG_GROUP_AMORPHOUS 11 -#define EGG_GROUP_WATER_2 12 -#define EGG_GROUP_DITTO 13 -#define EGG_GROUP_DRAGON 14 -#define EGG_GROUP_UNDISCOVERED 15 +#define EGG_GROUP_NONE 0 +#define EGG_GROUP_MONSTER 1 +#define EGG_GROUP_WATER_1 2 +#define EGG_GROUP_BUG 3 +#define EGG_GROUP_FLYING 4 +#define EGG_GROUP_FIELD 5 +#define EGG_GROUP_FAIRY 6 +#define EGG_GROUP_GRASS 7 +#define EGG_GROUP_HUMAN_LIKE 8 +#define EGG_GROUP_WATER_3 9 +#define EGG_GROUP_MINERAL 10 +#define EGG_GROUP_AMORPHOUS 11 +#define EGG_GROUP_WATER_2 12 +#define EGG_GROUP_DITTO 13 +#define EGG_GROUP_DRAGON 14 +#define EGG_GROUP_NO_EGGS_DISCOVERED 15 -#define EGG_GROUPS_PER_MON 2 +#define EGG_GROUPS_PER_MON 2 // Pokemon natures #define NATURE_HARDY 0 diff --git a/include/pokemon.h b/include/pokemon.h index fc9772cc30..84a6025aa4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -596,7 +596,7 @@ void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg); void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg); void CopyMon(void *dest, void *src, size_t size); u8 GiveMonToPlayer(struct Pokemon *mon); -u8 SendMonToPC(struct Pokemon* mon); +u8 CopyMonToPC(struct Pokemon *mon); u8 CalculatePlayerPartyCount(void); u8 CalculateEnemyPartyCount(void); u8 GetMonsStateToDoubles(void); diff --git a/ld_script.txt b/ld_script.ld similarity index 99% rename from ld_script.txt rename to ld_script.ld index 6b7d115b22..fab98e5774 100644 --- a/ld_script.txt +++ b/ld_script.ld @@ -4,16 +4,18 @@ gNumMusicPlayers = 4; gMaxLines = 0; gInitialMainCB2 = CB2_InitCopyrightScreenAfterBootup; -SECTIONS { - . = 0x2000000; +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} - ewram (NOLOAD) : +SECTIONS { + + ewram 0x2000000 (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x1C000; - INCLUDE "sym_ewram.ld" src/*.o(ewram_data); gflib/*.o(ewram_data); @@ -21,12 +23,9 @@ SECTIONS { *libc.a:impure.o(.data); *libc.a:locale.o(.data); *libc.a:mallocr.o(.data); - . = 0x40000; - } + } > EWRAM - . = 0x3000000; - - iwram (NOLOAD) : + iwram 0x3000000 (NOLOAD) : ALIGN(4) { /* .bss starts at 0x3000000 */ @@ -43,8 +42,9 @@ SECTIONS { *libc.a:sbrkr.o(COMMON); end = .; . = 0x8000; - } + } > IWRAM + /* BEGIN ROM DATA */ . = 0x8000000; .text : @@ -345,7 +345,7 @@ SECTIONS { src/international_string_util.o(.text); src/pokemon_debug.o(.text); src/expansion_intro.o(.text); - } =0 + } > ROM =0 script_data : ALIGN(4) @@ -357,7 +357,7 @@ SECTIONS { data/battle_scripts_2.o(script_data); data/contest_ai_scripts.o(script_data); data/mystery_event_script_cmd_table.o(script_data); - } =0 + } > ROM =0 lib_text : ALIGN(4) @@ -441,7 +441,7 @@ SECTIONS { *libc.a:libcfunc.o(.text); *libc.a:lseekr.o(.text); *libc.a:readr.o(.text); - } =0 + } > ROM =0 .rodata : ALIGN(4) @@ -712,7 +712,7 @@ SECTIONS { data/sound_data.o(.rodata); src/pokemon_debug.o(.rodata); src/expansion_intro.o(.rodata); - } =0 + } > ROM =0 song_data : ALIGN(4) @@ -1247,7 +1247,7 @@ SECTIONS { sound/songs/midi/ph_nurse_blend.o(.rodata); sound/songs/midi/ph_nurse_held.o(.rodata); sound/songs/midi/ph_nurse_solo.o(.rodata); - } =0 + } > ROM =0 lib_rodata : SUBALIGN(4) @@ -1300,7 +1300,7 @@ SECTIONS { *libc.a:lseekr.o(.rodata); *libc.a:readr.o(.rodata); src/libisagbprn.o(.rodata); - } =0 + } > ROM =0 multiboot_data : ALIGN(4) @@ -1308,13 +1308,13 @@ SECTIONS { data/multiboot_ereader.o(.rodata); data/multiboot_berry_glitch_fix.o(.rodata); data/multiboot_pokemon_colosseum.o(.rodata); - } =0 + } > ROM =0 - gfx_data : + gfx_data : ALIGN(4) { src/graphics.o(.rodata); - } =0 + } > ROM =0 extra : ALIGN(4) @@ -1324,7 +1324,7 @@ SECTIONS { src/*.o(.rodata); gflib/*.o(.rodata); data/*.o(.rodata); - } = 0 + } > ROM = 0 __rom_end = .; diff --git a/ld_script_modern.txt b/ld_script_modern.ld similarity index 89% rename from ld_script_modern.txt rename to ld_script_modern.ld index 7a14cfa52c..f3bf7b6798 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.ld @@ -4,46 +4,40 @@ gNumMusicPlayers = 4; gMaxLines = 0; gInitialMainCB2 = CB2_InitCopyrightScreenAfterBootup; -SECTIONS { - . = 0x2000000; +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} - ewram (NOLOAD) : +SECTIONS { + ewram 0x2000000 (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x1C000; - src/*.o(ewram_data); gflib/*.o(ewram_data); - . = 0x40000; - } + } > EWRAM - . = 0x3000000; - - iwram (NOLOAD) : + iwram 0x3000000 (NOLOAD) : ALIGN(4) { - /* .bss starts at 0x3000000 */ src/*.o(.bss); gflib/*.o(.bss); data/*.o(.bss); *libc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); - /* .bss.code starts at 0x3001AA8 */ src/m4a.o(.bss.code); - /* COMMON starts at 0x30022A8 */ src/*.o(COMMON); gflib/*.o(COMMON); *libc.a:*.o(COMMON); *libnosys.a:*.o(COMMON); - end = .; - . = 0x8000; - } + } > IWRAM + /* BEGIN ROM DATA */ . = 0x8000000; .text : @@ -57,13 +51,13 @@ SECTIONS { gflib/*.o(.text*); src/*.o(.text*); asm/*.o(.text*); - } =0 + } > ROM =0 script_data : ALIGN(4) { data/*.o(script_data); - } =0 + } > ROM =0 lib_text : ALIGN(4) @@ -84,7 +78,7 @@ SECTIONS { *libc.a:*.o(.text*); *libnosys.a:*.o(.text*); src/libisagbprn.o(.text); - } =0 + } > ROM =0 .rodata : ALIGN(4) @@ -92,13 +86,13 @@ SECTIONS { src/*.o(.rodata*); gflib/*.o(.rodata*); data/*.o(.rodata*); - } =0 + } > ROM =0 song_data : ALIGN(4) { sound/songs/*.o(.rodata); - } =0 + } > ROM =0 lib_rodata : SUBALIGN(4) @@ -115,7 +109,7 @@ SECTIONS { *libc.a:*.o(.rodata*); *libc.a:*.o(.data*); src/libisagbprn.o(.rodata); - } =0 + } > ROM =0 multiboot_data : ALIGN(4) @@ -123,13 +117,13 @@ SECTIONS { data/multiboot_ereader.o(.rodata); data/multiboot_berry_glitch_fix.o(.rodata); data/multiboot_pokemon_colosseum.o(.rodata); - } =0 + } > ROM =0 gfx_data : ALIGN(4) { src/graphics.o(.rodata); - } =0 + } > ROM =0 __rom_end = .; diff --git a/ld_script_test.txt b/ld_script_test.ld similarity index 87% rename from ld_script_test.txt rename to ld_script_test.ld index 447d7a2b87..b86302f8cb 100644 --- a/ld_script_test.txt +++ b/ld_script_test.ld @@ -4,29 +4,25 @@ gNumMusicPlayers = 4; gMaxLines = 0; gInitialMainCB2 = CB2_TestRunner; -SECTIONS { - . = 0x2000000; +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} - ewram (NOLOAD) : +SECTIONS { + ewram 0x2000000 (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x1C000; - src/*.o(ewram_data); gflib/*.o(ewram_data); test/*.o(ewram_data); + } > EWRAM - . = 0x40000; - } - - . = 0x3000000; - - iwram (NOLOAD) : + iwram 0x3000000 (NOLOAD) : ALIGN(4) { - /* .bss starts at 0x3000000 */ src/*.o(.bss); gflib/*.o(.bss); data/*.o(.bss); @@ -35,26 +31,22 @@ SECTIONS { *libgcc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); - /* .bss.code starts at 0x3001AA8 */ src/m4a.o(.bss.code); - /* COMMON starts at 0x30022A8 */ src/*.o(COMMON); gflib/*.o(COMMON); data/*.o(COMMON); test/*.o(COMMON); *libc.a:sbrkr.o(COMMON); - end = .; /* .persistent starts at 0x3007F00 */ /* WARNING: This is the end of the IRQ stack, if there's too * much data it WILL be overwritten. */ . = 0x7F00; test/*.o(.persistent); + } > IWRAM - . = 0x8000; - } - + /* BEGIN ROM DATA */ . = 0x8000000; .text : @@ -65,13 +57,13 @@ SECTIONS { src/rom_header_rhh.o(.text.*); src/*.o(.text); gflib/*.o(.text); - } =0 + } > ROM =0 script_data : ALIGN(4) { data/*.o(script_data); - } =0 + } > ROM =0 lib_text : ALIGN(4) @@ -80,7 +72,7 @@ SECTIONS { *libgcc.a:*.o(.text*); *libc.a:*.o(.text*); *libnosys.a:*.o(.text*); - } =0 + } > ROM =0 .rodata : ALIGN(4) @@ -88,13 +80,13 @@ SECTIONS { src/*.o(.rodata*); gflib/*.o(.rodata*); data/*.o(.rodata*); - } =0 + } > ROM =0 song_data : ALIGN(4) { sound/songs/*.o(.rodata); - } =0 + } > ROM =0 lib_rodata : SUBALIGN(4) @@ -103,7 +95,7 @@ SECTIONS { *libc.a:*.o(.rodata*); *libc.a:*.o(.data*); src/libisagbprn.o(.rodata); - } =0 + } > ROM =0 tests : ALIGN(4) @@ -113,7 +105,7 @@ SECTIONS { __stop_tests = .; test/*.o(.text); test/*.o(.rodata*); - } =0 + } > ROM =0 __rom_end = .; diff --git a/src/battle_main.c b/src/battle_main.c index 5e6221456d..2e18f7be16 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -157,7 +157,7 @@ EWRAM_DATA u16 gChosenMove = 0; EWRAM_DATA u16 gCalledMove = 0; EWRAM_DATA s32 gBattleMoveDamage = 0; EWRAM_DATA s32 gHpDealt = 0; -EWRAM_DATA s32 gTakenDmg[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA s32 gBideDmg[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gLastUsedItem = 0; EWRAM_DATA u16 gLastUsedAbility = 0; EWRAM_DATA u8 gBattlerAttacker = 0; @@ -183,7 +183,7 @@ EWRAM_DATA u8 gLastHitBy[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; -EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA u8 gBideTarget[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; // Never read EWRAM_DATA u32 gSideStatuses[NUM_BATTLE_SIDES] = {0}; EWRAM_DATA struct SideTimer gSideTimers[NUM_BATTLE_SIDES] = {0}; @@ -5574,15 +5574,15 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) if (WEATHER_HAS_EFFECT) { if (gBattleWeather & B_WEATHER_RAIN && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA) - gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_SET; else if (gBattleWeather & B_WEATHER_SANDSTORM) - gBattleStruct->dynamicMoveType = TYPE_ROCK | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ROCK | F_DYNAMIC_TYPE_SET; else if (gBattleWeather & B_WEATHER_SUN && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA) - gBattleStruct->dynamicMoveType = TYPE_FIRE | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_FIRE | F_DYNAMIC_TYPE_SET; else if (gBattleWeather & (B_WEATHER_HAIL |B_WEATHER_SNOW)) - gBattleStruct->dynamicMoveType = TYPE_ICE | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ICE | F_DYNAMIC_TYPE_SET; else - gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_SET; } } else if (gBattleMoves[move].effect == EFFECT_HIDDEN_POWER) @@ -5599,32 +5599,32 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) gBattleStruct->dynamicMoveType = ((NUMBER_OF_MON_TYPES - 4) * typeBits) / 63 + 1; if (gBattleStruct->dynamicMoveType >= TYPE_MYSTERY) gBattleStruct->dynamicMoveType++; - gBattleStruct->dynamicMoveType |= F_DYNAMIC_TYPE_1 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType |= F_DYNAMIC_TYPE_IGNORE_PHYSICALITY | F_DYNAMIC_TYPE_SET; } else if (gBattleMoves[move].effect == EFFECT_CHANGE_TYPE_ON_ITEM) { if (holdEffect == gBattleMoves[move].argument) - gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_SET; } else if (gBattleMoves[move].effect == EFFECT_IVY_CUDGEL && holdEffect == HOLD_EFFECT_MASK) { - gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_SET; } else if (gBattleMoves[move].effect == EFFECT_REVELATION_DANCE) { if (gBattleMons[battlerAtk].type1 != TYPE_MYSTERY) - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type1 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type1 | F_DYNAMIC_TYPE_SET; else if (gBattleMons[battlerAtk].type2 != TYPE_MYSTERY) - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_SET; else if (gBattleMons[battlerAtk].type3 != TYPE_MYSTERY) - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type3 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type3 | F_DYNAMIC_TYPE_SET; } else if (gBattleMoves[move].effect == EFFECT_RAGING_BULL && (gBattleMons[battlerAtk].species == SPECIES_TAUROS_PALDEAN_COMBAT_BREED || gBattleMons[battlerAtk].species == SPECIES_TAUROS_PALDEAN_BLAZE_BREED || gBattleMons[battlerAtk].species == SPECIES_TAUROS_PALDEAN_AQUA_BREED)) { - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_SET; } else if (gBattleMoves[move].effect == EFFECT_NATURAL_GIFT) { @@ -5636,15 +5636,15 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_TERRAIN_ANY)) { if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_SET; else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_GRASS | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_GRASS | F_DYNAMIC_TYPE_SET; else if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_FAIRY | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_FAIRY | F_DYNAMIC_TYPE_SET; else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_PSYCHIC | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_PSYCHIC | F_DYNAMIC_TYPE_SET; else //failsafe - gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_SET; } } @@ -5662,7 +5662,7 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) ) ) { - gBattleStruct->dynamicMoveType = ateType | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = ateType | F_DYNAMIC_TYPE_SET; if (!IsDynamaxed(battlerAtk)) gBattleStruct->ateBoost[battlerAtk] = 1; } @@ -5671,23 +5671,23 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) && gBattleMoves[move].effect != EFFECT_WEATHER_BALL && attackerAbility == ABILITY_NORMALIZE) { - gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_SET; if (!IsDynamaxed(battlerAtk)) gBattleStruct->ateBoost[battlerAtk] = 1; } else if (gBattleMoves[move].soundMove && attackerAbility == ABILITY_LIQUID_VOICE) { - gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_SET; } else if (move == MOVE_AURA_WHEEL && gBattleMons[battlerAtk].species == SPECIES_MORPEKO_HANGRY) { - gBattleStruct->dynamicMoveType = TYPE_DARK | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_DARK | F_DYNAMIC_TYPE_SET; } GET_MOVE_TYPE(move, moveType); if ((gFieldStatuses & STATUS_FIELD_ION_DELUGE && moveType == TYPE_NORMAL) || gStatuses4[battlerAtk] & STATUS4_ELECTRIFIED) - gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_SET; // Check if a gem should activate. GET_MOVE_TYPE(move, moveType); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7fe2dba4b5..2254c9f7de 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2252,6 +2252,7 @@ static void Cmd_healthbarupdate(void) gBattlescriptCurrInstr = cmd->nextInstr; } +// Update the active battler's HP and various HP trackers (Substitute, Bide, etc.) static void Cmd_datahpupdate(void) { CMD_ARGS(u8 battler); @@ -2268,15 +2269,15 @@ static void Cmd_datahpupdate(void) { if (gDisableStructs[battler].substituteHP >= gBattleMoveDamage) { - if (gSpecialStatuses[battler].dmg == 0) - gSpecialStatuses[battler].dmg = gBattleMoveDamage; + if (gSpecialStatuses[battler].shellBellDmg == 0) + gSpecialStatuses[battler].shellBellDmg = gBattleMoveDamage; gDisableStructs[battler].substituteHP -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - if (gSpecialStatuses[battler].dmg == 0) - gSpecialStatuses[battler].dmg = gDisableStructs[battler].substituteHP; + if (gSpecialStatuses[battler].shellBellDmg == 0) + gSpecialStatuses[battler].shellBellDmg = gDisableStructs[battler].substituteHP; gHpDealt = gDisableStructs[battler].substituteHP; gDisableStructs[battler].substituteHP = 0; } @@ -2299,28 +2300,29 @@ static void Cmd_datahpupdate(void) else { gHitMarker &= ~HITMARKER_IGNORE_SUBSTITUTE; - if (gBattleMoveDamage < 0) // hp goes up + if (gBattleMoveDamage < 0) { - gBattleMons[battler].hp -= gBattleMoveDamage; + // Negative damage is HP gain + gBattleMons[battler].hp += -gBattleMoveDamage; if (gBattleMons[battler].hp > gBattleMons[battler].maxHP) gBattleMons[battler].hp = gBattleMons[battler].maxHP; - } - else // hp goes down + else { - if (gHitMarker & HITMARKER_SKIP_DMG_TRACK) + if (gHitMarker & HITMARKER_IGNORE_BIDE) { - gHitMarker &= ~HITMARKER_SKIP_DMG_TRACK; + gHitMarker &= ~HITMARKER_IGNORE_BIDE; } else { - gTakenDmg[battler] += gBattleMoveDamage; + gBideDmg[battler] += gBattleMoveDamage; if (cmd->battler == BS_TARGET) - gTakenDmgByBattler[battler] = gBattlerAttacker; + gBideTarget[battler] = gBattlerAttacker; else - gTakenDmgByBattler[battler] = gBattlerTarget; + gBideTarget[battler] = gBattlerTarget; } + // Deal damage to the battler if (gBattleMons[battler].hp > gBattleMoveDamage) { gBattleMons[battler].hp -= gBattleMoveDamage; @@ -2332,9 +2334,13 @@ static void Cmd_datahpupdate(void) gBattleMons[battler].hp = 0; } - if (!gSpecialStatuses[battler].dmg && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE)) - gSpecialStatuses[battler].dmg = gHpDealt; + // Record damage for Shell Bell + if (gSpecialStatuses[battler].shellBellDmg == 0 && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE)) + gSpecialStatuses[battler].shellBellDmg = gHpDealt; + // Note: While physicalDmg/specialDmg below are only distinguished between for Counter/Mirror Coat, they are + // used in combination as general damage trackers for other purposes. specialDmg is additionally used + // to help determine if a fire move should defrost the target. if (IS_MOVE_PHYSICAL(gCurrentMove) && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE) && gCurrentMove != MOVE_PAIN_SPLIT) { gProtectStructs[battler].physicalDmg = gHpDealt; @@ -2352,6 +2358,7 @@ static void Cmd_datahpupdate(void) } else if (!IS_MOVE_PHYSICAL(gCurrentMove) && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE)) { + // Record special damage/attacker for Mirror Coat gProtectStructs[battler].specialDmg = gHpDealt; gSpecialStatuses[battler].specialDmg = gHpDealt; if (cmd->battler == BS_TARGET) @@ -2367,15 +2374,18 @@ static void Cmd_datahpupdate(void) } } gHitMarker &= ~HITMARKER_PASSIVE_DAMAGE; + + // Send updated HP BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_HP_BATTLE, 0, sizeof(gBattleMons[battler].hp), &gBattleMons[battler].hp); MarkBattlerForControllerExec(battler); } } else { + // MOVE_RESULT_NO_EFFECT was set battler = GetBattlerForBattleScript(cmd->battler); - if (gSpecialStatuses[battler].dmg == 0) - gSpecialStatuses[battler].dmg = 0xFFFF; + if (gSpecialStatuses[battler].shellBellDmg == 0) + gSpecialStatuses[battler].shellBellDmg = IGNORE_SHELL_BELL; } gBattlescriptCurrInstr = cmd->nextInstr; } @@ -2767,7 +2777,7 @@ void SetMoveEffect(bool32 primary, u32 certain) if ((battlerAbility == ABILITY_SHIELD_DUST || GetBattlerHoldEffect(gEffectBattler, TRUE) == HOLD_EFFECT_COVERT_CLOAK) - && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && !primary && (gBattleScripting.moveEffect <= MOVE_EFFECT_TRI_ATTACK || gBattleScripting.moveEffect >= MOVE_EFFECT_SMACK_DOWN)) // Exclude stat lowering effects { @@ -2778,7 +2788,7 @@ void SetMoveEffect(bool32 primary, u32 certain) INCREMENT_RESET_RETURN } - if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && !primary && gBattleScripting.moveEffect <= MOVE_EFFECT_CONFUSION) INCREMENT_RESET_RETURN @@ -2828,10 +2838,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2840,7 +2850,7 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } if (!CanPoisonType(gBattleScripting.battler, gEffectBattler) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2866,10 +2876,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_BRNPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2878,7 +2888,7 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_FIRE) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2913,10 +2923,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PRLZPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2928,7 +2938,7 @@ void SetMoveEffect(bool32 primary, u32 certain) break; } if (!CanParalyzeType(gBattleScripting.battler, gEffectBattler) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2954,10 +2964,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2966,7 +2976,7 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } if (!CanPoisonType(gBattleScripting.battler, gEffectBattler) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -3018,10 +3028,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BtlController_EmitSetMonData(gEffectBattler, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gEffectBattler].status1), &gBattleMons[gEffectBattler].status1); MarkBattlerForControllerExec(gEffectBattler); - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUSED_BY_ABILITY; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -8251,7 +8261,7 @@ static bool32 IsAbilityRodAffected(void) if (gBattleStruct->dynamicMoveType == 0) moveType = gBattleMoves[gCurrentMove].type; - else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_1)) + else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_IGNORE_PHYSICALITY)) moveType = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; else moveType = gBattleMoves[gCurrentMove].type; @@ -8268,7 +8278,7 @@ static bool32 IsAbilityMotorAffected(void) if (gBattleStruct->dynamicMoveType == 0) moveType = gBattleMoves[gCurrentMove].type; - else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_1)) + else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_IGNORE_PHYSICALITY)) moveType = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; else moveType = gBattleMoves[gCurrentMove].type; @@ -8285,7 +8295,7 @@ static bool32 IsAbilityAbsorbAffected(void) if (gBattleStruct->dynamicMoveType == 0) moveType = gBattleMoves[gCurrentMove].type; - else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_1)) + else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_IGNORE_PHYSICALITY)) moveType = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; else moveType = gBattleMoves[gCurrentMove].type; @@ -11585,7 +11595,7 @@ static void Cmd_setbide(void) gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; gLockedMoves[gBattlerAttacker] = gCurrentMove; - gTakenDmg[gBattlerAttacker] = 0; + gBideDmg[gBattlerAttacker] = 0; gBattleMons[gBattlerAttacker].status2 |= STATUS2_BIDE_TURN(2); gBattlescriptCurrInstr = cmd->nextInstr; @@ -12570,7 +12580,7 @@ static void Cmd_painsplitdmgcalc(void) storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hpDiff; - gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; + gSpecialStatuses[gBattlerTarget].shellBellDmg = IGNORE_SHELL_BELL; gBattlescriptCurrInstr = cmd->nextInstr; } diff --git a/src/battle_util.c b/src/battle_util.c index 3b413cde58..9f15e3819e 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -831,7 +831,7 @@ void HandleAction_NothingIsFainted(void) gCurrentTurnActionNumber++; gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED - | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE + | HITMARKER_NO_PPDEDUCT | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE | HITMARKER_OBEYS | HITMARKER_WAKE_UP_CLEAR | HITMARKER_SYNCHRONISE_EFFECT | HITMARKER_CHARGING | HITMARKER_NEVER_SET); } @@ -845,7 +845,7 @@ void HandleAction_ActionFinished(void) gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; SpecialStatusesClear(); gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED - | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE + | HITMARKER_NO_PPDEDUCT | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE | HITMARKER_OBEYS | HITMARKER_WAKE_UP_CLEAR | HITMARKER_SYNCHRONISE_EFFECT | HITMARKER_CHARGING | HITMARKER_NEVER_SET | HITMARKER_IGNORE_DISGUISE); @@ -2605,7 +2605,7 @@ u8 DoBattlerEndTurnEffects(void) { u32 battler, ability, i, effect = 0; - gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= ENDTURN_BATTLER_COUNT) { battler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId]; @@ -3185,7 +3185,7 @@ u8 DoBattlerEndTurnEffects(void) return effect; } - gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); return 0; } @@ -3193,7 +3193,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) { u32 battler; - gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); switch (gBattleStruct->wishPerishSongState) { case 0: @@ -3220,7 +3220,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) gBattlerTarget = battler; gBattlerAttacker = gWishFutureKnock.futureSightAttacker[battler]; - gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; + gSpecialStatuses[gBattlerTarget].shellBellDmg = IGNORE_SHELL_BELL; gCurrentMove = gWishFutureKnock.futureSightMove[battler]; SetTypeBeforeUsingMove(gCurrentMove, battler); BattleScriptExecute(BattleScript_MonTookFutureAttack); @@ -3285,7 +3285,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) break; } - gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); return FALSE; } @@ -3672,11 +3672,11 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) { // This is removed in FRLG and Emerald for some reason //gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_MULTIPLETURNS; - if (gTakenDmg[gBattlerAttacker]) + if (gBideDmg[gBattlerAttacker]) { gCurrentMove = MOVE_BIDE; - gBattleScripting.bideDmg = gTakenDmg[gBattlerAttacker] * 2; - gBattlerTarget = gTakenDmgByBattler[gBattlerAttacker]; + gBattleScripting.bideDmg = gBideDmg[gBattlerAttacker] * 2; + gBattlerTarget = gBideTarget[gBattlerAttacker]; if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) gBattlerTarget = GetMoveTarget(MOVE_BIDE, MOVE_TARGET_SELECTED + 1); gBattlescriptCurrInstr = BattleScript_BideAttack; @@ -5433,7 +5433,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_GooeyActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5483,7 +5483,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && gBattleMons[gBattlerTarget].hp == 0 && IsBattlerAlive(gBattlerAttacker)) { - gBattleMoveDamage = gSpecialStatuses[gBattlerTarget].dmg; + gBattleMoveDamage = gSpecialStatuses[gBattlerTarget].shellBellDmg; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AftermathDmg; effect++; @@ -5512,7 +5512,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } } @@ -5531,7 +5531,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5548,7 +5548,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_PARALYSIS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5564,7 +5564,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5784,7 +5784,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5974,7 +5974,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, ABILITY_SYNCHRONIZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } } @@ -5995,7 +5995,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, ABILITY_SYNCHRONIZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } } @@ -7757,10 +7757,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) gLastUsedItem = atkItem; gPotentialItemEffectBattler = gBattlerAttacker; gBattleScripting.battler = gBattlerAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].dmg / atkHoldEffectParam) * -1; + gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].shellBellDmg / atkHoldEffectParam) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBattlerTarget].dmg = 0; + gSpecialStatuses[gBattlerTarget].shellBellDmg = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect = ITEM_HP_CHANGE; diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index 7d5534f634..8c08f50885 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -1857,37 +1857,37 @@ const struct SpeciesInfo gSpeciesInfo[] = #if P_FAMILY_PIKACHU #if P_GEN_2_CROSS_EVOS -#define PICHU_MISC_INFO \ - .baseHP = 20, \ - .baseAttack = 40, \ - .baseDefense = 15, \ - .baseSpeed = 60, \ - .baseSpAttack = 35, \ - .baseSpDefense = 35, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 190, \ - .expYield = 41, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Pichu"), \ - .cryId = CRY_PICHU, \ - .natDexNum = NATIONAL_DEX_PICHU, \ - .categoryName = _("Tiny Mouse"), \ - .height = 3, \ - .weight = 20, \ - .description = gPichuPokedexText, \ - .pokemonScale = 508, \ - .pokemonOffset = 20, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Pichu, \ - LEARNSETS(Pichu), \ +#define PICHU_MISC_INFO \ + .baseHP = 20, \ + .baseAttack = 40, \ + .baseDefense = 15, \ + .baseSpeed = 60, \ + .baseSpAttack = 35, \ + .baseSpDefense = 35, \ + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ + .catchRate = 190, \ + .expYield = 41, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .speciesName = _("Pichu"), \ + .cryId = CRY_PICHU, \ + .natDexNum = NATIONAL_DEX_PICHU, \ + .categoryName = _("Tiny Mouse"), \ + .height = 3, \ + .weight = 20, \ + .description = gPichuPokedexText, \ + .pokemonScale = 508, \ + .pokemonOffset = 20, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Pichu, \ + LEARNSETS(Pichu), \ .formSpeciesIdTable = sPichuFormSpeciesIdTable [SPECIES_PICHU] = @@ -1986,7 +1986,7 @@ const struct SpeciesInfo gSpeciesInfo[] = PIKACHU_MISC_INFO, \ PIKACHU_REGULAR_SIZE_INFO, \ .genderRatio = MON_FEMALE, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .description = gPikachuPokedexText [SPECIES_PIKACHU_COSPLAY] = @@ -2083,7 +2083,7 @@ const struct SpeciesInfo gSpeciesInfo[] = PIKACHU_MISC_INFO, \ PIKACHU_REGULAR_SIZE_INFO, \ .genderRatio = MON_MALE, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED } + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED } [SPECIES_PIKACHU_ORIGINAL_CAP] = { @@ -2609,7 +2609,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidorina"), @@ -2657,7 +2657,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidoqueen"), @@ -2858,7 +2858,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3182,7 +3182,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -8148,7 +8148,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Tyrogue"), @@ -8750,7 +8750,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Happiny"), @@ -9451,7 +9451,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Mime Jr."), @@ -9842,7 +9842,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Smoochum"), @@ -9943,7 +9943,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, @@ -10098,7 +10098,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -11667,7 +11667,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PICKUP, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Munchlax"), @@ -11786,7 +11786,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .genderRatio = MON_GENDERLESS, \ .friendship = 35, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .speciesName = _("Articuno"), \ .cryId = CRY_ARTICUNO, \ .natDexNum = NATIONAL_DEX_ARTICUNO, \ @@ -11877,7 +11877,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .genderRatio = MON_GENDERLESS, \ .friendship = 35, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .bodyColor = BODY_COLOR_YELLOW, \ .speciesName = _("Zapdos"), \ .cryId = CRY_ZAPDOS, \ @@ -11972,7 +11972,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .genderRatio = MON_GENDERLESS, \ .friendship = 35, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .speciesName = _("Moltres"), \ .cryId = CRY_MOLTRES, \ .natDexNum = NATIONAL_DEX_MOLTRES, \ @@ -12213,7 +12213,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 0, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .bodyColor = BODY_COLOR_PURPLE, \ .speciesName = _("Mewtwo"), \ .natDexNum = NATIONAL_DEX_MEWTWO, \ @@ -12354,7 +12354,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, .isMythical = TRUE, @@ -13387,7 +13387,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Togepi"), @@ -13832,7 +13832,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Azurill"), @@ -13987,7 +13987,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bonsly"), @@ -14923,7 +14923,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, \ .bodyColor = BODY_COLOR_BLACK, \ .speciesName = _("Unown"), \ @@ -15209,7 +15209,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wynaut"), @@ -17025,7 +17025,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mantyke"), @@ -17615,7 +17615,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, #if P_UPDATED_ABILITIES >= GEN_7 .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, #else @@ -17670,7 +17670,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, #if P_UPDATED_ABILITIES >= GEN_7 .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, #else @@ -17725,7 +17725,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, #if P_UPDATED_ABILITIES >= GEN_7 .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, #else @@ -17967,7 +17967,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_MULTISCALE }, .bodyColor = BODY_COLOR_WHITE, .isLegendary = TRUE, @@ -18021,7 +18021,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_RED, .isLegendary = TRUE, @@ -18074,7 +18074,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isMythical = TRUE, @@ -21836,7 +21836,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -24406,7 +24406,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Chingling"), @@ -25577,7 +25577,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -25628,7 +25628,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .isLegendary = TRUE, @@ -25679,7 +25679,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_GRAY, .isLegendary = TRUE, @@ -25721,7 +25721,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 90, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .speciesName = _("Latias"), \ .natDexNum = NATIONAL_DEX_LATIAS, \ .categoryName = _("Eon"), \ @@ -25816,7 +25816,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 90, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .isLegendary = TRUE, \ .speciesName = _("Latios"), \ .natDexNum = NATIONAL_DEX_LATIOS, \ @@ -25912,7 +25912,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 0, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .bodyColor = BODY_COLOR_BLUE, \ .isLegendary = TRUE, \ .speciesName = _("Kyogre"), \ @@ -26002,7 +26002,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 0, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .bodyColor = BODY_COLOR_RED, \ .isLegendary = TRUE, \ .speciesName = _("Groudon"), \ @@ -26096,7 +26096,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 0, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .bodyColor = BODY_COLOR_GREEN, \ .speciesName = _("Rayquaza"), \ .cryId = CRY_RAYQUAZA, \ @@ -26198,7 +26198,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .isMythical = TRUE, @@ -26241,7 +26241,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, \ .friendship = 0, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ .bodyColor = BODY_COLOR_RED, \ .isMythical = TRUE, \ @@ -29104,7 +29104,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Riolu"), @@ -30025,7 +30025,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .isLegendary = TRUE, @@ -30078,7 +30078,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, .isLegendary = TRUE, @@ -30130,7 +30130,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isLegendary = TRUE, @@ -30165,26 +30165,26 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_AZELF #if P_FAMILY_DIALGA -#define DIALGA_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Dialga"), \ - .cryId = CRY_DIALGA, \ - .natDexNum = NATIONAL_DEX_DIALGA, \ - .categoryName = _("Temporal"), \ - .footprint = gMonFootprint_Dialga, \ - LEARNSETS(Dialga), \ - .formSpeciesIdTable = sDialgaFormSpeciesIdTable, \ - .formChangeTable = sDialgaFormChangeTable, \ +#define DIALGA_MISC_INFO \ + .types = { TYPE_STEEL, TYPE_DRAGON }, \ + .catchRate = 3, \ + .expYield = 306, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .speciesName = _("Dialga"), \ + .cryId = CRY_DIALGA, \ + .natDexNum = NATIONAL_DEX_DIALGA, \ + .categoryName = _("Temporal"), \ + .footprint = gMonFootprint_Dialga, \ + LEARNSETS(Dialga), \ + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, \ + .formChangeTable = sDialgaFormChangeTable, \ .isLegendary = TRUE [SPECIES_DIALGA] = @@ -30251,26 +30251,26 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_DIALGA #if P_FAMILY_PALKIA -#define PALKIA_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Palkia"), \ - .cryId = CRY_PALKIA, \ - .natDexNum = NATIONAL_DEX_PALKIA, \ - .categoryName = _("Spatial"), \ - .footprint = gMonFootprint_Palkia, \ - LEARNSETS(Palkia), \ - .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, \ - .formChangeTable = sPalkiaFormChangeTable, \ +#define PALKIA_MISC_INFO \ + .types = { TYPE_WATER, TYPE_DRAGON }, \ + .catchRate = 3, \ + .expYield = 306, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Palkia"), \ + .cryId = CRY_PALKIA, \ + .natDexNum = NATIONAL_DEX_PALKIA, \ + .categoryName = _("Spatial"), \ + .footprint = gMonFootprint_Palkia, \ + LEARNSETS(Palkia), \ + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, \ + .formChangeTable = sPalkiaFormChangeTable, \ .isLegendary = TRUE [SPECIES_PALKIA] = @@ -30353,7 +30353,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_BROWN, .isLegendary = TRUE, @@ -30403,7 +30403,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SLOW_START, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isLegendary = TRUE, @@ -30437,25 +30437,25 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_REGIGIGAS #if P_FAMILY_GIRATINA -#define GIRATINA_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Giratina"), \ - .cryId = CRY_GIRATINA, \ - .natDexNum = NATIONAL_DEX_GIRATINA, \ - .categoryName = _("Renegade"), \ - .footprint = gMonFootprint_Giratina, \ - LEARNSETS(Giratina), \ - .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, \ - .formChangeTable = sGiratinaFormChangeTable, \ +#define GIRATINA_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_DRAGON }, \ + .catchRate = 3, \ + .expYield = 306, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .speciesName = _("Giratina"), \ + .cryId = CRY_GIRATINA, \ + .natDexNum = NATIONAL_DEX_GIRATINA, \ + .categoryName = _("Renegade"), \ + .footprint = gMonFootprint_Giratina, \ + LEARNSETS(Giratina), \ + .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, \ + .formChangeTable = sGiratinaFormChangeTable, \ .isLegendary = TRUE [SPECIES_GIRATINA_ALTERED] = @@ -30541,7 +30541,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .isLegendary = TRUE, @@ -30693,7 +30693,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BAD_DREAMS, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .isMythical = TRUE, @@ -30728,24 +30728,24 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_DARKRAI #if P_FAMILY_SHAYMIN -#define SHAYMIN_MISC_INFO \ - .catchRate = 45, \ - .expYield = 270, \ - .evYield_HP = 3, \ - .itemCommon = ITEM_LUM_BERRY, \ - .itemRare = ITEM_LUM_BERRY, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 100, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Shaymin"), \ - .natDexNum = NATIONAL_DEX_SHAYMIN, \ - .categoryName = _("Gratitude"), \ - .footprint = gMonFootprint_Shaymin, \ - .formSpeciesIdTable = sShayminFormSpeciesIdTable, \ - .formChangeTable = sShayminFormChangeTable, \ +#define SHAYMIN_MISC_INFO \ + .catchRate = 45, \ + .expYield = 270, \ + .evYield_HP = 3, \ + .itemCommon = ITEM_LUM_BERRY, \ + .itemRare = ITEM_LUM_BERRY, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 100, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .speciesName = _("Shaymin"), \ + .natDexNum = NATIONAL_DEX_SHAYMIN, \ + .categoryName = _("Gratitude"), \ + .footprint = gMonFootprint_Shaymin, \ + .formSpeciesIdTable = sShayminFormSpeciesIdTable, \ + .formChangeTable = sShayminFormChangeTable, \ .isMythical = TRUE [SPECIES_SHAYMIN_LAND] = @@ -30821,50 +30821,50 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_SHAYMIN #if P_FAMILY_ARCEUS -#define ARCEUS_SPECIES_INFO(type, typeName) \ - { \ - .baseHP = 120, \ - .baseAttack = 120, \ - .baseDefense = 120, \ - .baseSpeed = 120, \ - .baseSpAttack = 120, \ - .baseSpDefense = 120, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 324, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_MULTITYPE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Arceus"), \ - .cryId = CRY_ARCEUS, \ - .natDexNum = NATIONAL_DEX_ARCEUS, \ - .categoryName = _("Alpha"), \ - .height = 32, \ - .weight = 3200, \ - .description = gArceusPokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 495, \ - .trainerOffset = 10, \ - FRONT_PIC(Arceus, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Arceus, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - BACK_PIC(Arceus, 64, 64), \ - .backPicYOffset = 3, \ - .backAnimId = BACK_ANIM_GROW_STUTTER, \ - PALETTES(Arceus ##typeName), \ - ICON(Arceus, 1), \ - .footprint = gMonFootprint_Arceus, \ - LEARNSETS(Arceus), \ - .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ - .formChangeTable = sArceusFormChangeTable, \ - .isMythical = TRUE, \ +#define ARCEUS_SPECIES_INFO(type, typeName) \ + { \ + .baseHP = 120, \ + .baseAttack = 120, \ + .baseDefense = 120, \ + .baseSpeed = 120, \ + .baseSpAttack = 120, \ + .baseSpDefense = 120, \ + .types = { type, type }, \ + .catchRate = 3, \ + .expYield = 324, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_MULTITYPE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .speciesName = _("Arceus"), \ + .cryId = CRY_ARCEUS, \ + .natDexNum = NATIONAL_DEX_ARCEUS, \ + .categoryName = _("Alpha"), \ + .height = 32, \ + .weight = 3200, \ + .description = gArceusPokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 495, \ + .trainerOffset = 10, \ + FRONT_PIC(Arceus, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Arceus, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + BACK_PIC(Arceus, 64, 64), \ + .backPicYOffset = 3, \ + .backAnimId = BACK_ANIM_GROW_STUTTER, \ + PALETTES(Arceus ##typeName), \ + ICON(Arceus, 1), \ + .footprint = gMonFootprint_Arceus, \ + LEARNSETS(Arceus), \ + .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ + .formChangeTable = sArceusFormChangeTable, \ + .isMythical = TRUE, \ } [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal), @@ -30904,7 +30904,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_VICTORY_STAR, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .isMythical = TRUE, @@ -38785,7 +38785,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isLegendary = TRUE, @@ -38835,7 +38835,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isLegendary = TRUE, @@ -38885,7 +38885,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isLegendary = TRUE, @@ -38919,25 +38919,25 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_VIRIZION #if P_FAMILY_TORNADUS -#define TORNADUS_MISC_INFO \ - .types = { TYPE_FLYING, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isLegendary = TRUE, \ - .speciesName = _("Tornadus"), \ - .natDexNum = NATIONAL_DEX_TORNADUS, \ - .categoryName = _("Cyclone"), \ - .weight = 630, \ - .footprint = gMonFootprint_Tornadus, \ - LEARNSETS(Tornadus), \ - .formSpeciesIdTable = sTornadusFormSpeciesIdTable, \ +#define TORNADUS_MISC_INFO \ + .types = { TYPE_FLYING, TYPE_FLYING }, \ + .catchRate = 3, \ + .expYield = 261, \ + .evYield_Attack = 3, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .isLegendary = TRUE, \ + .speciesName = _("Tornadus"), \ + .natDexNum = NATIONAL_DEX_TORNADUS, \ + .categoryName = _("Cyclone"), \ + .weight = 630, \ + .footprint = gMonFootprint_Tornadus, \ + LEARNSETS(Tornadus), \ + .formSpeciesIdTable = sTornadusFormSpeciesIdTable, \ .formChangeTable = sTornadusFormChangeTable [SPECIES_TORNADUS_INCARNATE] = @@ -39004,24 +39004,24 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_TORNADUS #if P_FAMILY_THUNDURUS -#define THUNDURUS_MISC_INFO \ - .types = { TYPE_ELECTRIC, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Thundurus"), \ - .natDexNum = NATIONAL_DEX_THUNDURUS, \ - .categoryName = _("Bolt Strike"), \ - .weight = 610, \ - .footprint = gMonFootprint_Thundurus, \ - LEARNSETS(Thundurus), \ - .formSpeciesIdTable = sThundurusFormSpeciesIdTable, \ +#define THUNDURUS_MISC_INFO \ + .types = { TYPE_ELECTRIC, TYPE_FLYING }, \ + .catchRate = 3, \ + .expYield = 261, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .isLegendary = TRUE, \ + .speciesName = _("Thundurus"), \ + .natDexNum = NATIONAL_DEX_THUNDURUS, \ + .categoryName = _("Bolt Strike"), \ + .weight = 610, \ + .footprint = gMonFootprint_Thundurus, \ + LEARNSETS(Thundurus), \ + .formSpeciesIdTable = sThundurusFormSpeciesIdTable, \ .formChangeTable = sThundurusFormChangeTable [SPECIES_THUNDURUS_INCARNATE] = @@ -39107,7 +39107,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isLegendary = TRUE, @@ -39157,7 +39157,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TERAVOLT, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .isLegendary = TRUE, @@ -39191,24 +39191,24 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_ZEKROM #if P_FAMILY_LANDORUS -#define LANDORUS_MISC_INFO \ - .types = { TYPE_GROUND, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 270, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .isLegendary = TRUE, \ - .speciesName = _("Landorus"), \ - .natDexNum = NATIONAL_DEX_LANDORUS, \ - .categoryName = _("Abundance"), \ - .weight = 680, \ - .footprint = gMonFootprint_Landorus, \ - LEARNSETS(Landorus), \ - .formSpeciesIdTable = sLandorusFormSpeciesIdTable, \ +#define LANDORUS_MISC_INFO \ + .types = { TYPE_GROUND, TYPE_FLYING }, \ + .catchRate = 3, \ + .expYield = 270, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BROWN, \ + .isLegendary = TRUE, \ + .speciesName = _("Landorus"), \ + .natDexNum = NATIONAL_DEX_LANDORUS, \ + .categoryName = _("Abundance"), \ + .weight = 680, \ + .footprint = gMonFootprint_Landorus, \ + LEARNSETS(Landorus), \ + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, \ .formChangeTable = sLandorusFormChangeTable [SPECIES_LANDORUS_INCARNATE] = @@ -39277,22 +39277,22 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_LANDORUS #if P_FAMILY_KYUREM -#define KYUREM_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_ICE }, \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = TRUE, \ - .speciesName = _("Kyurem"), \ - .natDexNum = NATIONAL_DEX_KYUREM, \ - .categoryName = _("Boundary"), \ - .weight = 3250, \ - .footprint = gMonFootprint_Kyurem, \ - .formSpeciesIdTable = sKyuremFormSpeciesIdTable, \ +#define KYUREM_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_ICE }, \ + .catchRate = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = TRUE, \ + .speciesName = _("Kyurem"), \ + .natDexNum = NATIONAL_DEX_KYUREM, \ + .categoryName = _("Boundary"), \ + .weight = 3250, \ + .footprint = gMonFootprint_Kyurem, \ + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, \ .isLegendary = TRUE [SPECIES_KYUREM] = @@ -39404,38 +39404,38 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_KYUREM #if P_FAMILY_KELDEO -#define KELDEO_MISC_INFO \ - .baseHP = 91, \ - .baseAttack = 72, \ - .baseDefense = 90, \ - .baseSpeed = 108, \ - .baseSpAttack = 129, \ - .baseSpDefense = 90, \ - .types = { TYPE_WATER, TYPE_FIGHTING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 80, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .isMythical = TRUE, \ - .speciesName = _("Keldeo"), \ - .cryId = CRY_KELDEO, \ - .natDexNum = NATIONAL_DEX_KELDEO, \ - .categoryName = _("Colt"), \ - .height = 14, \ - .weight = 485, \ - .pokemonScale = 265, \ - .pokemonOffset = 2, \ - .trainerScale = 262, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Keldeo, \ - LEARNSETS(Keldeo), \ - .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, \ +#define KELDEO_MISC_INFO \ + .baseHP = 91, \ + .baseAttack = 72, \ + .baseDefense = 90, \ + .baseSpeed = 108, \ + .baseSpAttack = 129, \ + .baseSpDefense = 90, \ + .types = { TYPE_WATER, TYPE_FIGHTING }, \ + .catchRate = 3, \ + .expYield = 261, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 80, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .isMythical = TRUE, \ + .speciesName = _("Keldeo"), \ + .cryId = CRY_KELDEO, \ + .natDexNum = NATIONAL_DEX_KELDEO, \ + .categoryName = _("Colt"), \ + .height = 14, \ + .weight = 485, \ + .pokemonScale = 265, \ + .pokemonOffset = 2, \ + .trainerScale = 262, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Keldeo, \ + LEARNSETS(Keldeo), \ + .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, \ .formChangeTable = sKeldeoFormChangeTable [SPECIES_KELDEO_ORDINARY] = @@ -39476,34 +39476,34 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_KELDEO #if P_FAMILY_MELOETTA -#define MELOETTA_MISC_INFO \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Speed = 1, \ - .itemCommon = ITEM_STAR_PIECE, \ - .itemRare = ITEM_STAR_PIECE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 100, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = TRUE, \ - .isMythical = TRUE, \ - .speciesName = _("Meloetta"), \ - .cryId = CRY_MELOETTA, \ - .natDexNum = NATIONAL_DEX_MELOETTA, \ - .categoryName = _("Melody"), \ - .height = 6, \ - .weight = 65, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Meloetta, \ - LEARNSETS(Meloetta), \ - .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, \ +#define MELOETTA_MISC_INFO \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_Speed = 1, \ + .itemCommon = ITEM_STAR_PIECE, \ + .itemRare = ITEM_STAR_PIECE, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 100, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = TRUE, \ + .isMythical = TRUE, \ + .speciesName = _("Meloetta"), \ + .cryId = CRY_MELOETTA, \ + .natDexNum = NATIONAL_DEX_MELOETTA, \ + .categoryName = _("Melody"), \ + .height = 6, \ + .weight = 65, \ + .pokemonScale = 422, \ + .pokemonOffset = 12, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Meloetta, \ + LEARNSETS(Meloetta), \ + .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, \ .formChangeTable = sMeloettaFormChangeTable [SPECIES_MELOETTA_ARIA] = @@ -39563,52 +39563,52 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_MELOETTA #if P_FAMILY_GENESECT -#define GENESECT_SPECIES_INFO(form) \ - { \ - .baseHP = 71, \ - .baseAttack = 120, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 120, \ - .baseSpDefense = 95, \ - .types = { TYPE_BUG, TYPE_STEEL }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 1, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Genesect"), \ - .cryId = CRY_GENESECT, \ - .natDexNum = NATIONAL_DEX_GENESECT, \ - .categoryName = _("Paleozoic"), \ - .height = 15, \ - .weight = 825, \ - .description = gGenesectPokedexText, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - FRONT_PIC(Genesect, 56, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Genesect, \ - .frontAnimId = ANIM_H_VIBRATE, \ - BACK_PIC(Genesect, 64, 48), \ - .backPicYOffset = 8, \ - .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ - PALETTES(form), \ - ICON(Genesect, 2), \ - .footprint = gMonFootprint_Genesect, \ - LEARNSETS(Genesect), \ - .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ - .formChangeTable = sGenesectFormChangeTable, \ - .isMythical = TRUE, \ +#define GENESECT_SPECIES_INFO(form) \ + { \ + .baseHP = 71, \ + .baseAttack = 120, \ + .baseDefense = 95, \ + .baseSpeed = 99, \ + .baseSpAttack = 120, \ + .baseSpDefense = 95, \ + .types = { TYPE_BUG, TYPE_STEEL }, \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_Attack = 1, \ + .evYield_Speed = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Genesect"), \ + .cryId = CRY_GENESECT, \ + .natDexNum = NATIONAL_DEX_GENESECT, \ + .categoryName = _("Paleozoic"), \ + .height = 15, \ + .weight = 825, \ + .description = gGenesectPokedexText, \ + .pokemonScale = 268, \ + .pokemonOffset = 2, \ + .trainerScale = 271, \ + .trainerOffset = 0, \ + FRONT_PIC(Genesect, 56, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Genesect, \ + .frontAnimId = ANIM_H_VIBRATE, \ + BACK_PIC(Genesect, 64, 48), \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ + PALETTES(form), \ + ICON(Genesect, 2), \ + .footprint = gMonFootprint_Genesect, \ + LEARNSETS(Genesect), \ + .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ + .formChangeTable = sGenesectFormChangeTable, \ + .isMythical = TRUE, \ } [SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect), @@ -40061,7 +40061,7 @@ const struct SpeciesInfo gSpeciesInfo[] = GRENINJA_MISC_INFO, GRENINJA_NORMAL_MISC_INFO, .genderRatio = MON_MALE, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, .frontAnimId = ANIM_FLICKER_INCREASING, .backAnimId = BACK_ANIM_V_STRETCH, @@ -40079,7 +40079,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpDefense = 71, .expYield = 288, .genderRatio = MON_MALE, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, .description = COMPOUND_STRING( "It appears and vanishes with a ninja's\n" @@ -40933,7 +40933,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpAttack = 125, .baseSpDefense = 128, .expYield = 243, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .description = COMPOUND_STRING( ""), .cryId = CRY_FLOETTE_ETERNAL_FLOWER, @@ -43578,50 +43578,50 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_NOIBAT #if P_FAMILY_XERNEAS -#define XERNEAS_MISC_INFO(Form) \ - { \ - .baseHP = 126, \ - .baseAttack = 131, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 131, \ - .baseSpDefense = 98, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Xerneas"), \ - .cryId = CRY_XERNEAS, \ - .natDexNum = NATIONAL_DEX_XERNEAS, \ - .categoryName = _("Life"), \ - .height = 30, \ - .weight = 2150, \ - .description = gXerneasPokedexText, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Xerneas##Form, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Xerneas, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - BACK_PIC(Xerneas##Form, 64, 64), \ - .backPicYOffset = 0, \ - .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, \ - PALETTES(Xerneas##Form), \ - ICON(Xerneas##Form, 0), \ - .footprint = gMonFootprint_Xerneas, \ - LEARNSETS(Xerneas), \ - .formSpeciesIdTable = sXerneasFormSpeciesIdTable, \ - .formChangeTable = sXerneasFormChangeTable, \ - .isLegendary = TRUE, \ +#define XERNEAS_MISC_INFO(Form) \ + { \ + .baseHP = 126, \ + .baseAttack = 131, \ + .baseDefense = 95, \ + .baseSpeed = 99, \ + .baseSpAttack = 131, \ + .baseSpDefense = 98, \ + .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .catchRate = 45, \ + .expYield = 306, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .speciesName = _("Xerneas"), \ + .cryId = CRY_XERNEAS, \ + .natDexNum = NATIONAL_DEX_XERNEAS, \ + .categoryName = _("Life"), \ + .height = 30, \ + .weight = 2150, \ + .description = gXerneasPokedexText, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Xerneas##Form, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Xerneas, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + BACK_PIC(Xerneas##Form, 64, 64), \ + .backPicYOffset = 0, \ + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, \ + PALETTES(Xerneas##Form), \ + ICON(Xerneas##Form, 0), \ + .footprint = gMonFootprint_Xerneas, \ + LEARNSETS(Xerneas), \ + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, \ + .formChangeTable = sXerneasFormChangeTable, \ + .isLegendary = TRUE, \ } [SPECIES_XERNEAS_NEUTRAL] = XERNEAS_MISC_INFO(Neutral), @@ -43645,7 +43645,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_DARK_AURA, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .isLegendary = TRUE, @@ -43680,23 +43680,23 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_YVELTAL #if P_FAMILY_ZYGARDE -#define ZYGARDE_MISC_INFO(ability) \ - .types = { TYPE_DRAGON, TYPE_GROUND }, \ - .catchRate = 3, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ability, ABILITY_NONE }, \ - .noFlip = TRUE, \ - .speciesName = _("Zygarde"), \ - .natDexNum = NATIONAL_DEX_ZYGARDE, \ - .categoryName = _("Order"), \ - .footprint = gMonFootprint_Zygarde, \ - LEARNSETS(Zygarde), \ - .formSpeciesIdTable = sZygardeFormSpeciesIdTable, \ +#define ZYGARDE_MISC_INFO(ability) \ + .types = { TYPE_DRAGON, TYPE_GROUND }, \ + .catchRate = 3, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ability, ABILITY_NONE }, \ + .noFlip = TRUE, \ + .speciesName = _("Zygarde"), \ + .natDexNum = NATIONAL_DEX_ZYGARDE, \ + .categoryName = _("Order"), \ + .footprint = gMonFootprint_Zygarde, \ + LEARNSETS(Zygarde), \ + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, \ .isLegendary = TRUE #define ZYGARDE_50_SPECIES_INFO(ability) \ @@ -43807,24 +43807,24 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_ZYGARDE #if P_FAMILY_DIANCIE -#define DIANCE_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_FAIRY }, \ - .catchRate = 3, \ - .evYield_Defense = 1, \ - .evYield_SpDefense = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Diancie"), \ - .natDexNum = NATIONAL_DEX_DIANCIE, \ - .categoryName = _("Jewel"), \ - .footprint = gMonFootprint_Diancie, \ - LEARNSETS(Diancie), \ - .formSpeciesIdTable = sDiancieFormSpeciesIdTable, \ - .formChangeTable = sDiancieFormChangeTable, \ +#define DIANCE_MISC_INFO \ + .types = { TYPE_ROCK, TYPE_FAIRY }, \ + .catchRate = 3, \ + .evYield_Defense = 1, \ + .evYield_SpDefense = 2, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_PINK, \ + .speciesName = _("Diancie"), \ + .natDexNum = NATIONAL_DEX_DIANCIE, \ + .categoryName = _("Jewel"), \ + .footprint = gMonFootprint_Diancie, \ + LEARNSETS(Diancie), \ + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, \ + .formChangeTable = sDiancieFormChangeTable, \ .isMythical = TRUE [SPECIES_DIANCIE] = @@ -43897,21 +43897,21 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_DIANCIE #if P_FAMILY_HOOPA -#define HOOPA_MISC_INFO \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_MAGICIAN, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Hoopa"), \ - .natDexNum = NATIONAL_DEX_HOOPA, \ - .footprint = gMonFootprint_Hoopa, \ - .formSpeciesIdTable = sHoopaFormSpeciesIdTable, \ - .formChangeTable = sHoopaFormChangeTable, \ +#define HOOPA_MISC_INFO \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_MAGICIAN, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Hoopa"), \ + .natDexNum = NATIONAL_DEX_HOOPA, \ + .footprint = gMonFootprint_Hoopa, \ + .formSpeciesIdTable = sHoopaFormSpeciesIdTable, \ + .formChangeTable = sHoopaFormChangeTable, \ .isMythical = TRUE [SPECIES_HOOPA_CONFINED] = @@ -44003,7 +44003,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_WATER_ABSORB, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .isMythical = TRUE, @@ -46708,7 +46708,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isLegendary = TRUE, @@ -46741,51 +46741,51 @@ const struct SpeciesInfo gSpeciesInfo[] = .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}), }, -#define SILVALLY_SPECIES_INFO(type, palette) \ - { \ - .baseHP = 95, \ - .baseAttack = 95, \ - .baseDefense = 95, \ - .baseSpeed = 95, \ - .baseSpAttack = 95, \ - .baseSpDefense = 95, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 257, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .isLegendary = TRUE, \ - .speciesName = _("Silvally"), \ - .cryId = CRY_SILVALLY, \ - .natDexNum = NATIONAL_DEX_SILVALLY, \ - .categoryName = _("Synthetic"), \ - .height = 23, \ - .weight = 1005, \ - .description = (type == TYPE_NORMAL \ - ? gSilvallyNormalPokedexText \ - : gSilvallyMemoryPokedexText), \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 342, \ - .trainerOffset = 7, \ - FRONT_PIC(Silvally, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Silvally, \ - .frontAnimId = ANIM_V_SHAKE, \ - BACK_PIC(Silvally, 56, 64), \ - .backPicYOffset = 0, \ - PALETTES(palette), \ - ICON(Silvally, 0), \ - .footprint = gMonFootprint_Silvally, \ - LEARNSETS(Silvally), \ - .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ - .formChangeTable = sSilvallyFormChangeTable, \ +#define SILVALLY_SPECIES_INFO(type, palette) \ + { \ + .baseHP = 95, \ + .baseAttack = 95, \ + .baseDefense = 95, \ + .baseSpeed = 95, \ + .baseSpAttack = 95, \ + .baseSpDefense = 95, \ + .types = { type, type }, \ + .catchRate = 3, \ + .expYield = 257, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .isLegendary = TRUE, \ + .speciesName = _("Silvally"), \ + .cryId = CRY_SILVALLY, \ + .natDexNum = NATIONAL_DEX_SILVALLY, \ + .categoryName = _("Synthetic"), \ + .height = 23, \ + .weight = 1005, \ + .description = (type == TYPE_NORMAL \ + ? gSilvallyNormalPokedexText \ + : gSilvallyMemoryPokedexText), \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 342, \ + .trainerOffset = 7, \ + FRONT_PIC(Silvally, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Silvally, \ + .frontAnimId = ANIM_V_SHAKE, \ + BACK_PIC(Silvally, 56, 64), \ + .backPicYOffset = 0, \ + PALETTES(palette), \ + ICON(Silvally, 0), \ + .footprint = gMonFootprint_Silvally, \ + LEARNSETS(Silvally), \ + .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ + .formChangeTable = sSilvallyFormChangeTable, \ } //.backAnimId = BACK_ANIM_NONE, @@ -47438,7 +47438,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_ELECTRIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_YELLOW, .isLegendary = TRUE, @@ -47489,7 +47489,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PSYCHIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, .isLegendary = TRUE, @@ -47540,7 +47540,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_GRASSY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_RED, .isLegendary = TRUE, @@ -47591,7 +47591,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_MISTY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, .isLegendary = TRUE, @@ -47643,7 +47643,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_UNAWARE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isLegendary = TRUE, @@ -47694,7 +47694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_STURDY, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isLegendary = TRUE, @@ -47745,7 +47745,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_FULL_METAL_BODY, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isLegendary = TRUE, @@ -47793,7 +47793,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SHADOW_SHIELD, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .isLegendary = TRUE, @@ -47844,7 +47844,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isUltraBeast = TRUE, @@ -47896,7 +47896,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .isUltraBeast = TRUE, @@ -47946,7 +47946,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isUltraBeast = TRUE, @@ -47996,7 +47996,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .isUltraBeast = TRUE, @@ -48048,7 +48048,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isUltraBeast = TRUE, @@ -48098,7 +48098,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isUltraBeast = TRUE, @@ -48149,7 +48149,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .isUltraBeast = TRUE, @@ -48183,23 +48183,23 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_GUZZLORD #if P_FAMILY_NECROZMA -#define NECROZMA_MISC_INFO \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .noFlip = TRUE, \ - .speciesName = _("Necrozma"), \ - .natDexNum = NATIONAL_DEX_NECROZMA, \ - .categoryName = _("Prism"), \ - .pokemonScale = 256, \ - .pokemonOffset = 3, \ - .trainerScale = 369, \ - .trainerOffset = 7, \ - .footprint = gMonFootprint_Necrozma, \ - LEARNSETS(Necrozma), \ - .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, \ +#define NECROZMA_MISC_INFO \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .noFlip = TRUE, \ + .speciesName = _("Necrozma"), \ + .natDexNum = NATIONAL_DEX_NECROZMA, \ + .categoryName = _("Prism"), \ + .pokemonScale = 256, \ + .pokemonOffset = 3, \ + .trainerScale = 369, \ + .trainerOffset = 7, \ + .footprint = gMonFootprint_Necrozma, \ + LEARNSETS(Necrozma), \ + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, \ .isLegendary = TRUE [SPECIES_NECROZMA] = @@ -48347,44 +48347,44 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_NECROZMA #if P_FAMILY_MAGEARNA -#define MAGEARNA_MISC_INFO(Form) \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 65, \ - .baseSpAttack = 130, \ - .baseSpDefense = 115, \ - .types = { TYPE_STEEL, TYPE_FAIRY }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE }, \ - .speciesName = _("Magearna"), \ - .cryId = CRY_MAGEARNA, \ - .natDexNum = NATIONAL_DEX_MAGEARNA, \ - .categoryName = _("Artificial"), \ - .height = 10, \ - .weight = 805, \ - .pokemonScale = 305, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - FRONT_PIC(Form, 56, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Magearna, \ - .frontAnimId = ANIM_H_SLIDE_SLOW, \ - BACK_PIC(Form, 64, 56), \ - .backPicYOffset = 4, \ - PALETTES(Form), \ - ICON(Form, 0), \ - .footprint = gMonFootprint_Magearna, \ - LEARNSETS(Magearna), \ - .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, \ +#define MAGEARNA_MISC_INFO(Form) \ + .baseHP = 80, \ + .baseAttack = 95, \ + .baseDefense = 115, \ + .baseSpeed = 65, \ + .baseSpAttack = 130, \ + .baseSpDefense = 115, \ + .types = { TYPE_STEEL, TYPE_FAIRY }, \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE }, \ + .speciesName = _("Magearna"), \ + .cryId = CRY_MAGEARNA, \ + .natDexNum = NATIONAL_DEX_MAGEARNA, \ + .categoryName = _("Artificial"), \ + .height = 10, \ + .weight = 805, \ + .pokemonScale = 305, \ + .pokemonOffset = 7, \ + .trainerScale = 257, \ + .trainerOffset = 0, \ + FRONT_PIC(Form, 56, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Magearna, \ + .frontAnimId = ANIM_H_SLIDE_SLOW, \ + BACK_PIC(Form, 64, 56), \ + .backPicYOffset = 4, \ + PALETTES(Form), \ + ICON(Form, 0), \ + .footprint = gMonFootprint_Magearna, \ + LEARNSETS(Magearna), \ + .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, \ .isMythical = TRUE //.backAnimId = BACK_ANIM_NONE, @@ -48425,7 +48425,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TECHNICIAN, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -48476,7 +48476,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .isUltraBeast = TRUE, @@ -48525,7 +48525,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .isUltraBeast = TRUE, @@ -48575,7 +48575,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -48625,7 +48625,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -48675,7 +48675,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .isMythical = TRUE, @@ -48724,7 +48724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_MAGNET_PULL, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isMythical = TRUE, @@ -48755,35 +48755,35 @@ const struct SpeciesInfo gSpeciesInfo[] = LEARNSETS(Meltan), }, -#define MELMETAL_MISC_INFO \ - .baseHP = 135, \ - .baseAttack = 143, \ - .baseDefense = 143, \ - .baseSpeed = 34, \ - .baseSpAttack = 80, \ - .baseSpDefense = 65, \ - .types = { TYPE_STEEL, TYPE_STEEL }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_IRON_FIST, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Melmetal"), \ - .cryId = CRY_MELMETAL, \ - .natDexNum = NATIONAL_DEX_MELMETAL, \ - .categoryName = _("Hex Nut"), \ - .pokemonScale = 257, \ - .pokemonOffset = 10, \ - .trainerScale = 423, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Melmetal, \ - LEARNSETS(Melmetal), \ - .formChangeTable = sMelmetalFormChangeTable, \ +#define MELMETAL_MISC_INFO \ + .baseHP = 135, \ + .baseAttack = 143, \ + .baseDefense = 143, \ + .baseSpeed = 34, \ + .baseSpAttack = 80, \ + .baseSpDefense = 65, \ + .types = { TYPE_STEEL, TYPE_STEEL }, \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_Attack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_IRON_FIST, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .speciesName = _("Melmetal"), \ + .cryId = CRY_MELMETAL, \ + .natDexNum = NATIONAL_DEX_MELMETAL, \ + .categoryName = _("Hex Nut"), \ + .pokemonScale = 257, \ + .pokemonOffset = 10, \ + .trainerScale = 423, \ + .trainerOffset = 8, \ + .footprint = gMonFootprint_Melmetal, \ + LEARNSETS(Melmetal), \ + .formChangeTable = sMelmetalFormChangeTable, \ .isMythical = TRUE [SPECIES_MELMETAL] = @@ -51066,7 +51066,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_RATTLED, ABILITY_STATIC, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Toxel"), @@ -52748,7 +52748,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dracozolt"), @@ -52797,7 +52797,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctozolt"), @@ -52845,7 +52845,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dracovish"), @@ -52894,7 +52894,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctovish"), @@ -53152,28 +53152,28 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN -#define ZACIAN_MISC_INFO \ - .catchRate = 10, \ - .evYield_Speed = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Zacian"), \ - .natDexNum = NATIONAL_DEX_ZACIAN, \ - .categoryName = _("Warrior"), \ - .height = 28, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zacian, \ - LEARNSETS(Zacian), \ - .formSpeciesIdTable = sZacianFormSpeciesIdTable, \ +#define ZACIAN_MISC_INFO \ + .catchRate = 10, \ + .evYield_Speed = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .isLegendary = TRUE, \ + .speciesName = _("Zacian"), \ + .natDexNum = NATIONAL_DEX_ZACIAN, \ + .categoryName = _("Warrior"), \ + .height = 28, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Zacian, \ + LEARNSETS(Zacian), \ + .formSpeciesIdTable = sZacianFormSpeciesIdTable, \ .formChangeTable = sZacianFormChangeTable [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = @@ -53232,28 +53232,28 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA -#define ZAMAZENTA_MISC_INFO \ - .catchRate = 10, \ - .evYield_Speed = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .isLegendary = TRUE, \ - .speciesName = _("Zamazenta"), \ - .natDexNum = NATIONAL_DEX_ZAMAZENTA, \ - .categoryName = _("Warrior"), \ - .height = 29, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zamazenta, \ - LEARNSETS(Zamazenta), \ - .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, \ +#define ZAMAZENTA_MISC_INFO \ + .catchRate = 10, \ + .evYield_Speed = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_RED, \ + .isLegendary = TRUE, \ + .speciesName = _("Zamazenta"), \ + .natDexNum = NATIONAL_DEX_ZAMAZENTA, \ + .categoryName = _("Warrior"), \ + .height = 29, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Zamazenta, \ + LEARNSETS(Zamazenta), \ + .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, \ .formChangeTable = sZamazentaFormChangeTable [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = @@ -53313,23 +53313,23 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_ZAMAZENTA #if P_FAMILY_ETERNATUS -#define ETERNATUS_MISC_INFO \ - .types = { TYPE_POISON, TYPE_DRAGON }, \ - .catchRate = 255, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .isLegendary = TRUE, \ - .speciesName = _("Eternatus"), \ - .natDexNum = NATIONAL_DEX_ETERNATUS, \ - .categoryName = _("Gigantic"), \ - .footprint = gMonFootprint_Eternatus, \ - LEARNSETS(Eternatus), \ +#define ETERNATUS_MISC_INFO \ + .types = { TYPE_POISON, TYPE_DRAGON }, \ + .catchRate = 255, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .isLegendary = TRUE, \ + .speciesName = _("Eternatus"), \ + .natDexNum = NATIONAL_DEX_ETERNATUS, \ + .categoryName = _("Gigantic"), \ + .footprint = gMonFootprint_Eternatus, \ + LEARNSETS(Eternatus), \ .formSpeciesIdTable = sEternatusFormSpeciesIdTable [SPECIES_ETERNATUS] = @@ -53415,7 +53415,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isLegendary = TRUE, @@ -53450,28 +53450,28 @@ const struct SpeciesInfo gSpeciesInfo[] = {EVO_ITEM, ITEM_SCROLL_OF_WATERS, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}), }, -#define URSHIFU_MISC_INFO(style) \ - .baseHP = 100, \ - .baseAttack = 130, \ - .baseDefense = 100, \ - .baseSpeed = 97, \ - .baseSpAttack = 63, \ - .baseSpDefense = 60, \ - .catchRate = 3, \ - .expYield = 275, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 120, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .isLegendary = TRUE, \ - .speciesName = _("Urshifu"), \ - .natDexNum = NATIONAL_DEX_URSHIFU, \ - .categoryName = _("Wushu"), \ - .footprint = gMonFootprint_Urshifu, \ +#define URSHIFU_MISC_INFO(style) \ + .baseHP = 100, \ + .baseAttack = 130, \ + .baseDefense = 100, \ + .baseSpeed = 97, \ + .baseSpAttack = 63, \ + .baseSpDefense = 60, \ + .catchRate = 3, \ + .expYield = 275, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 120, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .isLegendary = TRUE, \ + .speciesName = _("Urshifu"), \ + .natDexNum = NATIONAL_DEX_URSHIFU, \ + .categoryName = _("Wushu"), \ + .footprint = gMonFootprint_Urshifu, \ .formSpeciesIdTable = sUrshifuFormSpeciesIdTable #define URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO \ @@ -53588,37 +53588,37 @@ const struct SpeciesInfo gSpeciesInfo[] = #if P_FAMILY_ZARUDE -#define ZARUDE_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 120, \ - .baseDefense = 105, \ - .baseSpeed = 105, \ - .baseSpAttack = 70, \ - .baseSpDefense = 95, \ - .types = { TYPE_DARK, TYPE_GRASS }, \ - .catchRate = 3, \ - .expYield = 300, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isMythical = TRUE, \ - .speciesName = _("Zarude"), \ - .cryId = CRY_ZARUDE, \ - .natDexNum = NATIONAL_DEX_ZARUDE, \ - .categoryName = _("Rogue Monkey"), \ - .height = 18, \ - .weight = 700, \ - .pokemonScale = 267, \ - .pokemonOffset = 2, \ - .trainerScale = 286, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Zarude, \ - LEARNSETS(Zarude), \ +#define ZARUDE_MISC_INFO \ + .baseHP = 105, \ + .baseAttack = 120, \ + .baseDefense = 105, \ + .baseSpeed = 105, \ + .baseSpAttack = 70, \ + .baseSpDefense = 95, \ + .types = { TYPE_DARK, TYPE_GRASS }, \ + .catchRate = 3, \ + .expYield = 300, \ + .evYield_Attack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .isMythical = TRUE, \ + .speciesName = _("Zarude"), \ + .cryId = CRY_ZARUDE, \ + .natDexNum = NATIONAL_DEX_ZARUDE, \ + .categoryName = _("Rogue Monkey"), \ + .height = 18, \ + .weight = 700, \ + .pokemonScale = 267, \ + .pokemonOffset = 2, \ + .trainerScale = 286, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Zarude, \ + LEARNSETS(Zarude), \ .formSpeciesIdTable = sZarudeFormSpeciesIdTable [SPECIES_ZARUDE] = @@ -53673,7 +53673,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TRANSISTOR, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Regieleki"), @@ -53724,7 +53724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_DRAGONS_MAW, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isLegendary = TRUE, @@ -53775,7 +53775,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_CHILLING_NEIGH, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isLegendary = TRUE, @@ -53824,7 +53824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_GRIM_NEIGH, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .isLegendary = TRUE, @@ -53882,7 +53882,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_UNNERVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .cryId = CRY_CALYREX, @@ -53928,7 +53928,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .cryId = CRY_CALYREX_ICE_RIDER, @@ -53971,7 +53971,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .cryId = CRY_CALYREX_SHADOW_RIDER, @@ -54000,28 +54000,28 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_CALYREX #if P_FAMILY_ENAMORUS -#define ENAMORUS_MISC_INFO \ - .types = { TYPE_FAIRY, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 116, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .bodyColor = BODY_COLOR_PINK, \ - .isLegendary = TRUE, \ - .speciesName = _("Enamorus"), \ - .natDexNum = NATIONAL_DEX_ENAMORUS, \ - .categoryName = _("Love-Hate"), \ - .height = 16, \ - .weight = 480, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - LEARNSETS(Enamorus), \ +#define ENAMORUS_MISC_INFO \ + .types = { TYPE_FAIRY, TYPE_FLYING }, \ + .catchRate = 3, \ + .expYield = 116, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_PINK, \ + .isLegendary = TRUE, \ + .speciesName = _("Enamorus"), \ + .natDexNum = NATIONAL_DEX_ENAMORUS, \ + .categoryName = _("Love-Hate"), \ + .height = 16, \ + .weight = 480, \ + .pokemonScale = 259, \ + .pokemonOffset = 1, \ + .trainerScale = 296, \ + .trainerOffset = 1, \ + LEARNSETS(Enamorus), \ .formSpeciesIdTable = sEnamorusFormSpeciesIdTable [SPECIES_ENAMORUS_INCARNATE] = @@ -57784,7 +57784,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .isParadoxForm = TRUE, @@ -57834,7 +57834,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, .isParadoxForm = TRUE, @@ -57884,7 +57884,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isParadoxForm = TRUE, @@ -57936,7 +57936,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isParadoxForm = TRUE, @@ -57987,7 +57987,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .isParadoxForm = TRUE, @@ -58036,7 +58036,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isParadoxForm = TRUE, @@ -58086,7 +58086,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isParadoxForm = TRUE, @@ -58136,7 +58136,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .isParadoxForm = TRUE, @@ -58186,7 +58186,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .isParadoxForm = TRUE, @@ -58236,7 +58236,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isParadoxForm = TRUE, @@ -58287,7 +58287,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .isParadoxForm = TRUE, @@ -58338,7 +58338,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isParadoxForm = TRUE, @@ -58517,22 +58517,22 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL -#define GIMMIGHOUL_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 60, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 50, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .speciesName = _("Gimmighoul"), \ - .cryId = CRY_GIMMIGHOUL, \ - .natDexNum = NATIONAL_DEX_GIMMIGHOUL, \ - .frontAnimFrames = sAnims_Gimmighoul, \ - LEARNSETS(Gimmighoul), \ - .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, \ +#define GIMMIGHOUL_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_GHOST }, \ + .catchRate = 45, \ + .expYield = 60, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 50, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .speciesName = _("Gimmighoul"), \ + .cryId = CRY_GIMMIGHOUL, \ + .natDexNum = NATIONAL_DEX_GIMMIGHOUL, \ + .frontAnimFrames = sAnims_Gimmighoul, \ + LEARNSETS(Gimmighoul), \ + .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, \ .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}) //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, //.backAnimId = BACK_ANIM_NONE, @@ -58613,7 +58613,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_GOOD_AS_GOLD, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Gholdengo"), @@ -58662,7 +58662,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TABLETS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .isLegendary = TRUE, @@ -58712,7 +58712,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_SWORD_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isLegendary = TRUE, @@ -58762,7 +58762,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_VESSEL_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .isLegendary = TRUE, @@ -58812,7 +58812,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_BEADS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .isLegendary = TRUE, @@ -58863,7 +58863,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isParadoxForm = TRUE, @@ -58914,7 +58914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .isParadoxForm = TRUE, @@ -58963,7 +58963,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_ORICHALCUM_PULSE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .isLegendary = TRUE, @@ -59014,7 +59014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isLegendary = TRUE, @@ -59065,7 +59065,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .isParadoxForm = TRUE, @@ -59112,7 +59112,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .isParadoxForm = TRUE, @@ -59277,7 +59277,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_GUARD_DOG }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Okidogi"), @@ -59327,7 +59327,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .isLegendary = TRUE, @@ -59377,7 +59377,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BLACK, .isLegendary = TRUE, @@ -59411,46 +59411,46 @@ const struct SpeciesInfo gSpeciesInfo[] = #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON -#define OGERPON_SPECIES_INFO(Form, type, ability, color, tera) \ - { \ - .baseHP = 80, \ - .baseAttack = 120, \ - .baseDefense = 84, \ - .baseSpeed = 110, \ - .baseSpAttack = 60, \ - .baseSpDefense = 96, \ - .types = { TYPE_GRASS, type }, \ - .catchRate = 5, \ - .expYield = 275, \ - .evYield_Attack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, \ - .abilities = { ability, ABILITY_NONE }, \ - .bodyColor = color, \ - .speciesName = _("Ogerpon"), \ - .cryId = CRY_OGERPON, \ - .natDexNum = NATIONAL_DEX_OGERPON, \ - .categoryName = _("Mask"), \ - .height = 12, \ - .weight = 398, \ - .description = gOgerpon##Form##PokedexText, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Ogerpon##Form, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Ogerpon, \ - BACK_PIC(Ogerpon##Form, 64, 64), \ - .backPicYOffset = 16, \ - .palette = gMonPalette_Ogerpon##Form, \ - ICON(OgerponTealMask, 1), \ - LEARNSETS(Ogerpon), \ - .formChangeTable = sOgerponFormChangeTable, \ - .isLegendary = TRUE, \ +#define OGERPON_SPECIES_INFO(Form, type, ability, color, tera) \ + { \ + .baseHP = 80, \ + .baseAttack = 120, \ + .baseDefense = 84, \ + .baseSpeed = 110, \ + .baseSpAttack = 60, \ + .baseSpDefense = 96, \ + .types = { TYPE_GRASS, type }, \ + .catchRate = 5, \ + .expYield = 275, \ + .evYield_Attack = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ability, ABILITY_NONE }, \ + .bodyColor = color, \ + .speciesName = _("Ogerpon"), \ + .cryId = CRY_OGERPON, \ + .natDexNum = NATIONAL_DEX_OGERPON, \ + .categoryName = _("Mask"), \ + .height = 12, \ + .weight = 398, \ + .description = gOgerpon##Form##PokedexText, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Ogerpon##Form, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Ogerpon, \ + BACK_PIC(Ogerpon##Form, 64, 64), \ + .backPicYOffset = 16, \ + .palette = gMonPalette_Ogerpon##Form, \ + ICON(OgerponTealMask, 1), \ + LEARNSETS(Ogerpon), \ + .formChangeTable = sOgerponFormChangeTable, \ + .isLegendary = TRUE, \ } //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, //.backAnimId = BACK_ANIM_NONE, diff --git a/src/daycare.c b/src/daycare.c index a897c8c5cb..f5f0f3ac32 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1310,7 +1310,7 @@ u8 GetDaycareCompatibilityScore(struct DayCare *daycare) } // check unbreedable egg group - if (eggGroups[0][0] == EGG_GROUP_UNDISCOVERED || eggGroups[1][0] == EGG_GROUP_UNDISCOVERED) + if (eggGroups[0][0] == EGG_GROUP_NO_EGGS_DISCOVERED || eggGroups[1][0] == EGG_GROUP_NO_EGGS_DISCOVERED) return PARENTS_INCOMPATIBLE; // two Ditto can't breed if (eggGroups[0][0] == EGG_GROUP_DITTO && eggGroups[1][0] == EGG_GROUP_DITTO) diff --git a/src/debug.c b/src/debug.c index 23c21f76f0..28d4eec38d 100644 --- a/src/debug.c +++ b/src/debug.c @@ -3659,7 +3659,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu } if (i >= PARTY_SIZE) - sentToPc = SendMonToPC(&mon); + sentToPc = CopyMonToPC(&mon); else { sentToPc = MON_GIVEN_TO_PARTY; diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index 2553c856ba..55078d0784 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -192,7 +192,7 @@ static const u8 sText_Stats_eggGroup_AMORPHOUS[] = _("AMORPHOUS"); static const u8 sText_Stats_eggGroup_WATER_2[] = _("WATER {CIRCLE_2}"); static const u8 sText_Stats_eggGroup_DITTO[] = _("DITTO"); static const u8 sText_Stats_eggGroup_DRAGON[] = _("DRAGON"); -static const u8 sText_Stats_eggGroup_UNDISCOVERED[] = _("---"); +static const u8 sText_Stats_eggGroup_NO_EGGS_DISCOVERED[] = _("---"); static const u8 sText_Dex_SEEN[] = _("SEEN"); static const u8 sText_Dex_OWN[] = _("OWN"); @@ -5885,7 +5885,7 @@ static void PrintStatsScreen_Left(u8 taskId) base_i++; //Egg cycles - if (sPokedexView->sPokemonStats.eggGroup1 == EGG_GROUP_UNDISCOVERED || sPokedexView->sPokemonStats.eggGroup2 == EGG_GROUP_UNDISCOVERED) //Species without eggs (legendaries etc) + if (sPokedexView->sPokemonStats.eggGroup1 == EGG_GROUP_NO_EGGS_DISCOVERED || sPokedexView->sPokemonStats.eggGroup2 == EGG_GROUP_NO_EGGS_DISCOVERED) //Species without eggs (legendaries etc) { PrintStatsScreenTextSmall(WIN_STATS_LEFT, sText_Stats_EggCycles, base_x, base_y + base_y_offset*base_i); PrintStatsScreenTextSmall(WIN_STATS_LEFT, gText_ThreeDashes, 78, base_y + base_y_offset*base_i); @@ -5962,8 +5962,8 @@ static void PrintStatsScreen_Left(u8 taskId) case EGG_GROUP_DRAGON : StringCopy(gStringVar1, sText_Stats_eggGroup_DRAGON); break; - case EGG_GROUP_UNDISCOVERED: - StringCopy(gStringVar1, sText_Stats_eggGroup_UNDISCOVERED); + case EGG_GROUP_NO_EGGS_DISCOVERED: + StringCopy(gStringVar1, sText_Stats_eggGroup_NO_EGGS_DISCOVERED); break; } //Egg group 2 @@ -6013,8 +6013,8 @@ static void PrintStatsScreen_Left(u8 taskId) case EGG_GROUP_DRAGON : StringCopy(gStringVar2, sText_Stats_eggGroup_DRAGON); break; - case EGG_GROUP_UNDISCOVERED: - StringCopy(gStringVar2, sText_Stats_eggGroup_UNDISCOVERED); + case EGG_GROUP_NO_EGGS_DISCOVERED: + StringCopy(gStringVar2, sText_Stats_eggGroup_NO_EGGS_DISCOVERED); break; } StringExpandPlaceholders(gStringVar3, sText_Stats_eggGroup_Groups); diff --git a/src/pokemon.c b/src/pokemon.c index c1a513bb80..47b05ff90d 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -352,10 +352,10 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = const struct SpindaSpot gSpindaSpotGraphics[] = { - {.x = 16, .y = 7, .image = INCBIN_U16("graphics/spinda_spots/spot_0.1bpp")}, - {.x = 40, .y = 8, .image = INCBIN_U16("graphics/spinda_spots/spot_1.1bpp")}, - {.x = 22, .y = 25, .image = INCBIN_U16("graphics/spinda_spots/spot_2.1bpp")}, - {.x = 34, .y = 26, .image = INCBIN_U16("graphics/spinda_spots/spot_3.1bpp")} + {.x = 16, .y = 7, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_0.1bpp")}, + {.x = 40, .y = 8, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_1.1bpp")}, + {.x = 22, .y = 25, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_2.1bpp")}, + {.x = 34, .y = 26, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_3.1bpp")} }; #include "data/pokemon/item_effects.h" @@ -2729,14 +2729,14 @@ u8 GiveMonToPlayer(struct Pokemon *mon) } if (i >= PARTY_SIZE) - return SendMonToPC(mon); + return CopyMonToPC(mon); CopyMon(&gPlayerParty[i], mon, sizeof(*mon)); gPlayerPartyCount = i + 1; return MON_GIVEN_TO_PARTY; } -u8 SendMonToPC(struct Pokemon* mon) +u8 CopyMonToPC(struct Pokemon *mon) { s32 boxNo, boxPos; diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 19b187bddf..ca455d544d 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -67,7 +67,7 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u struct Pokemon mon; u16 targetSpecies; - if (OW_SYNCHRONIZE_NATURE >= GEN_6 && (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_UNDISCOVERED || OW_SYNCHRONIZE_NATURE == GEN_7)) + if (OW_SYNCHRONIZE_NATURE >= GEN_6 && (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_NO_EGGS_DISCOVERED || OW_SYNCHRONIZE_NATURE == GEN_7)) CreateMonWithNature(&mon, species, level, USE_RANDOM_IVS, PickWildMonNature()); else CreateMon(&mon, species, level, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); diff --git a/src/trade.c b/src/trade.c index aaa337f435..5e0564a1ff 100644 --- a/src/trade.c +++ b/src/trade.c @@ -157,7 +157,7 @@ struct InGameTrade { u32 personality; u16 heldItem; u8 mailNum; - u8 otName[11]; + u8 otName[TRAINER_NAME_LENGTH + 1]; u8 otGender; u8 sheen; u16 requestedSpecies; diff --git a/sym_ewram.txt b/sym_ewram.txt index 9fc9604c63..3123b3388a 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,3 +1,4 @@ + .include "gflib/malloc.o" .include "src/decompress.o" .include "src/main.o" .include "gflib/window.o"