More aggressive sanitization. Loads of integer definition fixes
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -18,38 +18,42 @@ namespace PkmnLib::Library {
|
||||
EvolutionMethod _method;
|
||||
ArbUt::UniquePtrList<const CreatureLib::Library::EffectParameter> _evolutionData;
|
||||
|
||||
EvolutionData(EvolutionMethod method, std::vector<const CreatureLib::Library::EffectParameter*> data,
|
||||
const PokemonSpecies* next)
|
||||
EvolutionData(EvolutionMethod method, std::vector<const CreatureLib::Library::EffectParameter * non_null> data,
|
||||
const PokemonSpecies* non_null next)
|
||||
: _evolvesInto(next), _method(method), _evolutionData(std::move(data)) {}
|
||||
|
||||
public:
|
||||
~EvolutionData() = default;
|
||||
|
||||
static inline const EvolutionData* CreateLevelEvolution(uint8_t level, const PokemonSpecies* into) {
|
||||
static inline const EvolutionData* non_null CreateLevelEvolution(uint8_t level,
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::Level,
|
||||
{new CreatureLib::Library::EffectParameter((int64_t)level)}, into);
|
||||
}
|
||||
static inline const EvolutionData* CreateFriendshipEvolution(uint8_t friendship, const PokemonSpecies* into) {
|
||||
static inline const EvolutionData* non_null CreateFriendshipEvolution(uint8_t friendship,
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::HighFriendship,
|
||||
{new CreatureLib::Library::EffectParameter((int64_t)friendship)}, into);
|
||||
}
|
||||
static inline const EvolutionData* CreateFriendshipTimeEvolution(uint8_t friendship, TimeOfDay startTime,
|
||||
TimeOfDay endTime,
|
||||
const PokemonSpecies* into) {
|
||||
static inline const EvolutionData* non_null CreateFriendshipTimeEvolution(uint8_t friendship,
|
||||
TimeOfDay startTime,
|
||||
TimeOfDay endTime,
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::HighFriendshipTime,
|
||||
{new CreatureLib::Library::EffectParameter((int64_t)friendship),
|
||||
new CreatureLib::Library::EffectParameter((int64_t)startTime),
|
||||
new CreatureLib::Library::EffectParameter((int64_t)endTime)},
|
||||
into);
|
||||
}
|
||||
static const EvolutionData* CreateKnownMoveEvolution(const MoveData* move, const PokemonSpecies* into);
|
||||
static inline const EvolutionData* CreateLocationEvolution(const ArbUt::StringView& location,
|
||||
const PokemonSpecies* into) {
|
||||
static const EvolutionData* non_null CreateKnownMoveEvolution(const MoveData* non_null move,
|
||||
const PokemonSpecies* non_null into);
|
||||
static inline const EvolutionData* non_null CreateLocationEvolution(const ArbUt::StringView& location,
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::LocationBased,
|
||||
{new CreatureLib::Library::EffectParameter(location)}, into);
|
||||
}
|
||||
static inline const EvolutionData* CreateTimeEvolution(TimeOfDay startTime, TimeOfDay endTime,
|
||||
const PokemonSpecies* into) {
|
||||
static inline const EvolutionData* non_null CreateTimeEvolution(TimeOfDay startTime, TimeOfDay endTime,
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::TimeBased,
|
||||
{
|
||||
new CreatureLib::Library::EffectParameter((int64_t)startTime),
|
||||
@@ -57,29 +61,34 @@ namespace PkmnLib::Library {
|
||||
},
|
||||
into);
|
||||
}
|
||||
static const EvolutionData* CreateHeldItemEvolution(const Item* item, const PokemonSpecies* into);
|
||||
static const EvolutionData* CreateHeldItemTimeEvolution(const Item* item, TimeOfDay startTime,
|
||||
TimeOfDay endTime, const PokemonSpecies* into);
|
||||
static inline const EvolutionData* CreateGenderBasedEvolution(CreatureLib::Library::Gender gender,
|
||||
uint8_t level, const PokemonSpecies* into) {
|
||||
static const EvolutionData* non_null CreateHeldItemEvolution(const Item* non_null item,
|
||||
const PokemonSpecies* non_null into);
|
||||
static const EvolutionData* non_null CreateHeldItemTimeEvolution(const Item* non_null item, TimeOfDay startTime,
|
||||
TimeOfDay endTime,
|
||||
const PokemonSpecies* non_null into);
|
||||
static inline const EvolutionData* non_null CreateGenderBasedEvolution(CreatureLib::Library::Gender gender,
|
||||
uint8_t level,
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::IsGenderAndLevel,
|
||||
{new CreatureLib::Library::EffectParameter((int64_t)gender),
|
||||
new CreatureLib::Library::EffectParameter((int64_t)level)},
|
||||
into);
|
||||
}
|
||||
static const EvolutionData* CreateItemUseEvolution(const Item* item, const PokemonSpecies* into);
|
||||
static const EvolutionData* CreateItemUseWithGenderEvolution(const Item* item,
|
||||
CreatureLib::Library::Gender gender,
|
||||
const PokemonSpecies* into);
|
||||
static inline const EvolutionData* CreateTradeEvolution(const PokemonSpecies* into) {
|
||||
static const EvolutionData* non_null CreateItemUseEvolution(const Item* non_null item,
|
||||
const PokemonSpecies* non_null into);
|
||||
static const EvolutionData* non_null CreateItemUseWithGenderEvolution(const Item* non_null item,
|
||||
CreatureLib::Library::Gender gender,
|
||||
const PokemonSpecies* non_null into);
|
||||
static inline const EvolutionData* non_null CreateTradeEvolution(const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::Trade, {}, into);
|
||||
}
|
||||
static const EvolutionData* CreateTradeWithItemEvolution(const Item* item, const PokemonSpecies* into);
|
||||
static const EvolutionData* CreateTradeWithSpeciesEvolution(const PokemonSpecies* traded,
|
||||
const PokemonSpecies* into);
|
||||
static inline const EvolutionData*
|
||||
static const EvolutionData* non_null CreateTradeWithItemEvolution(const Item* non_null item,
|
||||
const PokemonSpecies* non_null into);
|
||||
static const EvolutionData* non_null CreateTradeWithSpeciesEvolution(const PokemonSpecies* non_null traded,
|
||||
const PokemonSpecies* non_null into);
|
||||
static inline const EvolutionData* non_null
|
||||
CreateCustomEvolution(const std::vector<const CreatureLib::Library::EffectParameter*>& data,
|
||||
const PokemonSpecies* into) {
|
||||
const PokemonSpecies* non_null into) {
|
||||
return new EvolutionData(EvolutionMethod::Custom, data, into);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
#define PKMNLIB_EVOLUTIONMETHOD_HPP
|
||||
|
||||
namespace PkmnLib::Library {
|
||||
ENUM(EvolutionMethod, uint8_t, Level, HighFriendship, HighFriendshipTime, KnownMove, LocationBased, TimeBased,
|
||||
HoldsItem, HoldsItemTime, IsGenderAndLevel, EvolutionItemUse, EvolutionItemUseWithGender, Trade,
|
||||
TradeWithHeldItem, TradeWithSpecificPokemon, Custom)
|
||||
ENUM(EvolutionMethod, u8, Level, HighFriendship, HighFriendshipTime, KnownMove, LocationBased, TimeBased, HoldsItem,
|
||||
HoldsItemTime, IsGenderAndLevel, EvolutionItemUse, EvolutionItemUseWithGender, Trade, TradeWithHeldItem,
|
||||
TradeWithSpecificPokemon, Custom)
|
||||
}
|
||||
|
||||
#endif // PKMNLIB_EVOLUTIONMETHOD_HPP
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include "Item.hpp"
|
||||
@@ -4,18 +4,18 @@
|
||||
#include <CreatureLib/Library/Items/Item.hpp>
|
||||
namespace PkmnLib::Library {
|
||||
class Item final : public CreatureLib::Library::Item {
|
||||
uint8_t _flingPower;
|
||||
u8 _flingPower;
|
||||
|
||||
public:
|
||||
Item(const ArbUt::StringView& name, CreatureLib::Library::ItemCategory category,
|
||||
CreatureLib::Library::BattleItemCategory battleCategory, int32_t price,
|
||||
const CreatureLib::Library::SecondaryEffect* effect,
|
||||
const CreatureLib::Library::SecondaryEffect* battleTriggerEffect,
|
||||
const std::unordered_set<uint32_t>& flags, uint8_t flingPower) noexcept
|
||||
const CreatureLib::Library::SecondaryEffect* nullable effect,
|
||||
const CreatureLib::Library::SecondaryEffect* nullable battleTriggerEffect,
|
||||
const std::unordered_set<uint32_t>& flags, u8 flingPower) noexcept
|
||||
: CreatureLib::Library::Item(name, category, battleCategory, price, battleTriggerEffect, effect, flags),
|
||||
_flingPower(flingPower) {}
|
||||
|
||||
inline uint8_t GetFlingPower() const noexcept { return _flingPower; }
|
||||
inline u8 GetFlingPower() const noexcept { return _flingPower; }
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include "ItemLibrary.hpp"
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
namespace PkmnLib::Library {
|
||||
class LibrarySettings final : public CreatureLib::Library::LibrarySettings {
|
||||
uint16_t _shinyRate;
|
||||
u16 _shinyRate;
|
||||
|
||||
public:
|
||||
LibrarySettings(uint8_t maximalLevel, uint8_t maximalMoves, uint16_t shinyRate) noexcept
|
||||
LibrarySettings(u8 maximalLevel, u8 maximalMoves, u16 shinyRate) noexcept
|
||||
: CreatureLib::Library::LibrarySettings(maximalLevel, maximalMoves), _shinyRate(shinyRate) {}
|
||||
|
||||
uint16_t GetShinyRate() const noexcept { return _shinyRate; }
|
||||
u16 GetShinyRate() const noexcept { return _shinyRate; }
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
#include "MoveData.hpp"
|
||||
PkmnLib::Library::MoveData::MoveData(const ArbUt::StringView& name, uint8_t type,
|
||||
PkmnLib::Library::MoveCategory category, uint8_t power, uint8_t accuracy,
|
||||
uint8_t baseUsage, CreatureLib::Library::AttackTarget target, int8_t priority,
|
||||
const CreatureLib::Library::SecondaryEffect* effect,
|
||||
std::unordered_set<uint32_t> flags)
|
||||
: AttackData(name, type, static_cast<CreatureLib::Library::AttackCategory>(category), power, accuracy, baseUsage,
|
||||
target, priority, effect, std::move(flags)) {}
|
||||
|
||||
PkmnLib::Library::MoveCategory PkmnLib::Library::MoveData::GetCategory() const {
|
||||
return static_cast<PkmnLib::Library::MoveCategory>(AttackData::GetCategory());
|
||||
}
|
||||
@@ -8,11 +8,15 @@ namespace PkmnLib::Library {
|
||||
class MoveData final : public CreatureLib::Library::AttackData {
|
||||
private:
|
||||
public:
|
||||
MoveData(const ArbUt::StringView& name, uint8_t type, PkmnLib::Library::MoveCategory category, uint8_t power,
|
||||
uint8_t accuracy, uint8_t baseUsage, CreatureLib::Library::AttackTarget target, int8_t priority,
|
||||
const CreatureLib::Library::SecondaryEffect* effect, std::unordered_set<uint32_t> flags);
|
||||
MoveData(const ArbUt::StringView& name, u8 type, PkmnLib::Library::MoveCategory category, u8 power, u8 accuracy,
|
||||
u8 baseUsage, CreatureLib::Library::AttackTarget target, i8 priority,
|
||||
const CreatureLib::Library::SecondaryEffect* nullable effect, std::unordered_set<u32> flags)
|
||||
: AttackData(name, type, static_cast<CreatureLib::Library::AttackCategory>(category), power, accuracy, baseUsage,
|
||||
target, priority, effect, std::move(flags)) {};
|
||||
|
||||
PkmnLib::Library::MoveCategory GetCategory() const;
|
||||
inline PkmnLib::Library::MoveCategory GetCategory() const {
|
||||
return static_cast<PkmnLib::Library::MoveCategory>(AttackData::GetCategory());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include "MoveLibrary.hpp"
|
||||
@@ -1 +0,0 @@
|
||||
#include "Nature.hpp"
|
||||
@@ -1 +0,0 @@
|
||||
#include "NatureLibrary.hpp"
|
||||
@@ -16,10 +16,11 @@ namespace PkmnLib::Library {
|
||||
public:
|
||||
~PokemonLibrary() override = default;
|
||||
|
||||
PokemonLibrary(PkmnLib::Library::LibrarySettings* settings, SpeciesLibrary* species, MoveLibrary* moves,
|
||||
ItemLibrary* items, CreatureLib::Library::GrowthRateLibrary* growthRates,
|
||||
CreatureLib::Library::TypeLibrary* typeLibrary,
|
||||
CreatureLib::Library::TalentLibrary* talentLibrary, NatureLibrary* natures)
|
||||
PokemonLibrary(PkmnLib::Library::LibrarySettings* non_null settings, SpeciesLibrary* non_null species,
|
||||
MoveLibrary* non_null moves, ItemLibrary* non_null items,
|
||||
CreatureLib::Library::GrowthRateLibrary* non_null growthRates,
|
||||
CreatureLib::Library::TypeLibrary* non_null typeLibrary,
|
||||
CreatureLib::Library::TalentLibrary* non_null talentLibrary, NatureLibrary* non_null natures)
|
||||
: DataLibrary(settings, species, moves, items, growthRates, typeLibrary, talentLibrary), _natures(natures) {
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include "LearnableMoves.hpp"
|
||||
@@ -1,12 +0,0 @@
|
||||
#include "PokemonForme.hpp"
|
||||
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
PkmnLib::Library::PokemonForme::PokemonForme(const ArbUt::StringView& name, float height, float weight,
|
||||
uint32_t baseExperience, const ArbUt::List<uint8_t>& types,
|
||||
StatisticSet<uint16_t> baseStats,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const Talent>>& talents,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const Talent>>& secretTalents,
|
||||
const LearnableMoves* moves, std::unordered_set<uint32_t> flags)
|
||||
: SpeciesVariant(name, height, weight, baseExperience, types, baseStats, talents, secretTalents, moves,
|
||||
std::move(flags)) {}
|
||||
@@ -7,11 +7,13 @@
|
||||
namespace PkmnLib::Library {
|
||||
class PokemonForme final : public CreatureLib::Library::SpeciesVariant {
|
||||
public:
|
||||
PokemonForme(const ArbUt::StringView& name, float height, float weight, uint32_t baseExperience,
|
||||
const ArbUt::List<uint8_t>& types, CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
||||
PokemonForme(const ArbUt::StringView& name, float height, float weight, u32 baseExperience,
|
||||
const ArbUt::List<u8>& types, CreatureLib::Library::StatisticSet<u16> baseStats,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const CreatureLib::Library::Talent>>& talents,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const CreatureLib::Library::Talent>>& secretTalents,
|
||||
const LearnableMoves* moves, std::unordered_set<uint32_t> flags = {});
|
||||
const LearnableMoves* moves, std::unordered_set<u32> flags = {})
|
||||
: SpeciesVariant(name, height, weight, baseExperience, types, baseStats, talents, secretTalents, moves,
|
||||
std::move(flags)){};
|
||||
|
||||
private:
|
||||
public:
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include "PokemonSpecies.hpp"
|
||||
@@ -7,21 +7,21 @@
|
||||
namespace PkmnLib::Library {
|
||||
class PokemonSpecies final : public CreatureLib::Library::CreatureSpecies {
|
||||
private:
|
||||
uint8_t _baseHappiness;
|
||||
u8 _baseHappiness;
|
||||
ArbUt::UniquePtrList<const EvolutionData> _evolutions;
|
||||
ArbUt::List<ArbUt::StringView> _eggGroups;
|
||||
|
||||
public:
|
||||
PokemonSpecies(uint16_t id, const ArbUt::StringView& name, const PokemonForme* defaultForme, float genderRatio,
|
||||
const ArbUt::StringView& growthRate, uint8_t captureRate, uint8_t baseHappiness,
|
||||
PokemonSpecies(u16 id, const ArbUt::StringView& name, const PokemonForme* non_null defaultForme, float genderRatio,
|
||||
const ArbUt::StringView& growthRate, u8 captureRate, u8 baseHappiness,
|
||||
const ArbUt::List<ArbUt::StringView>& eggGroups,
|
||||
std::unordered_set<uint32_t> flags = {}) noexcept
|
||||
std::unordered_set<u32> flags = {}) noexcept
|
||||
: CreatureSpecies(id, name, defaultForme, genderRatio, growthRate, captureRate, flags),
|
||||
_baseHappiness(baseHappiness), _eggGroups(eggGroups) {}
|
||||
|
||||
~PokemonSpecies() override = default;
|
||||
|
||||
inline uint8_t GetBaseHappiness() const { return _baseHappiness; }
|
||||
inline u8 GetBaseHappiness() const { return _baseHappiness; }
|
||||
|
||||
inline ArbUt::BorrowedPtr<const PokemonForme> GetDefaultForme() const {
|
||||
return CreatureSpecies::GetVariant("default"_cnc.GetHash()).As<const PokemonForme>();
|
||||
@@ -41,7 +41,7 @@ namespace PkmnLib::Library {
|
||||
return CreatureSpecies::GetVariant(key).As<const PokemonForme>();
|
||||
}
|
||||
|
||||
inline void AddEvolution(const EvolutionData* data) noexcept { _evolutions.Append(data); }
|
||||
inline void AddEvolution(const EvolutionData* non_null data) noexcept { _evolutions.Append(data); }
|
||||
const ArbUt::UniquePtrList<const EvolutionData>& GetEvolutions() const noexcept { return _evolutions; }
|
||||
|
||||
bool HasEggGroup(const ArbUt::StringView& sv) const noexcept { return _eggGroups.Contains(sv); }
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace PkmnLib::Library {
|
||||
return tryGet->get();
|
||||
}
|
||||
for (const auto& s : _values) {
|
||||
const auto* pkmn = dynamic_cast<const PokemonSpecies*>(s.second.get());
|
||||
const auto* pkmn = dynamic_cast<const PokemonSpecies* nullable>(s.second.get());
|
||||
if (pkmn == nullptr) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define PKMNLIB_TIMEOFDAY_HPP
|
||||
|
||||
namespace PkmnLib::Library {
|
||||
ENUM(TimeOfDay, uint8_t, Night, Morning, Afternoon, Evening)
|
||||
ENUM(TimeOfDay, u8, Night, Morning, Afternoon, Evening)
|
||||
}
|
||||
|
||||
#endif // PKMNLIB_TIMEOFDAY_HPP
|
||||
|
||||
Reference in New Issue
Block a user