PCG-FPS  v2 m0.22.4
Simple First Person Shooter with Procedurally Generated Level
Game.h
Go to the documentation of this file.
1 #ifndef SKR_FPS2_GAME_H
2 #define SKR_FPS2_GAME_H
3 
4 #include "..\pch.h"
5 
6 #include <vector>
7 #include <string>
8 #include <chrono>
9 
10 #include "pcg/Target.h"
11 #include "..\Renderer\OpenGL\TargetGeometry.h"
12 
13 namespace skr
14 {
15 namespace fps2
16 {
17 namespace Game
18 {
21  struct Completed
22  {
23  public:
24  uint32_t _targetId;
25  bool _completed;
26 
29  Completed(uint32_t id);
30  };
31 
35 
36  class Game
37  {
38  private:
41  Game()
42  {
43  ResetStats();
44  };
45 
47  Game(const Game&) = delete;
48 
50  Game operator=(const Game&) = delete;
51 
52  bool _started;
53  bool _finished;
54  bool _complete;
55  std::chrono::system_clock::time_point _startTime;
56  std::chrono::system_clock::time_point _finishTime;
57 
60  uint32_t NumberOfCompeltedTargets();
61 
62  public:
66  static Game& GetInstance();
67 
68  std::vector<Completed> _targets;
69  uint32_t _numberOfShots;
70  uint32_t _numberOfHits;
71 
74  void AddTarget(uint32_t target);
75 
77  void Shot();
78 
81  void Hit(uint32_t id);
82 
85  void Reset();
86 
88  void ResetStats();
89 
92  bool IsComplete();
93 
96  std::string GetStats();
97 
99  void Start();
100 
102  void Finish();
103 
106  bool IsFinished();
107 
110  bool IsStarted();
111 
114  bool IsRunning();
115  };
116 
117 }
118 }
119 }
120 
121 #endif // !SKR_FPS2_GAME_H
122 
skr::fps2::Game::Game::_complete
bool _complete
flag inidication if game is completed
Definition: Game.h:54
skr::fps2::Game::Completed::_targetId
uint32_t _targetId
id of target
Definition: Game.h:24
skr::fps2::Game::Game::Reset
void Reset()
resets game clears targets and resets all flags and stats to initial values
Definition: Game.cpp:107
skr::fps2::Game::Game::IsComplete
bool IsComplete()
returns value inidcating if all targets are not or not
Definition: Game.cpp:124
skr::fps2::Game::Game::ResetStats
void ResetStats()
resets stats
Definition: Game.cpp:117
skr::fps2::Game::Game::_startTime
std::chrono::system_clock::time_point _startTime
recoreded time of player crossing the start line
Definition: Game.h:55
skr::fps2::Game::Game::_finished
bool _finished
flat inidicating if finish is reached
Definition: Game.h:53
skr::fps2::Game::Game::NumberOfCompeltedTargets
uint32_t NumberOfCompeltedTargets()
returns number of completed targets
Definition: Game.cpp:21
skr::fps2::Game::Game::_started
bool _started
flag inidacting if game ist startet
Definition: Game.h:52
skr::fps2::Game::Game::Game
Game()
default constructor resets stats
Definition: Game.h:41
skr::fps2::Game::Game::IsRunning
bool IsRunning()
returns a value indicating if game is running
Definition: Game.cpp:178
skr::fps2::Game::Game::GetStats
std::string GetStats()
gets current stats in human readable form
Definition: Game.cpp:129
skr::fps2::Game::Game::_numberOfShots
uint32_t _numberOfShots
number of shots fired by the plaer
Definition: Game.h:69
skr::fps2::Game::Completed::Completed
Completed(uint32_t id)
constructor
Definition: Game.cpp:15
skr::fps2::Game::Game::_numberOfHits
uint32_t _numberOfHits
number of hits registered
Definition: Game.h:70
skr::fps2::Game::Game::operator=
Game operator=(const Game &)=delete
copy assignment operator is deleted
skr::fps2::Game::Game::GetInstance
static Game & GetInstance()
gets only instance of Game manager Implements Scott Meyer's singleton pattern
Definition: Game.cpp:34
skr::fps2::Game::Game::IsFinished
bool IsFinished()
returns value inidicating if game is finished
Definition: Game.cpp:168
skr::fps2::Game::Game::_targets
std::vector< Completed > _targets
list of target ids and completion status
Definition: Game.h:68
skr
Definition: AssetPath.h:10
skr::fps2::Game::Game::Shot
void Shot()
called if a shot is fired (LMB press)
Definition: Game.cpp:45
skr::fps2::Game::Completed
holds target completion
Definition: Game.h:22
skr::fps2::Game::Game
Main Game Manager class keeps track of status of game (started, finished, completed) and stats (numbe...
Definition: Game.h:37
skr::fps2::Game::Game::AddTarget
void AddTarget(uint32_t target)
adds target of given id to list of targets
Definition: Game.cpp:40
skr::fps2::Game::Completed::_completed
bool _completed
true if compelted, otherwise false
Definition: Game.h:25
skr::fps2::Game::Game::Hit
void Hit(uint32_t id)
called if a hit is registered
Definition: Game.cpp:50
skr::fps2::Game::Game::IsStarted
bool IsStarted()
returns a value indcating if game has started
Definition: Game.cpp:173
skr::fps2::Game::Game::Start
void Start()
called if game is startet: player crosses the start line
Definition: Game.cpp:152
skr::fps2::Game::Game::_finishTime
std::chrono::system_clock::time_point _finishTime
recoreded time of player reaching the finish box
Definition: Game.h:56
skr::fps2::Game::Game::Game
Game(const Game &)=delete
copy constructor is deleted
skr::fps2::Game::Game::Finish
void Finish()
called if game finished: player reaches the finish box
Definition: Game.cpp:160