1 | /* |
2 | Copyright (C) 1998-2001 Andreas Zehender <az@azweb.de> |
3 | |
4 | it under the terms of the GNU General Public License as published by |
5 | the Free Software Foundation; either version 2 of the License, or |
6 | (at your option) any later version. |
7 | |
8 | This program is distributed in the hope that it will be useful, |
9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | GNU General Public License for more details. |
12 | |
13 | You should have received a copy of the GNU General Public License |
14 | along with this program; if not, write to the Free Software |
15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
16 | */ |
17 | |
18 | #include "playerinfo.h" |
19 | |
20 | #include <kicon.h> |
21 | #include <klocale.h> |
22 | #include <kstandarddirs.h> |
23 | |
24 | QPixmap* PlayerInfo::pplayer[6]; |
25 | |
26 | void PlayerInfo::loadPixmaps() |
27 | { |
28 | pplayer[0] = new QPixmap(KIcon( QLatin1String( "battery-discharging-100" )).pixmap(32,32)); |
29 | pplayer[1] = new QPixmap(KIcon( QLatin1String( "battery-discharging-080" )).pixmap(32,32)); |
30 | pplayer[2] = new QPixmap(KIcon( QLatin1String( "battery-discharging-060" )).pixmap(32,32)); |
31 | pplayer[3] = new QPixmap(KIcon( QLatin1String( "battery-discharging-040" )).pixmap(32,32)); |
32 | pplayer[4] = new QPixmap(KIcon( QLatin1String( "battery-discharging-020" )).pixmap(32,32)); |
33 | pplayer[5] = new QPixmap(KIcon( QLatin1String( "battery-discharging-000" )).pixmap(32,32)); |
34 | } |
35 | |
36 | PlayerInfo::PlayerInfo(int pnr,QWidget *parent) |
37 | :QFrame(parent), |
38 | lplayer(this),lenergy(this),lwins(this), |
39 | hitpoints(2,this),energy(2,this),wins(2,this) |
40 | { |
41 | setFixedWidth(45); |
42 | QString str; |
43 | // int i; |
44 | |
45 | QPalette palette; |
46 | |
47 | lplayer.setFrameStyle(NoFrame); |
48 | lplayer.setMargin(0); |
49 | lplayer.setToolTip(i18n("Hit points" )); |
50 | lenergy.setFrameStyle(NoFrame); |
51 | lenergy.setMargin(0); |
52 | lenergy.setToolTip(i18n("Energy" )); |
53 | lwins.setFrameStyle(NoFrame); |
54 | lwins.setMargin(0); |
55 | lwins.setToolTip(i18n("Wins" )); |
56 | |
57 | lplayer.setGeometry(5,5,35,35); |
58 | lplayer.setIndent(0); |
59 | lenergy.setGeometry(5,80,32,32); |
60 | lenergy.setIndent(0); |
61 | lwins.setGeometry(5,152,35,35); |
62 | lwins.setIndent(0); |
63 | |
64 | /* for(i=0;i<4;i++) |
65 | { |
66 | str = QString::fromLatin1("sprites/playerinfo/ship%1%2.png") |
67 | .arg(pnr+1) |
68 | .arg(i); |
69 | pix[i]=new QPixmap(KStandardDirs::locate("appdata", str)); |
70 | }*/ |
71 | |
72 | lplayer.setPixmap(*(pplayer[0])); |
73 | currentPixmap=0; |
74 | //lenergy.setPixmap(QPixmap(KStandardDirs::locate("appdata", "sprites/playerinfo/energy.png"))); |
75 | lenergy.setPixmap(KIcon( QLatin1String( "battery" )).pixmap(32,32));; |
76 | lwins.setPixmap(QPixmap(KStandardDirs::locate("appdata" , QLatin1String( "sprites/playerinfo/win.png" )))); |
77 | |
78 | hitpoints.setGeometry(9,45,26,26); |
79 | energy.setGeometry(9,120,26,26); |
80 | wins.setGeometry(9,195,26,26); |
81 | hitpoints.setFrameStyle(NoFrame); |
82 | hitpoints.setToolTip(i18n("Hit points" )); |
83 | hitpoints.setSegmentStyle(QLCDNumber::Flat); |
84 | energy.setFrameStyle(NoFrame); |
85 | energy.setToolTip(i18n("Energy" )); |
86 | energy.setSegmentStyle(QLCDNumber::Flat); |
87 | wins.setFrameStyle(NoFrame); |
88 | wins.setToolTip(i18n("Wins" )); |
89 | wins.setSegmentStyle(QLCDNumber::Flat); |
90 | if (pnr==0) |
91 | { |
92 | palette.setColor(hitpoints.foregroundRole(), QColor(251,37,37)); |
93 | } else |
94 | { |
95 | palette.setColor(hitpoints.foregroundRole(), QColor(61,23,233)); |
96 | } |
97 | hitpoints.setPalette(palette); |
98 | energy.setPalette(palette); |
99 | wins.setPalette(palette); |
100 | } |
101 | |
102 | void PlayerInfo::setHitpoints(int h) |
103 | { |
104 | int p = 5-((h+19)/20); |
105 | hitpoints.display(h); |
106 | if(p!=currentPixmap) |
107 | { |
108 | lplayer.setPixmap(*(pplayer[p])); |
109 | currentPixmap=p; |
110 | } |
111 | } |
112 | |
113 | void PlayerInfo::setEnergy(int e) |
114 | { |
115 | energy.display(e); |
116 | } |
117 | |
118 | void PlayerInfo::setWins(int w) |
119 | { |
120 | // if the LCD range overflows, adjust its range |
121 | if (wins.checkOverflow(w)) |
122 | { |
123 | wins.setDigitCount(wins.digitCount()+1); |
124 | } |
125 | // if the LCD is set to 0 (start new game), also reset the range |
126 | if (w==0) |
127 | { |
128 | wins.setDigitCount(2); |
129 | } |
130 | wins.display(w); |
131 | } |
132 | |
133 | #include "playerinfo.moc" |
134 | |