Skip to content

Commit d378bf9

Browse files
committed
Extract enemy starter movement values to dedicated struct
1 parent e241f8a commit d378bf9

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

src/enemy.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
#include <enemy.hpp>
22
#include <algorithm>
3+
#include "enemy_params.hpp"
34
#include "glm/ext/vector_float2.hpp"
45
#include "glm/geometric.hpp"
56
#include "kvf/color.hpp"
67
#include "util/random.hpp"
78

89
namespace miracle {
9-
Enemy::Enemy(gsl::not_null<le::ServiceLocator const*> services, glm::vec2 target_pos, float move_speed)
10-
: m_services(services), m_target_pos(target_pos), m_move_speed(move_speed), m_diameter(util::random_range(40.0f, 60.0f)) {
10+
Enemy::Enemy(gsl::not_null<le::ServiceLocator const*> services, EnemyParams const& params)
11+
: m_services(services), m_target_pos(params.target_pos), m_move_speed(params.move_speed), m_diameter(util::random_range(40.0f, 60.0f)) {
1112
m_sprite.create(m_diameter, kvf::red_v);
1213
auto const framebuffer_size = m_services->get<le::Context>().framebuffer_size();
1314
auto const radius = static_cast<float>(std::max(framebuffer_size.x, framebuffer_size.y)) / 2.0f;

src/enemy.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
#include <le2d/renderer.hpp>
88
#include <le2d/service_locator.hpp>
99
#include <optional>
10+
#include "enemy_params.hpp"
1011
#include "glm/ext/vector_float2.hpp"
1112
#include "le2d/texture.hpp"
1213

1314
namespace miracle {
1415
class Enemy {
1516
public:
16-
explicit Enemy(gsl::not_null<le::ServiceLocator const*> services, glm::vec2 target_pos, float move_speed);
17+
explicit Enemy(gsl::not_null<le::ServiceLocator const*> services, EnemyParams const& params);
1718

1819
void render(le::Renderer& renderer) const;
1920
void translate(kvf::Seconds dt);

src/enemy_params.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#pragma once
2+
#include "glm/ext/vector_float2.hpp"
3+
4+
struct EnemyParams {
5+
glm::vec2 target_pos{};
6+
float move_speed{};
7+
};

src/game.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#include <game.hpp>
22
#include <glm/gtx/norm.hpp>
33
#include <le2d/context.hpp>
4-
#include <algorithm>
54
#include <cstddef>
65
#include <vector>
76
#include "enemy.hpp"
7+
#include "enemy_params.hpp"
88
#include "kvf/time.hpp"
99
#include "lighhouse.hpp"
1010
#include "util/random.hpp"
@@ -48,7 +48,9 @@ void Game::spawn_wave() {
4848
std::vector<Enemy> new_wave;
4949
std::size_t const wave_size = m_wave_count * 3;
5050
new_wave.reserve(wave_size);
51-
for (std::size_t i = 0; i < wave_size; ++i) { new_wave.emplace_back(m_services, glm::vec2{0.0f, 0.0f}, util::random_range(35.0f, 65.0f)); }
51+
for (std::size_t i = 0; i < wave_size; ++i) {
52+
new_wave.emplace_back(m_services, EnemyParams{.target_pos = glm::vec2{0.0f, 0.0f}, .move_speed = util::random_range(35.0f, 65.0f)});
53+
}
5254
m_enemies.insert(m_enemies.end(), std::make_move_iterator(new_wave.begin()), std::make_move_iterator(new_wave.end()));
5355
}
5456
} // namespace miracle

0 commit comments

Comments
 (0)