#include "../../src/Battling/Models/CreatureParty.hpp" #include "../Core.hpp" using namespace CreatureLib::Battling; export_func CreatureParty* CreatureLib_CreatureParty_ConstructWithSize(size_t size) { return new CreatureParty(size); } export_func CreatureParty* CreatureLib_CreatureParty_ConstructFromArray(Creature* creatures[], size_t size) { return new CreatureParty(ArbUt::List(creatures, creatures + size)); } export_func void CreatureLib_CreatureParty_Destruct(const CreatureParty* p) { delete p; } export_func u8 CreatureLib_CreatureParty_GetAtIndex(Creature*& out, const CreatureParty* p, size_t index) { Try(out = p->GetAtIndex(index).GetValue();) } export_func u8 CreatureLib_CreatureParty_Switch(CreatureParty* p, size_t a, size_t b) { Try(p->Switch(a, b);) } export_func u8 CreatureLib_CreatureParty_PackParty(CreatureParty* p) { Try(p->PackParty();) } export_func u8 CreatureLib_CreatureParty_SwapInto(Creature*& out, CreatureParty* p, size_t index, Creature* creature) { Try(out = p->SwapInto(index, creature);) } export_func bool CreatureLib_CreatureParty_HasAvailableCreatures(const CreatureParty* p) { return p->HasAvailableCreatures(); } export_func size_t CreatureLib_CreatureParty_GetLength(const CreatureParty* p) { return p->GetLength(); } export_func Creature* const* CreatureLib_CreatureParty_GetParty(CreatureParty* p) { return p->GetParty().RawData(); }