home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume11 / reve / patch4c / patches04c
Text File  |  1991-01-03  |  37KB  |  1,014 lines

  1.  
  2. ------- color.h -------
  3. *** /tmp/da06825    Tue Dec 18 10:08:17 1990
  4. --- color.h    Tue Dec 11 18:19:51 1990
  5. ***************
  6. *** 22,45 ****
  7.    *  (see README file), then an attempt will be made to fix them.
  8.    */
  9.   
  10. ! #define  OTH_COLOR      "othcolor"
  11. ! #define  OTH_COLORSIZE  8
  12.   
  13.   #define  C_WHITE    0
  14. ! #define  C_LGREY    1
  15. ! #define  C_LBROWN   2
  16. ! #define  C_BEIGE    3
  17. ! #define  C_DBROWN   4
  18. ! #define  C_BLACK    5
  19. ! #define  C_SPARE6   6
  20. ! #define  C_SPARE7   7
  21. ! #define oth_colorsetup(r, g, b) \
  22. !         (r)[C_WHITE] = 255 ;  (g)[C_WHITE] = 255 ;  (b)[C_WHITE] = 255 ; \
  23. !         (r)[C_LGREY] = 200 ;  (g)[C_LGREY] = 200 ;  (b)[C_LGREY] = 200 ; \
  24. !         (r)[C_LBROWN] = 200 ; (g)[C_LBROWN] = 150 ; (b)[C_LBROWN] = 100 ; \
  25. !         (r)[C_BEIGE] = 255 ;  (g)[C_BEIGE] = 240 ;  (b)[C_BEIGE] = 220 ; \
  26. !         (r)[C_DBROWN] = 185 ; (g)[C_DBROWN] = 145 ; (b)[C_DBROWN] = 100 ; \
  27. !         (r)[C_BLACK] = 0 ;    (g)[C_BLACK] = 0 ;    (b)[C_BLACK] = 0 ; \
  28. !         (r)[C_SPARE6] = 0 ;   (g)[C_SPARE6] = 0 ;   (b)[C_SPARE6] = 0 ; \
  29. !         (r)[C_SPARE7] = 0 ;   (g)[C_SPARE7] = 0 ;   (b)[C_SPARE7] = 0 ;
  30. --- 22,45 ----
  31.    *  (see README file), then an attempt will be made to fix them.
  32.    */
  33.   
  34. ! #define  REVE_COLOR      "revecolor"
  35. ! #define  REVE_COLORSIZE  8
  36.   
  37.   #define  C_WHITE    0
  38. ! #define  C_BLACK    1
  39. ! #define  C_PANEL    2
  40. ! #define  C_SQUARE   3
  41. ! #define  C_BORDER   4
  42. ! #define  C_GRID     5
  43. ! #define  C_TEXT     6
  44. ! #define  C_ITEMS    7
  45. !  
  46. ! #define reve_colorsetup(r, g, b) \
  47. !         (r)[C_WHITE]  = 255 ;  (g)[C_WHITE]  = 255 ;  (b)[C_WHITE]  = 255 ; \
  48. !         (r)[C_BLACK]  = 0   ;  (g)[C_BLACK]  = 0   ;  (b)[C_BLACK]  = 0   ; \
  49. !         (r)[C_PANEL]  = 255 ;  (g)[C_PANEL]  = 240 ;  (b)[C_PANEL]  = 220 ; \
  50. !         (r)[C_SQUARE] = 200 ;  (g)[C_SQUARE] = 150 ;  (b)[C_SQUARE] = 100 ; \
  51. !         (r)[C_BORDER] = 185 ;  (g)[C_BORDER] = 145 ;  (b)[C_BORDER] = 100 ; \
  52. !         (r)[C_GRID]   = 200 ;  (g)[C_GRID]   = 200 ;  (b)[C_GRID]   = 200 ; \
  53. !         (r)[C_TEXT]   = 0 ;    (g)[C_TEXT]   = 0 ;    (b)[C_TEXT]   = 0 ;   \
  54. !         (r)[C_ITEMS]  = 200 ;  (g)[C_ITEMS]  = 200 ;  (b)[C_ITEMS]  = 200 ;
  55.  
  56. ------- extern.h -------
  57. *** /tmp/da06828    Tue Dec 18 10:08:18 1990
  58. --- extern.h    Sun Dec 16 10:53:55 1990
  59. ***************
  60. *** 32,37 ****
  61. --- 32,41 ----
  62.   extern int cury ;          /* Current mouse Y position. */
  63.   extern int down ;          /* Indicates is a mouse button is down. */
  64.   extern int first_move ;    /* Set if computer plays first move. */
  65. + extern int help_height ;   /* Height of the help window. */
  66. + extern int help_showing ;  /* If set, the help window is visible. */
  67. + extern int help_width ;    /* Width of the help window. */
  68. + extern int hfont_height ;  /* Height in pixels for help font. */
  69.   extern int iconic ;        /* Start as an icon if set. */
  70.   extern int inv_video ;     /* Set if displaying in inverse video. */
  71.   extern int iscolor[] ;     /* Set if this is a color screen. */
  72. ***************
  73. *** 51,56 ****
  74. --- 55,61 ----
  75.   extern int nextc ;         /* Current event identifier. */
  76.   extern int next_player ;   /* Next player (BLACK or WHITE) to move. */
  77.   extern int nfont_height ;  /* Height in pixels for normal font. */
  78. + extern int old_diffval ;   /* Old difficulty value (possibly restored). */
  79.   extern int piece_x ;       /* Current X position of moving piece. */
  80.   extern int piece_y ;       /* Current Y position of moving piece */
  81.   extern int play_computer ; /* Set if playing against the computer. */
  82. ***************
  83. *** 75,80 ****
  84. --- 80,94 ----
  85.   extern int wx ;            /* Initial X position of the window. */
  86.   extern int wy ;            /* Initial Y position of the window. */ 
  87.   
  88. + extern FILE *hfp ;              /* File descriptor for online help file. */
  89. + extern long help_offsets[] ;    /* Offsets into the reve help file. */
  90. + extern char *colstr[] ;    /* X resource color values. */
  91. + extern int rcols[] ;       /* Red colormap values. */
  92. + extern int gcols[] ;       /* Green colormap values. */
  93. + extern int bcols[] ;       /* Blue colormap values. */
  94.   extern time_t timeleft ;   /* Amount of time left for computer moves. */
  95.   extern long edges[] ;      /* Edges Stability Table */
  96.   extern long note ;         /* Note value for current computer move. */
  97. ***************
  98. *** 84,89 ****
  99. --- 98,104 ----
  100.   extern char edgefile[] ;         /* Location of the reve edge table file. */
  101.   extern char gamefile[] ;         /* Name of file for load/save. */
  102.   extern char geometry[MAXDPY][MAXLINE] ;   /* X11 geometry information. */
  103. + extern char helpfile[] ;         /* Location of the reve online help file. */
  104.   extern char line[] ;
  105.   extern char *notes_values[] ;    /* Values for cyclic notes button. */
  106.   extern char *player_values[] ;   /* Values for cyclic black/white item. */
  107.  
  108. ------- reve.h -------
  109. *** /tmp/da06831    Tue Dec 18 10:08:19 1990
  110. --- reve.h    Sun Dec 16 02:37:24 1990
  111. ***************
  112. *** 63,68 ****
  113. --- 63,69 ----
  114.   #define  BGAP          10       /* Width of the gap between buttons. */
  115.   #define  BHEIGHT       32       /* Height of a reve button item. */
  116.   #define  BWIDTH        64       /* Width of a reve button item. */
  117. + #define  CGAP          4        /* Size of the gap for a cycle item. */
  118.   #define  CHEIGHT       20       /* Height of a reve cycle item. */
  119.   #define  CHOICEGAP     5        /* Gap between choices in a choice item. */
  120.   #define  CWIDTH        32       /* Width of a reve cycle item. */
  121. ***************
  122. *** 103,111 ****
  123. --- 104,115 ----
  124.   #define  LINEFEED       13
  125.   #define  RETURN         10
  126.   
  127. + #define  CTL(n)        n - 96  /* Control characters. */
  128.   #define  ESCAPE        27      /* ASCII escape character. */
  129.   #define  EQUAL(a, b)   !strncmp(a, b, strlen(b))
  130.   #define  FOR_BOARD(i)  for (i = 0; i < 64; i++)
  131. + #define  HELP_COLS     80      /* Number of columns in help window. */
  132. + #define  HELP_ROWS     60      /* Number of rows in help window. */
  133.   #define  ICONHEIGHT    64      /* Height in pixels for reve icon. */
  134.   #define  ICONWIDTH     64      /* Width in pixels of reve icon. */
  135.   #define  INC           argc-- ; argv++ ;
  136. ***************
  137. *** 117,130 ****
  138.   #define  MAXCURSORS    3       /* Maximum number of cursor types. */
  139.   #define  MAXDIFF       9       /* Number of levels of difficulty. */
  140.   #define  MAXDPY        2       /* Maximum possible number of displays. */
  141. ! #define  MAXFONTS      2       /* Maximum number of font types. */
  142.   #define  MAXIMAGES     11      /* Maximum number of image types. */
  143. ! #define  MAXITEMS      24      /* Number of different panel items. */
  144.   
  145.   #ifndef  MAXLINE
  146. ! #define  MAXLINE       80      /* Length of character strings. */
  147.   #endif /*!MAXLINE*/
  148.   
  149.   #define  MAX_PROFMAX   60      /* Maximum search depth. */
  150.   #define  NIVEAUMAX     25      /* Maximum possible depth. */
  151.   
  152. --- 121,135 ----
  153.   #define  MAXCURSORS    3       /* Maximum number of cursor types. */
  154.   #define  MAXDIFF       9       /* Number of levels of difficulty. */
  155.   #define  MAXDPY        2       /* Maximum possible number of displays. */
  156. ! #define  MAXFONTS      3       /* Maximum number of font types. */
  157.   #define  MAXIMAGES     11      /* Maximum number of image types. */
  158. ! #define  MAXITEMS      29      /* Number of different panel items. */
  159.   
  160.   #ifndef  MAXLINE
  161. ! #define  MAXLINE       120     /* Length of character strings. */
  162.   #endif /*!MAXLINE*/
  163.   
  164. + #define  MAXPAGES      10      /* Maximum number of pages in reve help file. */
  165.   #define  MAX_PROFMAX   60      /* Maximum search depth. */
  166.   #define  NIVEAUMAX     25      /* Maximum possible depth. */
  167.   
  168. ***************
  169. *** 150,155 ****
  170. --- 155,163 ----
  171.   #define  PROPS_WIDTH   ((NOBUTS*BWIDTH)   + ((NOBUTS-1)*BGAP)  + (2*BBORDER))
  172.   #define  PSIZE         40      /* Diameter of playing piece. */
  173.   
  174. + #define  B_COLOR(c)   (iscolor[(int) cur_dpyno] ? c : C_BLACK)
  175. + #define  W_COLOR(c)   (iscolor[(int) cur_dpyno] ? c : C_WHITE)
  176.   #define  TICKHEIGHT    16      /* Height of the tick toggle box. */
  177.   #define  TICKWIDTH     16      /* Width of the tick toggle box. */
  178.   
  179. ***************
  180. *** 157,162 ****
  181. --- 165,174 ----
  182.   #define  EDGENAME      "reve.edgetable"
  183.   #endif /*!EDGENAME*/
  184.   
  185. + #ifndef  HELPNAME
  186. + #define  HELPNAME      "reve.help"
  187. + #endif /*!HELPNAME*/
  188.   #ifndef  INT_SIGNAL
  189.   #define  SIGRET        void
  190.   #else
  191. ***************
  192. *** 191,197 ****
  193.   #define  KEYBOARD         109    /* Keyboard character has been pressed. */
  194.   #define  MOUSE_MOVING     110    /* Mouse is moving. */
  195.   #define  PROPS_REPAINT    111    /* Property window needs repainting. */
  196. ! #define  IGNORE_EVENT     112    /* No interest in this event. */
  197.   
  198.   /* Batch, last move, locking or show all direction (ON or OFF). */
  199.   enum bltype   { IS_OFF, IS_ON } ;
  200. --- 203,210 ----
  201.   #define  KEYBOARD         109    /* Keyboard character has been pressed. */
  202.   #define  MOUSE_MOVING     110    /* Mouse is moving. */
  203.   #define  PROPS_REPAINT    111    /* Property window needs repainting. */
  204. ! #define  HELP_REPAINT     112    /* Help window needs repainting. */
  205. ! #define  IGNORE_EVENT     113    /* No interest in this event. */
  206.   
  207.   /* Batch, last move, locking or show all direction (ON or OFF). */
  208.   enum bltype   { IS_OFF, IS_ON } ;
  209. ***************
  210. *** 207,213 ****
  211.   
  212.   enum dpy_type { DPY1, DPY2 } ;                    /* Possible dpy types. */
  213.   
  214. ! enum font_type { NFONT, BFONT } ;                 /* Text font definitions. */
  215.   
  216.   enum gr_type { GSUNVIEW, GTTY, GX11, GXVIEW } ;   /* Graphical systems. */
  217.   
  218. --- 220,226 ----
  219.   
  220.   enum dpy_type { DPY1, DPY2 } ;                    /* Possible dpy types. */
  221.   
  222. ! enum font_type { BFONT, HFONT, NFONT} ;           /* Text font definitions. */
  223.   
  224.   enum gr_type { GSUNVIEW, GTTY, GX11, GXVIEW } ;   /* Graphical systems. */
  225.   
  226. ***************
  227. *** 223,237 ****
  228.   enum move_type { M_BEST, M_MOVE, M_PROFMAX, M_SUGGESTION, M_TIME } ;
  229.   
  230.   /* Different panel items. */
  231. ! enum panel_type { LOAD_BUT,    MOVES_BUT,    NEW_GAME_BUT, SAVE_BUT,
  232. !                   SUGGEST_BUT, UNDO_BUT,     PROPS_BUT,    CANCEL_BUT,
  233.                     QUIT_BUT,    BLACK_PLAYS,  WHITE_PLAYS,  PANEL_MES,
  234.                     EVAL_MES,    SCORE_MES,    TURN_MES,     COMP_CHOICE,
  235.                     DIFF_CHOICE, MAX_DEPTH,    OPT_ANIM,     OPT_BEST,
  236. !                   OPT_LAST,    OPT_EVAL,     OPT_NUM,      OPT_FLIP } ;
  237.   
  238.   enum res_type { R_ANIMATE, R_BESTMOVE, R_DIFFICULTY, R_LAST,  /* Resources. */
  239. !                 R_LOG,     R_NOTES,    R_NUMBER,     R_QUICK } ;
  240.   
  241.   enum set_type { INCREMENT, DECREMENT, NONE } ;   /* Cycle directions. */
  242.   
  243. --- 236,254 ----
  244.   enum move_type { M_BEST, M_MOVE, M_PROFMAX, M_SUGGESTION, M_TIME } ;
  245.   
  246.   /* Different panel items. */
  247. ! enum panel_type { LOAD_BUT,    MOVES_BUT,    NEW_GAME_BUT, HELP_BUT,
  248. !                   REDO_BUT,    PROPS_BUT,    SAVE_BUT,     SUGGEST_BUT,
  249. !                   EDIT_BUT,    STOP_BUT,     UNDO_BUT,     CANCEL_BUT,
  250.                     QUIT_BUT,    BLACK_PLAYS,  WHITE_PLAYS,  PANEL_MES,
  251.                     EVAL_MES,    SCORE_MES,    TURN_MES,     COMP_CHOICE,
  252.                     DIFF_CHOICE, MAX_DEPTH,    OPT_ANIM,     OPT_BEST,
  253. !                   OPT_LAST,    OPT_EVAL,     OPT_NUM,      OPT_FLIP,
  254. !                   HELP_PAGE } ;
  255.   
  256.   enum res_type { R_ANIMATE, R_BESTMOVE, R_DIFFICULTY, R_LAST,  /* Resources. */
  257. !                 R_LOG,     R_NOTES,    R_NUMBER,     R_QUICK,
  258. !                 R_PANELC,  R_BOARDC,   R_BOARDBC,    R_GRIDC,
  259. !                 R_TEXTC,   R_ITEMC,    R_PROPS,      R_HELP } ;
  260.   
  261.   enum set_type { INCREMENT, DECREMENT, NONE } ;   /* Cycle directions. */
  262.   
  263. ***************
  264. *** 239,247 ****
  265.   
  266.   enum playtype { PLAY_BLACK, PLAY_WHITE } ; /* What the computer is playing. */
  267.   
  268. ! enum win_type { W_MAIN, W_PROPS } ;        /* Window types. */
  269.   
  270. ! extern char *getenv() ;
  271.   extern void exit() ;
  272.   
  273.   typedef struct {
  274. --- 256,264 ----
  275.   
  276.   enum playtype { PLAY_BLACK, PLAY_WHITE } ; /* What the computer is playing. */
  277.   
  278. ! enum win_type { W_MAIN, W_HELP, W_PROPS } ;      /* Window types. */
  279.   
  280. ! extern char *getenv(), *malloc() ;
  281.   extern void exit() ;
  282.   
  283.   typedef struct {
  284. ***************
  285. *** 288,305 ****
  286.       int depth ;
  287.     } ;
  288.   
  289.   char *getenv(), *index() ;
  290.   char *get_resource() ;
  291.   
  292.   void animate_move(),       batch(),              check_button_down() ;
  293.   void check_choice_down(),  check_cycle_down(),   check_item_down() ;
  294. ! void check_item_up(),      check_toggle_down(),  close_frame() ;
  295. ! void color_area() ;
  296.   void computer_move(),      computer_plays(),     connect_to_reve() ;
  297. ! void create_menu(),        destroy_frame() ;
  298. ! void do_action(),          do_computer_move(),   do_cycle_key() ;
  299. ! void do_key_move(),        do_move(),            do_props() ;
  300. ! void do_selection(),       do_suggest(),         domove() ;
  301.   void done(),               draw_button(),        draw_choice() ;
  302.   void draw_cycle(),         draw_cycle_item(),    draw_image() ;
  303.   void draw_line(),          draw_outline(),       draw_piece() ;
  304. --- 305,325 ----
  305.       int depth ;
  306.     } ;
  307.   
  308. + FILE *find_file() ;
  309.   char *getenv(), *index() ;
  310.   char *get_resource() ;
  311.   
  312.   void animate_move(),       batch(),              check_button_down() ;
  313.   void check_choice_down(),  check_cycle_down(),   check_item_down() ;
  314. ! void check_item_up(),      check_toggle_down(),  color_area() ;
  315.   void computer_move(),      computer_plays(),     connect_to_reve() ;
  316. ! void create_menu(),        destroy_frame(),      display_help() ;
  317. ! void do_action() ;
  318. ! void do_computer_move(),   do_edit(),            do_help() ;
  319. ! void do_key(),             do_key_move(),        do_move() ;
  320. ! void do_props(),           do_selection() ;
  321. ! void do_stop(),            do_suggest(),         domove() ;
  322.   void done(),               draw_button(),        draw_choice() ;
  323.   void draw_cycle(),         draw_cycle_item(),    draw_image() ;
  324.   void draw_line(),          draw_outline(),       draw_piece() ;
  325. ***************
  326. *** 309,329 ****
  327.   void get_options(),        get_xy(),             getparam() ;
  328.   void handle_board_event(), handle_event(),       handle_item() ;
  329.   void handle_key(),         init_canvas(),        init_edge_table() ;
  330. ! void init_fonts(),         initboard(),          initialise() ;
  331. ! void load_colors(),        load_game() ;
  332. ! void load_resources(),     lock_screen() ;
  333. ! void make_canvas(),        make_frame(),         make_icon() ;
  334.   void make_message(),       make_move(),          make_panel() ;
  335.   void message(),            nap_upto(),           new_game() ;
  336. ! void open_frame(),         paint_prop_sheet(),   position_popup() ;
  337. ! void process_event(),      quit() ;
  338. ! void read_resources(),     remove_textfield(),   reset_time() ;
  339.   void save_game(),          set_computer(),       set_cursor() ;
  340.   void set_cycle(),          set_display_types(),  set_eval() ;
  341. ! void set_option(),         set_score(),          set_timer() ;
  342.   void set_turn(),           show_all(),           show_all_moves() ;
  343.   void show_best(),          show_last(),          show_number() ;
  344. ! void show_suggestion(),    start_tool() ;
  345. ! void suggest(),            think(),              undo() ;
  346.   void update_board_image(), usage(),              who_wins() ;
  347.   void write_to_reve() ;
  348. --- 329,352 ----
  349.   void get_options(),        get_xy(),             getparam() ;
  350.   void handle_board_event(), handle_event(),       handle_item() ;
  351.   void handle_key(),         init_canvas(),        init_edge_table() ;
  352. ! void init_help_file(),     init_fonts(),         initboard() ;
  353. ! void initialise(),         load_colors(),        load_game() ;
  354. ! void load_resources(),     lock_screen(),        make_canvas() ;
  355. ! void make_frame(),         make_help_window(),   make_icon() ;
  356.   void make_message(),       make_move(),          make_panel() ;
  357.   void message(),            nap_upto(),           new_game() ;
  358. ! void paint_help(),         paint_help_text(),    paint_prop_sheet() ;
  359. ! void position_popup() ;
  360. ! void process_event(),      quit(),               read_resources() ;
  361. ! void read_str(),           redo(),               redo_move() ;
  362. ! void remove_textfield(),   reset_time() ;
  363.   void save_game(),          set_computer(),       set_cursor() ;
  364.   void set_cycle(),          set_display_types(),  set_eval() ;
  365. ! void set_frame(),          set_option() ;
  366. ! void set_score(),          set_timer() ;
  367.   void set_turn(),           show_all(),           show_all_moves() ;
  368.   void show_best(),          show_last(),          show_number() ;
  369. ! void show_suggestion(),    start_tool(),         suggest() ;
  370. ! void think(),              undo(),               undo_move() ;
  371.   void update_board_image(), usage(),              who_wins() ;
  372.   void write_to_reve() ;
  373.  
  374. ------- Imakefile -------
  375. *** /tmp/da06834    Tue Dec 18 10:08:19 1990
  376. --- Imakefile    Wed Dec 12 16:22:49 1990
  377. ***************
  378. *** 58,64 ****
  379.        
  380.   /*  Compilation flags and standard macro definitions.  */
  381.   
  382. ! SYS_LIBRARIES    = $(XLIB)     
  383.   CDEFS        = $(NOSELECT) $(NO_USLEEP) $(EDGENAME) $(SELTYPE) \
  384.             $(SIGRET)
  385.   DEFINES         = $(CDEFS) -DX11
  386. --- 58,65 ----
  387.        
  388.   /*  Compilation flags and standard macro definitions.  */
  389.   
  390. ! X11LIBS        = $(XLIB)     
  391. ! TTYLIBS        = -ltermcap
  392.   CDEFS        = $(NOSELECT) $(NO_USLEEP) $(EDGENAME) $(SELTYPE) \
  393.             $(SIGRET)
  394.   DEFINES         = $(CDEFS) -DX11
  395. ***************
  396. *** 72,85 ****
  397.   EDGENAME        = -DEDGENAME=\"$(EDGENAMEFILE)\"
  398.   
  399.        
  400. ! SRCS        = boardstuff.c events.c items.c makemove.c main.c \
  401. !           procs.c rev_eval.c rev_ip.c rev_iycp.c x11.c
  402. ! OBJS        = boardstuff.o events.o items.o makemove.o main.o \
  403. !           procs.o rev_eval.o rev_ip.o rev_iycp.o x11.o
  404.   
  405. ! ComplexProgramTarget(reve)
  406.   MakeDirectories(install,$(USRLIBDIR)$(PATHSEP)reve)
  407.   InstallNonExec($(ETABLE),$(USRLIBDIR)$(PATHSEP)reve)
  408.   
  409.   install:: install.man
  410.   
  411. --- 73,99 ----
  412.   EDGENAME        = -DEDGENAME=\"$(EDGENAMEFILE)\"
  413.   
  414.        
  415. ! REVESRCS        = rev_eval.c rev_ip.c rev_iycp.c
  416. ! STDSRCS         = boardstuff.c events.c makemove.c main.c procs.c
  417. ! REVEOBJS        = rev_eval.o rev_ip.o rev_iycp.o
  418. ! STDOBJS         = boardstuff.o events.o makemove.o main.o procs.o
  419.   
  420. ! SRCS1        = $(STDSRCS) $(REVESRCS) common.c items.c x11.c
  421. ! OBJS1        = $(STDOBJS) $(REVEOBJS) common.o items.o x11.o
  422. ! SRCS2        = $(STDSRCS) $(REVESRCS) common.c items.c tty.c
  423. ! OBJS2        = $(STDOBJS) $(REVEOBJS) common.o items.o tty.o
  424. ! PROGRAMS    = reve
  425. ! ComplexProgramTarget_1(reve, $(X11LIBS), /**/)
  426.   MakeDirectories(install,$(USRLIBDIR)$(PATHSEP)reve)
  427.   InstallNonExec($(ETABLE),$(USRLIBDIR)$(PATHSEP)reve)
  428. + tty: tty_reve
  429. +     -cp tty_reve reve
  430. + NormalProgramTarget(tty_reve, $(OBJS2), /**/, /**/, $(TTYLIBS))
  431.   
  432.   install:: install.man
  433.   
  434.  
  435. ------- reve_proc.c -------
  436. *** /tmp/da06837    Tue Dec 18 10:08:20 1990
  437. --- reve_proc.c    Sun Dec 16 11:09:45 1990
  438. ***************
  439. *** 31,36 ****
  440. --- 31,38 ----
  441.   
  442.   int saveres = 0 ;            /* If set, save computer results to log file. */
  443.   
  444. + char edgefile[MAXLINE] ;     /* Location of the reve edge table file. */
  445.   /* REVE global variables */
  446.   
  447.   int damier[NIVEAUMAX][64] ;  /* Boards at different depth level */
  448.  
  449. ------- common.c -------
  450. *** /tmp/da06840    Tue Dec 18 10:08:21 1990
  451. --- common.c    Sun Dec 16 11:01:07 1990
  452. ***************
  453. *** 25,43 ****
  454.   #include "reve.h"
  455.   #include "extern.h"
  456.   
  457. ! void
  458. ! init_edge_table(edgefile)     /* Load reve edge table values. */
  459. ! char *edgefile ;
  460.   {
  461. !   char buf[MAXLINE], *getenv(), name[MAXLINE], *paths, *ptr ;
  462. !   int i, line ;
  463.     FILE *fp = NULL ;
  464.   
  465. !   i = 0 ;
  466. !   if ((fp = fopen(edgefile, "r")) == NULL)
  467.       {
  468.         paths = getenv("PATH") ;
  469. !       if ((ptr = paths) && edgefile[0] != '/')
  470.           for (;;)
  471.             if (*ptr == ':' || *ptr == 0)
  472.               {
  473. --- 25,42 ----
  474.   #include "reve.h"
  475.   #include "extern.h"
  476.   
  477. ! FILE *
  478. ! find_file(filename)
  479. ! char *filename ;
  480.   {
  481. !   char name[MAXLINE], *paths, *ptr ;
  482. !   int i = 0 ;
  483.     FILE *fp = NULL ;
  484.   
  485. !   if ((fp = fopen(filename, "r")) == NULL)
  486.       {
  487.         paths = getenv("PATH") ;
  488. !       if ((ptr = paths) && filename[0] != '/')
  489.           for (;;)
  490.             if (*ptr == ':' || *ptr == 0)
  491.               {
  492. ***************
  493. *** 52,59 ****
  494.               }
  495.             else name[i++] = *ptr++ ;
  496.       }
  497.    
  498. !   if (fp == NULL)
  499.       {
  500.         FPRINTF(stderr, "Cannot open Edge Stability Table file\n") ;
  501.         exit(1) ;
  502. --- 51,69 ----
  503.               }
  504.             else name[i++] = *ptr++ ;
  505.       }
  506. +   return(fp) ;
  507. + }
  508. + void
  509. + init_edge_table(edgefile)     /* Load reve edge table values. */
  510. + char *edgefile ;
  511. + {
  512. +   char buf[MAXLINE], *ptr ;
  513. +   int i, line ;
  514. +   FILE *fp = NULL ;
  515.    
  516. !   if ((fp = find_file(edgefile)) == NULL)
  517.       {
  518.         FPRINTF(stderr, "Cannot open Edge Stability Table file\n") ;
  519.         exit(1) ;
  520.  
  521. ------- boardstuff.c -------
  522. *** /tmp/da06843    Tue Dec 18 10:08:21 1990
  523. --- boardstuff.c    Tue Dec 11 19:53:46 1990
  524. ***************
  525. *** 235,242 ****
  526.   {
  527.     int color, x, y ;
  528.   
  529. !   if (iscolor[(int) cur_dpyno]) color = (state == IS_ON) ? C_BLACK : C_LBROWN ;
  530. !   else                          color = (state == IS_ON) ? C_BLACK : C_WHITE ;
  531.   
  532.     x = (move & 7)  * CELL_SIZE + BBORDER ;
  533.     y = (move >> 3) * CELL_SIZE + BBORDER ;
  534. --- 235,242 ----
  535.   {
  536.     int color, x, y ;
  537.   
  538. !   if (state == IS_ON) color = C_BLACK ;
  539. !   else                color = W_COLOR(C_SQUARE) ;
  540.   
  541.     x = (move & 7)  * CELL_SIZE + BBORDER ;
  542.     y = (move >> 3) * CELL_SIZE + BBORDER ;
  543. ***************
  544. *** 513,519 ****
  545.   show_all(state)
  546.   enum bltype state ;
  547.   {
  548. !   int color, d, i, x, y ;
  549.   
  550.     d = (int) cur_dpyno ;
  551.     batch(IS_ON) ;
  552. --- 513,519 ----
  553.   show_all(state)
  554.   enum bltype state ;
  555.   {
  556. !   int d, i, x, y ;
  557.   
  558.     d = (int) cur_dpyno ;
  559.     batch(IS_ON) ;
  560. ***************
  561. *** 547,554 ****
  562.               s_all.square[i] = FREE ;
  563.               x = (i & 7)  * CELL_SIZE + BBORDER + 1 ;
  564.               y = (i >> 3) * CELL_SIZE + BBORDER + 1 ;  
  565. !             color = (iscolor[d]) ? C_LBROWN : C_WHITE ;
  566. !             color_area(W_MAIN, x, CY + y, CELL_SIZE - 2, CELL_SIZE - 2, color) ;
  567.             }
  568.       }    
  569.     batch(IS_OFF) ;
  570. --- 547,554 ----
  571.               s_all.square[i] = FREE ;
  572.               x = (i & 7)  * CELL_SIZE + BBORDER + 1 ;
  573.               y = (i >> 3) * CELL_SIZE + BBORDER + 1 ;  
  574. !             color_area(W_MAIN, x, CY + y,
  575. !                        CELL_SIZE - 2, CELL_SIZE - 2, W_COLOR(C_SQUARE)) ;
  576.             }
  577.       }    
  578.     batch(IS_OFF) ;
  579. ***************
  580. *** 602,608 ****
  581.     else if (board.square[move] == WHITE)
  582.       color = (state == IS_ON) ? C_BLACK : C_WHITE ;
  583.     else if (iscolor[(int) cur_dpyno])
  584. !     color = (state == IS_ON) ? C_BLACK : C_LBROWN ;
  585.     else
  586.       color = (state == IS_ON) ? C_BLACK : C_WHITE ;
  587.   
  588. --- 602,608 ----
  589.     else if (board.square[move] == WHITE)
  590.       color = (state == IS_ON) ? C_BLACK : C_WHITE ;
  591.     else if (iscolor[(int) cur_dpyno])
  592. !     color = (state == IS_ON) ? C_BLACK : C_SQUARE ;
  593.     else
  594.       color = (state == IS_ON) ? C_BLACK : C_WHITE ;
  595.   
  596. ***************
  597. *** 627,638 ****
  598.     if (suggestion != -1)
  599.       {
  600.         rop = RCLR ;
  601. -       color = (iscolor[(int) cur_dpyno]) ? C_LBROWN : C_WHITE ;
  602.         if (iscolor[(int) cur_dpyno]) rop = RSRC ;
  603.         draw_line(W_MAIN, suggest_x-5, CY+suggest_y-5,
  604. !                         suggest_x+5, CY+suggest_y+5, rop, color) ;
  605.         draw_line(W_MAIN, suggest_x-5, CY+suggest_y+5,
  606. !                         suggest_x+5, CY+suggest_y-5, rop, color) ;
  607.         suggestion = -1 ;
  608.       }
  609.   }
  610. --- 627,637 ----
  611.     if (suggestion != -1)
  612.       {
  613.         rop = RCLR ;
  614.         if (iscolor[(int) cur_dpyno]) rop = RSRC ;
  615.         draw_line(W_MAIN, suggest_x-5, CY+suggest_y-5,
  616. !                         suggest_x+5, CY+suggest_y+5, rop, W_COLOR(C_SQUARE)) ;
  617.         draw_line(W_MAIN, suggest_x-5, CY+suggest_y+5,
  618. !                         suggest_x+5, CY+suggest_y-5, rop, W_COLOR(C_SQUARE)) ;
  619.         suggestion = -1 ;
  620.       }
  621.   }
  622.  
  623. ------- events.c -------
  624. *** /tmp/da06846    Tue Dec 18 10:08:22 1990
  625. --- events.c    Sun Dec 16 02:47:52 1990
  626. ***************
  627. *** 37,42 ****
  628. --- 37,45 ----
  629.     n = (int) item ;
  630.     if (items[n].x == -1) return ;
  631.     if (items[n].wtype != curwin) return ;
  632. +   if (tinput && (n == (int) SUGGEST_BUT || n == (int) EDIT_BUT ||
  633. +                  n == (int) STOP_BUT    || n == (int) UNDO_BUT))
  634. +     return ;
  635.     if ((curx >  items[n].x) && (curx < (items[n].x + items[n].width)) &&
  636.         (cury >  items[n].y) && (cury < (items[n].y + items[n].height)))
  637.       {
  638. ***************
  639. *** 43,49 ****
  640.         down = nextc ;
  641.         itemno = n ;
  642.         but_inverted = itemno ;
  643. !       draw_button(W_MAIN, (enum panel_type) itemno, C_LGREY, BUT_INVERT) ;
  644.       }
  645.   }
  646.   
  647. --- 46,52 ----
  648.         down = nextc ;
  649.         itemno = n ;
  650.         but_inverted = itemno ;
  651. !       draw_button(W_MAIN, (enum panel_type) itemno, C_ITEMS, BUT_INVERT) ;
  652.       }
  653.   }
  654.   
  655. ***************
  656. *** 81,87 ****
  657.         direction = INCREMENT ;
  658.         down = nextc ;
  659.         itemno = n ;
  660. !       draw_cycle(curwin, (enum panel_type) n, C_LGREY, CY_LINVERT) ;
  661.       }
  662.     else if ((curx > ix) && (curx < (ix + CWIDTH)) &&
  663.              (cury > items[n].y) && (cury < (items[n].y + CHEIGHT)) &&
  664. --- 84,90 ----
  665.         direction = INCREMENT ;
  666.         down = nextc ;
  667.         itemno = n ;
  668. !       draw_cycle(curwin, (enum panel_type) n, C_ITEMS, CY_LINVERT) ;
  669.       }
  670.     else if ((curx > ix) && (curx < (ix + CWIDTH)) &&
  671.              (cury > items[n].y) && (cury < (items[n].y + CHEIGHT)) &&
  672. ***************
  673. *** 90,96 ****
  674.         direction = DECREMENT ;
  675.         down = nextc ;
  676.         itemno = n ;
  677. !       draw_cycle(curwin, (enum panel_type) n, C_LGREY, CY_RINVERT) ;
  678.       }
  679.   }
  680.   
  681. --- 93,99 ----
  682.         direction = DECREMENT ;
  683.         down = nextc ;
  684.         itemno = n ;
  685. !       draw_cycle(curwin, (enum panel_type) n, C_ITEMS, CY_RINVERT) ;
  686.       }
  687.   }
  688.   
  689. ***************
  690. *** 118,126 ****
  691.   void
  692.   check_item_up()
  693.   {
  694. -   int color, d ;
  695. -   d = (int) cur_dpyno ;
  696.     if ((nextc == LEFT_UP   && down == LEFT_DOWN)   ||
  697.         (nextc == MIDDLE_UP && down == MIDDLE_DOWN) ||
  698.         (nextc == RIGHT_UP  && down == RIGHT_DOWN))
  699. --- 121,126 ----
  700. ***************
  701. *** 133,151 ****
  702.             case P_BUTTON : if (items[itemno].x != -1)
  703.                               draw_button(items[itemno].wtype,
  704.                                           (enum panel_type) itemno,
  705. !                                         C_LGREY, BUT_NORMAL) ;
  706.                             break ;
  707. !           case P_CHOICE : color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
  708. !                           draw_choice(items[itemno].wtype,
  709. !                                       (enum panel_type) itemno, color) ;
  710.                             break ;
  711.             case P_CYCLE  : draw_cycle(items[itemno].wtype,
  712.                                        (enum panel_type) itemno,
  713. !                                      C_LGREY, CY_NORMAL) ;
  714.                             break ;
  715. !           case P_TOGGLE : color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
  716. !                           draw_toggle(items[itemno].wtype,
  717. !                                       (enum panel_type) itemno, color) ;
  718.           }
  719.       } 
  720.   }
  721. --- 133,151 ----
  722.             case P_BUTTON : if (items[itemno].x != -1)
  723.                               draw_button(items[itemno].wtype,
  724.                                           (enum panel_type) itemno,
  725. !                                         W_COLOR(C_ITEMS), BUT_NORMAL) ;
  726.                             break ;
  727. !           case P_CHOICE : draw_choice(items[itemno].wtype,
  728. !                                       (enum panel_type) itemno,
  729. !                                       W_COLOR(C_PANEL)) ;
  730.                             break ;
  731.             case P_CYCLE  : draw_cycle(items[itemno].wtype,
  732.                                        (enum panel_type) itemno,
  733. !                                      W_COLOR(C_ITEMS), CY_NORMAL) ;
  734.                             break ;
  735. !           case P_TOGGLE : draw_toggle(items[itemno].wtype,
  736. !                                       (enum panel_type) itemno,
  737. !                                       W_COLOR(C_PANEL)) ;
  738.           }
  739.       } 
  740.   }
  741. ***************
  742. *** 218,236 ****
  743.   
  744.   
  745.   void
  746. ! do_cycle_key(item, ch)
  747. ! enum panel_type item ;
  748. ! int ch ;
  749.   {
  750. !   int color, d, maxw, val ;
  751.   
  752. !   d = (int) cur_dpyno ;
  753. !   color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
  754.     if (!validkey)
  755.       {
  756.         validkey = cur_ch ;
  757. !       if (item == OPT_EVAL) message(PANEL_MES, "Notes?") ;
  758. !       else message(PANEL_MES, items[(int) item].label) ;
  759.       }
  760.     else
  761.       {
  762. --- 218,240 ----
  763.   
  764.   
  765.   void
  766. ! do_key(item, ch)
  767. ! int item, ch ;
  768.   {
  769. !   int color, maxw, val ;
  770.   
  771. !   color = W_COLOR(C_PANEL) ;
  772.     if (!validkey)
  773.       {
  774.         validkey = cur_ch ;
  775. !       switch (item)
  776. !         {
  777. !           case 'C' : message(PANEL_MES, items[(int) COMP_CHOICE].label) ;
  778. !                      break ;
  779. !           case 'D' : message(PANEL_MES, items[(int) DIFF_CHOICE].label) ;
  780. !                      break ;
  781. !           case 'O' : message(PANEL_MES, "Option?") ;
  782. !         }
  783.       }
  784.     else
  785.       {
  786. ***************
  787. *** 237,290 ****
  788.         val = -1 ;
  789.         switch (item)
  790.           {
  791. !           case COMP_CHOICE : switch (ch)
  792. !                                {
  793. !                                  case 'a' :                  /* All (both). */
  794. !                                  case 'A' : val = CP_BOTH ;
  795. !                                             break ;
  796. !                                  case 'b' :                  /* Black. */
  797. !                                  case 'B' : val = CP_BLACK ;
  798. !                                             break ;
  799. !                                  case 'n' :                  /* Neither. */
  800. !                                  case 'N' : val = CP_NEITHER ;
  801. !                                             break ;
  802. !                                  case 'w' :                  /* White. */
  803. !                                  case 'W' : val = CP_WHITE ;
  804. !                                             break ;
  805. !                                  default  : return ;
  806. !                                }
  807. !                              maxw = items[(int) item].width /
  808. !                                     items[(int) item].nopts ;
  809. !                              curx = items[(int) item].x + (maxw * val) ;
  810. !                              itemno = (int) item ;
  811. !                              items[(int) item].value = val ;
  812. !                              draw_choice(W_PROPS, item, color) ;
  813. !                              break ;
  814. !           case DIFF_CHOICE : if (ch >= '1' && ch <= '9') val = ch - '1' ;
  815. !                              items[(int) item].value = val ;
  816. !                              draw_choice(W_PROPS, item, color) ;
  817. !                              break ;
  818. !           case OPT_EVAL    : color = (iscolor[d]) ? C_BEIGE : C_WHITE ;
  819. !                              switch (ch)
  820. !                                {
  821. !                                  case 'n' :
  822. !                                  case 'N' : val = 0 ;
  823. !                                             break ;
  824. !                                  case 'y' :
  825. !                                  case 'Y' : val = 1 ;
  826. !                                             break ;
  827. !                                  default  : return ;
  828. !                                }
  829. !                              items[(int) item].value = val ;
  830. !                              draw_toggle(W_PROPS, OPT_EVAL, color) ;
  831.           }
  832.         if (val != -1)
  833.           {
  834.             validkey = 0 ;
  835.             message(PANEL_MES, "") ;
  836. !           items[(int) item].value = item_value = val ;
  837.             direction = NONE ;
  838. !           (*items[(int) item].func)() ;
  839.           }
  840.       }
  841.   }
  842. --- 241,315 ----
  843.         val = -1 ;
  844.         switch (item)
  845.           {
  846. !           case 'C' : itemno = (int) COMP_CHOICE ;
  847. !                      switch (ch)
  848. !                        {
  849. !                          case 'a' :                  /* All (both). */
  850. !                          case 'A' : val = CP_BOTH ;
  851. !                                     break ;
  852. !                          case 'b' :                  /* Black. */
  853. !                          case 'B' : val = CP_BLACK ;
  854. !                                     break ;
  855. !                          case 'n' :                  /* Neither. */
  856. !                          case 'N' : val = CP_NEITHER ;
  857. !                                     break ;
  858. !                          case 'w' :                  /* White. */
  859. !                          case 'W' : val = CP_WHITE ;
  860. !                                     break ;
  861. !                          default  : return ;
  862. !                        }
  863. !                      maxw = items[itemno].width / items[itemno].nopts ;
  864. !                      curx = items[itemno].x + (maxw * val) ;
  865. !                      items[itemno].value = val ;
  866. !                      break ;
  867. !           case 'D' : itemno = (int) DIFF_CHOICE ;
  868. !                      if (ch >= '1' && ch <= '9') val = ch - '1' ;
  869. !                      maxw = items[itemno].width / items[itemno].nopts ;
  870. !                      curx = items[itemno].x + (maxw * val) ;
  871. !                      items[itemno].value = val ;
  872. !                      break ;
  873. !           case 'O' : switch (ch)
  874. !                        {
  875. !                          case 'a' :
  876. !                          case 'A' : itemno = (int) OPT_ANIM ;
  877. !                                     break ;
  878. !                          case 'b' :
  879. !                          case 'B' : itemno = (int) OPT_BEST ;
  880. !                                     break ;
  881. !                          case 'l' :
  882. !                          case 'L' : itemno = (int) OPT_LAST ;
  883. !                                     break ;
  884. !                          case 'e' :
  885. !                          case 'E' : itemno = (int) OPT_EVAL ;
  886. !                                     break ;
  887. !                          case 'n' :
  888. !                          case 'N' : itemno = (int) OPT_NUM ;
  889. !                                     break ;
  890. !                          case 'f' :
  891. !                          case 'F' : itemno = (int) OPT_FLIP ;
  892. !                                     break ;
  893. !                          default  : return ;
  894. !                        }
  895. !                      val = items[itemno].value ;
  896.           }
  897.         if (val != -1)
  898.           {
  899.             validkey = 0 ;
  900.             message(PANEL_MES, "") ;
  901. !           items[itemno].value = item_value = val ;
  902.             direction = NONE ;
  903. !           (*items[itemno].func)() ;
  904. !           switch (item)
  905. !             {
  906. !               case 'C' : draw_choice(W_PROPS, (enum panel_type) itemno, color) ;
  907. !                          break ;
  908. !               case 'D' : draw_choice(W_PROPS, (enum panel_type) itemno, color) ;
  909. !                          break ;
  910. !               case 'O' : draw_toggle(W_PROPS, (enum panel_type) itemno, color) ;
  911. !             }
  912.           }
  913.       }
  914.   }
  915. ***************
  916. *** 342,352 ****
  917.     process_event() ;
  918.   
  919.          if (nextc == FRAME_REPAINT) init_canvas() ;
  920.     else if (nextc == PROPS_REPAINT) paint_prop_sheet() ;
  921.     else if (nextc == KEYBOARD)      handle_key() ;
  922.     else if (nextc == EXIT_WINDOW && but_inverted != -1)
  923.       {
  924. !       draw_button(W_MAIN, (enum panel_type) but_inverted, C_LGREY, BUT_NORMAL) ;
  925.         but_inverted = -1 ;
  926.         down = 0 ;
  927.       }
  928. --- 367,378 ----
  929.     process_event() ;
  930.   
  931.          if (nextc == FRAME_REPAINT) init_canvas() ;
  932. +   else if (nextc == HELP_REPAINT)  paint_help() ;
  933.     else if (nextc == PROPS_REPAINT) paint_prop_sheet() ;
  934.     else if (nextc == KEYBOARD)      handle_key() ;
  935.     else if (nextc == EXIT_WINDOW && but_inverted != -1)
  936.       {
  937. !       draw_button(W_MAIN, (enum panel_type) but_inverted, C_ITEMS, BUT_NORMAL) ;
  938.         but_inverted = -1 ;
  939.         down = 0 ;
  940.       }
  941. ***************
  942. *** 388,400 ****
  943.       }
  944.     switch (cur_ch)
  945.       {
  946. !       case 'C' : do_cycle_key(COMP_CHOICE, nextc) ;    /* Cycle items. */
  947.                    break ;
  948. -       case 'D' : do_cycle_key(DIFF_CHOICE, nextc) ;
  949. -                  break ;
  950. -       case 'N' : do_cycle_key(OPT_EVAL,    nextc) ;
  951. -                  break ;
  952.   
  953.         case 'M' : show_all_moves() ;                    /* Button items. */
  954.                    break ;
  955.         case 'L' : curx = 0 ;
  956. --- 414,426 ----
  957.       }
  958.     switch (cur_ch)
  959.       {
  960. !       case 'C' :                                       /* Computer choice. */
  961. !       case 'D' :                                       /* Difficulty. */
  962. !       case 'O' : do_key(cur_ch, nextc) ;               /* Options. */
  963.                    break ;
  964.   
  965. +       case 'H' : do_help() ;
  966. +                  break ;
  967.         case 'M' : show_all_moves() ;                    /* Button items. */
  968.                    break ;
  969.         case 'L' : curx = 0 ;
  970. ***************
  971. *** 402,407 ****
  972. --- 428,435 ----
  973.                    break ;
  974.         case 'n' : new_game() ;
  975.                    break ;
  976. +       case 'r' : redo() ;
  977. +                  break ;
  978.         case 'S' : curx = BBORDER + (2*(BWIDTH+BGAP)) ;
  979.                    draw_textfield() ;
  980.                    break ;
  981. ***************
  982. *** 411,416 ****
  983. --- 439,448 ----
  984.                    break ;
  985.         case 'p' : do_props() ;
  986.                    break ;
  987. +       case CTL('l') : init_canvas() ;
  988. +                       paint_prop_sheet() ;
  989. +                       break ;
  990.   
  991.         case 'q' : destroy_frame() ;
  992.                    exit(0) ;
  993.  
  994.