void put_helper(card_t *c) { if (c != NULL) { if (c->below != NULL) { put_helper(c->below); printf(" "); } putCard(c); } }
void in_received_handler(DictionaryIterator *received, void *context) { Tuple *text_tuple = dict_find(received, 0); int valu=text_tuple->value->uint8; if(valu==0){ Tuple *index_tuple = dict_find(received, 1); Tuple *cards_tuple = dict_find(received, 2); Tuple *name_tuple = dict_find(received, 3); int inx=index_tuple->value->uint8; //APP_LOG(APP_LOG_LEVEL_DEBUG,"Received stack: %d", inx); namesdata[inx]=malloc(strlen(name_tuple->value->cstring)+1); cardsdata[inx]=malloc(strlen(cards_tuple->value->cstring)+1); strcpy(namesdata[inx], name_tuple->value->cstring); strcpy(cardsdata[inx], cards_tuple->value->cstring); sent_items++; if(sent_items==num_items){ //APP_LOG(APP_LOG_LEVEL_DEBUG,"Received stacks"); menu_layer_reload_data(menu_layer); } }else if(valu==2){ sent_items=0; //APP_LOG(APP_LOG_LEVEL_DEBUG,"Received stack primer"); if(num_items>0){ for (int i = 0; i < num_items; ++i) { free(namesdata[i]); free(cardsdata[i]); } free(namesdata); free(cardsdata); } Tuple *index_tuple = dict_find(received, 1); int lengt=index_tuple->value->uint8; num_items=lengt; namesdata=malloc(lengt*sizeof(char*)); cardsdata=malloc(lengt*sizeof(char*)); } if(valu==1){ Tuple *index_tuple = dict_find(received, 1); Tuple *qa_tuple = dict_find(received, 2); int index=qa_tuple->value->uint8; if(index==2){ //Length sent_cards=0; uint8_t numQs=index_tuple->value->uint8; num_cards=numQs; cdarray=malloc(numQs*2*sizeof(char*)); //APP_LOG(APP_LOG_LEVEL_DEBUG,"Allocated array of size: %d", numQs*2*sizeof(char*)); }else{ Tuple *text_tuple = dict_find(received, 3); //APP_LOG(APP_LOG_LEVEL_DEBUG,"Starting..."); int indval=index_tuple->value->uint8; cdarray[indval]=malloc(strlen(text_tuple->value->cstring)+1); sent_cards++; strcpy(cdarray[indval],text_tuple->value->cstring); //APP_LOG(APP_LOG_LEVEL_DEBUG,"Received text: %s at %d, sentcards=%d", cdarray[indval], indval,sent_cards); } if(sent_cards>=num_cards*2){ //APP_LOG(APP_LOG_LEVEL_DEBUG,"Completed!"); putCard(); } } }
void RedWhite::sendMessageSelf() { for(int i = 0;i < 4;i++) { if(magicGroup[i]->isClicked) { informationKind = 200 + i; } } std::vector<int> tempMes; if(cancel->isClicked && informationKind < 100) { if(informationKind == 7) { tempMes.push_back(-1); emit sendMessageSelfSig(tempMes); return; } tempMes.push_back(0); emit sendMessageSelfSig(tempMes); return; } if(cancel->isClicked && informationKind > 99 && !ensure->canBeClicked) { tempMes.push_back(-1); emit sendMessageSelfSig(tempMes); return; } if(cancel->isClicked && informationKind > 99 && ensure->canBeClicked) { tempMes.push_back(0); emit sendMessageSelfSig(tempMes); return; } switch(informationKind) { case 6://血之哀伤 { putCharacter(tempMes); emit sendMessageSelfSig(tempMes); return; } case 200://同生共死 { tempMes.push_back(1); tempMes.push_back(1); putCharacter(tempMes); lifeLink = true; for(int i = 0;i < 6;i++) { if(paintStructX->gameCharacter[i]->characterPic->isClicked) { lifeLinkCha = i; } } emit sendMessageSelfSig(tempMes); return; } case 201://逆流 { tempMes.push_back(1); tempMes.push_back(2); putCardCount(tempMes); putCard(tempMes); emit sendMessageSelfSig(tempMes); return; } case 202://血之悲鸣响应阶段 { //system("pause"); if(!bloodAsk) { tempMes.push_back(1); tempMes.push_back(3); putCharacter(tempMes); putCard(tempMes); emit sendMessageSelfSig(tempMes); return; } else { for(int i = 0;i < 5;i++) { if(blood->number[i]->isClicked) { tempMes.push_back(i + 1); emit sendMessageSelfSig(tempMes); return; } } } } case 203://血之诅咒响应阶段 { tempMes.push_back(1); tempMes.push_back(4); putCharacter(tempMes); putCardCount(tempMes); putCard(tempMes); emit sendMessageSelfSig(tempMes); return; } default: { sendMessageIn(); } } }