Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve communication with old CECP engines #709

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

alwey
Copy link
Contributor

@alwey alwey commented Jan 29, 2022

This PR consists of two parts:

  1. An addition to XboardEngine (CECP engine forfeits on claim of illegal move #411) leads to some problems. Older CECP engines do not understand many of the version 2 protocol keywords. During initialisation they claim "Illegal Move" when given an unknown command. This causes game terminations even before the first move.
    This PR Introduces the flag m_comPhase, an enumeration to discriminate the initialisation phase from the phase of game play.
    Now "Illegal move" claims by an CECP engine are only checked during the game phase.

  2. Older CECP engines send their resignation or a result claim in a different format. The second patch of this PR converts the older format into new result strings and calls XboardEngine::parseLine again. The new flag m_parserMode is used to leave out these additional tests for older result codes if a version 2 engine has been initialised.

Resolves #645

to avoid problems with illegal move claims by older engines during
initialisation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Problem with old xboard engines sending resign w/o result
1 participant