From 3429f1647cf307d760db6f1e3d01a7ba5e57ec48 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sat, 4 Apr 2020 13:42:06 +0200 Subject: [PATCH] Made C Interface for BattleLibrary constructor try. --- CInterface/Battling/BattleLibrary.cpp | 14 +++++++------- src/Battling/Library/BattleLibrary.cpp | 9 ++++++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CInterface/Battling/BattleLibrary.cpp b/CInterface/Battling/BattleLibrary.cpp index 3967b3a..076d84c 100644 --- a/CInterface/Battling/BattleLibrary.cpp +++ b/CInterface/Battling/BattleLibrary.cpp @@ -2,13 +2,13 @@ #include "../Core.hpp" using namespace CreatureLib::Battling; -export const BattleLibrary* CreatureLib_BattleLibrary_Construct(const CreatureLib::Library::DataLibrary* staticLib, - BattleStatCalculator* statCalculator, - DamageLibrary* damageLibrary, - ExperienceLibrary* experienceLibrary, - ScriptResolver* scriptResolver, - MiscLibrary* miscLibrary) { - return new BattleLibrary(staticLib, statCalculator, damageLibrary, experienceLibrary, scriptResolver, miscLibrary); +export uint8_t CreatureLib_BattleLibrary_Construct(const BattleLibrary*& out, + const CreatureLib::Library::DataLibrary* staticLib, + BattleStatCalculator* statCalculator, DamageLibrary* damageLibrary, + ExperienceLibrary* experienceLibrary, ScriptResolver* scriptResolver, + MiscLibrary* miscLibrary) { + Try(out = new BattleLibrary(staticLib, statCalculator, damageLibrary, experienceLibrary, scriptResolver, + miscLibrary);) } export void CreatureLib_BattleLibrary_Destruct(const BattleLibrary* p) { delete p; } diff --git a/src/Battling/Library/BattleLibrary.cpp b/src/Battling/Library/BattleLibrary.cpp index bcd14b6..7ee8db3 100644 --- a/src/Battling/Library/BattleLibrary.cpp +++ b/src/Battling/Library/BattleLibrary.cpp @@ -6,7 +6,14 @@ BattleLibrary::BattleLibrary(const CreatureLib::Library::DataLibrary* staticLib, DamageLibrary* damageLibrary, ExperienceLibrary* experienceLibrary, ScriptResolver* scriptResolver, MiscLibrary* miscLibrary) : _staticLib(staticLib), _statCalculator(statCalculator), _damageLibrary(damageLibrary), - _experienceLibrary(experienceLibrary), _scriptResolver(scriptResolver), _miscLibrary(miscLibrary) {} + _experienceLibrary(experienceLibrary), _scriptResolver(scriptResolver), _miscLibrary(miscLibrary) { + AssertNotNull(_staticLib); + AssertNotNull(_statCalculator); + AssertNotNull(_damageLibrary); + AssertNotNull(_experienceLibrary); + AssertNotNull(_scriptResolver); + AssertNotNull(_miscLibrary); +} BattleLibrary::~BattleLibrary() { delete _staticLib;