Ticket #6932: Pairs.patch
File Pairs.patch, 7.0 KB (added by , 12 years ago) |
---|
-
src/apps/pairs/PairsView.h
From f99a8d36f61fd881ed330e79519e11857ec73321 Mon Sep 17 00:00:00 2001 From: jorma <jorma@Vectra1.(none)> Date: Sat, 3 Dec 2011 21:23:34 +0200 Subject: [PATCH] Case break change, New game intializations, Style cleanups --- src/apps/pairs/PairsView.h | 44 ++++++++-------- src/apps/pairs/PairsWindow.cpp | 108 +++++++++++++++++++++------------------- src/apps/pairs/PairsWindow.h | 40 +++++++------- 3 files changed, 99 insertions(+), 93 deletions(-) diff --git a/src/apps/pairs/PairsView.h b/src/apps/pairs/PairsView.h index 624ae22..1197947 100644
a b class TopButton; 14 14 15 15 class PairsView : public BView { 16 16 public: 17 18 19 17 PairsView(BRect frame, const char* name, 18 int width, int height, 19 uint32 resizingMode); 20 20 21 virtual 22 virtual void 23 virtual void 24 virtual void 21 virtual ~PairsView(); 22 virtual void AttachedToWindow(); 23 virtual void Draw(BRect updateRect); 24 virtual void CreateGameBoard(); 25 25 26 intfWidth;27 intfHeight;28 intfNumOfCards;26 int fWidth; 27 int fHeight; 28 int fNumOfCards; 29 29 30 BListfDeckCard;31 intGetIconFromPos(int pos);30 BList fDeckCard; 31 int GetIconFromPos(int pos); 32 32 33 33 private: 34 void_SetPairsBoard();35 void_ReadRandomIcons();36 void_GenerateCardPos();37 bool_HasBitmap(BList& bitmaps, BBitmap* bitmap);38 39 BMessage*fButtonMessage;40 BListfCardBitmaps;41 int*fRandPos;42 int*fPosX;43 int*fPosY;34 void _SetPairsBoard(); 35 void _ReadRandomIcons(); 36 void _GenerateCardPos(); 37 bool _HasBitmap(BList& bitmaps, BBitmap* bitmap); 38 39 BMessage* fButtonMessage; 40 BList fCardBitmaps; 41 int* fRandPos; 42 int* fPosX; 43 int* fPosY; 44 44 }; 45 45 46 46 -
src/apps/pairs/PairsWindow.cpp
diff --git a/src/apps/pairs/PairsWindow.cpp b/src/apps/pairs/PairsWindow.cpp index a78fddf..db93b0b 100644
a b PairsWindow::_MakeGameView(int width, int height) 126 126 void 127 127 PairsWindow::NewGame() 128 128 { 129 fIsFirstClick = false; 130 fIsPairsActive = false; 131 fPairCard = 0; 132 fPairCardTmp = 0; 133 fButtonTmp = 0; 134 fButton = 0; 129 135 fButtonClicks = 0; 130 136 fFinishPairs = 0; 131 137 fPairsView->CreateGameBoard(); … … PairsWindow::MessageReceived(BMessage* message) 160 166 && message->FindInt32("height", &height) == B_OK) { 161 167 SetGameSize(width, height); 162 168 } 163 break;164 169 } 170 break; 165 171 case MENU_QUIT: 166 172 be_app->PostMessage(B_QUIT_REQUESTED); 167 173 break; … … PairsWindow::MessageReceived(BMessage* message) 203 209 } 204 210 break; 205 211 206 207 208 212 case kMsgPairComparing: 213 delete fPairComparing; 214 fPairComparing = NULL; 209 215 210 216 fIsPairsActive = true; 211 217 212 213 214 215 216 217 218 if (fPairCard == fPairCardTmp) 219 fFinishPairs++; 220 else { 221 ((TopButton*)fPairsView->fDeckCard.ItemAt(fButton))->Show(); 222 ((TopButton*)fPairsView->fDeckCard.ItemAt(fButtonTmp))->Show(); 223 } 218 224 219 // game end and results 220 if (fFinishPairs == fPairsView->fNumOfCards / 2) { 221 BString score; 222 score << fButtonClicks; 223 BString strAbout = B_TRANSLATE("%app%\n" 224 "\twritten by Ralf Schülke\n" 225 "\tCopyright 2008-2010, Haiku Inc.\n" 226 "\n" 227 "You completed the game in %num% clicks.\n"); 228 229 strAbout.ReplaceFirst("%app%", 230 B_TRANSLATE_SYSTEM_NAME("Pairs")); 231 strAbout.ReplaceFirst("%num%", score); 232 233 BAlert* alert = new BAlert("about", 234 strAbout.String(), 235 B_TRANSLATE("New game"), 236 B_TRANSLATE("Quit game")); 237 238 BTextView* view = alert->TextView(); 239 BFont font; 240 241 view->SetStylable(true); 242 243 view->GetFont(&font); 244 font.SetSize(18); 245 font.SetFace(B_BOLD_FACE); 246 view->SetFontAndColor(0, 247 strlen(B_TRANSLATE_SYSTEM_NAME("Pairs")), &font); 248 view->ResizeToPreferred(); 249 alert->SetShortcut(0, B_ESCAPE); 250 251 if (alert->Go() == 0) { 252 // New game 253 NewGame(); 254 } else { 255 // Quit game 256 be_app->PostMessage(B_QUIT_REQUESTED); 257 } 225 // game end and results 226 if (fFinishPairs == fPairsView->fNumOfCards / 2) { 227 BString score; 228 score << fButtonClicks; 229 BString strAbout = B_TRANSLATE("%app%\n" 230 "\twritten by Ralf Schülke\n" 231 "\tCopyright 2008-2010, Haiku Inc.\n" 232 "\n" 233 "You completed the game in %num% clicks.\n"); 234 235 strAbout.ReplaceFirst("%app%", 236 B_TRANSLATE_SYSTEM_NAME("Pairs")); 237 strAbout.ReplaceFirst("%num%", score); 238 239 BAlert* alert = new BAlert("about", 240 strAbout.String(), 241 B_TRANSLATE("New game"), 242 B_TRANSLATE("Quit game")); 243 244 BTextView* view = alert->TextView(); 245 BFont font; 246 247 view->SetStylable(true); 248 249 view->GetFont(&font); 250 font.SetSize(18); 251 font.SetFace(B_BOLD_FACE); 252 view->SetFontAndColor(0, 253 strlen(B_TRANSLATE_SYSTEM_NAME("Pairs")), &font); 254 view->ResizeToPreferred(); 255 alert->SetShortcut(0, B_ESCAPE); 256 257 if (alert->Go() == 0) { 258 // New game 259 NewGame(); 260 } else { 261 // Quit game 262 be_app->PostMessage(B_QUIT_REQUESTED); 258 263 } 259 break; 264 } 265 break; 260 266 261 267 default: 262 268 BWindow::MessageReceived(message); -
src/apps/pairs/PairsWindow.h
diff --git a/src/apps/pairs/PairsWindow.h b/src/apps/pairs/PairsWindow.h index ed7cb5f..7d7e35f 100644
a b class BMessageRunner; 15 15 16 16 class PairsWindow : public BWindow { 17 17 public: 18 19 virtual 18 PairsWindow(); 19 virtual ~PairsWindow(); 20 20 21 virtual void 21 virtual void MessageReceived(BMessage* message); 22 22 23 void 24 void 23 void NewGame(); 24 void SetGameSize(int width, int height); 25 25 26 26 private: 27 28 29 30 31 32 33 BMessageRunner*fPairComparing;34 35 36 intfPairCard;37 intfPairCardTmp;38 intfButtonTmp;39 intfButton;40 intfButtonClicks;41 intfFinishPairs;27 void _MakeGameView(int width, int height); 28 void _MakeMenuBar(); 29 30 BView* fBackgroundView; 31 PairsView* fPairsView; 32 BMenuBar* fMenuBar; 33 BMessageRunner* fPairComparing; 34 bool fIsFirstClick; 35 bool fIsPairsActive; 36 int fPairCard; 37 int fPairCardTmp; 38 int fButtonTmp; 39 int fButton; 40 int fButtonClicks; 41 int fFinishPairs; 42 42 }; 43 43 44 44 #endif // PAIRS_WINDOW_H