/***************************************************************************************** ---------------------------------------- APL_Certifs -------------------------------------- *****************************************************************************************/ APL_Certifs::APL_Certifs(APL_SmartCard *card) { m_cryptoFwk=AppLayer.getCryptoFwk(); m_card=card; loadCard(); }
void MohawkEngine_Riven::changeToCard(uint16 dest) { _curCard = dest; debug (1, "Changing to card %d", _curCard); // Clear the graphics cache (images typically aren't used // on different cards). _gfx->clearCache(); if (!(getFeatures() & GF_DEMO)) { for (byte i = 0; i < 13; i++) if (_curStack == rivenSpecialChange[i].startStack && _curCard == matchRMAPToCard(rivenSpecialChange[i].startCardRMAP)) { changeToStack(rivenSpecialChange[i].targetStack); _curCard = matchRMAPToCard(rivenSpecialChange[i].targetCardRMAP); } } if (_cardData.hasData) runCardScript(kCardLeaveScript); loadCard(_curCard); refreshCard(); // Handles hotspots and scripts }
int main(int argc, char *args[]) { int port = 45231; if(port >= 40000 && port <= 50000) { int mouse_x; int mouse_y; Card_struct player_card[13]; //spelarens riktiga kort Card_struct player_2_card[13]; Card_struct player_3_card[13]; Card_struct player_4_card[13]; SDL_Event e; SDL_RendererFlip flip = SDL_FLIP_NONE; //SDL_FLIP_VERTICAL; bool quit = false; SDL_Rect position_1[13]; //positionen fˆr korten SDL_Rect position_2[13]; SDL_Rect position_3[13]; SDL_Rect position_4[13]; SDL_Rect adv_pos[1]; if (init()) { printf("init worked\n"); } initCardPosition(position_1,position_2,position_3,position_4,adv_pos); loadCard(player_card, player_2_card, player_3_card, player_4_card); loadMediaAdvertisment(advertisment, gRenderer, gSpriteClipsAdvertisment); for(int i=0; i<13; i++) { printf("i: %d\n",i); loadMediaBack(i, card_2, card_3, card_4, gRenderer, gSpriteClipsBack); if(player_card[i].suit == 0){ loadMediaClubs(player_card[i].value, card, gRenderer, gSpriteClipsClubs); } else if(player_card[i].suit == 1){ loadMediaDiamonds(player_card[i].value, card, gRenderer, gSpriteClipsDiamonds); } else if(player_card[i].suit == 2){ loadMediaHearts(player_card[i].value, card, gRenderer, gSpriteClipsHearts); } else if(player_card[i].suit == 3){ loadMediaSpades(player_card[i].value, card, gRenderer, gSpriteClipsSpades); } else{ printf("error, unvalid card."); } } while (!quit) { while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { quit = true; } else if(e.button.button == SDL_BUTTON_LEFT) { mouse_x = e.button.x; mouse_y = e.button.y; if((mouse_x < adv_pos[0].w+adv_pos[0].x && mouse_x > adv_pos[0].x) && (mouse_y < adv_pos[0].h+adv_pos[0].y && mouse_y> adv_pos[0].y)) printf("reklam"); } } SDL_SetRenderDrawColor(gRenderer, 0x0D, 0x63, 0x02, 0xFF); //0D 53 02 mˆrk grˆn SDL_RenderClear(gRenderer); for(int i=0; i<13;i++){ SDL_RenderCopyEx(gRenderer, card_2[i], &gSpriteClipsBack[player_2_card[i].value],&position_2[i] , 0, NULL, flip); SDL_RenderCopyEx(gRenderer, card_3[i], &gSpriteClipsBack[player_3_card[i].value],&position_3[i] , 0, NULL, flip); SDL_RenderCopyEx(gRenderer, card_4[i], &gSpriteClipsBack[player_4_card[i].value],&position_4[i] , 0, NULL, flip); if(player_card[i].suit == 0) SDL_RenderCopyEx(gRenderer, card[i], &gSpriteClipsClubs[player_card[i].value],&position_1[i] , 0, NULL, flip); else if(player_card[i].suit == 1) SDL_RenderCopyEx(gRenderer, card[i], &gSpriteClipsDiamonds[player_card[i].value],&position_1[i] , 0, NULL, flip); else if(player_card[i].suit == 2) SDL_RenderCopyEx(gRenderer, card[i], &gSpriteClipsHearts[player_card[i].value],&position_1[i] , 0, NULL, flip); else if(player_card[i].suit == 3) SDL_RenderCopyEx(gRenderer, card[i], &gSpriteClipsSpades[player_card[i].value],&position_1[i] , 0, NULL, flip); else continue; } SDL_RenderCopyEx(gRenderer, advertisment[0], &gSpriteClipsAdvertisment[0],&adv_pos[0] , 0, NULL, flip); SDL_RenderPresent(gRenderer); } } return 0; }
int main(int argc, char* args[]) { int mouse_x; int mouse_y; Player player_1[1]; //spelarens riktiga kort Player player_2[1]; Player player_3[1]; Player player_4[1]; SDL_Event e; int my_turn = 1; //lås om jag kan klicka på mina kort eller ej. int cardNr = -1; bool click = false; bool quit = false; bool picked[13] = {false}; bool winner = true; int turn = 0; int leadCard = 0; //färgen som startade ska man följa. bool brokenHeart = false; int next_player = 0; SDL_Rect position_1[13]; //positionen för korten till spelaren SDL_Rect position_2[13]; SDL_Rect position_3[13]; SDL_Rect position_4[13]; SDL_Rect advertism_pos[1]; SDL_Rect dropzone_pos[1]; SDL_Rect initial_pos[1]; //temp var SDL_Rect played_pos[4]; //koordinaterna för spelade kort initial_pos[0].y = RES_Y-HEIGHT; //korten man börjar med ligger alltid på samma höjd.. botten minus höjden på kortet. if (init()) { printf("init worked\n"); } button help = createButton(0,0,20,20,"help.png",gRenderer); initSpritePosition(position_1,position_2,position_3,position_4,advertism_pos,dropzone_pos,played_pos); loadMediaAdvertisment(advertisment, gRenderer, gSpriteClipsAdvertisment); loadMediaDropzone(dropzone, gRenderer, gSpriteClipsDropzone); position(player_1,player_2,player_3,player_4); //Även absoluta platsen måste med som man får av server vid anslutning while(!quit) { while(turn < 13 && !quit) { if(winner) //om runda är klar och någon vunnit, ladda nya kort. { resetTurn(player_1,player_2,player_3,player_4); winner = false; loadCard(player_1, player_2, player_3, player_4); //kortet som delas ut // for(int i=0; i<13; i++) // { // printf("kort: %i , suit: %i \n", i, player_1[0].game_hand[i].suit); // } for(int i=0; i<13; i++) { loadMediaBack(i, card_2, card_3, card_4, gRenderer, gSpriteClipsBack); if(player_1[0].game_hand[i].suit == 0){ loadMediaClubs(player_1[0].game_hand[i].value, card, gRenderer, gSpriteClipsClubs); } else if(player_1[0].game_hand[i].suit == 1){ loadMediaDiamonds(player_1[0].game_hand[i].value, card, gRenderer, gSpriteClipsDiamonds); } else if(player_1[0].game_hand[i].suit == 2){ loadMediaHearts(player_1[0].game_hand[i].value, card, gRenderer, gSpriteClipsHearts); } else if(player_1[0].game_hand[i].suit == 3){ loadMediaSpades(player_1[0].game_hand[i].value, card, gRenderer, gSpriteClipsSpades); } else{ printf("error, unvalid card."); return 1; } } } while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { quit = true; } else if(e.type == SDL_MOUSEBUTTONDOWN) { if(e.button.button == SDL_BUTTON_LEFT) { mouse_x = e.button.x; mouse_y = e.button.y; if((mouse_x < advertism_pos[0].w+advertism_pos[0].x && mouse_x > advertism_pos[0].x) && (mouse_y < advertism_pos[0].h+advertism_pos[0].y && mouse_y> advertism_pos[0].y)) { openWeb(); } } } else if(e.type == SDL_MOUSEMOTION) { if(my_turn) //ska endast gå att flytta korten om det är min tur { if (SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(SDL_BUTTON_LEFT)) { mouse_x=e.button.x; mouse_y=e.button.y; if(click == false) { cardNr = liftCard(initial_pos, position_1, mouse_x, mouse_y, picked); click = true; } if(cardNr >-1) { mouse_x = e.motion.x; mouse_y = e.motion.y; moveCard(position_1, cardNr, mouse_x, mouse_y); } } } } else { click = false; } if(click == false && cardNr >-1) //cardNr> -1 måste finnas för att undvika en bugg att baksidan laddas hos spelaren och blockerar kort. { if(((position_1[cardNr].x + WIDTH/2 > dropzone_pos[0].x) && (position_1[cardNr].x + WIDTH/2 < dropzone_pos[0].x+dropzone_pos[0].w))&&((position_1[cardNr].y + HEIGHT/2 > dropzone_pos[0].y) && (position_1[cardNr].y + HEIGHT/2 < dropzone_pos[0].y + dropzone_pos[0].h))) { position_1[cardNr].x = played_pos[0].x; //droppas in på exakt plats position_1[cardNr].y = played_pos[0].y; //droppas in på exakt plats if(checkCard(player_1, cardNr, leadCard, brokenHeart, picked, turn, next_player)) { sendCard(player_1, cardNr); turn++; printf("turn %i\n",turn); cardNr = -1; } else //om kortet inte fick läggas i mitten { position_1[cardNr].x = initial_pos[0].x; position_1[cardNr].y = initial_pos[0].y; picked[cardNr] = false; } } else // { position_1[cardNr].x = initial_pos[0].x; position_1[cardNr].y = initial_pos[0].y; } } } SDL_SetRenderDrawColor(gRenderer, 0x0D, 0x63, 0x02, 0xFF); //0D 63 02 SDL_RenderClear(gRenderer); SDL_RenderCopy(gRenderer, dropzone[0], &gSpriteClipsDropzone[0], &dropzone_pos[0] ); SDL_RenderCopy(gRenderer, help.texture,NULL, &help.rect); // for(int i=0 ; i<4; i++) // { // SDL_RenderCopy(gRenderer, card[i], &gSpriteClipsHearts[i],&played_pos[i]); // } for(int i = 0; i < 13 ; i++ ) //Renderar spelarens egna kort { if(player_1[0].game_hand[i].suit == 0 ) SDL_RenderCopy(gRenderer, card[i], &gSpriteClipsClubs[player_1[0].game_hand[i].value],&position_1[i] ); else if(player_1[0].game_hand[i].suit == 1 ) SDL_RenderCopy(gRenderer, card[i], &gSpriteClipsDiamonds[player_1[0].game_hand[i].value],&position_1[i] ); else if(player_1[0].game_hand[i].suit == 2 ) SDL_RenderCopy(gRenderer, card[i], &gSpriteClipsHearts[player_1[0].game_hand[i].value],&position_1[i] ); else if(player_1[0].game_hand[i].suit == 3 ) SDL_RenderCopy(gRenderer, card[i], &gSpriteClipsSpades[player_1[0].game_hand[i].value],&position_1[i] ); else continue; } for(int i = 0; i < 13 - player_2[0].turn ; i++ ){ //Renderar baksida kort till vänster SDL_RenderCopy(gRenderer, card_2[i], &gSpriteClipsBack[0],&position_2[i] ); } for(int i = 0; i < 13 - player_3[0].turn ; i++ ){ //Renderar baksida kort mittemot SDL_RenderCopy(gRenderer, card_3[i], &gSpriteClipsBack[0],&position_3[i] ); } for(int i = 0; i < 13 - player_4[0].turn ; i++ ){ //Renderar baksida kort höger SDL_RenderCopy(gRenderer, card_4[i], &gSpriteClipsBack[0],&position_4[i] ); } SDL_RenderCopy(gRenderer, advertisment[0], &gSpriteClipsAdvertisment[0],&advertism_pos[0] ); SDL_RenderPresent(gRenderer); } winner = true; turn = 0; } return 0; }