original 1.0.1 release
[xwelltris.git] / src / include / welltopnine.h
blob899aaa0572fe846a9193c21e704c8cb404368ec6
1 #ifndef WELLTOPNINE_H
2 #define WELLTOPNINE_H
4 #include "globals.h"
5 #include "welltris.h"
6 #include "wellobject.h"
7 #include "wellimagefont.h"
8 #include "wellkey.h"
10 struct Score
12 int place;
13 char player[PLAYER_NAME_LEN+1];
14 char date_time[L_DATE];
15 int score;
16 int lines;
17 int level;
18 int squares;
19 bool mixed;
20 bool rotation;
21 bool next_piece;
22 time_t start_t;
23 int play_time;
25 Score();
26 void save(FILE* fp);
27 bool load(FILE* fp);
28 void set_current_time();
29 char* get_next_token(char* from, char* to);
30 void calc_play_time();
31 void set_player(char* pl);
32 void set_params(int iscore, int ilines, int ilevel)
34 score=iscore; lines=ilines; level=ilevel;
38 struct ScoreTable
40 Score *table[TOP_NINE];
42 ScoreTable();
43 ~ScoreTable();
45 void sort_by_score();
46 void save(FILE* fp);
47 void set_squares(int isquares);
48 Score* set_and_get(int idx, Score *toset);
51 class WellTopNine: public WellObject
53 protected:
54 ScoreTable tables[MAX_SQUARES];
55 WellImageFont* text_lines[TOP_NINE];
56 ObjectCaller object_on_exit;
58 Score* current_score;
59 int page;
61 WellKey *key_exit;
63 public:
64 WellTopNine();
66 virtual bool process_event(wEvent);
67 virtual void show();
68 virtual void hide();
69 virtual void redraw_table();
70 bool save_scores();
71 bool load_scores();
72 Score* try_add_to_table(Score* new_one);
73 Score* find_challenger(Score* me);
74 void set_object_on_exit(ObjectCaller o)
76 object_on_exit=o;
78 void set_page(int pg) { page=pg;};
81 extern WellTopNine *default_top_nine;
84 #endif