summary refs log tree commit diff stats
path: root/hslist.h
diff options
context:
space:
mode:
Diffstat (limited to 'hslist.h')
-rw-r--r--hslist.h124
1 files changed, 14 insertions, 110 deletions
diff --git a/hslist.h b/hslist.h index efffa9d..0636183 100644 --- a/hslist.h +++ b/hslist.h
@@ -1,130 +1,34 @@
1#ifndef HSLIST_H
2#define HSLIST_H
3
1#include <SDL.h> 4#include <SDL.h>
2 5
6#include <memory>
3#include <vector> 7#include <vector>
4 8
5#include "highscore.h" 9#include "highscore.h"
10#include "sdl.h"
6#include "state.h" 11#include "state.h"
7 12
8#ifndef HSLIST_H
9#define HSLIST_H
10
11typedef std::vector<Highscore*> hslist_t;
12
13void resetRanks(hslist_t in);
14
15class HighscoreList { 13class HighscoreList {
16 public: 14 public:
17 SDL_Surface* render(); 15 static std::unique_ptr<HighscoreList> GetLocalHighscores();
18 16 static std::unique_ptr<HighscoreList> GetGlobalHighscores();
19 protected:
20 hslist_t getLocalHighscores();
21 hslist_t getGlobalHighscores();
22
23 hslist_t hslist;
24};
25
26class LocalHighscoreList : public HighscoreList {
27 public:
28 LocalHighscoreList();
29 int addHighscore(Highscore* h);
30 void writeHighscores();
31};
32
33class GlobalHighscoreList : public HighscoreList {
34 public:
35 GlobalHighscoreList();
36 GlobalHighscoreList(Highscore* h);
37 SDL_Surface* render();
38 bool didFail();
39
40 private:
41 typedef HighscoreList super;
42
43 protected:
44 bool fail;
45};
46
47class ChooseHighscoreListState : public State {
48 public:
49 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
50};
51
52class DisplayLocalHighscoreListState : public State {
53 public:
54 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
55};
56
57class DisplayAndReturnLocalHighscoreListState : public State {
58 public:
59 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
60};
61
62class DisplayGlobalHighscoreListState : public State {
63 public:
64 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
65
66 protected:
67 SDL_Surface* list_s;
68 SDL_Texture* list;
69 GlobalHighscoreList* lhl;
70 SDL_mutex* m;
71
72 private:
73 static int LoadHighscoreList(void* pParam);
74};
75
76class EnterHighscoreState : public State {
77 public:
78 EnterHighscoreState(int level);
79 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
80
81 private:
82 int level;
83 int lp;
84 char* hsname;
85 SDL_Texture* newName;
86};
87
88class NewHighscoreState : public State {
89 public:
90 NewHighscoreState(Highscore* h);
91 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
92 17
93 private: 18 surface_ptr render();
94 Highscore* h;
95};
96 19
97class SubmitHighscoreState : public State { 20 const std::vector<Highscore>& getList() const { return hslist_; }
98 public:
99 SubmitHighscoreState(Highscore* h);
100 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
101 21
102 protected: 22 int addHighscore(Highscore h);
103 Highscore* h;
104 SDL_mutex* m;
105 GlobalHighscoreList* lhl;
106 23
107 private: 24 void writeToFile();
108 static int SubmitHighscore(void* pParam);
109};
110
111class FailedSubmittingHighscoreState : public State {
112 public:
113 FailedSubmittingHighscoreState(Highscore* h);
114 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
115 25
116 private: 26 private:
117 Highscore* h; 27 explicit HighscoreList(std::vector<Highscore> hslist);
118};
119 28
120class SubmittedHighscoreState : public State { 29 void resetRanks();
121 public:
122 SubmittedHighscoreState(GlobalHighscoreList* lhl, Highscore* h);
123 State* operator()(SDL_Window* window, SDL_Renderer* renderer);
124 30
125 private: 31 std::vector<Highscore> hslist_;
126 GlobalHighscoreList* lhl;
127 Highscore* h;
128}; 32};
129 33
130#endif 34#endif