home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume4 / conquer3 / patch3 / patches03 next >
Text File  |  1988-07-19  |  32KB  |  884 lines

  1. *** oldnewlogin.c    Wed Jul 13 09:55:53 1988
  2. --- newlogin.c    Wed Jul 13 09:56:16 1988
  3. ***************
  4. *** 223,229
  5.               }
  6.           }
  7.   
  8. !         ntn[country].mark = toupper(*ntn[country].name);
  9.           printf("\ntesting first letter of name (%c) for nation mark...",ntn[country].mark);
  10.           valid=TRUE;
  11.           while(valid==TRUE) {
  12.  
  13. --- 223,231 -----
  14.               }
  15.           }
  16.   
  17. !         ntn[country].mark= (*ntn[country].name);
  18. !         if (islower(ntn[country].mark)!=FALSE)
  19. !           ntn[country].mark= toupper(ntn[country].mark);
  20.           printf("\ntesting first letter of name (%c) for nation mark...",ntn[country].mark);
  21.           valid=TRUE;
  22.           while(valid==TRUE) {
  23. ***************
  24. *** 252,257
  25.                   printf("\n'*' is invalid character");
  26.                   valid=TRUE;
  27.               }
  28.               if(valid==TRUE){
  29.                   printf("\nplease reenter new national mark for maps:");
  30.                   printf("\n (this can be any uppercase character)");
  31.  
  32. --- 254,263 -----
  33.                   printf("\n'*' is invalid character");
  34.                   valid=TRUE;
  35.               }
  36. +             if(valid==FALSE) if(!isupper(ntn[country].mark)) {
  37. +                 printf("\nNot an uppercase character");
  38. +                 valid=TRUE;
  39. +             }
  40.               if(valid==TRUE){
  41.                   printf("\nplease reenter new national mark for maps:");
  42.                   printf("\n (this can be any uppercase character)");
  43. ***************
  44. *** 977,982
  45.           return(2);
  46.       case 9:
  47.           printf("\ndragons have the magical MAJOR MONSTER power automatically");
  48.           ntn[country].powers|=AV_MONST;
  49.           x=AV_MONST;
  50.           CHGMGK;
  51.  
  52. --- 983,991 -----
  53.           return(2);
  54.       case 9:
  55.           printf("\ndragons have the magical MAJOR MONSTER power automatically");
  56. +         ntn[country].powers|=MI_MONST;
  57. +         x=MI_MONST;
  58. +         CHGMGK;
  59.           ntn[country].powers|=AV_MONST;
  60.           x=AV_MONST;
  61.           CHGMGK;
  62. *** olddisplay.c    Wed Jul 13 09:55:53 1988
  63. --- display.c    Wed Jul 13 09:56:16 1988
  64. *** oldmain.c    Wed Jul 13 09:56:05 1988
  65. --- main.c    Wed Jul 13 09:56:16 1988
  66. ***************
  67. *** 207,212
  68.               exit(FAIL);
  69.           }
  70.           execute();
  71.           if(ntn[country].capx>15) {
  72.               xcurs=15;
  73.               xoffset= (ntn[country].capx-15);
  74.  
  75. --- 207,215 -----
  76.               exit(FAIL);
  77.           }
  78.           execute();
  79. + #ifdef TRADE
  80. +         uptrade();
  81. + #endif TRADE
  82.           if(ntn[country].capx>15) {
  83.               xcurs=15;
  84.               xoffset= (ntn[country].capx-15);
  85. ***************
  86. *** 469,474
  87.           diploscrn();
  88.           redraw=TRUE;
  89.           break;
  90.       case '9':
  91.       case 'u':    /*move north-east*/
  92.           pager=0;
  93.  
  94. --- 472,483 -----
  95.           diploscrn();
  96.           redraw=TRUE;
  97.           break;
  98. + #ifdef TRADE
  99. +     case 'T':    /*go to commerce section*/
  100. +         trade();
  101. +         redraw=TRUE;
  102. +         break;
  103. + #endif TRADE
  104.       case '9':
  105.       case 'u':    /*move north-east*/
  106.           pager=0;
  107. ***************
  108. *** 673,679
  109.               found=1;
  110.       }
  111.   
  112. !     if(nfound<4+(pager*5)) for(nvynum=0;nvynum<MAXNAVY;nvynum++){
  113.           if(((NWAR+NMER)!=0)&&(NXLOC==XREAL)&&(NYLOC==YREAL)) {
  114.               if((nfound>=pager*5)&&(nfound<=4+(pager*5))) {
  115.                   /*print a navy*/
  116.  
  117. --- 682,688 -----
  118.               found=1;
  119.       }
  120.   
  121. !     if(nfound<=4+(pager*5)) for(nvynum=0;nvynum<MAXNAVY;nvynum++){
  122.           if(((NWAR+NMER)!=0)&&(NXLOC==XREAL)&&(NYLOC==YREAL)) {
  123.               if((nfound>=pager*5)&&(nfound<=4+(pager*5))) {
  124.                   /*print a navy*/
  125. *** oldnpc.c    Wed Jul 13 09:56:05 1988
  126. --- npc.c    Wed Jul 13 09:56:16 1988
  127. ***************
  128. *** 730,737
  129.           if(ntn[country].jewels > getmgkcost(M_MIL,country)) {
  130.               ntn[country].jewels-=getmgkcost(M_MIL,country);
  131.               if((zz=getmagic(M_MIL))!=0){
  132. !                 fprintf(fnews,"1.\tnation %s gets combat power number %d\n",ntn[country].name,zz);
  133. !                 printf("\tnation %s gets combat power number %d\n",ntn[country].name,zz);
  134.                   exenewmgk(zz);
  135.               } else if((zz=getmagic(M_MIL))!=0){
  136.                   fprintf(fnews,"1.\tnation %s gets combat power number %d\n",ntn[country].name,zz);
  137.  
  138. --- 730,737 -----
  139.           if(ntn[country].jewels > getmgkcost(M_MIL,country)) {
  140.               ntn[country].jewels-=getmgkcost(M_MIL,country);
  141.               if((zz=getmagic(M_MIL))!=0){
  142. !                 fprintf(fnews,"1.\tnation %s gets combat power number %ld\n",ntn[country].name,zz);
  143. !                 printf("\tnation %s gets combat power number %ld\n",ntn[country].name,zz);
  144.                   exenewmgk(zz);
  145.               } else if((zz=getmagic(M_MIL))!=0){
  146.                   fprintf(fnews,"1.\tnation %s gets combat power number %ld\n",ntn[country].name,zz);
  147. ***************
  148. *** 734,741
  149.                   printf("\tnation %s gets combat power number %d\n",ntn[country].name,zz);
  150.                   exenewmgk(zz);
  151.               } else if((zz=getmagic(M_MIL))!=0){
  152. !                 fprintf(fnews,"1.\tnation %s gets combat power number %d\n",ntn[country].name,zz);
  153. !                 printf("\tnation %s gets combat power number %d\n",ntn[country].name,zz);
  154.                   exenewmgk(zz);
  155.               }
  156.               else    ntn[country].jewels+=getmgkcost(M_MIL,country);
  157.  
  158. --- 734,741 -----
  159.                   printf("\tnation %s gets combat power number %ld\n",ntn[country].name,zz);
  160.                   exenewmgk(zz);
  161.               } else if((zz=getmagic(M_MIL))!=0){
  162. !                 fprintf(fnews,"1.\tnation %s gets combat power number %ld\n",ntn[country].name,zz);
  163. !                 printf("\tnation %s gets combat power number %ld\n",ntn[country].name,zz);
  164.                   exenewmgk(zz);
  165.               }
  166.               else    ntn[country].jewels+=getmgkcost(M_MIL,country);
  167. ***************
  168. *** 744,751
  169.           if(ntn[country].jewels > getmgkcost(M_CIV,country)) {
  170.               ntn[country].jewels-=getmgkcost(M_CIV,country);
  171.               if((zz=getmagic(M_CIV))!=0){
  172. !                 fprintf(fnews,"1.\tnation %s gets civilian power number %d\n",ntn[country].name,zz);
  173. !                 printf("\tnation %s gets civilian power number %d\n",ntn[country].name,zz);
  174.                   exenewmgk(zz);
  175.               }
  176.               else if((zz=getmagic(M_CIV))!=0){
  177.  
  178. --- 744,751 -----
  179.           if(ntn[country].jewels > getmgkcost(M_CIV,country)) {
  180.               ntn[country].jewels-=getmgkcost(M_CIV,country);
  181.               if((zz=getmagic(M_CIV))!=0){
  182. !                 fprintf(fnews,"1.\tnation %s gets civilian power number %ld\n",ntn[country].name,zz);
  183. !                 printf("\tnation %s gets civilian power number %ld\n",ntn[country].name,zz);
  184.                   exenewmgk(zz);
  185.               }
  186.               else if((zz=getmagic(M_CIV))!=0){
  187. ***************
  188. *** 749,756
  189.                   exenewmgk(zz);
  190.               }
  191.               else if((zz=getmagic(M_CIV))!=0){
  192. !                 fprintf(fnews,"1.\tnation %s gets civilian power number %d\n",ntn[country].name,zz);
  193. !                 printf("\tnation %s gets civilian power number %d\n",ntn[country].name,zz);
  194.                   exenewmgk(zz);
  195.               }
  196.               else    ntn[country].jewels+=getmgkcost(M_CIV,country);
  197.  
  198. --- 749,756 -----
  199.                   exenewmgk(zz);
  200.               }
  201.               else if((zz=getmagic(M_CIV))!=0){
  202. !                 fprintf(fnews,"1.\tnation %s gets civilian power number %ld\n",ntn[country].name,zz);
  203. !                 printf("\tnation %s gets civilian power number %ld\n",ntn[country].name,zz);
  204.                   exenewmgk(zz);
  205.               }
  206.               else    ntn[country].jewels+=getmgkcost(M_CIV,country);
  207. ***************
  208. *** 796,802
  209.           for(y=0;y<MAPY;y++) if(ONMAP)
  210.               attr[x][y]=1;
  211.       for(y=ntn[country].capy+NPCTOOFAR;y<MAPY;y++)
  212. !         for(x=0;x<MAPY;x++) if(ONMAP)
  213.               attr[x][y]=1;
  214.       for(x=0;x<ntn[country].capx-NPCTOOFAR;x++)
  215.           for(y=0;y<MAPY;y++) if(ONMAP)
  216.  
  217. --- 796,802 -----
  218.           for(y=0;y<MAPY;y++) if(ONMAP)
  219.               attr[x][y]=1;
  220.       for(y=ntn[country].capy+NPCTOOFAR;y<MAPY;y++)
  221. !         for(x=0;x<MAPX;x++) if(ONMAP)
  222.               attr[x][y]=1;
  223.       for(x=0;x<ntn[country].capx-NPCTOOFAR;x++)
  224.           for(y=0;y<MAPY;y++) if(ONMAP)
  225. ***************
  226. *** 802,808
  227.           for(y=0;y<MAPY;y++) if(ONMAP)
  228.               attr[x][y]=1;
  229.       for(y=0;y<ntn[country].capy-NPCTOOFAR;y++)
  230. !         for(x=0;x<MAPY;x++) if(ONMAP)
  231.               attr[x][y]=1;
  232.   }
  233.   
  234.  
  235. --- 802,808 -----
  236.           for(y=0;y<MAPY;y++) if(ONMAP)
  237.               attr[x][y]=1;
  238.       for(y=0;y<ntn[country].capy-NPCTOOFAR;y++)
  239. !         for(x=0;x<MAPX;x++) if(ONMAP)
  240.               attr[x][y]=1;
  241.   }
  242.   
  243. ***************
  244. *** 1042,1048
  245.   int line;
  246.   {
  247.       int armynum;
  248. !     for(armynum=0;armynum<MAXARM;armynum++)
  249.           if(ASOLD<0) {
  250.           printf("ERROR: line %d army %d nation %s soldier %d\n",line,armynum,ntn[country].name,ASOLD);
  251.           ASOLD=0;
  252.  
  253. --- 1042,1048 -----
  254.   int line;
  255.   {
  256.       int armynum;
  257. !     for(armynum=0;armynum<MAXARM;armynum++){
  258.           if(ASOLD<0) {
  259.           printf("ERROR: line %d army %d nation %s soldier %d\n",line,armynum,ntn[country].name,ASOLD);
  260.           ASOLD=0;
  261. ***************
  262. *** 1049,1054
  263.           }
  264.           if((AXLOC>MAPX)||(AYLOC>MAPY)){
  265.           printf("CHECK ERROR: line %d army %d nation %s loc %d %d\n",line,armynum,ntn[country].name,AXLOC,AYLOC);
  266.           }
  267.       if(ntn[country].tiron < 0L)
  268.           printf("ERROR: line %d nation %s iron is %ld\n",line,ntn[country].name,ntn[country].tiron);
  269.  
  270. --- 1049,1056 -----
  271.           }
  272.           if((AXLOC>MAPX)||(AYLOC>MAPY)){
  273.           printf("CHECK ERROR: line %d army %d nation %s loc %d %d\n",line,armynum,ntn[country].name,AXLOC,AYLOC);
  274. +         AXLOC = ntn[country].capx;
  275. +         AYLOC = ntn[country].capy;
  276.           }
  277.       }
  278.       if(ntn[country].tiron < 0L){
  279. ***************
  280. *** 1050,1056
  281.           if((AXLOC>MAPX)||(AYLOC>MAPY)){
  282.           printf("CHECK ERROR: line %d army %d nation %s loc %d %d\n",line,armynum,ntn[country].name,AXLOC,AYLOC);
  283.           }
  284. !     if(ntn[country].tiron < 0L)
  285.           printf("ERROR: line %d nation %s iron is %ld\n",line,ntn[country].name,ntn[country].tiron);
  286.       if(ntn[country].tfood < 0L)
  287.           printf("ERROR: line %d nation %s food is %ld\n",line,ntn[country].name,ntn[country].tfood);
  288.  
  289. --- 1052,1059 -----
  290.           AXLOC = ntn[country].capx;
  291.           AYLOC = ntn[country].capy;
  292.           }
  293. !     }
  294. !     if(ntn[country].tiron < 0L){
  295.           printf("ERROR: line %d nation %s iron is %ld\n",line,ntn[country].name,ntn[country].tiron);
  296.           ntn[country].tiron = 0;
  297.       }
  298. ***************
  299. *** 1052,1058
  300.           }
  301.       if(ntn[country].tiron < 0L)
  302.           printf("ERROR: line %d nation %s iron is %ld\n",line,ntn[country].name,ntn[country].tiron);
  303. !     if(ntn[country].tfood < 0L)
  304.           printf("ERROR: line %d nation %s food is %ld\n",line,ntn[country].name,ntn[country].tfood);
  305.       if(ntn[country].jewels < 0L)
  306.           printf("ERROR: line %d nation %s jewels is %ld\n",line,ntn[country].name,ntn[country].jewels);
  307.  
  308. --- 1055,1063 -----
  309.       }
  310.       if(ntn[country].tiron < 0L){
  311.           printf("ERROR: line %d nation %s iron is %ld\n",line,ntn[country].name,ntn[country].tiron);
  312. !         ntn[country].tiron = 0;
  313. !     }
  314. !     if(ntn[country].tfood < 0L){
  315.           printf("ERROR: line %d nation %s food is %ld\n",line,ntn[country].name,ntn[country].tfood);
  316.           ntn[country].tfood = 0;
  317.       }
  318. ***************
  319. *** 1054,1060
  320.           printf("ERROR: line %d nation %s iron is %ld\n",line,ntn[country].name,ntn[country].tiron);
  321.       if(ntn[country].tfood < 0L)
  322.           printf("ERROR: line %d nation %s food is %ld\n",line,ntn[country].name,ntn[country].tfood);
  323. !     if(ntn[country].jewels < 0L)
  324.           printf("ERROR: line %d nation %s jewels is %ld\n",line,ntn[country].name,ntn[country].jewels);
  325.   }
  326.   #endif DEBUG
  327.  
  328. --- 1059,1067 -----
  329.       }
  330.       if(ntn[country].tfood < 0L){
  331.           printf("ERROR: line %d nation %s food is %ld\n",line,ntn[country].name,ntn[country].tfood);
  332. !         ntn[country].tfood = 0;
  333. !     }
  334. !     if(ntn[country].jewels < 0L){
  335.           printf("ERROR: line %d nation %s jewels is %ld\n",line,ntn[country].name,ntn[country].jewels);
  336.           ntn[country].jewels = 0;
  337.       }
  338. ***************
  339. *** 1056,1060
  340.           printf("ERROR: line %d nation %s food is %ld\n",line,ntn[country].name,ntn[country].tfood);
  341.       if(ntn[country].jewels < 0L)
  342.           printf("ERROR: line %d nation %s jewels is %ld\n",line,ntn[country].name,ntn[country].jewels);
  343.   }
  344.   #endif DEBUG
  345.  
  346. --- 1063,1069 -----
  347.       }
  348.       if(ntn[country].jewels < 0L){
  349.           printf("ERROR: line %d nation %s jewels is %ld\n",line,ntn[country].name,ntn[country].jewels);
  350. +         ntn[country].jewels = 0;
  351. +     }
  352.   }
  353.   #endif DEBUG
  354. *** oldheader.h    Wed Jul 13 09:55:58 1988
  355. --- header.h    Wed Jul 13 09:56:16 1988
  356. ***************
  357. *** 49,54
  358.   #define MAXNAVY        16    /*maximum number of fleets per nation*/
  359.   
  360.   /*THE FOLLOWING SHOULD BE COMMENTED OUT IF YOU DO NOT WANT THE FUNCTION*/
  361.   /*#define HIDELOC        /*defined if news is not to report sectors*/
  362.   #define OGOD        /*defined if you wish to enhance god mode*/
  363.               /* this gives features like god passwords... */
  364.  
  365. --- 49,55 -----
  366.   #define MAXNAVY        16    /*maximum number of fleets per nation*/
  367.   
  368.   /*THE FOLLOWING SHOULD BE COMMENTED OUT IF YOU DO NOT WANT THE FUNCTION*/
  369. + #define TRADE        /*defined to allow commerce between nations*/
  370.   /*#define HIDELOC        /*defined if news is not to report sectors*/
  371.   #define OGOD        /*defined if you wish to enhance god mode*/
  372.               /* this gives features like god passwords... */
  373. ***************
  374. *** 59,65
  375.   #define STORMS        /* have storms strike fleets */
  376.   #define VULCANIZE    /* add in volcano eruptions.... */
  377.   #define PVULCAN 20      /* % chance of eruption each round (see above)*/
  378. ! /* #define ORCTAKE      /* define if want orcs to takeover orc NPCS */
  379.   #define TAKEPRICE 500000L /* price for orc takeover (see above) in jewels */
  380.   #define PMOUNT 20       /* % of land that is mountains */
  381.   #define PSTORM 3        /* % chance that a storm will strike a fleet */
  382.  
  383. --- 60,66 -----
  384.   #define STORMS        /* have storms strike fleets */
  385.   #define VULCANIZE    /* add in volcano eruptions.... */
  386.   #define PVULCAN 20      /* % chance of eruption each round (see above)*/
  387. ! #define ORCTAKE      /* define if want orcs to takeover orc NPCS */
  388.   #define TAKEPRICE 500000L /* price for orc takeover (see above) in jewels */
  389.   #define PMOUNT 20       /* % of land that is mountains */
  390.   #define PSTORM 3        /* % chance that a storm will strike a fleet */
  391. ***************
  392. *** 84,90
  393.   #define TAXFOOD        40L
  394.   #define TAXIRON        60L
  395.   #define TAXGOLD        70L
  396. ! /*City and Capitol tax rates based on people only (no multipleier)*/
  397.   #define TAXCAP        1000L
  398.   #define TAXCITY        750L
  399.   
  400.  
  401. --- 85,91 -----
  402.   #define TAXFOOD        40L
  403.   #define TAXIRON        60L
  404.   #define TAXGOLD        70L
  405. ! /*Town and Capitol tax rates based on people only (no multiplyer)*/
  406.   #define TAXCAP        1000L
  407.   #define TAXCITY        750L
  408.   
  409. *** olddata.h    Wed Jul 13 09:56:08 1988
  410. --- data.h    Wed Jul 13 09:56:16 1988
  411. ***************
  412. *** 93,99
  413.   #define    SCOUT        2    /*Scouting--will not engage enemy if possible*/
  414.   #define    ATTACK        3    /*Attack anybody (Hostile+) within 2 sectors*/
  415.   #define    DEFEND        4    /*Defend */
  416. ! #define    GARRISON    5    /*Garrison--for a city or Capitol */
  417.   
  418.   struct s_sector
  419.   {
  420.  
  421. --- 93,100 -----
  422.   #define    SCOUT        2    /*Scouting--will not engage enemy if possible*/
  423.   #define    ATTACK        3    /*Attack anybody (Hostile+) within 2 sectors*/
  424.   #define    DEFEND        4    /*Defend */
  425. ! #define    GARRISON    5    /*Garrison--for a town or Capitol */
  426. ! #define TRADED        6    /*Indicates an army that has been traded*/
  427.   
  428.   struct s_sector
  429.   {
  430. ***************
  431. *** 400,405
  432.   extern    char    *helpfile;
  433.   extern    char    *newsfile;
  434.   extern    char    *isonfile;
  435.   
  436.   #define    abrt() { \
  437.   fprintf(stderr,"\nSerious Error (File %s, Line %d) - Aborting\n",__FILE__,__LINE__); \
  438.  
  439. --- 401,409 -----
  440.   extern    char    *helpfile;
  441.   extern    char    *newsfile;
  442.   extern    char    *isonfile;
  443. + #ifdef TRADE
  444. + extern    char    *tradefile;
  445. + #endif TRADE
  446.   
  447.   #define    abrt() { \
  448.   fprintf(stderr,"\nSerious Error (File %s, Line %d) - Aborting\n",__FILE__,__LINE__); \
  449. ***************
  450. *** 421,426
  451.   extern    void readdata(),redesignate(),redomil(),reduce(),rmessage(),score();
  452.   extern    void see(),showscore(),update(),updmove(),verifydata(),verify_ntn();
  453.   extern    void verify_sct(),wmessage(),writedata(),getdstatus(),exit();
  454.   
  455.   extern    char    *crypt(),*strcpy(),*strncpy(),*strcat(),*strncat();
  456.   
  457.  
  458. --- 425,433 -----
  459.   extern    void readdata(),redesignate(),redomil(),reduce(),rmessage(),score();
  460.   extern    void see(),showscore(),update(),updmove(),verifydata(),verify_ntn();
  461.   extern    void verify_sct(),wmessage(),writedata(),getdstatus(),exit();
  462. + #ifdef TRADE
  463. + extern    void trade(),uptrade();
  464. + #endif TRADE
  465.   
  466.   extern    char    *crypt(),*strcpy(),*strncpy(),*strcat(),*strncat();
  467.   
  468. *** oldnewlogin.h    Wed Jul 13 09:55:59 1988
  469. --- newlogin.h    Wed Jul 13 09:56:17 1988
  470. ***************
  471. *** 63,67
  472.   #define    NLREPRO        1
  473.   #define    NLREPCOST    2
  474.   #define    NLMOVE        3
  475. ! #define    NLDBLCOST    2
  476.   #define    NLMAGIC        2
  477.  
  478. --- 63,67 -----
  479.   #define    NLREPRO        1
  480.   #define    NLREPCOST    2
  481.   #define    NLMOVE        3
  482. ! #define    NLDBLCOST    1
  483.   #define    NLMAGIC        2
  484. *** oldnations    Wed Jul 13 09:55:56 1988
  485. --- nations    Wed Jul 13 09:56:17 1988
  486. ***************
  487. *** 41,47
  488.   #########################################################################
  489.   anorian  elfwizard  E A F 30 40  8  70000 1500 8500 8  2
  490.   bobland  dragon     O B F 20 0   6  12000  1500 8000 10 9
  491. - cordoba  wizard     H C R 10 10  2  30000 1500 8000 8  4
  492.   darboth  balrog     O D R 0  0   7  70000 1500 9500 8  9
  493.   edland   dragon     O E R 20 0   8  12000  1500 8500 10 9
  494.   fung     elfking    E F F 10 40  8  50000 1000 9500 8  2
  495.  
  496. --- 41,46 -----
  497.   #########################################################################
  498.   anorian  elfwizard  E A F 30 40  8  70000 1500 8500 8  2
  499.   bobland  dragon     O B F 20 0   6  12000  1500 8000 10 9
  500.   darboth  balrog     O D R 0  0   7  70000 1500 9500 8  9
  501.   edland   dragon     O E R 20 0   8  12000  1500 8500 10 9
  502.   fung     elfking    E F F 10 40  8  50000 1000 9500 8  2
  503. ***************
  504. *** 47,52
  505.   fung     elfking    E F F 10 40  8  50000 1000 9500 8  2
  506.   gotho    warking    H G R 10 10  9  50000 1000 6150 8  4
  507.   hargo    king       H H R 10 10  9  30000 1500 11000 7 4
  508.   lint     elfwizard  E L F 20 30  8  50000 1500 7900 10 2
  509.   medal    elfpriest  E M R 20 0   6  16000  2000 6500 10 9
  510.   noria    dwarfduke  D N R 10 30  6  50000 1000 10000 8 4
  511.  
  512. --- 46,52 -----
  513.   fung     elfking    E F F 10 40  8  50000 1000 9500 8  2
  514.   gotho    warking    H G R 10 10  9  50000 1000 6150 8  4
  515.   hargo    king       H H R 10 10  9  30000 1500 11000 7 4
  516. + jordoba  wizard     H J R 10 10  2  30000 1500 8000 8  4
  517.   lint     elfwizard  E L F 20 30  8  50000 1500 7900 10 2
  518.   medal    elfpriest  E M R 20 0   6  16000  2000 6500 10 9
  519.   noria    dwarfduke  D N R 10 30  6  50000 1000 10000 8 4
  520. *** oldMakefile    Wed Jul 13 09:55:55 1988
  521. --- Makefile    Wed Jul 13 09:56:17 1988
  522. ***************
  523. *** 24,30
  524.   #    if they do not use the -d option.
  525.   DEFAULT = /c28/smile/game/default
  526.   
  527. ! CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -O
  528.   #    The following CFLAGS should be used if you wish to debug the game
  529.   #CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -DDEBUG -g
  530.   
  531.  
  532. --- 24,30 -----
  533.   #    if they do not use the -d option.
  534.   DEFAULT = /c28/smile/game/default
  535.   
  536. ! #CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -O
  537.   #    The following CFLAGS should be used if you wish to debug the game
  538.   CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -DDEBUG -g
  539.   
  540. ***************
  541. *** 26,32
  542.   
  543.   CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -O
  544.   #    The following CFLAGS should be used if you wish to debug the game
  545. ! #CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -DDEBUG -g
  546.   
  547.   #    this is the name of the user executable
  548.   #    the user executable contains commands for the games players
  549.  
  550. --- 26,32 -----
  551.   
  552.   #CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -O
  553.   #    The following CFLAGS should be used if you wish to debug the game
  554. ! CFLAGS  = -DDEFAULTDIR=\"$(DEFAULT)\" -DDEBUG -g
  555.   
  556.   #    this is the name of the user executable
  557.   #    the user executable contains commands for the games players
  558. ***************
  559. *** 33,39
  560.   GAME = conquer
  561.   #    this is the name of the administrative executable
  562.   #    the administrative executable contains commands for the game super user
  563. ! ADMIN = admin
  564.   
  565.   #    This directory is where the executables will be stored
  566.   EXEDIR = /c28/smile/game/runv
  567.  
  568. --- 33,39 -----
  569.   GAME = conquer
  570.   #    this is the name of the administrative executable
  571.   #    the administrative executable contains commands for the game super user
  572. ! ADMIN = cadmin
  573.   
  574.   #    This directory is where the executables will be stored
  575.   EXEDIR = /c28/smile/game/runv
  576. ***************
  577. *** 48,54
  578.   
  579.   # AFILS are files needed for game updating...
  580.   AFILS = combat.c cexecute.c io.c admin.c makeworld.c  \
  581. ! newlogin.c update.c magic.c npc.c misc.c randevent.c data.c
  582.   AOBJS = combat.o cexecuteA.o ioA.o admin.o makeworld.o  \
  583.   newlogin.o update.o magicA.o npc.o miscA.o randevent.o dataA.o $(GETOPT)
  584.   
  585.  
  586. --- 48,54 -----
  587.   
  588.   # AFILS are files needed for game updating...
  589.   AFILS = combat.c cexecute.c io.c admin.c makeworld.c  \
  590. ! newlogin.c update.c magic.c npc.c misc.c randevent.c data.c trade.c
  591.   AOBJS = combat.o cexecuteA.o ioA.o admin.o makeworld.o  \
  592.   newlogin.o update.o magicA.o npc.o miscA.o randevent.o dataA.o \
  593.   tradeA.o $(GETOPT)
  594. ***************
  595. *** 50,56
  596.   AFILS = combat.c cexecute.c io.c admin.c makeworld.c  \
  597.   newlogin.c update.c magic.c npc.c misc.c randevent.c data.c
  598.   AOBJS = combat.o cexecuteA.o ioA.o admin.o makeworld.o  \
  599. ! newlogin.o update.o magicA.o npc.o miscA.o randevent.o dataA.o $(GETOPT)
  600.   
  601.   # GFILS are files needed to run a normal interactive game
  602.   GFILS = commands.c cexecute.c forms.c io.c main.c move.c \
  603.  
  604. --- 50,57 -----
  605.   AFILS = combat.c cexecute.c io.c admin.c makeworld.c  \
  606.   newlogin.c update.c magic.c npc.c misc.c randevent.c data.c trade.c
  607.   AOBJS = combat.o cexecuteA.o ioA.o admin.o makeworld.o  \
  608. ! newlogin.o update.o magicA.o npc.o miscA.o randevent.o dataA.o \
  609. ! tradeA.o $(GETOPT)
  610.   
  611.   # GFILS are files needed to run a normal interactive game
  612.   GFILS = commands.c cexecute.c forms.c io.c main.c move.c \
  613. ***************
  614. *** 54,60
  615.   
  616.   # GFILS are files needed to run a normal interactive game
  617.   GFILS = commands.c cexecute.c forms.c io.c main.c move.c \
  618. ! magic.c misc.c reports.c data.c display.c extcmds.c
  619.   GOBJS = commands.o cexecute.o forms.o io.o main.o move.o \
  620.   magic.o misc.o reports.o data.o display.o extcmds.o $(GETOPT)
  621.   
  622.  
  623. --- 55,61 -----
  624.   
  625.   # GFILS are files needed to run a normal interactive game
  626.   GFILS = commands.c cexecute.c forms.c io.c main.c move.c \
  627. ! magic.c misc.c reports.c data.c display.c extcmds.c trade.c
  628.   GOBJS = commands.o cexecute.o forms.o io.o main.o move.o \
  629.   magic.o misc.o reports.o data.o display.o extcmds.o trade.o $(GETOPT)
  630.   
  631. ***************
  632. *** 56,62
  633.   GFILS = commands.c cexecute.c forms.c io.c main.c move.c \
  634.   magic.c misc.c reports.c data.c display.c extcmds.c
  635.   GOBJS = commands.o cexecute.o forms.o io.o main.o move.o \
  636. ! magic.o misc.o reports.o data.o display.o extcmds.o $(GETOPT)
  637.   
  638.   HEADERS=header.h data.h newlogin.h
  639.   HELPFILE=help.txt
  640.  
  641. --- 57,63 -----
  642.   GFILS = commands.c cexecute.c forms.c io.c main.c move.c \
  643.   magic.c misc.c reports.c data.c display.c extcmds.c trade.c
  644.   GOBJS = commands.o cexecute.o forms.o io.o main.o move.o \
  645. ! magic.o misc.o reports.o data.o display.o extcmds.o trade.o $(GETOPT)
  646.   
  647.   HEADERS=header.h data.h newlogin.h
  648.   HELPFILE=help.txt
  649. ***************
  650. *** 125,130
  651.       newhelp
  652.       cat $(HELPFILE) | sed -f helpscript > $(HELPOUT)
  653.       $(RM) helpscript
  654.       cp $(HELPOUT) $(DEFAULT)
  655.   
  656.   lint:
  657.  
  658. --- 126,132 -----
  659.       newhelp
  660.       cat $(HELPFILE) | sed -f helpscript > $(HELPOUT)
  661.       $(RM) helpscript
  662. +     -mkdir $(DEFAULT)  2>/dev/null
  663.       cp $(HELPOUT) $(DEFAULT)
  664.   
  665.   lint:
  666. ***************
  667. *** 209,211
  668.       $(CC) $(CFLAGS) -DCONQUER -c forms.c
  669.   commands.o:    data.h header.h commands.c
  670.       $(CC) $(CFLAGS) -DCONQUER -c commands.c
  671.  
  672. --- 211,218 -----
  673.       $(CC) $(CFLAGS) -DCONQUER -c forms.c
  674.   commands.o:    data.h header.h commands.c
  675.       $(CC) $(CFLAGS) -DCONQUER -c commands.c
  676. + trade.o:    data.h header.h trade.h trade.c
  677. +     $(CC) $(CFLAGS) -DCONQUER -c trade.c
  678. + tradeA.o:    data.h header.h trade.h trade.c
  679. +     $(CC) $(CFLAGS) -DADMIN -c trade.c
  680. +     mv trade.o tradeA.o
  681. *** oldhelp.txt    Wed Jul 13 09:55:54 1988
  682. --- help.txt    Wed Jul 13 09:56:17 1988
  683. ***************
  684. *** 11,17
  685.   'b': move south west     'S': diplomacy status       'N': read newspaper
  686.   'J': scroll south        'Q': quit (saves changes)   'W': write message
  687.   'K': scroll north        'M': magic                  'R': read messages
  688. ! 'L': scroll east         'C': construct
  689.   'H': scroll west         'D': draft              'ESC [1-5]': chg status
  690.                        'G': go to next army    'ESC +': combine 2 armies
  691.                        'F': go to next fleet   'ESC -': split army
  692.  
  693. --- 11,17 -----
  694.   'b': move south west     'S': diplomacy status       'N': read newspaper
  695.   'J': scroll south        'Q': quit (saves changes)   'W': write message
  696.   'K': scroll north        'M': magic                  'R': read messages
  697. ! 'L': scroll east         'C': construct              'T': trade
  698.   'H': scroll west         'D': draft              'ESC [1-5]': chg status
  699.                        'G': go to next army    'ESC +': combine 2 armies
  700.                        'F': go to next fleet   'ESC -': split army
  701. ***************
  702. *** 19,34
  703.   END
  704.                       Welcome to Conquer XVERSION
  705.   
  706. ! CONQUER is a multi player computer game designed to run under the UNIX
  707. ! operating system.  In CONQUER,  each player is the leader of a nation,
  708. ! composed of people (humans, orcs, elves, dwarves), resources, and land.
  709. ! Rulers customize their nation at creation by chosing their race and by giving
  710. ! their nation special powers (magic, combat factor, location, speed...)
  711. ! and resources (civilians, troops, iron, gold...).  Play involves building,
  712. ! moving, and controlling armies and navies, diplomacy with other players,
  713. ! and adjusting economic activity, which is primarily geared to the production
  714. ! of gold for your treasury.  Iron is needed, however to build ships & armies,
  715. ! and food is needed to prevent revolts and keep people alive.
  716.   
  717.   Command line format: conquer [-maxhps -nNAT -dDIR]
  718.       -h       print this help text         -n NTN   run as nation NTN
  719.  
  720. --- 19,33 -----
  721.   END
  722.                       Welcome to Conquer XVERSION
  723.   
  724. ! CONQUER is a multi player computer game designed to run under the UNIX OS.
  725. ! In CONQUER,  each player is the leader of a nation, composed of people 
  726. ! (humans, orcs, elves, dwarves), resources, and land.  Rulers customize their 
  727. ! nation at creation by chosing their race and by giving their nation special 
  728. ! powers (magic, combat factor, location, speed...) and resources (civilians, 
  729. ! troops, iron, gold...).  Play involves building, moving, and controlling 
  730. ! armies and navies, diplomacy with other players, and economics, which is 
  731. ! geared to raising of gold for your treasury,  iron for ships & armies, jewels,
  732. ! and food to prevent revolts and keep people alive.
  733.   
  734.   Command line format: conquer [-hs -nNAT -dDIR]
  735.           -h       print this help text
  736. ***************
  737. *** 30,43
  738.   of gold for your treasury.  Iron is needed, however to build ships & armies,
  739.   and food is needed to prevent revolts and keep people alive.
  740.   
  741. ! Command line format: conquer [-maxhps -nNAT -dDIR]
  742. !     -h       print this help text         -n NTN   run as nation NTN
  743. !     -d DIR   run on data in directory DIR    -s       print out scores
  744. ! Command line format: admin [-maxdp]
  745. !     -a       add new player        -m       make a world
  746. !     -p       print a map        -x       execute program
  747. !     -d DIR   run on data in directory DIR
  748. ! It is suggested that each player set up a shell alias for their game & nation
  749.   END
  750.                                THE WORLD
  751.   
  752.  
  753. --- 29,42 -----
  754.   geared to raising of gold for your treasury,  iron for ships & armies, jewels,
  755.   and food to prevent revolts and keep people alive.
  756.   
  757. ! Command line format: conquer [-hs -nNAT -dDIR]
  758. !         -h       print this help text
  759. !         -s       print out scores
  760. !         -n NTN   run as nation NTN
  761. !         -d DIR   run on data in directory DIR
  762. ! Each player should set up a shell alias to run their nation.  The Game 
  763. ! Administrator should read other documentation on using the admin command.
  764.   END
  765.                                THE WORLD
  766.   
  767. ***************
  768. *** 136,141
  769.   'N': newspaper:    Briefs you on world happenings.  Note: News has 4 pages.
  770.   'P': production:   ESTIMATE your nations production statistics
  771.   'S': diplomacy:    Allow you to see and alter your diplomatic status.
  772.   'Q': quit:         Save your move and quit the game.  Note there is no
  773.                   means supported to quit without saving your moves.
  774.   'R': read mail:    Read mail messages
  775.  
  776. --- 135,141 -----
  777.   'N': newspaper:    Briefs you on world happenings.  Note: News has 4 pages.
  778.   'P': production:   ESTIMATE your nations production statistics
  779.   'S': diplomacy:    Allow you to see and alter your diplomatic status.
  780. + 'T': commerce:     Allow you to trade with other nations.
  781.   'Q': quit:         Save your move and quit the game.  Note there is no
  782.                   means supported to quit without saving your moves.
  783.   'R': read mail:    Read mail messages
  784. ***************
  785. *** 315,322
  786.               SHIPS AND SHIP COSTS
  787.   
  788.           crew    build cost    maintain cost    capacity
  789. ! Warship        50    XWARSHPCOST        XSHIPMAINT        0
  790. ! Merchant    50    XMERSHPCOST        XSHIPMAINT        XSHIPCP
  791.   
  792.   Ships will now have crews - which, in addition to being drafted upon
  793.   construction, represent the ships current level of damage and are replaced,
  794.  
  795. --- 315,322 -----
  796.               SHIPS AND SHIP COSTS
  797.   
  798.           crew    build cost    maintain cost    capacity
  799. ! Warship        XSHIPCREW    XWARSHPCOST        XSHIPMAINT        0
  800. ! Merchant    XSHIPCREW    XMERSHPCOST        XSHIPMAINT        XSHIPCP
  801.   
  802.   Ships will now have crews - which, in addition to being drafted upon
  803.   construction, represent the ships current level of damage and are replaced,
  804. ***************
  805. *** 332,337
  806.   10 and all their remaining points points for non harbor coastlands.  Naval 
  807.   combat has not been adequately play tested, and Sailor units dont work.
  808.   END
  809.                                MAGIC POWERS
  810.   Magic powers differentiate your nation from all the other nations in the
  811.   world.  There are three types of powers - truely MAGICAL powers, which
  812.  
  813. --- 332,355 -----
  814.   10 and all their remaining points points for non harbor coastlands.  Naval 
  815.   combat has not been adequately play tested, and Sailor units dont work.
  816.   END
  817. +             COMMERCE AND TRADING
  818. + Trading makes it be possible to exchange items between nations.
  819. + There are seven types of items available for trade:  gold, food, iron,
  820. + jewels, land, soldiers, and ships.  To place an item up for trade,
  821. + the player need only select the sell option on the commerce board.  The
  822. + player will then enter the type and amount of his product followed by the
  823. + type and minimum amount of what he wants in return.  The product will
  824. + remain on the commerce board until it is purchased or removed by the
  825. + owner of the product.  To purchase an item, a player can just select the
  826. + item number to purchase and then enter a bid amount.  You may only trade
  827. + mercenary, seige engine, catapult, (summoned) monster, or elephant units.
  828. + During every update, bids will be resolved and the highest bid for a
  829. + product will receive the product.  There is a 20% administration fee
  830. + for a trade (i.e. 20% of the traded goods on each side disappear)
  831. + END
  832.                                MAGIC POWERS
  833.   Magic powers differentiate your nation from all the other nations in the
  834.   world.  There are three types of powers - truely MAGICAL powers, which
  835. ***************
  836. *** 454,459
  837.   
  838.   THE NEXT PAGE IS THE COMBAT RESULTS TABLE
  839.        basically the attacker wants a high roll and the defender wants low.
  840.   END
  841.               6-1 5-1 4-1 3-1 2-1 3-2 5-4 1-1 4-5 2-3 1-2 1-3 1-4 1-5 1-6
  842.       <--010     20% 40% 50% 60% 70% 80% 90% 100%100%100%110%120%120%130%130%
  843.  
  844. --- 472,481 -----
  845.   
  846.   THE NEXT PAGE IS THE COMBAT RESULTS TABLE
  847.        basically the attacker wants a high roll and the defender wants low.
  848. +          The table is based on a roll between 0 and 200 (it does NOT use true
  849. +          percentages).  The number given is the percent loss, which is modified
  850. +          by the armies attack or defensive bonus.  Retreats are based on the
  851. +          relative losses taken by a given side.
  852.   END
  853.               6-1 5-1 4-1 3-1 2-1 3-2 5-4 1-1 4-5 2-3 1-2 1-3 1-4 1-5 1-6
  854.       <--010     20% 40% 50% 60% 70% 80% 90% 100%100%100%110%120%120%130%130%
  855. ***************
  856. *** 526,532
  857.       Storms        XSTORMS      Volcanos    XVULCANIZE
  858.       Npc Nations     XNPC      PC Automove    XCMOVE
  859.       Random Events    XRANEVENT      Orc Takeovers    XORCTAKE
  860. !     Super God    XOGOD
  861.   END
  862.                       ADDITIONAL OPTIONS
  863.   
  864.  
  865. --- 548,555 -----
  866.       Storms        XSTORMS      Volcanos    XVULCANIZE
  867.       Npc Nations     XNPC      PC Automove    XCMOVE
  868.       Random Events    XRANEVENT      Orc Takeovers    XORCTAKE
  869. !     Super God    XOGOD      Hidden News    XHIDELOC
  870. !     Trading        XTRADE
  871.   END
  872.                       ADDITIONAL OPTIONS
  873.   
  874. *** oldREADME    Wed Jul 13 09:55:50 1988
  875. --- README    Wed Jul 13 09:56:17 1988
  876. *** oldrun    Wed Jul 13 09:56:00 1988
  877. --- run    Wed Jul 13 09:56:17 1988
  878.  
  879.  
  880.