void Board::SetPieceAtIndex(Piece &piece, signed char index) { if (piece.GetColour() == Piece::White) { for (Piece &p :m_White) { if (p.GetBoardIndex() == piece.GetBoardIndex()) { p.SetBoardIndex(index); } } for (Piece &p :m_Black) { if (p.GetBoardIndex() == index) { p.SetBoardIndex(127); } } } if (piece.GetColour() == Piece::Black) { for (Piece &p :m_Black) { if (p.GetBoardIndex() == piece.GetBoardIndex()) { p.SetBoardIndex(index); } } for (Piece &p :m_White) { if (p.GetBoardIndex() == index) { p.SetBoardIndex(127); } } } }