summaryrefslogtreecommitdiffstats
path: root/libksirtet/DESIGN
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitc90c389a8a8d9d8661e9772ec4144c5cf2039f23 (patch)
tree6d8391395bce9eaea4ad78958617edb20c6a7573 /libksirtet/DESIGN
downloadtdegames-c90c389a8a8d9d8661e9772ec4144c5cf2039f23.tar.gz
tdegames-c90c389a8a8d9d8661e9772ec4144c5cf2039f23.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegames@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'libksirtet/DESIGN')
-rw-r--r--libksirtet/DESIGN57
1 files changed, 57 insertions, 0 deletions
diff --git a/libksirtet/DESIGN b/libksirtet/DESIGN
new file mode 100644
index 00000000..f09b8539
--- /dev/null
+++ b/libksirtet/DESIGN
@@ -0,0 +1,57 @@
+'lo, time to explain how some things are designed in the generic class
+of these games (ksirtet, kfouleggs and klickety)
+
+NB: You should read this file with a fixed font editor ...
+
+the following set of functions is implemented in the hierarchy of classes :
+GenericTetris -> BaseBoard -> Board -> specific Board class for each game
+
+===============================================================================
+action 'Piece Drop Down' activated
+ |
+pieceDropped() <-|
+ | |
+oneLineDown() -> by timer -|
+
+===============================================================================
+if oneLineDown() make the piece touch the ground
+ |
+pieceDropped()
+ |
+_beforeGlue() <-|
+ | |
+beforeGlue() -> by timer -| // here is implemented the bump effect
+ | (when done)
+gluePiece()
+ |
+_afterGlue() <-|
+ | |
+afterGlue() -> by timer -| // here kfouleggs remove holes
+ | (when done)
+needRemoving ? no -> _afterAfterRemove()
+ |
+_beforeRemove() <-|
+ | |
+beforeRemove() -> by timer -| // here blocks to be removed are highlighted
+ | (when done)
+remove()
+ |
+_afterRemove() <-|
+ | |
+afterRemove() -> by timer -| // here is animated the fall of piece in
+ | // the holes leaved by removed blocks
+ | if needs removing again -> _beforeRemove()
+ |
+_afterAfterRemove() ? no gift pending -> afterAfterRemove()
+ |
+putGift()
+ |
+_afterGift() <-|
+ | |
+afterGift() -> by timer -| // here kfouleggs make the gift block to land
+ |
+_afterAfterRemove()
+ |
+afterAfterRemove() ? gameOver -> gameOver()
+ |
+newPiece()