Skip to content

Commit

Permalink
added delay to character selection to solve issues with zero-millisec…
Browse files Browse the repository at this point in the history
…ond execution time; minor renaming
  • Loading branch information
Riborok committed Jan 30, 2024
1 parent 85475c6 commit c71a8a5
Show file tree
Hide file tree
Showing 69 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions coursework/include/additionally/Initialization.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ using ElementInitializationList = std::initializer_list<ElementInitializationInf

#ifndef NDEBUG
template <typename T>
bool checkUniqueElementTypes(const ElementInitializationList<T> &init_list) {
bool checkUniqueElementTypes(const ElementInitializationList<T> &list) {
bool used[ELEMENT_TYPES_COUNT] = {false};

for (const auto& curr_info : init_list) {
for (const auto& curr_info : list) {
const size_t index = toSizeT(curr_info.element_type);
if (used[index])
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include "../game handlers/game loop/GameLoopState.hpp"

class ChooseCharacterController final {
static constexpr size_t WAIT_DELAY = 12;
static constexpr float BUTTON_SPACING = 80.0f;
static constexpr float BUTTON_X_INDENT = 20;
static constexpr float Y_START_FACTOR = 2.7f;
Expand Down
4 changes: 2 additions & 2 deletions coursework/include/geometry/collision/CollisionTable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ class CollisionTable final {
private:
static constexpr size_t COUNT = ELEMENT_TYPES_COUNT;
typedef std::array<const AvailableCollisions*, COUNT> AvailableCollisionsTable;
using InitList = ElementInitializationList<AvailableCollisions*>;
using ElementCollisionInitList = ElementInitializationList<AvailableCollisions*>;

AvailableCollisions _ray_collisions;
AvailableCollisionsTable _table;
public:
CollisionTable(AvailableCollisions &&ray_collisions, const InitList &init_list);
CollisionTable(AvailableCollisions &&ray_collisions, const ElementCollisionInitList &list);

[[nodiscard]] const AvailableCollisions* operator[](const ElementType index) const;
[[nodiscard]] const AvailableCollisions& getRayCollisions() const;
Expand Down
8 changes: 4 additions & 4 deletions coursework/include/sprite/SpriteInfos.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,25 @@ class SpriteInfos final {
typedef std::array<AbstractInfoVector, Count> AbstractInfos;
typedef std::array<std::unordered_map<size_t, InfoVector>, Count> Infos;

struct AbstractTextureLoadInfo final {
struct AbstractInfoTextureLoader final {
static constexpr int DEFAULT_RANGE_VALUE = 0;
AbstractInfoVector abstract_info_vector;
sf::Vector2i texture_load_range;

// ReSharper disable once CppNonExplicitConvertingConstructor
AbstractTextureLoadInfo(AbstractInfoVector&& info, const sf::Vector2i &texture_load_range
AbstractInfoTextureLoader(AbstractInfoVector&& info, const sf::Vector2i &texture_load_range
= {DEFAULT_RANGE_VALUE, DEFAULT_RANGE_VALUE}):
abstract_info_vector(std::move(info)), texture_load_range(texture_load_range){}
};
using ElementAbstractTextureLoadInfoList = ElementInitializationList<AbstractTextureLoadInfo>;
using AbstractInfoTextureLoadInitList = ElementInitializationList<AbstractInfoTextureLoader>;

const InfoVector& addInfoFromAbstract(const size_t index, const size_t num);
void handleTextureLoad(const size_t index, const sf::Vector2i &texture_load_range);

AbstractInfos _abstract_infos;
Infos _infos;
public:
SpriteInfos(const ElementAbstractTextureLoadInfoList &list);
SpriteInfos(const AbstractInfoTextureLoadInitList &list);

[[nodiscard]] const InfoVector& getInfo(const ElementType element_type, const size_t num);
void addInfoFromAbstract(const ElementType element_type, const size_t num);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,5 +116,6 @@ void ChooseCharacterController::start(GameState& game_state) {
if (_game_loop_state.is_active)
draw(_game_loop_state.clock.restart().asMilliseconds());
handleEvents();
sf::sleep(sf::milliseconds(WAIT_DELAY));
}
}
8 changes: 4 additions & 4 deletions coursework/src/geometry/collision/CollisionTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
#include <cassert>
#include "../../../include/geometry/collision/CollisionTable.hpp"

CollisionTable::CollisionTable(AvailableCollisions &&ray_collisions, const InitList &init_list) {
assert(checkUniqueElementTypes(init_list)
CollisionTable::CollisionTable(AvailableCollisions &&ray_collisions, const ElementCollisionInitList &list) {
assert(checkUniqueElementTypes(list)
&& "Error in CollisionTable constructor: Duplicate ElementType found");
assert(init_list.size() <= COUNT
assert(list.size() <= COUNT
&& "Error in CollisionTable constructor: List size should be less than or equal to ELEMENT_TYPES_COUNT");

_ray_collisions = std::move(ray_collisions);

std::fill(_table.begin(), _table.end(), nullptr);
for (const auto& [element_type, set_element_types] : init_list) {
for (const auto& [element_type, set_element_types] : list) {
assert(toSizeT(element_type) < COUNT && "Error in CollisionTable constructor: Index out of bounds");
_table[toSizeT(element_type)] = set_element_types;
}
Expand Down
4 changes: 1 addition & 3 deletions coursework/src/gui/UIController/LoadingScreen.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
// ReSharper disable CppIncompleteSwitchStatement CppDefaultCaseNotHandledInSwitchStatement CppClangTidyClangDiagnosticSwitch CppTooWideScopeInitStatement CppTooWideScope
#include <stdexcept>
#include <chrono>
#include <thread>
#include "../../../include/gui/UIController/LoadingScreen.hpp"
#include "../../../include/additionally/AdditionalFunc.hpp"
#include "../../../include/gui/ReservedKeys.hpp"
Expand Down Expand Up @@ -99,7 +97,7 @@ void LoadingScreen::end() {
static constexpr int MAX_ATTEMPTS = 42;
int attempts = 0;
while (!_continue_screen) {
std::this_thread::sleep_for(std::chrono::milliseconds(WAIT_DELAY));
sf::sleep(sf::milliseconds(WAIT_DELAY));
#ifndef NDEBUG
if (++attempts >= MAX_ATTEMPTS)
throw std::runtime_error("Exceeded maximum attempts in LoadingScreen::end()");
Expand Down
2 changes: 1 addition & 1 deletion coursework/src/sprite/SpriteInfos.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ void SpriteInfos<StartIndex, Count, Abstract, Info, T0, T1>::handleTextureLoad(c
}

template <size_t StartIndex, size_t Count, typename Abstract, typename Info, typename T0, typename T1>
SpriteInfos<StartIndex, Count, Abstract, Info, T0, T1>::SpriteInfos(const ElementAbstractTextureLoadInfoList& list) {
SpriteInfos<StartIndex, Count, Abstract, Info, T0, T1>::SpriteInfos(const AbstractInfoTextureLoadInitList& list) {
assert(checkUniqueElementTypes(list)
&& "Error in SpriteInfos constructor: Duplicate ElementType found");
assert(list.size() == Count
Expand Down
Binary file modified coursework/x64/Debug/ChooseCharacterController.obj
Binary file not shown.
Binary file modified coursework/x64/Debug/GameStarter.obj
Binary file not shown.
Binary file modified coursework/x64/Debug/Launcher.obj
Binary file not shown.
Binary file modified coursework/x64/Debug/LoadingScreen.obj
Binary file not shown.
Binary file modified coursework/x64/Debug/LongCreation.obj
Binary file not shown.
Binary file modified coursework/x64/Debug/Void Guardian.ilk
Binary file not shown.
Binary file modified coursework/x64/Debug/coursework.tlog/CL.command.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Debug/coursework.tlog/CL.read.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Debug/coursework.tlog/CL.write.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Debug/coursework.tlog/link.read.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Debug/coursework.tlog/link.write.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Debug/main.obj
Binary file not shown.
Binary file modified coursework/x64/Debug/vc143.idb
Binary file not shown.
Binary file modified coursework/x64/Debug/vc143.pdb
Binary file not shown.
Binary file modified coursework/x64/Release/AnimatedSprite.obj
Binary file not shown.
Binary file modified coursework/x64/Release/AnimationExecutor.obj
Binary file not shown.
Binary file modified coursework/x64/Release/ArenaCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/BackgroundCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/BoundaryCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/BulletCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/BulletExecutor.obj
Binary file not shown.
Binary file modified coursework/x64/Release/CharacterVisualization.obj
Binary file not shown.
Binary file modified coursework/x64/Release/ChooseCharacterController.obj
Binary file not shown.
Binary file modified coursework/x64/Release/CollisionHandler.obj
Binary file not shown.
Binary file modified coursework/x64/Release/CollisionTable.obj
Binary file not shown.
Binary file modified coursework/x64/Release/DyingEffectAnimator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/ElementCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/EnemyCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/EnemyExecutor.obj
Binary file not shown.
Binary file modified coursework/x64/Release/EntityCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/EntityDamageImpactor.obj
Binary file not shown.
Binary file modified coursework/x64/Release/GameFieldCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/GameMaster.obj
Binary file not shown.
Binary file modified coursework/x64/Release/GameStarter.obj
Binary file not shown.
Binary file modified coursework/x64/Release/GunInstaller.obj
Binary file not shown.
Binary file modified coursework/x64/Release/InfoInitialization.obj
Binary file not shown.
Binary file modified coursework/x64/Release/ItemChecker.obj
Binary file not shown.
Binary file modified coursework/x64/Release/Launcher.obj
Binary file not shown.
Binary file modified coursework/x64/Release/LoadingScreen.obj
Binary file not shown.
Binary file modified coursework/x64/Release/LocationPlaceholder.obj
Binary file not shown.
Binary file modified coursework/x64/Release/LocationTransformation.obj
Binary file not shown.
Binary file modified coursework/x64/Release/LongCreation.obj
Binary file not shown.
Binary file modified coursework/x64/Release/MenuController.obj
Binary file not shown.
Binary file modified coursework/x64/Release/PlayerCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/PlayerExecutor.obj
Binary file not shown.
Binary file modified coursework/x64/Release/PortalCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/RoomCreator.obj
Binary file not shown.
Binary file modified coursework/x64/Release/StateChangerForAnimated.obj
Binary file not shown.
Binary file modified coursework/x64/Release/Void Guardian.iobj
Binary file not shown.
Binary file modified coursework/x64/Release/Void Guardian.ipdb
Binary file not shown.
Binary file modified coursework/x64/Release/coursework.tlog/CL.command.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Release/coursework.tlog/CL.read.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Release/coursework.tlog/CL.write.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Release/coursework.tlog/link.read.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Release/coursework.tlog/link.write.1.tlog
Binary file not shown.
Binary file modified coursework/x64/Release/main.obj
Binary file not shown.
Binary file modified coursework/x64/Release/vc143.pdb
Binary file not shown.
Binary file modified x64/Debug/Void Guardian.exe
Binary file not shown.
Binary file modified x64/Debug/Void Guardian.pdb
Binary file not shown.
Binary file modified x64/Release/Void Guardian.exe
Binary file not shown.
Binary file modified x64/Release/Void Guardian.pdb
Binary file not shown.

0 comments on commit c71a8a5

Please sign in to comment.