diff --git a/Code/Game/GameLogic/Game.h b/Code/Game/GameLogic/Game.h index b8f6d4b3..9c21ec1b 100644 --- a/Code/Game/GameLogic/Game.h +++ b/Code/Game/GameLogic/Game.h @@ -58,10 +58,10 @@ namespace GameLogic Oyster::Math::Float3 GetScale() override; Oyster::Math::Float4x4 GetOrientation() override; int GetID() const override; - ObjectSpecialType GetObjectType() const override; + ObjectSpecialType GetObjectType() const override; int getNrOfDynamicObj()const override; IObjectData* GetObjectAt(int ID) const override; - Utility::DynamicMemory::DynamicArray GetAllDynamicObjects() const override; + void GetAllDynamicObjects(Utility::DynamicMemory::DynamicArray& mem) const override; Level *level; }; diff --git a/Code/Game/GameLogic/GameAPI.h b/Code/Game/GameLogic/GameAPI.h index 2a24c99e..3325115f 100644 --- a/Code/Game/GameLogic/GameAPI.h +++ b/Code/Game/GameLogic/GameAPI.h @@ -108,7 +108,7 @@ namespace GameLogic public: virtual int getNrOfDynamicObj()const = 0; virtual IObjectData* GetObjectAt(int ID) const = 0; - virtual Utility::DynamicMemory::DynamicArray GetAllDynamicObjects() const = 0; + virtual void GetAllDynamicObjects(Utility::DynamicMemory::DynamicArray& destMem) const = 0; }; class DANBIAS_GAMELOGIC_DLL GameAPI diff --git a/Code/Game/GameLogic/Game_LevelData.cpp b/Code/Game/GameLogic/Game_LevelData.cpp index 4529e787..80220d5f 100644 --- a/Code/Game/GameLogic/Game_LevelData.cpp +++ b/Code/Game/GameLogic/Game_LevelData.cpp @@ -52,14 +52,10 @@ IObjectData* Game::LevelData::GetObjectAt(int ID) const return this->level->GetObj(ID); } -Utility::DynamicMemory::DynamicArray Game::LevelData::GetAllDynamicObjects() const +void Game::LevelData::GetAllDynamicObjects(Utility::DynamicMemory::DynamicArray& mem) const { - Utility::DynamicMemory::DynamicArray objects(level->dynamicObjects.Size()); - for(int i = 0; i < level->dynamicObjects.Size(); i++) { - objects[i] = level->dynamicObjects[i]; + mem[i] = level->dynamicObjects[i]; } - - return objects; } \ No newline at end of file