Skip to content

Commit a980b2e

Browse files
committed
Special constructor added to Algorithms class and general code editing.
1 parent 2f356b9 commit a980b2e

File tree

13 files changed

+60
-21
lines changed

13 files changed

+60
-21
lines changed

engine/main/objects/creation/scene/generators/reduction/CustomReduction.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
std::shared_ptr<Material::Algorithms>
88
Creation::RD::loadAlgorithms(const IniUtil::Analyzer::IniBlock &data, Creation::Pools::SourcePool &pool) {
9-
//collision
10-
std::pair<float, float> collisionParams(std::stof(data.at("COLLISION_ANALYSIS_STEP")),
11-
std::stof(data.at("COLLISION_ANALYSIS_STEP")));
12-
return std::make_shared<Material::Algorithms>(pool.getAlgpool()->loadCollision(collisionParams));
9+
return std::make_shared<Material::Algorithms>(pool.getAlgPool()->loadCollision(
10+
std::make_pair<float, float>(std::stof(data.at("COLLISION_ANALYSIS_STEP")),
11+
std::stof(data.at("COLLISION_ANALYSIS_STEP")))
12+
));
1313
}
1414

1515
std::shared_ptr<sf::Music>

engine/main/objects/creation/scene/pools/AlgorithmsPool.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace Creation {
2020
class AlgorithmsPool {
2121
public:
2222
/**
23-
* @brief Method loads collsion.
23+
* @brief Method loads collision.
2424
* @return Collision.
2525
*/
2626
std::shared_ptr<Material::Collision> loadCollision(const std::pair<float, float> &params) noexcept;

engine/main/objects/creation/scene/pools/SourcePool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ void Creation::Pools::SourcePool::setVariable(const std::string &name, const std
4646
m_variables[name] = value;
4747
}
4848

49-
Creation::Pools::AlgorithmsPool *Creation::Pools::SourcePool::getAlgpool() noexcept {
49+
Creation::Pools::AlgorithmsPool *Creation::Pools::SourcePool::getAlgPool() noexcept {
5050
return &m_algpool;
5151
}
5252

engine/main/objects/creation/scene/pools/SourcePool.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ namespace Creation {
6969
* @brief Method returns algorithms pool.
7070
* @return Algorithms pool.
7171
*/
72-
Creation::Pools::AlgorithmsPool *getAlgpool() noexcept;
72+
Creation::Pools::AlgorithmsPool *getAlgPool() noexcept;
7373

7474
/**
7575
* @brief Method returns data manager.

engine/main/objects/material/common/algorithms/Algorithms.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
#include "Algorithms.h"
66

7-
Material::Algorithms::Algorithms(const std::shared_ptr<Collision> &collision) : m_collision(collision) {}
7+
Material::Algorithms::Algorithms(const Material::AlgorithmsParams &params)
8+
: m_collision(std::make_shared<Material::Collision>(params.analysisStepX, params.analysisStepY)) {}
9+
10+
Material::Algorithms::Algorithms(const std::shared_ptr<Material::Collision> &collision) : m_collision(collision) {}
811

912
const Material::Collision &Material::Algorithms::getCollision() const {
1013
return *m_collision;

engine/main/objects/material/common/algorithms/Algorithms.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#ifndef FLASH_ALGORITHMS_H
66
#define FLASH_ALGORITHMS_H
77

8+
#include "params/AlgorithmsParams.h"
89
#include "../collision/Collision.h"
910

1011
namespace Material {
@@ -15,8 +16,18 @@ namespace Material {
1516
*
1617
* This class defines Algorithms realization.
1718
*/
18-
class Algorithms {
19+
class Algorithms final {
1920
public:
21+
/**
22+
* @brief Special constructor.
23+
* @param params General algorithms params.
24+
*/
25+
explicit Algorithms(const AlgorithmsParams &params);
26+
27+
/**
28+
* @brief Default constructor.
29+
* @param collision Collision algorithms facade.
30+
*/
2031
explicit Algorithms(const std::shared_ptr<Material::Collision> &collision);
2132

2233
/**
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// Created by roman on 09.12.2020.
3+
//
4+
5+
#ifndef PRIMARYWINDOW_H_ALGORITHMSPARAMS_H
6+
#define PRIMARYWINDOW_H_ALGORITHMSPARAMS_H
7+
8+
namespace Material {
9+
10+
/**
11+
* @brief Struct contains all algorithms numeric params.
12+
*/
13+
struct AlgorithmsParams {
14+
explicit AlgorithmsParams(float analysisStepX, float analysisStepY)
15+
: analysisStepX(analysisStepX), analysisStepY(analysisStepY) {}
16+
17+
/**
18+
* @brief Collision "X" analysis step.
19+
*/
20+
float analysisStepX;
21+
22+
/**
23+
* @brief Collision "Y" analysis step.
24+
*/
25+
float analysisStepY;
26+
};
27+
}
28+
29+
#endif //PRIMARYWINDOW_H_ALGORITHMSPARAMS_H

engine/main/objects/material/common/collision/Collision.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@
88
#include "moving-collision/MovingCollision.h"
99
#include "static-collision/StaticCollision.h"
1010

11-
namespace Unite {
12-
class Unifier;
13-
}
14-
1511
namespace Material {
1612

1713
/**
@@ -36,6 +32,4 @@ namespace Material {
3632
};
3733
}
3834

39-
#include "../../../unifier/common/Unifier.h"
40-
4135
#endif //FLASH_COLLISION_H

engine/main/objects/material/mobs/common/base/Mob.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ namespace Mobs {
2424
public Possibilities::Peculiar<MobProperties> {
2525
public:
2626
/**
27-
* @brief Main mob constructor.
27+
* @brief Default mob constructor.
2828
* @param material_properties Material properties.
2929
* @param properties Mob properties object.
3030
* @param area Mob physical area.

engine/main/objects/material/mobs/custom/slime/splitter/SlimeSplitter.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,8 @@ std::shared_ptr<Components::ISpriteBox> Mobs::SlimeSplitter::splitSlimeSprite(Mo
4141
std::shared_ptr<Material::Algorithms> Mobs::SlimeSplitter::splitSlimeAlgorithms(Mobs::Slime &slime) const noexcept {
4242
std::pair<float, float> step = slime.getAlgorithms()->getCollision().getMovingCollision().getAnalysisStep();
4343
float stepX = step.first / m_splittingCoefficient;
44-
if (stepX < 1) stepX = 1;
4544
float stepY = step.second / m_splittingCoefficient;
46-
if (stepY < 1) stepY = 1;
47-
return std::make_shared<Material::Algorithms>(std::make_shared<Material::Collision>(stepX, stepY));
45+
return std::make_shared<Material::Algorithms>(Material::AlgorithmsParams((stepX < 1) ? 1 : stepX, (stepY < 1) ? 1 : stepY));
4846
}
4947

5048
Mobs::SlimeProperties Mobs::SlimeSplitter::splitSlimeProperties(const Mobs::SlimeProperties &properties) const noexcept {

0 commit comments

Comments
 (0)