From 7ce7b18d74539ca1e61e94b5924ff76d783b2203 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Thu, 29 Oct 2020 20:25:18 +0100 Subject: [PATCH] Overwrite setup command for Janggi variants Improve compatibility with most recent XBoard version supporting Janggi as a built-in variant (see #192). --- src/ucioption.cpp | 12 ++++++++++++ src/variant.cpp | 1 + 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/src/ucioption.cpp b/src/ucioption.cpp index 53da357..010c9c4 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -72,6 +72,18 @@ void on_variant_change(const Option &o) { int pocketsize = v->pieceDrops ? (v->pocketSize ? v->pocketSize : v->pieceTypes.size()) : 0; if (Options["Protocol"] == "xboard") { + // Overwrite setup command for Janggi variants + auto itJanggi = variants.find("janggi"); + if ( itJanggi != variants.end() + && v->variantTemplate == itJanggi->second->variantTemplate + && v->startFen == itJanggi->second->startFen + && v->pieceToCharTable == itJanggi->second->pieceToCharTable) + { + sync_cout << "setup (PH.R.AE..K.C.ph.r.ae..k.c.) 9x10+0_janggi " + << "rhea1aehr/4k4/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/4K4/RHEA1AEHR w - - 0 1" + << sync_endl; + return; + } // Send setup command sync_cout << "setup (" << v->pieceToCharTable << ") " << v->maxFile + 1 << "x" << v->maxRank + 1 diff --git a/src/variant.cpp b/src/variant.cpp index b9aa5d6..bd444cf 100644 --- a/src/variant.cpp +++ b/src/variant.cpp @@ -909,6 +909,7 @@ namespace { // Official tournament rules with bikjang and material counting. Variant* janggi_variant() { Variant* v = xiangqi_variant(); + v->variantTemplate = "janggi"; v->pieceToCharTable = ".N.R.AB.P..C.........K.n.r.ab.p..c.........k"; v->remove_piece(FERS); v->remove_piece(CANNON); -- 1.7.0.4