summaryrefslogtreecommitdiff
path: root/noncore/games/solitaire
Unidiff
Diffstat (limited to 'noncore/games/solitaire') (more/less context) (show whitespace changes)
-rw-r--r--noncore/games/solitaire/canvascard.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/games/solitaire/canvascard.cpp b/noncore/games/solitaire/canvascard.cpp
index cd298ef..3ed9ea0 100644
--- a/noncore/games/solitaire/canvascard.cpp
+++ b/noncore/games/solitaire/canvascard.cpp
@@ -169,97 +169,97 @@ void CanvasCard::setCardBack(int b)
169 169
170void CanvasCard::draw(QPainter &painter) 170void CanvasCard::draw(QPainter &painter)
171{ 171{
172 int ix = (int)x(), iy = (int)y(); 172 int ix = (int)x(), iy = (int)y();
173 173
174 QPainter *p = &painter; 174 QPainter *p = &painter;
175 QPixmap *unscaledCard = NULL; 175 QPixmap *unscaledCard = NULL;
176 176
177 if ((scaleX <= 0.98) || (scaleY <= 0.98)) 177 if ((scaleX <= 0.98) || (scaleY <= 0.98))
178 { 178 {
179 p = new QPainter(); 179 p = new QPainter();
180 unscaledCard = new QPixmap( cardsFaces->width(), cardsFaces->height() ); 180 unscaledCard = new QPixmap( cardsFaces->width(), cardsFaces->height() );
181 p->begin(unscaledCard); 181 p->begin(unscaledCard);
182 ix = 0; 182 ix = 0;
183 iy = 0; 183 iy = 0;
184 } 184 }
185 185
186 if ( isFacing() ) { 186 if ( isFacing() ) {
187 187
188 int w = cardsFaces->width(), h = cardsFaces->height(); 188 int w = cardsFaces->width(), h = cardsFaces->height();
189 189
190 p->setBrush( QColor( 0xFF, 0xFF, 0xFF ) ); 190 p->setBrush( QColor( 0xFF, 0xFF, 0xFF ) );
191 191
192 if ( isRed() == TRUE ) 192 if ( isRed() == TRUE )
193 p->setPen( QColor( 0xFF, 0, 0 ) ); 193 p->setPen( QColor( 0xFF, 0, 0 ) );
194 else 194 else
195 p->setPen( QColor( 0, 0, 0 ) ); 195 p->setPen( QColor( 0, 0, 0 ) );
196 196
197 if ( qt_screen->deviceWidth() < 200 ) { 197 if ( qt_screen->deviceWidth() < 200 ) {
198 p->drawPixmap( ix + 0, iy + 0, *cardsFaces ); 198 p->drawPixmap( ix + 0, iy + 0, *cardsFaces );
199 p->drawPixmap( ix + 3, iy + 3, *cardsChars, 5*(getValue()-1), 0, 5, 6 ); 199 p->drawPixmap( ix + 3, iy + 3, *cardsChars, 5*(getValue()-1), 0, 5, 6 );
200 p->drawPixmap( ix + 11, iy + 3, *cardsSuits, 5*(getSuit()-1), 0, 5, 6 ); 200 p->drawPixmap( ix + 11, iy + 3, *cardsSuits, 5*(getSuit()-1), 0, 5, 6 );
201 p->drawPixmap( ix + w-3-5, iy + h-3-6, *cardsCharsUpsideDown, 5*(12-getValue()+1), 0, 5, 6 ); 201 p->drawPixmap( ix + w-3-5, iy + h-3-6, *cardsCharsUpsideDown, 5*(12-getValue()+1), 0, 5, 6 );
202 p->drawPixmap( ix + w-11-5, iy + h-3-6, *cardsSuitsUpsideDown, 5*(3-getSuit()+1), 0, 5, 6 ); 202 p->drawPixmap( ix + w-11-5, iy + h-3-6, *cardsSuitsUpsideDown, 5*(3-getSuit()+1), 0, 5, 6 );
203 } else { 203 } else {
204 p->drawPixmap( ix + 0, iy + 0, *cardsFaces ); 204 p->drawPixmap( ix + 0, iy + 0, *cardsFaces );
205 p->drawPixmap( ix + 4, iy + 4, *cardsChars, 7*(getValue()-1), 0, 7, 7 ); 205 p->drawPixmap( ix + 4, iy + 4, *cardsChars, 7*(getValue()-1), 0, 7, 7 );
206 p->drawPixmap( ix + 12, iy + 4, *cardsSuits, 7*(getSuit()-1), 0, 7, 8 ); 206 p->drawPixmap( ix + 12, iy + 4, *cardsSuits, 7*(getSuit()-1), 0, 7, 8 );
207 p->drawPixmap( ix + w-4-7, iy + h-4-7, *cardsCharsUpsideDown, 7*(12-getValue()+1), 0, 7, 7 ); 207 p->drawPixmap( ix + w-4-7, iy + h-4-7, *cardsCharsUpsideDown, 7*(12-getValue()+1), 0, 7, 7 );
208 p->drawPixmap( ix + w-12-7, iy + h-5-7, *cardsSuitsUpsideDown, 7*(3-getSuit()+1), 0, 7, 8 ); 208 p->drawPixmap( ix + w-12-7, iy + h-5-7, *cardsSuitsUpsideDown, 7*(3-getSuit()+1), 0, 7, 8 );
209 } 209 }
210 210
211 } else { 211 } else {
212 212
213 p->drawPixmap( ix, iy, *cardsBacks ); 213 p->drawPixmap( ix, iy, *cardsBacks );
214 214
215 } 215 }
216 216
217 if (p != &painter) 217 if (p != &painter && unscaledCard)
218 { 218 {
219 p->end(); 219 p->end();
220 QPixmap *scaledCard = CreateScaledPixmap( unscaledCard, scaleX, scaleY ); 220 QPixmap *scaledCard = CreateScaledPixmap( unscaledCard, scaleX, scaleY );
221 int xoff = scaledCard->width() / 2; 221 int xoff = scaledCard->width() / 2;
222 int yoff = scaledCard->height() / 2; 222 int yoff = scaledCard->height() / 2;
223 painter.drawPixmap( (int)x() + xOff - xoff, (int)y() + yOff - yoff, *scaledCard ); 223 painter.drawPixmap( (int)x() + xOff - xoff, (int)y() + yOff - yoff, *scaledCard );
224 delete p; 224 delete p;
225 delete unscaledCard; 225 delete unscaledCard;
226 delete scaledCard; 226 delete scaledCard;
227 } 227 }
228} 228}
229 229
230 230
231static const double flipLift = 1.5; 231static const double flipLift = 1.5;
232 232
233 233
234void CanvasCard::flipTo(int x2, int y2, int steps) 234void CanvasCard::flipTo(int x2, int y2, int steps)
235{ 235{
236 flipSteps = steps; 236 flipSteps = steps;
237 237
238#ifdef SLOW_HARDWARE 238#ifdef SLOW_HARDWARE
239 move(x2,y2); 239 move(x2,y2);
240 Card::flipTo(x2,y2,steps); 240 Card::flipTo(x2,y2,steps);
241#else 241#else
242 int x1 = (int)x(); 242 int x1 = (int)x();
243 int y1 = (int)y(); 243 int y1 = (int)y();
244 double dx = x2 - x1; 244 double dx = x2 - x1;
245 double dy = y2 - y1; 245 double dy = y2 - y1;
246 246
247 flipping = TRUE; 247 flipping = TRUE;
248 destX = x2; 248 destX = x2;
249 destY = y2; 249 destY = y2;
250 animSteps = flipSteps; 250 animSteps = flipSteps;
251 setVelocity(dx/animSteps, dy/animSteps-flipLift); 251 setVelocity(dx/animSteps, dy/animSteps-flipLift);
252 setAnimated(TRUE); 252 setAnimated(TRUE);
253#endif 253#endif
254} 254}
255 255
256 256
257void CanvasCard::advance(int stage) 257void CanvasCard::advance(int stage)
258{ 258{
259 if ( stage==1 ) { 259 if ( stage==1 ) {
260 if ( animSteps-- <= 0 ) { 260 if ( animSteps-- <= 0 ) {
261 scaleX = 1.0; 261 scaleX = 1.0;
262 scaleY = 1.0; 262 scaleY = 1.0;
263 flipping = FALSE; 263 flipping = FALSE;
264 setVelocity(0,0); 264 setVelocity(0,0);
265 setAnimated(FALSE); 265 setAnimated(FALSE);