home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume16 / nethck31 / patch1r < prev    next >
Encoding:
Text File  |  1993-03-04  |  55.1 KB  |  2,586 lines

  1. Subject:  v17i059:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch1r/31
  2. Newsgroups: comp.sources.games
  3. Approved: billr@saab.CNA.TEK.COM
  4.  
  5. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  6. Posting-number: Volume 17, Issue 59
  7. Archive-name: nethack31/Patch1r
  8. Patch-To: nethack31: Volume 16, Issue 1-116
  9. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  10.  
  11.  
  12.  
  13. #! /bin/sh
  14. # This is a shell archive.  Remove anything before this line, then unpack
  15. # it by saving it into a file and typing "sh file".  To overwrite existing
  16. # files, type "sh file -c".  You can also feed this as standard input via
  17. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  18. # will see the following message at the end:
  19. #        "End of archive 18 (of 31)."
  20. # Contents:  patches01q
  21. # Wrapped by billr@saab on Fri Mar  5 10:50:46 1993
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. if test -f 'patches01q' -a "${1}" != "-c" ; then 
  24.   echo shar: Renaming existing file \"'patches01q'\" to \"'patches01q.orig'\"
  25.   mv -f 'patches01q' 'patches01q.orig'
  26. fi
  27. echo shar: Extracting \"'patches01q'\" \(52059 characters\)
  28. sed "s/^X//" >'patches01q' <<'END_OF_FILE'
  29. X*** /tmp/da09110    Thu Feb 25 10:27:44 1993
  30. X--- sys/amiga/wbcli.c    Wed Feb 24 18:01:02 1993
  31. X***************
  32. X*** 126,135 ****
  33. X      char *name;
  34. X      char namebuf[50];
  35. X      char **argv=(char **)wbs;
  36. X  
  37. X      ZapOptions( curopts );
  38. X      InitWB( argc, (struct WBStartup *)argv );
  39. X!     errmsg( NO_FLASH, "Welcome to NetHack Version 3.1!\n" );
  40. X      CopyRight( );
  41. X  
  42. X      ReadConfig( );
  43. X--- 126,141 ----
  44. X      char *name;
  45. X      char namebuf[50];
  46. X      char **argv=(char **)wbs;
  47. X+ #undef CMDLINE
  48. X+ #define CMDLINE
  49. X+ #ifdef CMDLINE
  50. X+     char newcmdline[80]="";
  51. X+     char forcenewcmd=0;
  52. X+ #endif
  53. X  
  54. X      ZapOptions( curopts );
  55. X      InitWB( argc, (struct WBStartup *)argv );
  56. X!     errmsg( NO_FLASH, "Welcome to NetHack Version 3.1.1!\n" );
  57. X      CopyRight( );
  58. X  
  59. X      ReadConfig( );
  60. X***************
  61. X*** 136,147 ****
  62. X  
  63. X      /* Wait till user quits */
  64. X  
  65. X      while( !quit )
  66. X      {
  67. X!     char tbuf[8];
  68. X      char *p=tbuf;
  69. X      char *dirname=cnfsavedir;
  70. X  /* play a game */
  71. X      {
  72. X          int c;
  73. X          argline[0]='\0';
  74. X--- 142,187 ----
  75. X  
  76. X      /* Wait till user quits */
  77. X  
  78. X+ #ifdef CMDLINE
  79. X+     {
  80. X+     int c;
  81. X+                 /* slow but easy - not a critical path */
  82. X+     for(c=1;c<argc;c++){
  83. X+     if(strlen(newcmdline)+strlen(argv[c])>=sizeof(newcmdline)){
  84. X+         forcenewcmd=1;
  85. X+         break;
  86. X+     }
  87. X+     strcpy(eos(newcmdline),argv[c]);
  88. X+     if(!strncmp(argv[c],"-u",2)){
  89. X+         if(!strcmp(argv[c],"-u")){
  90. X+         name= argv[c+1];
  91. X+         }else{
  92. X+         name= &argv[c][2];
  93. X+         }
  94. X+     }
  95. X+     if(c<argc)strcpy(eos(newcmdline)," ");
  96. X+     }
  97. X+     eos(newcmdline)[-1]='\0';
  98. X+     strcpy(argline,newcmdline);
  99. X+     if(!name){
  100. X+     errmsg(NO_FLASH, "No name found.\n");
  101. X+     argline[0]=' ';
  102. X+     }
  103. X+     }
  104. X+ #endif
  105. X+ 
  106. X      while( !quit )
  107. X      {
  108. X!     char tbuf[80];
  109. X      char *p=tbuf;
  110. X      char *dirname=cnfsavedir;
  111. X  /* play a game */
  112. X+ 
  113. X+ #ifdef CMDLINE
  114. X+     if(forcenewcmd)goto build_new_argline;    /* allow initial args to be
  115. X+                          * wrong */
  116. X+ #endif
  117. X+ #ifndef CMDLINE
  118. X      {
  119. X          int c;
  120. X          argline[0]='\0';
  121. X***************
  122. X*** 153,159 ****
  123. X              if(!strcmp(argv[c],"-u")){
  124. X              name= argv[c+1];
  125. X              }else{
  126. X!             name= &argv[c][1];
  127. X              }
  128. X          }
  129. X          if(c<argc)strcpy(eos(argline)," ");
  130. X--- 193,199 ----
  131. X              if(!strcmp(argv[c],"-u")){
  132. X              name= argv[c+1];
  133. X              }else{
  134. X!             name= &argv[c][2];
  135. X              }
  136. X          }
  137. X          if(c<argc)strcpy(eos(argline)," ");
  138. X***************
  139. X*** 160,165 ****
  140. X--- 200,214 ----
  141. X          }
  142. X          eos(argline)[-1]='\0';
  143. X      }
  144. X+     if(!name){
  145. X+         errmsg(NO_FLASH,"No name found.\n");
  146. X+         cleanup(1);
  147. X+     }
  148. X+ #endif
  149. X+ #undef TESTCMDLINE
  150. X+ #ifdef TESTCMDLINE
  151. X+ __builtin_printf("sending '%s'\n",argline);
  152. X+ #else
  153. X      strcpy(namebuf,cnfsavedir);
  154. X      condaddslash(namebuf);
  155. X      strcpy(eos(namebuf),name);
  156. X***************
  157. X*** 170,183 ****
  158. X          strcpy(eos(namebuf),"NewGame.info");
  159. X          lc=Lock(namebuf,ACCESS_READ);
  160. X          if(!lc){
  161. X!         errmsg(NO_FLASH,"can't find NewGame.info");
  162. X          cleanup(1);
  163. X          }
  164. X      }
  165. X!     Examine(lc,&finfo);
  166. X      lc2=ParentDir(lc);
  167. X      UnLock(lc);
  168. X      gptr=GetWBIcon(lc2,dirname,&finfo);
  169. X      UnLock(lc2);
  170. X      run_game(gptr);
  171. X  
  172. X--- 219,236 ----
  173. X          strcpy(eos(namebuf),"NewGame.info");
  174. X          lc=Lock(namebuf,ACCESS_READ);
  175. X          if(!lc){
  176. X!         errmsg(NO_FLASH,"Can't find NewGame.info");
  177. X          cleanup(1);
  178. X          }
  179. X      }
  180. X!     if(!Examine(lc,&finfo)){
  181. X!         errmsg(NO_FLASH,"Can't find info file.\n");
  182. X!         cleanup(1);
  183. X!     }
  184. X      lc2=ParentDir(lc);
  185. X      UnLock(lc);
  186. X      gptr=GetWBIcon(lc2,dirname,&finfo);
  187. X+     if(!gptr)cleanup(1);
  188. X      UnLock(lc2);
  189. X      run_game(gptr);
  190. X  
  191. X***************
  192. X*** 184,190 ****
  193. X--- 237,245 ----
  194. X  /* wait for game to end */
  195. X      WaitEOG(gptr);
  196. X      FreeGITEM(gptr);
  197. X+ #endif /* TESTCMDLINE */
  198. X  /* ask about another? */
  199. X+ #ifndef CMDLINE
  200. X      printf("Play again? [yn] ");
  201. X      fgets(tbuf,sizeof(tbuf),stdin);
  202. X      while(*p && isspace(*p))p++;
  203. X***************
  204. X*** 193,198 ****
  205. X--- 248,272 ----
  206. X      case 'N':
  207. X          quit=1;
  208. X      }
  209. X+ #else
  210. X+ build_new_argline:
  211. X+     forcenewcmd=0;
  212. X+     {
  213. X+ #define NBA    *stpblk(argline)    /* non-blank argline */
  214. X+     printf("Enter options for next game %s%s%s(space return to clear) ",
  215. X+         NBA?"(default ":"" ,
  216. X+         NBA?argline:"" ,
  217. X+         NBA?")\n":"");
  218. X+     printf("or Q to quit: ");
  219. X+     fgets(tbuf,sizeof(tbuf),stdin);
  220. X+     tbuf[strlen(tbuf)-1]='\0';        /* kill \n */
  221. X+     if(strlen(tbuf)==1 && (*p=='q' || *p=='Q')){
  222. X+         quit=1;
  223. X+     } else
  224. X+         if(strlen(tbuf))strcpy(argline,tbuf);
  225. X+     }
  226. X+ #undef NBA
  227. X+ #endif
  228. X      }
  229. X      cleanup(0);
  230. X  }
  231. X***************
  232. X*** 408,414 ****
  233. X      }
  234. X  
  235. X      /* Set the game name for the status command */
  236. X!     sprintf( gptr->gname, "NetHack 3.1 %s", gptr->name );
  237. X  
  238. X      /* Create a process for the game to execute in */
  239. X      ctask = FindTask( NULL );
  240. X--- 482,488 ----
  241. X      }
  242. X  
  243. X      /* Set the game name for the status command */
  244. X!     sprintf( gptr->gname, "NetHack 3.1.1 %s", gptr->name );
  245. X  
  246. X      /* Create a process for the game to execute in */
  247. X      ctask = FindTask( NULL );
  248. X***************
  249. X*** 444,450 ****
  250. X      gptr->wbs->sm_Process = proc;
  251. X      gptr->wbs->sm_Segment = gptr->seglist;
  252. X      gptr->wbs->sm_NumArgs = 2;
  253. X!     gptr->wbs->sm_ToolWindow = "con:0/0/100/300/NetHack 3.1";
  254. X      gptr->wbs->sm_ArgList = gptr->wba;
  255. X  
  256. X      /* Fill in the args */
  257. X--- 518,524 ----
  258. X      gptr->wbs->sm_Process = proc;
  259. X      gptr->wbs->sm_Segment = gptr->seglist;
  260. X      gptr->wbs->sm_NumArgs = 2;
  261. X!     gptr->wbs->sm_ToolWindow = "con:0/0/100/300/NetHack 3.1.1";
  262. X      gptr->wbs->sm_ArgList = gptr->wba;
  263. X  
  264. X      /* Fill in the args */
  265. X***************
  266. X*** 1537,1543 ****
  267. X      sidx = -1;
  268. X  
  269. X      /* Start past the 'options=' part */
  270. X!     for( t = str; !done; ++t )
  271. X      {
  272. X      if( state == 0 && isspace( *t ) )
  273. X          continue;
  274. X--- 1611,1617 ----
  275. X      sidx = -1;
  276. X  
  277. X      /* Start past the 'options=' part */
  278. X!     for( t = str; *str && !done; ++t )
  279. X      {
  280. X      if( state == 0 && isspace( *t ) )
  281. X          continue;
  282. X***************
  283. X*** 1629,1635 ****
  284. X          }
  285. X          else
  286. X          {
  287. X!             errmsg( FLASH, "Unrecognized option %s", buf );
  288. X              return;
  289. X          }
  290. X          }
  291. X--- 1703,1709 ----
  292. X          }
  293. X          else
  294. X          {
  295. X!             errmsg( FLASH, "Unrecognized option `%s'", buf );
  296. X              return;
  297. X          }
  298. X          }
  299. X*** /tmp/da09126    Thu Feb 25 10:27:49 1993
  300. X--- sys/amiga/wbdefs.h    Mon Feb  1 11:38:01 1993
  301. X***************
  302. X*** 159,165 ****
  303. X  #define StrPens        (Sbuff(&Conf_StrPens))
  304. X  #define StrLevels    (Sbuff(&Conf_StrLevels))
  305. X  #define StrSave        (Sbuff(&Conf_StrSave))
  306. X! #define NetHackCnf    (Sbuff(&Conf_ConfigName))
  307. X  
  308. X  #define RstDir        (Sbuff(&Rst_RestDir))
  309. X  #define RstOld        (Sbuff(&Rst_RestOld))
  310. X--- 159,165 ----
  311. X  #define StrPens        (Sbuff(&Conf_StrPens))
  312. X  #define StrLevels    (Sbuff(&Conf_StrLevels))
  313. X  #define StrSave        (Sbuff(&Conf_StrSave))
  314. X! #define StrConf        (Sbuff(&Conf_ConfigName))
  315. X  
  316. X  #define RstDir        (Sbuff(&Rst_RestDir))
  317. X  #define RstOld        (Sbuff(&Rst_RestOld))
  318. X*** /tmp/da09134    Thu Feb 25 10:27:51 1993
  319. X--- sys/amiga/wbprotos.h    Wed Feb 24 09:38:35 1993
  320. X***************
  321. X*** 62,68 ****
  322. X  void setoneopt P(( int idx , char *str ));
  323. X  char *dirname P(( char *str ));
  324. X  int StrRequest P(( char *prompt , char *buff , char *val ));
  325. X! void LoadDefaults P(( char *player ));
  326. X  void SaveDefaults P(( char *player ));
  327. X  void CopyDefs2Gad P(( void ));
  328. X  void CopyGad2Defs P(( void ));
  329. X--- 62,68 ----
  330. X  void setoneopt P(( int idx , char *str ));
  331. X  char *dirname P(( char *str ));
  332. X  int StrRequest P(( char *prompt , char *buff , char *val ));
  333. X! int LoadDefaults P(( char *player ));
  334. X  void SaveDefaults P(( char *player ));
  335. X  void CopyDefs2Gad P(( void ));
  336. X  void CopyGad2Defs P(( void ));
  337. X***************
  338. X*** 101,105 ****
  339. X--- 101,108 ----
  340. X  struct Window *MyOpenWindow P(( struct NewWindow *nw ));
  341. X  #endif
  342. X  void SetUpMenus( register struct Menu *mp, register struct Screen *scrn );
  343. X+ void UpdateCnfFile( void );
  344. X+ char *basename( char * );
  345. X+ void flushIDCMP( struct MsgPort *);
  346. X  
  347. X  #undef P
  348. X*** /tmp/da09150    Thu Feb 25 10:27:55 1993
  349. X--- sys/amiga/wbwin.c    Wed Feb 24 20:25:28 1993
  350. X***************
  351. X*** 1,4 ****
  352. X- /* This file is generated by PowerWindows do not edit */
  353. X  
  354. X  static struct NewScreen NewScreenStructure = {
  355. X      0,0,
  356. X--- 1,3 ----
  357. X***************
  358. X*** 390,396 ****
  359. X  #define MenuList1 Menu1
  360. X  
  361. X  static struct NewWindow NewWindowStructure1 = {
  362. X!     34,34,
  363. X      565,148,
  364. X      0,2,
  365. X      NEWSIZE+MOUSEBUTTONS+MOUSEMOVE+GADGETDOWN+GADGETUP+MENUPICK+CLOSEWINDOW+RAWKEY+DISKINSERTED,
  366. X--- 389,395 ----
  367. X  #define MenuList1 Menu1
  368. X  
  369. X  static struct NewWindow NewWindowStructure1 = {
  370. X!     34,23,
  371. X      565,148,
  372. X      0,2,
  373. X      NEWSIZE+MOUSEBUTTONS+MOUSEMOVE+GADGETDOWN+GADGETUP+MENUPICK+CLOSEWINDOW+RAWKEY+DISKINSERTED,
  374. X***************
  375. X*** 2019,2025 ****
  376. X      NULL,
  377. X      73,85,
  378. X      51,10,
  379. X!     GADGDISABLED,
  380. X      RELVERIFY,
  381. X      BOOLGADGET,
  382. X      (APTR)&Conf_Border40,
  383. X--- 2018,2024 ----
  384. X      NULL,
  385. X      73,85,
  386. X      51,10,
  387. X!     NULL,
  388. X      RELVERIFY,
  389. X      BOOLGADGET,
  390. X      (APTR)&Conf_Border40,
  391. X***************
  392. X*** 2347,2353 ****
  393. X  
  394. X  static struct IntuiText Conf_IText59 = {
  395. X      3,0,JAM2,
  396. X!     9,72,
  397. X      NULL,
  398. X      "Save Dir:",
  399. X      &Conf_IText60
  400. X--- 2346,2352 ----
  401. X  
  402. X  static struct IntuiText Conf_IText59 = {
  403. X      3,0,JAM2,
  404. X!     7,72,
  405. X      NULL,
  406. X      "Save Dir:",
  407. X      &Conf_IText60
  408. X***************
  409. X*** 2363,2369 ****
  410. X  
  411. X  static struct IntuiText Conf_IText57 = {
  412. X      3,0,JAM2,
  413. X!     37,44,
  414. X      NULL,
  415. X      "Pens:",
  416. X      &Conf_IText58
  417. X--- 2362,2368 ----
  418. X  
  419. X  static struct IntuiText Conf_IText57 = {
  420. X      3,0,JAM2,
  421. X!     39,44,
  422. X      NULL,
  423. X      "Pens:",
  424. X      &Conf_IText58
  425. X***************
  426. X*** 2371,2377 ****
  427. X  
  428. X  static struct IntuiText Conf_IText56 = {
  429. X      3,0,JAM2,
  430. X!     16,30,
  431. X      NULL,
  432. X      "Hackdir:",
  433. X      &Conf_IText57
  434. X--- 2370,2376 ----
  435. X  
  436. X  static struct IntuiText Conf_IText56 = {
  437. X      3,0,JAM2,
  438. X!     15,30,
  439. X      NULL,
  440. X      "Hackdir:",
  441. X      &Conf_IText57
  442. X***************
  443. X*** 2379,2385 ****
  444. X  
  445. X  static struct IntuiText Conf_IText55 = {
  446. X      3,0,JAM2,
  447. X!     37,16,
  448. X      NULL,
  449. X      "Path:",
  450. X      &Conf_IText56
  451. X--- 2378,2384 ----
  452. X  
  453. X  static struct IntuiText Conf_IText55 = {
  454. X      3,0,JAM2,
  455. X!     39,16,
  456. X      NULL,
  457. X      "Path:",
  458. X      &Conf_IText56
  459. X***************
  460. X*** 2927,2933 ****
  461. X  
  462. X  static struct Gadget Help2_Gadget61 = {
  463. X      NULL,
  464. X!     17,42,
  465. X      47,10,
  466. X      NULL,
  467. X      RELVERIFY,
  468. X--- 2926,2932 ----
  469. X  
  470. X  static struct Gadget Help2_Gadget61 = {
  471. X      NULL,
  472. X!     172,63,
  473. X      47,10,
  474. X      NULL,
  475. X      RELVERIFY,
  476. X***************
  477. X*** 2943,2954 ****
  478. X  
  479. X  #define Help2_GadgetList8 Help2_Gadget61
  480. X  
  481. X  static struct IntuiText Help2_IText75 = {
  482. X      3,0,JAM2,
  483. X      15,31,
  484. X      NULL,
  485. X      "resume the saved game.",
  486. X!     NULL
  487. X  };
  488. X  
  489. X  static struct IntuiText Help2_IText74 = {
  490. X--- 2942,2961 ----
  491. X  
  492. X  #define Help2_GadgetList8 Help2_Gadget61
  493. X  
  494. X+ static struct IntuiText Help2_IText76 = {
  495. X+     3,0,JAM2,
  496. X+     14,46,
  497. X+     NULL,
  498. X+     "Use the Help menu item to view the help file",
  499. X+     NULL
  500. X+ };
  501. X+ 
  502. X  static struct IntuiText Help2_IText75 = {
  503. X      3,0,JAM2,
  504. X      15,31,
  505. X      NULL,
  506. X      "resume the saved game.",
  507. X!     &Help2_IText76
  508. X  };
  509. X  
  510. X  static struct IntuiText Help2_IText74 = {
  511. X***************
  512. X*** 2971,2977 ****
  513. X  
  514. X  static struct NewWindow Help2_NewWindowStructure8 = {
  515. X      136,60,
  516. X!     372,58,
  517. X      0,1,
  518. X      GADGETUP+CLOSEWINDOW+VANILLAKEY,
  519. X      WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH,
  520. X--- 2978,2984 ----
  521. X  
  522. X  static struct NewWindow Help2_NewWindowStructure8 = {
  523. X      136,60,
  524. X!     380,82,
  525. X      0,1,
  526. X      GADGETUP+CLOSEWINDOW+VANILLAKEY,
  527. X      WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH,
  528. X***************
  529. X*** 2985,2991 ****
  530. X      CUSTOMSCREEN
  531. X  };
  532. X  
  533. X! static struct IntuiText About_IText76 = {
  534. X      1,0,JAM2,
  535. X      40,2,
  536. X      NULL,
  537. X--- 2992,2998 ----
  538. X      CUSTOMSCREEN
  539. X  };
  540. X  
  541. X! static struct IntuiText About_IText77 = {
  542. X      1,0,JAM2,
  543. X      40,2,
  544. X      NULL,
  545. X***************
  546. X*** 3002,3008 ****
  547. X      BOOLGADGET,
  548. X      NULL,
  549. X      NULL,
  550. X!     &About_IText76,
  551. X      NULL,
  552. X      NULL,
  553. X      GADHELPOKAY,
  554. X--- 3009,3015 ----
  555. X      BOOLGADGET,
  556. X      NULL,
  557. X      NULL,
  558. X!     &About_IText77,
  559. X      NULL,
  560. X      NULL,
  561. X      GADHELPOKAY,
  562. X***************
  563. X*** 3011,3017 ****
  564. X  
  565. X  #define About_GadgetList9 About_Gadget62
  566. X  
  567. X! static struct IntuiText About_IText85 = {
  568. X      2,0,JAM2,
  569. X      10,56,
  570. X      NULL,
  571. X--- 3018,3024 ----
  572. X  
  573. X  #define About_GadgetList9 About_Gadget62
  574. X  
  575. X! static struct IntuiText About_IText86 = {
  576. X      2,0,JAM2,
  577. X      10,56,
  578. X      NULL,
  579. X***************
  580. X*** 3019,3089 ****
  581. X      NULL
  582. X  };
  583. X  
  584. X! static struct IntuiText About_IText84 = {
  585. X      2,0,JAM2,
  586. X      20,47,
  587. X      NULL,
  588. X      "HackWB is copyright Gregg Wonderly and Ken Lorber,",
  589. X!     &About_IText85
  590. X  };
  591. X  
  592. X! static struct IntuiText About_IText83 = {
  593. X      3,0,JAM2,
  594. X      8,31,
  595. X      NULL,
  596. X      "finished by Gregg...",
  597. X!     &About_IText84
  598. X  };
  599. X  
  600. X! static struct IntuiText About_IText82 = {
  601. X      3,0,JAM2,
  602. X      135,22,
  603. X      NULL,
  604. X      "The programming was started by Ken and",
  605. X!     &About_IText83
  606. X  };
  607. X  
  608. X! static struct IntuiText About_IText81 = {
  609. X      3,0,JAM2,
  610. X      120,22,
  611. X      NULL,
  612. X      ".",
  613. X!     &About_IText82
  614. X  };
  615. X  
  616. X! static struct IntuiText About_IText80 = {
  617. X      2,0,JAM2,
  618. X      8,22,
  619. X      NULL,
  620. X      "Gregg Wonderly",
  621. X!     &About_IText81
  622. X  };
  623. X  
  624. X! static struct IntuiText About_IText79 = {
  625. X      3,0,JAM2,
  626. X      396,13,
  627. X      NULL,
  628. X      "and",
  629. X!     &About_IText80
  630. X  };
  631. X  
  632. X! static struct IntuiText About_IText78 = {
  633. X      2,0,JAM2,
  634. X      310,13,
  635. X      NULL,
  636. X      "Ken Lorber",
  637. X!     &About_IText79
  638. X  };
  639. X  
  640. X! static struct IntuiText About_IText77 = {
  641. X      3,0,JAM2,
  642. X      8,13,
  643. X      NULL,
  644. X      "The NetHack WorkBench was designed by",
  645. X!     &About_IText78
  646. X  };
  647. X  
  648. X! #define About_IntuiTextList9 About_IText77
  649. X  
  650. X  static struct NewWindow About_NewWindowStructure9 = {
  651. X      89,60,
  652. X--- 3026,3096 ----
  653. X      NULL
  654. X  };
  655. X  
  656. X! static struct IntuiText About_IText85 = {
  657. X      2,0,JAM2,
  658. X      20,47,
  659. X      NULL,
  660. X      "HackWB is copyright Gregg Wonderly and Ken Lorber,",
  661. X!     &About_IText86
  662. X  };
  663. X  
  664. X! static struct IntuiText About_IText84 = {
  665. X      3,0,JAM2,
  666. X      8,31,
  667. X      NULL,
  668. X      "finished by Gregg...",
  669. X!     &About_IText85
  670. X  };
  671. X  
  672. X! static struct IntuiText About_IText83 = {
  673. X      3,0,JAM2,
  674. X      135,22,
  675. X      NULL,
  676. X      "The programming was started by Ken and",
  677. X!     &About_IText84
  678. X  };
  679. X  
  680. X! static struct IntuiText About_IText82 = {
  681. X      3,0,JAM2,
  682. X      120,22,
  683. X      NULL,
  684. X      ".",
  685. X!     &About_IText83
  686. X  };
  687. X  
  688. X! static struct IntuiText About_IText81 = {
  689. X      2,0,JAM2,
  690. X      8,22,
  691. X      NULL,
  692. X      "Gregg Wonderly",
  693. X!     &About_IText82
  694. X  };
  695. X  
  696. X! static struct IntuiText About_IText80 = {
  697. X      3,0,JAM2,
  698. X      396,13,
  699. X      NULL,
  700. X      "and",
  701. X!     &About_IText81
  702. X  };
  703. X  
  704. X! static struct IntuiText About_IText79 = {
  705. X      2,0,JAM2,
  706. X      310,13,
  707. X      NULL,
  708. X      "Ken Lorber",
  709. X!     &About_IText80
  710. X  };
  711. X  
  712. X! static struct IntuiText About_IText78 = {
  713. X      3,0,JAM2,
  714. X      8,13,
  715. X      NULL,
  716. X      "The NetHack WorkBench was designed by",
  717. X!     &About_IText79
  718. X  };
  719. X  
  720. X! #define About_IntuiTextList9 About_IText78
  721. X  
  722. X  static struct NewWindow About_NewWindowStructure9 = {
  723. X      89,60,
  724. X***************
  725. X*** 3129,3135 ****
  726. X      NULL
  727. X  };
  728. X  
  729. X! static struct IntuiText Help3_IText86 = {
  730. X      1,0,JAM2,
  731. X      8,2,
  732. X      NULL,
  733. X--- 3136,3142 ----
  734. X      NULL
  735. X  };
  736. X  
  737. X! static struct IntuiText Help3_IText87 = {
  738. X      1,0,JAM2,
  739. X      8,2,
  740. X      NULL,
  741. X***************
  742. X*** 3146,3152 ****
  743. X      BOOLGADGET,
  744. X      NULL,
  745. X      NULL,
  746. X!     &Help3_IText86,
  747. X      NULL,
  748. X      NULL,
  749. X      GADHELPBKWD,
  750. X--- 3153,3159 ----
  751. X      BOOLGADGET,
  752. X      NULL,
  753. X      NULL,
  754. X!     &Help3_IText87,
  755. X      NULL,
  756. X      NULL,
  757. X      GADHELPBKWD,
  758. X***************
  759. X*** 3153,3159 ****
  760. X      NULL
  761. X  };
  762. X  
  763. X! static struct IntuiText Help3_IText87 = {
  764. X      1,0,JAM2,
  765. X      8,2,
  766. X      NULL,
  767. X--- 3160,3166 ----
  768. X      NULL
  769. X  };
  770. X  
  771. X! static struct IntuiText Help3_IText88 = {
  772. X      1,0,JAM2,
  773. X      8,2,
  774. X      NULL,
  775. X***************
  776. X*** 3170,3176 ****
  777. X      BOOLGADGET,
  778. X      NULL,
  779. X      NULL,
  780. X!     &Help3_IText87,
  781. X      NULL,
  782. X      NULL,
  783. X      GADHELPFRWD,
  784. X--- 3177,3183 ----
  785. X      BOOLGADGET,
  786. X      NULL,
  787. X      NULL,
  788. X!     &Help3_IText88,
  789. X      NULL,
  790. X      NULL,
  791. X      GADHELPFRWD,
  792. X***************
  793. X*** 3183,3189 ****
  794. X      76,11,
  795. X      494,189,
  796. X      0,1,
  797. X!     GADGETDOWN+GADGETUP+CLOSEWINDOW+VANILLAKEY+INTUITICKS,
  798. X      WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH,
  799. X      &Help3_Gadget63,
  800. X      NULL,
  801. X--- 3190,3196 ----
  802. X      76,11,
  803. X      494,189,
  804. X      0,1,
  805. X!     MOUSEBUTTONS+GADGETDOWN+GADGETUP+CLOSEWINDOW+ACTIVEWINDOW+INACTIVEWINDOW+VANILLAKEY+INTUITICKS,
  806. X      WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH,
  807. X      &Help3_Gadget63,
  808. X      NULL,
  809. X***************
  810. X*** 3240,3246 ****
  811. X      NULL
  812. X  };
  813. X  
  814. X! static struct IntuiText Defs_IText88 = {
  815. X      1,0,JAM2,
  816. X      6,2,
  817. X      NULL,
  818. X--- 3247,3253 ----
  819. X      NULL
  820. X  };
  821. X  
  822. X! static struct IntuiText Defs_IText89 = {
  823. X      1,0,JAM2,
  824. X      6,2,
  825. X      NULL,
  826. X***************
  827. X*** 3257,3263 ****
  828. X      BOOLGADGET,
  829. X      (APTR)&Defs_Border59,
  830. X      NULL,
  831. X!     &Defs_IText88,
  832. X      NULL,
  833. X      NULL,
  834. X      GADEDOPTIONS,
  835. X--- 3264,3270 ----
  836. X      BOOLGADGET,
  837. X      (APTR)&Defs_Border59,
  838. X      NULL,
  839. X!     &Defs_IText89,
  840. X      NULL,
  841. X      NULL,
  842. X      GADEDOPTIONS,
  843. X***************
  844. X*** 3279,3285 ****
  845. X      NULL
  846. X  };
  847. X  
  848. X! static struct IntuiText Defs_IText89 = {
  849. X      1,0,JAM2,
  850. X      5,2,
  851. X      NULL,
  852. X--- 3286,3292 ----
  853. X      NULL
  854. X  };
  855. X  
  856. X! static struct IntuiText Defs_IText90 = {
  857. X      1,0,JAM2,
  858. X      5,2,
  859. X      NULL,
  860. X***************
  861. X*** 3296,3302 ****
  862. X      BOOLGADGET,
  863. X      (APTR)&Defs_Border60,
  864. X      NULL,
  865. X!     &Defs_IText89,
  866. X      NULL,
  867. X      NULL,
  868. X      GADDEFSAVE,
  869. X--- 3303,3309 ----
  870. X      BOOLGADGET,
  871. X      (APTR)&Defs_Border60,
  872. X      NULL,
  873. X!     &Defs_IText90,
  874. X      NULL,
  875. X      NULL,
  876. X      GADDEFSAVE,
  877. X***************
  878. X*** 3318,3324 ****
  879. X      NULL
  880. X  };
  881. X  
  882. X! static struct IntuiText Defs_IText90 = {
  883. X      1,0,JAM2,
  884. X      8,2,
  885. X      NULL,
  886. X--- 3325,3331 ----
  887. X      NULL
  888. X  };
  889. X  
  890. X! static struct IntuiText Defs_IText91 = {
  891. X      1,0,JAM2,
  892. X      8,2,
  893. X      NULL,
  894. X***************
  895. X*** 3335,3341 ****
  896. X      BOOLGADGET,
  897. X      (APTR)&Defs_Border61,
  898. X      NULL,
  899. X!     &Defs_IText90,
  900. X      NULL,
  901. X      NULL,
  902. X      GADDEFLOAD,
  903. X--- 3342,3348 ----
  904. X      BOOLGADGET,
  905. X      (APTR)&Defs_Border61,
  906. X      NULL,
  907. X!     &Defs_IText91,
  908. X      NULL,
  909. X      NULL,
  910. X      GADDEFLOAD,
  911. X***************
  912. X*** 3357,3363 ****
  913. X      NULL
  914. X  };
  915. X  
  916. X! static struct IntuiText Defs_IText91 = {
  917. X      1,0,JAM2,
  918. X      1,2,
  919. X      NULL,
  920. X--- 3364,3370 ----
  921. X      NULL
  922. X  };
  923. X  
  924. X! static struct IntuiText Defs_IText92 = {
  925. X      1,0,JAM2,
  926. X      1,2,
  927. X      NULL,
  928. X***************
  929. X*** 3374,3380 ****
  930. X      BOOLGADGET,
  931. X      (APTR)&Defs_Border62,
  932. X      NULL,
  933. X!     &Defs_IText91,
  934. X      NULL,
  935. X      NULL,
  936. X      -1,
  937. X--- 3381,3387 ----
  938. X      BOOLGADGET,
  939. X      (APTR)&Defs_Border62,
  940. X      NULL,
  941. X!     &Defs_IText92,
  942. X      NULL,
  943. X      NULL,
  944. X      -1,
  945. X***************
  946. X*** 3413,3419 ****
  947. X  
  948. X  #define Defs_GadgetList11 Defs_PlayerName
  949. X  
  950. X! static struct IntuiText Defs_IText92 = {
  951. X      3,1,COMPLEMENT,
  952. X      19,0,
  953. X      NULL,
  954. X--- 3420,3426 ----
  955. X  
  956. X  #define Defs_GadgetList11 Defs_PlayerName
  957. X  
  958. X! static struct IntuiText Defs_IText93 = {
  959. X      3,1,COMPLEMENT,
  960. X      19,0,
  961. X      NULL,
  962. X***************
  963. X*** 3427,3433 ****
  964. X      155,8,
  965. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  966. X      4095,
  967. X!     (APTR)&Defs_IText92,
  968. X      NULL,
  969. X      'W',
  970. X      NULL,
  971. X--- 3434,3440 ----
  972. X      155,8,
  973. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  974. X      4095,
  975. X!     (APTR)&Defs_IText93,
  976. X      NULL,
  977. X      'W',
  978. X      NULL,
  979. X***************
  980. X*** 3434,3440 ****
  981. X      MENUNULL
  982. X  };
  983. X  
  984. X! static struct IntuiText Defs_IText93 = {
  985. X      3,1,COMPLEMENT,
  986. X      19,0,
  987. X      NULL,
  988. X--- 3441,3447 ----
  989. X      MENUNULL
  990. X  };
  991. X  
  992. X! static struct IntuiText Defs_IText94 = {
  993. X      3,1,COMPLEMENT,
  994. X      19,0,
  995. X      NULL,
  996. X***************
  997. X*** 3448,3454 ****
  998. X      155,8,
  999. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1000. X      6143,
  1001. X!     (APTR)&Defs_IText93,
  1002. X      NULL,
  1003. X      'V',
  1004. X      NULL,
  1005. X--- 3455,3461 ----
  1006. X      155,8,
  1007. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1008. X      6143,
  1009. X!     (APTR)&Defs_IText94,
  1010. X      NULL,
  1011. X      'V',
  1012. X      NULL,
  1013. X***************
  1014. X*** 3455,3461 ****
  1015. X      MENUNULL
  1016. X  };
  1017. X  
  1018. X! static struct IntuiText Defs_IText94 = {
  1019. X      3,1,COMPLEMENT,
  1020. X      19,0,
  1021. X      NULL,
  1022. X--- 3462,3468 ----
  1023. X      MENUNULL
  1024. X  };
  1025. X  
  1026. X! static struct IntuiText Defs_IText95 = {
  1027. X      3,1,COMPLEMENT,
  1028. X      19,0,
  1029. X      NULL,
  1030. X***************
  1031. X*** 3469,3475 ****
  1032. X      155,8,
  1033. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1034. X      7167,
  1035. X!     (APTR)&Defs_IText94,
  1036. X      NULL,
  1037. X      'T',
  1038. X      NULL,
  1039. X--- 3476,3482 ----
  1040. X      155,8,
  1041. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1042. X      7167,
  1043. X!     (APTR)&Defs_IText95,
  1044. X      NULL,
  1045. X      'T',
  1046. X      NULL,
  1047. X***************
  1048. X*** 3476,3482 ****
  1049. X      MENUNULL
  1050. X  };
  1051. X  
  1052. X! static struct IntuiText Defs_IText95 = {
  1053. X      3,1,COMPLEMENT,
  1054. X      19,0,
  1055. X      NULL,
  1056. X--- 3483,3489 ----
  1057. X      MENUNULL
  1058. X  };
  1059. X  
  1060. X! static struct IntuiText Defs_IText96 = {
  1061. X      3,1,COMPLEMENT,
  1062. X      19,0,
  1063. X      NULL,
  1064. X***************
  1065. X*** 3490,3496 ****
  1066. X      155,8,
  1067. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1068. X      7679,
  1069. X!     (APTR)&Defs_IText95,
  1070. X      NULL,
  1071. X      'S',
  1072. X      NULL,
  1073. X--- 3497,3503 ----
  1074. X      155,8,
  1075. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1076. X      7679,
  1077. X!     (APTR)&Defs_IText96,
  1078. X      NULL,
  1079. X      'S',
  1080. X      NULL,
  1081. X***************
  1082. X*** 3497,3503 ****
  1083. X      MENUNULL
  1084. X  };
  1085. X  
  1086. X! static struct IntuiText Defs_IText96 = {
  1087. X      3,1,COMPLEMENT,
  1088. X      19,0,
  1089. X      NULL,
  1090. X--- 3504,3510 ----
  1091. X      MENUNULL
  1092. X  };
  1093. X  
  1094. X! static struct IntuiText Defs_IText97 = {
  1095. X      3,1,COMPLEMENT,
  1096. X      19,0,
  1097. X      NULL,
  1098. X***************
  1099. X*** 3511,3517 ****
  1100. X      155,8,
  1101. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1102. X      7935,
  1103. X!     (APTR)&Defs_IText96,
  1104. X      NULL,
  1105. X      'R',
  1106. X      NULL,
  1107. X--- 3518,3524 ----
  1108. X      155,8,
  1109. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1110. X      7935,
  1111. X!     (APTR)&Defs_IText97,
  1112. X      NULL,
  1113. X      'R',
  1114. X      NULL,
  1115. X***************
  1116. X*** 3518,3524 ****
  1117. X      MENUNULL
  1118. X  };
  1119. X  
  1120. X! static struct IntuiText Defs_IText97 = {
  1121. X      3,1,COMPLEMENT,
  1122. X      19,0,
  1123. X      NULL,
  1124. X--- 3525,3531 ----
  1125. X      MENUNULL
  1126. X  };
  1127. X  
  1128. X! static struct IntuiText Defs_IText98 = {
  1129. X      3,1,COMPLEMENT,
  1130. X      19,0,
  1131. X      NULL,
  1132. X***************
  1133. X*** 3532,3538 ****
  1134. X      155,8,
  1135. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1136. X      8063,
  1137. X!     (APTR)&Defs_IText97,
  1138. X      NULL,
  1139. X      'P',
  1140. X      NULL,
  1141. X--- 3539,3545 ----
  1142. X      155,8,
  1143. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1144. X      8063,
  1145. X!     (APTR)&Defs_IText98,
  1146. X      NULL,
  1147. X      'P',
  1148. X      NULL,
  1149. X***************
  1150. X*** 3539,3545 ****
  1151. X      MENUNULL
  1152. X  };
  1153. X  
  1154. X! static struct IntuiText Defs_IText98 = {
  1155. X      3,1,COMPLEMENT,
  1156. X      19,0,
  1157. X      NULL,
  1158. X--- 3546,3552 ----
  1159. X      MENUNULL
  1160. X  };
  1161. X  
  1162. X! static struct IntuiText Defs_IText99 = {
  1163. X      3,1,COMPLEMENT,
  1164. X      19,0,
  1165. X      NULL,
  1166. X***************
  1167. X*** 3553,3559 ****
  1168. X      155,8,
  1169. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1170. X      8127,
  1171. X!     (APTR)&Defs_IText98,
  1172. X      NULL,
  1173. X      'K',
  1174. X      NULL,
  1175. X--- 3560,3566 ----
  1176. X      155,8,
  1177. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1178. X      8127,
  1179. X!     (APTR)&Defs_IText99,
  1180. X      NULL,
  1181. X      'K',
  1182. X      NULL,
  1183. X***************
  1184. X*** 3560,3566 ****
  1185. X      MENUNULL
  1186. X  };
  1187. X  
  1188. X! static struct IntuiText Defs_IText99 = {
  1189. X      3,1,COMPLEMENT,
  1190. X      19,0,
  1191. X      NULL,
  1192. X--- 3567,3573 ----
  1193. X      MENUNULL
  1194. X  };
  1195. X  
  1196. X! static struct IntuiText Defs_IText100 = {
  1197. X      3,1,COMPLEMENT,
  1198. X      19,0,
  1199. X      NULL,
  1200. X***************
  1201. X*** 3574,3580 ****
  1202. X      155,8,
  1203. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1204. X      8159,
  1205. X!     (APTR)&Defs_IText99,
  1206. X      NULL,
  1207. X      'H',
  1208. X      NULL,
  1209. X--- 3581,3587 ----
  1210. X      155,8,
  1211. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1212. X      8159,
  1213. X!     (APTR)&Defs_IText100,
  1214. X      NULL,
  1215. X      'H',
  1216. X      NULL,
  1217. X***************
  1218. X*** 3581,3587 ****
  1219. X      MENUNULL
  1220. X  };
  1221. X  
  1222. X! static struct IntuiText Defs_IText100 = {
  1223. X      3,1,COMPLEMENT,
  1224. X      19,0,
  1225. X      NULL,
  1226. X--- 3588,3594 ----
  1227. X      MENUNULL
  1228. X  };
  1229. X  
  1230. X! static struct IntuiText Defs_IText101 = {
  1231. X      3,1,COMPLEMENT,
  1232. X      19,0,
  1233. X      NULL,
  1234. X***************
  1235. X*** 3595,3601 ****
  1236. X      155,8,
  1237. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1238. X      8175,
  1239. X!     (APTR)&Defs_IText100,
  1240. X      NULL,
  1241. X      'E',
  1242. X      NULL,
  1243. X--- 3602,3608 ----
  1244. X      155,8,
  1245. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1246. X      8175,
  1247. X!     (APTR)&Defs_IText101,
  1248. X      NULL,
  1249. X      'E',
  1250. X      NULL,
  1251. X***************
  1252. X*** 3602,3608 ****
  1253. X      MENUNULL
  1254. X  };
  1255. X  
  1256. X! static struct IntuiText Defs_IText101 = {
  1257. X      3,1,COMPLEMENT,
  1258. X      19,0,
  1259. X      NULL,
  1260. X--- 3609,3615 ----
  1261. X      MENUNULL
  1262. X  };
  1263. X  
  1264. X! static struct IntuiText Defs_IText102 = {
  1265. X      3,1,COMPLEMENT,
  1266. X      19,0,
  1267. X      NULL,
  1268. X***************
  1269. X*** 3616,3622 ****
  1270. X      155,8,
  1271. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1272. X      8183,
  1273. X!     (APTR)&Defs_IText101,
  1274. X      NULL,
  1275. X      'C',
  1276. X      NULL,
  1277. X--- 3623,3629 ----
  1278. X      155,8,
  1279. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1280. X      8183,
  1281. X!     (APTR)&Defs_IText102,
  1282. X      NULL,
  1283. X      'C',
  1284. X      NULL,
  1285. X***************
  1286. X*** 3623,3629 ****
  1287. X      MENUNULL
  1288. X  };
  1289. X  
  1290. X! static struct IntuiText Defs_IText102 = {
  1291. X      3,1,COMPLEMENT,
  1292. X      19,0,
  1293. X      NULL,
  1294. X--- 3630,3636 ----
  1295. X      MENUNULL
  1296. X  };
  1297. X  
  1298. X! static struct IntuiText Defs_IText103 = {
  1299. X      3,1,COMPLEMENT,
  1300. X      19,0,
  1301. X      NULL,
  1302. X***************
  1303. X*** 3637,3643 ****
  1304. X      155,8,
  1305. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1306. X      8187,
  1307. X!     (APTR)&Defs_IText102,
  1308. X      NULL,
  1309. X      'B',
  1310. X      NULL,
  1311. X--- 3644,3650 ----
  1312. X      155,8,
  1313. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1314. X      8187,
  1315. X!     (APTR)&Defs_IText103,
  1316. X      NULL,
  1317. X      'B',
  1318. X      NULL,
  1319. X***************
  1320. X*** 3644,3650 ****
  1321. X      MENUNULL
  1322. X  };
  1323. X  
  1324. X! static struct IntuiText Defs_IText103 = {
  1325. X      3,1,COMPLEMENT,
  1326. X      19,0,
  1327. X      NULL,
  1328. X--- 3651,3657 ----
  1329. X      MENUNULL
  1330. X  };
  1331. X  
  1332. X! static struct IntuiText Defs_IText104 = {
  1333. X      3,1,COMPLEMENT,
  1334. X      19,0,
  1335. X      NULL,
  1336. X***************
  1337. X*** 3658,3664 ****
  1338. X      155,8,
  1339. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1340. X      8189,
  1341. X!     (APTR)&Defs_IText103,
  1342. X      NULL,
  1343. X      'A',
  1344. X      NULL,
  1345. X--- 3665,3671 ----
  1346. X      155,8,
  1347. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP,
  1348. X      8189,
  1349. X!     (APTR)&Defs_IText104,
  1350. X      NULL,
  1351. X      'A',
  1352. X      NULL,
  1353. X***************
  1354. X*** 3665,3671 ****
  1355. X      MENUNULL
  1356. X  };
  1357. X  
  1358. X! static struct IntuiText Defs_IText104 = {
  1359. X      3,1,COMPLEMENT,
  1360. X      19,0,
  1361. X      NULL,
  1362. X--- 3672,3678 ----
  1363. X      MENUNULL
  1364. X  };
  1365. X  
  1366. X! static struct IntuiText Defs_IText105 = {
  1367. X      3,1,COMPLEMENT,
  1368. X      19,0,
  1369. X      NULL,
  1370. X***************
  1371. X*** 3679,3685 ****
  1372. X      155,8,
  1373. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP+CHECKED,
  1374. X      8190,
  1375. X!     (APTR)&Defs_IText104,
  1376. X      NULL,
  1377. X      '?',
  1378. X      NULL,
  1379. X--- 3686,3692 ----
  1380. X      155,8,
  1381. X      CHECKIT+ITEMTEXT+COMMSEQ+ITEMENABLED+HIGHCOMP+CHECKED,
  1382. X      8190,
  1383. X!     (APTR)&Defs_IText105,
  1384. X      NULL,
  1385. X      '?',
  1386. X      NULL,
  1387. X***************
  1388. X*** 3697,3703 ****
  1389. X  
  1390. X  #define Defs_MenuList11 Defs_Menu2
  1391. X  
  1392. X! static struct IntuiText Defs_IText107 = {
  1393. X      1,0,JAM2,
  1394. X      31,28,
  1395. X      NULL,
  1396. X--- 3704,3710 ----
  1397. X  
  1398. X  #define Defs_MenuList11 Defs_Menu2
  1399. X  
  1400. X! static struct IntuiText Defs_IText108 = {
  1401. X      1,0,JAM2,
  1402. X      31,28,
  1403. X      NULL,
  1404. X***************
  1405. X*** 3705,3727 ****
  1406. X      NULL
  1407. X  };
  1408. X  
  1409. X! static struct IntuiText Defs_IText106 = {
  1410. X      1,0,JAM2,
  1411. X      47,42,
  1412. X      NULL,
  1413. X      "Character:",
  1414. X!     &Defs_IText107
  1415. X  };
  1416. X  
  1417. X! static struct IntuiText Defs_IText105 = {
  1418. X      1,0,JAM2,
  1419. X      15,15,
  1420. X      NULL,
  1421. X      "Player's Name:",
  1422. X!     &Defs_IText106
  1423. X  };
  1424. X  
  1425. X! #define Defs_IntuiTextList11 Defs_IText105
  1426. X  
  1427. X  static struct NewWindow Defs_NewWindowStructure11 = {
  1428. X      164,60,
  1429. X--- 3712,3734 ----
  1430. X      NULL
  1431. X  };
  1432. X  
  1433. X! static struct IntuiText Defs_IText107 = {
  1434. X      1,0,JAM2,
  1435. X      47,42,
  1436. X      NULL,
  1437. X      "Character:",
  1438. X!     &Defs_IText108
  1439. X  };
  1440. X  
  1441. X! static struct IntuiText Defs_IText106 = {
  1442. X      1,0,JAM2,
  1443. X      15,15,
  1444. X      NULL,
  1445. X      "Player's Name:",
  1446. X!     &Defs_IText107
  1447. X  };
  1448. X  
  1449. X! #define Defs_IntuiTextList11 Defs_IText106
  1450. X  
  1451. X  static struct NewWindow Defs_NewWindowStructure11 = {
  1452. X      164,60,
  1453. X***************
  1454. X*** 3754,3760 ****
  1455. X      NULL
  1456. X  };
  1457. X  
  1458. X! static struct IntuiText Rst_IText108 = {
  1459. X      1,0,JAM1,
  1460. X      5,1,
  1461. X      NULL,
  1462. X--- 3761,3767 ----
  1463. X      NULL
  1464. X  };
  1465. X  
  1466. X! static struct IntuiText Rst_IText109 = {
  1467. X      1,0,JAM1,
  1468. X      5,1,
  1469. X      NULL,
  1470. X***************
  1471. X*** 3771,3777 ****
  1472. X      BOOLGADGET,
  1473. X      (APTR)&Rst_Border63,
  1474. X      NULL,
  1475. X!     &Rst_IText108,
  1476. X      NULL,
  1477. X      NULL,
  1478. X      GADRESTCAN,
  1479. X--- 3778,3784 ----
  1480. X      BOOLGADGET,
  1481. X      (APTR)&Rst_Border63,
  1482. X      NULL,
  1483. X!     &Rst_IText109,
  1484. X      NULL,
  1485. X      NULL,
  1486. X      GADRESTCAN,
  1487. X***************
  1488. X*** 3793,3799 ****
  1489. X      NULL
  1490. X  };
  1491. X  
  1492. X! static struct IntuiText Rst_IText109 = {
  1493. X      1,0,JAM1,
  1494. X      12,1,
  1495. X      NULL,
  1496. X--- 3800,3806 ----
  1497. X      NULL
  1498. X  };
  1499. X  
  1500. X! static struct IntuiText Rst_IText110 = {
  1501. X      1,0,JAM1,
  1502. X      12,1,
  1503. X      NULL,
  1504. X***************
  1505. X*** 3810,3816 ****
  1506. X      BOOLGADGET,
  1507. X      (APTR)&Rst_Border64,
  1508. X      NULL,
  1509. X!     &Rst_IText109,
  1510. X      NULL,
  1511. X      NULL,
  1512. X      GADRESTOKAY,
  1513. X--- 3817,3823 ----
  1514. X      BOOLGADGET,
  1515. X      (APTR)&Rst_Border64,
  1516. X      NULL,
  1517. X!     &Rst_IText110,
  1518. X      NULL,
  1519. X      NULL,
  1520. X      GADRESTOKAY,
  1521. X***************
  1522. X*** 3907,3913 ****
  1523. X  
  1524. X  #define Rst_GadgetList12 Rst_RestDir
  1525. X  
  1526. X! static struct IntuiText Rst_IText111 = {
  1527. X      1,0,JAM1,
  1528. X      18,29,
  1529. X      NULL,
  1530. X--- 3914,3920 ----
  1531. X  
  1532. X  #define Rst_GadgetList12 Rst_RestDir
  1533. X  
  1534. X! static struct IntuiText Rst_IText112 = {
  1535. X      1,0,JAM1,
  1536. X      18,29,
  1537. X      NULL,
  1538. X***************
  1539. X*** 3915,3929 ****
  1540. X      NULL
  1541. X  };
  1542. X  
  1543. X! static struct IntuiText Rst_IText110 = {
  1544. X      1,0,JAM1,
  1545. X      14,15,
  1546. X      NULL,
  1547. X      "Directory:",
  1548. X!     &Rst_IText111
  1549. X  };
  1550. X  
  1551. X! #define Rst_IntuiTextList12 Rst_IText110
  1552. X  
  1553. X  static struct NewWindow Rst_NewWindowStructure12 = {
  1554. X      177,60,
  1555. X--- 3922,3936 ----
  1556. X      NULL
  1557. X  };
  1558. X  
  1559. X! static struct IntuiText Rst_IText111 = {
  1560. X      1,0,JAM1,
  1561. X      14,15,
  1562. X      NULL,
  1563. X      "Directory:",
  1564. X!     &Rst_IText112
  1565. X  };
  1566. X  
  1567. X! #define Rst_IntuiTextList12 Rst_IText111
  1568. X  
  1569. X  static struct NewWindow Rst_NewWindowStructure12 = {
  1570. X      177,60,
  1571. X*** /tmp/da09166    Thu Feb 25 10:28:07 1993
  1572. X--- sys/amiga/winami.c    Wed Feb 24 18:01:09 1993
  1573. X***************
  1574. X*** 175,184 ****
  1575. X  char morc;  /* the character typed in response to a --more-- prompt */
  1576. X  char spaces[] =
  1577. X  "                                                                           ";
  1578. X! extern winid WIN_MESSAGE;
  1579. X! extern winid WIN_MAP;
  1580. X! extern winid WIN_STATUS;
  1581. X! extern winid WIN_INVEN;
  1582. X  
  1583. X  winid WIN_BASE = WIN_ERR;
  1584. X  
  1585. X--- 175,184 ----
  1586. X  char morc;  /* the character typed in response to a --more-- prompt */
  1587. X  char spaces[] =
  1588. X  "                                                                           ";
  1589. X! extern NEARDATA winid WIN_MESSAGE;
  1590. X! extern NEARDATA winid WIN_MAP;
  1591. X! extern NEARDATA winid WIN_STATUS;
  1592. X! extern NEARDATA winid WIN_INVEN;
  1593. X  
  1594. X  winid WIN_BASE = WIN_ERR;
  1595. X  
  1596. X***************
  1597. X*** 194,199 ****
  1598. X--- 194,200 ----
  1599. X  static void outmore(struct WinDesc *);
  1600. X  static void outsubstr(struct WinDesc *,char *,int);
  1601. X  static void dismiss_nhwindow(winid);
  1602. X+ static void removetopl(int);
  1603. X  
  1604. X  /* This gadget data is replicated for menu/text windows... */
  1605. X  static struct PropInfo PropScroll = { AUTOKNOB+FREEVERT,
  1606. X***************
  1607. X*** 230,236 ****
  1608. X      xchar offx,offy,maxrow,rows,maxcol,cols;    /* CHECK TYPES */
  1609. X  } new_wins[] = {
  1610. X  
  1611. X!     /* First entry not used, types are based on 1 */
  1612. X      {{0}},
  1613. X  
  1614. X      /* NHW_MESSAGE */
  1615. X--- 231,237 ----
  1616. X      xchar offx,offy,maxrow,rows,maxcol,cols;    /* CHECK TYPES */
  1617. X  } new_wins[] = {
  1618. X  
  1619. X!     /* First entry not used, types are based at 1 */
  1620. X      {{0}},
  1621. X  
  1622. X      /* NHW_MESSAGE */
  1623. X***************
  1624. X*** 339,345 ****
  1625. X  #define         SIZEOF_DISKNAME 8
  1626. X  
  1627. X  /* The current color map */
  1628. X! unsigned short amii_curmap[] = {
  1629. X  #define C_BLACK        0
  1630. X  #define C_WHITE        1
  1631. X  #define C_BROWN        2
  1632. X--- 340,346 ----
  1633. X  #define         SIZEOF_DISKNAME 8
  1634. X  
  1635. X  /* The current color map */
  1636. X! unsigned short amii_initmap[] = {
  1637. X  #define C_BLACK        0
  1638. X  #define C_WHITE        1
  1639. X  #define C_BROWN        2
  1640. X***************
  1641. X*** 389,395 ****
  1642. X  #endif
  1643. X      ,
  1644. X      &Hack80,  /* Font */
  1645. X!     (UBYTE *)" NetHack 3.1",
  1646. X      NULL,     /* Gadgets */
  1647. X      NULL,     /* CustomBitmap */
  1648. X  #ifdef  INTUI_NEW_LOOK
  1649. X--- 390,396 ----
  1650. X  #endif
  1651. X      ,
  1652. X      &Hack80,  /* Font */
  1653. X!     (UBYTE *)" NetHack 3.1.1",
  1654. X      NULL,     /* Gadgets */
  1655. X      NULL,     /* CustomBitmap */
  1656. X  #ifdef  INTUI_NEW_LOOK
  1657. X***************
  1658. X*** 397,402 ****
  1659. X--- 398,408 ----
  1660. X  #endif
  1661. X  };
  1662. X  
  1663. X+ /* topl kludges */
  1664. X+ #define TOPL_NOSPACE    topl_addspace=0
  1665. X+ #define TOPL_SPACE    topl_addspace=1
  1666. X+ int topl_addspace=1;
  1667. X+ 
  1668. X  /* Make sure the user sees a text string when no windowing is available */
  1669. X  
  1670. X  void
  1671. X***************
  1672. X*** 659,665 ****
  1673. X      register struct Gadget *gd;
  1674. X      static int once=0;
  1675. X      long class, code;
  1676. X-     int i;
  1677. X  
  1678. X      amii_clear_nhwindow( WIN_BASE );
  1679. X      if( *pl_character ){
  1680. X--- 665,670 ----
  1681. X***************
  1682. X*** 687,692 ****
  1683. X--- 692,698 ----
  1684. X      {
  1685. X      return;
  1686. X      }
  1687. X+     WindowToFront( cwin );
  1688. X  
  1689. X      while( !aredone )
  1690. X      {
  1691. X***************
  1692. X*** 764,770 ****
  1693. X      CloseShWindow( cwin );
  1694. X  }
  1695. X  
  1696. X- #ifndef KENI_S_WAY
  1697. X  #include "Amiga:randwin.c"
  1698. X  
  1699. X  static void
  1700. X--- 770,775 ----
  1701. X***************
  1702. X*** 788,793 ****
  1703. X--- 793,799 ----
  1704. X      if( tport ) DeletePort( tport );
  1705. X      if( trq ) DeleteExtIO( (struct IORequest *)trq );
  1706. X      Delay( 8 * 50 );
  1707. X+     return;
  1708. X      }
  1709. X  
  1710. X      if( OpenDevice( TIMERNAME, UNIT_VBLANK, (struct IORequest *)trq, 0L ) != 0 )
  1711. X***************
  1712. X*** 834,839 ****
  1713. X--- 840,847 ----
  1714. X          if( gd->GadgetID != 0 )
  1715. X          SetBorder( gd );
  1716. X      }
  1717. X+     Rnd_NewWindowStructure1.IDCMPFlags |= VANILLAKEY;
  1718. X+ 
  1719. X      once = 1;
  1720. X      }
  1721. X  
  1722. X***************
  1723. X*** 859,866 ****
  1724. X          aredone = 1;
  1725. X          timerdone = 1;
  1726. X          GetMsg( tport );
  1727. X-         CloseShWindow( w );
  1728. X-         w = NULL;
  1729. X          }
  1730. X          while( w && ( imsg = (struct IntuiMessage *) GetMsg( w->UserPort ) ) )
  1731. X          {
  1732. X--- 867,872 ----
  1733. X***************
  1734. X*** 879,884 ****
  1735. X--- 885,895 ----
  1736. X          case GADGETUP:
  1737. X          aredone = 1;
  1738. X          break;
  1739. X+ 
  1740. X+         case VANILLAKEY:
  1741. X+         if(imsg->Code=='\n' || imsg->Code==' ' || imsg->Code=='\r')
  1742. X+             aredone = 1;
  1743. X+         break;
  1744. X          }
  1745. X          ReplyMsg( (struct Message *)imsg );
  1746. X          }
  1747. X***************
  1748. X*** 895,901 ****
  1749. X      DeletePort( tport );
  1750. X      if(w) CloseShWindow( w );
  1751. X  }
  1752. X- #endif
  1753. X  
  1754. X  /* this should probably not be needed (or be renamed)
  1755. X  void
  1756. X--- 906,911 ----
  1757. X***************
  1758. X*** 1104,1110 ****
  1759. X--- 1114,1128 ----
  1760. X      w=OpenShWindow( (void *)nw );
  1761. X  
  1762. X      if( w == NULL && type != NHW_MENU && type != NHW_TEXT )
  1763. X+     {
  1764. X+     char buf[ 100 ];
  1765. X+ 
  1766. X+     sprintf( buf, "nw is l: %d, t: %d, w: %d, h: %d",
  1767. X+         nw->LeftEdge, nw->TopEdge,
  1768. X+         nw->Width, nw->Height );
  1769. X+     raw_print( buf );
  1770. X      panic("bad openwin %d",type);
  1771. X+     }
  1772. X  
  1773. X      /* Check for an empty slot */
  1774. X  
  1775. X***************
  1776. X*** 1365,1373 ****
  1777. X      PubScreenStatus( HackScreen, 0 );
  1778. X      }
  1779. X  #endif
  1780. X  
  1781. X  #ifdef TEXTCOLOR
  1782. X!     LoadRGB4(&HackScreen->ViewPort, amii_curmap, 1L << DEPTH );
  1783. X  #endif
  1784. X  
  1785. X      /* Display the copyright etc... */
  1786. X--- 1383,1393 ----
  1787. X      PubScreenStatus( HackScreen, 0 );
  1788. X      }
  1789. X  #endif
  1790. X+     amiIDisplay->ypix = HackScreen->Height;
  1791. X+     amiIDisplay->xpix = HackScreen->Width;
  1792. X  
  1793. X  #ifdef TEXTCOLOR
  1794. X!     LoadRGB4(&HackScreen->ViewPort, flags.amii_curmap, 1L << DEPTH );
  1795. X  #endif
  1796. X  
  1797. X      /* Display the copyright etc... */
  1798. X***************
  1799. X*** 1556,1567 ****
  1800. X  
  1801. X  /* Ask a question and get a response */
  1802. X  
  1803. X  char amii_yn_function( prompt, resp, def )
  1804. X      const char *prompt,*resp;
  1805. X      char def;
  1806. X  {
  1807. X      char ch;
  1808. X- #ifndef WINDOW_YN
  1809. X      char buf[ 80 ];
  1810. X  
  1811. X      if( def && def!='q')
  1812. X--- 1576,1588 ----
  1813. X  
  1814. X  /* Ask a question and get a response */
  1815. X  
  1816. X+ #ifdef OLDCODE
  1817. X+ 
  1818. X  char amii_yn_function( prompt, resp, def )
  1819. X      const char *prompt,*resp;
  1820. X      char def;
  1821. X  {
  1822. X      char ch;
  1823. X      char buf[ 80 ];
  1824. X  
  1825. X      if( def && def!='q')
  1826. X***************
  1827. X*** 1582,1685 ****
  1828. X          ch = def;
  1829. X          break;
  1830. X      }
  1831. X      } while( resp && *resp && index( resp, ch ) == 0 );
  1832. X  
  1833. X      cursor_off( WIN_MESSAGE );
  1834. X      if( ch == '\33' )
  1835. X      {
  1836. X!     /*amii_addtopl( " you change your mind..." );*/
  1837. X!     ch = 0;
  1838. X      }
  1839. X      /* Try this to make topl behave more appropriately? */
  1840. X      clear_nhwindow( WIN_MESSAGE );
  1841. X  #else
  1842. X!     struct Window *cwin;
  1843. X!     struct IntuiMessage *imsg;
  1844. X!     int aredone = 0, xcor;
  1845. X!     struct Gadget *gd;
  1846. X!     char buf[ 4 ];
  1847. X  
  1848. X!     *StrString = 0;
  1849. X  
  1850. X!     Ask_Window.Screen = HackScreen;
  1851. X!     Ask_IText1.IText = buf;
  1852. X!     Ask_IText2.IText = prompt;
  1853. X!     if( def )
  1854. X!     {
  1855. X!     sprintf( buf, "[%c]", def );
  1856. X!     Ask_Window.FirstGadget = &Ask_Gadget1;
  1857. X!     Ask_IText2.LeftEdge = 44;
  1858. X!     }
  1859. X!     else
  1860. X!     {
  1861. X!     Ask_Window.FirstGadget = NULL;
  1862. X!     Ask_IText2.LeftEdge = 9;
  1863. X!     }
  1864. X! 
  1865. X!     /* Use this RPort to get needed dimensions */
  1866. X! 
  1867. X!     if( cwin = wins[WIN_MAP]->win )
  1868. X!     {
  1869. X!     Ask_IText1.LeftEdge =
  1870. X!     (Ask_Gadget1.Width - cwin->BorderLeft - cwin->BorderRight) / 2;
  1871. X!     Ask_Window.Width =
  1872. X!      Ask_IText2.LeftEdge + (5 + strlen( prompt )) * txwidth;
  1873. X!     xcor = Ask_IText2.LeftEdge + (2 + strlen( prompt )) * txwidth;
  1874. X!     }
  1875. X! 
  1876. X!     if( ( cwin = OpenShWindow( (void *)&Ask_Window ) ) == NULL )
  1877. X!     return( 0 );
  1878. X! 
  1879. X!     PrintIText( cwin->RPort, &Ask_IntuiTextList1, 0, 0 );
  1880. X! 
  1881. X!     while( !aredone )
  1882. X!     {
  1883. X!     WaitPort( cwin->UserPort );
  1884. X!     while( ( imsg = (void *) GetMsg( cwin->UserPort ) ) != NULL )
  1885. X!     {
  1886. X!         switch( imsg->Class )
  1887. X!         {
  1888. X!         case VANILLAKEY:
  1889. X!             Move( cwin->RPort, xcor,
  1890. X!             Ask_IText2.TopEdge + txheight - 1 );
  1891. X!             ch = imsg->Code;
  1892. X!             if( ch != '\33' )
  1893. X!             {
  1894. X!             Text( cwin->RPort, &ch, 1 );
  1895. X!             if( resp == NULL || *resp == 0 ||
  1896. X!                             index( resp, ch ) )
  1897. X!             {
  1898. X!                 aredone = 1;
  1899. X!                 Delay( 45 );
  1900. X!             }
  1901. X!             else
  1902. X!                 DisplayBeep( NULL );
  1903. X              }
  1904. X!             else
  1905. X!             {
  1906. X!             aredone = 1;
  1907. X!             }
  1908. X!             break;
  1909. X! 
  1910. X!         case GADGETUP:
  1911. X!             gd = (struct Gadget *) imsg->IAddress;
  1912. X!             switch( gd->GadgetID )
  1913. X!             {
  1914. X!             case 1:
  1915. X!                 ch = def;
  1916. X!                 aredone = 1;
  1917. X!                 break;
  1918. X!             }
  1919. X!             break;
  1920. X          }
  1921. X!         ReplyMsg( (struct Message *) imsg );
  1922. X      }
  1923. X!     }
  1924. X  
  1925. X-     CloseShWindow( cwin );
  1926. X  #endif
  1927. X-     return( ch );
  1928. X- }
  1929. X  
  1930. X  /* Add a line in the message window */
  1931. X  
  1932. X--- 1603,1751 ----
  1933. X          ch = def;
  1934. X          break;
  1935. X      }
  1936. X+     else if( isdigit(ch) && index(resp, '#')){
  1937. X+         
  1938. X+     }
  1939. X      } while( resp && *resp && index( resp, ch ) == 0 );
  1940. X  
  1941. X      cursor_off( WIN_MESSAGE );
  1942. X      if( ch == '\33' )
  1943. X      {
  1944. X!     if(index(resp, 'q'))
  1945. X!         ch = 'q';
  1946. X!     else if(index(resp, 'n'))
  1947. X!         ch = 'n';
  1948. X!     else ch = def;
  1949. X      }
  1950. X      /* Try this to make topl behave more appropriately? */
  1951. X      clear_nhwindow( WIN_MESSAGE );
  1952. X+     return( ch );
  1953. X+ }
  1954. X  #else
  1955. X! char amii_yn_function(query,resp, def)
  1956. X! const char *query,*resp;
  1957. X! char def;
  1958. X! /*
  1959. X!  *   Generic yes/no function. 'def' is the default (returned by space or
  1960. X!  *   return; 'esc' returns 'q', or 'n', or the default, depending on
  1961. X!  *   what's in the string. The 'query' string is printed before the user
  1962. X!  *   is asked about the string.
  1963. X!  *   If resp is NULL, any single character is accepted and returned.
  1964. X!  */
  1965. X! {
  1966. X!     register char q;
  1967. X!     char rtmp[40];
  1968. X!     boolean digit_ok, allow_num;
  1969. X!     char prompt[QBUFSZ];
  1970. X  
  1971. X!     if(resp) {
  1972. X!         allow_num = (index(resp, '#') != 0);
  1973. X!         if(def)
  1974. X!         Sprintf(prompt, "%s [%s] (%c) ", query, resp, def);
  1975. X!         else
  1976. X!         Sprintf(prompt, "%s [%s] ", query, resp);
  1977. X!         amii_addtopl(prompt);
  1978. X!     } else {
  1979. X!         amii_addtopl(query);
  1980. X!         q = WindowGetchar();
  1981. X!         goto clean_up;
  1982. X!     }
  1983. X  
  1984. X!     do {    /* loop until we get valid input */
  1985. X!         cursor_on(WIN_MESSAGE);
  1986. X!         q = lowc(WindowGetchar());
  1987. X!         cursor_off(WIN_MESSAGE);
  1988. X! #if 0
  1989. X! /* fix for PL2 */
  1990. X!         if (q == '\020') { /* ctrl-P */
  1991. X!         if(!doprev) (void) tty_doprev_message(); /* need two initially */
  1992. X!         (void) tty_doprev_message();
  1993. X!         q = (char)0;
  1994. X!         doprev = 1;
  1995. X!         continue;
  1996. X!         } else if(doprev) {
  1997. X!         tty_clear_nhwindow(WIN_MESSAGE);
  1998. X!         cw->maxcol = cw->maxrow;
  1999. X!         doprev = 0;
  2000. X!         amii_addtopl(prompt);
  2001. X!         continue;
  2002. X!         }
  2003. X! #endif
  2004. X!         digit_ok = allow_num && digit(q);
  2005. X!         if (q == '\033') {
  2006. X!         if (index(resp, 'q'))
  2007. X!             q = 'q';
  2008. X!         else if (index(resp, 'n'))
  2009. X!             q = 'n';
  2010. X!         else
  2011. X!             q = def;
  2012. X!         break;
  2013. X!         } else if (index(quitchars, q)) {
  2014. X!         q = def;
  2015. X!         break;
  2016. X!         }
  2017. X!         if (!index(resp, q) && !digit_ok) {
  2018. X!         amii_bell();
  2019. X!         q = (char)0;
  2020. X!         } else if (q == '#' || digit_ok) {
  2021. X!         char z, digit_string[2];
  2022. X!         int n_len = 0;
  2023. X!         long value = 0;
  2024. X!         TOPL_NOSPACE;
  2025. X!         amii_addtopl("#"),  n_len++;
  2026. X!         TOPL_SPACE;
  2027. X!         digit_string[1] = '\0';
  2028. X!         if (q != '#') {
  2029. X!             digit_string[0] = q;
  2030. X!             TOPL_NOSPACE;
  2031. X!             amii_addtopl(digit_string),  n_len++;
  2032. X!             TOPL_SPACE;
  2033. X!             value = q - '0';
  2034. X!             q = '#';
  2035. X!         }
  2036. X!         do {    /* loop until we get a non-digit */
  2037. X!             cursor_on(WIN_MESSAGE);
  2038. X!             z = lowc(WindowGetchar());
  2039. X!             cursor_off(WIN_MESSAGE);
  2040. X!             if (digit(z)) {
  2041. X!             value = (10 * value) + (z - '0');
  2042. X!             if (value < 0) break;    /* overflow: try again */
  2043. X!             digit_string[0] = z;
  2044. X!             TOPL_NOSPACE;
  2045. X!             amii_addtopl(digit_string),  n_len++;
  2046. X!             TOPL_SPACE;
  2047. X!             } else if (z == 'y' || index(quitchars, z)) {
  2048. X!             if (z == '\033')  value = -1;    /* abort */
  2049. X!             z = '\n';    /* break */
  2050. X!             } else if ( z == '\b') {
  2051. X!             if (n_len <= 1) { value = -1;  break; }
  2052. X!             else { value /= 10;  removetopl(1),  n_len--; }
  2053. X!             } else {
  2054. X!             value = -1;    /* abort */
  2055. X!             amii_bell();
  2056. X!             break;
  2057. X              }
  2058. X!         } while (z != '\n');
  2059. X!         if (value > 0) yn_number = value;
  2060. X!         else if (value == 0) q = 'n';        /* 0 => "no" */
  2061. X!         else {    /* remove number from top line, then try again */
  2062. X!             removetopl(n_len),  n_len = 0;
  2063. X!             q = '\0';
  2064. X!         }
  2065. X          }
  2066. X!     } while(!q);
  2067. X! 
  2068. X!     if (q != '#') {
  2069. X!         Sprintf(rtmp, "%c", q);
  2070. X!         amii_addtopl(rtmp);
  2071. X      }
  2072. X!     clean_up:
  2073. X!     cursor_off(WIN_MESSAGE);
  2074. X!     clear_nhwindow(WIN_MESSAGE);
  2075. X!     return q;
  2076. X! }
  2077. X  
  2078. X  #endif
  2079. X  
  2080. X  /* Add a line in the message window */
  2081. X  
  2082. X***************
  2083. X*** 1730,1736 ****
  2084. X  
  2085. X      if( window == WIN_ERR || ( cw = wins[window] ) == NULL )
  2086. X      {
  2087. X-     /* tty does this differently - is this OK? */
  2088. X      flags.window_inited=0;
  2089. X      panic(winpanicstr,window, "putstr");
  2090. X      }
  2091. X--- 1796,1801 ----
  2092. X***************
  2093. X*** 1737,1744 ****
  2094. X  
  2095. X      w = cw->win;
  2096. X  
  2097. X!     if(!str)return;
  2098. X!     amiIDisplay->lastwin=window;    /* do we care??? */
  2099. X  
  2100. X      /* NHW_MENU windows are not opened immediately, so check if we
  2101. X       * have the window pointer yet
  2102. X--- 1802,1809 ----
  2103. X  
  2104. X      w = cw->win;
  2105. X  
  2106. X!     if(!str) return;
  2107. X!     amiIDisplay->lastwin = window;    /* do we care??? */
  2108. X  
  2109. X      /* NHW_MENU windows are not opened immediately, so check if we
  2110. X       * have the window pointer yet
  2111. X***************
  2112. X*** 1778,1784 ****
  2113. X          cw->curx = 0;
  2114. X      }
  2115. X  
  2116. X!     if(strlen(str) >= (cw->cols-MORE_FUDGE))
  2117. X      {
  2118. X          int i;
  2119. X          char *p;
  2120. X--- 1843,1849 ----
  2121. X          cw->curx = 0;
  2122. X      }
  2123. X  
  2124. X!     if( strlen(str) >= (cw->cols-MORE_FUDGE) )
  2125. X      {
  2126. X          int i;
  2127. X          char *p;
  2128. X***************
  2129. X*** 1810,1836 ****
  2130. X          amii_cl_end( cw, cw->curx );
  2131. X      }
  2132. X  
  2133. X!         /* If used all of history lines, move them down */
  2134. X  
  2135. X!         if( cw->maxrow == flags.msg_history )
  2136. X!         {
  2137. X!         if( cw->data[ 0 ] )
  2138. X!             free( cw->data[ 0 ] );
  2139. X!         memcpy( cw->data, &cw->data[ 1 ],
  2140. X!             ( flags.msg_history - 1 ) * sizeof( char * ) );
  2141. X!         cw->data[ flags.msg_history - 1 ] =
  2142. X!                 (char *) alloc( strlen( toplines ) + 1 );
  2143. X!         strcpy( cw->data[ flags.msg_history - 1 ], toplines );
  2144. X!         }
  2145. X!         else
  2146. X!         {
  2147. X!         /* Otherwise, allocate a new one and copy the line in */
  2148. X!         cw->data[ cw->maxrow ] = (char *)
  2149. X!                         alloc( strlen( toplines ) + 1 );
  2150. X!         strcpy( cw->data[ cw->maxrow++ ], toplines );
  2151. X!         }
  2152. X!         cw->maxcol = cw->maxrow;
  2153. X!         break;
  2154. X  
  2155. X      case NHW_STATUS:
  2156. X      if( cw->data[ cw->cury ] == NULL )
  2157. X--- 1875,1901 ----
  2158. X          amii_cl_end( cw, cw->curx );
  2159. X      }
  2160. X  
  2161. X!     /* If used all of history lines, move them down */
  2162. X  
  2163. X!     if( cw->maxrow == flags.msg_history )
  2164. X!     {
  2165. X!         if( cw->data[ 0 ] )
  2166. X!         free( cw->data[ 0 ] );
  2167. X!         memcpy( cw->data, &cw->data[ 1 ],
  2168. X!         ( flags.msg_history - 1 ) * sizeof( char * ) );
  2169. X!         cw->data[ flags.msg_history - 1 ] =
  2170. X!                 (char *) alloc( strlen( toplines ) + 1 );
  2171. X!         strcpy( cw->data[ flags.msg_history - 1 ], toplines );
  2172. X!     }
  2173. X!     else
  2174. X!     {
  2175. X!         /* Otherwise, allocate a new one and copy the line in */
  2176. X!         cw->data[ cw->maxrow ] = (char *)
  2177. X!                     alloc( strlen( toplines ) + 1 );
  2178. X!         strcpy( cw->data[ cw->maxrow++ ], toplines );
  2179. X!     }
  2180. X!     cw->maxcol = cw->maxrow;
  2181. X!     break;
  2182. X  
  2183. X      case NHW_STATUS:
  2184. X      if( cw->data[ cw->cury ] == NULL )
  2185. X***************
  2186. X*** 1942,1948 ****
  2187. X          outmore( cw );
  2188. X      }
  2189. X      else
  2190. X!     {
  2191. X          /* Otherwise, move and put out a blank separator */
  2192. X          Text( w->RPort, spaces, 1 );
  2193. X          cw->curx += 1;
  2194. X--- 2007,2013 ----
  2195. X          outmore( cw );
  2196. X      }
  2197. X      else
  2198. X!     if(topl_addspace){
  2199. X          /* Otherwise, move and put out a blank separator */
  2200. X          Text( w->RPort, spaces, 1 );
  2201. X          cw->curx += 1;
  2202. X***************
  2203. X*** 2073,2079 ****
  2204. X       * left behind...
  2205. X       */
  2206. X      kill_nhwindows( 0 );
  2207. X!     if( str ) raw_print( str );
  2208. X  }
  2209. X  
  2210. X  amii_nh_poskey(x, y, mod)
  2211. X--- 2138,2147 ----
  2212. X       * left behind...
  2213. X       */
  2214. X      kill_nhwindows( 0 );
  2215. X!     if( str ){
  2216. X!     raw_print( "\n");    /* be sure we're not under the top margin */
  2217. X!     raw_print( str );
  2218. X!     }
  2219. X  }
  2220. X  
  2221. X  amii_nh_poskey(x, y, mod)
  2222. X***************
  2223. X*** 2185,2192 ****
  2224. X      if( win == WIN_ERR || ( cw = wins[win] ) == NULL )
  2225. X      panic(winpanicstr,win,"display_nhwindow");
  2226. X  
  2227. X!     if( cw->type == NHW_MAP || cw->type == NHW_STATUS ||
  2228. X!                         cw->type == NHW_MESSAGE )
  2229. X      {
  2230. X      return;
  2231. X      }
  2232. X--- 2253,2259 ----
  2233. X      if( win == WIN_ERR || ( cw = wins[win] ) == NULL )
  2234. X      panic(winpanicstr,win,"display_nhwindow");
  2235. X  
  2236. X!     if( cw->type == NHW_STATUS || cw->type == NHW_MESSAGE )
  2237. X      {
  2238. X      return;
  2239. X      }
  2240. X***************
  2241. X*** 2234,2241 ****
  2242. X      }
  2243. X  
  2244. X      /* Do more if it is time... */
  2245. X!     if( blocking == TRUE )
  2246. X!         outmore( wins[ win ] );
  2247. X      }
  2248. X  }
  2249. X  
  2250. X--- 2301,2309 ----
  2251. X      }
  2252. X  
  2253. X      /* Do more if it is time... */
  2254. X!     if( blocking == TRUE && wins[ WIN_MESSAGE ]->curx ){
  2255. X!         outmore( wins[ WIN_MESSAGE ] );
  2256. X!     }
  2257. X      }
  2258. X  }
  2259. X  
  2260. X***************
  2261. X*** 2286,2291 ****
  2262. X--- 2354,2360 ----
  2263. X      if( wins[ win ]->cury > 0 )
  2264. X      amii_display_nhwindow( win, TRUE );
  2265. X  
  2266. X+     wins[win]->morestr = NULL;        /* don't free title string */
  2267. X      amii_destroy_nhwindow( win );
  2268. X  }
  2269. X  
  2270. X***************
  2271. X*** 3216,3221 ****
  2272. X--- 3285,3291 ----
  2273. X      return;
  2274. X      }
  2275. X  
  2276. X+     WindowToFront( cwin );
  2277. X      while( !aredone )
  2278. X      {
  2279. X      WaitPort( cwin->UserPort );
  2280. X***************
  2281. X*** 3372,3377 ****
  2282. X--- 3442,3448 ----
  2283. X  #define GADGREENPEN     4
  2284. X  #define GADCOLOKAY      5
  2285. X  #define GADCOLCANCEL    6
  2286. X+ #define GADCOLSAVE      7
  2287. X  
  2288. X  #include "colorwin.c"
  2289. X  
  2290. X***************
  2291. X*** 3403,3408 ****
  2292. X--- 3474,3480 ----
  2293. X      {
  2294. X      SetBorder( &Col_Okay );
  2295. X      SetBorder( &Col_Cancel );
  2296. X+     SetBorder( &Col_Save );
  2297. X      once = 1;
  2298. X      }
  2299. X  
  2300. X***************
  2301. X*** 3489,3494 ****
  2302. X--- 3561,3626 ----
  2303. X              done = 1;
  2304. X              okay = 1;
  2305. X              }
  2306. X+             else if( gd->GadgetID == GADCOLSAVE )
  2307. X+             {
  2308. X+                 FILE *fp, *nfp;
  2309. X+                 char buf[ 300 ];
  2310. X+                 int once = 0;
  2311. X+ 
  2312. X+                 fp = fopen( "nethack.cnf", "r" );
  2313. X+                 if( !fp )
  2314. X+                 {
  2315. X+                 pline( "can't find nethack.cnf" );
  2316. X+                             break;
  2317. X+                         }
  2318. X+ 
  2319. X+                 nfp = fopen( "new_nethack.cnf", "w" );
  2320. X+                 if( !nfp )
  2321. X+                 {
  2322. X+                 pline( "can't write to new_nethack.cnf" );
  2323. X+                             fclose( fp );
  2324. X+                             break;
  2325. X+                         }
  2326. X+             while( fgets( buf, sizeof( buf ), fp ) )
  2327. X+             {
  2328. X+                 if( strncmp( buf, "PENS=", 5 ) == 0 )
  2329. X+                 {
  2330. X+                 once = 1;
  2331. X+                     fputs( "PENS=", nfp );
  2332. X+                     for( i = 0; i < (1l << DEPTH); ++i )
  2333. X+                     {
  2334. X+                         fprintf( nfp, "%03x", colors[i] );
  2335. X+                         if(( i + 1 ) < (1l << DEPTH))
  2336. X+                             putc( ',', nfp );
  2337. X+                     }
  2338. X+                         putc( '\n', nfp );
  2339. X+                 }
  2340. X+                 else
  2341. X+                 {
  2342. X+                     fputs( buf, nfp );
  2343. X+                 }
  2344. X+             }
  2345. X+ 
  2346. X+             /* If none in the file yet, now write it */
  2347. X+             if( !once )
  2348. X+             {
  2349. X+                         fputs( "PENS=", nfp );
  2350. X+                         for( i = 0; i < (1l << DEPTH); ++i )
  2351. X+                         {
  2352. X+                             fprintf( nfp, "%03x", colors[i] );
  2353. X+                             if(( i + 1 ) < (1l << DEPTH))
  2354. X+                                 putc( ',', nfp );
  2355. X+                         }
  2356. X+                             putc( '\n', nfp );
  2357. X+             }
  2358. X+             fclose( fp );
  2359. X+             fclose( nfp );
  2360. X+             unlink( "old_nethack.cnf" );
  2361. X+             rename( "nethack.cnf", "old_nethack.cnf" );
  2362. X+             rename( "new_nethack.cnf", "nethack.cnf" );
  2363. X+             done = 1;
  2364. X+             okay = 1;
  2365. X+             }
  2366. X              else if( gd->GadgetID == GADCOLCANCEL )
  2367. X              {
  2368. X              done = 1;
  2369. X***************
  2370. X*** 3545,3554 ****
  2371. X      if( okay )
  2372. X      {
  2373. X      for( i = 0; i < ( 1L << DEPTH ); ++i )
  2374. X!         amii_curmap[ i ] = colors[ i ];
  2375. X      }
  2376. X  
  2377. X!     LoadRGB4( &scrn->ViewPort, amii_curmap, 1L << DEPTH );
  2378. X      CloseWindow( nw );
  2379. X  }
  2380. X  
  2381. X--- 3677,3686 ----
  2382. X      if( okay )
  2383. X      {
  2384. X      for( i = 0; i < ( 1L << DEPTH ); ++i )
  2385. X!         flags.amii_curmap[ i ] = colors[ i ];
  2386. X      }
  2387. X  
  2388. X!     LoadRGB4( &scrn->ViewPort, flags.amii_curmap, 1L << DEPTH );
  2389. X      CloseWindow( nw );
  2390. X  }
  2391. X  
  2392. X***************
  2393. X*** 3578,3597 ****
  2394. X      int i, incx, incy, r, g, b;
  2395. X      long flags;
  2396. X  
  2397. X!     bxylen = Col_NewWindowStructure1.Height - Col_Okay.Height - 4 -
  2398. X              ( Col_BluePen.TopEdge + Col_BluePen.Height + 6 );
  2399. X      bxxlen = Col_BluePen.Width;
  2400. X!     bxorx = Col_BluePen.LeftEdge;
  2401. X      bxory = Col_BluePen.TopEdge + Col_BluePen.Height + 2;
  2402. X  
  2403. X      incx = bxxlen / (1L << DEPTH);
  2404. X      incy = bxylen - 2;
  2405. X  
  2406. X!     SetAPen( w->RPort, 1 );
  2407. X!     SetBPen( w->RPort, 0 );
  2408. X      SetDrMd( w->RPort, JAM2 );
  2409. X      RectFill( w->RPort, bxorx, bxory, bxorx + bxxlen - 1, bxory + bxylen );
  2410. X!     SetAPen( w->RPort, 0 );
  2411. X      RectFill( w->RPort, bxorx+2, bxory+1,
  2412. X                      bxorx + bxxlen - 4, bxory + bxylen - 1);
  2413. X  
  2414. X--- 3710,3730 ----
  2415. X      int i, incx, incy, r, g, b;
  2416. X      long flags;
  2417. X  
  2418. X!     bxylen = Col_NewWindowStructure1.Height - (Col_Okay.Height + txheight + 8) -
  2419. X              ( Col_BluePen.TopEdge + Col_BluePen.Height + 6 );
  2420. X      bxxlen = Col_BluePen.Width;
  2421. X!     bxorx = Col_BluePen.LeftEdge + 2;
  2422. X      bxory = Col_BluePen.TopEdge + Col_BluePen.Height + 2;
  2423. X  
  2424. X      incx = bxxlen / (1L << DEPTH);
  2425. X      incy = bxylen - 2;
  2426. X  
  2427. X!     SetAPen( w->RPort, C_WHITE );
  2428. X!     SetBPen( w->RPort, C_BLACK );
  2429. X      SetDrMd( w->RPort, JAM2 );
  2430. X      RectFill( w->RPort, bxorx, bxory, bxorx + bxxlen - 1, bxory + bxylen );
  2431. X! 
  2432. X!     SetAPen( w->RPort, C_BLACK );
  2433. X      RectFill( w->RPort, bxorx+2, bxory+1,
  2434. X                      bxorx + bxxlen - 4, bxory + bxylen - 1);
  2435. X  
  2436. X***************
  2437. X*** 3598,3622 ****
  2438. X      for( i = 0; i < (1L << DEPTH); ++i )
  2439. X      {
  2440. X      if( i == idx )
  2441. X!         SetAPen( w->RPort, 1 );
  2442. X!     else
  2443. X!         SetAPen( w->RPort, 0 );
  2444. X!     SetBPen( w->RPort, 0 );
  2445. X!     SetDrMd( w->RPort, JAM2 );
  2446. X!     RectFill( w->RPort, bxorx + 3 + (i*incx)+1, bxory + 2,
  2447. X!                     bxorx + ((i+1)*incx)-2, bxory+bxylen - 2);
  2448. X  
  2449. X!     SetAPen( w->RPort, 0 );
  2450. X!     SetBPen( w->RPort, 0 );
  2451. X!     SetDrMd( w->RPort, JAM2 );
  2452. X!     RectFill( w->RPort, bxorx + 3 + (i*incx)+2, bxory + 3,
  2453. X!                     bxorx + ((i+1)*incx)-4, bxory+bxylen - 3);
  2454. X  
  2455. X      SetAPen( w->RPort, i );
  2456. X!     SetBPen( w->RPort, 0 );
  2457. X!     SetDrMd( w->RPort, JAM2 );
  2458. X!     RectFill( w->RPort, bxorx + 3 +(i*incx)+4, bxory + 4,
  2459. X!                     bxorx + ((i+1)*incx)-6, bxory+bxylen - 4 );
  2460. X      }
  2461. X  
  2462. X      DispCol( w, idx, colors );
  2463. X--- 3731,3769 ----
  2464. X      for( i = 0; i < (1L << DEPTH); ++i )
  2465. X      {
  2466. X      if( i == idx )
  2467. X!     {
  2468. X!         SetAPen( w->RPort, scrnpens[ SHADOWPEN ] );
  2469. X!         Move( w->RPort, bxorx + 3 + (i*incx)+0, bxory+bxylen - 1);
  2470. X!         Draw( w->RPort, bxorx + 3 + (i*incx)+0, bxory + 1 );
  2471. X!         Draw( w->RPort, bxorx + ((i+1)*incx)-1, bxory + 1 );
  2472. X  
  2473. X!         Move( w->RPort, bxorx + 3 + (i*incx)+1, bxory+bxylen - 2);
  2474. X!         Draw( w->RPort, bxorx + 3 + (i*incx)+1, bxory + 2 );
  2475. X!         Draw( w->RPort, bxorx + ((i+1)*incx)-2, bxory + 2 );
  2476. X  
  2477. X+         SetAPen( w->RPort, scrnpens[ SHINEPEN ] );
  2478. X+         Move( w->RPort, bxorx + 3 + (i*incx)+0, bxory+bxylen - 1);
  2479. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-1, bxory+bxylen - 1);
  2480. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-1, bxory + 1 );
  2481. X+ 
  2482. X+         Move( w->RPort, bxorx + 3 + (i*incx)+1, bxory+bxylen - 2);
  2483. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-2, bxory+bxylen - 2);
  2484. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-2, bxory + 2);
  2485. X+     }
  2486. X+     else
  2487. X+     {
  2488. X+         SetAPen( w->RPort, scrnpens[ SHINEPEN ] );
  2489. X+         Move( w->RPort, bxorx + 3 + (i*incx)+1, bxory+bxylen - 2);
  2490. X+         Draw( w->RPort, bxorx + 3 + (i*incx)+1, bxory + 2 );
  2491. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-2, bxory + 2 );
  2492. X+         Move( w->RPort, bxorx + 3 + (i*incx)+1, bxory+bxylen - 2);
  2493. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-2, bxory+bxylen - 2);
  2494. X+         Draw( w->RPort, bxorx + ((i+1)*incx)-2, bxory + 2);
  2495. X+     }
  2496. X+ 
  2497. X      SetAPen( w->RPort, i );
  2498. X!     RectFill( w->RPort, bxorx + 3 + (i*incx)+3, bxory + 4,
  2499. X!                     bxorx + ((i+1)*incx)-4, bxory+bxylen - 4);
  2500. X      }
  2501. X  
  2502. X      DispCol( w, idx, colors );
  2503. X***************
  2504. X*** 3648,3656 ****
  2505. X  {
  2506. X      char buf[ 50 ];
  2507. X  
  2508. X!     Move( w->RPort, Col_Okay.LeftEdge + Col_Okay.Width +
  2509. X!     txwidth, Col_Cancel.TopEdge + txbaseline + 2 );
  2510. X!     sprintf( buf, "%s=%03x %s%s", colnames[idx].name, colors[idx],
  2511. X      colnames[idx].defval,
  2512. X      "        "+strlen(colnames[idx].name)+1 );
  2513. X      SetAPen( w->RPort, C_WHITE );
  2514. X--- 3795,3803 ----
  2515. X  {
  2516. X      char buf[ 50 ];
  2517. X  
  2518. X!     Move( w->RPort, Col_Save.LeftEdge,
  2519. X!     Col_Save.TopEdge - 4 );
  2520. X!     sprintf( buf, "%s=%03x default=%s%s", colnames[idx].name, colors[idx],
  2521. X      colnames[idx].defval,
  2522. X      "        "+strlen(colnames[idx].name)+1 );
  2523. X      SetAPen( w->RPort, C_WHITE );
  2524. X***************
  2525. X*** 3667,3673 ****
  2526. X       */
  2527. X      if( HackScreen != NULL )
  2528. X      {
  2529. X!     LoadRGB4( &HackScreen->ViewPort, amii_curmap, 1L << DEPTH );
  2530. X      }
  2531. X  }
  2532. X  
  2533. X--- 3814,3820 ----
  2534. X       */
  2535. X      if( HackScreen != NULL )
  2536. X      {
  2537. X!     LoadRGB4( &HackScreen->ViewPort, flags.amii_curmap, 1L << DEPTH );
  2538. X      }
  2539. X  }
  2540. X  
  2541. X***************
  2542. X*** 3828,3831 ****
  2543. X--- 3975,3992 ----
  2544. X  }
  2545. X  #endif
  2546. X  
  2547. X+ static void
  2548. X+ removetopl(cnt)
  2549. X+     int cnt;
  2550. X+ {
  2551. X+     struct WinDesc *cw=wins[WIN_MESSAGE];
  2552. X+                     /* NB - this is sufficient for
  2553. X+                      * yn_function, but that's it
  2554. X+                      */
  2555. X+     if(cw->curx < cnt)cw->curx=0;
  2556. X+     else cw->curx -= cnt;
  2557. X+ 
  2558. X+     amii_curs(WIN_MESSAGE, cw->curx+1, 0);
  2559. X+     amii_cl_end(cw, cw->curx);
  2560. X+ }
  2561. X  #endif /* AMIGA_INTUITION */
  2562. X
  2563. END_OF_FILE
  2564. if test 52059 -ne `wc -c <'patches01q'`; then
  2565.     echo shar: \"'patches01q'\" unpacked with wrong size!
  2566. fi
  2567. # end of 'patches01q'
  2568. echo shar: End of archive 18 \(of 31\).
  2569. cp /dev/null ark18isdone
  2570. MISSING=""
  2571. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ; do
  2572.     if test ! -f ark${I}isdone ; then
  2573.     MISSING="${MISSING} ${I}"
  2574.     fi
  2575. done
  2576. if test "${MISSING}" = "" ; then
  2577.     echo You have unpacked all 31 archives.
  2578.     echo "Now execute 'patchit.sh'"
  2579.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2580. else
  2581.     echo You still need to unpack the following archives:
  2582.     echo "        " ${MISSING}
  2583. fi
  2584. ##  End of shell archive.
  2585. exit 0
  2586.