Skip to content
Snippets Groups Projects
Commit e37585e5 authored by vautrin33u's avatar vautrin33u
Browse files

Interactions quasi-finis, reste interaction lorsque les burgers sont complets

parent fddecdad
Branches
No related tags found
No related merge requests found
This diff is collapsed.
...@@ -285,64 +285,67 @@ void gestion_events(SDL_Event *event, world_t *world){ ...@@ -285,64 +285,67 @@ void gestion_events(SDL_Event *event, world_t *world){
modif_position(&world->joueur, -temp, 0); modif_position(&world->joueur, -temp, 0);
break; break;
case SDLK_SPACE: case SDLK_SPACE: // POUR POSER DES OBJETS
//Récupération des ingrédients du frigo
for (int i=0; i<INGREDIENT_DISPO; i++){ //Interaction avec le frigo (récupérer les éléments un par un)
//Interaction avec le four
sprite_t* ingredient = &world->en_cuisine[i]; /*
sprite_t* joueur = &world->joueur; if (has_interaction(joueur, &world->four) && has_collided(joueur, ingredient) && return_state(ingredient) == POSE && get_cuisson(ingredient) == CUIT && is_already_carrying(world->en_cuisine)==SDL_FALSE){
//Interaction avec le frigo (récupérer les éléments un par un) //On retire un ingrédient du feu
//Interaction avec le four set_portable(ingredient);
/* handle_deplacement_ingredient(joueur, ingredient);
if (has_interaction(joueur, &world->four) && has_collided(joueur, ingredient) && return_state(ingredient) == POSE && get_cuisson(ingredient) == CUIT && is_already_carrying(world->en_cuisine)==SDL_FALSE){ break;
//On retire un ingrédient du feu }
set_portable(ingredient); */
handle_deplacement_ingredient(joueur, ingredient); //Interaction avec le lavabo
break; /*
} if (has_interaction(joueur, &world->lavabo) && has_collided(joueur, ingredient) && return_state(ingredient) == POSE && get_cuisson(ingredient) == PROPRE && is_already_carrying(world->en_cuisine)==SDL_FALSE){
*/ //On retire un ingrédient du lavabo
//Interaction avec le lavabo set_portable(ingredient);
/* handle_deplacement_ingredient(joueur, ingredient);
if (has_interaction(joueur, &world->lavabo) && has_collided(joueur, ingredient) && return_state(ingredient) == POSE && get_cuisson(ingredient) == PROPRE && is_already_carrying(world->en_cuisine)==SDL_FALSE){ break;
//On retire un ingrédient du lavabo }
set_portable(ingredient); */
handle_deplacement_ingredient(joueur, ingredient); if (has_interaction (&world->joueur, &world->frigo)){
break; interaction_frigo(world->en_cuisine, &world->joueur, &world->frigo);
} }
*/ if (has_interaction(&world->joueur, &world->four)){
if (has_interaction (joueur, &world->frigo)){ interaction_poser(world->en_cuisine, &world->joueur, &world->four);
interaction_frigo(world->en_cuisine, joueur, &world->frigo); }
} if (has_interaction(&world->joueur, &world->poubelle)){
if (has_interaction(joueur, &world->four)){ interaction_poubelle(world->en_cuisine, &world->joueur, get_rect(&world->frigo));
interaction_poser_four(world->en_cuisine, joueur, &world->four); }
} if (has_interaction(&world->joueur, &world->lavabo)){
if (has_interaction(joueur, &world->poubelle)){ interaction_poser (world->en_cuisine, &world->joueur, &world->lavabo);
interaction_poubelle(world->en_cuisine, joueur, get_rect(&world->frigo)); }
if (has_interaction(&world->joueur, &world->envoi)){
interaction_zone_envoi(world, world->en_cuisine, &world->joueur, &world->envoi);
}
//Interaction avec les comptoirs
for (int i=0; i<NB_COMPT_1; i++){
if (has_interaction(&world->joueur, &world->comptoire[i])){
interaction_poser(world->en_cuisine, &world->joueur, &world->comptoire[i]);
} }
if (has_interaction(joueur, &world->lavabo)){ }
interaction_poser_lavabo (world->en_cuisine, joueur, &world->lavabo); break;
case SDLK_RETURN: // Cas pour récupérer des objets
if (is_already_carrying (world->en_cuisine)==SDL_FALSE){
if (has_interaction(&world->joueur, &world->four)){
interaction_reprendre (world->en_cuisine, &world->joueur, &world->four, CUIT);
} }
if (has_interaction(joueur, &world->envoi)){ if (has_interaction(&world->joueur, &world->lavabo)){
interaction_zone_envoi(world, world->en_cuisine, joueur, &world->envoi); interaction_reprendre (world->en_cuisine, &world->joueur, &world->lavabo, PROPRE);
} }
//Interaction avec les comptoirs
for (int i=0; i<NB_COMPT_1; i++){ for (int i=0; i<NB_COMPT_1; i++){
if (has_interaction(joueur, &world->comptoire[i]) && has_collided(joueur, ingredient) && return_state(ingredient) == POSE && is_already_carrying(world->en_cuisine)==SDL_FALSE){ if (has_interaction(&world->joueur, &world->comptoire[i])){
//On retire un ingrédient interaction_reprendre (world->en_cuisine, &world->joueur, &world->comptoire[i], PROPRE);
set_portable(ingredient);
handle_deplacement_ingredient(joueur, ingredient);
break;
}
if (has_interaction(joueur, &world->comptoire[i]) && has_collided(joueur, ingredient) && return_state(ingredient) == PORTE){
//On pose un ingrédient
poser_ingredient(joueur, &world->comptoire[i], ingredient);
break;
} }
} }
} }
break; break;
} }
} }
} }
...@@ -382,43 +385,22 @@ void interaction_zone_envoi (world_t* world, sprite_t* ingredients, sprite_t* jo ...@@ -382,43 +385,22 @@ void interaction_zone_envoi (world_t* world, sprite_t* ingredients, sprite_t* jo
} }
} }
void interaction_poser_four(sprite_t* ingredients, sprite_t* joueur, sprite_t* four){ void interaction_poser (sprite_t* ingredients, sprite_t* joueur, sprite_t* meuble){
for (int i=0; i<INGREDIENT_DISPO; i++){
if (has_collided(joueur, &ingredients[i]) && return_state(&ingredients[i]) == PORTE && get_cuisson(&ingredients[i]) == CRU){
//On pose un ingrédient pour le cuire
poser_ingredient(joueur, four, &ingredients[i]);
set_cuisson(&ingredients[i], CUIT);
break;
}
}
}
void interaction_reprendre_four(sprite_t* ingredients, sprite_t* joueur, sprite_t* four){
for (int i=0; i<INGREDIENT_DISPO; i++){
if (has_interaction(joueur, four) && has_collided(joueur, &ingredients[i]) && return_state(&ingredients[i]) == POSE && get_cuisson(&ingredients[i]) == CUIT && is_already_carrying(ingredients)==SDL_FALSE){
set_portable(&ingredients[i]);
handle_deplacement_ingredient(joueur, &ingredients[i]);
break;
}
}
}
void interaction_poser_lavabo (sprite_t* ingredients, sprite_t* joueur, sprite_t* lavabo){
//Interaction avec le lavabo
for (int i=0; i<INGREDIENT_DISPO; i++){ for (int i=0; i<INGREDIENT_DISPO; i++){
if (has_collided(joueur, &ingredients[i]) && return_state(&ingredients[i]) == PORTE && get_cuisson(&ingredients[i]) == SALE){ if (has_collided(joueur, &ingredients[i]) && return_state(&ingredients[i]) == PORTE && ((meuble->nom == NOM_FOUR && get_cuisson(&ingredients[i]) == CRU) || (meuble->nom == NOM_LAVABO && get_cuisson(&ingredients[i]) == SALE) || (meuble->nom == MARQUEUR_COMPT))) {
//On pose un ingrédient pour le laver //On pose un ingrédient et on change l'état si nécessaire
poser_ingredient(joueur, lavabo, &ingredients[i]); poser_ingredient(joueur, meuble, &ingredients[i]);
set_cuisson(&ingredients[i], PROPRE); if (meuble->nom == NOM_FOUR) set_cuisson(&ingredients[i], CUIT);
if (meuble->nom == NOM_LAVABO) set_cuisson(&ingredients[i], PROPRE);
if (meuble->nom == NOM_COMPT) set_cuisson(&ingredients[i], get_cuisson(&ingredients[i]));
break; break;
} }
} }
} }
void interaction_reprendre_lavabo (sprite_t* ingredients, sprite_t* joueur, sprite_t* lavabo){ void interaction_reprendre (sprite_t* ingredients, sprite_t* joueur, sprite_t* meuble, int cuisson_attendue){
for (int i=0; i<INGREDIENT_DISPO; i++){ for (int i=0; i<INGREDIENT_DISPO; i++){
if (has_interaction(joueur, &ingredients[i]) && return_state(&ingredients[i]) == POSE && get_cuisson(&ingredients[i]) == PROPRE && is_already_carrying(ingredients)==SDL_FALSE){ if (has_interaction(joueur, &ingredients[i]) && return_state(&ingredients[i]) == POSE && (get_cuisson(&ingredients[i]) == cuisson_attendue || meuble->nom == MARQUEUR_COMPT)){
//On retire un ingrédient du lavabo
set_portable(&ingredients[i]); set_portable(&ingredients[i]);
handle_deplacement_ingredient(joueur, &ingredients[i]); handle_deplacement_ingredient(joueur, &ingredients[i]);
break; break;
......
...@@ -84,31 +84,13 @@ int aleatoire (int a, int b); ...@@ -84,31 +84,13 @@ int aleatoire (int a, int b);
void interaction_poubelle (sprite_t* ingredients, sprite_t* joueur, SDL_Rect zone_reset); void interaction_poubelle (sprite_t* ingredients, sprite_t* joueur, SDL_Rect zone_reset);
/** /**
* @brief Poser un objet sur le lavabo * @brief Reprends l'objet posé sur un sprite, limité par son état de cuisson
*
* @param ingredients Tous les ingrédients disponibles sur le jeu
* @param joueur
* @param lavabo
*/
void interaction_poser_lavabo (sprite_t* ingredients, sprite_t* joueur, sprite_t* lavabo);
/**
* @brief Reprendre un ingrédient du lavabo
*
* @param ingredients Tous les ingrédients dispo sur le jeu
* @param joueur
* @param lavabo
*/
void interaction_reprendre_lavabo (sprite_t* ingredients, sprite_t* joueur, sprite_t* lavabo);
/**
* @brief Reprendre les ingrédients du four
* *
* @param ingredients * @param ingredients
* @param joueur * @param joueur
* @param four * @param cuisson_attendue cuisson attendue avant de pouvoir récupérer l'objet
*/ */
void interaction_reprendre_four(sprite_t* ingredients, sprite_t* joueur, sprite_t* four); void interaction_reprendre (sprite_t* ingredients, sprite_t* joueur, sprite_t* meuble, int cuisson_attendue);
/** /**
* @brief Poser dans le four un ingrédient * @brief Poser dans le four un ingrédient
...@@ -117,7 +99,7 @@ void interaction_reprendre_four(sprite_t* ingredients, sprite_t* joueur, sprite_ ...@@ -117,7 +99,7 @@ void interaction_reprendre_four(sprite_t* ingredients, sprite_t* joueur, sprite_
* @param joueur * @param joueur
* @param four * @param four
*/ */
void interaction_poser_four(sprite_t* ingredients, sprite_t* joueur, sprite_t* four); void interaction_poser (sprite_t* ingredients, sprite_t* joueur, sprite_t* meuble);
/** /**
* @brief Envoie le plat, génère le score et reset les ingrédients * @brief Envoie le plat, génère le score et reset les ingrédients
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment