From 89ca7bf7ee0c418d1a2cdf2830c9a34c78a715b0 Mon Sep 17 00:00:00 2001 From: H.G.Muller Date: Fri, 10 Oct 2014 17:01:51 +0200 Subject: [PATCH] Increase number of engine-defined-variants Buttons XB An third column is added to the New Variant dialog when necessary. --- dialogs.c | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/dialogs.c b/dialogs.c index e02bc17..8e3936f 100644 --- a/dialogs.c +++ b/dialogs.c @@ -494,6 +494,18 @@ static Option variantDescriptors[] = { { VariantChu, SAME_ROW, 135, NULL, (void*) &Pick, "#BFFFBF", NULL, Button, N_("chu shogi (12x12)")}, //{ -1, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_(" ")}, // dummy, to have good alignment // optional buttons for engine-defined variants +{ 0, NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }, +{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Skip, ""}, +{ VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, +{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, { VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, { VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, { VariantUnknown, 0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL }, @@ -554,7 +566,10 @@ NewVariantProc () ranksTmp = filesTmp = sizeTmp = -1; // prefer defaults over actual settings if(appData.noChessProgram) sprintf(warning, _("Only bughouse is not available in viewer mode.")); else sprintf(warning, _("All variants not supported by the first engine\n(currently %s) are disabled."), first.tidy); - if(!start) while(variantDescriptors[start].type != Skip) start++; // locate first spare + if(!start) { + while(variantDescriptors[start].type != EndMark) start++; // locate spares + start += 2; // conditional EndMark and Break + } last = -1; for(i=0; variantDescriptors[start+i].type != EndMark; i++) { // create buttons for engine-defined variants char *v = EngineDefinedVariant(&first, i); @@ -569,6 +584,8 @@ NewVariantProc () variantDescriptors[start+last+1].type = Button; variantDescriptors[start+last+1].value = Skip; } + variantDescriptors[start-2].type = (last < 0 ? EndMark : Skip); + variantDescriptors[start-1].type = (last < 6 ? Skip : Break); safeStrCpy(buf, engineVariant, MSG_SIZ); *engineVariant = NULLCHAR; // yeghh... GenericPopUp(variantDescriptors, _("New Variant"), TransientDlg, BoardWindow, MODAL, 0); safeStrCpy(engineVariant, buf, MSG_SIZ); // must temporarily clear to avoid enabling all variant buttons @@ -2397,7 +2414,7 @@ DisplayLogos (Option *w1, Option *w2) { void *whiteLogo = first.programLogo, *blackLogo = second.programLogo; if(appData.autoLogo) { - + if(appData.noChessProgram) whiteLogo = blackLogo = NULL; else switch(gameMode) { // pick logos based on game mode case IcsObserving: whiteLogo = second.programLogo; // ICS logo -- 1.7.0.4