From bd85ed7a2aac57e6afa8fdab7f3a13ce22910b18 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Mon, 14 Oct 2013 20:07:13 +0200 Subject: [PATCH] Adapt WinBoard front-end to Mighty Lion A Lion piece is added, and the roar sound and driver is added. Put Mighty Lion in New Variant menu (WB) Debug WB Mighty Lion Fix dragging on second leg WB Two-leg move animation WB Add Lion .bmp files (WB) --- backend.c | 5 ++--- backend.h | 1 + common.h | 2 +- dialogs.c | 2 +- winboard/bitmaps/ln33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/ln33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/ln33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/ln49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/ln49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/ln49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/ln72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/ln72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/ln72w.bmp | Bin 0 -> 926 bytes winboard/defaults.h | 4 ++-- winboard/resource.h | 1 + winboard/winboard.c | 33 ++++++++++++++++++++++++++++++--- winboard/winboard.rc | 12 ++++++++++++ winboard/woptions.c | 5 +++++ 18 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 winboard/bitmaps/ln33o.bmp create mode 100644 winboard/bitmaps/ln33s.bmp create mode 100644 winboard/bitmaps/ln33w.bmp create mode 100644 winboard/bitmaps/ln49o.bmp create mode 100644 winboard/bitmaps/ln49s.bmp create mode 100644 winboard/bitmaps/ln49w.bmp create mode 100644 winboard/bitmaps/ln72o.bmp create mode 100644 winboard/bitmaps/ln72s.bmp create mode 100644 winboard/bitmaps/ln72w.bmp diff --git a/backend.c b/backend.c index 6675344..4c9968f 100644 --- a/backend.c +++ b/backend.c @@ -5284,7 +5284,8 @@ ProcessICSInitScript (FILE *f) } -static int lastX, lastY, lastLeftX, lastLeftY, selectFlag, dragging; +static int lastX, lastY, lastLeftX, lastLeftY, selectFlag; +int dragging; static ClickType lastClickType; void @@ -7193,7 +7194,6 @@ HoverEvent (int xPix, int yPix, int x, int y) { static int oldX = -1, oldY = -1, oldFromX = -1, oldFromY = -1; int r, f; - if(dragging == 2) DragPieceMove(xPix, yPix); // [HGM] lion: drag without button for second leg if(!first.highlight) return; if(fromX != oldFromX || fromY != oldFromY) oldX = oldY = -1; // kludge to fake entry on from-click if(x == oldX && y == oldY) return; // only do something if we enter new square @@ -7464,7 +7464,6 @@ LeftClick (ClickType clickType, int xPix, int yPix) return; } if(dragging == 2) { // [HGM] lion: just turn buttonless drag into normal drag, and let release to the job - dragging = 1; return; } if(x == killX && y == killY) { // second click on this square, which was selected as first-leg target diff --git a/backend.h b/backend.h index 69197ce..741a9e9 100644 --- a/backend.h +++ b/backend.h @@ -115,6 +115,7 @@ extern char lastMsg[MSG_SIZ]; extern Boolean bookUp; extern int tinyLayout, smallLayout; extern Boolean mcMode; +extern int dragging; void MarkMenuItem P((char *menuRef, int state)); char *CmailMsg P((void)); diff --git a/common.h b/common.h index 2bd7653..ec067ad 100644 --- a/common.h +++ b/common.h @@ -304,7 +304,7 @@ typedef enum { } ColorClass; typedef enum { - SoundMove, SoundBell, SoundAlarm, SoundIcsWin, SoundIcsLoss, + SoundMove, SoundBell, SoundRoar, SoundAlarm, SoundIcsWin, SoundIcsLoss, SoundIcsDraw, SoundIcsUnfinished, NSoundClasses } SoundClass; diff --git a/dialogs.c b/dialogs.c index 5bcbc0b..1a918ed 100644 --- a/dialogs.c +++ b/dialogs.c @@ -2178,7 +2178,7 @@ Exp (int n, int x, int y) if(n == 0) { // motion if(SeekGraphClick(Press, x, y, 1)) return NULL; - if(but1 && !PromoScroll(x, y)) DragPieceMove(x, y); + if((but1 || dragging == 2) && !PromoScroll(x, y)) DragPieceMove(x, y); if(but3) MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap)); if(appData.highlightDragging) { f = EventToSquare(x, BOARD_WIDTH); if ( flipView && f >= 0) f = BOARD_WIDTH - 1 - f; diff --git a/winboard/bitmaps/ln33o.bmp b/winboard/bitmaps/ln33o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1e369b251b11baa67a08d1ee0f30577c136d20f4 GIT binary patch literal 326 zcmXZXu?_)25C-7WsoW!6blyNAQ7Cj?K&y~YD3rqKbUcDybDangjot&?u{xT|7Q*4o z{%&S(lbJ7nW+$6%w3-D+PCe_Dtjc*696Kmx980$3V%`8aFfOK9#wQVfNh*@Nv10G> zoKzUFKNWV^hd%dNoy0q_`r5Mh(KljmY1(F^8i|Ui$9X=c6+0tig;l}Gz6RDjPnLMG t=?qVnPAX=NuS4+=$h+ne3?=KqO(gBIn0O0u317VCnzzm9%KrdQ`~y#ufOr4^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/ln33s.bmp b/winboard/bitmaps/ln33s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4f4b4fe17cbcd53444a5da841c1994ebeee916ca GIT binary patch literal 326 zcmXZXF%E)25Cza#f&m&qFCZ#~B_}Wn#@HAsJb=frlZXefu($C7c9tYkc#Q3|lac}% zcV^jS=H>5fvYBYT6u@Vy`b5>REdhF9D~hfze%Lld1Z-SPRmRF<>oV5DOzTGjn%91? zA%A|5k)=0crQMGy%a;?8?^7orKc;yjp9QeFVO%KRkFX^lhR}jG2eF`g39ur|9oS^G r2ZyXfzehIUjoCEef17!daSqQGYj|H0g>=~z4yBIDyE%L7F`Bdv9(v8BiBnc(NH zd{bN_5}I)qK9?5W7>OiUCuY^$M(4f`jgm~?fjKw@2jdDj%a141RpX!Us5{L&itd;2 k^}hFQK+3vn4rh)34met$bf1%*8H?#G!5U=Smz;giFSIB_+5i9m literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/ln49o.bmp b/winboard/bitmaps/ln49o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..70f760e8f77a9dc3ac02cb7cc9b93eb43fa1e7e9 GIT binary patch literal 454 zcmXZYF-rq66bJAe?)D?Nx;O};gV2JDllV!rIH`+?IMmG#;LvYj9n@Py$Btr8J&MDD zsIQjNaO9f5|6DHc@+0qs$4hqho)T5BHuqJ=dJ~C?g-i0d9HYM2YycF4%g{*@Eqv`& z9v!59Kh$q^x)w~4Zv^j=A8GmkIqinLmV;fYwRE?Ps&r}x$3{(c?grK<3vt<;PGphI zjGDK^|Ipc|`0uGve|^DWsKa8D%7w$tFYP#tK8z}!qhmzR8+)97^lns6zo-PW&c!5mL=sB#Mgmtm^dlYmas8N^^|8>aph`EE+d7q}Xmutbdvud9H zEL*hz!S9j9g9-Z#K4^8Sv2SUqG0X(ht>_n`kDX6^%WzFl(nVSY*TXr0rZWoG>qJ@` zRROH~OCJ12KcN-x=iia{QaVAdgRd$#!SdzUwiaWoGOx5z&%wS~*`Y33LU5*BXp*mi WLD2szUEUyV>rL#d_etz`?EfDqA)Xol literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/ln49w.bmp b/winboard/bitmaps/ln49w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..16f45eb20dd04d586060df18f9562efe1cfb9b47 GIT binary patch literal 454 zcmZ{gF%H5o3`HHaq7(E8tgKuBB$iHyqi_Vg!N!$3AkL8^bYws^|HmF8q(*XHzJKB* zKAqo5$~a)&A@&hT+;{-5jYruSlbHzuL%}IIGuF`0(Ro+7P^-u~*aqe1dASA$khMFN zZ*Z!)QYpIqqlB)Qc@BDsN*jJ*QW+`1Og2#u{7@rb-UH6z^FMs2jTQUQOWeZG*nh0Z d4^i_X6g6Dbk!XZdgR}G{KYL%z8t=FF{|9OMhw%Ua literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/ln72o.bmp b/winboard/bitmaps/ln72o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cb233563f9c41542d81d17861ffd6ac11acde041 GIT binary patch literal 926 zcmYk*F^dyH7zW^kE3Oa>c%|SLHrA$5gbdhdBl!!0pa`O1ngit~m2K+4dizH#A}4GU z+@D}z#VwO%h3s&1-|PF$%;g-I;o;4z&OX1l`Wu}3^}FCsteky(Yc%g*FqzfCC&*yNjarVeKr!B`{TozRETQg! z24%EE*`QhD33G?x9^D#a^~!W`Kka>ecHYo`jJDNhSqI;kTk1!)gUpJ%bU$Mk=(vw| zpI6BpYiMYVy5uzgzwm_Ap4G1K%)#1~%VZgtgE7zewXp^$JYRrN&*N%~u6@C+ Pk~cT+3wVEroC^L2FIp2| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/ln72s.bmp b/winboard/bitmaps/ln72s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f0a88ce7bb6707b264defa8ffb9bffb3f1365df2 GIT binary patch literal 926 zcmYk*L5kEs6b9hGI?!n_Bm-_DHuS=c%SdkqglW-@8}ASe^m=ZP8U$B;09T%2j!>e^ zYy_`R-~r6eG{ltudzDNqsN(C_uPQGu$?JDt66m<%`keFaG!2Z#YyST|k5dEF5<&oH z9E=eo3a-&TlF8@L!A$O3zxd#Q-!Z>0xa;R+V2w|$p3{q0huJH$+RaXkEuz<0oWR`J zypmLp=i5sG|paOn)&A9DH(B=5kR0*788;~uwg@1^siC+<><3vAVL0d`mWFBiClZzX56Ft^4<*K}evXROdv zX?$K|N$1dOP2CpfeY xX|%@z1TV>jG&)%@^wUh@n2$aU;|Vjed6Qn`Ez%AcKMc~jne zi~G$tov+|Fm&f{-+g#TC*L*wqQ}m`PuGyFu0*&hz0w$9y*V5%-zTwa16hF=<-5m seWl~u(?^C68i8xGW^T~zht9b8&b`<^=eiffv5tFP|1VyrHHTF51s{yyi~s-t literal 0 HcmV?d00001 diff --git a/winboard/defaults.h b/winboard/defaults.h index d2fd9cf..fcab2db 100644 --- a/winboard/defaults.h +++ b/winboard/defaults.h @@ -205,14 +205,14 @@ #define BUILT_IN_SOUND_NAMES {\ "Beepbeep", "Ching", "Click", "Cymbal", "Ding", "Drip", \ "Gong", "Laser", "Move", "Penalty", "Phone", "Pop", "Pop2", \ - "Slap", "Squeak", "Swish", "Thud", "Whipcrack", \ + "Roar", "Slap", "Squeak", "Swish", "Thud", "Whipcrack", \ "Alarm", "Challenge", "Channel", "Channel1", "Draw", "Kibitz", \ "Lose", "Request", "Seek", "Shout", "SShout", "Tell", "Unfinished", \ "Win", NULL \ } #define SETTINGS_FILE "winboard.ini" -#define DEBUG_FILE "winboard.debug" +#define DEBUG_FILE "winboard.debug" #define ICS_LOGON "ics.ini" diff --git a/winboard/resource.h b/winboard/resource.h index 0cebfcf..efa3068 100644 --- a/winboard/resource.h +++ b/winboard/resource.h @@ -508,6 +508,7 @@ #define OPT_VariantSpartan 1531 #define OPT_VariantASEAN 1532 #define OPT_VariantGrand 1534 +#define OPT_VariantLion 1535 #define OPT_EngineVariant 1560 #define IDC_Files 1550 #define IDC_Ranks 1551 diff --git a/winboard/winboard.c b/winboard/winboard.c index e5df6db..1539f42 100644 --- a/winboard/winboard.c +++ b/winboard/winboard.c @@ -109,7 +109,6 @@ VOID NewVariantPopup(HWND hwnd); int FinishMove P((ChessMove moveType, int fromX, int fromY, int toX, int toY, /*char*/int promoChar)); void DisplayMove P((int moveNumber)); -Boolean ParseFEN P((Board board, int *blackPlaysFirst, char *fen)); void ChatPopUp P((char *s)); typedef struct { ChessSquare piece; @@ -2273,7 +2272,7 @@ InitDrawingSizes(BoardSize boardSize, int flags) && (boardSize < SizePetite || boardSize > SizeBulky) // Archbishop and Chancellor available in entire middle range || (v == VariantShogi && boardSize != SizeModerate) // Japanese-style Shogi || v == VariantKnightmate || v == VariantSChess || v == VariantXiangqi || v == VariantSpartan - || v == VariantShatranj || v == VariantMakruk || v == VariantGreat || v == VariantFairy ) { + || v == VariantShatranj || v == VariantMakruk || v == VariantGreat || v == VariantFairy || v == VariantLion ) { if(boardSize < SizeMediocre) boardSize = SizePetite; else if(boardSize > SizeModerate) boardSize = SizeBulky; else boardSize = SizeMiddling; @@ -2629,6 +2628,9 @@ InitDrawingSizes(BoardSize boardSize, int flags) pieceBitmap[0][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "s"); pieceBitmap[1][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "o"); pieceBitmap[2][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "w"); + pieceBitmap[0][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "s"); + pieceBitmap[1][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "o"); + pieceBitmap[2][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "w"); if(gameInfo.variant == VariantShogi) { /* promoted Gold represemtations */ pieceBitmap[0][WhiteCannon] = DoLoadBitmap(hInst, "wp", squareSize, "s"); @@ -3251,6 +3253,8 @@ BOOL HasHighlightInfo() return result; + + } BOOL IsDrawArrowEnabled() @@ -4274,8 +4278,10 @@ MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) } else if (PtInRect((LPRECT) &blackRect, pt)) { ClockClick(!flipClock); break; } + if(dragging) { // [HGM] lion: don't destroy dragging info if we are already dragging dragInfo.start.x = dragInfo.start.y = -1; dragInfo.from = dragInfo.start; + } if(fromX == -1 && frozen) { // not sure where this is for fromX = fromY = -1; DrawPosition(forceFullRepaint || FALSE, NULL); /* [AS] */ @@ -4295,7 +4301,7 @@ MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) if(PromoScroll(pt.x - boardRect.left, pt.y - boardRect.top)) break; MovePV(pt.x - boardRect.left, pt.y - boardRect.top, boardRect.bottom - boardRect.top); if ((appData.animateDragging || appData.highlightDragging) - && (wParam & MK_LBUTTON) + && (wParam & MK_LBUTTON || dragging == 2) && dragInfo.from.x >= 0) { BOOL full_repaint = FALSE; @@ -5105,6 +5111,7 @@ WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case IDM_Rematch: + RematchEvent(); break; @@ -6262,6 +6269,7 @@ StartupDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) SwapEngines(singleList); // temporarily swap first and second, to load a second 'first', ... ParseArgs(StringGet, &p); SwapEngines(singleList); // ... and then make it 'second' + appData.noChessProgram = FALSE; appData.icsActive = FALSE; } else if (IsDlgButtonChecked(hDlg, OPT_ChessServer)) { @@ -6851,6 +6859,7 @@ SaveInHistory(char *cmd) histIn = (histIn + 1) % HISTORY_SIZE; if (history[histIn] != NULL) { free(history[histIn]); + history[histIn] = NULL; } histP = histIn; @@ -8717,6 +8726,13 @@ EditCommentPopUp(int index, char *title, char *str) } +int +Roar() +{ + MyPlaySound(&sounds[(int)SoundRoar]); + return 1; +} + VOID RingBell() { @@ -8874,6 +8890,7 @@ DisplayBlackClock(long timeRemaining, int highlight) HDC hdc; char *flag = blackFlag && gameMode == TwoMachinesPlay ? "(!)" : ""; + if(appData.noGUI) return; hdc = GetDC(hwndMain); if (!IsIconic(hwndMain)) { @@ -9892,16 +9909,23 @@ AnimateMove(board, fromX, fromY, toX, toY) int toY; { ChessSquare piece; + int x = toX, y = toY; POINT start, finish, mid; POINT frames[kFactor * 2 + 1]; int nFrames, n; + if(killX >= 0 && IS_LION(board[fromY][fromX])) Roar(); + if (!appData.animate) return; if (doingSizing) return; if (fromY < 0 || fromX < 0) return; piece = board[fromY][fromX]; if (piece >= EmptySquare) return; + if(killX >= 0) toX = killX, toY = killY; // [HGM] lion: first to kill square + +again: + ScreenSquare(fromX, fromY, &start); ScreenSquare(toX, toY, &finish); @@ -9940,6 +9964,9 @@ AnimateMove(board, fromX, fromY, toX, toY) } animInfo.pos = finish; DrawPosition(FALSE, NULL); + + if(toX != x || toY != y) { fromX = toX; fromY = toY; toX = x; toY = y; goto again; } // second leg + animInfo.piece = EmptySquare; Explode(board, fromX, fromY, toX, toY); } diff --git a/winboard/winboard.rc b/winboard/winboard.rc index 86428cb..69ed9da 100644 --- a/winboard/winboard.rc +++ b/winboard/winboard.rc @@ -713,6 +713,8 @@ BEGIN 70,10 CONTROL "&atomic",OPT_VariantAtomic,"Button",BS_AUTORADIOBUTTON, 9,104,70,10 + CONTROL "&Mighty Lion",OPT_VariantLion,"Button",BS_AUTORADIOBUTTON, + 9,114,70,10 CONTROL "cra&zyhouse",OPT_VariantCrazyhouse,"Button",BS_AUTORADIOBUTTON,80,14, 70,10 CONTROL "&bughouse",OPT_VariantBughouse,"Button",BS_AUTORADIOBUTTON,80,24,70, @@ -1916,6 +1918,7 @@ V72O BITMAP MOVEABLE PURE "bitmaps/v72o.bmp" S72O BITMAP MOVEABLE PURE "bitmaps/s72o.bmp" L72O BITMAP MOVEABLE PURE "bitmaps/l72o.bmp" DK72O BITMAP MOVEABLE PURE "bitmaps/dk72o.bmp" +LN72O BITMAP MOVEABLE PURE "bitmaps/ln72o.bmp" WP72O BITMAP MOVEABLE PURE "bitmaps/wp72o.bmp" WN72O BITMAP MOVEABLE PURE "bitmaps/wn72o.bmp" WL72O BITMAP MOVEABLE PURE "bitmaps/wl72o.bmp" @@ -1936,6 +1939,7 @@ V72S BITMAP MOVEABLE PURE "bitmaps/v72s.bmp" S72S BITMAP MOVEABLE PURE "bitmaps/s72s.bmp" L72S BITMAP MOVEABLE PURE "bitmaps/l72s.bmp" DK72S BITMAP MOVEABLE PURE "bitmaps/dk72s.bmp" +LN72S BITMAP MOVEABLE PURE "bitmaps/ln72s.bmp" WP72S BITMAP MOVEABLE PURE "bitmaps/wp72s.bmp" WN72S BITMAP MOVEABLE PURE "bitmaps/wn72s.bmp" WL72S BITMAP MOVEABLE PURE "bitmaps/wl72s.bmp" @@ -1956,6 +1960,7 @@ V72W BITMAP MOVEABLE PURE "bitmaps/v72w.bmp" S72W BITMAP MOVEABLE PURE "bitmaps/s72w.bmp" L72W BITMAP MOVEABLE PURE "bitmaps/l72w.bmp" DK72W BITMAP MOVEABLE PURE "bitmaps/dk72w.bmp" +LN72W BITMAP MOVEABLE PURE "bitmaps/ln72w.bmp" E49O BITMAP MOVEABLE PURE "bitmaps/e49o.bmp" A49O BITMAP MOVEABLE PURE "bitmaps/a49o.bmp" AA49O BITMAP MOVEABLE PURE "bitmaps/as49o.bmp" @@ -1972,6 +1977,7 @@ V49O BITMAP MOVEABLE PURE "bitmaps/v49o.bmp" S49O BITMAP MOVEABLE PURE "bitmaps/s49o.bmp" L49O BITMAP MOVEABLE PURE "bitmaps/l49o.bmp" DK49O BITMAP MOVEABLE PURE "bitmaps/dk49o.bmp" +LN49O BITMAP MOVEABLE PURE "bitmaps/ln49o.bmp" WP49O BITMAP MOVEABLE PURE "bitmaps/wp49o.bmp" WN49O BITMAP MOVEABLE PURE "bitmaps/wn49o.bmp" WL49O BITMAP MOVEABLE PURE "bitmaps/wl49o.bmp" @@ -1992,6 +1998,7 @@ V49S BITMAP MOVEABLE PURE "bitmaps/v49s.bmp" S49S BITMAP MOVEABLE PURE "bitmaps/s49s.bmp" L49S BITMAP MOVEABLE PURE "bitmaps/l49s.bmp" DK49S BITMAP MOVEABLE PURE "bitmaps/dk49s.bmp" +LN49S BITMAP MOVEABLE PURE "bitmaps/ln49s.bmp" WP49S BITMAP MOVEABLE PURE "bitmaps/wp49s.bmp" WN49S BITMAP MOVEABLE PURE "bitmaps/wn49s.bmp" WL49S BITMAP MOVEABLE PURE "bitmaps/wl49s.bmp" @@ -2012,6 +2019,7 @@ V49W BITMAP MOVEABLE PURE "bitmaps/v49w.bmp" S49W BITMAP MOVEABLE PURE "bitmaps/s49w.bmp" L49W BITMAP MOVEABLE PURE "bitmaps/l49w.bmp" DK49W BITMAP MOVEABLE PURE "bitmaps/dk49w.bmp" +LN49W BITMAP MOVEABLE PURE "bitmaps/ln49w.bmp" A33O BITMAP MOVEABLE PURE "bitmaps/a33o.bmp" AA33O BITMAP MOVEABLE PURE "bitmaps/as33o.bmp" C33O BITMAP MOVEABLE PURE "bitmaps/c33o.bmp" @@ -2026,6 +2034,7 @@ W33O BITMAP MOVEABLE PURE "bitmaps/w33o.bmp" M33O BITMAP MOVEABLE PURE "bitmaps/m33o.bmp" O33O BITMAP MOVEABLE PURE "bitmaps/o33o.bmp" DK33O BITMAP MOVEABLE PURE "bitmaps/dk33o.bmp" +LN33O BITMAP MOVEABLE PURE "bitmaps/ln33o.bmp" WP33O BITMAP MOVEABLE PURE "bitmaps/wp33o.bmp" WN33O BITMAP MOVEABLE PURE "bitmaps/wn33o.bmp" WL33O BITMAP MOVEABLE PURE "bitmaps/wl33o.bmp" @@ -2044,6 +2053,7 @@ W33W BITMAP MOVEABLE PURE "bitmaps/w33w.bmp" M33W BITMAP MOVEABLE PURE "bitmaps/m33w.bmp" O33W BITMAP MOVEABLE PURE "bitmaps/o33w.bmp" DK33W BITMAP MOVEABLE PURE "bitmaps/dk33w.bmp" +LN33W BITMAP MOVEABLE PURE "bitmaps/ln33w.bmp" A33S BITMAP MOVEABLE PURE "bitmaps/a33s.bmp" AA33S BITMAP MOVEABLE PURE "bitmaps/as33s.bmp" C33S BITMAP MOVEABLE PURE "bitmaps/c33s.bmp" @@ -2058,6 +2068,7 @@ W33S BITMAP MOVEABLE PURE "bitmaps/w33s.bmp" M33S BITMAP MOVEABLE PURE "bitmaps/m33s.bmp" O33S BITMAP MOVEABLE PURE "bitmaps/o33s.bmp" DK33S BITMAP MOVEABLE PURE "bitmaps/dk33s.bmp" +LN33S BITMAP MOVEABLE PURE "bitmaps/ln33s.bmp" WP33S BITMAP MOVEABLE PURE "bitmaps/wp33s.bmp" WN33S BITMAP MOVEABLE PURE "bitmaps/wn33s.bmp" WL33S BITMAP MOVEABLE PURE "bitmaps/wl33s.bmp" @@ -2224,6 +2235,7 @@ SSHOUT WAVE DISCARDABLE "sounds/sshout.wav" TELL WAVE DISCARDABLE "sounds/tell.wav" UNFINISHED WAVE DISCARDABLE "sounds/unfinished.wav" WIN WAVE DISCARDABLE "sounds/win.wav" +ROAR WAVE DISCARDABLE "sounds/roar.wav" ///////////////////////////////////////////////////////////////////////////// // diff --git a/winboard/woptions.c b/winboard/woptions.c index a736306..d3dba20 100644 --- a/winboard/woptions.c +++ b/winboard/woptions.c @@ -843,6 +843,7 @@ int radioButton[] = { -1, -1, OPT_VariantShogi, + -1, // Chu OPT_VariantXiangqi, OPT_VariantCourier, OPT_VariantGothic, @@ -862,6 +863,7 @@ int radioButton[] = { OPT_VariantSChess, OPT_VariantGrand, OPT_VariantSpartan, // Spartan + OPT_VariantLion, -2 // sentinel }; @@ -1418,6 +1420,8 @@ IcsOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) break; + + case OPT_ChooseNormalColor: ColorizeTextPopup(hDlg, ColorNormal); UpdateSampleText(hDlg, OPT_SampleNormal, &mca[ColorNormal]); @@ -1796,6 +1800,7 @@ FontsOptionsPopup(HWND hwnd) SoundComboData soundComboData[] = { {N_("Move"), NULL}, {N_("Bell"), NULL}, + {N_("Roar"), NULL}, {N_("ICS Alarm"), NULL}, {N_("ICS Win"), NULL}, {N_("ICS Loss"), NULL}, -- 1.7.0.4