[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/kmahjongg
From: Mauricio Piacentini <mauricio () tabuleiro ! com>
Date: 2006-10-31 22:56:45
Message-ID: 1162335405.886918.27124.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 600821 by piacentini:
Adding TileSprite class, a custom KGameCanvasItem used to compose a tile from
clean backgrounds and face data.
M +1 -0 CMakeLists.txt
A TileSprite.cpp [License: GPL (v2+)]
A TileSprite.h [License: GPL (v2+)]
M +29 -19 boardwidget.cpp
M +2 -1 boardwidget.h
--- trunk/KDE/kdegames/kmahjongg/CMakeLists.txt #600820:600821
@@ -18,6 +18,7 @@
GameData.cpp
Preview.cpp
Editor.cpp
+ TileSprite.cpp
HighScore.cpp )
kde4_automoc(${kmahjongg_SRCS})
--- trunk/KDE/kdegames/kmahjongg/boardwidget.cpp #600820:600821
@@ -184,16 +184,22 @@
if (!Game->tilePresent(z,y,x))
continue;
- QPixmap *t;
- if (Game->HighlightData(z,y,x)) {
+ QPixmap *s;
+ QPixmap *us;
+ s= theTiles.selectedPixmaps(
+ Game->BoardData(z,y,x)-TILE_OFFSET);
+
+ us= theTiles.unselectedPixmaps(
+ Game->BoardData(z,y,x)-TILE_OFFSET);
+ /*if (Game->HighlightData(z,y,x)) {
t= theTiles.selectedPixmaps(
Game->BoardData(z,y,x)-TILE_OFFSET);
} else {
t= theTiles.unselectedPixmaps(
Game->BoardData(z,y,x)-TILE_OFFSET);
- }
+ }*/
- KGameCanvasPixmap * thissprite = new KGameCanvasPixmap(*t, this);
+ TileSprite * thissprite = new TileSprite(this, *us, *s, *s);
spriteMap.insert(TileCoord(x,y,z), thissprite);
}
@@ -225,7 +231,7 @@
if (!Game->tilePresent(z,y,x))
continue;
- KGameCanvasPixmap * thissprite =spriteMap.value(TileCoord(x,y,z));
+ TileSprite * thissprite =spriteMap.value(TileCoord(x,y,z));
if (thissprite) thissprite->moveTo(sx, sy);
if (thissprite) thissprite->show();
@@ -245,8 +251,8 @@
for (int y=Game->m_height-1; y>=0; y--) {
if (Game->tilePresent(z,y,x-offset))
{
- KGameCanvasPixmap * thissprite =spriteMap.value(TileCoord(x-offset,y,z));
- //KGameCanvasPixmap * thissprite =spriteMap.value(QString("X%1Y%2Z%3").arg(x-offset).arg(y).arg(z));
+ TileSprite * thissprite =spriteMap.value(TileCoord(x-offset,y,z));
+ //TileSprite * thissprite =spriteMap.value(QString("X%1Y%2Z%3").arg(x-offset).arg(y).arg(z));
if (thissprite) thissprite->raise();
}
//at each pass, move one place to the left
@@ -752,7 +758,7 @@
void BoardWidget::hilightTile( POSITION& Pos, bool on, bool doRepaint )
{
- KGameCanvasPixmap * atile = 0;
+ TileSprite * atile = 0;
TileCoord coord = TileCoord(Pos.x,Pos.y,Pos.e);
@@ -763,13 +769,15 @@
if (on) {
Game->setHighlightData(Pos.e,Pos.y,Pos.x,1);
if (atile)
- atile->setPixmap(*(theTiles.selectedPixmaps(
- Game->BoardData(Pos.e,Pos.y,Pos.x)-TILE_OFFSET)));
+ //atile->setPixmap(*(theTiles.selectedPixmaps(
+ //Game->BoardData(Pos.e,Pos.y,Pos.x)-TILE_OFFSET)));
+ atile->setSelected(true);
} else {
Game->setHighlightData(Pos.e,Pos.y,Pos.x,0);
if (atile)
- atile->setPixmap(*(theTiles.unselectedPixmaps(
- Game->BoardData(Pos.e,Pos.y,Pos.x)-TILE_OFFSET)));
+ //atile->setPixmap(*(theTiles.unselectedPixmaps(
+ //Game->BoardData(Pos.e,Pos.y,Pos.x)-TILE_OFFSET)));
+ atile->setSelected(false);
}
}
@@ -793,9 +801,11 @@
Game->putTile( E, Y, X, Pos.f );
Game->setHighlightData(E,Y,X,0);
- QPixmap *t;
- t= theTiles.unselectedPixmaps(Game->BoardData(E,Y,X)-TILE_OFFSET);
- KGameCanvasPixmap * thissprite = new KGameCanvasPixmap(*t, this);
+ QPixmap *s;
+ QPixmap *us;
+ us= theTiles.unselectedPixmaps(Game->BoardData(E,Y,X)-TILE_OFFSET);
+ s= theTiles.selectedPixmaps(Game->BoardData(E,Y,X)-TILE_OFFSET);
+ TileSprite * thissprite = new TileSprite(this, *us, *s, *s);
//thissprite->moveTo(sx, sy);
thissprite->show();
spriteMap.insert(TileCoord(X,Y,E), thissprite);
@@ -817,7 +827,7 @@
Game->TileNum--; // Eine Figur weniger
Game->setMoveListData(Game->TileNum,Pos); // Position ins Protokoll eintragen
- KGameCanvasPixmap * thissprite =spriteMap.value(TileCoord(X,Y,E));
+ TileSprite * thissprite =spriteMap.value(TileCoord(X,Y,E));
if (thissprite) delete thissprite;
spriteMap.remove(TileCoord(X,Y,E));
// remove tile from game board
@@ -872,7 +882,7 @@
// so that we only require 1 screen paint for both actions)
Game->setRemovedTilePair(MouseClickPos1, MouseClickPos2);
- // now we remove the tiles from the board
+ // now we remove the tiles from the board*t,
removeTile(MouseClickPos1, false);
removeTile(MouseClickPos2);
@@ -921,8 +931,8 @@
{
int E,X,Y;
- KGameCanvasPixmap * clickedItem = NULL;
- clickedItem = (KGameCanvasPixmap *) itemAt(point);
+ TileSprite * clickedItem = NULL;
+ clickedItem = (TileSprite *) itemAt(point);
if (!clickedItem) {
//no item under mouse
qDebug() << "no tile registered";
--- trunk/KDE/kdegames/kmahjongg/boardwidget.h #600820:600821
@@ -35,6 +35,7 @@
#include "BoardLayout.h"
#include "GameData.h"
#include "TileCoord.h"
+#include "TileSprite.h"
#define ANIMSPEED 200
@@ -68,7 +69,7 @@
QString &getLayoutName() {return theBoardLayout.getFilename();};
KGameCanvasPixmap * backsprite;
- QHash<TileCoord, KGameCanvasPixmap *> spriteMap;
+ QHash<TileCoord, TileSprite *> spriteMap;
public slots:
void loadSettings();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic