home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v12i013: reve - an othello game, Patch4d
- Message-ID: <6771@tekred.CNA.TEK.COM>
- Date: 21 Dec 90 20:56:37 GMT
- Sender: news@tekred.CNA.TEK.COM
- Lines: 1439
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Rich Burridge <rburridge@sun.COM>
- Posting-number: Volume 12, Issue 13
- Archive-name: reve/Patch4d
- Patch-To: reve: Volume 11, Issue 52-58
- Environment: SunView, XView, X11R4, termcap
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 4)."
- # Contents: patches04d
- # Wrapped by billr@saab on Fri Dec 21 11:36:12 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patches04d' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patches04d'\"
- else
- echo shar: Extracting \"'patches04d'\" \(46589 characters\)
- sed "s/^X//" >'patches04d' <<'END_OF_FILE'
- X
- X------- items.c -------
- X*** /tmp/da06882 Tue Dec 18 10:10:23 1990
- X--- items.c Mon Dec 17 10:24:06 1990
- X***************
- X*** 40,45 ****
- X--- 40,46 ----
- X
- X x = items[(int) item].x ;
- X y = items[(int) item].y ;
- X+ if (x == -1 && y == -1) return ;
- X if (iscolor[(int) cur_dpyno])
- X {
- X draw_stencil(wtype, x, y, BWIDTH, BHEIGHT, RSRC, color,
- X***************
- X*** 50,56 ****
- X BUT_STENCIL, image) ;
- X label = items[(int) item].text ;
- X if (image == BUT_INVERT) color = C_WHITE ;
- X! else color = C_BLACK ;
- X x += ((BWIDTH - get_strwidth(NFONT, label)) / 2) ;
- X y += (nfont_height + (BHEIGHT - nfont_height) / 2) - 5 ;
- X draw_text(wtype, x, y, NFONT, color, label) ;
- X--- 51,57 ----
- X BUT_STENCIL, image) ;
- X label = items[(int) item].text ;
- X if (image == BUT_INVERT) color = C_WHITE ;
- X! else color = C_TEXT ;
- X x += ((BWIDTH - get_strwidth(NFONT, label)) / 2) ;
- X y += (nfont_height + (BHEIGHT - nfont_height) / 2) - 5 ;
- X draw_text(wtype, x, y, NFONT, color, label) ;
- X***************
- X*** 64,75 ****
- X int color ;
- X {
- X char *str ;
- X! int height, i, maxw, val, width, x, xoff, y ;
- X
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, C_BLACK, items[(int) item].label) ;
- X
- X maxw = 0 ;
- X for (i = 0; i < items[(int) item].nopts; i++)
- X--- 65,77 ----
- X int color ;
- X {
- X char *str ;
- X! int height, i, maxw, tcol, val, width, x, xoff, y ;
- X
- X+ tcol = B_COLOR(C_TEXT) ;
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, tcol, items[(int) item].label) ;
- X
- X maxw = 0 ;
- X for (i = 0; i < items[(int) item].nopts; i++)
- X***************
- X*** 100,109 ****
- X xoff = (maxw - val) / 2 ;
- X draw_text(items[(int) item].wtype,
- X x + (i * maxw) + xoff,
- X! y + nfont_height + (nfont_height / 2), NFONT, C_BLACK, str) ;
- X }
- X
- X val = items[(int) item].value ;
- X draw_rect(wtype,
- X x + (val * maxw) + 1, y + 1,
- X x + ((val + 1) * maxw) - 1, y + height - 1, RSRC, C_BLACK) ;
- X--- 102,112 ----
- X xoff = (maxw - val) / 2 ;
- X draw_text(items[(int) item].wtype,
- X x + (i * maxw) + xoff,
- X! y + nfont_height + (nfont_height / 2), NFONT, tcol, str) ;
- X }
- X
- X val = items[(int) item].value ;
- X+ if (val < 0 || val >= items[(int) item].nopts) return ;
- X draw_rect(wtype,
- X x + (val * maxw) + 1, y + 1,
- X x + ((val + 1) * maxw) - 1, y + height - 1, RSRC, C_BLACK) ;
- X***************
- X*** 140,152 ****
- X enum image_type image ;
- X {
- X char val[4] ;
- X
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, C_BLACK, items[(int) item].label) ;
- X
- X! SPRINTF(val, "%d", items[(int) item].value) ;
- X set_cycle(wtype, item, val) ;
- X draw_cycle(wtype, item, color, image) ;
- X }
- X--- 143,158 ----
- X enum image_type image ;
- X {
- X char val[4] ;
- X+ int tcol ;
- X
- X+ tcol = B_COLOR(C_TEXT) ;
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, tcol, items[(int) item].label) ;
- X
- X! if (item == MAX_DEPTH && !items[(int) item].value) STRCPY(val, "off") ;
- X! else SPRINTF(val, "%d", items[(int) item].value) ;
- X set_cycle(wtype, item, val) ;
- X draw_cycle(wtype, item, color, image) ;
- X }
- X***************
- X*** 158,166 ****
- X {
- X int y ;
- X
- X! color_area(W_MAIN, tx + 1, ty + 1, tw - 2, th - 2, C_WHITE) ;
- X y = ty + (nfont_height + (th - nfont_height) / 2) - 5 ;
- X! draw_text(W_MAIN, tx + 5, y, NFONT, C_BLACK, str) ;
- X draw_line(W_MAIN, tx + 5 + get_strwidth(NFONT, str), y + 5,
- X tx + 5 + get_strwidth(NFONT, str), y + 5 - nfont_height,
- X RSRC, C_BLACK) ;
- X--- 164,172 ----
- X {
- X int y ;
- X
- X! color_area(W_MAIN, tx + 1, ty + 1, tw - 2, th - 2, W_COLOR(C_PANEL)) ;
- X y = ty + (nfont_height + (th - nfont_height) / 2) - 5 ;
- X! draw_text(W_MAIN, tx + 5, y, NFONT, B_COLOR(C_TEXT), str) ;
- X draw_line(W_MAIN, tx + 5 + get_strwidth(NFONT, str), y + 5,
- X tx + 5 + get_strwidth(NFONT, str), y + 5 - nfont_height,
- X RSRC, C_BLACK) ;
- X***************
- X*** 174,185 ****
- X int color ;
- X {
- X enum image_type image ;
- X! int x, y ;
- X
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, C_BLACK, items[(int) item].label) ;
- X
- X if (items[(int) item].value) image = TOGGLE_ON ;
- X else image = TOGGLE_OFF ;
- X--- 180,192 ----
- X int color ;
- X {
- X enum image_type image ;
- X! int tcol, x, y ;
- X
- X+ tcol = B_COLOR(C_TEXT) ;
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, tcol, items[(int) item].label) ;
- X
- X if (items[(int) item].value) image = TOGGLE_ON ;
- X else image = TOGGLE_OFF ;
- X***************
- X*** 199,205 ****
- X draw_text(items[(int) item].wtype,
- X items[(int) item].x + TICKWIDTH + 10,
- X items[(int) item].y + nfont_height,
- X! NFONT, C_BLACK, items[(int) item].text) ;
- X }
- X
- X
- X--- 206,212 ----
- X draw_text(items[(int) item].wtype,
- X items[(int) item].x + TICKWIDTH + 10,
- X items[(int) item].y + nfont_height,
- X! NFONT, tcol, items[(int) item].text) ;
- X }
- X
- X
- X***************
- X*** 211,222 ****
- X lsval = (curx < (BBORDER + (2*(BWIDTH+BGAP)))) ? 'l' : 's' ;
- X x1 = BBORDER + BWIDTH + (BGAP / 2) ;
- X y1 = BBORDER + BHEIGHT + (BGAP / 2) ;
- X! color_area(W_MAIN, x1, y1, 4 * (BWIDTH + BGAP), BHEIGHT + BGAP, C_WHITE) ;
- X draw_rect(W_MAIN, x1, y1, x1 + (4 * (BWIDTH + BGAP)) - 1,
- X y1 + BHEIGHT + BGAP - 1, RSRC, C_BLACK) ;
- X draw_text(W_MAIN, BBORDER + BWIDTH + BGAP, BBORDER + BHEIGHT + BGAP +
- X (nfont_height + (BHEIGHT - nfont_height) / 2) - 5,
- X! BFONT, C_BLACK, "File:") ;
- X tx = BBORDER + BWIDTH + BGAP + (BWIDTH / 2) + 10 ;
- X ty = BBORDER + BHEIGHT + BGAP ;
- X tw = (BWIDTH / 2) - 10 + (2 * (BWIDTH + BGAP)) ;
- X--- 218,230 ----
- X lsval = (curx < (BBORDER + (2*(BWIDTH+BGAP)))) ? 'l' : 's' ;
- X x1 = BBORDER + BWIDTH + (BGAP / 2) ;
- X y1 = BBORDER + BHEIGHT + (BGAP / 2) ;
- X! color_area(W_MAIN, x1, y1,
- X! 4 * (BWIDTH + BGAP), BHEIGHT + BGAP, W_COLOR(C_PANEL)) ;
- X draw_rect(W_MAIN, x1, y1, x1 + (4 * (BWIDTH + BGAP)) - 1,
- X y1 + BHEIGHT + BGAP - 1, RSRC, C_BLACK) ;
- X draw_text(W_MAIN, BBORDER + BWIDTH + BGAP, BBORDER + BHEIGHT + BGAP +
- X (nfont_height + (BHEIGHT - nfont_height) / 2) - 5,
- X! BFONT, B_COLOR(C_TEXT), "File:") ;
- X tx = BBORDER + BWIDTH + BGAP + (BWIDTH / 2) + 10 ;
- X ty = BBORDER + BHEIGHT + BGAP ;
- X tw = (BWIDTH / 2) - 10 + (2 * (BWIDTH + BGAP)) ;
- X***************
- X*** 227,233 ****
- X tinput = 1 ;
- X items[(int) CANCEL_BUT].x = BBORDER + (4*(BWIDTH+BGAP)) ;
- X items[(int) CANCEL_BUT].y = BBORDER + (1*(BHEIGHT+BGAP)) ;
- X! draw_button(W_MAIN, CANCEL_BUT, C_LGREY, BUT_NORMAL) ;
- X }
- X
- X
- X--- 235,241 ----
- X tinput = 1 ;
- X items[(int) CANCEL_BUT].x = BBORDER + (4*(BWIDTH+BGAP)) ;
- X items[(int) CANCEL_BUT].y = BBORDER + (1*(BHEIGHT+BGAP)) ;
- X! draw_button(W_MAIN, CANCEL_BUT, C_ITEMS, BUT_NORMAL) ;
- X }
- X
- X
- X***************
- X*** 273,286 ****
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, C_BLACK, items[(int) item].label) ;
- X
- X message = items[(int) item].text ;
- X x = items[(int) item].x ;
- X y = items[(int) item].y ;
- X! color = (iscolor[(int) cur_dpyno]) ? C_BEIGE : C_WHITE ;
- X! color_area(wtype, x, y, TOTAL_WIDTH, 15, color) ;
- X! draw_text(wtype, x, y + nfont_height, NFONT, C_BLACK, message) ;
- X }
- X
- X
- X--- 281,293 ----
- X if (strlen(items[(int) item].label))
- X draw_text(items[(int) item].wtype,
- X items[(int) item].lx, items[(int) item].ly + bfont_height,
- X! BFONT, B_COLOR(C_TEXT), items[(int) item].label) ;
- X
- X message = items[(int) item].text ;
- X x = items[(int) item].x ;
- X y = items[(int) item].y ;
- X! color_area(wtype, x, y, TOTAL_WIDTH, 15, W_COLOR(C_PANEL)) ;
- X! draw_text(wtype, x, y + nfont_height, NFONT, B_COLOR(C_TEXT), message) ;
- X }
- X
- X
- X***************
- X*** 287,301 ****
- X void
- X make_panel()
- X {
- X! draw_button(W_MAIN, LOAD_BUT, C_LGREY, BUT_NORMAL) ;
- X! draw_button(W_MAIN, MOVES_BUT, C_LGREY, BUT_NORMAL) ;
- X! draw_button(W_MAIN, NEW_GAME_BUT, C_LGREY, BUT_NORMAL) ;
- X! draw_button(W_MAIN, SAVE_BUT, C_LGREY, BUT_NORMAL) ;
- X! draw_button(W_MAIN, SUGGEST_BUT, C_LGREY, BUT_NORMAL) ;
- X! draw_button(W_MAIN, UNDO_BUT, C_LGREY, BUT_NORMAL) ;
- X
- X! draw_button(W_MAIN, PROPS_BUT, C_LGREY, BUT_NORMAL) ;
- X! draw_button(W_MAIN, QUIT_BUT, C_LGREY, BUT_NORMAL) ;
- X
- X make_message(W_MAIN, BLACK_PLAYS) ;
- X make_message(W_MAIN, WHITE_PLAYS) ;
- X--- 294,312 ----
- X void
- X make_panel()
- X {
- X! draw_button(W_MAIN, LOAD_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, MOVES_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, NEW_GAME_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, HELP_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, REDO_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, PROPS_BUT, C_ITEMS, BUT_NORMAL) ;
- X
- X! draw_button(W_MAIN, SAVE_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, SUGGEST_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, EDIT_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, STOP_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, UNDO_BUT, C_ITEMS, BUT_NORMAL) ;
- X! draw_button(W_MAIN, QUIT_BUT, C_ITEMS, BUT_NORMAL) ;
- X
- X make_message(W_MAIN, BLACK_PLAYS) ;
- X make_message(W_MAIN, WHITE_PLAYS) ;
- X***************
- X*** 314,342 ****
- X int n ;
- X
- X n = (int) mtype ;
- X- color = (iscolor[(int) cur_dpyno]) ? C_BEIGE : C_WHITE ;
- X color_area(W_MAIN, items[n].x, items[n].y,
- X! get_strwidth(NFONT, items[n].text), nfont_height + 5, color) ;
- X draw_text(W_MAIN, items[n].x, items[n].y + nfont_height,
- X! NFONT, C_BLACK, str) ;
- X STRCPY(items[n].text, str) ;
- X }
- X
- X
- X void
- X paint_prop_sheet()
- X {
- X! int color, d ;
- X
- X! d = (int) cur_dpyno ;
- X! color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
- X color_area(W_PROPS, 0, 0, PROPS_WIDTH, PROPS_HEIGHT, color) ;
- X
- X- color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
- X draw_choice(W_PROPS, COMP_CHOICE, color) ;
- X draw_choice(W_PROPS, DIFF_CHOICE, color) ;
- X
- X! draw_cycle_item(W_PROPS, MAX_DEPTH, C_LGREY, CY_NORMAL) ;
- X
- X draw_toggle(W_PROPS, OPT_ANIM, color) ;
- X draw_toggle(W_PROPS, OPT_BEST, color) ;
- X--- 325,383 ----
- X int n ;
- X
- X n = (int) mtype ;
- X color_area(W_MAIN, items[n].x, items[n].y,
- X! get_strwidth(NFONT, items[n].text),
- X! nfont_height + 5, W_COLOR(C_PANEL)) ;
- X draw_text(W_MAIN, items[n].x, items[n].y + nfont_height,
- X! NFONT, B_COLOR(C_TEXT), str) ;
- X STRCPY(items[n].text, str) ;
- X }
- X
- X
- X void
- X+ paint_help()
- X+ {
- X+ if (hfp == NULL) return ;
- X+ color_area(W_HELP, 0, 0,
- X+ help_width, (2 * CGAP) + CHEIGHT, W_COLOR(C_PANEL)) ;
- X+ draw_cycle_item(W_HELP, HELP_PAGE, C_ITEMS, CY_NORMAL) ;
- X+ draw_line(W_HELP, 0, (2 * CGAP) + CHEIGHT,
- X+ help_width, (2 * CGAP) + CHEIGHT, RSRC, C_BLACK) ;
- X+ paint_help_text() ;
- X+ }
- X+
- X+
- X+ void
- X+ paint_help_text()
- X+ {
- X+ char buf[MAXLINE] ;
- X+ int i, y ;
- X+
- X+ color_area(W_HELP, 0, (2 * CGAP) + CHEIGHT + 1,
- X+ help_width, ((hfont_height + 1) * HELP_ROWS) + (2 * CGAP) - 1,
- X+ W_COLOR(C_PANEL)) ;
- X+ FSEEK(hfp, help_offsets[items[(int) HELP_PAGE].value], 0) ;
- X+ for (i = 0; i < HELP_ROWS; i++)
- X+ {
- X+ if (fgets(buf, MAXLINE, hfp) == NULL) return ;
- X+ y = (3 * CGAP) + CHEIGHT + ((i + 1) * (hfont_height + 1)) ;
- X+ draw_text(W_HELP, CGAP, y, NFONT, B_COLOR(C_TEXT), buf) ;
- X+ }
- X+ }
- X+
- X+
- X+ void
- X paint_prop_sheet()
- X {
- X! int color ;
- X
- X! color = W_COLOR(C_PANEL) ;
- X color_area(W_PROPS, 0, 0, PROPS_WIDTH, PROPS_HEIGHT, color) ;
- X
- X draw_choice(W_PROPS, COMP_CHOICE, color) ;
- X draw_choice(W_PROPS, DIFF_CHOICE, color) ;
- X
- X! draw_cycle_item(W_PROPS, MAX_DEPTH, C_ITEMS, CY_NORMAL) ;
- X
- X draw_toggle(W_PROPS, OPT_ANIM, color) ;
- X draw_toggle(W_PROPS, OPT_BEST, color) ;
- X***************
- X*** 355,364 ****
- X x1 = BBORDER + BWIDTH + (BGAP / 2) ;
- X y1 = BBORDER + BHEIGHT + (BGAP / 2) ;
- X color_area(W_MAIN, x1, y1, 4 * (BWIDTH + BGAP), BHEIGHT + BGAP,
- X! (iscolor[(int) cur_dpyno]) ? C_BEIGE : C_WHITE) ;
- X tinput = 0 ;
- X items[(int) CANCEL_BUT].x = -1 ;
- X items[(int) CANCEL_BUT].y = -1 ;
- X }
- X
- X
- X--- 396,410 ----
- X x1 = BBORDER + BWIDTH + (BGAP / 2) ;
- X y1 = BBORDER + BHEIGHT + (BGAP / 2) ;
- X color_area(W_MAIN, x1, y1, 4 * (BWIDTH + BGAP), BHEIGHT + BGAP,
- X! W_COLOR(C_PANEL)) ;
- X tinput = 0 ;
- X items[(int) CANCEL_BUT].x = -1 ;
- X items[(int) CANCEL_BUT].y = -1 ;
- X+
- X+ draw_button(W_MAIN, SUGGEST_BUT, C_ITEMS, BUT_NORMAL) ;
- X+ draw_button(W_MAIN, EDIT_BUT, C_ITEMS, BUT_NORMAL) ;
- X+ draw_button(W_MAIN, STOP_BUT, C_ITEMS, BUT_NORMAL) ;
- X+ draw_button(W_MAIN, UNDO_BUT, C_ITEMS, BUT_NORMAL) ;
- X }
- X
- X
- X***************
- X*** 368,379 ****
- X enum panel_type item ;
- X char *str ;
- X {
- X- color = (iscolor[(int) cur_dpyno]) ? C_BEIGE : C_WHITE ;
- X-
- X color_area(wtype, items[(int) item].x, items[(int) item].y,
- X! items[(int) item].width, CHEIGHT, color) ;
- X draw_text(wtype, items[(int) item].x, items[(int) item].y + nfont_height,
- X! NFONT, C_BLACK, str) ;
- X STRCPY(items[(int) item].text, str) ;
- X items[(int) item].width = get_strwidth(NFONT, str) ;
- X }
- X--- 414,423 ----
- X enum panel_type item ;
- X char *str ;
- X {
- X color_area(wtype, items[(int) item].x, items[(int) item].y,
- X! items[(int) item].width, CHEIGHT, W_COLOR(C_PANEL)) ;
- X draw_text(wtype, items[(int) item].x, items[(int) item].y + nfont_height,
- X! NFONT, B_COLOR(C_TEXT), str) ;
- X STRCPY(items[(int) item].text, str) ;
- X items[(int) item].width = get_strwidth(NFONT, str) ;
- X }
- X
- X------- main.c -------
- X*** /tmp/da06885 Tue Dec 18 10:10:24 1990
- X--- main.c Sun Dec 16 02:44:07 1990
- X***************
- X*** 38,46 ****
- X } ;
- X #endif /*NO_TIMEVAL*/
- X
- X! /* Text values for the cyclic buttons. */
- X char *comp_plays[] = { "white", "black", "neither", "both" } ;
- X- char *diff_values[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL } ;
- X char *notes_values[] = { "off", "on", NULL } ;
- X char *player_values[] = { "human", "computer", NULL } ;
- X
- X--- 38,48 ----
- X } ;
- X #endif /*NO_TIMEVAL*/
- X
- X! char *diff_values[] = {
- X! " 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 ", NULL
- X! } ;
- X!
- X char *comp_plays[] = { "white", "black", "neither", "both" } ;
- X char *notes_values[] = { "off", "on", NULL } ;
- X char *player_values[] = { "human", "computer", NULL } ;
- X
- X***************
- X*** 52,58 ****
- X "log", /* Boolean: write computer info to log file. */
- X "notes", /* Boolean: show computer notes. */
- X "number", /* Boolean: show last move (number on stone). */
- X! "quick" /* Boolean: play quick game (don't flip stones). */
- X } ;
- X
- X enum cantype cmode, last_cmode ;
- X--- 54,68 ----
- X "log", /* Boolean: write computer info to log file. */
- X "notes", /* Boolean: show computer notes. */
- X "number", /* Boolean: show last move (number on stone). */
- X! "quick", /* Boolean: play quick game (don't flip stones). */
- X! "panelColor", /* String: main and property panels color. */
- X! "boardColor", /* String: playing board color. */
- X! "boardBorderColor", /* String: playing board border color. */
- X! "gridColor", /* String: grid lines color. */
- X! "textColor", /* String: text color. */
- X! "itemColor", /* String: color of the panel items. */
- X! "properties", /* Boolean: initially show property window? */
- X! "showHelp" /* Boolean: initially show help window? */
- X } ;
- X
- X enum cantype cmode, last_cmode ;
- X***************
- X*** 61,66 ****
- X--- 71,86 ----
- X enum set_type direction ; /* Incremental direction for cycle item. */
- X enum win_type curwin ; /* Window the current event for in. */
- X
- X+ FILE *hfp ; /* File descriptor for online help file. */
- X+
- X+ char *colstr[REVE_COLORSIZE] = {
- X+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
- X+ } ;
- X+
- X+ int rcols[REVE_COLORSIZE] ; /* Red colormap values. */
- X+ int gcols[REVE_COLORSIZE] ; /* Green colormap values. */
- X+ int bcols[REVE_COLORSIZE] ; /* Blue colormap values. */
- X+
- X int tx, ty, tw, th ; /* Position and size of text field. */
- X
- X int piece_x ; /* Current X position of moving piece. */
- X***************
- X*** 77,82 ****
- X--- 97,106 ----
- X int down ; /* Indicates is a mouse button is down. */
- X int first_move = 0 ; /* Set if computer plays first move. */
- X int iconic ; /* Set if window is currently iconic. */
- X+ int help_height ; /* Height of the help window. */
- X+ int help_showing ; /* If set, the help window is visible. */
- X+ int help_width ; /* Width of the help window. */
- X+ int hfont_height ; /* Height in pixels for help font. */
- X int inv_video = 0 ; /* Set if displaying in inverse video. */
- X int isblack ; /* Set if human to play the black pieces. */
- X int iscolor[MAXDPY] ; /* Set if this is a color screen. */
- X***************
- X*** 96,101 ****
- X--- 120,126 ----
- X int nextc ; /* Current event identifier. */
- X int next_player ; /* Next player (BLACK or WHITE) to move. */
- X int nfont_height ; /* Height in pixels for normal font. */
- X+ int old_diffval ; /* Old difficulty value (possibly restored). */
- X int play_computer ; /* Set if playing against the computer. */
- X int posspec ; /* Set if -Wp or -g option is present (for X11) */
- X int processing ; /* If set, computer is procesing a move. */
- X***************
- X*** 110,115 ****
- X--- 135,142 ----
- X int wx ; /* Initial X position of the window. */
- X int wy ; /* Initial Y position of the window. */
- X
- X+ long help_offsets[MAXPAGES] ; /* Offsets into the reve help file. */
- X+
- X /* Globals for passing arguments to "sandwich";
- X * this is to save time putting arguments on and off the
- X * stack in a very heavily used piece of code
- X***************
- X*** 168,177 ****
- X new_game
- X },
- X
- X! { /* save button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X BBORDER + (3*(BWIDTH+BGAP)), BBORDER + (0*(BHEIGHT+BGAP)),
- X BWIDTH, BHEIGHT, "save", 0,
- X (char **) NULL, 0,
- X draw_textfield
- X--- 195,231 ----
- X new_game
- X },
- X
- X! { /* help button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X BBORDER + (3*(BWIDTH+BGAP)), BBORDER + (0*(BHEIGHT+BGAP)),
- X+ BWIDTH, BHEIGHT, "help", 0,
- X+ (char **) NULL, 0,
- X+ do_help
- X+ },
- X+
- X+ { /* redo button. */
- X+ W_MAIN, P_BUTTON, 0, 0,
- X+ "",
- X+ BBORDER + (4*(BWIDTH+BGAP)), BBORDER + (0*(BHEIGHT+BGAP)),
- X+ BWIDTH, BHEIGHT, "redo", 0,
- X+ (char **) NULL, 0,
- X+ redo
- X+ },
- X+
- X+ { /* props button. */
- X+ W_MAIN, P_BUTTON, 0, 0,
- X+ "",
- X+ BBORDER + (5*(BWIDTH+BGAP)), BBORDER + (0*(BHEIGHT+BGAP)),
- X+ BWIDTH, BHEIGHT, "props", 0,
- X+ (char **) NULL, 0,
- X+ do_props
- X+ },
- X+
- X+ { /* save button. */
- X+ W_MAIN, P_BUTTON, 0, 0,
- X+ "",
- X+ BBORDER + (0*(BWIDTH+BGAP)), BBORDER + (1*(BHEIGHT+BGAP)),
- X BWIDTH, BHEIGHT, "save", 0,
- X (char **) NULL, 0,
- X draw_textfield
- X***************
- X*** 180,209 ****
- X { /* suggest button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X! BBORDER + (4*(BWIDTH+BGAP)), BBORDER + (0*(BHEIGHT+BGAP)),
- X BWIDTH, BHEIGHT, "suggest", 0,
- X (char **) NULL, 0,
- X suggest
- X },
- X
- X { /* undo button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X! BBORDER + (5*(BWIDTH+BGAP)), BBORDER + (0*(BHEIGHT+BGAP)),
- X BWIDTH, BHEIGHT, "undo", 0,
- X (char **) NULL, 0,
- X undo
- X },
- X
- X- { /* props button. */
- X- W_MAIN, P_BUTTON, 0, 0,
- X- "",
- X- BBORDER + (0*(BWIDTH+BGAP)), BBORDER + (1*(BHEIGHT+BGAP)),
- X- BWIDTH, BHEIGHT, "props", 0,
- X- (char **) NULL, 0,
- X- do_props
- X- },
- X-
- X { /* cancel button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X--- 234,274 ----
- X { /* suggest button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X! BBORDER + (1*(BWIDTH+BGAP)), BBORDER + (1*(BHEIGHT+BGAP)),
- X BWIDTH, BHEIGHT, "suggest", 0,
- X (char **) NULL, 0,
- X suggest
- X },
- X
- X+ { /* edit button. */
- X+ W_MAIN, P_BUTTON, 0, 0,
- X+ "",
- X+ /* BBORDER + (2*(BWIDTH+BGAP)), BBORDER + (1*(BHEIGHT+BGAP)), */
- X+ -1, -1,
- X+ BWIDTH, BHEIGHT, "edit", 0,
- X+ (char **) NULL, 0,
- X+ do_edit
- X+ },
- X+
- X+ { /* stop button. */
- X+ W_MAIN, P_BUTTON, 0, 0,
- X+ "",
- X+ /* BBORDER + (3*(BWIDTH+BGAP)), BBORDER + (1*(BHEIGHT+BGAP)), */
- X+ -1, -1,
- X+ BWIDTH, BHEIGHT, "stop", 0,
- X+ (char **) NULL, 0,
- X+ do_stop
- X+ },
- X+
- X { /* undo button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X! BBORDER + (4*(BWIDTH+BGAP)), BBORDER + (1*(BHEIGHT+BGAP)),
- X BWIDTH, BHEIGHT, "undo", 0,
- X (char **) NULL, 0,
- X undo
- X },
- X
- X { /* cancel button. */
- X W_MAIN, P_BUTTON, 0, 0,
- X "",
- X***************
- X*** 312,318 ****
- X BBORDER + (0*(BWIDTH+BGAP)), BBORDER + (2*(BHEIGHT+BGAP)),
- X "Set search depth:",
- X BBORDER + (2*(BWIDTH+BGAP)), BBORDER + (2*(BHEIGHT+BGAP)),
- X! 0, 0, "", INIT_DEPTH,
- X (char **) NULL, 0,
- X set_option
- X },
- X--- 377,383 ----
- X BBORDER + (0*(BWIDTH+BGAP)), BBORDER + (2*(BHEIGHT+BGAP)),
- X "Set search depth:",
- X BBORDER + (2*(BWIDTH+BGAP)), BBORDER + (2*(BHEIGHT+BGAP)),
- X! 0, 0, "", 0,
- X (char **) NULL, 0,
- X set_option
- X },
- X***************
- X*** 371,376 ****
- X--- 436,451 ----
- X (char **) NULL, 0,
- X set_option
- X },
- X+
- X+ { /* Help window page cycle. */
- X+ W_HELP, P_CYCLE,
- X+ BBORDER + (0*(BWIDTH+BGAP)), CGAP,
- X+ "Page",
- X+ BBORDER + (1*(BWIDTH+BGAP)), CGAP,
- X+ 0, 0, "", 1,
- X+ (char **) NULL, 0,
- X+ display_help
- X+ },
- X } ;
- X
- X char geometry[MAXDPY][MAXLINE] ; /* X11 geometry information. */
- X***************
- X*** 378,383 ****
- X--- 453,459 ----
- X char *black_dpy ; /* Black piece display information. */
- X char edgefile[MAXLINE] ; /* Location of the reve edge table file. */
- X char gamefile[MAXLINE] ; /* Name of file for load/save. */
- X+ char helpfile[MAXLINE] ; /* Location of the reve online help file. */
- X char line[40] ;
- X char progname[MAXLINE] ; /* The name of this program. */
- X char *white_dpy ; /* White piece display information. */
- X***************
- X*** 405,410 ****
- X--- 481,487 ----
- X STRCPY(gamefile, "reve.game") ;
- X SPRINTF(line, " Reve. V1.1.%1d", PATCHLEVEL) ;
- X init_graphics(&argc, argv) ;
- X+ reve_colorsetup(rcols, gcols, bcols) ; /* Setup default colors. */
- X initialise() ; /* Initialise variables used by reve. */
- X load_resources() ; /* Get resources from various places. */
- X read_resources() ; /* Read resources from merged database. */
- X***************
- X*** 414,420 ****
- X init_edge_table(edgefile) ; /* Load reve edge table values. */
- X #endif /*XVIEW*/
- X
- X! set_display_types() ; /* Work out what displays to initialise. */
- X if (init_ws_type()) /* Determine window system type. */
- X {
- X FPRINTF(stderr,"Error initialising window system.\n") ;
- X--- 491,499 ----
- X init_edge_table(edgefile) ; /* Load reve edge table values. */
- X #endif /*XVIEW*/
- X
- X! init_help_file(helpfile) ; /* Load reve help file page offsets. */
- X!
- X! set_display_types() ; /* Work out what displays to initialise. */
- X if (init_ws_type()) /* Determine window system type. */
- X {
- X FPRINTF(stderr,"Error initialising window system.\n") ;
- X***************
- X*** 450,458 ****
- X {
- X cur_dpyno = dpyno ;
- X make_icon() ;
- X! make_frame(argc, argv) ; /* Create reve window/icon. */
- X! make_canvas() ; /* Create drawing canvas. */
- X! init_fonts() ; /* Load normal and bold fonts. */
- X initboard() ;
- X set_cursor(CANVASCUR) ;
- X }
- X--- 529,538 ----
- X {
- X cur_dpyno = dpyno ;
- X make_icon() ;
- X! make_frame(argc, argv) ; /* Create reve window/icon. */
- X! make_canvas() ; /* Create drawing canvas. */
- X! init_fonts() ; /* Load normal and bold fonts. */
- X! make_help_window(argc, argv) ; /* Make help window based on normal font. */
- X initboard() ;
- X set_cursor(CANVASCUR) ;
- X }
- X***************
- X*** 521,527 ****
- X getparam(next, argv, "-d needs difficulty") ;
- X level = atoi(next) ;
- X if (level < 1 || level > MAXDIFF) level = INIT_DEPTH ;
- X! items[(int) DIFF_CHOICE].value = level - 1 ;
- X break ;
- X case 'e' : INC ;
- X getparam(edgefile, argv, "-e needs an edgetable file") ;
- X--- 601,607 ----
- X getparam(next, argv, "-d needs difficulty") ;
- X level = atoi(next) ;
- X if (level < 1 || level > MAXDIFF) level = INIT_DEPTH ;
- X! items[(int) DIFF_CHOICE].value = old_diffval = level-1 ;
- X break ;
- X case 'e' : INC ;
- X getparam(edgefile, argv, "-e needs an edgetable file") ;
- X***************
- X*** 530,535 ****
- X--- 610,622 ----
- X getparam(geometry[0], argv,
- X "-g needs geometry information") ;
- X break ;
- X+ case 'h' : if (EQUAL(argv[0], "-help")) help_showing = TRUE ;
- X+ else
- X+ {
- X+ INC ;
- X+ getparam(helpfile, argv, "-h needs a help file") ;
- X+ }
- X+ break ;
- X case 'i' : inv_video = 1 ; /* Display in inverse video. */
- X break ;
- X case 'l' : if (EQUAL(argv[0], "-last")) DO_LAST = TRUE ;
- X***************
- X*** 547,552 ****
- X--- 634,641 ----
- X case 'n' : if (EQUAL(argv[0], "-notes")) SHOW_NOTES = TRUE ;
- X else if (EQUAL(argv[0], "-number")) DO_NUMBER = TRUE ;
- X break ;
- X+ case 'p' : if (EQUAL(argv[0], "-props")) props_showing = TRUE ;
- X+ break ;
- X case 'q' : if (EQUAL(argv[0], "-quick")) QUICKGAME = TRUE ;
- X break ;
- X case '?' :
- X***************
- X*** 654,663 ****
- X color_area(W_MAIN, 0, 0, TOTAL_WIDTH, TOTAL_HEIGHT, C_WHITE) ;
- X if (iscolor[d])
- X {
- X! color_area(W_MAIN, 0, 0, TOTAL_WIDTH, CY, C_BEIGE) ;
- X! color_area(W_MAIN, 0, CY, TOTAL_WIDTH, TOTAL_WIDTH, C_DBROWN) ;
- X color_area(W_MAIN, 0 + BBORDER, CY + BBORDER, BOARD_SIZE * CELL_SIZE,
- X! BOARD_SIZE * CELL_SIZE, C_LBROWN) ;
- X }
- X make_panel() ; /* Create panel and panel items. */
- X
- X--- 743,752 ----
- X color_area(W_MAIN, 0, 0, TOTAL_WIDTH, TOTAL_HEIGHT, C_WHITE) ;
- X if (iscolor[d])
- X {
- X! color_area(W_MAIN, 0, 0, TOTAL_WIDTH, CY, C_PANEL) ;
- X! color_area(W_MAIN, 0, CY, TOTAL_WIDTH, TOTAL_WIDTH, C_BORDER) ;
- X color_area(W_MAIN, 0 + BBORDER, CY + BBORDER, BOARD_SIZE * CELL_SIZE,
- X! BOARD_SIZE * CELL_SIZE, C_SQUARE) ;
- X }
- X make_panel() ; /* Create panel and panel items. */
- X
- X***************
- X*** 666,674 ****
- X batch(IS_ON) ;
- X for (n = 0; n <= BOARD_SIZE; n++)
- X {
- X! color = (iscolor[d]) ? C_LGREY : C_BLACK ;
- X if (n == 0 || n == BOARD_SIZE) color = C_BLACK ;
- X! if (color == C_LGREY) adjust = 1 ;
- X else adjust = 0 ;
- X draw_line(W_MAIN, (n*CELL_SIZE)+BBORDER, /* Vertical. */
- X CY+BBORDER+adjust, (n*CELL_SIZE)+BBORDER,
- X--- 755,763 ----
- X batch(IS_ON) ;
- X for (n = 0; n <= BOARD_SIZE; n++)
- X {
- X! color = B_COLOR(C_GRID) ;
- X if (n == 0 || n == BOARD_SIZE) color = C_BLACK ;
- X! if (color == C_GRID) adjust = 1 ;
- X else adjust = 0 ;
- X draw_line(W_MAIN, (n*CELL_SIZE)+BBORDER, /* Vertical. */
- X CY+BBORDER+adjust, (n*CELL_SIZE)+BBORDER,
- X***************
- X*** 711,716 ****
- X--- 800,808 ----
- X message(TURN_MES, "Black to move.") ;
- X batch(IS_OFF) ;
- X
- X+ if (help_showing) set_frame(W_HELP, help_showing) ;
- X+ if (props_showing) set_frame(W_PROPS, props_showing) ;
- X+
- X if (loadgame)
- X {
- X loadgame = 0 ;
- X***************
- X*** 741,748 ****
- X DO_BESTMOVE = FALSE ;
- X DO_LAST = FALSE ;
- X DO_NUMBER = FALSE ;
- X processing = FALSE ; /* No computer move initially. */
- X! props_showing = FALSE ;
- X QUICKGAME = FALSE ;
- X validkey = 0 ;
- X cmode = BLACK_START ;
- X--- 833,841 ----
- X DO_BESTMOVE = FALSE ;
- X DO_LAST = FALSE ;
- X DO_NUMBER = FALSE ;
- X+ help_showing = FALSE ; /* Help window not visible. */
- X processing = FALSE ; /* No computer move initially. */
- X! props_showing = FALSE ; /* Properties window not visible. */
- X QUICKGAME = FALSE ;
- X validkey = 0 ;
- X cmode = BLACK_START ;
- X***************
- X*** 751,757 ****
- X isblack = 0 ;
- X iswhite = 0 ;
- X level = INIT_DEPTH ;
- X! items[(int) DIFF_CHOICE].value = level - 1 ;
- X
- X black_dpy = NULL ; /* X11 black piece display information. */
- X white_dpy = NULL ; /* X11 white piece display information. */
- X--- 844,850 ----
- X isblack = 0 ;
- X iswhite = 0 ;
- X level = INIT_DEPTH ;
- X! items[(int) DIFF_CHOICE].value = old_diffval = level - 1 ;
- X
- X black_dpy = NULL ; /* X11 black piece display information. */
- X white_dpy = NULL ; /* X11 white piece display information. */
- X***************
- X*** 758,763 ****
- X--- 851,857 ----
- X STRCPY(geometry[(int) DPY1], "") ; /* X11 geometry information. */
- X STRCPY(geometry[(int) DPY2], "") ;
- X STRCPY(edgefile, EDGENAME) ;
- X+ STRCPY(helpfile, HELPNAME) ;
- X }
- X
- X
- X***************
- X*** 765,770 ****
- X--- 859,865 ----
- X read_resources() /* Read all possible resources from database. */
- X {
- X int boolval, intval ;
- X+ char str[MAXLINE] ;
- X
- X if (get_bool_resource(R_ANIMATE, &boolval)) ANIMATION = boolval ;
- X if (get_bool_resource(R_BESTMOVE, &boolval)) DO_BESTMOVE = boolval ;
- X***************
- X*** 773,779 ****
- X {
- X level = intval ;
- X if (level < 1 || level > MAXDIFF) level = INIT_DEPTH ;
- X! items[(int) DIFF_CHOICE].value = level - 1 ;
- X }
- X
- X if (get_bool_resource(R_LAST, &boolval)) DO_LAST = boolval ;
- X--- 868,874 ----
- X {
- X level = intval ;
- X if (level < 1 || level > MAXDIFF) level = INIT_DEPTH ;
- X! items[(int) DIFF_CHOICE].value = old_diffval = level - 1 ;
- X }
- X
- X if (get_bool_resource(R_LAST, &boolval)) DO_LAST = boolval ;
- X***************
- X*** 781,789 ****
- X--- 876,907 ----
- X if (get_bool_resource(R_NOTES, &boolval)) SHOW_NOTES = boolval ;
- X if (get_bool_resource(R_NUMBER, &boolval)) DO_NUMBER = boolval ;
- X if (get_bool_resource(R_QUICK, &boolval)) QUICKGAME = boolval ;
- X+ if (get_bool_resource(R_PROPS, &boolval)) props_showing = boolval ;
- X+ if (get_bool_resource(R_HELP, &boolval)) help_showing = boolval ;
- X+
- X+ if (get_str_resource(R_PANELC, str)) read_str(&colstr[C_PANEL], str) ;
- X+ if (get_str_resource(R_BOARDC, str)) read_str(&colstr[C_SQUARE], str) ;
- X+ if (get_str_resource(R_BOARDBC, str)) read_str(&colstr[C_BORDER], str) ;
- X+ if (get_str_resource(R_GRIDC, str)) read_str(&colstr[C_GRID], str) ;
- X+ if (get_str_resource(R_TEXTC, str)) read_str(&colstr[C_TEXT], str) ;
- X+ if (get_str_resource(R_ITEMC, str)) read_str(&colstr[C_ITEMS], str) ;
- X }
- X
- X
- X+ void
- X+ read_str(str, value)
- X+ char **str, *value ;
- X+ {
- X+ if (*str != NULL) (void) free(*str) ;
- X+ if (value != NULL && strlen(value))
- X+ {
- X+ *str = (char *) malloc((unsigned) (strlen(value) + 1)) ;
- X+ STRCPY(*str, value) ;
- X+ }
- X+ else *str = NULL ;
- X+ }
- X+
- X+
- X /* Setup the display information for the black and white displays.
- X * There are a fair number of combinations allowed. This table hopefully
- X * gives the setup information for each combination.
- X***************
- X*** 875,883 ****
- X FPRINTF(stderr, "%s version 1.1.%1d\n\n", progname, PATCHLEVEL) ;
- X FPRINTF(stderr, "Usage: %s: [-animate] [-bestmove]\n", progname) ;
- X FPRINTF(stderr, "\t[-black [display] ] [-c] [-d difficulty]\n") ;
- X! FPRINTF(stderr, "\t[-e edgefile] [-g geometry] [-last]\n") ;
- X! FPRINTF(stderr, "\t[-load gamefile] [-number] [-notes] [-v]\n") ;
- X! FPRINTF(stderr, "\t[-w [display] ] [-?] [-Wi] [-Wp x y] [-WP x y]\n") ;
- X }
- X
- X
- X--- 993,1002 ----
- X FPRINTF(stderr, "%s version 1.1.%1d\n\n", progname, PATCHLEVEL) ;
- X FPRINTF(stderr, "Usage: %s: [-animate] [-bestmove]\n", progname) ;
- X FPRINTF(stderr, "\t[-black [display] ] [-c] [-d difficulty]\n") ;
- X! FPRINTF(stderr, "\t[-e edgefile] [-g geometry] [-h helpfile] [-help]\n") ;
- X! FPRINTF(stderr, "\t[-i] [-last] [-load gamefile] [-log] [-m] [-number]\n") ;
- X! FPRINTF(stderr, "\t[-notes] [-props] [-quick] [-v] [-w [display] ]\n") ;
- X! FPRINTF(stderr, "\t[-?] [-Wi] [-Wp x y] [-WP x y]\n") ;
- X }
- X
- X
- X
- X------- procs.c -------
- X*** /tmp/da06888 Tue Dec 18 10:10:25 1990
- X--- procs.c Mon Dec 17 10:32:34 1990
- X***************
- X*** 29,39 ****
- X
- X
- X void
- X do_props()
- X {
- X props_showing = !props_showing ;
- X! if (props_showing == TRUE) open_frame(W_PROPS) ;
- X! else close_frame(W_PROPS) ;
- X }
- X
- X
- X--- 29,78 ----
- X
- X
- X void
- X+ display_help()
- X+ {
- X+ char str[4] ;
- X+ int val ;
- X+
- X+ val = items[itemno].value ;
- X+ if (direction == INCREMENT && help_offsets[++val] != -1)
- X+ items[itemno].value++ ;
- X+ else if (direction == DECREMENT && help_offsets[--val] != -1)
- X+ items[itemno].value-- ;
- X+ else return ;
- X+ SPRINTF(str, "%d", items[itemno].value) ;
- X+ set_cycle(W_HELP, HELP_PAGE, str) ;
- X+ paint_help_text() ;
- X+ }
- X+
- X+
- X+ void
- X+ do_edit()
- X+ {
- X+ message(PANEL_MES, "Not currently implemented.") ;
- X+ }
- X+
- X+
- X+ void
- X+ do_help()
- X+ {
- X+ help_showing = !help_showing ;
- X+ set_frame(W_HELP, help_showing) ;
- X+ }
- X+
- X+
- X+ void
- X+ do_stop()
- X+ {
- X+ message(PANEL_MES, "Not currently implemented.") ;
- X+ }
- X+
- X+
- X+ void
- X do_props()
- X {
- X props_showing = !props_showing ;
- X! set_frame(W_PROPS, props_showing) ;
- X }
- X
- X
- X***************
- X*** 81,89 ****
- X
- X suggest_x = BBORDER + ((suggestion & 7) + 1) * CELL_SIZE - CELL_SIZE / 2 ;
- X suggest_y = BBORDER + ((suggestion >> 3) + 1) * CELL_SIZE - CELL_SIZE / 2 ;
- X! if (state == IS_OFF)
- X! color = (iscolor[(int) cur_dpyno]) ? C_LBROWN : C_WHITE ;
- X! else color = C_BLACK ;
- X
- X draw_line(W_MAIN, suggest_x-5, CY+suggest_y-5,
- X suggest_x+5, CY+suggest_y+5, RSRC, color) ;
- X--- 120,127 ----
- X
- X suggest_x = BBORDER + ((suggestion & 7) + 1) * CELL_SIZE - CELL_SIZE / 2 ;
- X suggest_y = BBORDER + ((suggestion >> 3) + 1) * CELL_SIZE - CELL_SIZE / 2 ;
- X! if (state == IS_OFF) color = W_COLOR(C_SQUARE) ;
- X! else color = C_BLACK ;
- X
- X draw_line(W_MAIN, suggest_x-5, CY+suggest_y-5,
- X suggest_x+5, CY+suggest_y+5, RSRC, color) ;
- X***************
- X*** 94,99 ****
- X--- 132,161 ----
- X
- X
- X void
- X+ init_help_file(helpfile) /* Load reve help page offsets. */
- X+ char *helpfile ;
- X+ {
- X+ char buf[MAXLINE] ;
- X+ int i, page ;
- X+ long offset ;
- X+
- X+ for (i = 0; i < MAXPAGES; i++) help_offsets[i] = -1 ;
- X+ if ((hfp = find_file(helpfile)) == NULL)
- X+ {
- X+ FPRINTF(stderr, "Cannot open online help file\n") ;
- X+ return ;
- X+ }
- X+ page = 1 ;
- X+ for (;;)
- X+ {
- X+ offset = ftell(hfp) ;
- X+ if (fgets(buf, MAXLINE, hfp) == NULL) return ;
- X+ if (EQUAL(buf, "REVE(6)")) help_offsets[page++] = offset ;
- X+ }
- X+ }
- X+
- X+
- X+ void
- X make_move()
- X {
- X if (legal(move, next_player, &board) == FALSE)
- X***************
- X*** 129,135 ****
- X init_canvas() ;
- X message(EVAL_MES, "") ;
- X message(PANEL_MES, "Use left mouse button to move") ;
- X! draw_button(W_MAIN, NEW_GAME_BUT, C_LGREY, BUT_NORMAL) ;
- X }
- X
- X
- X--- 191,197 ----
- X init_canvas() ;
- X message(EVAL_MES, "") ;
- X message(PANEL_MES, "Use left mouse button to move") ;
- X! draw_button(W_MAIN, NEW_GAME_BUT, C_ITEMS, BUT_NORMAL) ;
- X }
- X
- X
- X***************
- X*** 142,151 ****
- X
- X
- X void
- X set_computer(val)
- X int val ;
- X {
- X! int color, curi ;
- X
- X if (val == CP_WHITE)
- X {
- X--- 204,294 ----
- X
- X
- X void
- X+ redo()
- X+ {
- X+ enum panel_type p ;
- X+
- X+ /* The amount we redo is dependant upon two things:
- X+ *
- X+ * 1/ Whether the opponent is the computer, in which case we redo
- X+ * two "moves". Otherwise we just redo one "move".
- X+ *
- X+ * 2/ A "move" is considered to be all consecutive moves by the opponent.
- X+ */
- X+
- X+ redo_move(next_player) ;
- X+ p = (next_player == BLACK) ? BLACK_PLAYS : WHITE_PLAYS ;
- X+ if (items[(int) p].value == COMPUTER) redo_move(next_player) ;
- X+
- X+ set_score() ;
- X+ set_turn(next_player) ;
- X+ }
- X+
- X+
- X+ void
- X+ redo_move(player)
- X+ int player ;
- X+ {
- X+ int i, limit, n, x, y ;
- X+
- X+ n = 63 - board.moves_left ;
- X+ while (moves[n].move != -1 && moves[n].player != player) n++ ;
- X+
- X+ if (moves[n].move == -1 || n > 63) message(PANEL_MES, "No moves to redo.") ;
- X+ else
- X+ {
- X+ if (DO_LAST) show_last(last_move, IS_OFF) ;
- X+ if (DO_NUMBER) show_number(last_move, 60 - board.moves_left, IS_OFF) ;
- X+ do_suggest(player, suggestion, note, IS_OFF) ;
- X+ FOR_BOARD(i)
- X+ {
- X+ if (moves[n].square[i] != board.square[i])
- X+ {
- X+ get_xy(i, &x, &y) ;
- X+ if (moves[n].square[i] == FREE)
- X+ color_area(W_MAIN, x, CY+y, PSIZE, PSIZE, W_COLOR(C_SQUARE)) ;
- X+ else draw_piece(moves[n].square[i], x, CY+y, RSRC) ;
- X+ }
- X+ board.square[i] = moves[n].square[i] ;
- X+ }
- X+ board.moves_left = moves[n].moves_left ;
- X+ board.player = moves[n].player ;
- X+ board.move = moves[n].move ;
- X+ board.note = moves[n].note ;
- X+ board.timeleft = moves[n].timeleft ;
- X+ last_move = board.move ;
- X+
- X+ FOR_BOARD(i) old_board.square[i] = moves[n-1].square[i] ;
- X+ old_board.moves_left = moves[n-1].moves_left ;
- X+ old_board.player = moves[n-1].player ;
- X+ old_board.move = moves[n-1].move ;
- X+ old_board.note = moves[n-1].note ;
- X+ old_board.timeleft = moves[n-1].timeleft ;
- X+
- X+ timeleft = board.timeleft ;
- X+
- X+ #ifdef XVIEW
- X+ reset_time(timeleft) ;
- X+ #endif /*XVIEW*/
- X+
- X+ if (OPPONENT(player) == BLACK) cmode = BLACK_START ;
- X+ else cmode = WHITE_START ;
- X+ message(PANEL_MES, "") ;
- X+
- X+ if (DO_LAST) show_last(last_move, IS_ON) ;
- X+ if (DO_NUMBER) show_number(last_move, 60 - board.moves_left, IS_ON) ;
- X+ if (SHOW_NOTES) set_eval(board.player, board.move, board.note) ;
- X+ else message(EVAL_MES, "") ;
- X+ next_player = OPPONENT(board.player) ;
- X+ }
- X+ }
- X+
- X+
- X+ void
- X set_computer(val)
- X int val ;
- X {
- X! int curi ;
- X
- X if (val == CP_WHITE)
- X {
- X***************
- X*** 175,182 ****
- X STRCPY(items[(int) WHITE_PLAYS].text, player_values[HUMAN]) ;
- X }
- X
- X! color = (iscolor[(int) cur_dpyno]) ? C_BEIGE : C_WHITE ;
- X! draw_choice(W_PROPS, COMP_CHOICE, color) ;
- X
- X val = items[(int) BLACK_PLAYS].value ;
- X val = items[(int) WHITE_PLAYS].value ;
- X--- 318,326 ----
- X STRCPY(items[(int) WHITE_PLAYS].text, player_values[HUMAN]) ;
- X }
- X
- X! draw_choice(W_PROPS, COMP_CHOICE, W_COLOR(C_PANEL)) ;
- X! make_message(W_MAIN, BLACK_PLAYS) ;
- X! make_message(W_MAIN, WHITE_PLAYS) ;
- X
- X val = items[(int) BLACK_PLAYS].value ;
- X val = items[(int) WHITE_PLAYS].value ;
- X***************
- X*** 194,202 ****
- X set_option()
- X {
- X char str[4] ;
- X! int color, d, maxw, n, val ;
- X
- X- d = (int) cur_dpyno ;
- X switch (itemno)
- X {
- X case COMP_CHOICE : maxw = items[itemno].width / items[itemno].nopts ;
- X--- 338,345 ----
- X set_option()
- X {
- X char str[4] ;
- X! int maxw, n, val ;
- X
- X switch (itemno)
- X {
- X case COMP_CHOICE : maxw = items[itemno].width / items[itemno].nopts ;
- X***************
- X*** 214,233 ****
- X val = (curx - items[itemno].x) / maxw ;
- X level = val + 1 ;
- X items[itemno].value = val ;
- X! color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
- X! draw_choice(W_PROPS, DIFF_CHOICE, color) ;
- X break ;
- X
- X case MAX_DEPTH : val = items[itemno].value ;
- X if (direction == INCREMENT && val < MAX_PROFMAX)
- X items[itemno].value++ ;
- X! else if (direction == DECREMENT && val > INIT_DEPTH)
- X items[itemno].value-- ;
- X! SPRINTF(str, "%d", items[itemno].value) ;
- X! color = (iscolor[d]) ? C_LGREY : C_WHITE ;
- X set_cycle(W_PROPS, MAX_DEPTH, str) ;
- X! profmax = items[itemno].value ;
- X! level = 1 ;
- X break ;
- X
- X case OPT_ANIM : ANIMATION = !ANIMATION ;
- X--- 357,390 ----
- X val = (curx - items[itemno].x) / maxw ;
- X level = val + 1 ;
- X items[itemno].value = val ;
- X! draw_choice(W_PROPS, DIFF_CHOICE, W_COLOR(C_PANEL)) ;
- X!
- X! items[(int) MAX_DEPTH].value = 0 ;
- X! set_cycle(W_PROPS, MAX_DEPTH, "off") ;
- X break ;
- X
- X case MAX_DEPTH : val = items[itemno].value ;
- X if (direction == INCREMENT && val < MAX_PROFMAX)
- X items[itemno].value++ ;
- X! else if (direction == DECREMENT && val > 0)
- X items[itemno].value-- ;
- X! if (!items[(int) itemno].value) STRCPY(str, "off") ;
- X! else SPRINTF(str, "%d", items[itemno].value) ;
- X set_cycle(W_PROPS, MAX_DEPTH, str) ;
- X!
- X! if (items[itemno].value)
- X! {
- X! items[(int) DIFF_CHOICE].value = -1 ;
- X! level = 1 ;
- X! max_depth = items[itemno].value ;
- X! }
- X! else
- X! {
- X! items[(int) DIFF_CHOICE].value = old_diffval ;
- X! level = old_diffval + 1 ;
- X! max_depth = 2 ;
- X! }
- X! draw_choice(W_PROPS, DIFF_CHOICE, W_COLOR(C_PANEL)) ;
- X break ;
- X
- X case OPT_ANIM : ANIMATION = !ANIMATION ;
- X***************
- X*** 247,254 ****
- X
- X case OPT_NUM : DO_NUMBER = !DO_NUMBER ;
- X n = 63 - board.moves_left ;
- X! show_number(moves[n].move, 60 - board.moves_left,
- X! DO_NUMBER, DO_NUMBER) ;
- X break ;
- X
- X case OPT_FLIP : QUICKGAME = !QUICKGAME ;
- X--- 404,412 ----
- X
- X case OPT_NUM : DO_NUMBER = !DO_NUMBER ;
- X n = 63 - board.moves_left ;
- X! if (board.moves_left < 60)
- X! show_number(moves[n].move, 60 - board.moves_left,
- X! DO_NUMBER) ;
- X break ;
- X
- X case OPT_FLIP : QUICKGAME = !QUICKGAME ;
- X***************
- X*** 306,311 ****
- X--- 464,470 ----
- X }
- X
- X
- X+ void
- X undo_move(player)
- X int player ;
- X {
- X***************
- X*** 326,333 ****
- X {
- X get_xy(i, &x, &y) ;
- X if (moves[n].square[i] == FREE)
- X! color_area(W_MAIN, x, CY+y, PSIZE, PSIZE,
- X! (iscolor[(int) cur_dpyno]) ? C_LBROWN : C_WHITE) ;
- X else draw_piece(moves[n].square[i], x, CY+y, RSRC) ;
- X }
- X board.square[i] = moves[n].square[i] ;
- X--- 485,491 ----
- X {
- X get_xy(i, &x, &y) ;
- X if (moves[n].square[i] == FREE)
- X! color_area(W_MAIN, x, CY+y, PSIZE, PSIZE, W_COLOR(C_SQUARE)) ;
- X else draw_piece(moves[n].square[i], x, CY+y, RSRC) ;
- X }
- X board.square[i] = moves[n].square[i] ;
- X***************
- X*** 338,344 ****
- X board.note = moves[n].note ;
- X board.timeleft = moves[n].timeleft ;
- X last_move = board.move ;
- X- moves[n+1].move = -1 ;
- X
- X FOR_BOARD(i) old_board.square[i] = moves[n-1].square[i] ;
- X old_board.moves_left = moves[n-1].moves_left ;
- X--- 496,501 ----
- X
- X
- END_OF_FILE
- if test 46589 -ne `wc -c <'patches04d'`; then
- echo shar: \"'patches04d'\" unpacked with wrong size!
- fi
- # end of 'patches04d'
- fi
- echo shar: End of archive 4 \(of 4\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 4 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-