From a59fcafb2e81f3cb40ff320b106030e8fed4bd66 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 2 Nov 2023 18:38:53 -0400 Subject: Modernized C++ a bit (and removed global highscores) --- hslist.h | 124 ++++++++------------------------------------------------------- 1 file changed, 14 insertions(+), 110 deletions(-) (limited to 'hslist.h') diff --git a/hslist.h b/hslist.h index efffa9d..0636183 100644 --- a/hslist.h +++ b/hslist.h @@ -1,130 +1,34 @@ +#ifndef HSLIST_H +#define HSLIST_H + #include +#include #include #include "highscore.h" +#include "sdl.h" #include "state.h" -#ifndef HSLIST_H -#define HSLIST_H - -typedef std::vector hslist_t; - -void resetRanks(hslist_t in); - class HighscoreList { public: - SDL_Surface* render(); - - protected: - hslist_t getLocalHighscores(); - hslist_t getGlobalHighscores(); - - hslist_t hslist; -}; - -class LocalHighscoreList : public HighscoreList { - public: - LocalHighscoreList(); - int addHighscore(Highscore* h); - void writeHighscores(); -}; - -class GlobalHighscoreList : public HighscoreList { - public: - GlobalHighscoreList(); - GlobalHighscoreList(Highscore* h); - SDL_Surface* render(); - bool didFail(); - - private: - typedef HighscoreList super; - - protected: - bool fail; -}; - -class ChooseHighscoreListState : public State { - public: - State* operator()(SDL_Window* window, SDL_Renderer* renderer); -}; - -class DisplayLocalHighscoreListState : public State { - public: - State* operator()(SDL_Window* window, SDL_Renderer* renderer); -}; - -class DisplayAndReturnLocalHighscoreListState : public State { - public: - State* operator()(SDL_Window* window, SDL_Renderer* renderer); -}; - -class DisplayGlobalHighscoreListState : public State { - public: - State* operator()(SDL_Window* window, SDL_Renderer* renderer); - - protected: - SDL_Surface* list_s; - SDL_Texture* list; - GlobalHighscoreList* lhl; - SDL_mutex* m; - - private: - static int LoadHighscoreList(void* pParam); -}; - -class EnterHighscoreState : public State { - public: - EnterHighscoreState(int level); - State* operator()(SDL_Window* window, SDL_Renderer* renderer); - - private: - int level; - int lp; - char* hsname; - SDL_Texture* newName; -}; - -class NewHighscoreState : public State { - public: - NewHighscoreState(Highscore* h); - State* operator()(SDL_Window* window, SDL_Renderer* renderer); + static std::unique_ptr GetLocalHighscores(); + static std::unique_ptr GetGlobalHighscores(); - private: - Highscore* h; -}; + surface_ptr render(); -class SubmitHighscoreState : public State { - public: - SubmitHighscoreState(Highscore* h); - State* operator()(SDL_Window* window, SDL_Renderer* renderer); + const std::vector& getList() const { return hslist_; } - protected: - Highscore* h; - SDL_mutex* m; - GlobalHighscoreList* lhl; + int addHighscore(Highscore h); - private: - static int SubmitHighscore(void* pParam); -}; - -class FailedSubmittingHighscoreState : public State { - public: - FailedSubmittingHighscoreState(Highscore* h); - State* operator()(SDL_Window* window, SDL_Renderer* renderer); + void writeToFile(); private: - Highscore* h; -}; + explicit HighscoreList(std::vector hslist); -class SubmittedHighscoreState : public State { - public: - SubmittedHighscoreState(GlobalHighscoreList* lhl, Highscore* h); - State* operator()(SDL_Window* window, SDL_Renderer* renderer); + void resetRanks(); - private: - GlobalHighscoreList* lhl; - Highscore* h; + std::vector hslist_; }; #endif -- cgit 1.4.1