diff --git a/CInterface/Battling/Battle.cpp b/CInterface/Battling/Battle.cpp index be28c42..ca4128e 100644 --- a/CInterface/Battling/Battle.cpp +++ b/CInterface/Battling/Battle.cpp @@ -84,7 +84,7 @@ export bool CreatureLib_Battle_HasVolatileScript(Battle* p, const char* key) { export uint8_t CreatureLib_Battle_RegisterEventListener(Battle* p, void (*func)(const EventData*)) { Try(p->RegisterEventListener(func);) } -export const HistoryHolder* CreatureLib_Battle_GetHistory(Battle* p) { return &p->GetHistory(); } +export const HistoryHolder* CreatureLib_Battle_GetHistory(Battle* p) { return p->GetHistory(); } export uint8_t CreatureLib_Battle_EndBattle(Battle* p) { Try(p->EndBattle()) } export uint8_t CreatureLib_Battle_ClearBattle(Battle* p) { Try(p->ClearBattle()) } diff --git a/src/Battling/Models/Battle.hpp b/src/Battling/Models/Battle.hpp index 70ec42b..eed2aa8 100644 --- a/src/Battling/Models/Battle.hpp +++ b/src/Battling/Models/Battle.hpp @@ -26,7 +26,7 @@ namespace CreatureLib::Battling { bool _hasEnded = false; BattleResult _battleResult = BattleResult::Empty(); EventHook _eventHook; - HistoryHolder _historyHolder; + HistoryHolder* _historyHolder = new HistoryHolder(); uint32_t _currentTurn = 0; @@ -112,10 +112,10 @@ namespace CreatureLib::Battling { const EventHook& GetEventHook() const noexcept { return _eventHook; } template void RegisterHistoryElement(parameters... args) { - try_creature(this->_historyHolder.Register(this->GetCurrentTurn(), args...); + try_creature(this->_historyHolder->Register(this->GetCurrentTurn(), args...); , "Exception occurred during history element registration."); } - const HistoryHolder& GetHistory() const noexcept { return _historyHolder; } + const HistoryHolder* GetHistory() const noexcept { return _historyHolder; } long GetLastTurnTimeMicroseconds() const noexcept { return _lastTurnTime; }