From d1d9f7d69bb2c0bd32fb25c5b0a54a73d2782a4b Mon Sep 17 00:00:00 2001 From: H.G.Muller Date: Mon, 19 Feb 2018 14:12:52 +0100 Subject: [PATCH] Fix Tori and Alien Wa Slipping in the alternative definition of Wa Shogi as 11x17+16_chu, for the benefit of the WinBoard Alien Edition, had broken Tori Shogi, as well as being defective itself, because the ptc[], betza[] and pstType[] and lances[] tables (which are indexed by the variant number) were not adapted to the new variant numbering. --- dropper.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dropper.c b/dropper.c index f45319d..93e3a7a 100644 --- a/dropper.c +++ b/dropper.c @@ -340,7 +340,7 @@ shogiProms[16] = { Z_MUST, Z_2ND, COLOR, 0, Z_MUST, Z_MUST, Z_2ND }, toriProms[16] = { Z_MUST, 0, 0, 0, 0, Z_MUST }, waProms[16] = { Z_MUST, Z_2ND, Z_MUST, Z_MUST, Z_MUST, COLOR, COLOR, Z_MUST, Z_MUST, Z_MUST, COLOR, Z_MUST, COLOR, Z_MUST }; -int lances[] = { 1, 3, 0103, 0103, 3, 1, 1 }; // bitmap indicating piece types with drop restriction (LSB = Pawn) in various variants +int lances[] = { 1, 3, 0103, 0103, 3, 3, 1 }; // bitmap indicating piece types with drop restriction (LSB = Pawn) in various variants char *betza[] = { // piece defs for sending to GUI NULL, // suppresses setup command @@ -349,6 +349,7 @@ char *betza[] = { // piece defs for sending to GUI NULL, ",P& fW,L& fWbF,U& fWbF,C& fFsW,G& fFvW,M& fFvW,D& fFbsW,V& FfW,W& WfF,O& fR,H& fRbW2,S& sRvW,F& BfW,E& vRfF3bFsW,R& fRFbW,X& FAvWvD" ",+P& WfF,+L& vRfF3bFsW,+U& BfW,+C& vRfFsW,+G& sRvW,+M& FfW,+D& WfF,+V& FfsW,+W& K,+O& K,+H& vN,+S& R,+F& BvRsW,+R& FAvWvD", + NULL, ",S& fW,P& fDbF,L& fRbrBblF,R& fRblBbrF,C& FvW,F& FfsW,+S& fAbD,+F& fBbRbF2fsW", }; @@ -359,6 +360,7 @@ char *ptc[] = { // XBoard 4.9 piece-to-char table NULL, "P..^S^FV..^LW^OH.F.^R.E....R...D.GOL^M..^H.M.C.^CU.^W../.......^V.^P.^U..^DS.^GXK" "p..^s^fv..^lw^oh.f.^r.e....r...d.gol^m..^h.m.c.^cu.^w../.......^v.^p.^u..^ds.^gxk", + NULL, "S.....F..........^F.P........^S....L........C......RKs.....f..........^f.p........^s....l........c......rk" }; @@ -368,6 +370,7 @@ char *pstType[] = { "3077160 7777187", "3077160 7777187", "3055676777060100 77100787777801", + "3055676777060100 77100787777801", "770076 100001" }; @@ -459,9 +462,9 @@ GameInit (char *name) // determine variant parameters if(sscanf(name, "%dx%d+%d_%c", &f, &r, &i, &c) == 4) { - for(v=TORI_NR; --v>0; ) if(variants[v].files == f && variants[v].ranks == r && variants[v].hand == i) break; + for(v=TORI_NR+1; --v>0; ) if(variants[v].files == f && variants[v].ranks == r && variants[v].hand == i) break; } else - for(v=TORI_NR; --v>0;) if(!strcmp(name, variants[v].name)) break; + for(v=TORI_NR+1; --v>0;) if(!strcmp(name, variants[v].name)) break; nrFiles = variants[v].files; nrRanks = variants[v].ranks; zone = variants[v].zone; -- 1.7.0.4