You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepacman/kpacman/score.h

125 lines
2.5 KiB

#ifndef SCORE_H
#define SCORE_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kapp.h>
#include <qwidget.h>
#include <qstring.h>
#include <qpoint.h>
#include <qrect.h>
#include <qfile.h>
#include <qfileinfo.h>
#include <qdatetime.h>
#include "painter.h"
#include "bitfont.h"
#define maxPlayer 1
#define minPlayerNameLength 3
#define highscoreName "highscore"
class Score : public QWidget
{
Q_OBJECT
public:
Score (QWidget *parent=0, const char *name=0, int scheme=-1, int mode=-1, Bitfont *font=0);
~Score();
public slots:
void setScheme(int scheme, int mode, Bitfont *font=0);
void set(int score);
void set(int score, int player);
void setScore(int level, int player);
void setPause(bool paused);
void initKeys();
private slots:
void read();
void write();
void end();
signals:
void gameFinished();
void gameHighscores();
protected:
void timerEvent(QTimerEvent *);
void paintEvent(QPaintEvent *);
void keyPressEvent(QKeyEvent *);
void focusInEvent(QFocusEvent *) { ; }
void focusOutEvent(QFocusEvent *) { ; }
void confScheme();
void confTiming(bool defGroup=TRUE);
private:
Bitfont *bitfont;
QRect rect(int col, float row, QString str, int align = AlignCenter);
int x(int col);
int y(float row);
QString formatDate(QDate date);
/**
* Ermittelt die zu benutzende "highscore"-Datei, in die auch geschrieben werden kann.
* <EFBFBD>ber den "highscoreFilePath"-KConfig-Eintrag, kann abweichend von der Standardlokation
* der Standort der "highscore"-Datei spezifiziert werden.
* Wenn die systemweite "globale" Datei nicht beschrieben werden kann, wird mit einer
* privaten Datei gearbeitet.
*/
QFileInfo locateHighscoreFilePath();
int cursorBlinkMS;
int hallOfFameMS;
int afterPauseMS;
bool paused;
uint UpKey;
uint DownKey;
uint RightKey;
uint LeftKey;
int lastScore;
int lastPlayer;
int HighScore;
int playerScore[maxPlayer];
QString playerName[maxPlayer];
struct {
int x;
int y;
QChar chr;
bool on;
} cursor;
int cursorBlinkTimer;
bool scrollRepeat;
struct {
int points;
int levels;
QTime duration;
QDateTime moment;
QString name;
} hallOfFame[10];
QFileInfo systemHighscoreFileInfo;
QFileInfo privateHighscoreFileInfo;
QFile highscoreFile;
int scheme;
int mode;
};
#endif // SCORE_H