Files
CreatureLib/src/Battling/EventHooks/Events/ChangeSpeciesEvent.hpp
Deukhoofd de8b5de7b4
All checks were successful
continuous-integration/drone/push Build is passing
Mark several classes as final for devirtualization performance benefits.
Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
2020-10-15 18:21:50 +02:00

23 lines
1010 B
C++

#ifndef CREATURELIB_CHANGESPECIESEVENT_HPP
#define CREATURELIB_CHANGESPECIESEVENT_HPP
#include "EventData.hpp"
namespace CreatureLib::Battling {
class ChangeSpeciesEvent final : public EventData {
const ArbUt::BorrowedPtr<Creature> _creature;
const ArbUt::BorrowedPtr<const CreatureLib::Library::CreatureSpecies> _newSpecies;
public:
ChangeSpeciesEvent(const ArbUt::BorrowedPtr<Creature>& creature,
const ArbUt::BorrowedPtr<const CreatureLib::Library::CreatureSpecies>& species) noexcept
: _creature(creature), _newSpecies(species) {}
EventDataKind GetKind() const noexcept override { return EventDataKind ::ChangeSpecies; }
const ArbUt::BorrowedPtr<Creature>& GetCreature() const noexcept { return _creature; }
const ArbUt::BorrowedPtr<const CreatureLib::Library::CreatureSpecies>& GetNewSpecies() const noexcept {
return _newSpecies;
}
};
}
#endif // CREATURELIB_CHANGESPECIESEVENT_HPP