summaryrefslogtreecommitdiff
path: root/noncore/games/kpacman/painter.h
Unidiff
Diffstat (limited to 'noncore/games/kpacman/painter.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/kpacman/painter.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/noncore/games/kpacman/painter.h b/noncore/games/kpacman/painter.h
new file mode 100644
index 0000000..3a4eae2
--- a/dev/null
+++ b/noncore/games/kpacman/painter.h
@@ -0,0 +1,148 @@
1#ifndef PAINTER_H
2#define PAINTER_H
3
4#include "portable.h"
5
6#if defined( KDE2_PORT )
7#include <kapp.h>
8#include <klocale.h>
9#endif
10
11#include <qpixmap.h>
12#include <qbitmap.h>
13#include <qlabel.h>
14#include <qcolor.h>
15#include <qlist.h>
16#include <qstrlist.h>
17#include <qregexp.h>
18
19#include "board.h"
20#include "bitfont.h"
21#include "colors.h"
22
23enum PixMap { PacmanPix, DyingPix, MonsterPix, EyesPix, FruitPix,
24 PointPix, EnergizerPix, WallPix, PrisonPix,
25 FruitScorePix, MonsterScorePix };
26enum DrawWidget { Widget, RoomPix, BackPix };
27
28class Painter
29{
30public:
31 Painter (Board *, QWidget *parent=0, int scheme=-1, int mode=-1,Bitfont *font=0);
32 QPixmap levelPix() { return roomPix; }
33
34 void setScheme(int scheme=-1, int mode=-1, Bitfont *font=0);
35 void setLevel(int level=0);
36
37 QRect rect(int pos, PixMap pix, uint i = 0);
38 QRect rect(int pos, QString str, int align = QLabel::AlignCenter );
39 QRect rect(QRect r1, QRect r2);
40
41 void draw(QPoint point, DrawWidget where, QPixmap pix);
42 void draw(QRect rect, DrawWidget where, QPixmap pix);
43 void draw(int pos, DrawWidget where, PixMap pix, uint i = 0);
44 QPixmap draw(int pos, DrawWidget where, QString str,
45 QColor fg, QColor bg = QColor(), int align = QLabel::AlignCenter);
46 QRect draw(int col, int row, DrawWidget where, QString str,
47 QColor fg, QColor bg = QColor(), int align = QLabel::AlignCenter);
48
49 void drawBrick(int pos);
50 void drawPrison(int pos);
51 void drawPoint(int pos);
52
53 void erase(int pos, PixMap pix, uint i = 0);
54
55 int maxPixmaps(PixMap pix);
56
57protected:
58 QString decodeHexOctString(QString str);
59
60 void fillScoreString(QStrList &, QArray<int> &);
61 void fillArray(QArray<int> &, QString, int);
62 void fillStrList(QStrList &, QString, int);
63 void fillPixmapName(QStrList &);
64
65 void confScheme();
66 void confLevels(bool defGroup=TRUE);
67 void confMisc(bool defGroup=TRUE);
68 void confScoring(bool defGroup=TRUE);
69
70 void initPixmaps();
71 void initRoomPixmap();
72 void initbackPixmaps();
73
74private:
75 QWidget *w;
76 Board *board;
77 Bitfont *bitfont;
78
79 int BlockWidth;
80 int BlockHeight;
81
82 QArray<int> fruitScore;
83 QStrList fruitScoreString;
84 QArray<int> monsterScore;
85 QStrList monsterScoreString;
86
87 QString pixmapDirectory;
88
89 QStrList pointPixmapName;
90 QStrList wallPixmapName;
91 QStrList prisonPixmapName;
92 QStrList energizerPixmapName;
93 QStrList fruitPixmapName;
94 QStrList pacmanPixmapName;
95 QStrList dyingPixmapName;
96 QStrList eyesPixmapName;
97 QStrList monsterPixmapName;
98 QStrList fruitScorePixmapName;
99 QStrList monsterScorePixmapName;
100
101 QString lastPointPixmapName;
102 QString lastWallPixmapName;
103 QString lastPrisonPixmapName;
104 QString lastEnergizerPixmapName;
105 QString lastFruitPixmapName;
106 QString lastPacmanPixmapName;
107 QString lastDyingPixmapName;
108 QString lastEyesPixmapName;
109 QString lastMonsterPixmapName;
110 QString lastFruitScorePixmapName;
111 QString lastMonsterScorePixmapName;
112
113 QList<QPixmap> *loadPixmap(QWidget *parent, QString pixmapName,
114 QList<QPixmap> *pixmaps=0);
115 QList<QPixmap> *textPixmap(QStrList &, QList<QPixmap> *pixmaps=0,
116 QColor fg = BLACK, QColor bg = QColor());
117 QList<QPixmap> *textPixmap(QString str, QList<QPixmap> *pixmaps=0,
118 QColor fg = BLACK, QColor bg = QColor());
119
120 QPoint point(int pos);
121 int checkRange(int value, int max, int min=0);
122
123 QList<QPixmap> *wallPix;
124 QList<QPixmap> *prisonPix;
125 QList<QPixmap> *pointPix;
126 QList<QPixmap> *energizerPix;
127 QList<QPixmap> *fruitPix;
128 QList<QPixmap> *pacmanPix;
129 QList<QPixmap> *dyingPix;
130 QList<QPixmap> *eyesPix;
131 QList<QPixmap> *monsterPix;
132 QList<QPixmap> *fruitScorePix;
133 QList<QPixmap> *monsterScorePix;
134
135 QPixmap roomPix;
136 QPixmap backPix;
137
138 bool plainColor;
139 QColor backgroundColor;
140
141 int maxLevel;
142 int level;
143
144 int scheme;
145 int mode;
146};
147
148#endif // PAINTER_H