void NewGame(void) { TRACE("ENTER NewGame()\n"); int i, j; SolWnd.EmptyStacks(); //create a new card-stack CardStack deck; deck.NewDeck(); deck.Shuffle(); activepile.Clear(); //deal to each row stack.. for(i = 0; i < NUM_ROW_STACKS; i++) { CardStack temp; temp.Clear(); pRowStack[i]->SetFaceDirection(CS_FACE_DOWNUP, i); for(j = 0; j <= i; j++) { temp.Push(deck.Pop()); } pRowStack[i]->SetCardStack(temp); } //put the other cards onto the deck pDeck->SetCardStack(deck); pDeck->Update(); // For the 1-card-mode, all cards need to be completely overlapped if(!(dwOptions & OPTION_THREE_CARDS)) pPile->SetOffsets(0, 0); SolWnd.Redraw(); fGameStarted = false; TRACE("EXIT NewGame()\n"); }
void NewGame(void) { int i, j; /* First four stack with five, all other with 4 */ int covCards = 5; CardStack fakeDeck, temp; SpiderWnd.EmptyStacks(); /* Create a new card-deck, fake deck */ deck = CreatePlayDeck(); deck.Shuffle(); fakeDeck.NewDeck(); fakeDeck.Shuffle(); /* Reset progress value */ cardsFinished = 0; /* Deal to each stack */ for (i = 0; i < NUM_STACKS; i++) { temp.Clear(); if (i == NUM_SMALLER_STACKS) { covCards--; } for (j = 0; j <= covCards; j++) { temp.Push(deck.Pop(1)); } pStack[i]->SetFaceDirection(CS_FACE_DOWNUP, covCards); pStack[i]->SetCardStack(temp); } /* Deal five fake cards to the deck */ pDeck->SetCardStack(fakeDeck.Pop(5)); SpiderWnd.Redraw(); fGameStarted = false; }