billr@saab.CNA.TEK.COM (Bill Randle) (09/21/89)
Submitted-by: Adam Bryant <adb@cs.bu.edu>
Posting-number: Volume 8, Issue 34
Archive-name: conquer4/Patch6c
Patch-To: conquer4: Volume 6, Issue 83-96
#!/bin/sh
# this is part 3 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file patchV4.6 continued
#
CurArch=3
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
exit 1; fi
( read Scheck
if test "$Scheck" != $CurArch
then echo "Please unpack part $Scheck next!"
exit 1;
else exit 0; fi
) < s2_seq_.tmp || exit 1
sed 's/^X//' << 'SHAR_EOF' >> patchV4.6
X--- move.c Wed Sep 20 21:41:27 1989
X***************
X*** 161,167 ****
X if(hilmode==3) {
X for(i=XREAL-xoffset-1;i<=XREAL-xoffset+1;i++){
X for(j=YREAL-yoffset-1;j<=YREAL-yoffset+1;j++){
X! highlight(i,j);
X see(i,j);
X }
X }
X--- 161,167 ----
X if(hilmode==3) {
X for(i=XREAL-xoffset-1;i<=XREAL-xoffset+1;i++){
X for(j=YREAL-yoffset-1;j<=YREAL-yoffset+1;j++){
X! highlight(i,j,hilmode);
X see(i,j);
X }
X }
X***************
X*** 176,182 ****
X }
X } else for(i=XREAL-xoffset-1;i<=XREAL-xoffset+1;i++){
X for(j=YREAL-yoffset-1;j<=YREAL-yoffset+1;j++){
X! highlight(i,j);
X see(i,j);
X }
X }
X--- 176,182 ----
X }
X } else for(i=XREAL-xoffset-1;i<=XREAL-xoffset+1;i++){
X for(j=YREAL-yoffset-1;j<=YREAL-yoffset+1;j++){
X! highlight(i,j,hilmode);
X see(i,j);
X }
X }
X***************
X*** 407,414 ****
X done=TRUE;
X }
X }
X
X! if( done==FALSE ) {
X standout();
X if(armornvy==ARMY){
X mvprintw(LINES-2,0,"MOVESCREEN: move left: %d",P_AMOVE);
X--- 407,415 ----
X done=TRUE;
X }
X }
X+ }
X
X! if( done==FALSE ) {
X standout();
X if(armornvy==ARMY){
X mvprintw(LINES-2,0,"MOVESCREEN: move left: %d",P_AMOVE);
X***************
X*** 428,440 ****
X for(i=XREAL-1;i<=XREAL+1;i++)
X for(j=YREAL-1;j<=YREAL+1;j++) if(ONMAP(i,j))
X if(!canbeseen((int)i,(int)j)) {
X! highlight(i-xoffset,j-yoffset);
X see(i-xoffset,j-yoffset);
X }
X-
X- }
X- makeside(TRUE);
X }
X move(ycurs,xcurs*2);
X refresh();
X }
X--- 429,439 ----
X for(i=XREAL-1;i<=XREAL+1;i++)
X for(j=YREAL-1;j<=YREAL+1;j++) if(ONMAP(i,j))
X if(!canbeseen((int)i,(int)j)) {
X! highlight(i-xoffset,j-yoffset,hilmode);
X see(i-xoffset,j-yoffset);
X }
X }
X+ makeside(TRUE);
X move(ycurs,xcurs*2);
X refresh();
X }
X***************
X*** 508,514 ****
X } else{
X flee(XREAL,YREAL,0,FALSE);
X }
X! mvprintw(LINES-2,0,"TAKING SECTOR");
X clrtoeol();
X refresh();
X sleep(2);
X--- 507,513 ----
X } else{
X flee(XREAL,YREAL,0,FALSE);
X }
X! mvaddstr(LINES-2,0,"TAKING SECTOR");
X clrtoeol();
X refresh();
X sleep(2);
X***************
X*** 548,554 ****
X return;
X } else {
X /*else navy*/
X! mvprintw(LINES-1,0,"NAVY DONE: ");
X clrtoeol();
X P_NXLOC=XREAL;
X P_NYLOC=YREAL;
X--- 547,553 ----
X return;
X } else {
X /*else navy*/
X! mvaddstr(LINES-1,0,"NAVY DONE: ");
X clrtoeol();
X P_NXLOC=XREAL;
X P_NYLOC=YREAL;
X***************
X*** 570,585 ****
X if (magic(country,SAILOR)==TRUE) mvused/=2;
X if (mvused!=0) mvused= (rand()%mvused);
X P_NPEOP = (unsigned char) (P_NPEOP*(LONGTRIP-mvused)/LONGTRIP);
X! mvprintw(LINES-1,60,"HIT ANY KEY");
X refresh();
X getch();
X }
X whatcansee();
X redraw=DONE;
X! prep(country,FALSE,TRUE);
X makemap();
X armornvy=AORN;
X- makebottom();
X pager=0;
X selector=0;
X }
X--- 569,583 ----
X if (magic(country,SAILOR)==TRUE) mvused/=2;
X if (mvused!=0) mvused= (rand()%mvused);
X P_NPEOP = (unsigned char) (P_NPEOP*(LONGTRIP-mvused)/LONGTRIP);
X! mvaddstr(LINES-1,60,"HIT ANY KEY");
X refresh();
X getch();
X }
X whatcansee();
X redraw=DONE;
X! prep(country,FALSE);
X makemap();
X armornvy=AORN;
X pager=0;
X selector=0;
X }
X*** oupdate.c Wed Sep 20 21:41:01 1989
X--- update.c Wed Sep 20 21:41:31 1989
X***************
X*** 11,17 ****
X--- 11,21 ----
X */
X
X #include <ctype.h>
X+ #ifndef XENIX
X #include <sys/file.h>
X+ #else
X+ #include <unistd.h>
X+ #endif
X #include "header.h"
X #include "data.h"
X
X***************
X*** 18,24 ****
X extern FILE *fnews;
X
X extern short country;
X! int dissarray; /* TRUE if nation in dissarray */
X int **attr; /* sector attractiveness */
X
X /****************************************************************/
X--- 22,28 ----
X extern FILE *fnews;
X
X extern short country;
X! int disarray; /* TRUE if nation in disarray */
X int **attr; /* sector attractiveness */
X
X /****************************************************************/
X***************
X*** 356,362 ****
X }
X if(sct[x][y].owner==0){
X sct[x][y].owner=country;
X! curntn->popularity++;
X #ifdef XENIX
X z = attr[x][y];
X z /= 8;
X--- 360,366 ----
X }
X if(sct[x][y].owner==0){
X sct[x][y].owner=country;
X! if (curntn->popularity<MAXTGVAL) curntn->popularity++;
X #ifdef XENIX
X z = attr[x][y];
X z /= 8;
X***************
X*** 394,400 ****
X P_AXLOC=x;
X P_AYLOC=y;
X if(sct[x][y].owner==0){
X! curntn->popularity++;
X sct[x][y].owner=country;
X attr[x][y] = 1;
X takesctr++;
X--- 398,404 ----
X P_AXLOC=x;
X P_AYLOC=y;
X if(sct[x][y].owner==0){
X! if (curntn->popularity<MAXTGVAL) curntn->popularity++;
X sct[x][y].owner=country;
X attr[x][y] = 1;
X takesctr++;
X***************
X*** 445,451 ****
X /* take inventory of countries */
X for(x=1;x<NTOTAL;x++) {
X sprintf(tempc,"%s%d", exefile, x);
X! if (isnpc(ntn[x].active) && access(tempc,F_OK)==0) {
X realnpc[x]=TRUE;
X } else {
X realnpc[x]=FALSE;
X--- 449,455 ----
X /* take inventory of countries */
X for(x=1;x<NTOTAL;x++) {
X sprintf(tempc,"%s%d", exefile, x);
X! if (isnpc(ntn[x].active) && access(tempc,00)==0) {
X realnpc[x]=TRUE;
X } else {
X realnpc[x]=FALSE;
X***************
X*** 558,564 ****
X printf("updating nation number %d -> %s\n",country,curntn->name);
X check();
X
X! dissarray=FALSE;
X #ifdef TRADE
X if(isntn(curntn->active)) checktrade();
X #endif TRADE
X--- 562,568 ----
X printf("updating nation number %d -> %s\n",country,curntn->name);
X check();
X
X! disarray=FALSE;
X #ifdef TRADE
X if(isntn(curntn->active)) checktrade();
X #endif TRADE
X***************
X*** 570,578 ****
X #ifdef CMOVE
X printf("\tthe computer will move for %s\n",curntn->name);
X fprintf(fnews,"1.\tthe computer will move for %s\n",curntn->name);
X! mailopen( country );
X! fprintf(fm,"the computer moved for you (%s) in %s of Year %d\n",curntn->name,PSEASON(TURN),YEAR(TURN));
X! mailclose();
X check();
X nationrun();
X check();
X--- 574,584 ----
X #ifdef CMOVE
X printf("\tthe computer will move for %s\n",curntn->name);
X fprintf(fnews,"1.\tthe computer will move for %s\n",curntn->name);
X! if (mailopen( country )!=(-1)) {
X! fprintf(fm,"Message to %s from CONQUER\n\n",curntn->name);
X! fprintf(fm,"The computer moved for you in the %s of Year %d\n",curntn->name,PSEASON(TURN),YEAR(TURN));
X! mailclose(country);
X! }
X check();
X nationrun();
X check();
X***************
X*** 599,614 ****
X #endif /*NPC*/
X }
X
X! /* is leader killed - put nation into dissarray */
X x = getleader((int)curntn->class) - 1;
X for(armynum=0;armynum<MAXARM;armynum++)
X! if(P_ATYPE == x) break;
X #ifdef DEBUG
X printf("checking for leader in nation %s: armynum=%d\n",curntn->name,armynum);
X #endif DEBUG
X
X! if(armynum == MAXARM) {
X! dissarray=TRUE;
X if(rand()%100 < 30) { /* new leader takes over */
X x++;
X for(armynum=0;armynum<MAXARM;armynum++)
X--- 605,623 ----
X #endif /*NPC*/
X }
X
X! /* is leader killed - put nation into disarray */
X! disarray=TRUE;
X x = getleader((int)curntn->class) - 1;
X for(armynum=0;armynum<MAXARM;armynum++)
X! if(P_ATYPE == x && P_ASOLD>0) {
X! disarray=FALSE;
X! break;
X! }
X #ifdef DEBUG
X printf("checking for leader in nation %s: armynum=%d\n",curntn->name,armynum);
X #endif DEBUG
X
X! if(disarray == TRUE) {
X if(rand()%100 < 30) { /* new leader takes over */
X x++;
X for(armynum=0;armynum<MAXARM;armynum++)
X***************
X*** 616,643 ****
X if( armynum<MAXARM) {
X P_ATYPE=x-1;
X P_ASOLD= *(unitminsth+(x-1)%UTYPE);
X! dissarray=FALSE;
X fprintf(stderr,"new leader in nation %s\n",curntn->name);
X fprintf(fnews,"1.\tnation %s has a new leader\n",curntn->name);
X if(ispc(curntn->active)){
X! mailopen(country);
X! fprintf(fm,"MESSAGE FROM CONQUER: YOU HAVE A NEW LEADER\n");
X! fprintf(fm,"YOUR TROOPS MAY NOW MOVE NORMALLY\n");
X! mailclose();
X }
X }
X }
X! } else dissarray=FALSE;
X
X! if( dissarray == TRUE) {
X fprintf(stderr,"no leader in nation %s\n",curntn->name);
X fprintf(fnews,"1.\tnation %s still has no national leader\n",curntn->name);
X if(ispc(curntn->active)){
X! mailopen(country);
X! fprintf(fm,"MESSAGE FROM CONQUER: YOU DONT HAVE A COUNTRY LEADER\n");
X! fprintf(fm,"YOUR TROOPS MAY NOT MOVE\n");
X! fprintf(fm,"THERE IS A 30%% CHANCE/TURN OF GETTING A NEW ONE \n");
X! mailclose();
X }
X }
X
X--- 625,656 ----
X if( armynum<MAXARM) {
X P_ATYPE=x-1;
X P_ASOLD= *(unitminsth+(x-1)%UTYPE);
X! disarray=FALSE;
X fprintf(stderr,"new leader in nation %s\n",curntn->name);
X fprintf(fnews,"1.\tnation %s has a new leader\n",curntn->name);
X if(ispc(curntn->active)){
X! if (mailopen(country)!=(-1)) {
X! fprintf(fm,"MESSAGE FROM CONQUER:\n\n");
X! fprintf(fm,"YOU HAVE A NEW NATIONAL LEADER.\n");
X! fprintf(fm,"YOUR TROOPS MAY NOW MOVE NORMALLY.\n");
X! mailclose(country);
X! }
X }
X }
X }
X! }
X
X! if( disarray == TRUE) {
X fprintf(stderr,"no leader in nation %s\n",curntn->name);
X fprintf(fnews,"1.\tnation %s still has no national leader\n",curntn->name);
X if(ispc(curntn->active)){
X! if (mailopen(country)!=(-1)) {
X! fprintf(fm,"MESSAGE FROM CONQUER\n\n");
X! fprintf(fm,"YOU DON'T HAVE A COUNTRY LEADER;\n");
X! fprintf(fm,"YOUR TROOPS MAY NOT MOVE\n");
X! fprintf(fm,"THERE IS A 30%% CHANCE/TURN OF GETTING A NEW ONE\n");
X! mailclose(country);
X! }
X }
X }
X
X***************
X*** 818,824 ****
X sptr = &sct[P_AXLOC][P_AYLOC];
X if(sptr->owner==0){
X sptr->owner=country;
X! curntn->popularity++;
X } else if((sptr->owner!=country)
X &&(curntn->dstatus[sptr->owner]>=WAR)) {
X if(ntn[sptr->owner].race!=curntn->race)
X--- 831,837 ----
X sptr = &sct[P_AXLOC][P_AYLOC];
X if(sptr->owner==0){
X sptr->owner=country;
X! if (curntn->popularity<MAXTGVAL) curntn->popularity++;
X } else if((sptr->owner!=country)
X &&(curntn->dstatus[sptr->owner]>=WAR)) {
X if(ntn[sptr->owner].race!=curntn->race)
X***************
X*** 858,876 ****
X /* capture the scout */
X P_ASOLD=0;
X if (ispc(curntn->active)) {
X! mailopen(country);
X! fprintf(fm,"Message from Conquer\n\n");
X! fprintf(fm,"\tYour Scouting Unit %d was captured\n");
X! fprintf(fm,"\t by %s military in sector %d,%d\n",
X! ntn[occval].name,(int)P_AXLOC,(int)P_AYLOC);
X! mailclose();
X }
X if (ispc(ntn[occval].active)) {
X! mailopen(occval);
X! fprintf(fm,"Message from Conquer\n\n");
X! fprintf(fm,"\tA Scout from nation %s was captured\n",curntn->name);
X! fprintf(fm,"\t in sector %d,%d.\n",(int)P_AXLOC,(int)P_AYLOC);
X! mailclose();
X }
X }
X }
X--- 871,891 ----
X /* capture the scout */
X P_ASOLD=0;
X if (ispc(curntn->active)) {
X! if(mailopen(country)!=(-1)) {
X! fprintf(fm,"Message from Conquer\n\n");
X! fprintf(fm,"\tYour Scouting Unit %d was captured\n");
X! fprintf(fm,"\t by %s military in sector %d,%d\n",
X! ntn[occval].name,(int)P_AXLOC,(int)P_AYLOC);
X! mailclose(country);
X! }
X }
X if (ispc(ntn[occval].active)) {
X! if(mailopen(occval)!=(-1)) {
X! fprintf(fm,"Message from Conquer\n\n");
X! fprintf(fm,"\tA Scout from nation %s was captured\n",curntn->name);
X! fprintf(fm,"\t in sector %d,%d.\n",(int)P_AXLOC,(int)P_AYLOC);
X! mailclose(occval);
X! }
X }
X }
X }
X***************
X*** 998,1004 ****
X }
X
X spreadsheet(country);
X! curntn->popularity = min(0,(int)(curntn->popularity-2*curntn->inflation));
X curntn->tsctrs = spread.sectors;
X curntn->tciv=spread.civilians;
X curntn->tfood=spread.food;
X--- 1013,1021 ----
X }
X
X spreadsheet(country);
X! if ((int)curntn->popularity-2*curntn->inflation < (int)MAXTGVAL) {
X! curntn->popularity = min(0,(int)(curntn->popularity-2*curntn->inflation));
X! } else curntn->popularity = (char) MAXTGVAL;
X curntn->tsctrs = spread.sectors;
X curntn->tciv=spread.civilians;
X curntn->tfood=spread.food;
X***************
X*** 1006,1019 ****
X /* take out for charity */
X charity=((spread.gold-curntn->tgold)*curntn->charity)/100;
X
X! if(charity > 0) charity = 0;
X if(curntn->tciv > 0) charity /= curntn->tciv;
X else charity = 0;
X
X curntn->tgold = spread.gold - charity;
X
X! /* give them some benefit of the doubt */
X! curntn->popularity += 5*charity;
X if(curntn->poverty < (charity+1)/2 )
X curntn->poverty = 0;
X else curntn->poverty -= (charity+1)/2;
X--- 1023,1056 ----
X /* take out for charity */
X charity=((spread.gold-curntn->tgold)*curntn->charity)/100;
X
X! if(charity < 0) charity = 0;
X if(curntn->tciv > 0) charity /= curntn->tciv;
X else charity = 0;
X
X curntn->tgold = spread.gold - charity;
X
X! /* calculate poverty base */
X! if (curntn->tgold < 0L) {
X! curntn->poverty = 95;
X! } else if (curntn->tciv < 100L) {
X! /* give some check on civilians */
X! curntn->poverty = (unsigned char)20;
X! } else if (curntn->tgold/curntn->tciv < 30L) {
X! curntn->poverty = (unsigned char)(95L - curntn->tgold/curntn->tciv);
X! } else if (curntn->tgold/curntn->tciv < 80L) {
X! curntn->poverty = (unsigned char)(65L - (curntn->tgold/curntn->tciv-30L)/2L);
X! } else if (curntn->tgold/curntn->tciv < 120L) {
X! curntn->poverty = (unsigned char)(40L - (curntn->tgold/curntn->tciv-80L)/4L);
X! } else if (curntn->tgold/curntn->tciv < 200L) {
X! curntn->poverty = (unsigned char)(30L - (curntn->tgold/curntn->tciv-120L)/8L);
X! } else {
X! curntn->poverty = (unsigned char)20;
X! }
X!
X! /* charity increase to popularity */
X! curntn->popularity = min(curntn->popularity+5*charity,MAXTGVAL);
X!
X! /* charity adjustment to poverty; rounding upward */
X if(curntn->poverty < (charity+1)/2 )
X curntn->poverty = 0;
X else curntn->poverty -= (charity+1)/2;
X***************
X*** 1027,1040 ****
X /* adjustment for military */
X if (spread.civilians>0)
X curntn->inflation += ((curntn->tmil*100/spread.civilians - 15)/5);
X! /* adjustment for debt and/or wealth */
X! if(curntn->tgold<75000L) {
X! curntn->inflation += (short)(-(curntn->tgold/25000L)+1);
X! } else if(curntn->tgold<100000L) {
X! curntn->inflation -= 1;
X! } else if(curntn->tgold>=200000L) {
X! curntn->inflation += (short)(curntn->tgold/100000L-1);
X! }
X /* plus maybe an adjustment for jewel production as a ratio */
X /* for whatever is produced by the country. */
X
X--- 1064,1072 ----
X /* adjustment for military */
X if (spread.civilians>0)
X curntn->inflation += ((curntn->tmil*100/spread.civilians - 15)/5);
X! /* adjustment for poverty */
X! curntn->inflation += (curntn->poverty-50)/2;
X!
X /* plus maybe an adjustment for jewel production as a ratio */
X /* for whatever is produced by the country. */
X
X***************
X*** 1066,1083 ****
X if(isntn(ntn[country].active)){
X curntn = &ntn[country];
X
X if(ispc(curntn->active)) {
X prep( country, TRUE ); /* occ[][] now >0 if leader near */
X dfltunit = defaultunit(country);
X } else dfltunit = A_INFANTRY;
X
X- dissarray=TRUE;
X- for(armynum=0;armynum<MAXARM;armynum++)
X- if (P_ATYPE==(getleader(curntn->class)-1) && P_ASOLD>0) {
X- dissarray=FALSE;
X- break;
X- }
X-
X for(armynum=0;armynum<MAXARM;armynum++) if(P_ASOLD>0) {
X
X A = &curntn->arm[armynum];
X--- 1098,1116 ----
X if(isntn(ntn[country].active)){
X curntn = &ntn[country];
X
X+ disarray=TRUE;
X+ dfltunit=(getleader(curntn->class)-1);
X+ for(armynum=0;armynum<MAXARM;armynum++)
X+ if (P_ATYPE==dfltunit && P_ASOLD>0) {
X+ disarray=FALSE;
X+ break;
X+ }
X+
X if(ispc(curntn->active)) {
X prep( country, TRUE ); /* occ[][] now >0 if leader near */
X dfltunit = defaultunit(country);
X } else dfltunit = A_INFANTRY;
X
X for(armynum=0;armynum<MAXARM;armynum++) if(P_ASOLD>0) {
X
X A = &curntn->arm[armynum];
X***************
X*** 1102,1108 ****
X
X /*add movement to all armies */
X /*unitmove is 10 times movement rate*/
X! if(dissarray) A->smove=0;
X else switch(A->stat) {
X case MARCH:
X A->smove=(curntn->maxmove * *(unitmove+(AT%UTYPE)))/5;
X--- 1135,1141 ----
X
X /*add movement to all armies */
X /*unitmove is 10 times movement rate*/
X! if(disarray) A->smove=0;
X else switch(A->stat) {
X case MARCH:
X A->smove=(curntn->maxmove * *(unitmove+(AT%UTYPE)))/5;
X***************
X*** 1215,1227 ****
X curntn->jewels -= (long) (*(unitmaint+(AT%UTYPE)));
X else {
X if(ispc(curntn->active)) {
X! mailopen(country);
X! fprintf(fm,"Message to %s from Conquer\n",curntn->name);
X! fprintf(fm,"\nYour %s (unit %d) leaves due to lack of jewels\n",
X! *(unittype+(AT%UTYPE)),armynum);
X! mailclose();
X! A->sold=0;
X }
X }
X }
X }
X--- 1248,1261 ----
X curntn->jewels -= (long) (*(unitmaint+(AT%UTYPE)));
X else {
X if(ispc(curntn->active)) {
X! if(mailopen(country)!=(-1)) {
X! fprintf(fm,"Message to %s from Conquer\n\n",curntn->name);
X! fprintf(fm,"Your %s (unit %d) leaves due to lack of jewels\n",
X! *(unittype+(AT%UTYPE)),armynum);
X! mailclose(country);
X! A->sold=0;
X }
X+ }
X }
X }
X }
X***************
X*** 1284,1290 ****
X }
X }
X #endif
X! if(dissarray) P_NMOVE=0;
X else P_NMOVE = (fltspeed(nvynum)*P_NCREW)/SHIPCREW;
X if(magic(country,SAILOR)==TRUE) P_NMOVE*=2;
X
X--- 1318,1324 ----
X }
X }
X #endif
X! if(disarray) P_NMOVE=0;
X else P_NMOVE = (fltspeed(nvynum)*P_NCREW)/SHIPCREW;
X if(magic(country,SAILOR)==TRUE) P_NMOVE*=2;
X
X***************
X*** 1312,1322 ****
X curntn->name,siegex[army2],siegey[army2]);
X #endif HIDELOC
X if(ispc(curntn->active)) {
X! mailopen( country );
X! fprintf(fm, "Message to %s from Conquer\n\n",ntn[nation].name);
X! fprintf(fm, "\tYou are under siege in sector %d,%d.\n",
X! siegex[army2],siegey[army2]);
X! mailclose();
X }
X for(armynum=0;armynum<MAXARM;armynum++) if(P_ASOLD>0){
X if(P_ASTAT!=FLIGHT&&(P_AXLOC==siegex[army2])
X--- 1346,1357 ----
X curntn->name,siegex[army2],siegey[army2]);
X #endif HIDELOC
X if(ispc(curntn->active)) {
X! if (mailopen( country )!=(-1)) {
X! fprintf(fm, "Message to %s from Conquer\n\n",ntn[nation].name);
X! fprintf(fm, "\tYou are under siege in sector %d,%d.\n",
X! siegex[army2],siegey[army2]);
X! mailclose(country);
X! }
X }
X for(armynum=0;armynum<MAXARM;armynum++) if(P_ASOLD>0){
X if(P_ASTAT!=FLIGHT&&(P_AXLOC==siegex[army2])
X***************
X*** 1376,1388 ****
X #endif HIDELOC
X printf("famine hits town at %d,%d in %s.\n",x,y,curntn->name);
X if(ispc(curntn->active)){
X! mailopen( country );
X! fprintf(fm,"Message to %s from CONQUER\n%s\n",curntn->name,curntn->name);
X! fprintf(fm," During the %s of Year %d,\n",PSEASON(TURN),YEAR(TURN));
X! fprintf(fm," a famine hit your town at %d,%d.\n",x,y);
X! fprintf(fm," %d out of %d people died.\n",dead,sptr->people);
X! mailclose();
X }
X }
X }
X /*this state can occur if few people live in cities*/
X--- 1411,1424 ----
X #endif HIDELOC
X printf("famine hits town at %d,%d in %s.\n",x,y,curntn->name);
X if(ispc(curntn->active)){
X! if (mailopen( country )!=(-1)) {
X! fprintf(fm,"Message to %s from CONQUER\n\n",curntn->name);
X! fprintf(fm,"During the %s of Year %d,\n",PSEASON(TURN),YEAR(TURN));
X! fprintf(fm,"a famine hit your town at %d,%d.\n",x,y);
X! fprintf(fm,"%d out of %d people died.\n",dead,sptr->people);
X! mailclose(country);
X }
X+ }
X }
X }
X /*this state can occur if few people live in cities*/
X***************
X*** 1400,1405 ****
X--- 1436,1450 ----
X if(curntn->tgold>GOLDTHRESH*curntn->jewels){
X /* buy jewels off commodities board */
X xx=curntn->tgold-GOLDTHRESH*curntn->jewels;
X+ if (ispc(country)) {
X+ if (mailopen(country)!=(-1)) {
X+ fprintf(fm,"Message from Conquer\n\n");
X+ fprintf(fm,"Gold imbalance forced your treasury to purchase");
X+ fprintf(fm,"%ld jewels for %ld gold talons to compensate\n",
X+ xx*GODJEWL/GODPRICE,xx);
X+ mailclose(country);
X+ }
X+ }
X curntn->jewels += (xx*GODJEWL/GODPRICE);
X curntn->tgold -= xx;
X }
X***************
X*** 1455,1464 ****
X P_ASTAT = DEFEND;
X P_AMOVE = 2*curntn->maxmove;
X if( ispc( ntn[nation].active ) ){
X! mailopen( nation );
X! fprintf(fm,"Message to %s from Conquer:\n",ntn[nation].name);
X fprintf(fm,"\t\tMonster born in your nation!\n");
X! mailclose();
X }
X printf("\tmonster born in nation %s\n",curntn->name);
X break;
X--- 1500,1510 ----
X P_ASTAT = DEFEND;
X P_AMOVE = 2*curntn->maxmove;
X if( ispc( ntn[nation].active ) ){
X! if (mailopen( nation )!=(-1)) {
X! fprintf(fm,"Message to %s from Conquer:\n\n",ntn[nation].name);
X fprintf(fm,"\t\tMonster born in your nation!\n");
X! mailclose(nation);
X! }
X }
X printf("\tmonster born in nation %s\n",curntn->name);
X break;
X***************
X*** 1493,1502 ****
X P_ASTAT = DEFEND;
X P_AMOVE = 2*curntn->maxmove;
X if( ispc( ntn[nation].active ) ){
X! mailopen( nation );
X! fprintf(fm,"Message to %s from Conquer:\n",ntn[nation].name);
X! fprintf(fm,"\t\tLeader born in your nation!\n");
X! mailclose();
X }
X printf("\tleader born in nation %s\n",curntn->name);
X break;
X--- 1539,1549 ----
X P_ASTAT = DEFEND;
X P_AMOVE = 2*curntn->maxmove;
X if( ispc( ntn[nation].active ) ){
X! if(mailopen( nation )!=(-1)) {
X! fprintf(fm,"Message to %s from Conquer:\n\n",ntn[nation].name);
X! fprintf(fm,"\t\tLeader born in your nation!\n");
X! mailclose(nation);
X! }
X }
X printf("\tleader born in nation %s\n",curntn->name);
X break;
X*** ocommands.c Wed Sep 20 21:40:54 1989
X--- commands.c Wed Sep 20 21:41:32 1989
X***************
X*** 195,201 ****
X reset_god();
X return;
X case 'o':
X! mvprintw(LINES-3,7,"what nation owner:");
X refresh();
X x = get_country();
X if (x<NTOTAL) sptr->owner=x;
X--- 195,201 ----
X reset_god();
X return;
X case 'o':
X! mvaddstr(LINES-3,7,"What nation owner:");
X refresh();
X x = get_country();
X if (x<NTOTAL) sptr->owner=x;
X***************
X*** 314,324 ****
X
X if((newdes!=DTOWN)&&(newdes!=DFORT)&&(newdes!=DCITY)&&(newdes!=DCAPITOL)){
X /*decrement treasury*/
X! if((newdes==DRUIN)||(newdes==DDEVASTATED)) {
X! DEVASTATE(XREAL,YREAL);
X! } else{
X! sptr->designation=newdes;
X }
X SADJDES;
X if(newdes == DSTOCKADE)
X curntn->tgold-=STOCKCOST*(1-isgod);
X--- 314,330 ----
X
X if((newdes!=DTOWN)&&(newdes!=DFORT)&&(newdes!=DCITY)&&(newdes!=DCAPITOL)){
X /*decrement treasury*/
X! if(newdes==DRUIN) {
X! if (sptr->fortress>4) {
X! sptr->fortress-=4;
X! } else {
X! sptr->fortress=0;
X! }
X! } else if (sptr->designation==DRUIN) {
X! curntn->tgold-=REBUILDCOST;
X }
X+ sptr->designation=newdes;
X+
X SADJDES;
X if(newdes == DSTOCKADE)
X curntn->tgold-=STOCKCOST*(1-isgod);
X***************
X*** 684,690 ****
X NADJHLD;
X NADJLOC;
X NADJMOV;
X! mvprintw(LINES-2,65,"HIT ANY KEY");
X refresh();
X getch();
X
X--- 690,696 ----
X NADJHLD;
X NADJLOC;
X NADJMOV;
X! mvaddstr(LINES-2,65,"HIT ANY KEY");
X refresh();
X getch();
X
X***************
X*** 881,887 ****
X return;
X } else if(i_cost > curntn->metals) {
X mvprintw(LINES-1,0,"You don't have %ld metal",i_cost);
X! mvprintw(LINES-1,COLS-20,"PRESS ANY KEY");
X clrtoeol();
X refresh();
X getch();
X--- 887,893 ----
X return;
X } else if(i_cost > curntn->metals) {
X mvprintw(LINES-1,0,"You don't have %ld metal",i_cost);
X! mvaddstr(LINES-1,COLS-20,"PRESS ANY KEY");
X clrtoeol();
X refresh();
X getch();
X***************
X*** 1033,1039 ****
X char line[LINELTH+1], inpch;
X char save[LINELTH][LINELTH+1];
X
X! /*open file*/
X sprintf(tempfile,"%s%hd.tmp",msgfile,country);
X if( (fptemp = fopen(tempfile,"w")) == NULL ) {
X clear_bottom(0);
X--- 1039,1045 ----
X char line[LINELTH+1], inpch;
X char save[LINELTH][LINELTH+1];
X
X! /*open file; used in mailopen() as well */
X sprintf(tempfile,"%s%hd.tmp",msgfile,country);
X if( (fptemp = fopen(tempfile,"w")) == NULL ) {
X clear_bottom(0);
X***************
X*** 1046,1065 ****
X
X sprintf(mesgfile,"%s%d",msgfile,country);
X if ((mesgfp=fopen(mesgfile,"r"))==NULL) {
X! (void) unlink (tempfile) ;
X clear_bottom(0);
X! errormsg("no messages");
X makebottom();
X redraw=DONE;
X return;
X }
X
X /*read in file a line at at time*/
X if(fgets(line,LINELTH,mesgfp)==NULL) {
X done=TRUE;
X redraw=DONE;
X clear_bottom(0);
X! errormsg("no messages");
X makebottom();
X }
X if (done==FALSE) clear();
X--- 1052,1083 ----
X
X sprintf(mesgfile,"%s%d",msgfile,country);
X if ((mesgfp=fopen(mesgfile,"r"))==NULL) {
X! (void) unlink (tempfile) ;
X clear_bottom(0);
X! errormsg("No Messages");
X makebottom();
X redraw=DONE;
X return;
X }
X
X+ /* check for people sending mail */
X+ sprintf(line,"send.%s%hd",msgfile,country);
X+ if (access(line,00)==0) {
X+ /* someone is sending mail to the country */
X+ (void) unlink (tempfile) ;
X+ clear_bottom(0);
X+ errormsg("Someone is sending you mail... please wait.");
X+ makebottom();
X+ redraw=DONE;
X+ return;
X+ }
X+
X /*read in file a line at at time*/
X if(fgets(line,LINELTH,mesgfp)==NULL) {
X done=TRUE;
X redraw=DONE;
X clear_bottom(0);
X! errormsg("No messages");
X makebottom();
X }
X if (done==FALSE) clear();
X***************
X*** 1120,1137 ****
X char ch;
X char name[NAMELTH+1];
X int temp=(-1);
X! int linedone;
X char line[BIGLTH];
X
X /*what nation to send to*/
X clear();
X! mvprintw(0,0,"to send a message to the administrator, send to 'god';");
X! mvprintw(1,0,"to post to the news, send to 'news':");
X! mvprintw(2,0,"Enter the name of the country to send to:");
X refresh();
X temp=get_country();
X
X! if( temp == (-2) ) {
X strcpy(name,"news");
X } else {
X /* quick return on bad input */
X--- 1138,1155 ----
X char ch;
X char name[NAMELTH+1];
X int temp=(-1);
X! int linedone,dotitles=TRUE;
X char line[BIGLTH];
X
X /*what nation to send to*/
X clear();
X! mvaddstr(0,0,"To send a message to the administrator, send to 'god';");
X! mvaddstr(1,0,"To post to the news, send to 'news':");
X! mvaddstr(2,0,"Enter the name of the country to send to: ");
X refresh();
X temp=get_country();
X
X! if( temp == NEWSMAIL ) {
X strcpy(name,"news");
X } else {
X /* quick return on bad input */
X***************
X*** 1141,1179 ****
X strcpy(name,ntn[temp].name); /* find nation name */
X }
X
X! mailopen( temp );
X
X- move(0,0);
X- clrtoeol();
X- move(1,0);
X- clrtoeol();
X- move(2,0);
X- clrtoeol();
X- standout();
X- if(temp != -2)
X- mvprintw(3,(COLS-25)/2,"message to nation %s",name);
X- else
X- mvprintw(3,(COLS-25)/2,"message to all players");
X- mvprintw(LINES-2,(COLS-35)/2,"end with a return on a new line");
X- standend();
X
X-
X if(temp != -2) {
X if (country==0)
X! fprintf(fm,"Message to %s from GOD (%s of year %d)\n",name,PSEASON(TURN),YEAR(TURN));
X! else fprintf(fm,"Message to %s from %s (%s of year %d)\n",name,curntn->name,PSEASON(TURN),YEAR(TURN));
X } else fprintf(fm,"5.----------\n");
X
X- y=6;
X- x=0;
X- refresh();
X while(done==FALSE) {
X linedone=FALSE;
X ch=' ';
X /*read line*/
X while(linedone==FALSE){
X /* check for delete or backspace */
X! if(ch=='\b' || ch=='\177'){
X if(x>1) x--;
X mvaddch(y,x,' ');
X move(y,x);
X--- 1159,1203 ----
X strcpy(name,ntn[temp].name); /* find nation name */
X }
X
X! if(mailopen( temp )==(-1)) {
X! return;
X! }
X
X
X if(temp != -2) {
X if (country==0)
X! fprintf(fm,"Message to %s from GOD (%s of year %d)\n\n",name,PSEASON(TURN),YEAR(TURN));
X! else fprintf(fm,"Message to %s from %s (%s of year %d)\n\n",name,curntn->name,PSEASON(TURN),YEAR(TURN));
X } else fprintf(fm,"5.----------\n");
X+ strcpy(line,"");
X
X while(done==FALSE) {
X+ if (dotitles==TRUE) {
X+ move(0,0);
X+ clrtobot();
X+ standout();
X+ if(temp != -2)
X+ mvprintw(3,(COLS-25)/2,"Message to Nation %s",name);
X+ else
X+ mvaddstr(3,(COLS-25)/2,"Message to All Players");
X+ mvaddstr(LINES-2,(COLS-37)/2,"End with a <Control-D> on a New Line");
X+ mvaddstr(LINES-1,(COLS-28)/2,"Hit ESC to Abort the Message");
X+ standend();
X+ mvaddstr(5,0,line);
X+ y=6;
X+ x=0;
X+ refresh();
X+ dotitles=FALSE;
X+ }
X linedone=FALSE;
X ch=' ';
X /*read line*/
X while(linedone==FALSE){
X /* check for delete or backspace */
X! switch(ch) {
X! case '\b':
X! case '\177':
X! /* backspace or delete */
X if(x>1) x--;
X mvaddch(y,x,' ');
X move(y,x);
X***************
X*** 1180,1199 ****
X line[x]=' ';
X refresh();
X ch=getch();
X! } else if((ch=='\n')||(ch=='\r')) linedone=TRUE;
X! else if(isprint(ch)&&(x<65)){
X! /*concatonate to end*/
X! line[x]=ch;
X! mvaddch(y,x,ch);
X! x++;
X refresh();
X! ch=getch();
X! } else if (ch=='') {
X wrefresh(stdscr);
X ch=getch();
X! } else ch=getch();
X }
X! if((ch!='\n')&&(ch!='\r')) {
X mvaddch(y,x,ch);
X line[x]=ch;
X x++;
X--- 1204,1267 ----
X line[x]=' ';
X refresh();
X ch=getch();
X! break;
X! case '\n':
X! case '\r':
X! /* newline or carriage return */
X! linedone=TRUE;
X! break;
X! case '\004':
X! /* a control-d was hit */
X! if (x==1) {
X! linedone=TRUE;
X! done=TRUE;
X! } else {
X! standout();
X! mvaddstr(LINES-3,(COLS-37)/2,"Hit [RETURN] Control-D to End Message");
X! standend();
X! move(y,x);
X! refresh();
X! ch = getch();
X! move(LINES-3,0);
X! clrtoeol();
X! refresh();
X! }
X! break;
X! case '\033':
X! /* escape key was hit */
X! mvaddstr(LINES-3,0,"Abort Message? ");
X refresh();
X! if(getch()=='y') {
X! linedone=TRUE;
X! done=TRUE;
X! temp=ABORTMAIL;
X! } else {
X! move(LINES-3,0);
X! clrtoeol();
X! move(y,x);
X! refresh();
X! ch = getch();
X! }
X! break;
X! case '':
X! /* new page -- end of form */
X wrefresh(stdscr);
X ch=getch();
X! break;
X! default:
X! /* any remaining possibilities */
X! if(isprint(ch)&&(x<65)){
X! /*concatonate to end*/
X! line[x]=ch;
X! mvaddch(y,x,ch);
X! x++;
X! refresh();
X! }
X! ch=getch();
X! break;
X! }
X }
X! if((ch!='\n')&&(ch!='\r')&&(ch!='\033')) {
X mvaddch(y,x,ch);
X line[x]=ch;
X x++;
X***************
X*** 1200,1220 ****
X }
X line[x]='\0';
X
X /*write to file*/
X! if(x<=1) done=TRUE;
X! else if (temp != -2) fprintf(fm,"%s\n",line);
X! else {
X! if (country!=0) fprintf(fm,"5.%-9s:%s\n",curntn->name,line);
X! else fprintf(fm,"5.God :%s\n",line);
X }
X- x=0;
X- y++;
X }
X! if (temp != -2) mailclose();
X! else {
X! mailok=FALSE;
X! fclose(fm);
X! }
X }
X
X /*strategic move of civilians...once only*/
X--- 1268,1296 ----
X }
X line[x]='\0';
X
X+ /*check for single period */
X+ if (strcmp(line," .")==0) done=TRUE;
X+
X /*write to file*/
X! if (done==FALSE) {
X! if (temp != -2) fprintf(fm,"%s\n",line);
X! else {
X! if (country!=0) fprintf(fm,"5.%-9s:%s\n",curntn->name,line);
X! else fprintf(fm,"5.God :%s\n",line);
X! }
X! x=0;
X! y++;
X! if (y==LINES-3) {
X! standout();
X! mvaddstr(LINES-3,0,"Continuing...");
X! standend();
X! refresh();
X! sleep(2);
X! dotitles=TRUE;
X! }
X }
X }
X! mailclose(temp);
X }
X
X /*strategic move of civilians...once only*/
X***************
X*** 1225,1231 ****
X short i,j;
X
X clear_bottom(0);
X! if(sct[XREAL][YREAL].owner!=country){
X errormsg("Sorry, you don't own that sector.");
X return;
X }
X--- 1301,1312 ----
X short i,j;
X
X clear_bottom(0);
X! #ifdef OGOD
X! if(sct[XREAL][YREAL].owner!=country && country!=0)
X! #else
X! if(sct[XREAL][YREAL].owner!=country)
X! #endif
X! {
X errormsg("Sorry, you don't own that sector.");
X return;
X }
X***************
X*** 1274,1280 ****
X }
X if((j-(YREAL)>2)||((YREAL)-j>2)) {
X errormsg("Sorry, your people refuse to move more than two sectors.");
X! } else if(sct[i][j].owner!=country){
X errormsg("Sorry, you don't own that sector.");
X } else if(movecost[i][j]<0){
X /*need to check move cost > 0 for sector*/
X--- 1355,1367 ----
X }
X if((j-(YREAL)>2)||((YREAL)-j>2)) {
X errormsg("Sorry, your people refuse to move more than two sectors.");
X! }
X! #ifdef OGOD
X! else if(sct[i][j].owner!=country && country!=0)
X! #else
X! else if(sct[i][j].owner!=country)
X! #endif /*OGOD*/
X! {
X errormsg("Sorry, you don't own that sector.");
X } else if(movecost[i][j]<0){
X /*need to check move cost > 0 for sector*/
X*** oio.c Wed Sep 20 21:40:55 1989
X--- io.c Wed Sep 20 21:41:32 1989
X***************
X*** 387,407 ****
X void
X centermap()
X {
X! int xx,yy;
X! xx=XREAL;
X! yy=YREAL;
X! xoffset = xx - (SCREEN_X_SIZE/2);
X! yoffset = yy - (SCREEN_Y_SIZE/2);
X! if (xoffset<0)
X! xoffset=0;
X! if (yoffset<0)
X! yoffset=0;
X! xcurs= xx-xoffset;
X! ycurs= yy-yoffset;
X! whatcansee();
X }
X
X /************************************************************************/
X /* PRINTSCORE() - like it says */
X /************************************************************************/
X void
X--- 387,485 ----
X void
X centermap()
X {
X! int xx,yy;
X! xx=XREAL;
X! yy=YREAL;
X! xoffset = xx - (SCREEN_X_SIZE/2);
X! yoffset = yy - (SCREEN_Y_SIZE/2);
X! if (xoffset<0)
X! xoffset=0;
X! if (yoffset<0)
X! yoffset=0;
X! xcurs= xx-xoffset;
X! ycurs= yy-yoffset;
X! whatcansee();
X }
X
X /************************************************************************/
X+ /* JUMP_TO() - move screen position to a specific location */
X+ /* home indicates just go to capitol sector. */
X+ /************************************************************************/
X+ void
X+ jump_to(home)
X+ int home;
X+ {
X+ int i,j,done;
X+ static int next_ntn;
X+
X+ /* find location to jump to */
X+ if (home) {
X+ if (country==0) {
X+ /* check if in sequence */
X+ if ((XREAL!=ntn[next_ntn].capx)
X+ ||(YREAL!=ntn[next_ntn].capy)) {
X+ next_ntn= 0;
X+ }
X+ /* find next capitol */
X+ done = FALSE;
X+ do {
X+ next_ntn++;
X+ if (next_ntn==NTOTAL) {
X+ j = 0;
X+ for(i=0;i<NTOTAL;i++)
X+ if (isntn(ntn[i].active)) {
X+ j = i;
X+ i = NTOTAL;
X+ }
X+ next_ntn = j;
X+ done = TRUE;
X+ } else {
X+ if (isntn(ntn[next_ntn].active)) {
X+ done = TRUE;
X+ }
X+ }
X+ } while (done==FALSE);
X+ /* default location; or next capitol */
X+ if (next_ntn==0) {
X+ i = MAPX/2-1;
X+ j = MAPY/2-1;
X+ } else {
X+ i = ntn[next_ntn].capx;
X+ j = ntn[next_ntn].capy;
X+ }
X+ } else {
X+ /* go to capitol */
X+ i = curntn->capx;
X+ j = curntn->capy;
X+ }
X+ } else {
X+ /* entered location */
X+ clear_bottom(0);
X+ mvaddstr(LINES-3,0,"Jump to what X location? ");
X+ refresh();
X+ i = get_number();
X+ if (i==(-1)) return;
X+ if (i>=MAPX) {
X+ errormsg("That location is out of this world!");
X+ return;
X+ }
X+ mvaddstr(LINES-2,0,"Jump to what Y location? ");
X+ refresh();
X+ j = get_number();
X+ if (j==(-1)) return;
X+ if (j>=MAPY) {
X+ errormsg("That location is out of this world!");
X+ return;
X+ }
X+ }
X+ /* now center location about given position */
X+ xcurs = i;
X+ ycurs = j;
X+ xoffset = yoffset = 0;
X+ centermap();
X+ }
X+
X+ /************************************************************************/
X /* PRINTSCORE() - like it says */
X /************************************************************************/
X void
X***************
X*** 470,477 ****
X int svcountry=country;
X int slaves=0;
X int i,j;
X! country=sct[x][y].owner;
X
X if(slaver==TRUE){
X slaves= sct[x][y].people/4;
X sct[x][y].people-=slaves;
X--- 548,556 ----
X int svcountry=country;
X int slaves=0;
X int i,j;
X! int people_to_add;
X
X+ country=sct[x][y].owner;
X if(slaver==TRUE){
X slaves= sct[x][y].people/4;
X sct[x][y].people-=slaves;
X***************
X*** 499,506 ****
X for(i=x-2;i<=x+2;i++) for(j=y-2;j<=y+2;j++)
X if(ONMAP(i,j)
X &&(ntn[sct[i][j].owner].race==ntn[sct[x][y].owner].race)) {
X! sct[i][j].people += sct[x][y].people / count;
X! if(isupd==0) SADJCIV2;
X }
X } else {
X sct[x][y].people /= 2;
X--- 578,587 ----
X for(i=x-2;i<=x+2;i++) for(j=y-2;j<=y+2;j++)
X if(ONMAP(i,j)
X &&(ntn[sct[i][j].owner].race==ntn[sct[x][y].owner].race)) {
X! people_to_add = sct[x][y].people / count;
X! /* don't show until next turn if player move */
X! if(isupd==0) SADJCIV3;
X! else sct[x][y].people += people_to_add;
X }
X } else {
X sct[x][y].people /= 2;
X*** onewhelp.c Wed Sep 20 21:40:57 1989
X--- newhelp.c Wed Sep 20 21:41:32 1989
X***************
X*** 46,51 ****
X--- 46,52 ----
X fprintf(fp,"s/XBREAKJIHAD/%ld/g\n",BREAKJIHAD);
X fprintf(fp,"s/XCONQENV/%s/g\n",ENVIRON_OPTS);
X fprintf(fp,"s/XNCITYCOST/%d/g\n",N_CITYCOST);
X+ fprintf(fp,"s/XREBUILDCOST/%d/g\n",REBUILDCOST);
X
X /* check all the defined options */
X #ifdef OGOD
X*** odata.c Wed Sep 20 21:40:54 1989
X--- data.c Wed Sep 20 21:41:32 1989
X***************
X*** 247,253 ****
X struct sprd_sht spread;
X
X FILE *fm;
X! int mailok=FALSE;
X
X #ifdef CONQUER
X #ifdef SYSMAIL
X--- 247,253 ----
X struct sprd_sht spread;
X
X FILE *fm;
X! int mailok=DONEMAIL;
X
X #ifdef CONQUER
X #ifdef SYSMAIL
X*** omagic.c Wed Sep 20 21:40:55 1989
X--- magic.c Wed Sep 20 21:41:33 1989
X***************
X*** 197,205 ****
X if (get_god()) return;
X }
X
X while(done==FALSE){
X done=TRUE;
X! clear();
X county=3;
X countx=0;
X redraw=FULL;
X--- 197,207 ----
X if (get_god()) return;
X }
X
X+ clear();
X while(done==FALSE){
X done=TRUE;
X! move(0,0);
X! clrtobot();
X county=3;
X countx=0;
X redraw=FULL;
X***************
X*** 242,248 ****
X mvaddstr(county++,0,"DO YOU WISH TO CHANGE THIS NATION'S POWERS? [yn]");
X standend();
X refresh();
X! if (getch()=='y') god_magk(FALSE);
X } else
X #endif OGOD
X if(price <= curntn->jewels){
X--- 244,250 ----
X mvaddstr(county++,0,"DO YOU WISH TO CHANGE THIS NATION'S POWERS? [yn]");
X standend();
X refresh();
X! if (getch()=='y') god_magk();
X } else
X #endif OGOD
X if(price <= curntn->jewels){
X***************
X*** 252,258 ****
X refresh();
X if(getch()=='y'){
X done=FALSE;
X! mvprintw(county++,0,"ENTER SELECTION (1,2,3):");
X refresh();
X type = getch() - '0';
X if(type==M_MIL || type==M_CIV || type==M_MGK){
X--- 254,260 ----
X refresh();
X if(getch()=='y'){
X done=FALSE;
X! mvaddstr(county++,0,"ENTER SELECTION (1,2,3):");
X refresh();
X type = getch() - '0';
X if(type==M_MIL || type==M_CIV || type==M_MGK){
X***************
X*** 821,828 ****
X int county,countx,choice;
X int remove,i,done=FALSE;
X
X while (done==FALSE) {
X- clear();
X county=3;
X countx=0;
X standout();
X--- 823,830 ----
X int county,countx,choice;
X int remove,i,done=FALSE;
X
X+ clear();
X while (done==FALSE) {
X county=3;
X countx=0;
X standout();
X***************
X*** 845,851 ****
X }
X }
X move(0,0);
X! clrtoeol();
X if (remove)
X mvprintw(0,(COLS/2)-15,"CURRENT POWERS FOR %s",curntn->name);
X else
X--- 847,853 ----
X }
X }
X move(0,0);
X! clrtobot();
X if (remove)
X mvprintw(0,(COLS/2)-15,"CURRENT POWERS FOR %s",curntn->name);
X else
X*** onewlogin.c Wed Sep 20 21:40:57 1989
X--- newlogin.c Wed Sep 20 21:41:33 1989
X***************
X*** 113,119 ****
X if((i!=x)&&(j!=y)&&(ONMAP(i,j))
X &&(sct[i][j].altitude!=WATER)) {
X if (rand()%2==0)
X! sct[x][y].altitude = CLEAR;
X
X if (rand()%2==0)
X sct[i][j].vegetation=WOOD;
X--- 113,119 ----
X if((i!=x)&&(j!=y)&&(ONMAP(i,j))
X &&(sct[i][j].altitude!=WATER)) {
X if (rand()%2==0)
X! sct[i][j].altitude = CLEAR;
X
X if (rand()%2==0)
X sct[i][j].vegetation=WOOD;
X***************
X*** 136,144 ****
X int ctry;
X for( ctry=0; ctry<NTOTAL; ctry++){
X if((ctry==0)||(ispc(ntn[ctry].active))){
X! mailopen(ctry);
X! fprintf(fm,"%s",string);
X! mailclose();
X }
X }
X }
X--- 136,146 ----
X int ctry;
X for( ctry=0; ctry<NTOTAL; ctry++){
X if((ctry==0)||(ispc(ntn[ctry].active))){
X! if (mailopen(ctry)!=(-1)) {
X! fprintf(fm,"Message from Conquer\n\n");
X! fprintf(fm,"%s\n",string);
X! mailclose(ctry);
X! }
X }
X }
X }
X***************
X*** 394,400 ****
X /*get name*/
X while(valid==FALSE) {
X valid=TRUE;
X! mvprintw(1,0,"Enter a Name for your Country: ");
X clrtoeol();
X refresh();
X get_nname(tempc);
X--- 396,402 ----
X /*get name*/
X while(valid==FALSE) {
X valid=TRUE;
X! mvaddstr(1,0,"Enter a Name for your Country: ");
X clrtoeol();
X refresh();
X get_nname(tempc);
X***************
X*** 431,437 ****
X
X valid=FALSE;
X while(valid==FALSE) { /* password routine */
X! mvprintw(2,0,"Enter National Password: ");
X clrtoeol();
X refresh();
X i = get_pass(tempc);
X--- 433,439 ----
X
X valid=FALSE;
X while(valid==FALSE) { /* password routine */
X! mvaddstr(2,0,"Enter National Password: ");
X clrtoeol();
X refresh();
X i = get_pass(tempc);
X***************
X*** 442,448 ****
X newerror("Password Too Long");
X continue;
X }
X! mvprintw(2,0,"Reenter National Password: ");
X clrtoeol();
X refresh();
X i = get_pass(passwd);
X--- 444,450 ----
X newerror("Password Too Long");
X continue;
X }
X! mvaddstr(2,0,"Reenter National Password: ");
X clrtoeol();
X refresh();
X i = get_pass(passwd);
X***************
X*** 457,463 ****
X valid=FALSE;
X while(valid==FALSE) {
X valid=TRUE;
X! mvprintw(2,0,"Enter the name of your country's leader (Ex. The Ed, Gandalf, Conan)");
X clrtoeol();
X mvprintw(3,0," [maximum %d characters]: ",LEADERLTH);
X refresh();
X--- 459,465 ----
X valid=FALSE;
X while(valid==FALSE) {
X valid=TRUE;
X! mvaddstr(2,0,"Enter the name of your country's leader (Ex. The Ed, Gandalf, Conan)");
X clrtoeol();
X mvprintw(3,0," [maximum %d characters]: ",LEADERLTH);
X refresh();
X***************
X*** 471,477 ****
X
X mvprintw(2,0,"Leader Name: %s", curntn->leader);
X clrtoeol();
X! mvprintw(3,0,"Enter your Race [ (D)warf (E)lf (H)uman (O)rc ]:");
X clrtoeol();
X refresh();
X valid=FALSE;
X--- 473,479 ----
X
X mvprintw(2,0,"Leader Name: %s", curntn->leader);
X clrtoeol();
X! mvaddstr(3,0,"Enter your Race [ (D)warf (E)lf (H)uman (O)rc ]:");
X clrtoeol();
X refresh();
X valid=FALSE;
X***************
X*** 482,488 ****
X case 'd':
X /*MINER POWER INATE TO DWARVES*/
X newmsg("Dwarves have MINING skills");
X! mvprintw(3,0,"National Race: Dwarf");
X clrtoeol();
X curntn->powers=MINER;
X x=MINER;
X--- 484,490 ----
X case 'd':
X /*MINER POWER INATE TO DWARVES*/
X newmsg("Dwarves have MINING skills");
X! mvaddstr(3,0,"National Race: Dwarf");
X clrtoeol();
X curntn->powers=MINER;
X x=MINER;
X***************
X*** 503,509 ****
X case 'E':
X case 'e':
X newmsg("Elves are magically cloaked (VOID power)");
X! mvprintw(3,0,"National Race: Elf");
X clrtoeol();
X curntn->powers=THE_VOID;
X x=THE_VOID;
X--- 505,511 ----
X case 'E':
X case 'e':
X newmsg("Elves are magically cloaked (VOID power)");
X! mvaddstr(3,0,"National Race: Elf");
X clrtoeol();
X curntn->powers=THE_VOID;
X x=THE_VOID;
X***************
X*** 525,531 ****
X case 'o':
X /*MINOR MONSTER POWER INATE TO ORCS*/
X newmsg("Your leader is a Monster!");
X! mvprintw(3,0,"National Race: Orc");
X clrtoeol();
X curntn->powers=MI_MONST;
X x=MI_MONST;
X--- 527,533 ----
X case 'o':
X /*MINOR MONSTER POWER INATE TO ORCS*/
X newmsg("Your leader is a Monster!");
X! mvaddstr(3,0,"National Race: Orc");
X clrtoeol();
X curntn->powers=MI_MONST;
X x=MI_MONST;
X***************
X*** 547,553 ****
X case 'h':
X curntn->race=HUMAN;
X newmsg("Humans have the combat skill of a WARRIOR");
X! mvprintw(3,0,"National Race: Human");
X clrtoeol();
X curntn->powers = WARRIOR;
X x=WARRIOR;
X--- 549,555 ----
X case 'h':
X curntn->race=HUMAN;
X newmsg("Humans have the combat skill of a WARRIOR");
X! mvaddstr(3,0,"National Race: Human");
X clrtoeol();
X curntn->powers = WARRIOR;
X x=WARRIOR;
X***************
X*** 576,582 ****
X valid=TRUE;
X curntn->active=PC_EVIL;
X } else {
X! mvprintw(5,0,"Please Enter Alignment [ (G)ood, (N)eutral, (E)vil ]");
X refresh();
X }
X while (valid==FALSE) {
X--- 578,584 ----
X valid=TRUE;
X curntn->active=PC_EVIL;
X } else {
X! mvaddstr(5,0,"Please Enter Alignment [ (G)ood, (N)eutral, (E)vil ]");
X refresh();
X }
X while (valid==FALSE) {
X***************
X*** 607,613 ****
X curntn->mark = ' ';
X while(TRUE) {
X temp = 30;
X! mvprintw(6,0,"This can be any of the following:");
X for (tempc[0]='!';tempc[0]<='~';tempc[0]++) {
X if( markok( tempc[0], FALSE ) ) {
X temp += 2;
X--- 609,615 ----
X curntn->mark = ' ';
X while(TRUE) {
X temp = 30;
X! mvaddstr(6,0,"This can be any of the following:");
X for (tempc[0]='!';tempc[0]<='~';tempc[0]++) {
X if( markok( tempc[0], FALSE ) ) {
X temp += 2;
X***************
X*** 618,624 ****
X printw(" %c",tempc[0]);
X }
X }
X! mvprintw(5,0,"Enter National Mark (for maps): ");
X clrtoeol();
X refresh();
X tempc[0] = getch();
X--- 620,626 ----
X printw(" %c",tempc[0]);
X }
X }
X! mvaddstr(5,0,"Enter National Mark (for maps): ");
X clrtoeol();
X refresh();
X tempc[0] = getch();
X***************
X*** 651,657 ****
X if (curntn->race==ORC) {
X switch(i) {
X case CH_MOVEMENT:
X! mvprintw(ypos++,COLS/2+5," - --------");
X continue;
X case CH_REPRO:
X x = 2*Munits[i]*Mvalues[i];
X--- 653,659 ----
X if (curntn->race==ORC) {
X switch(i) {
SHAR_EOF
echo "End of part 3, continue with part 4"
echo "4" > s2_seq_.tmp
exit 0