CardStack CreatePlayDeck() { CardStack newStack; int i, colors = 1, num = 0; switch (dwDifficulty) { case IDC_DIF_ONECOLOR: colors = 1; break; case IDC_DIF_TWOCOLORS: colors = 2; break; case IDC_DIF_FOURCOLORS: colors = 4; break; } for (i = 0; i < NUM_SPIDER_CARDS; i++) { num += NUM_CARD_COLORS / colors; Card newCard(num % NUM_STD_CARDS); newStack.Push(newCard); } return newStack; }
void Game::buildDeck() { // Iterate through the maps for pips and suits to // populate the deck. for( map<pip_t, string>::iterator it = Card::pips.begin(); it != Card::pips.end(); ++it ) { for( map<suit_t, string>::iterator jt = Card::suits.begin(); jt != Card::suits.end(); ++jt ) { Card newCard(jt->first, it->first); gameDeck.getList().push_back(newCard); } } }
nsresult nsAbLDAPProcessReplicationData::OnLDAPSearchEntry(nsILDAPMessage *aMessage) { NS_ENSURE_ARG_POINTER(aMessage); if (!mInitialized) return NS_ERROR_NOT_INITIALIZED; // since this runs on the main thread and is single threaded, this will // take care of entries returned by LDAP Connection thread after Abort. if (!mReplicationDB || !mDBOpen) return NS_ERROR_FAILURE; nsresult rv = NS_OK; // Although we would may naturally create an nsIAbLDAPCard here, we don't // need to as we are writing this straight to the database, so just create // the database version instead. nsCOMPtr<nsIAbCard> newCard(do_CreateInstance(NS_ABMDBCARD_CONTRACTID, &rv)); if (NS_FAILED(rv)) { Abort(); return rv; } rv = mAttrMap->SetCardPropertiesFromLDAPMessage(aMessage, newCard); if (NS_FAILED(rv)) { NS_WARNING("nsAbLDAPProcessReplicationData::OnLDAPSearchEntry" "No card properties could be set"); // if some entries are bogus for us, continue with next one return NS_OK; } rv = mReplicationDB->CreateNewCardAndAddToDB(newCard, PR_FALSE, nsnull); if(NS_FAILED(rv)) { Abort(); return rv; } // now set the attribute for the DN of the entry in the card in the DB nsCAutoString authDN; rv = aMessage->GetDn(authDN); if(NS_SUCCEEDED(rv) && !authDN.IsEmpty()) { newCard->SetPropertyAsAUTF8String("_DN", authDN); } rv = mReplicationDB->EditCard(newCard, PR_FALSE, nsnull); if(NS_FAILED(rv)) { Abort(); return rv; } mCount ++; if (mListener && !(mCount % 10)) // inform the listener every 10 entries { mListener->OnProgressChange(nsnull,nsnull,mCount, -1, mCount, -1); // in case if the LDAP Connection thread is starved and causes problem // uncomment this one and try. // PR_Sleep(PR_INTERVAL_NO_WAIT); // give others a chance } return rv; }