Un jeu de cartes à piper les une dans les autres - retour accueil
git clone git://bebou.netlib.re/pipe-game
Log | Files | Refs | README |
commit 15d662febf59dc7bdbf463dbcf5b31b145cced5a parent 96a532bf446374be50cf10b0024f3cc52f47c73c Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Thu, 30 Jan 2025 14:31:14 +0100 Selec arg avec souris reste sur arg et pas hand Hand arrive en premier dans la liste des piles et on détectait les piles que sur x Donc curmenu était mis à hand automatiquement puis le break coupait le reste de la boucle for On ajoute donc un test quand curmenu est hand pour vérifier sur y si on est pas en réalité dans arg Problème : Quand on bouge un arg vers la gauche ou droite le curmenu devient played* et on deselec l'arg Ce que l'on veut : Que l'arg reste selec quand on passe sur un played* parce que c'est pas le menu de dest et qu'il soit passé dans playedarg uniquement quand la souris arrive dessus Diffstat:
M | interface.c | | | 12 | ++++++++---- |
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/interface.c b/interface.c @@ -380,11 +380,15 @@ int main(int argc, char **argv) { if( piles[i]->begin.x < ev.x && ev.x < piles[i]->end.x ) { if(ev.mod==TB_MOD_MOTION) { selection=true; curmenu=piles[i]; + if(curmenu==piles[HAND] && piles[ARGS]->begin.y<ev.y && ev.y<piles[ARGS]->end.y) + curmenu=piles[ARGS]; if(curmenu!=prevcurmenu) { - if(ev.x<prevpos.x) - curmenu=mvcardlr(prevcurmenu, piles, selection, LEFT); - else if (ev.x>prevpos.x) - curmenu=mvcardlr(prevcurmenu, piles, selection, RIGHT); + if ( curmenu==prevcurmenu->destleft || curmenu==prevcurmenu->destright ) { + if(ev.x<prevpos.x) + curmenu=mvcardlr(prevcurmenu, piles, selection, LEFT); + else if (ev.x>prevpos.x) + curmenu=mvcardlr(prevcurmenu, piles, selection, RIGHT); + } } else if(ev.y>prevpos.y) curmenu=mvcardup(curmenu,piles,DOWN,selection); else if (ev.y<prevpos.y)