C Interface for new event hooks.

Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
Deukhoofd 2020-08-07 11:51:43 +02:00
parent 5aa04a4b15
commit 665227a033
Signed by: Deukhoofd
GPG Key ID: F63E044490819F6F
2 changed files with 20 additions and 4 deletions

View File

@ -2,7 +2,7 @@
#include "../Core.hpp"
using namespace CreatureLib::Battling;
export void CreatureLib_EventData_Destruct(const EventData* p) { delete p; }
DESTRUCTOR(EventData);
SIMPLE_GET_FUNC(EventData, GetKind, EventDataKind);
@ -10,15 +10,29 @@ BORROWED_GET_FUNC(DamageEvent, GetCreature, Creature*);
SIMPLE_GET_FUNC(DamageEvent, GetDamageSource, DamageSource);
SIMPLE_GET_FUNC(DamageEvent, GetOriginalHealth, uint32_t);
SIMPLE_GET_FUNC(DamageEvent, GetNewHealth, uint32_t);
export void CreatureLib_DamageEvent_Destruct(const DamageEvent* p) { delete p; }
DESTRUCTOR(DamageEvent);
BORROWED_GET_FUNC(HealEvent, GetCreature, Creature*);
SIMPLE_GET_FUNC(HealEvent, GetOriginalHealth, uint32_t);
SIMPLE_GET_FUNC(HealEvent, GetNewHealth, uint32_t);
export void CreatureLib_HealEvent_Destruct(const HealEvent* p) { delete p; }
DESTRUCTOR(HealEvent);
BORROWED_GET_FUNC(FaintEvent, GetCreature, Creature*);
export void CreatureLib_FaintEvent_Destruct(const FaintEvent* p) { delete p; }
DESTRUCTOR(FaintEvent);
BORROWED_GET_FUNC(SwitchEvent, GetNewCreature, Creature*);
export uint8_t CreatureLib_SwitchEvent_GetSide(const SwitchEvent* p) { return p->GetIndex().GetSideIndex(); }
export uint8_t CreatureLib_SwitchEvent_GetIndex(const SwitchEvent* p) { return p->GetIndex().GetCreatureIndex(); }
DESTRUCTOR(SwitchEvent);
DESTRUCTOR(TurnStartEvent);
DESTRUCTOR(TurnEndEvent);
BORROWED_GET_FUNC(ExperienceGainEvent, GetCreature, Creature*);
SIMPLE_GET_FUNC(ExperienceGainEvent, GetPreviousExperience, uint32_t);
SIMPLE_GET_FUNC(ExperienceGainEvent, GetNewExperience, uint32_t);
DESTRUCTOR(ExperienceGainEvent);
export const char* CreatureLib_DisplayTextEvent_GetText(const DisplayTextEvent* p) { return p->GetText().c_str(); }
export void CreatureLib_DisplayTextEvent_Destruct(const DisplayTextEvent* p) { delete p; }

View File

@ -37,5 +37,7 @@ public:
export returnType CreatureLib_##type##_##name(const type* p) { return p->name().GetRaw(); }
#define SMART_GET_FUNC(type, name, returnType) \
export returnType CreatureLib_##type##_##name(const type* p) { return p->name().get(); }
#define DESTRUCTOR(type) \
export void CreatureLib_##type##_Destruct(const type* p) { delete p; }
#endif // CREATURELIB_CORE_HPP