diff --git a/include/constants/species.h b/include/constants/species.h index ff91c8090..f7a6d9cca 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -812,8 +812,6 @@ #define SPECIES_MELTAN 808 #define SPECIES_MELMETAL 809 -#define IS_ULTRA_BEAST(speciesId)((speciesId >= SPECIES_NIHILEGO && speciesId <= SPECIES_GUZZLORD) || (speciesId >= SPECIES_POIPOLE && speciesId <= SPECIES_BLACEPHALON)) - #define FORMS_START SPECIES_MELMETAL // Megas @@ -2221,4 +2219,9 @@ #define HOENN_DEX_COUNT 212 +// species flags +#define F_ULTRA_BEAST (1 << 0) +#define F_ALOLAN_FORM (1 << 1) +#define F_GALARIAN_FORM (1 << 2) + #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/pokemon.h b/include/pokemon.h index f00008d95..e9eb1d4b3 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -206,6 +206,7 @@ struct BaseStats /* 0x19 */ u8 safariZoneFleeRate; /* 0x1A */ u8 bodyColor : 7; u8 noFlip : 1; + /* 0x1B */ u8 flags; }; struct BattleMove diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h index 9b2e97137..efe69a62b 100644 --- a/src/data/pokemon/base_stats.h +++ b/src/data/pokemon/base_stats.h @@ -22632,6 +22632,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_BUZZWOLE] = @@ -22661,6 +22662,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_PHEROMOSA] = @@ -22689,6 +22691,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_XURKITREE] = @@ -22717,6 +22720,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_CELESTEELA] = @@ -22747,6 +22751,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_KARTANA] = @@ -22775,6 +22780,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_GUZZLORD] = @@ -22803,6 +22809,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_NECROZMA] = @@ -22917,6 +22924,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_NAGANADEL] = @@ -22945,6 +22953,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_STAKATAKA] = @@ -22973,6 +22982,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_BLACEPHALON] = @@ -23001,6 +23011,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .flags = F_ULTRA_BEAST, }, [SPECIES_ZERAORA] = @@ -24468,6 +24479,7 @@ const struct BaseStats gBaseStats[] = .abilityHidden = ABILITY_THICK_FAT, .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_RATICATE_ALOLAN] = @@ -24498,6 +24510,7 @@ const struct BaseStats gBaseStats[] = .abilityHidden = ABILITY_THICK_FAT, .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_RAICHU_ALOLAN] = @@ -24526,6 +24539,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_SANDSHREW_ALOLAN] = @@ -24558,6 +24572,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_SANDSLASH_ALOLAN] = @@ -24587,6 +24602,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_VULPIX_ALOLAN] = @@ -24619,6 +24635,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_NINETALES_ALOLAN] = @@ -24649,6 +24666,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_DIGLETT_ALOLAN] = @@ -24679,6 +24697,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_DUGTRIO_ALOLAN] = @@ -24709,6 +24728,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_MEOWTH_ALOLAN] = @@ -24739,6 +24759,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_PERSIAN_ALOLAN] = @@ -24769,6 +24790,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_GEODUDE_ALOLAN] = @@ -24799,6 +24821,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_GRAVELER_ALOLAN] = @@ -24829,6 +24852,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_GOLEM_ALOLAN] = @@ -24856,6 +24880,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_GRIMER_ALOLAN] = @@ -24888,6 +24913,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_MUK_ALOLAN] = @@ -24918,6 +24944,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_EXEGGUTOR_ALOLAN] = @@ -24947,6 +24974,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_MAROWAK_ALOLAN] = @@ -24976,6 +25004,7 @@ const struct BaseStats gBaseStats[] = .abilityHidden = ABILITY_ROCK_HEAD, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .flags = F_ALOLAN_FORM, }, [SPECIES_PIKACHU_COSPLAY] =