segfault oue

This commit is contained in:
Mylloon 2024-01-11 23:19:10 +01:00
parent 7b58d615fd
commit 49fe932bae
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -58,8 +58,8 @@ void Dames::event(const int x, const int y) {
switch (etape) {
case EnJeu: {
const Piece *p = getPiece(posCurseur.first, posCurseur.second);
if (getPiece(posCurseur.first, posCurseur.second)->getCategory() ==
const PieceDames *p = getPiece(posCurseur.first, posCurseur.second);
if (p && p->getCategory() ==
getPiece(joueurCourant->getPieces().at(0))->getCategory()) {
// On sélectionne la pièce
plateau.modifierSelection(posCurseur.first, posCurseur.second);
@ -67,12 +67,14 @@ void Dames::event(const int x, const int y) {
// Si une prise est possible, le joueur est obligé d'en faire une
if (prisePossible(*joueurCourant)) {
Ecran::printMessage("Vous devez forcément faire une prise.");
break;
// Quand il ne peux pas faire de prise, il déplace une de ses pieces
} else {
}
// Vérifier que le déplacement est correct
if (plateau.deplacementValide(posCurseur.first, posCurseur.second)) {
// Test si le déplacement est possible pour un pions : en diagonal en
// direction de l'autre joueur
// Crash ici parce que p = nullptr donc p->getPos() provoque une segfault
if ((joueurCourant == &joueur1 &&
posCurseur.first == p->getPos().first + 1) ||
(joueurCourant == &joueur2 &&
@ -85,7 +87,6 @@ void Dames::event(const int x, const int y) {
Ecran::printMessage(msgTonTour());
}
}
}
break;
}
case Fini: {