[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