More aggressive sanitization. Loads of integer definition fixes
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-03-25 19:08:42 +01:00
parent f6625a0bdf
commit 1b14f31bd7
68 changed files with 371 additions and 352 deletions

View File

@@ -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);
}

View File

@@ -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

View File

@@ -1 +0,0 @@
#include "Item.hpp"

View File

@@ -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; }
};
}

View File

@@ -1 +0,0 @@
#include "ItemLibrary.hpp"

View File

@@ -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; }
};
}

View File

@@ -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());
}

View File

@@ -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());
}
};
}

View File

@@ -1 +0,0 @@
#include "MoveLibrary.hpp"

View File

@@ -1 +0,0 @@
#include "Nature.hpp"

View File

@@ -1 +0,0 @@
#include "NatureLibrary.hpp"

View File

@@ -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) {
}

View File

@@ -1 +0,0 @@
#include "LearnableMoves.hpp"

View File

@@ -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)) {}

View File

@@ -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:

View File

@@ -1 +0,0 @@
#include "PokemonSpecies.hpp"

View File

@@ -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); }

View File

@@ -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;
}

View File

@@ -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