From 5f5bf3ac7a85f8cde512ec44e3d55b93fb4354ba Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sun, 3 Nov 2024 12:43:18 +0100 Subject: remove more pointers from frontend --- frontend/GameData.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'frontend/GameData.cpp') diff --git a/frontend/GameData.cpp b/frontend/GameData.cpp index 635073a..f281737 100644 --- a/frontend/GameData.cpp +++ b/frontend/GameData.cpp @@ -19,7 +19,7 @@ GameData & GameData::get_instance() { return instance; } -Enemy * GameData::create_enemy(const string & name) const { +unique_ptr GameData::create_enemy(const string & name) const { static DBStatement query = this->db.prepare(R"( select naam, @@ -43,18 +43,18 @@ Enemy * GameData::create_enemy(const string & name) const { auto enemy = unique_ptr{ EnemyFactory::create_enemy(row.col(0), row.col(1)) }; int object_count = RNG::get().rand_int(Range { row.col(2), row.col(3) }); for (const string & name : this->random_objects(object_count)) - enemy->add_hidden_object(this->create_object(name)); + enemy->add_hidden_object(this->create_object(name).release()); enemy->set_health(row.col(4)); enemy->set_attack(static_cast(row.col(5)) / 100); enemy->set_damage({ row.col(6), row.col(7) }); - return enemy.release(); + return enemy; } catch (Exception & e) { printf("Fout bij aanmaken van vijand: %s\n", e.what()); - return EnemyFactory::create_enemy(name.c_str()); + return unique_ptr{ EnemyFactory::create_enemy(name.c_str()) }; } } -Object * GameData::create_object(const string & name) const { +unique_ptr GameData::create_object(const string & name) const { static DBStatement query = this->db.prepare(R"( select omschrijving, @@ -72,19 +72,19 @@ Object * GameData::create_object(const string & name) const { try { auto row = query.row(); - return ObjectFactory::create_object({ + return unique_ptr(ObjectFactory::create_object({ .name = name.c_str(), .description = row.col(0, nullptr), .type = row.col(1, nullptr), .value = { row.col(2), row.col(3) }, .protection = row.col(4), - }); + })); } catch (Exception & e) { - return ObjectFactory::create_object(name.c_str()); + return unique_ptr{ ObjectFactory::create_object(name.c_str()) }; } } -Location * GameData::create_location(const string & name) const{ +unique_ptr GameData::create_location(const string & name) const{ static DBStatement query = this->db.prepare(R"( select naam, @@ -99,9 +99,9 @@ Location * GameData::create_location(const string & name) const{ try { auto row = query.row(); - return LocationFactory::create_location(row.col(0), row.col(1)); + return unique_ptr{ LocationFactory::create_location(row.col(0), row.col(1)) }; } catch (...) { - return LocationFactory::create_location(name.c_str()); + return unique_ptr{ LocationFactory::create_location(name.c_str()) }; } } -- cgit v1.2.3