[SOLITAIRE]
authorEric Kohl <eric.kohl@reactos.org>
Sat, 19 Apr 2014 12:12:44 +0000 (12:12 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 19 Apr 2014 12:12:44 +0000 (12:12 +0000)
Solitaire: Timed games and scoring.
Patch by Ricardo Hanke. Thanks a lot!
CORE-8031 #resolve

svn path=/trunk/; revision=62801

34 files changed:
reactos/base/applications/games/solitaire/lang/bg-BG.rc
reactos/base/applications/games/solitaire/lang/ca-ES.rc
reactos/base/applications/games/solitaire/lang/cs-CZ.rc
reactos/base/applications/games/solitaire/lang/de-DE.rc
reactos/base/applications/games/solitaire/lang/el-GR.rc
reactos/base/applications/games/solitaire/lang/en-US.rc
reactos/base/applications/games/solitaire/lang/es-ES.rc
reactos/base/applications/games/solitaire/lang/eu-ES.rc
reactos/base/applications/games/solitaire/lang/fr-FR.rc
reactos/base/applications/games/solitaire/lang/he-IL.rc
reactos/base/applications/games/solitaire/lang/hu-HU.rc
reactos/base/applications/games/solitaire/lang/id-ID.rc
reactos/base/applications/games/solitaire/lang/it-IT.rc
reactos/base/applications/games/solitaire/lang/ja-JP.rc
reactos/base/applications/games/solitaire/lang/ko-KR.rc
reactos/base/applications/games/solitaire/lang/lt-LT.rc
reactos/base/applications/games/solitaire/lang/nl-NL.rc
reactos/base/applications/games/solitaire/lang/no-NO.rc
reactos/base/applications/games/solitaire/lang/pl-PL.rc
reactos/base/applications/games/solitaire/lang/ro-RO.rc
reactos/base/applications/games/solitaire/lang/ru-RU.rc
reactos/base/applications/games/solitaire/lang/sk-SK.rc
reactos/base/applications/games/solitaire/lang/sq-AL.rc
reactos/base/applications/games/solitaire/lang/sv-SE.rc
reactos/base/applications/games/solitaire/lang/th-TH.rc
reactos/base/applications/games/solitaire/lang/tr-TR.rc
reactos/base/applications/games/solitaire/lang/uk-UA.rc
reactos/base/applications/games/solitaire/lang/zh-CN.rc
reactos/base/applications/games/solitaire/lang/zh-TW.rc
reactos/base/applications/games/solitaire/resource.h
reactos/base/applications/games/solitaire/solcreate.cpp
reactos/base/applications/games/solitaire/solgame.cpp
reactos/base/applications/games/solitaire/solitaire.cpp
reactos/base/applications/games/solitaire/solitaire.h

index eafedfc..2714612 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Карти", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Изтегли &една", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Изтегли &три", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Показване на времето", IDC_OPT_SHOWTIME, 7 ,51 ,100 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Показване на времето", IDC_OPT_SHOWTIME, 7 ,51 ,100 ,10, WS_TABSTOP
     AUTOCHECKBOX "Лента &състояние", IDC_OPT_STATUSBAR, 7, 66, 100, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Добре", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Отказ", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Да прекратя ли играта?"
     IDS_SOL_WIN "Поздравления, победихте!!"
     IDS_SOL_DEAL "Ново раздаване?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 12dc410..3d88376 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Cartes", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Treu-ne &Una", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Treu-ne &Tres", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Mostra el temps", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Mostra el temps", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Barra d'estat", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Acceptar", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Cancel·lar", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Voleu sortir del joc actual?"
     IDS_SOL_WIN "Felicitats, heu guanyat!!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 49f038f..64de79d 100644 (file)
@@ -16,8 +16,13 @@ BEGIN
     GROUPBOX "Karty", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Sejmout &jednu", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Sejmout &tři", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "Zobrazit č&as", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "Zobrazit č&as", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "Stavový řád&ek", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Storno", IDCANCEL, 101, 97, 50, 14
 END
@@ -52,6 +57,8 @@ BEGIN
     IDS_SOL_QUIT "Ukončit rozehranou hru?"
     IDS_SOL_WIN "Gratulujeme, zvítězili jste!!"
     IDS_SOL_DEAL "Rozdat znova?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index c567474..819772c 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Karten", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "&Eine ziehen", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "&Drei ziehen", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Zeit anzeigen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Punkte zählen", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "Ke&ine", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Zeit anzeigen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "S&tatusleiste", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "P&unkte behalten", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Abbrechen",IDCANCEL,101,97,50,14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Laufendes Spiel beenden?"
     IDS_SOL_WIN "Glückwunsch, Sie haben gewonnen!"
     IDS_SOL_DEAL "Neu geben?"
+    IDS_SOL_SCORE "Punkte: %d"
+    IDS_SOL_TIME "Zeit: %d"
 END
 
 /* Menus */
index 31794e5..b84cb5d 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Κάρτες", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Ρίξε Έ&να", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Ρίξε &Τρία", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Εμφάνιση Ώρας", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Εμφάνιση Ώρας", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "Γ&ραμμή κατάστασης", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Ακύρωση", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Τερματισμός του πιαχνιδιού αυτού;"
     IDS_SOL_WIN "Συγχαρητήρια, κερδίσατε!!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 42138c6..9d2c652 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Cards", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Quit the current game?"
     IDS_SOL_WIN "Congratulations, you win!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 67b2001..76d6833 100644 (file)
@@ -19,8 +19,13 @@ BEGIN
     GROUPBOX "Cartas", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Sacar &Una", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Sacar &Tres", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Mostrar tiempo", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Mostrar tiempo", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Barra de estado", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Aceptar", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Cancelar", IDCANCEL, 101, 97, 50, 14
 END
@@ -55,6 +60,8 @@ BEGIN
     IDS_SOL_QUIT "¿Finalizar el juego actual?"
     IDS_SOL_WIN "Felicidades, ¡¡Has ganado!!"
     IDS_SOL_DEAL "¿Repartir de nuevo?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 3f29a3e..d30ed76 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Kartak ", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Banaka &atera", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Hirunaka &atera", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Denbora erakutsi", IDC_OPT_SHOWTIME, 7 ,51 ,67 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Denbora erakutsi", IDC_OPT_SHOWTIME, 7 ,51 ,67 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Egoera barra", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Ados", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Utzi", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Uneko jokoa amaitu?"
     IDS_SOL_WIN "Zorionak, irabazi duzu!!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 3ab493c..e9a66d5 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Cartes", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "En tirer une", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "En tirer trois", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "Afficher le temp&s", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "Afficher le temp&s", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "Barre de s&tatut", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Annuler", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Quitter le jeu actuel ?"
     IDS_SOL_WIN "Félicitations ! Vous avez gagné !"
     IDS_SOL_DEAL "Redistribuer ?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 2837573..39cabae 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "משיכה", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "משוך &אחד", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "משוך &שלושה", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "משחק קצוב בזמן", IDC_OPT_SHOWTIME, 7 ,51 ,72 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "משחק קצוב בזמן", IDC_OPT_SHOWTIME, 7 ,51 ,72 ,10, WS_TABSTOP
     AUTOCHECKBOX "שורת מצב", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "אישור", IDOK, 35, 97, 50, 14
     PUSHBUTTON "ביטול", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "להפסיק את המשחק הנוכחי?"
     IDS_SOL_WIN "כל הכבוד, ניצחת!"
     IDS_SOL_DEAL "לחלק שוב?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 6d17826..6bc2723 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Kártyák", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "&Egy lap", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "&Három lap", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Idõ mutatása", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Idõ mutatása", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "Á&llapotsor", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Mégsem", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Kilépés ebbõl a játékból?"
     IDS_SOL_WIN "Gratulálok, Ön nyert!"
     IDS_SOL_DEAL "Új leosztás?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 55833eb..feed12a 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Cards", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Batal", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Quit the current game?"
     IDS_SOL_WIN "Congratulations, you win!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 0419197..63e55ff 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Carte", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Girane &Una", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Girane &Tre", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Visualizza il tempo", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Visualizza il tempo", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Barra di stato", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Annulla", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Chiudere la partita in corso?"
     IDS_SOL_WIN "Congratulazioni, hai vinto!!"
     IDS_SOL_DEAL "Nuova partita?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 370c030..14bd313 100644 (file)
@@ -17,8 +17,13 @@ BEGIN
     GROUPBOX "カード", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "1 枚ずつ取る(&O)", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "3 枚ずつ取る(&T)", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "時間を表示する(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "時間を表示する(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "ステータスバーを表示する(&T)", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "キャンセル", IDCANCEL, 101, 97, 50, 14
 END
@@ -53,6 +58,8 @@ BEGIN
     IDS_SOL_QUIT "現在のゲームを終了しますか?"
     IDS_SOL_WIN "おめでとう、あなたの勝ちです!"
     IDS_SOL_DEAL "もう一度カードを配りますか?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 2414a99..b5c84f3 100644 (file)
@@ -12,8 +12,13 @@ BEGIN
     GROUPBOX "카드", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "한 장씩(&O)", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "세 장씩(&T)", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "시간 보이기(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "시간 보이기(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "상태 표시줄(&T)", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "확인", IDOK, 35, 97, 50, 14
     PUSHBUTTON "취소", IDCANCEL, 101, 97, 50, 14
 END
@@ -48,6 +53,8 @@ BEGIN
     IDS_SOL_QUIT "현재 게임을 끝낼가요?"
     IDS_SOL_WIN "축하합니다!!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 4200bb0..ee60886 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Kortos", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Dalinti po &vieną", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Dalinti po &tris", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Rodyti laiką", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Rodyti laiką", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Būsenos juosta", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Gerai", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Atsisakyti", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Baigti žaidimą?"
     IDS_SOL_WIN "Sveikiname, jūs laimėjote!!"
     IDS_SOL_DEAL "Dalinti vėl?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 9223cf4..bb3906c 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Delen", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "&Eén kaart", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "&Drie kaarten", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "Tijd &weergeven", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "Tijd &weergeven", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "S&tatusbalk", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Annuleren", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Het huidige spel afsluiten?"
     IDS_SOL_WIN "Gefeliciteerd, u heeft gewonnen!"
     IDS_SOL_DEAL "Nogmaals spelen?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index f490db1..78ee494 100644 (file)
@@ -10,8 +10,13 @@ BEGIN
     GROUPBOX "Kort", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Velg &et", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Velg &tre", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Vis tid", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Vis tid", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "S&tatuslinje", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Avbryt", IDCANCEL, 101, 97, 50, 14
 END
@@ -46,6 +51,8 @@ BEGIN
     IDS_SOL_QUIT "Slutt nåværende spill?"
     IDS_SOL_WIN "Gratulerer, du vant!!"
     IDS_SOL_DEAL "Del ut igjen?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 3579a3c..85521de 100644 (file)
@@ -19,8 +19,13 @@ BEGIN
     GROUPBOX "Karty", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Rozdaj &jedną", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Rozdaj &dwie", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Pokazuj czas gry", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Pokazuj czas gry", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "Pokazuj pa&sek stanu", IDC_OPT_STATUSBAR, 7, 66, 77, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Anuluj", IDCANCEL, 101, 97, 50, 14
 END
@@ -55,6 +60,8 @@ BEGIN
     IDS_SOL_QUIT "Zakończyć aktualną grę?"
     IDS_SOL_WIN "Gratulacje, wygrałeś!"
     IDS_SOL_DEAL "Nowe rozdanie?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 18e3b93..bf3609e 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Cărți", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Câte &una", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Câte t&rei", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Afișează timp", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Afișează timp", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Bară de stare", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Con&firmă", IDOK, 35, 97, 50, 14
     PUSHBUTTON "A&nulează", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Abandonați jocul curent?"
     IDS_SOL_WIN "Felicitări, ați câștigat!"
     IDS_SOL_DEAL "O nouă rundă?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 45900bd..ebaebb7 100644 (file)
@@ -12,8 +12,13 @@ BEGIN
     GROUPBOX "Карты", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "По &одной", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "По &три", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Показывать время", IDC_OPT_SHOWTIME, 7 ,51 ,75 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Показывать время", IDC_OPT_SHOWTIME, 7 ,51 ,75 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Строка состояния", IDC_OPT_STATUSBAR, 7, 66, 75, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Отмена", IDCANCEL, 101, 97, 50, 14
 END
@@ -48,6 +53,8 @@ BEGIN
     IDS_SOL_QUIT "Закончить текущую игру?"
     IDS_SOL_WIN "Congratulations, you win!!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Меню */
index f5aaa38..a907a0c 100644 (file)
@@ -19,8 +19,13 @@ BEGIN
     GROUPBOX "Karty", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Ťahať &jednu", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Ťahať &tri", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "Ča&sový limit", IDC_OPT_SHOWTIME, 7 ,51 ,64 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "Ča&sový limit", IDC_OPT_SHOWTIME, 7 ,51 ,64 ,10, WS_TABSTOP
     AUTOCHECKBOX "Stavový riad&ok", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Zrušiť", IDCANCEL, 101, 97, 50, 14
 END
@@ -55,6 +60,8 @@ BEGIN
     IDS_SOL_QUIT "Naozaj chcete skončiť aktuálnu hru?"
     IDS_SOL_WIN "Blahoželám, vyhrali ste!"
     IDS_SOL_DEAL "Rozdať znova?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 8f55a01..f677504 100644 (file)
@@ -19,8 +19,13 @@ BEGIN
     GROUPBOX "Letra", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Barazim &Nje", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Barazim &tRE", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Shfaq Kohen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Shfaq Kohen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "T&abela e Statusit", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Anulo", IDCANCEL, 101, 97, 50, 14
 END
@@ -55,6 +60,8 @@ BEGIN
     IDS_SOL_QUIT "Largohu Nga Loja?"
     IDS_SOL_WIN "Urime, keni fituar!"
     IDS_SOL_DEAL "Fillo Perseri?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 02c9947..795407d 100644 (file)
@@ -10,8 +10,13 @@ BEGIN
     GROUPBOX "Kort", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Dra &En", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Dra &Tre", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Visa Tid", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Visa Tid", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Statusfält", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Avbryt", IDCANCEL, 101, 97, 50, 14
 END
@@ -46,6 +51,8 @@ BEGIN
     IDS_SOL_QUIT "Avsluta nuvarande spel?"
     IDS_SOL_WIN "Grattis, du vann!"
     IDS_SOL_DEAL "Ge igen?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 9bfbec4..0017ad4 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Cards", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "ตกลง", IDOK, 35, 97, 50, 14
     PUSHBUTTON "ยกเลิก", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Quit the current game?"
     IDS_SOL_WIN "Congratulations, you win!"
     IDS_SOL_DEAL "Deal again?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 5df4d84..d3c6a86 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Kâğıtlar", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "&Tekli Çek", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "&Üçlü Çek", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Süreyi Göster", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Süreyi Göster", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Durum Çubuğu", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "Tamam", IDOK, 35, 97, 50, 14
     PUSHBUTTON "İptal", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Bu oyundan çıkılsın mı?"
     IDS_SOL_WIN "Tebrikler, kazandınız!"
     IDS_SOL_DEAL "Yine dağıtılsın mı?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 26d6ff3..bac156f 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "Карти", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "По &одній", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "По &три", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "&Гра за часом", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "&Гра за часом", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "&Рядок стану", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
     PUSHBUTTON "Скасувати", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "Вийти з поточної гри?"
     IDS_SOL_WIN "Вітання, Ви виграли!!"
     IDS_SOL_DEAL "Роздати знову?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 665ca20..14eb381 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "翻牌", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "翻一张(&O)", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "翻三张(&T)", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "计时(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "计时(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "状态栏(&T)", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "确定", IDOK, 35, 97, 50, 14
     PUSHBUTTON "取消", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "退出当前游戏?"
     IDS_SOL_WIN "恭喜你,你赢了!!"
     IDS_SOL_DEAL "再玩一次?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index f68a31e..f80b9aa 100644 (file)
@@ -18,8 +18,13 @@ BEGIN
     GROUPBOX "發牌", -1, 7, 7, 90, 40
     AUTORADIOBUTTON "發一張牌(&O)", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
     AUTORADIOBUTTON "發三張牌(&T)", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
-    AUTOCHECKBOX "計時(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
+    GROUPBOX "Scoring", -1, 100, 7, 75, 53
+    AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP
+    AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10
+    AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
+    AUTOCHECKBOX "計時(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
     AUTOCHECKBOX "狀態列(&T)", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+    AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
     DEFPUSHBUTTON "確定", IDOK, 35, 97, 50, 14
     PUSHBUTTON "取消", IDCANCEL, 101, 97, 50, 14
 END
@@ -54,6 +59,8 @@ BEGIN
     IDS_SOL_QUIT "退出目前遊戲?"
     IDS_SOL_WIN "恭喜你,你嬴了!!"
     IDS_SOL_DEAL "再玩一次?"
+    IDS_SOL_SCORE "Score: %d"
+    IDS_SOL_TIME "Time: %d"
 END
 
 /* Menus */
index 5c0d255..0b221bc 100644 (file)
 #define IDC_OPT_DRAWTHREE 1202
 #define IDC_OPT_SHOWTIME  1203
 #define IDC_OPT_STATUSBAR 1204
+#define IDC_OPT_STANDARD  1205
+#define IDC_OPT_VEGAS     1206
+#define IDC_OPT_NOSCORE   1207
+#define IDC_OPT_KEEPSCORE 1208
 #define IDD_CARDBACK      1250
 #define IDC_CARDBACK1     1251
 #define IDC_CARDBACK2     1252
@@ -40,3 +44,5 @@
 #define IDS_SOL_QUIT  1302
 #define IDS_SOL_WIN   1303
 #define IDS_SOL_DEAL  1304
+#define IDS_SOL_SCORE 1305
+#define IDS_SOL_TIME  1306
index 6f0f351..1f18571 100644 (file)
@@ -38,6 +38,7 @@ void CreateSol()
     pPile->SetDropRule(CS_DROP_NONE, 0);
     pPile->SetDblClickProc(PileDblClickProc);
     pPile->SetRemoveCardProc(PileRemoveProc);
+    pPile->SetClickProc(PileClickProc);
 
     //
     //    Create the suit stacks
@@ -50,6 +51,7 @@ void CreateSol()
 
         pSuitStack[i]->SetDropRule(CS_DROP_CALLBACK, SuitStackDropProc);
         pSuitStack[i]->SetDragRule(CS_DRAG_TOP);
+        pSuitStack[i]->SetClickProc(SuitStackClickProc);
 
         pSuitStack[i]->SetAddCardProc(SuitStackAddProc);
     }
index b34dcc8..58ef8e2 100644 (file)
@@ -10,6 +10,7 @@ extern TCHAR MsgWin[128];
 extern TCHAR MsgDeal[128];
 
 CardStack activepile;
+int LastId;
 bool fGameStarted = false;
 
 void NewGame(void)
@@ -17,6 +18,33 @@ void NewGame(void)
     TRACE("ENTER NewGame()\n");
     int i, j;
 
+    if (GetScoreMode() == SCORE_VEGAS)
+    {
+        if ((dwOptions & OPTION_KEEP_SCORE) && (dwPrevMode == SCORE_VEGAS))
+            lScore = lScore - 52;
+        else
+            lScore = -52;
+        
+        if (dwOptions & OPTION_THREE_CARDS)
+            dwWasteTreshold = 2;
+        else
+            dwWasteTreshold = 0;
+       
+    }
+    else
+    {
+        if (dwOptions & OPTION_THREE_CARDS)
+            dwWasteTreshold = 3;
+        else
+            dwWasteTreshold = 0;
+
+        lScore = 0;
+    }
+
+    dwTime = 0;
+    dwWasteCount = 0;
+    LastId = 0;
+
     SolWnd.EmptyStacks();
 
     //create a new card-stack
@@ -52,7 +80,13 @@ void NewGame(void)
     SolWnd.Redraw();
 
     fGameStarted = false;
+
+    dwPrevMode = GetScoreMode();
+
+    UpdateStatusBar();
+
     TRACE("EXIT NewGame()\n");
+
 }
 
 //
@@ -69,6 +103,8 @@ bool CARDLIBPROC RowStackDragProc(CardRegion &stackobj, int iNumDragCards)
     int numfacedown;
     int numcards;
 
+    SetPlayTimer();
+
     stackobj.GetFaceDirection(&numfacedown);
 
     numcards = stackobj.NumCards();
@@ -90,6 +126,8 @@ bool CARDLIBPROC RowStackDropProc(CardRegion &stackobj, CardStack &dragcards)
     TRACE("ENTER RowStackDropProc()\n");
     Card dragcard = dragcards[dragcards.NumCards() - 1];
 
+    SetPlayTimer();
+
     //if we are empty, can only drop a stack with a King at bottom
     if(stackobj.NumCards() == 0)
     {
@@ -121,6 +159,27 @@ bool CARDLIBPROC RowStackDropProc(CardRegion &stackobj, CardStack &dragcards)
 
     fGameStarted = true;
 
+    if (LastId == PILE_ID)
+    {
+        if (GetScoreMode() == SCORE_STD)
+        {
+            lScore = lScore + 5;
+        }
+    }
+    else if ((LastId >= SUIT_ID) && (LastId <= SUIT_ID + 3))
+    {
+        if (GetScoreMode() == SCORE_STD)
+        {
+            lScore = lScore >= 15 ? lScore - 15 : 0;
+        }
+        else if (GetScoreMode() == SCORE_VEGAS)
+        {
+            lScore = lScore >= -47 ? lScore - 5 : -52;
+        }
+    }
+
+    UpdateStatusBar();
+
     TRACE("EXIT RowStackDropProc(true)\n");
     return true;
 }
@@ -136,6 +195,8 @@ bool CanDrop(CardRegion &stackobj, Card card)
 
     const CardStack &cardstack = stackobj.GetCardStack();
 
+    SetPlayTimer();
+
     if(cardstack.NumCards() > 0)
     {
         if(card.Suit() != cardstack[0].Suit())
@@ -168,6 +229,9 @@ bool CanDrop(CardRegion &stackobj, Card card)
 bool CARDLIBPROC SuitStackDropProc(CardRegion &stackobj, CardStack &dragcards)
 {
     TRACE("ENTER SuitStackDropProc()\n");
+
+    SetPlayTimer();
+
     //only drop 1 card at a time
     if(dragcards.NumCards() != 1)
     {
@@ -177,9 +241,41 @@ bool CARDLIBPROC SuitStackDropProc(CardRegion &stackobj, CardStack &dragcards)
 
     bool b = CanDrop(stackobj, dragcards[0]);
     TRACE("EXIT SuitStackDropProc()\n");
+
+    if (b)
+    {
+        if ((LastId == PILE_ID) || (LastId >= ROW_ID))
+        {
+            if (GetScoreMode() == SCORE_VEGAS)
+            {
+                lScore = lScore + 5;
+            }
+            else if (GetScoreMode() == SCORE_STD)
+            {
+                lScore = lScore + 10;
+            }
+    
+            UpdateStatusBar();
+        }
+    }
+
     return b;
 }
 
+//
+//    Single-click on one of the suit-stacks
+//
+void CARDLIBPROC SuitStackClickProc(CardRegion &stackobj, int iNumClicked)
+{
+    TRACE("ENTER SuitStackClickProc()\n");
+
+    fGameStarted = true;
+
+    LastId = stackobj.Id();
+
+    TRACE("EXIT SuitStackClickProc()\n");
+}
+
 //
 //    Single-click on one of the row-stacks
 //    Turn the top-card over if they are all face-down
@@ -197,7 +293,18 @@ void CARDLIBPROC RowStackClickProc(CardRegion &stackobj, int iNumClicked)
         if(numfacedown > 0) numfacedown--;
         stackobj.SetFaceDirection(CS_FACE_DOWNUP, numfacedown);
         stackobj.Redraw();
+
+        if (GetScoreMode() == SCORE_STD)
+        {
+            lScore = lScore + 5;
+            UpdateStatusBar();
+        }
     }
+
+    LastId = stackobj.Id();
+
+    fGameStarted = true;
+
     TRACE("EXIT RowStackClickProc()\n");
 }
 
@@ -207,6 +314,7 @@ void CARDLIBPROC RowStackClickProc(CardRegion &stackobj, int iNumClicked)
 CardRegion *FindSuitStackFromCard(Card card)
 {
     TRACE("ENTER FindSuitStackFromCard()\n");
+
     for(int i = 0; i < 4; i++)
     {
         if(CanDrop(*pSuitStack[i], card))
@@ -231,17 +339,30 @@ void CARDLIBPROC SuitStackAddProc(CardRegion &stackobj, const CardStack &added)
     TRACE("ENTER SuitStackAddProc()\n");
     bool fGameOver = true;
 
+    SetPlayTimer();
+
     for(int i = 0; i < 4; i++)
     {
         if(pSuitStack[i]->NumCards() != 13)
         {
             fGameOver = false;
+
             break;
         }
     }
 
     if(fGameOver)
     {
+        KillTimer(hwndMain, IDT_PLAYTIMER);
+        PlayTimer = 0;
+
+        if ((dwOptions & OPTION_SHOW_TIME) && (GetScoreMode() == SCORE_STD))
+        {
+            lScore = lScore + (700000 / dwTime);
+        }
+
+        UpdateStatusBar();
+
         MessageBox(SolWnd, MsgWin, szAppName, MB_OK | MB_ICONINFORMATION);
 
         for(int i = 0; i < 4; i++)
@@ -272,6 +393,9 @@ void CARDLIBPROC SuitStackAddProc(CardRegion &stackobj, const CardStack &added)
 void CARDLIBPROC RowStackDblClickProc(CardRegion &stackobj, int iNumClicked)
 {
     TRACE("ENTER RowStackDblClickProc()\n");
+
+    SetPlayTimer();
+
     //can only move 1 card at a time
     if(iNumClicked != 1)
     {
@@ -286,6 +410,7 @@ void CARDLIBPROC RowStackDblClickProc(CardRegion &stackobj, int iNumClicked)
     if(pDest != 0)
     {
         fGameStarted = true;
+        SetPlayTimer();
 
         //stackobj.MoveCards(pDest, 1, true);
         //use the SimulateDrag funcion, because we get the
@@ -295,12 +420,29 @@ void CARDLIBPROC RowStackDblClickProc(CardRegion &stackobj, int iNumClicked)
     TRACE("EXIT RowStackDblClickProc()\n");
 }
 
+//
+//    Face-up pile single-click
+//
+void CARDLIBPROC PileClickProc(CardRegion &stackobj, int iNumClicked)
+{
+    TRACE("ENTER SuitStackClickProc()\n");
+
+    fGameStarted = true;
+
+    LastId = stackobj.Id();
+
+    TRACE("EXIT SuitStackClickProc()\n");
+}
+
 //
 //    Face-up pile double-click
 //
 void CARDLIBPROC PileDblClickProc(CardRegion &stackobj, int iNumClicked)
 {
     TRACE("ENTER PileDblClickProc()\n");
+
+    SetPlayTimer();
+
     RowStackDblClickProc(stackobj, iNumClicked);
     TRACE("EXIT PileDblClickProc()\n");
 }
@@ -311,6 +453,9 @@ void CARDLIBPROC PileDblClickProc(CardRegion &stackobj, int iNumClicked)
 void CARDLIBPROC PileRemoveProc(CardRegion &stackobj, int iItems)
 {
     TRACE("ENTER PileRemoveProc()\n");
+
+    SetPlayTimer();
+
     //modify our "virtual" pile by removing the same card
     //that was removed from the physical card stack
     activepile.Pop(iItems);
@@ -334,10 +479,14 @@ void CARDLIBPROC PileRemoveProc(CardRegion &stackobj, int iItems)
 void CARDLIBPROC DeckClickProc(CardRegion &stackobj, int iNumClicked)
 {
     TRACE("ENTER DeckClickProc()\n");
+
+    SetPlayTimer();
+
     CardStack cardstack = stackobj.GetCardStack();
     CardStack pile      = pPile->GetCardStack();
 
     fGameStarted = true;
+    SetPlayTimer();
 
     //reset the face-up pile to represent 3 cards
     if(dwOptions & OPTION_THREE_CARDS)
@@ -345,11 +494,45 @@ void CARDLIBPROC DeckClickProc(CardRegion &stackobj, int iNumClicked)
 
     if(cardstack.NumCards() == 0)
     {
-        pile.Clear();
+        if (GetScoreMode() == SCORE_VEGAS)
+        {
+            if (dwWasteCount < dwWasteTreshold)
+            {
+                pile.Clear();
+
+                activepile.Reverse();
+                cardstack.Push(activepile);
+                activepile.Clear();
+            }
+        }
+        else if (GetScoreMode() == SCORE_STD)
+        {
+            if ((dwWasteCount >= dwWasteTreshold) && (activepile.NumCards() != 0))
+            {
+                if (dwOptions & OPTION_THREE_CARDS)
+                    lScore = lScore >= 20 ? lScore - 20 : 0;
+                else
+                    lScore = lScore >= 100 ? lScore - 100 : 0;
+            }
+
+            pile.Clear();
+
+            activepile.Reverse();
+            cardstack.Push(activepile);
+            activepile.Clear();
+
+            UpdateStatusBar();
+        }
+        else
+        {
+            pile.Clear();
+
+            activepile.Reverse();
+            cardstack.Push(activepile);
+            activepile.Clear();
+        }
 
-        activepile.Reverse();
-        cardstack.Push(activepile);
-        activepile.Clear();
+        dwWasteCount++;
     }
     else
     {
index 38087d9..7ad7f0f 100644 (file)
@@ -14,12 +14,21 @@ HWND        hwndStatus;
 HINSTANCE    hInstance;
 
 TCHAR szAppName[128];
+TCHAR szScore[64];
+TCHAR szTime[64];
 TCHAR MsgQuit[128];
 TCHAR MsgAbout[128];
 TCHAR MsgWin[128];
 TCHAR MsgDeal[128];
 DWORD dwOptions = OPTION_THREE_CARDS;
 
+DWORD dwTime;
+DWORD dwWasteCount;
+DWORD dwWasteTreshold;
+DWORD dwPrevMode;
+long lScore;
+UINT_PTR PlayTimer = 0;
+
 CardWindow SolWnd;
 
 typedef struct _CardBack
@@ -115,6 +124,60 @@ VOID SaveSettings(VOID)
     RegCloseKey(hKey);
 }
 
+// Returns 0 for no points, 1 for Standard and 2 for Vegas
+int GetScoreMode(void)
+{
+    if ((dwOptions & OPTION_SCORE_STD) && (dwOptions & OPTION_SCORE_VEGAS))
+    {
+        return SCORE_NONE;
+    }
+
+    if (dwOptions & OPTION_SCORE_STD)
+    {
+        return SCORE_STD;
+    }
+
+    if (dwOptions & OPTION_SCORE_VEGAS)
+    {
+        return SCORE_VEGAS;
+    }
+
+    return 0;
+}
+
+void UpdateStatusBar(void)
+{
+    TCHAR szStatusText[128];
+    TCHAR szTempText[64];
+
+    ZeroMemory(szStatusText, sizeof(szStatusText) / sizeof(TCHAR));
+
+    if (GetScoreMode() != SCORE_NONE)
+    {
+        _stprintf(szStatusText, szScore, lScore);
+        _tcscat(szStatusText, _T("   "));
+    }
+
+    if (dwOptions & OPTION_SHOW_TIME)
+    {
+        _stprintf(szTempText, szTime, dwTime);
+        _tcscat(szStatusText, szTempText);
+    }
+
+    SendMessage(hwndStatus, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM)(LPTSTR)szStatusText);
+}
+
+void SetPlayTimer(void)
+{
+    if (dwOptions & OPTION_SHOW_TIME)
+    {
+        if (!PlayTimer)
+        {
+            PlayTimer = SetTimer(hwndMain, IDT_PLAYTIMER, 1000, NULL);
+        }
+    }
+}
+
 //
 //    Main entry point
 //
@@ -136,6 +199,9 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
     LoadString(hInst, IDS_SOL_WIN, MsgWin, sizeof(MsgWin) / sizeof(MsgWin[0]));
     LoadString(hInst, IDS_SOL_DEAL, MsgDeal, sizeof(MsgDeal) / sizeof(MsgDeal[0]));
 
+    LoadString(hInst, IDS_SOL_SCORE, szScore, sizeof(szScore) / sizeof(TCHAR));
+    LoadString(hInst, IDS_SOL_TIME, szTime, sizeof(szTime) / sizeof(TCHAR));
+
     //Window class for the main application parent window
     wndclass.style            = 0;//CS_HREDRAW | CS_VREDRAW;
     wndclass.lpfnWndProc    = WndProc;
@@ -160,6 +226,8 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
 
     LoadSettings();
 
+    dwPrevMode = GetScoreMode();
+
     //Construct the path to our help file
     MakePath(szHelpPath, MAX_PATH, _T(".hlp"));
 
@@ -178,6 +246,8 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
 
     hwndMain = hwnd;
 
+    UpdateStatusBar();
+
     ShowWindow(hwnd, iCmdShow);
     UpdateWindow(hwnd);
 
@@ -200,6 +270,8 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
 
 INT_PTR CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
+    HWND hCtrl;
+
     switch (uMsg)
     {
     case WM_INITDIALOG:
@@ -209,11 +281,47 @@ INT_PTR CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
         CheckDlgButton(hDlg,
                        IDC_OPT_STATUSBAR,
                        (dwOptions & OPTION_SHOW_STATUS) ? BST_CHECKED : BST_UNCHECKED);
+
+        CheckDlgButton(hDlg,
+                       IDC_OPT_SHOWTIME,
+                       (dwOptions & OPTION_SHOW_TIME) ? BST_CHECKED : BST_UNCHECKED);
+
+        CheckDlgButton(hDlg,
+                       IDC_OPT_KEEPSCORE,
+                       (dwOptions & OPTION_KEEP_SCORE) ? BST_CHECKED : BST_UNCHECKED);
+
+        hCtrl = GetDlgItem(hDlg, IDC_OPT_KEEPSCORE);
+
+        if (GetScoreMode() == SCORE_NONE)
+        {
+            CheckRadioButton(hDlg, IDC_OPT_STANDARD, IDC_OPT_NOSCORE, IDC_OPT_NOSCORE);
+            EnableWindow(hCtrl, FALSE);
+        }
+        else if (GetScoreMode() == SCORE_STD)
+        {
+            CheckRadioButton(hDlg, IDC_OPT_STANDARD, IDC_OPT_NOSCORE, IDC_OPT_STANDARD);
+            EnableWindow(hCtrl, FALSE);
+        }
+        else if (GetScoreMode() == SCORE_VEGAS)
+        {
+            CheckRadioButton(hDlg, IDC_OPT_STANDARD, IDC_OPT_NOSCORE, IDC_OPT_VEGAS);
+            EnableWindow(hCtrl, TRUE);
+        }
         return TRUE;
 
     case WM_COMMAND:
         switch(LOWORD(wParam))
         {
+        case IDC_OPT_NOSCORE:
+        case IDC_OPT_STANDARD:
+        case IDC_OPT_VEGAS:
+            hCtrl = GetDlgItem(hDlg, IDC_OPT_KEEPSCORE);
+            if (wParam == IDC_OPT_VEGAS)
+                EnableWindow(hCtrl, TRUE);
+            else
+                EnableWindow(hCtrl, FALSE);
+            return TRUE;
         case IDOK:
             dwOptions &= ~OPTION_THREE_CARDS;
             if (IsDlgButtonChecked(hDlg, IDC_OPT_DRAWTHREE) == BST_CHECKED)
@@ -224,6 +332,34 @@ INT_PTR CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
             else
                 dwOptions &= ~OPTION_SHOW_STATUS;
 
+            if (IsDlgButtonChecked(hDlg, IDC_OPT_SHOWTIME) == BST_CHECKED)
+                dwOptions |= OPTION_SHOW_TIME;
+            else
+                dwOptions &= ~OPTION_SHOW_TIME;
+
+            if (IsDlgButtonChecked(hDlg, IDC_OPT_KEEPSCORE) == BST_CHECKED)
+                dwOptions |= OPTION_KEEP_SCORE;
+            else
+                dwOptions &= ~OPTION_KEEP_SCORE;
+
+            if (IsDlgButtonChecked(hDlg, IDC_OPT_STANDARD) == BST_CHECKED)
+            {
+                dwOptions |= OPTION_SCORE_STD;
+                dwOptions &= ~OPTION_SCORE_VEGAS;
+            }
+            else if (IsDlgButtonChecked(hDlg, IDC_OPT_VEGAS) == BST_CHECKED)
+            {
+                dwOptions |= OPTION_SCORE_VEGAS;
+                dwOptions &= ~OPTION_SCORE_STD;
+            }
+            else if (IsDlgButtonChecked(hDlg, IDC_OPT_NOSCORE) == BST_CHECKED)
+            {
+                dwOptions |= OPTION_SCORE_VEGAS;
+                dwOptions |= OPTION_SCORE_STD;
+            }
+
+            UpdateStatusBar();
+
             EndDialog(hDlg, TRUE);
             return TRUE;
 
@@ -241,9 +377,13 @@ VOID ShowGameOptionsDlg(HWND hwnd)
     DWORD dwOldOptions = dwOptions;
     RECT rcMain, rcStatus;
 
+    int iOldScoreMode = GetScoreMode();
+
     if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_OPTIONS), hwnd, OptionsDlgProc))
     {
-        if ((dwOldOptions & OPTION_THREE_CARDS) != (dwOptions & OPTION_THREE_CARDS))
+        if (((dwOldOptions & OPTION_THREE_CARDS) != (dwOptions & OPTION_THREE_CARDS)) ||
+            ((dwOldOptions & OPTION_SHOW_TIME) != (dwOptions & OPTION_SHOW_TIME)) ||
+            (iOldScoreMode != GetScoreMode()))
             NewGame();
 
         if ((dwOldOptions & OPTION_SHOW_STATUS) != (dwOptions & OPTION_SHOW_STATUS))
@@ -458,7 +598,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
         case WM_CREATE:
         {
-            int parts[] = { 100, -1 };
+            int parts[] = { 150, -1 };
             RECT rcStatus;
 
             hwndStatus = CreateStatusWindow(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, _T("Ready"), hwnd, 0);
@@ -496,6 +636,25 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
             PostQuitMessage(0);
             return 0;
 
+        case WM_TIMER:
+            if (!fGameStarted)
+            {
+                KillTimer(hwndMain, IDT_PLAYTIMER);
+                PlayTimer = 0;
+            }
+            else if (dwOptions & OPTION_SHOW_TIME)
+            {
+                if (((dwTime + 1) % 10 == 0) && (GetScoreMode() == SCORE_STD))
+                {
+                    lScore = lScore >= 2 ? lScore - 2 : 0;
+                }
+
+                dwTime++;
+            }
+
+            UpdateStatusBar();
+            return 0;
+
         case WM_SIZE:
             nWidth  = LOWORD(lParam);
             nHeight = HIWORD(lParam);
index cc9c960..f05b2f4 100644 (file)
@@ -9,6 +9,10 @@ extern bool fGameStarted;
 
 #define OPTION_SHOW_STATUS       4
 #define OPTION_THREE_CARDS       8
+#define OPTION_SHOW_TIME         16
+#define OPTION_KEEP_SCORE       32
+#define OPTION_SCORE_STD        64
+#define OPTION_SCORE_VEGAS      128
 #define CARDBACK_START           IDC_CARDBACK1
 #define CARDBACK_END             IDC_CARDBACK12
 #define NUM_CARDBACKS            (CARDBACK_END - CARDBACK_START + 1)
@@ -19,6 +23,16 @@ extern bool fGameStarted;
 
 extern DWORD dwOptions;
 
+extern DWORD dwTime;
+extern DWORD dwWasteCount;
+extern DWORD dwWasteTreshold;
+extern DWORD dwPrevMode;
+extern long lScore;
+extern HWND hwndMain;
+extern UINT_PTR PlayTimer;
+
+#define IDT_PLAYTIMER 1000
+
 void CreateSol(void);
 void NewGame(void);
 
@@ -28,6 +42,10 @@ void NewGame(void);
 #define SUIT_ID            4
 #define ROW_ID             10
 
+#define SCORE_NONE  0
+#define SCORE_STD   1
+#define SCORE_VEGAS 2
+
 // Various metrics used for placing the objects and computing the minimum window size
 #define X_BORDER                 20
 #define X_PILE_BORDER            18
@@ -42,18 +60,25 @@ extern CardRegion *pPile;
 extern CardRegion *pSuitStack[];
 extern CardRegion *pRowStack[];
 
+extern void UpdateStatusBar(void);
+extern void SetPlayTimer(void);
+extern int GetScoreMode(void);
+
 bool CARDLIBPROC RowStackDragProc(CardRegion &stackobj, int iNumCards);
 bool CARDLIBPROC RowStackDropProc(CardRegion &stackobj,  CardStack &dragcards);
 
 bool CARDLIBPROC SuitStackDropProc(CardRegion &stackobj, CardStack &dragcards);
 void CARDLIBPROC SuitStackAddProc(CardRegion &stackobj, const CardStack &added);
+void CARDLIBPROC SuitStackClickProc(CardRegion &stackobj, int iNumClicked);
 
 void CARDLIBPROC RowStackClickProc(CardRegion &stackobj, int iNumClicked);
 void CARDLIBPROC RowStackDblClickProc(CardRegion &stackobj, int iNumClicked);
 
 void CARDLIBPROC DeckClickProc(CardRegion &stackobj, int iNumClicked);
 void CARDLIBPROC PileDblClickProc(CardRegion &stackobj, int iNumClicked);
+void CARDLIBPROC PileClickProc(CardRegion &stackobj, int iNumClicked);
 
 void CARDLIBPROC PileRemoveProc(CardRegion &stackobj, int iRemoved);
 
+
 #endif /* _SOL_PCH_ */