Rework for C Interfaces to handle exceptions a bit better.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-03-25 19:07:36 +01:00
parent 27288563cd
commit 7ce3e6940d
53 changed files with 7526 additions and 8340 deletions

View File

@@ -10,7 +10,7 @@ namespace CreatureLib::Battling {
class EventData {
public:
virtual ~EventData() = default;
virtual EventDataKind GetKind() const = 0;
virtual EventDataKind GetKind() const noexcept = 0;
};
class DamageEvent : public EventData {
@@ -20,13 +20,13 @@ namespace CreatureLib::Battling {
uint32_t _newHealth;
public:
DamageEvent(Creature* c, DamageSource s, uint32_t oHealth, uint32_t newHealth)
DamageEvent(Creature* c, DamageSource s, uint32_t oHealth, uint32_t newHealth) noexcept
: _creature(c), _damageSource(s), _originalHealth(oHealth), _newHealth(newHealth) {}
EventDataKind GetKind() const override { return EventDataKind ::Damage; }
Creature* GetCreature() const { return _creature; }
DamageSource GetDamageSource() const { return _damageSource; }
uint32_t GetOriginalHealth() const { return _originalHealth; }
uint32_t GetNewHealth() const { return _newHealth; }
EventDataKind GetKind() const noexcept override { return EventDataKind ::Damage; }
Creature* GetCreature() const noexcept { return _creature; }
DamageSource GetDamageSource() const noexcept { return _damageSource; }
uint32_t GetOriginalHealth() const noexcept { return _originalHealth; }
uint32_t GetNewHealth() const noexcept { return _newHealth; }
};
class HealEvent : public EventData {
@@ -35,30 +35,30 @@ namespace CreatureLib::Battling {
uint32_t _newHealth;
public:
HealEvent(Creature* c, uint32_t oHealth, uint32_t newHealth)
HealEvent(Creature* c, uint32_t oHealth, uint32_t newHealth) noexcept
: _creature(c), _originalHealth(oHealth), _newHealth(newHealth) {}
EventDataKind GetKind() const override { return EventDataKind ::Heal; }
Creature* GetCreature() const { return _creature; }
uint32_t GetOriginalHealth() const { return _originalHealth; }
uint32_t GetNewHealth() const { return _newHealth; }
EventDataKind GetKind() const noexcept override { return EventDataKind ::Heal; }
Creature* GetCreature() const noexcept { return _creature; }
uint32_t GetOriginalHealth() const noexcept { return _originalHealth; }
uint32_t GetNewHealth() const noexcept { return _newHealth; }
};
class FaintEvent : public EventData {
Creature* _creature;
public:
FaintEvent(Creature* c) : _creature(c) {}
EventDataKind GetKind() const override { return EventDataKind ::Faint; }
Creature* GetCreature() const { return _creature; }
FaintEvent(Creature* c) noexcept : _creature(c) {}
EventDataKind GetKind() const noexcept override { return EventDataKind ::Faint; }
Creature* GetCreature() const noexcept { return _creature; }
};
class DisplayTextEvent : public EventData {
const std::string _text;
public:
DisplayTextEvent(const std::string& text) : _text(text) {}
EventDataKind GetKind() const override { return EventDataKind ::DisplayText; }
const std::string& GetText() const { return _text; }
DisplayTextEvent(const std::string& text) noexcept : _text(text) {}
EventDataKind GetKind() const noexcept override { return EventDataKind ::DisplayText; }
const std::string& GetText() const noexcept { return _text; }
};
}