home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume4 / conquer3 / patch2 < prev    next >
Encoding:
Internet Message Format  |  1988-07-19  |  43.8 KB

  1. Path: uunet!tektronix!tekgen!tekred!games
  2. From: games@tekred.TEK.COM
  3. Newsgroups: comp.sources.games
  4. Subject: v05i005:  conquer3 - middle earth multi-player game (V3), Patch2
  5. Message-ID: <2814@tekred.TEK.COM>
  6. Date: 19 Jul 88 17:18:15 GMT
  7. Sender: billr@tekred.TEK.COM
  8. Lines: 1546
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted by: ihnp4!homxc!smile
  12. Comp.sources.games: Volume 5, Issue 5
  13. Archive-name: conquer3/Patch2
  14.  
  15.     [This has already been posted to comp.sources.games.bugs and is
  16.      posted here for archival purposes. If you have the latest version
  17.      of patch you can feed this file directly to patch, otherwise you
  18.      will have to unshar it first.    -br]
  19.  
  20. #! /bin/sh
  21. # This is a shell archive.  Remove anything before this line, then unpack
  22. # it by saving it into a file and typing "sh file".  To overwrite existing
  23. # files, type "sh file -c".  You can also feed this as standard input via
  24. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  25. # will see the following message at the end:
  26. #        "End of shell archive."
  27. # Contents:  patches02
  28. # Wrapped by billr@saab on Tue Jul 19 09:50:37 1988
  29. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  30. if test -f 'patches02' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'patches02'\"
  32. else
  33. echo shar: Extracting \"'patches02'\" \(41742 characters\)
  34. sed "s/^X//" >'patches02' <<'END_OF_FILE'
  35. X*** oldadmin.c    Wed Jul 13 09:55:58 1988
  36. X--- admin.c    Wed Jul 13 09:56:10 1988
  37. X*** oldextcmds.c    Wed Jul 13 09:55:59 1988
  38. X--- extcmds.c    Wed Jul 13 09:56:10 1988
  39. X***************
  40. X*** 78,83
  41. X      if (armynum < 0 || armynum >= MAXARM ||
  42. X          army2 < 0 || army2 >= MAXARM ||
  43. X          armynum == army2 ||
  44. X          ASTAT == SCOUT ||
  45. X          ntn[country].arm[army2].stat == SCOUT ||
  46. X          ATYPE >= MINMONSTER ||
  47. X
  48. X--- 78,87 -----
  49. X      if (armynum < 0 || armynum >= MAXARM ||
  50. X          army2 < 0 || army2 >= MAXARM ||
  51. X          armynum == army2 ||
  52. X+ #ifdef TRADE
  53. X+         ASTAT == TRADED ||
  54. X+         ntn[country].arm[army2].stat == TRADED ||
  55. X+ #endif TRADE
  56. X          ASTAT == SCOUT ||
  57. X          ntn[country].arm[army2].stat == SCOUT ||
  58. X          ATYPE >= MINMONSTER ||
  59. X***************
  60. X*** 102,107
  61. X  change_status(armynum,new_stat)
  62. X  int armynum,new_stat;
  63. X  {
  64. X      if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
  65. X          errormsg("Selected army not legal");
  66. X          return;
  67. X
  68. X--- 106,114 -----
  69. X  change_status(armynum,new_stat)
  70. X  int armynum,new_stat;
  71. X  {
  72. X+ #ifdef TRADE
  73. X+     if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT || ASTAT==TRADED) {
  74. X+ #else
  75. X      if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
  76. X  #endif TRADE
  77. X          errormsg("Selected army not legal");
  78. X***************
  79. X*** 103,108
  80. X  int armynum,new_stat;
  81. X  {
  82. X      if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
  83. X          errormsg("Selected army not legal");
  84. X          return;
  85. X      }
  86. X
  87. X--- 110,116 -----
  88. X      if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT || ASTAT==TRADED) {
  89. X  #else
  90. X      if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
  91. X+ #endif TRADE
  92. X          errormsg("Selected army not legal");
  93. X          return;
  94. X      }
  95. X***************
  96. X*** 124,131
  97. X          errormsg("sorry -- army is monster");
  98. X          return;
  99. X      }
  100. X! 
  101. X!     if(men<0 || armynum < 0 || armynum >= MAXARM || ASOLD < men+25 ) {
  102. X          errormsg("Selected army too small or illegal");
  103. X          return;
  104. X      }
  105. X
  106. X--- 132,142 -----
  107. X          errormsg("sorry -- army is monster");
  108. X          return;
  109. X      }
  110. X! #ifdef TRADE
  111. X!     if(men<0 || armynum < 0 || armynum >= MAXARM || ASOLD < men+25 || ASTAT==TRADED) {
  112. X! #else 
  113. X!     if(men<0 || armynum < 0 || armynum >= MAXARM || ASOLD < men+25) {
  114. X! #endif TRADE
  115. X          errormsg("Selected army too small or illegal");
  116. X          return;
  117. X      }
  118. X*** oldmakeworld.c    Wed Jul 13 09:55:55 1988
  119. X--- makeworld.c    Wed Jul 13 09:56:11 1988
  120. X*** oldrandevent.c    Wed Jul 13 09:55:56 1988
  121. X--- randevent.c    Wed Jul 13 09:56:13 1988
  122. X*** oldcexecute.c    Wed Jul 13 09:56:02 1988
  123. X--- cexecute.c    Wed Jul 13 09:56:13 1988
  124. X***************
  125. X*** 15,21
  126. X  #include "data.h"
  127. X  extern long startgold;
  128. X  extern short country;
  129. X! extern FILE *fexe;
  130. X  
  131. X  int
  132. X  execute()
  133. X
  134. X--- 15,21 -----
  135. X  #include "data.h"
  136. X  extern long startgold;
  137. X  extern short country;
  138. X! extern FILE *fexe,*fison;
  139. X  
  140. X  int
  141. X  execute()
  142. X***************
  143. X*** 36,42
  144. X  
  145. X      /* initialize i_people */
  146. X      for(x=0;x<MAPX;x++)
  147. X!         for(y=0;y<MAPX;y++)
  148. X              if(( sct[x][y].owner == country)&&
  149. X              ((sct[x][y].designation == DCITY)
  150. X              ||( sct[x][y].designation == DCAPITOL)))
  151. X
  152. X--- 36,42 -----
  153. X  
  154. X      /* initialize i_people */
  155. X      for(x=0;x<MAPX;x++)
  156. X!         for(y=0;y<MAPY;y++)
  157. X              if(( sct[x][y].owner == country)&&
  158. X              ((sct[x][y].designation == DCITY)
  159. X              ||( sct[x][y].designation == DCAPITOL)))
  160. X***************
  161. X*** 200,205
  162. X      fputs("END\n",fp);
  163. X  
  164. X      fclose(fp);
  165. X      /* exit program */
  166. X      exit(FAIL);
  167. X  }
  168. X
  169. X--- 200,207 -----
  170. X      fputs("END\n",fp);
  171. X  
  172. X      fclose(fp);
  173. X+     /* remove the lock file */
  174. X+     unlink(fison);
  175. X      /* exit program */
  176. X      exit(FAIL);
  177. X  }
  178. X*** oldforms.c    Wed Jul 13 09:55:57 1988
  179. X--- forms.c    Wed Jul 13 09:56:13 1988
  180. X***************
  181. X*** 252,258
  182. X  void
  183. X  change()
  184. X  {
  185. X!     char string[10];
  186. X      int i, cbonus;
  187. X      short armynum;
  188. X      char passwd[8];
  189. X
  190. X--- 252,258 -----
  191. X  void
  192. X  change()
  193. X  {
  194. X!     char string[10], command[80];
  195. X      int i, cbonus;
  196. X      short armynum;
  197. X      char passwd[8];
  198. X***************
  199. X*** 284,291
  200. X      mvprintw(5,(COLS/2), "defense bonus..........+%2d",ntn[country].dplus);
  201. X      mvprintw(6,(COLS/2), "maximum move rate.......%2d",ntn[country].maxmove);
  202. X      mvprintw(7,(COLS/2), "reproduction rate......%2d%%",ntn[country].repro);
  203. X!     mvprintw(9,(COLS/2), "gold talons.....$%8ld",ntn[country].tgold);
  204. X!     mvprintw(10,(COLS/2),"jewels .........$%8ld",ntn[country].jewels);
  205. X      mvprintw(11,(COLS/2),"iron & minerals...%8ld",ntn[country].tiron);
  206. X      if(ntn[country].tfood<2*ntn[country].tciv) standout();
  207. X      mvprintw(12,(COLS/2),"food in granary...%8ld",ntn[country].tfood);
  208. X
  209. X--- 284,291 -----
  210. X      mvprintw(5,(COLS/2), "defense bonus..........+%2d",ntn[country].dplus);
  211. X      mvprintw(6,(COLS/2), "maximum move rate.......%2d",ntn[country].maxmove);
  212. X      mvprintw(7,(COLS/2), "reproduction rate......%2d%%",ntn[country].repro);
  213. X!     mvprintw(9,(COLS/2), "gold talons......$%8ld",ntn[country].tgold);
  214. X!     mvprintw(10,(COLS/2),"jewels ..........$%8ld",ntn[country].jewels);
  215. X      mvprintw(11,(COLS/2),"iron & minerals...%8ld",ntn[country].tiron);
  216. X      if(ntn[country].tfood<2*ntn[country].tciv) standout();
  217. X      mvprintw(12,(COLS/2),"food in granary...%8ld",ntn[country].tfood);
  218. X***************
  219. X*** 303,309
  220. X      if(magic(country,VAMPIRE)!=1)
  221. X          mvaddstr(21,(COLS/2)-14,"HIT 3 TO ADD TO YOUR COMBAT BONUS");
  222. X      else    mvaddstr(21,(COLS/2)-17,"( VAMPIRES MAY NOT ADD TO COMBAT BONUS )");
  223. X-     if(isgod==TRUE) mvaddstr(22,(COLS/2)-9,"HIT 4 TO DESTROY NATION");
  224. X  
  225. X      standend();
  226. X      refresh();
  227. X
  228. X--- 303,308 -----
  229. X      if(magic(country,VAMPIRE)!=1)
  230. X          mvaddstr(21,(COLS/2)-14,"HIT 3 TO ADD TO YOUR COMBAT BONUS");
  231. X      else    mvaddstr(21,(COLS/2)-17,"( VAMPIRES MAY NOT ADD TO COMBAT BONUS )");
  232. X  
  233. X  #ifdef OGOD
  234. X       if(isgod==TRUE) mvaddstr(22,(COLS/2)-21,"HIT 4 TO DESTROY NATION OR 5 TO CHANGE TREASURY");
  235. X***************
  236. X*** 305,310
  237. X      else    mvaddstr(21,(COLS/2)-17,"( VAMPIRES MAY NOT ADD TO COMBAT BONUS )");
  238. X      if(isgod==TRUE) mvaddstr(22,(COLS/2)-9,"HIT 4 TO DESTROY NATION");
  239. X  
  240. X      standend();
  241. X      refresh();
  242. X      switch(getch()){
  243. X
  244. X--- 304,314 -----
  245. X          mvaddstr(21,(COLS/2)-14,"HIT 3 TO ADD TO YOUR COMBAT BONUS");
  246. X      else    mvaddstr(21,(COLS/2)-17,"( VAMPIRES MAY NOT ADD TO COMBAT BONUS )");
  247. X  
  248. X+ #ifdef OGOD
  249. X+      if(isgod==TRUE) mvaddstr(22,(COLS/2)-21,"HIT 4 TO DESTROY NATION OR 5 TO CHANGE TREASURY");
  250. X+ #else OGOD
  251. X+       if(isgod==TRUE) mvaddstr(22,(COLS/2)-9,"HIT 4 TO DESTROY NATION");
  252. X+ #endif OGOD
  253. X      standend();
  254. X      refresh();
  255. X      switch(getch()){
  256. X***************
  257. X*** 437,443
  258. X              refresh();
  259. X  
  260. X              if(getch()=='y') {
  261. X!                 if ((fnews=fopen(newsfile,"w"))==NULL) {
  262. X                      printf("error opening news file\n");
  263. X                      exit(FAIL);
  264. X                  }
  265. X
  266. X--- 441,447 -----
  267. X              refresh();
  268. X  
  269. X              if(getch()=='y') {
  270. X!                 if ((fnews=fopen(newsfile,"a+"))==NULL) {
  271. X                      printf("error opening news file\n");
  272. X                      exit(FAIL);
  273. X                  }
  274. X***************
  275. X*** 443,448
  276. X                  }
  277. X                  destroy(country);
  278. X                  fclose(fnews);
  279. X              }
  280. X          }
  281. X          break;
  282. X
  283. X--- 447,455 -----
  284. X                  }
  285. X                  destroy(country);
  286. X                  fclose(fnews);
  287. X+                 sprintf(command,"sort -n -o %s %s ",
  288. X+                     newsfile, newsfile);
  289. X+                 system(command);
  290. X              }
  291. X          }
  292. X          break;
  293. X***************
  294. X*** 446,451
  295. X              }
  296. X          }
  297. X          break;
  298. X      default:
  299. X          if(isgod==TRUE) country=0;
  300. X          return;
  301. X
  302. X--- 453,470 -----
  303. X              }
  304. X          }
  305. X          break;
  306. X+ #ifdef OGOD
  307. X+     case '5':
  308. X+         if (isgod==TRUE) {
  309. X+             /* adjust treasury */
  310. X+             mvaddstr(0,0,"WHAT IS NEW TOTAL OF TREASURY?");
  311. X+             refresh();
  312. X+             i = get_number();
  313. X+             /* as god it will be saved nothing else needed */
  314. X+             ntn[country].tgold = (long) i;
  315. X+         }
  316. X+         break;
  317. X+ #endif OGOD
  318. X      default:
  319. X          if(isgod==TRUE) country=0;
  320. X          return;
  321. X*** oldmisc.c    Wed Jul 13 09:55:54 1988
  322. X--- misc.c    Wed Jul 13 09:56:13 1988
  323. X***************
  324. X*** 943,949
  325. X          } /* switch */
  326. X      } /* for */
  327. X  
  328. X!     for(x=0;x<MAPX;x++) for(y=0;y<MAPX;y++){
  329. X          sptr = &sct[x][y];
  330. X  
  331. X          if(race==GOD) movecost[x][y] = 0;
  332. X
  333. X--- 943,949 -----
  334. X          } /* switch */
  335. X      } /* for */
  336. X  
  337. X!     for(x=0;x<MAPX;x++) for(y=0;y<MAPY;y++){
  338. X          sptr = &sct[x][y];
  339. X  
  340. X          if(race==GOD) movecost[x][y] = 0;
  341. X*** oldreports.c    Wed Jul 13 09:55:58 1988
  342. X--- reports.c    Wed Jul 13 09:56:13 1988
  343. X***************
  344. X*** 48,54
  345. X          standend();
  346. X          refresh();
  347. X          country = get_number();
  348. X!         if(country<0||country>NTOTAL) return;
  349. X      }
  350. X      armynum=0;
  351. X      /*new army screen*/
  352. X
  353. X--- 48,54 -----
  354. X          standend();
  355. X          refresh();
  356. X          country = get_number();
  357. X!         if(country<0||country>NTOTAL) { country=0; return; }
  358. X      }
  359. X      armynum=0;
  360. X      /*new army screen*/
  361. X***************
  362. X*** 104,110
  363. X              clrtoeol();
  364. X              refresh();
  365. X              armynum = get_number();
  366. X!             if((armynum<0)||(armynum>MAXARM)) return;
  367. X              if(ATYPE<99)
  368. X              mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
  369. X              else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
  370. X
  371. X--- 104,120 -----
  372. X              clrtoeol();
  373. X              refresh();
  374. X              armynum = get_number();
  375. X!             if((armynum<0)||(armynum>MAXARM)) {
  376. X!                 if (isgod==TRUE) country=0;
  377. X!                 return;
  378. X!             }
  379. X! #ifdef TRADE
  380. X!             if(ASTAT==TRADED) {
  381. X!                 errormsg("May not change traded army");
  382. X!                 if (isgod==TRUE) country=0;
  383. X!                 return;
  384. X! #endif TRADe
  385. X!             }
  386. X              if(ATYPE<99)
  387. X              mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
  388. X              else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
  389. X***************
  390. X*** 109,114
  391. X              mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
  392. X              else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
  393. X              clrtoeol();
  394. X              if(isgod==TRUE) mvaddstr(20,0,"5) LOCATION, 6) SOLDIERS:");
  395. X              refresh();
  396. X              switch(getch()){
  397. X
  398. X--- 119,125 -----
  399. X              mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
  400. X              else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
  401. X              clrtoeol();
  402. X+ #ifdef OGOD
  403. X              if(isgod==TRUE) mvaddstr(20,0,"5) LOCATION, 6) SOLDIERS:");
  404. X              refresh();
  405. X              switch(getch()){
  406. X***************
  407. X*** 362,367
  408. X          standend();
  409. X          done=TRUE;
  410. X          refresh();
  411. X          if(isgod==TRUE) country=0;
  412. X          return;
  413. X      }
  414. X
  415. X--- 373,379 -----
  416. X          standend();
  417. X          done=TRUE;
  418. X          refresh();
  419. X+          getch();
  420. X          if(isgod==TRUE) country=0;
  421. X          return;
  422. X      }
  423. X***************
  424. X*** 378,384
  425. X          mvaddstr(4,0, "merchant :");
  426. X          mvaddstr(5,0, "x location:");
  427. X          mvaddstr(6,0, "y location:");
  428. X!         mvaddstr(7,0,"move left :");
  429. X  
  430. X          position=5;
  431. X          count=0;
  432. X
  433. X--- 390,397 -----
  434. X          mvaddstr(4,0, "merchant :");
  435. X          mvaddstr(5,0, "x location:");
  436. X          mvaddstr(6,0, "y location:");
  437. X!          mvaddstr(7,0, "crew:");
  438. X!         mvaddstr(8,0,"move left :");
  439. X  
  440. X          position=5;
  441. X          count=0;
  442. X***************
  443. X*** 393,399
  444. X                  mvprintw(4,position,"%d",NMER);
  445. X                  mvprintw(5,position,"%d",NXLOC);
  446. X                  mvprintw(6,position,"%d",NYLOC);
  447. X!                 mvprintw(7,position,"%d",NMOVE);
  448. X              }
  449. X              nvynum++;
  450. X          }
  451. X
  452. X--- 406,413 -----
  453. X                  mvprintw(4,position,"%d",NMER);
  454. X                  mvprintw(5,position,"%d",NXLOC);
  455. X                  mvprintw(6,position,"%d",NYLOC);
  456. X!                 mvprintw(7,position,"%d",NCREW/(NWAR+NMER));
  457. X!                 mvprintw(8,position,"%d",NMOVE);
  458. X              }
  459. X              nvynum++;
  460. X          }
  461. X***************
  462. X*** 409,414
  463. X          if (navy=='\n'){
  464. X              mvaddstr(16,0,"WHAT NAVY DO YOU WANT TO CHANGE:");
  465. X              clrtoeol();
  466. X              refresh();
  467. X              nvynum = get_number();
  468. X              if((nvynum<0)||(nvynum>MAXNAVY)) return;
  469. X
  470. X--- 423,429 -----
  471. X          if (navy=='\n'){
  472. X              mvaddstr(16,0,"WHAT NAVY DO YOU WANT TO CHANGE:");
  473. X              clrtoeol();
  474. X+ #endif OGOD
  475. X              refresh();
  476. X              nvynum = get_number();
  477. X  #ifdef TRADE
  478. X***************
  479. X*** 411,416
  480. X              clrtoeol();
  481. X              refresh();
  482. X              nvynum = get_number();
  483. X              if((nvynum<0)||(nvynum>MAXNAVY)) return;
  484. X              mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
  485. X              clrtoeol();
  486. X
  487. X--- 426,440 -----
  488. X  #endif OGOD
  489. X              refresh();
  490. X              nvynum = get_number();
  491. X+ #ifdef TRADE
  492. X+             if (ntn[country].nvy[nvynum].armynum==TRADED) {
  493. X+                 mvaddstr(23,0,"SORRY - THAT NAVY IS UP FOR TRADE");
  494. X+                 refresh();
  495. X+                 getch();
  496. X+                 if (isgod==TRUE) country=0;
  497. X+                 return;
  498. X+             }
  499. X+ #endif TRADE
  500. X              if((nvynum<0)||(nvynum>MAXNAVY)) return;
  501. X              mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
  502. X                clrtoeol();
  503. X***************
  504. X*** 413,418
  505. X              nvynum = get_number();
  506. X              if((nvynum<0)||(nvynum>MAXNAVY)) return;
  507. X              mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
  508. X              clrtoeol();
  509. X              refresh();
  510. X              switch(getch()){
  511. X
  512. X--- 437,445 -----
  513. X  #endif TRADE
  514. X              if((nvynum<0)||(nvynum>MAXNAVY)) return;
  515. X              mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
  516. X+               clrtoeol();
  517. X+ #ifdef OGOD
  518. X+             if(isgod==TRUE) mvaddstr(19,0,"4) ADJUST SHIPS, 5) LOCATION, 6) CREW");
  519. X              clrtoeol();
  520. X  #endif OGOD
  521. X              refresh();
  522. X***************
  523. X*** 414,419
  524. X              if((nvynum<0)||(nvynum>MAXNAVY)) return;
  525. X              mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
  526. X              clrtoeol();
  527. X              refresh();
  528. X              switch(getch()){
  529. X              case '1':
  530. X
  531. X--- 441,447 -----
  532. X  #ifdef OGOD
  533. X              if(isgod==TRUE) mvaddstr(19,0,"4) ADJUST SHIPS, 5) LOCATION, 6) CREW");
  534. X              clrtoeol();
  535. X+ #endif OGOD
  536. X              refresh();
  537. X              switch(getch()){
  538. X              case '1':
  539. X***************
  540. X*** 424,429
  541. X                  clrtoeol();
  542. X                  refresh();
  543. X                  nvynum = get_number();
  544. X                  if(nvynum==oldnavy) {
  545. X                      mvprintw(23,0,"SORRY -- SAME NAVY (%d,%d)",nvynum,oldnavy);
  546. X                      refresh();
  547. X
  548. X--- 452,464 -----
  549. X                  clrtoeol();
  550. X                  refresh();
  551. X                  nvynum = get_number();
  552. X+ #ifdef TRADE
  553. X+                 if (ntn[country].nvy[nvynum].armynum==TRADED) {
  554. X+                     mvaddstr(23,0,"SORRY - THAT NAVY IS UP FOR TRADE");
  555. X+                     refresh();
  556. X+                     getch();
  557. X+                 } else
  558. X+ #endif TRADE
  559. X                  if(nvynum==oldnavy) {
  560. X                      mvprintw(23,0,"SORRY -- SAME NAVY (%d,%d)",nvynum,oldnavy);
  561. X                      refresh();
  562. X***************
  563. X*** 505,510
  564. X                  NMER=0;
  565. X                  NADJSHP;
  566. X                  break;
  567. X              default:
  568. X                  mvaddstr(21,0,"ERROR : HIT ANY CHAR TO CONTINUE");
  569. X                  clrtoeol();
  570. X
  571. X--- 540,589 -----
  572. X                  NMER=0;
  573. X                  NADJSHP;
  574. X                  break;
  575. X+             case '4':
  576. X+                 if (isgod==TRUE) {
  577. X+                     /* ADJUST SHIPS */
  578. X+                     mvaddstr(21,0,"HOW MANY WAR SHIPS: ");
  579. X+                     refresh();
  580. X+                     wships = get_number();
  581. X+                     NWAR = wships;
  582. X+                     mvaddstr(22,0,"HOW MANY MERCHANT SHIPS: ");
  583. X+                     refresh();
  584. X+                     mships = get_number();
  585. X+                     NMER = mships;
  586. X+                     NADJSHP;
  587. X+                 }
  588. X+                 break;
  589. X+ #ifdef OGOD
  590. X+             case '5':
  591. X+                 if (isgod==TRUE) {
  592. X+                     /*X LOCATION*/
  593. X+                     mvaddstr(21,0,"WHAT IS THE NEW X LOC: ");
  594. X+                     refresh();
  595. X+                     wships = get_number();
  596. X+                     if (wships>=0 && wships<MAPX)
  597. X+                         NXLOC=wships;
  598. X+                     /*Y LOCATION*/
  599. X+                     mvaddstr(22,0,"WHAT IS THE NEW Y LOC: ");
  600. X+                     refresh();
  601. X+                     wships = get_number();
  602. X+                     if (wships>=0 && wships<MAPY)
  603. X+                         NYLOC=wships;
  604. X+                     NADJLOC;
  605. X+                 }
  606. X+                 break;
  607. X+             case '6':
  608. X+                 if (isgod==TRUE) {
  609. X+                     /* ADJUST CREWSIZE */
  610. X+                     mvaddstr(21,0,"WHAT VALUE FOR CREW PER SHIP: ");
  611. X+                     refresh();
  612. X+                     wships = get_number();
  613. X+                     if (wships>=0 && wships<=SHIPCREW)
  614. X+                         NCREW = wships*(NMER+NWAR);
  615. X+                     NADJCRW;
  616. X+                 }
  617. X+                 break;
  618. X+ #endif OGOD
  619. X              default:
  620. X                  mvaddstr(21,0,"ERROR : HIT ANY CHAR TO CONTINUE");
  621. X                  clrtoeol();
  622. X*** oldcombat.c    Wed Jul 13 09:55:53 1988
  623. X--- combat.c    Wed Jul 13 09:56:14 1988
  624. X***************
  625. X*** 611,617
  626. X  
  627. X      for(x= xsctr-1; x<=xsctr+1; x++)
  628. X      for(y= ysctr-1; y<=ysctr+1; y++) if(ONMAP){
  629. X!         if(tofood(sct[x][y].vegetation,0)==0) continue;
  630. X          if(((sct[x][y].owner == nation)
  631. X             ||(ntn[sct[x][y].owner].dstatus[nation] < NEUTRAL))
  632. X          ||(solds_in_sector( x, y, sct[x][y].owner) == 0)){
  633. X
  634. X--- 611,618 -----
  635. X  
  636. X      for(x= xsctr-1; x<=xsctr+1; x++)
  637. X      for(y= ysctr-1; y<=ysctr+1; y++) if(ONMAP){
  638. X!         if(tofood(sct[x][y].vegetation,
  639. X!             sct[x][y].owner == country ? country : 0)==0) continue;
  640. X          if(((sct[x][y].owner == nation)
  641. X             ||(ntn[sct[x][y].owner].dstatus[nation] < NEUTRAL))
  642. X          ||(solds_in_sector( x, y, sct[x][y].owner) == 0)){
  643. X***************
  644. X*** 653,658
  645. X      int sailor;
  646. X      char tempmsg[15];
  647. X      int aship=0,dship=0;    /*a's and d's total war ships*/
  648. X      int asunk=0,dsunk=0;    /*a's and d's losses for the round*/
  649. X      int amsunk=0,dmsunk=0;  /*a's and d's msunks for the round*/
  650. X      register int done,i,j,k;
  651. X
  652. X--- 654,660 -----
  653. X      int sailor;
  654. X      char tempmsg[15];
  655. X      int aship=0,dship=0;    /*a's and d's total war ships*/
  656. X+     int acrew=0,dcrew=0;    /*a's and d's warship crew*/
  657. X      int asunk=0,dsunk=0;    /*a's and d's losses for the round*/
  658. X      int amsunk=0,dmsunk=0;  /*a's and d's msunks for the round*/
  659. X      int amcapt=0,dmcapt=0;  /*a's and d's mcaptures the the round*/
  660. X***************
  661. X*** 655,660
  662. X      int aship=0,dship=0;    /*a's and d's total war ships*/
  663. X      int asunk=0,dsunk=0;    /*a's and d's losses for the round*/
  664. X      int amsunk=0,dmsunk=0;  /*a's and d's msunks for the round*/
  665. X      register int done,i,j,k;
  666. X  
  667. X      /* determine who is attacker & who is on defenders side?*/
  668. X
  669. X--- 657,664 -----
  670. X      int acrew=0,dcrew=0;    /*a's and d's warship crew*/
  671. X      int asunk=0,dsunk=0;    /*a's and d's losses for the round*/
  672. X      int amsunk=0,dmsunk=0;  /*a's and d's msunks for the round*/
  673. X+     int amcapt=0,dmcapt=0;  /*a's and d's mcaptures the the round*/
  674. X+     int akcrew=0,dkcrew=0;  /*a's and d's crew losses for the round*/
  675. X      register int done,i,j,k;
  676. X  
  677. X      /* determine who is attacker & who is on defenders side?*/
  678. X***************
  679. X*** 676,681
  680. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)){
  681. X          if(side[j]==DFND) {
  682. X              dship+=ntn[owner[j]].nvy[unit[j]].warships;
  683. X          }
  684. X          else if(side[j]==ATKR) {
  685. X              aship+=ntn[owner[j]].nvy[unit[j]].warships;
  686. X
  687. X--- 680,689 -----
  688. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)){
  689. X          if(side[j]==DFND) {
  690. X              dship+=ntn[owner[j]].nvy[unit[j]].warships;
  691. X+             dcrew+=ntn[owner[j]].nvy[unit[j]].crew *
  692. X+                 ntn[owner[j]].nvy[unit[j]].warships /
  693. X+                 (ntn[owner[j]].nvy[unit[j]].warships+
  694. X+                 ntn[owner[j]].nvy[unit[j]].merchant);
  695. X          }
  696. X          else if(side[j]==ATKR) {
  697. X              aship+=ntn[owner[j]].nvy[unit[j]].warships;
  698. X***************
  699. X*** 679,684
  700. X          }
  701. X          else if(side[j]==ATKR) {
  702. X              aship+=ntn[owner[j]].nvy[unit[j]].warships;
  703. X          }
  704. X      }
  705. X  
  706. X
  707. X--- 687,696 -----
  708. X          }
  709. X          else if(side[j]==ATKR) {
  710. X              aship+=ntn[owner[j]].nvy[unit[j]].warships;
  711. X+             acrew+=ntn[owner[j]].nvy[unit[j]].crew *
  712. X+                 ntn[owner[j]].nvy[unit[j]].warships /
  713. X+                 (ntn[owner[j]].nvy[unit[j]].warships+
  714. X+                 ntn[owner[j]].nvy[unit[j]].merchant);
  715. X          }
  716. X      }
  717. X  
  718. X***************
  719. X*** 684,689
  720. X  
  721. X      /*no bonus currently included in this combat*/
  722. X  
  723. X      /*each warship can do damage 40%; once all warships sunk then all*/
  724. X      /*sunk are captured merchant*/
  725. X      sailor=FALSE;
  726. X
  727. X--- 696,705 -----
  728. X  
  729. X      /*no bonus currently included in this combat*/
  730. X  
  731. X+     /*calculate ability of crew*/
  732. X+     acrew = 100*acrew/aship*SHIPCREW;
  733. X+     dcrew = 100*dcrew/dship*SHIPCREW;
  734. X+ 
  735. X      /*each warship can do damage 40%; once all warships sunk then all*/
  736. X      /*sunk are captured merchant*/
  737. X      sailor=FALSE;
  738. X***************
  739. X*** 689,696
  740. X      sailor=FALSE;
  741. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)) if(side[j]==ATKR)
  742. X          if(magic(owner[j],SAILOR)==TRUE) sailor=TRUE;
  743. X!     if(sailor==TRUE) for(i=0;i<aship;i++) if(rand()%10<=5) dsunk++;
  744. X!     else for(i=0;i<aship;i++) if(rand()%10<=3) dsunk++;
  745. X  
  746. X      sailor=FALSE;
  747. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)) if(side[j]==DFND)
  748. X
  749. X--- 705,712 -----
  750. X      sailor=FALSE;
  751. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)) if(side[j]==ATKR)
  752. X          if(magic(owner[j],SAILOR)==TRUE) sailor=TRUE;
  753. X!     if(sailor==TRUE) for(i=0;i<aship;i++) if(acrew*(rand()%100)/100<=50) dsunk++;
  754. X!     else for(i=0;i<aship;i++) if(acrew*(rand()%100)/100<=30) dsunk++;
  755. X  
  756. X      sailor=FALSE;
  757. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)) if(side[j]==DFND)
  758. X***************
  759. X*** 695,702
  760. X      sailor=FALSE;
  761. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)) if(side[j]==DFND)
  762. X          if(magic(owner[j],SAILOR)==TRUE) sailor=TRUE;
  763. X!     if(sailor==TRUE) for(i=0;i<dship;i++) if(rand()%10<=4) asunk++;
  764. X!     else for(i=0;i<dship;i++) if(rand()%10<=3) asunk++;
  765. X  
  766. X  #ifdef HIDELOC
  767. X      fprintf(fnews,"4.\tNaval Battle occurs");
  768. X
  769. X--- 711,718 -----
  770. X      sailor=FALSE;
  771. X      for(j=0;j<MGKNUM;j++) if(owner[j]!=(-1)) if(side[j]==DFND)
  772. X          if(magic(owner[j],SAILOR)==TRUE) sailor=TRUE;
  773. X!     if(sailor==TRUE) for(i=0;i<dship;i++) if(dcrew*(rand()%100)/100<=40) asunk++;
  774. X!     else for(i=0;i<dship;i++) if(dcrew*(rand()%100)/100<=30) asunk++;
  775. X  
  776. X  #ifdef HIDELOC
  777. X      fprintf(fnews,"4.\tNaval Battle occurs");
  778. X***************
  779. X*** 739,744
  780. X      ntn[owner[0]].nvy[unit[0]].xloc,
  781. X      ntn[owner[0]].nvy[unit[0]].yloc,max(0,dsunk-dship));
  782. X  #endif
  783. X  
  784. X      for(i=0;i<MGKNUM;i++) if(owner[i]!=(-1)){
  785. X          if((asunk>0)&&(side[i]==ATKR)){
  786. X
  787. X--- 755,771 -----
  788. X      ntn[owner[0]].nvy[unit[0]].xloc,
  789. X      ntn[owner[0]].nvy[unit[0]].yloc,max(0,dsunk-dship));
  790. X  #endif
  791. X+     /*calculate crew losses:  all on ships sunk plus percentage*/
  792. X+     if (asunk > aship) {
  793. X+         akcrew = asunk * SHIPCREW + SHIPCREW*(asunk-aship)*asunk/(asunk+dsunk);
  794. X+         amsunk = asunk -aship;
  795. X+     } else
  796. X+         akcrew = aship * SHIPCREW;
  797. X+     if (dsunk > dship) {
  798. X+         dkcrew = dsunk * SHIPCREW + SHIPCREW*(dsunk-dship)*dsunk/(dsunk+asunk);
  799. X+         dmsunk = dsunk -dship;
  800. X+     } else
  801. X+         dkcrew = dship * SHIPCREW;
  802. X  
  803. X      /*work warship and crew losses per navy*/
  804. X      for(i=0;i<MGKNUM;i++) if(owner[i]!=(-1)){
  805. X***************
  806. X*** 740,745
  807. X      ntn[owner[0]].nvy[unit[0]].yloc,max(0,dsunk-dship));
  808. X  #endif
  809. X  
  810. X      for(i=0;i<MGKNUM;i++) if(owner[i]!=(-1)){
  811. X          if((asunk>0)&&(side[i]==ATKR)){
  812. X              if(asunk > aship ) {
  813. X
  814. X--- 767,773 -----
  815. X      } else
  816. X          dkcrew = dship * SHIPCREW;
  817. X  
  818. X+     /*work warship and crew losses per navy*/
  819. X      for(i=0;i<MGKNUM;i++) if(owner[i]!=(-1)){
  820. X          if((asunk>0)&&(side[i]==ATKR)){
  821. X              ntn[owner[i]].nvy[unit[i]].crew -= akcrew * ntn[owner[i]].nvy[unit[i]].warships/aship;
  822. X***************
  823. X*** 742,747
  824. X  
  825. X      for(i=0;i<MGKNUM;i++) if(owner[i]!=(-1)){
  826. X          if((asunk>0)&&(side[i]==ATKR)){
  827. X              if(asunk > aship ) {
  828. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  829. X                  amsunk = asunk - aship;
  830. X
  831. X--- 770,776 -----
  832. X      /*work warship and crew losses per navy*/
  833. X      for(i=0;i<MGKNUM;i++) if(owner[i]!=(-1)){
  834. X          if((asunk>0)&&(side[i]==ATKR)){
  835. X+             ntn[owner[i]].nvy[unit[i]].crew -= akcrew * ntn[owner[i]].nvy[unit[i]].warships/aship;
  836. X              if(asunk > aship ) {
  837. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  838. X              } else  {
  839. X***************
  840. X*** 744,750
  841. X          if((asunk>0)&&(side[i]==ATKR)){
  842. X              if(asunk > aship ) {
  843. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  844. X-                 amsunk = asunk - aship;
  845. X              } else  {
  846. X                  ntn[owner[i]].nvy[unit[i]].warships -= asunk * ntn[owner[i]].nvy[unit[i]].warships/aship;
  847. X              }
  848. X
  849. X--- 773,778 -----
  850. X              ntn[owner[i]].nvy[unit[i]].crew -= akcrew * ntn[owner[i]].nvy[unit[i]].warships/aship;
  851. X              if(asunk > aship ) {
  852. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  853. X              } else  {
  854. X                  ntn[owner[i]].nvy[unit[i]].warships -= asunk * ntn[owner[i]].nvy[unit[i]].warships/aship;
  855. X              }
  856. X***************
  857. X*** 750,755
  858. X              }
  859. X          }
  860. X          else if((dsunk>0)&&(side[i]==DFND)){
  861. X              if(dsunk > dship ) {
  862. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  863. X                  dmsunk = dsunk -dship;
  864. X
  865. X--- 778,784 -----
  866. X              }
  867. X          }
  868. X          else if((dsunk>0)&&(side[i]==DFND)){
  869. X+             ntn[owner[i]].nvy[unit[i]].crew -= dkcrew * ntn[owner[i]].nvy[unit[i]].warships/dship;
  870. X              if(dsunk > dship ) {
  871. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  872. X              } else  {
  873. X***************
  874. X*** 752,758
  875. X          else if((dsunk>0)&&(side[i]==DFND)){
  876. X              if(dsunk > dship ) {
  877. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  878. X-                 dmsunk = dsunk -dship;
  879. X              } else  {
  880. X                  ntn[owner[i]].nvy[unit[i]].warships -= dsunk * ntn[owner[i]].nvy[unit[i]].warships / dship;
  881. X              }
  882. X
  883. X--- 781,786 -----
  884. X              ntn[owner[i]].nvy[unit[i]].crew -= dkcrew * ntn[owner[i]].nvy[unit[i]].warships/dship;
  885. X              if(dsunk > dship ) {
  886. X                  ntn[owner[i]].nvy[unit[i]].warships=0;
  887. X              } else  {
  888. X                  ntn[owner[i]].nvy[unit[i]].warships -= dsunk * ntn[owner[i]].nvy[unit[i]].warships / dship;
  889. X              }
  890. X***************
  891. X*** 763,768
  892. X          if((amsunk>0)&&(side[i]==ATKR)){
  893. X              if(amsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
  894. X                  amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  895. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  896. X              } else  {
  897. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  898. X
  899. X--- 791,797 -----
  900. X          if((amsunk>0)&&(side[i]==ATKR)){
  901. X              if(amsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
  902. X                  amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  903. X+                 amcapt += ntn[owner[i]].nvy[unit[i]].merchant;
  904. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  905. X                  ntn[owner[i]].nvy[unit[i]].crew=0;
  906. X              } else  {
  907. X***************
  908. X*** 764,769
  909. X              if(amsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
  910. X                  amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  911. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  912. X              } else  {
  913. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  914. X                  amsunk=0;
  915. X
  916. X--- 793,799 -----
  917. X                  amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  918. X                  amcapt += ntn[owner[i]].nvy[unit[i]].merchant;
  919. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  920. X+                 ntn[owner[i]].nvy[unit[i]].crew=0;
  921. X              } else  {
  922. X                  ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*amsunk;
  923. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  924. X***************
  925. X*** 765,770
  926. X                  amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  927. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  928. X              } else  {
  929. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  930. X                  amsunk=0;
  931. X              }
  932. X
  933. X--- 795,801 -----
  934. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  935. X                  ntn[owner[i]].nvy[unit[i]].crew=0;
  936. X              } else  {
  937. X+                 ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*amsunk;
  938. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  939. X                  amcapt += amsunk;
  940. X                  amsunk=0;
  941. X***************
  942. X*** 766,771
  943. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  944. X              } else  {
  945. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  946. X                  amsunk=0;
  947. X              }
  948. X          }
  949. X
  950. X--- 797,803 -----
  951. X              } else  {
  952. X                  ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*amsunk;
  953. X                  ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
  954. X+                 amcapt += amsunk;
  955. X                  amsunk=0;
  956. X              }
  957. X          }
  958. X***************
  959. X*** 772,777
  960. X          else if((dmsunk>0)&&(side[i]==DFND)){
  961. X              if(dmsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
  962. X                  dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  963. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  964. X              } else  {
  965. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  966. X
  967. X--- 804,810 -----
  968. X          else if((dmsunk>0)&&(side[i]==DFND)){
  969. X              if(dmsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
  970. X                  dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  971. X+                 dmcapt += ntn[owner[i]].nvy[unit[i]].merchant;
  972. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  973. X                  ntn[owner[i]].nvy[unit[i]].crew=0;
  974. X              } else  {
  975. X***************
  976. X*** 773,778
  977. X              if(dmsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
  978. X                  dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  979. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  980. X              } else  {
  981. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  982. X                  dmsunk=0;
  983. X
  984. X--- 806,812 -----
  985. X                  dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  986. X                  dmcapt += ntn[owner[i]].nvy[unit[i]].merchant;
  987. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  988. X+                 ntn[owner[i]].nvy[unit[i]].crew=0;
  989. X              } else  {
  990. X                  ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*dmsunk;
  991. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  992. X***************
  993. X*** 774,779
  994. X                  dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
  995. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  996. X              } else  {
  997. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  998. X                  dmsunk=0;
  999. X              }
  1000. X
  1001. X--- 808,814 -----
  1002. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  1003. X                  ntn[owner[i]].nvy[unit[i]].crew=0;
  1004. X              } else  {
  1005. X+                 ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*dmsunk;
  1006. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  1007. X                  dmcapt += dmsunk;
  1008. X                  dmsunk=0;
  1009. X***************
  1010. X*** 775,780
  1011. X                  ntn[owner[i]].nvy[unit[i]].merchant=0;
  1012. X              } else  {
  1013. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  1014. X                  dmsunk=0;
  1015. X              }
  1016. X          }
  1017. X
  1018. X--- 810,816 -----
  1019. X              } else  {
  1020. X                  ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*dmsunk;
  1021. X                  ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
  1022. X+                 dmcapt += dmsunk;
  1023. X                  dmsunk=0;
  1024. X              }
  1025. X          }
  1026. X***************
  1027. X*** 779,784
  1028. X              }
  1029. X          }
  1030. X      }
  1031. X  
  1032. X      /*will round continue; does one side wish to withdraw*/
  1033. X  
  1034. X
  1035. X--- 815,831 -----
  1036. X              }
  1037. X          }
  1038. X      }
  1039. X+     /*distribute captured ships according to navy sizes*/
  1040. X+     if (asunk >= aship) dmcapt=0;
  1041. X+     if (dsunk >= dship) amcapt=0;
  1042. X+     for (i=0; i<MGKNUM; i++) if (owner[i]!=(-1)){
  1043. X+         if ((dmcapt>0)&&(side[i]==ATKR)){
  1044. X+             ntn[owner[i]].nvy[unit[i]].merchant += dmcapt * ntn[owner[i]].nvy[unit[i]].warships / (aship - asunk);
  1045. X+         }
  1046. X+         if ((amcapt>0)&&(side[i]==DFND)){
  1047. X+             ntn[owner[i]].nvy[unit[i]].merchant += amcapt * ntn[owner[i]].nvy[unit[i]].warships / (dship - dsunk);
  1048. X+         }
  1049. X+     }
  1050. X  
  1051. X      /*will round continue; does one side wish to withdraw*/
  1052. X  
  1053. X***************
  1054. X*** 814,820
  1055. X              }
  1056. X  
  1057. X              fprintf(fpmsg,"%s RESULT: Attackers lose %d ships, Defenders lose %d ships\n",ntn[owner[j]].name, asunk,dsunk);
  1058. X!             fprintf(fpmsg,"%s         Attackers capture %d merchants, Defenders capture %d merchants\n",ntn[owner[j]].name, dmsunk,amsunk);
  1059. X              fprintf(fpmsg,"END\n");
  1060. X              fclose(fpmsg);
  1061. X          }
  1062. X
  1063. X--- 861,867 -----
  1064. X              }
  1065. X  
  1066. X              fprintf(fpmsg,"%s RESULT: Attackers lose %d ships, Defenders lose %d ships\n",ntn[owner[j]].name, asunk,dsunk);
  1067. X!             fprintf(fpmsg,"%s         Attackers capture %d merchants, Defenders capture %d merchants\n",ntn[owner[j]].name, dmcapt,amcapt);
  1068. X              fprintf(fpmsg,"END\n");
  1069. X              fclose(fpmsg);
  1070. X          }
  1071. X*** oldgetopt.c    Wed Jul 13 09:55:58 1988
  1072. X--- getopt.c    Wed Jul 13 09:56:14 1988
  1073. X*** oldmove.c    Wed Jul 13 09:55:58 1988
  1074. X--- move.c    Wed Jul 13 09:56:14 1988
  1075. X*** oldupdate.c    Wed Jul 13 09:55:56 1988
  1076. X--- update.c    Wed Jul 13 09:56:14 1988
  1077. X***************
  1078. X*** 33,39
  1079. X  
  1080. X      /*run each nation in a random order*/
  1081. X      updexecs();
  1082. X! 
  1083. X  #ifdef LZARD
  1084. X      /* run lizard nations */
  1085. X      updlizards();
  1086. X
  1087. X--- 33,41 -----
  1088. X  
  1089. X      /*run each nation in a random order*/
  1090. X      updexecs();
  1091. X! #ifdef TRADE
  1092. X!     uptrade();
  1093. X! #endif
  1094. X  #ifdef LZARD
  1095. X      /* run lizard nations */
  1096. X      updlizards();
  1097. X***************
  1098. X*** 714,720
  1099. X      char command[80];
  1100. X      long dead;
  1101. X  
  1102. X!     fprintf(fnews,"2\tWORLD FOOD SUPPLY & DECLARATIONS OF WAR\n");
  1103. X      for(country=1;country<MAXNTN;country++) if(ntn[country].active!=0){
  1104. X          /*soldiers eat  2*/
  1105. X          ntn[country].tfood-=ntn[country].tmil*2;
  1106. X
  1107. X--- 716,722 -----
  1108. X      char command[80];
  1109. X      long dead;
  1110. X  
  1111. X!     fprintf(fnews,"2\tWORLD ECONOMY & DECLARATIONS OF WAR\n");
  1112. X      for(country=1;country<MAXNTN;country++) if(ntn[country].active!=0){
  1113. X          /*soldiers eat  2*/
  1114. X          ntn[country].tfood-=ntn[country].tmil*2;
  1115. X*** oldcommands.c    Wed Jul 13 09:56:04 1988
  1116. X--- commands.c    Wed Jul 13 09:56:15 1988
  1117. X***************
  1118. X*** 295,300
  1119. X              }
  1120. X  
  1121. X              NCREW += (NWAR+NMER) * mnumber;
  1122. X              if(isgod==TRUE) country=0;
  1123. X              return;
  1124. X          }
  1125. X
  1126. X--- 295,301 -----
  1127. X              }
  1128. X  
  1129. X              NCREW += (NWAR+NMER) * mnumber;
  1130. X+             NADJCRW;
  1131. X              if(isgod==TRUE) country=0;
  1132. X              return;
  1133. X          }
  1134. X*** oldio.c    Wed Jul 13 09:55:56 1988
  1135. X--- io.c    Wed Jul 13 09:56:15 1988
  1136. X***************
  1137. X*** 108,115
  1138. X          abrt();
  1139. X      }
  1140. X      close(fd);
  1141. X-     verifydata( __FILE__, __LINE__ );
  1142. X- 
  1143. X  } /* readdata() */
  1144. X  
  1145. X  #ifdef ADMIN
  1146. X
  1147. X--- 108,113 -----
  1148. X          abrt();
  1149. X      }
  1150. X      close(fd);
  1151. X  } /* readdata() */
  1152. X  
  1153. X  #ifdef ADMIN
  1154. X*** oldnewhelp.c    Wed Jul 13 09:55:59 1988
  1155. X--- newhelp.c    Wed Jul 13 09:56:15 1988
  1156. X***************
  1157. X*** 100,105
  1158. X  #else
  1159. X      fprintf(fp,"s/XORCTAKE/(False)/g\n");
  1160. X  #endif
  1161. X      /* map sectors */
  1162. X      fprintf(fp,"s/ZMOUNTAIN/MOUNTAIN (%c)/g\n",MOUNTAIN);
  1163. X      fprintf(fp,"s/ZHILL/HILL (%c)/g\n",HILL);
  1164. X
  1165. X--- 100,115 -----
  1166. X  #else
  1167. X      fprintf(fp,"s/XORCTAKE/(False)/g\n");
  1168. X  #endif
  1169. X+ #ifdef HIDELOC
  1170. X+     fprintf(fp,"s/XHIDELOC/(True) /g\n");
  1171. X+ #else
  1172. X+     fprintf(fp,"s/XHIDELOC/(False)/g\n");
  1173. X+ #endif
  1174. X+ #ifdef TRADE
  1175. X+     fprintf(fp,"s/XTRADE/(True) /g\n");
  1176. X+ #else
  1177. X+     fprintf(fp,"s/XTRADE/(False)/g\n");
  1178. X+ #endif
  1179. X      /* map sectors */
  1180. X      fprintf(fp,"s/ZMOUNTAIN/MOUNTAIN (%c)/g\n",MOUNTAIN);
  1181. X      fprintf(fp,"s/ZHILL/HILL (%c)/g\n",HILL);
  1182. X***************
  1183. X*** 143,148
  1184. X      fprintf(fp,"s/XFORTCOST/%ld/g\n",FORTCOST);
  1185. X      fprintf(fp,"s/XWARSHPCOST/%ld/g\n",WARSHPCOST);
  1186. X      fprintf(fp,"s/XMERSHPCOST/%ld/g\n",MERSHPCOST);
  1187. X      fprintf(fp,"s/XSHIPHOLD/%d/g\n",SHIPHOLD);
  1188. X      fprintf(fp,"s/XCITYLIMIT/%d/g\n",CITYLIMIT);
  1189. X      fprintf(fp,"s/XMILRATIO/%d/g\n",MILRATIO);
  1190. X
  1191. X--- 153,159 -----
  1192. X      fprintf(fp,"s/XFORTCOST/%ld/g\n",FORTCOST);
  1193. X      fprintf(fp,"s/XWARSHPCOST/%ld/g\n",WARSHPCOST);
  1194. X      fprintf(fp,"s/XMERSHPCOST/%ld/g\n",MERSHPCOST);
  1195. X+     fprintf(fp,"s/XSHIPCREW/%ld/g\n",SHIPCREW);
  1196. X      fprintf(fp,"s/XSHIPHOLD/%d/g\n",SHIPHOLD);
  1197. X      fprintf(fp,"s/XCITYLIMIT/%d/g\n",CITYLIMIT);
  1198. X      fprintf(fp,"s/XMILRATIO/%d/g\n",MILRATIO);
  1199. X*** olddata.c    Wed Jul 13 09:55:59 1988
  1200. X--- data.c    Wed Jul 13 09:56:15 1988
  1201. X***************
  1202. X*** 43,49
  1203. X  "trader", "tyrant", "demon", "dragon", "shadow"};
  1204. X  char *races[]= { "GOD","ORC","ELF","DWARF","LIZARD",
  1205. X  "HUMAN","PIRATE","BARBARIAN","NOMAD","UNKNOWN"};
  1206. X! char *diploname[]= { "UNMET", "CONFEDERACY", "ALLIED", "FRIENDLY",
  1207. X  "NEUTRAL", "HOSTILE", "WAR", "JIHAD"};
  1208. X  char *soldname[]= { "","MARCH","SCOUT","ATTACK","DEFEND","GARRISON"};
  1209. X  
  1210. X
  1211. X--- 43,49 -----
  1212. X  "trader", "tyrant", "demon", "dragon", "shadow"};
  1213. X  char *races[]= { "GOD","ORC","ELF","DWARF","LIZARD",
  1214. X  "HUMAN","PIRATE","BARBARIAN","NOMAD","UNKNOWN"};
  1215. X! char *diploname[]= { "UNMET", "CONFDRCY", "ALLIED", "FRIENDLY",
  1216. X  "NEUTRAL", "HOSTILE", "WAR", "JIHAD"};
  1217. X  char *soldname[]= { "","MARCH","SCOUT","ATTACK","DEFEND","GARRISON","TRADED"};
  1218. X  
  1219. X***************
  1220. X*** 45,51
  1221. X  "HUMAN","PIRATE","BARBARIAN","NOMAD","UNKNOWN"};
  1222. X  char *diploname[]= { "UNMET", "CONFEDERACY", "ALLIED", "FRIENDLY",
  1223. X  "NEUTRAL", "HOSTILE", "WAR", "JIHAD"};
  1224. X! char *soldname[]= { "","MARCH","SCOUT","ATTACK","DEFEND","GARRISON"};
  1225. X  
  1226. X  char *unittype[]= {
  1227. X  "Militia", "Goblin", "Orc", "Infantry", "Sailor", "Marines", "Archer",
  1228. X
  1229. X--- 45,51 -----
  1230. X  "HUMAN","PIRATE","BARBARIAN","NOMAD","UNKNOWN"};
  1231. X  char *diploname[]= { "UNMET", "CONFDRCY", "ALLIED", "FRIENDLY",
  1232. X  "NEUTRAL", "HOSTILE", "WAR", "JIHAD"};
  1233. X! char *soldname[]= { "","MARCH","SCOUT","ATTACK","DEFEND","GARRISON","TRADED"};
  1234. X  
  1235. X  char *unittype[]= {
  1236. X  "Militia", "Goblin", "Orc", "Infantry", "Sailor", "Marines", "Archer",
  1237. X***************
  1238. X*** 81,87
  1239. X  175, 150, 500, 500, 1000
  1240. X  };
  1241. X  
  1242. X- #ifdef ADMIN
  1243. X  int unitattack[]=
  1244. X  { -25, -15,   0,   0,   0,  25,   0,
  1245. X  5,  20,  10,  15,  20,  10,  20,
  1246. X
  1247. X--- 81,86 -----
  1248. X  175, 150, 500, 500, 1000
  1249. X  };
  1250. X  
  1251. X  int unitattack[]=
  1252. X  { -25, -15,   0,   0,   0,  25,   0,
  1253. X  5,  20,  10,  15,  20,  10,  20,
  1254. X***************
  1255. X*** 93,99
  1256. X  5, 20, 50, 40, 50
  1257. X  };
  1258. X  #ifdef ADMIN
  1259. X- #endif ADMIN
  1260. X  int unitdefend[]=
  1261. X  {
  1262. X  -25, -15,   0,   0,   0,  25,  10,
  1263. X
  1264. X--- 92,97 -----
  1265. X  5, 20, 50, 40, 50
  1266. X  };
  1267. X  #ifdef ADMIN
  1268. X  int unitdefend[]=
  1269. X  {
  1270. X  -25, -15,   0,   0,   0,  25,  10,
  1271. X***************
  1272. X*** 105,112
  1273. X  0, 10, 0, 15, 15,
  1274. X  5, 20, 50, 40, 50
  1275. X  };
  1276. X- #ifdef ADMIN
  1277. X- #endif ADMIN
  1278. X  /*ten times the move rate of a unit*/
  1279. X  int unitmove[]=
  1280. X  {
  1281. X
  1282. X--- 103,108 -----
  1283. X  0, 10, 0, 15, 15,
  1284. X  5, 20, 50, 40, 50
  1285. X  };
  1286. X  /*ten times the move rate of a unit*/
  1287. X  int unitmove[]=
  1288. X  {
  1289. X***************
  1290. X*** 165,170
  1291. X  char    *helpfile = "help";
  1292. X  char    *newsfile = "news";
  1293. X  char    *isonfile = "lock";
  1294. X  
  1295. X  char    *pwrname[] = {
  1296. X  "WARRIOR", "CAPTAIN", "WARLORD", "ARCHER", "CAVALRY", "SAPPER",
  1297. X
  1298. X--- 161,169 -----
  1299. X  char    *helpfile = "help";
  1300. X  char    *newsfile = "news";
  1301. X  char    *isonfile = "lock";
  1302. X+ #ifdef TRADE
  1303. X+ char    *tradefile = "commerce";
  1304. X+ #endif TRADE
  1305. X  
  1306. X  char    *pwrname[] = {
  1307. X  "WARRIOR", "CAPTAIN", "WARLORD", "ARCHER", "CAVALRY", "SAPPER",
  1308. X***************
  1309. X*** 174,180
  1310. X  "BREEDER", "URBAN", "STEEL", "NINJA", "SAILOR", "DEMOCRACY", "ROADS",
  1311. X  /* MAGICAL SKILLS */
  1312. X  "THE_VOID", "KNOWALL", "DESTROYER", "VAMPIRE",
  1313. X! "SUMMON", "SUGGEST", "WYZARD", "SORCERER"
  1314. X  };
  1315. X  
  1316. X  long    powers[] = {
  1317. X
  1318. X--- 173,179 -----
  1319. X  "BREEDER", "URBAN", "STEEL", "NINJA", "SAILOR", "DEMOCRACY", "ROADS",
  1320. X  /* MAGICAL SKILLS */
  1321. X  "THE_VOID", "KNOWALL", "DESTROYER", "VAMPIRE",
  1322. X! "SUMMON", "WYZARD", "SORCERER", "ERROR"
  1323. X  };
  1324. X  
  1325. X  long    powers[] = {
  1326. X*** oldmagic.c    Wed Jul 13 09:55:57 1988
  1327. X--- magic.c    Wed Jul 13 09:56:16 1988
  1328. X***************
  1329. X*** 144,151
  1330. X          ntn[country].powers|=BREEDER;
  1331. X          return(BREEDER);
  1332. X      }
  1333. X!     else if(ntn[country].active >= 2) return(0L);    /*npc nation*/
  1334. X!     else if((newpower==NINJA)
  1335. X      ||(newpower==SLAVER)
  1336. X      ||(newpower==SAILOR)
  1337. X      ||(newpower==DEMOCRACY)
  1338. X
  1339. X--- 144,152 -----
  1340. X          ntn[country].powers|=BREEDER;
  1341. X          return(BREEDER);
  1342. X      }
  1343. X!     else if(ntn[country].active >= 2) {
  1344. X!         return(0L);    /* remaining powers only for pc's */
  1345. X!     } else if((newpower==NINJA)
  1346. X      ||(newpower==SLAVER)
  1347. X      ||(newpower==SAILOR)
  1348. X      ||(newpower==DEMOCRACY)
  1349. X***************
  1350. X*** 150,158
  1351. X      ||(newpower==SAILOR)
  1352. X      ||(newpower==DEMOCRACY)
  1353. X      ||(newpower==ROADS)
  1354. X-     ||(newpower==SUMMON)
  1355. X-     ||(newpower==WYZARD)
  1356. X-     ||(newpower==SORCERER)
  1357. X      ||(newpower==SAPPER)
  1358. X      ||(newpower==ARMOR)
  1359. X      ||(newpower==AVIAN)){    /* these powers are only for pc's */
  1360. X
  1361. X--- 151,156 -----
  1362. X      ||(newpower==SAILOR)
  1363. X      ||(newpower==DEMOCRACY)
  1364. X      ||(newpower==ROADS)
  1365. X      ||(newpower==SAPPER)
  1366. X      ||(newpower==ARMOR)
  1367. X      ||(newpower==AVIAN)){    
  1368. X***************
  1369. X*** 155,161
  1370. X      ||(newpower==SORCERER)
  1371. X      ||(newpower==SAPPER)
  1372. X      ||(newpower==ARMOR)
  1373. X!     ||(newpower==AVIAN)){    /* these powers are only for pc's */
  1374. X          if(magic(country,newpower)==TRUE) return(0L);
  1375. X          ntn[country].powers|=newpower;
  1376. X          return(newpower);
  1377. X
  1378. X--- 153,159 -----
  1379. X      ||(newpower==ROADS)
  1380. X      ||(newpower==SAPPER)
  1381. X      ||(newpower==ARMOR)
  1382. X!     ||(newpower==AVIAN)){    
  1383. X          if(magic(country,newpower)==TRUE) return(0L);
  1384. X          ntn[country].powers|=newpower;
  1385. X          return(newpower);
  1386. X***************
  1387. X*** 160,166
  1388. X          ntn[country].powers|=newpower;
  1389. X          return(newpower);
  1390. X      }
  1391. X!     else return(0L);
  1392. X  }
  1393. X  #ifdef CONQUER
  1394. X  /*form to interactively get a magic power*/
  1395. X
  1396. X--- 158,175 -----
  1397. X          ntn[country].powers|=newpower;
  1398. X          return(newpower);
  1399. X      }
  1400. X!     else if((newpower==SUMMON)||(newpower==WYZARD)||(newpower==SORCERER)){
  1401. X!         if(magic(country,SUMMON)!=TRUE) {
  1402. X!             ntn[country].powers|=SUMMON;
  1403. X!             return(SUMMON);
  1404. X!         } else if(magic(country,WYZARD)!=TRUE) {
  1405. X!             ntn[country].powers|=WYZARD;
  1406. X!             return(WYZARD);
  1407. X!         } else if(magic(country,SORCERER)!=TRUE) {
  1408. X!             ntn[country].powers|=SORCERER;
  1409. X!             return(SORCERER);
  1410. X!         } else return(0L);
  1411. X!     } else return(0L);
  1412. X  }
  1413. X  #ifdef CONQUER
  1414. X  /*form to interactively get a magic power*/
  1415. X***************
  1416. X*** 599,605
  1417. X  orctake(count)
  1418. X  int *count;
  1419. X  {
  1420. X!     int chance=0;
  1421. X      if((*count)>20) {
  1422. X          (*count)=2;
  1423. X          clear();
  1424. X
  1425. X--- 608,614 -----
  1426. X  orctake(count)
  1427. X  int *count;
  1428. X  {
  1429. X!     int chance=0,done=TRUE,i;
  1430. X      if((*count)>20) {
  1431. X          (*count)=2;
  1432. X          clear();
  1433. X***************
  1434. X*** 604,611
  1435. X          (*count)=2;
  1436. X          clear();
  1437. X      }
  1438. X!     if(magic((*count)ry,MA_MONST)==TRUE) {
  1439. X!     mvaddstr((*count)++,0,"  You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1440. X      chance=10;
  1441. X      } else if(magic((*count)ry,AV_MONST)==TRUE) {
  1442. X      mvaddstr((*count)++,0,"  You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1443. X
  1444. X--- 613,620 -----
  1445. X          (*count)=2;
  1446. X          clear();
  1447. X      }
  1448. X!     if(magic(country,MA_MONST)==TRUE) {
  1449. X!     mvprintw((*count)++,0,"  You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1450. X      chance=10;
  1451. X      } else if(magic(country,AV_MONST)==TRUE) {
  1452. X      mvprintw((*count)++,0,"  You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1453. X***************
  1454. X*** 607,614
  1455. X      if(magic((*count)ry,MA_MONST)==TRUE) {
  1456. X      mvaddstr((*count)++,0,"  You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1457. X      chance=10;
  1458. X!     } else if(magic((*count)ry,AV_MONST)==TRUE) {
  1459. X!     mvaddstr((*count)++,0,"  You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1460. X      chance=6;
  1461. X      } else if(magic((*count)ry,MI_MONST)==TRUE){
  1462. X      mvaddstr((*count)++,0,"  You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
  1463. X
  1464. X--- 616,623 -----
  1465. X      if(magic(country,MA_MONST)==TRUE) {
  1466. X      mvprintw((*count)++,0,"  You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1467. X      chance=10;
  1468. X!     } else if(magic(country,AV_MONST)==TRUE) {
  1469. X!     mvprintw((*count)++,0,"  You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1470. X      chance=6;
  1471. X      } else if(magic(country,MI_MONST)==TRUE){
  1472. X      mvprintw((*count)++,0,"  You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
  1473. X***************
  1474. X*** 610,617
  1475. X      } else if(magic((*count)ry,AV_MONST)==TRUE) {
  1476. X      mvaddstr((*count)++,0,"  You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1477. X      chance=6;
  1478. X!     } else if(magic((*count)ry,MI_MONST)==TRUE){
  1479. X!     mvaddstr((*count)++,0,"  You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
  1480. X      chance=3;
  1481. X      }
  1482. X      if(chance==0) return(1);
  1483. X
  1484. X--- 619,626 -----
  1485. X      } else if(magic(country,AV_MONST)==TRUE) {
  1486. X      mvprintw((*count)++,0,"  You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
  1487. X      chance=6;
  1488. X!     } else if(magic(country,MI_MONST)==TRUE){
  1489. X!     mvprintw((*count)++,0,"  You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
  1490. X      chance=3;
  1491. X      }
  1492. X      if(chance==0) return(TRUE);
  1493. X***************
  1494. X*** 614,620
  1495. X      mvaddstr((*count)++,0,"  You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
  1496. X      chance=3;
  1497. X      }
  1498. X!     if(chance==0) return(1);
  1499. X  
  1500. X      mvprintw((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
  1501. X      refresh();
  1502. X
  1503. X--- 623,629 -----
  1504. X      mvprintw((*count)++,0,"  You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
  1505. X      chance=3;
  1506. X      }
  1507. X!     if(chance==0) return(TRUE);
  1508. X  
  1509. X      mvaddstr((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
  1510. X      refresh();
  1511. X***************
  1512. X*** 616,622
  1513. X      }
  1514. X      if(chance==0) return(1);
  1515. X  
  1516. X!     mvprintw((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
  1517. X      refresh();
  1518. X      if(getch()=='y'){
  1519. X          done=FALSE;
  1520. X
  1521. X--- 625,631 -----
  1522. X      }
  1523. X      if(chance==0) return(TRUE);
  1524. X  
  1525. X!     mvaddstr((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
  1526. X      refresh();
  1527. X      if(getch()=='y'){
  1528. X          done=FALSE;
  1529. X***************
  1530. X*** 624,630
  1531. X          refresh();
  1532. X          i=get_number();
  1533. X          if(ntn[i].race==ORC){
  1534. X!             ntn[(*count)ry].jewels-=TAKEPRICE;
  1535. X              if((i=takeover(chance,i))==1)
  1536. X              mvprintw((*count)++,0," Successful: %d",i);
  1537. X          }
  1538. X
  1539. X--- 633,639 -----
  1540. X          refresh();
  1541. X          i=get_number();
  1542. X          if(ntn[i].race==ORC){
  1543. X!             ntn[country].jewels-=TAKEPRICE;
  1544. X              if((i=takeover(chance,i))==1)
  1545. X              mvprintw((*count)++,0," Successful: %d",i);
  1546. X          }
  1547. X
  1548. X
  1549. END_OF_FILE
  1550. if test 41742 -ne `wc -c <'patches02'`; then
  1551.     echo shar: \"'patches02'\" unpacked with wrong size!
  1552. fi
  1553. # end of 'patches02'
  1554. fi
  1555. echo shar: End of shell archive.
  1556. exit 0
  1557.