Study Dungeon  1.0.0
A group project for COSC345
util.h
Go to the documentation of this file.
1 
11 #pragma once
12 #ifndef UTIL_H
13 #define UTIL_H
14 
15 #include <algorithm>
16 #include <chrono>
17 #include <filesystem>
18 #include <fstream>
19 #include <iostream>
20 #include <random>
21 #include <sstream>
22 #include <string>
23 #include <vector>
24 #include <windows.h>
25 
27 extern bool isTestMode;
28 
33 namespace key
34 {
35 // Defines the character code recieved by getch on key press
37 const int key_enter{13};
39 const int key_backspace{8};
41 const int key_esc{27};
43 const int key_space{32};
45 const int arrow_prefix{224};
47 const int numlock{0};
49 const int key_up{72};
51 const int key_down{80};
53 const int key_left{75};
55 const int key_right{77};
56 
57 
59 const std::string ESC{"\x1b"};
60 // const std::string ESC {"\033"}; // ansi escape code
61 } // namespace key
69 
70 
76 std::filesystem::path getAppPath();
77 
78 
86 bool timeComplete(const std::chrono::time_point<std::chrono::steady_clock> &start_time, const int &duration_secs);
87 
95 int timeRemainingMins(const std::chrono::time_point<std::chrono::steady_clock> &start_time, const int &duration_mins);
96 
103 std::string steadyClockToString(const std::chrono::steady_clock::time_point &start_time);
104 
110 void pause();
111 
118 void clearScreen();
119 
125 bool yesNoPrompt();
126 
135 bool isValidDeckFileName(const std::string &name);
136 
137 
142 void ShowConsoleCursor(bool showflag);
143 
150 std::vector<std::vector<int>> readInANSICodes(std::string filename);
151 
158 std::vector<std::string> convertAsciiArtToLines(const std::string &asciiArt);
159 
165 std::string getRandomPositiveQuote();
166 
172 std::string getRandomEncouragingQuote();
173 
179 std::string getRandomPhrase();
180 
181 
182 #endif
mapping of character codes recieved by getch on key press to their keyboard name for easy reference.
Definition: util.h:34
const int key_right
Definition: util.h:55
const int key_space
Definition: util.h:43
const int key_enter
Definition: util.h:37
const std::string ESC
Definition: util.h:59
const int arrow_prefix
Definition: util.h:45
const int key_left
Definition: util.h:53
const int key_backspace
Definition: util.h:39
const int numlock
Definition: util.h:47
const int key_down
Definition: util.h:51
const int key_esc
Definition: util.h:41
const int key_up
Definition: util.h:49
int timeRemainingMins(const std::chrono::time_point< std::chrono::steady_clock > &start_time, const int &duration_mins)
Used to display the time remaining to users. To determine the actual end the session use timeComplete...
Definition: util.cpp:67
std::string getRandomEncouragingQuote()
Get a Random Encouraging Quote.
Definition: util.cpp:263
std::string getRandomPhrase()
Get a Random Phrase.
Definition: util.cpp:278
std::vector< std::string > convertAsciiArtToLines(const std::string &asciiArt)
Vectorises a string on the newline character.
Definition: util.cpp:217
bool yesNoPrompt()
Prompts the user to enter [Yy] for yes and [Nn] for no.
Definition: util.cpp:133
std::string getRandomPositiveQuote()
Get a Random Positive Quote.
Definition: util.cpp:247
std::string steadyClockToString(const std::chrono::steady_clock::time_point &start_time)
Gives the number of seconds past since the time point as "X seconds since start".
Definition: util.cpp:75
void pause()
An alternative to system('pause')
Definition: util.cpp:90
void ShowConsoleCursor(bool showflag)
hides or shows the cursor icon in the console
Definition: util.cpp:182
bool isTestMode
Definition: util.cpp:15
bool enableVirtualTerminal()
enables the virtual terminal processing mode
Definition: util.cpp:17
void clearScreen()
Clears the screen.
Definition: util.cpp:104
std::vector< std::vector< int > > readInANSICodes(std::string filename)
reads a file of integers (0-255) that will be used to create ANSI colours
Definition: util.cpp:193
bool timeComplete(const std::chrono::time_point< std::chrono::steady_clock > &start_time, const int &duration_secs)
Determines if the number of seconds has elapased since a start time.
Definition: util.cpp:58
bool isValidDeckFileName(const std::string &name)
Checks if name for deckfile meets naming requirements.
Definition: util.cpp:156