home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v08i002: conquer4 - middle earth multi-player game (V4), Patch4b
- Message-ID: <4412@tekred.CNA.TEK.COM>
- Date: 7 Aug 89 13:51:03 GMT
- Sender: news@tekred.CNA.TEK.COM
- Lines: 1826
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Adam Bryant <adb@cs.bu.edu>
- Posting-number: Volume 8, Issue 2
- Archive-name: conquer4/Patch4b
- Patch-To: conquer4: Volume 6, Issue 83-97
-
-
- #!/bin/sh
- # this is part 2 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file patchV4.04 continued
- #
- CurArch=2
- 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.04
- X+ mvprintw(ypos+10,xpos,"%ld",ntn[nationid].tciv);
- X+ mvprintw(ypos+11,xpos,"%d",ntn[nationid].tsctrs);
- X+ }
- X+ #else
- X mvprintw(ypos+7,xpos,"%ld",ntn[nationid].tgold);
- X mvprintw(ypos+8,xpos,"%ld",ntn[nationid].tmil);
- X mvprintw(ypos+9,xpos,"%ld",ntn[nationid].tciv);
- X***************
- X*** 88,93 ****
- X--- 110,116 ----
- X if(isnpc(ntn[nationid].active))
- X mvprintw(ypos+11,xpos,"Yes");
- X else mvprintw(ypos+11,xpos,"No");
- X+ #endif /* NOSCORE */
- X count++;
- X if(count<MAXINSCR && count%MAXINROW==0) {
- X ypos+=RPT_LINES;
- X***************
- X*** 356,362 ****
- X short armynum;
- X char passwd[PASSLTH+1];
- X short isgod=FALSE;
- X- FILE *fp;
- X #ifdef OGOD
- X FILE *ftmp;
- X #endif OGOD
- X--- 379,384 ----
- X***************
- X*** 366,378 ****
- X isgod=TRUE;
- X if (get_god()) return;
- X }
- X! fp=fopen("temp","w");
- X! fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X clear();
- X standout();
- X mvaddstr(0,(COLS/2)-10,"NATION STATS SUMMARY");
- X mvprintw(3,0,"nation name is %s",curntn->name);
- X! mvprintw(4,0,"allignment is %s",allignment[npctype(curntn->active)]);
- X if (isgod==TRUE)
- X mvprintw(5,0,"active is %d",curntn->active);
- X mvprintw(6,0,"tax_rate...... %2d%%",curntn->tax_rate);
- X--- 388,402 ----
- X isgod=TRUE;
- X if (get_god()) return;
- X }
- X!
- X! /* continuous loop */
- X! while(1) {
- X clear();
- X standout();
- X mvaddstr(0,(COLS/2)-10,"NATION STATS SUMMARY");
- X mvprintw(3,0,"nation name is %s",curntn->name);
- X! mvprintw(4,0,"alignment is %s",alignment[npctype(curntn->active)]);
- X!
- X if (isgod==TRUE)
- X mvprintw(5,0,"active is %d",curntn->active);
- X mvprintw(6,0,"tax_rate...... %2d%%",curntn->tax_rate);
- X***************
- X*** 393,433 ****
- X addstr(" (NPC)");
- X else addstr(" (MON)");
- X mvprintw(14,0,"nations mark is...%c ",curntn->mark);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X for(i=1;i<8;i++) if(curntn->race==*(races+i)[0]){
- X mvprintw(15,0, "nation race is....%s ",*(races+i));
- X break;
- X }
- X
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X mvprintw(3,COLS/2-12, "terror........ %3d",curntn->terror);
- X mvprintw(4,COLS/2-12, "popularity.... %3d",curntn->popularity);
- X mvprintw(5,COLS/2-12, "prestige...... %3d",curntn->prestige);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X- fflush( fp );
- X mvprintw(6,COLS/2-12, "knowledge..... %3d",curntn->knowledge);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X- fflush( fp );
- X temp = P_EATRATE;
- X mvprintw(7,COLS/2-12, "eatrate.......%3.2f",temp);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X- fflush( fp );
- X mvprintw(8,COLS/2-12, "wealth........ %3d",curntn->wealth);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X- fflush( fp );
- X mvprintw(9,COLS/2-12,"charity....... %2d%%",curntn->charity);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X- fflush( fp );
- X mvprintw(10,COLS/2-12,"communication.%3.2f",(float) P_NTNCOM);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X mvprintw(11,COLS/2-12,"reputation.... %3d",curntn->reputation);
- X mvprintw(12,COLS/2-12,"spoilrate.....%3d%%",curntn->spoilrate);
- X mvprintw(13,COLS/2-12,"farm ability.. %3d",curntn->farm_ability);
- X mvprintw(14,COLS/2-12,"mine ability.. %3d",curntn->mine_ability);
- X mvprintw(15,COLS/2-12,"poverty rate.. %2d%%",curntn->poverty);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X mvprintw(16,COLS/2-12,"power......... %3d",curntn->power);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X
- X if (country!=0) {
- X mvprintw(12,0,"leader is %s",curntn->leader);
- X--- 417,442 ----
- X***************
- X*** 442,448 ****
- X mvprintw(4,COLS-30, "mercs defense bonus...+%2d%%",MERCDEF);
- X mvprintw(12,COLS-30,"total mercs.......%8ld",MERCMEN);
- X }
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X
- X mvprintw(5,COLS-30, "maximum move rate.......%2d",curntn->maxmove);
- X mvprintw(6,COLS-30, "reproduction rate......%2d%%",curntn->repro);
- X--- 451,456 ----
- X***************
- X*** 450,456 ****
- X
- X mvprintw(9,COLS-30,"jewels ..........$%8ld",curntn->jewels);
- X mvprintw(10,COLS-30,"metal & minerals..%8ld",curntn->metals);
- X- fprintf(fp,"LINE %d FILE %s\n",__LINE__,__FILE__);
- X if(curntn->tfood<2*curntn->tciv) standout();
- X mvprintw(11,COLS-30,"food in granary...%8ld",curntn->tfood);
- X standend();
- X--- 458,463 ----
- X***************
- X*** 479,535 ****
- X switch(getch()){
- X case '1': /*get name*/
- X clear();
- X! mvaddstr(0,0,"what name would you like:");
- X clrtoeol();
- X refresh();
- X get_nname(string);
- X if((strlen(string)<=1)||(strlen(string)>NAMELTH)){
- X! errormsg("invalid name");
- X! if(isgod==TRUE) reset_god();
- X! return;
- X }
- X /*check if already used*/
- X else for(i=1;i<(country-1);i++){
- X if((strcmp(ntn[i].name,string)==0)&&(i!=country)) {
- X! errormsg("name already used");
- X! if(isgod==TRUE) reset_god();
- X! fclose(fp); return;
- X }
- X }
- X! errormsg("new name can be used following next update");
- X strcpy(curntn->name,string);
- X ECHGNAME;
- X break;
- X case '2': /*change password */
- X clear();
- X if(isgod!=TRUE){
- X! mvaddstr(0,0,"what is your current password:");
- X refresh();
- X! gets(command);
- X strncpy(passwd,crypt(command,SALT),PASSLTH);
- X if((strncmp(passwd,ntn[0].passwd,PASSLTH)!=0)
- X! &&(strncmp(passwd,curntn->passwd,PASSLTH)!=0)){
- X! errormsg("invalid password");
- X! fclose(fp); return;
- X }
- X }
- X! mvaddstr(2,0,"what is your new password:");
- X refresh();
- X! gets(command);
- X! if((strlen(command)>PASSLTH)||(strlen(command)<2)) {
- X! errormsg("invalid new password");
- X! if(isgod==TRUE) reset_god();
- X! fclose(fp); return;
- X }
- X strncpy(passwd,command,PASSLTH);
- X! mvaddstr(4,0,"reenter your new password:");
- X refresh();
- X! gets(command);
- X if(strncmp(passwd,command,PASSLTH)!=0) {
- X! if(isgod==TRUE) reset_god();
- X! fclose(fp); return;
- X }
- X! errormsg("new password can be used following next update");
- X strncpy(curntn->passwd,crypt(command,SALT),PASSLTH);
- X ECHGPAS;
- X break;
- X--- 486,544 ----
- X switch(getch()){
- X case '1': /*get name*/
- X clear();
- X! mvaddstr(0,0,"What name would you like:");
- X clrtoeol();
- X refresh();
- X get_nname(string);
- X if((strlen(string)<=1)||(strlen(string)>NAMELTH)){
- X! errormsg("Invalid name length");
- X! break;
- X }
- X /*check if already used*/
- X else for(i=1;i<(country-1);i++){
- X if((strcmp(ntn[i].name,string)==0)&&(i!=country)) {
- X! errormsg("Name already used");
- X! break;
- X }
- X }
- X! errormsg("New name can be used following next update");
- X strcpy(curntn->name,string);
- X ECHGNAME;
- X break;
- X case '2': /*change password */
- X clear();
- X+ /* minimum password length setting */
- X+ if (country != 0) intval=2;
- X+ else intval=4;
- X if(isgod!=TRUE){
- X! mvaddstr(0,0,"What is your current password:");
- X refresh();
- X! (void) get_pass(command);
- X strncpy(passwd,crypt(command,SALT),PASSLTH);
- X if((strncmp(passwd,ntn[0].passwd,PASSLTH)!=0)
- X! &&(strncmp(passwd,curntn->passwd,PASSLTH)!=0)){
- X! break;
- X }
- X }
- X! mvaddstr(2,0,"What is your new password:");
- X refresh();
- X! i = get_pass(command);
- X! if (i<intval) {
- X! errormsg("Password too short");
- X! break;
- X! } if (i>PASSLTH) {
- X! errormsg("Password too long");
- X! break;
- X }
- X strncpy(passwd,command,PASSLTH);
- X! mvaddstr(4,0,"Reenter your new password:");
- X refresh();
- X! (void) get_pass(command);
- X if(strncmp(passwd,command,PASSLTH)!=0) {
- X! errormsg("Invalid password match; Password unchanged");
- X! break;
- X }
- X! errormsg("New password can be used following next update");
- X strncpy(curntn->passwd,crypt(command,SALT),PASSLTH);
- X ECHGPAS;
- X break;
- X***************
- X*** 640,653 ****
- X }
- X break;
- X case '7':
- X! if( startgold != curntn->tgold ) {
- X! errormsg("Sorry: you have already made some moves this turn!");
- X! break;
- X! } else if(ispc(curntn->active)) {
- X errormsg("Note: you get no mail while playing as an NPC!");
- X curntn->active *= 4;
- X! } else if(isnpc(curntn->active))
- X curntn->active /= 4;
- X NADJNTN;
- X break;
- X case '8':
- X--- 649,661 ----
- X }
- X break;
- X case '7':
- X! if(ispc(curntn->active)) {
- X errormsg("Note: you get no mail while playing as an NPC!");
- X curntn->active *= 4;
- X! } else if(isnpc(curntn->active)) {
- X! errormsg("Okay.... you have now come back to reality.");
- X curntn->active /= 4;
- X+ }
- X NADJNTN;
- X break;
- X case '8':
- X***************
- X*** 680,686 ****
- X beep();
- X errormsg("error opening country's file");
- X reset_god();
- X! fclose(fp); return;
- X }
- X /* adjust commodities */
- X mvaddstr(LINES-2,0,"CHANGE: 1) Gold 2) Jewels 3) Iron 4) Food ?");
- X--- 688,694 ----
- X beep();
- X errormsg("error opening country's file");
- X reset_god();
- X! return;
- X }
- X /* adjust commodities */
- X mvaddstr(LINES-2,0,"CHANGE: 1) Gold 2) Jewels 3) Iron 4) Food ?");
- X***************
- X*** 725,753 ****
- X if(isgod==TRUE) {
- X mvaddstr(LINES-2,0,"ENTER CONQUER SUPER-USER PASSWORD:");
- X refresh();
- X! getstr(string);
- X strcpy(passwd,crypt(string,SALT));
- X if(strncmp(passwd,ntn[0].passwd,PASSLTH)!=0) break;
- X mvaddstr(LINES-1,0,"PROMOTE WHAT USER TO DEMI-GOD? ");
- X refresh();
- X get_nname(string);
- X! if (strlen(string)!=0) {
- X strncpy(ntn[0].leader,string,LEADERLTH);
- X }
- X }
- X break;
- X case 'p':
- X! case 'P': produce(); fclose(fp); return;
- X case 'b':
- X! case 'B': budget(); fclose(fp); return;
- X default:
- X if(isgod==TRUE) reset_god();
- X- fclose(fp);
- X return;
- X }
- X! if(isgod==TRUE) reset_god();
- X! fclose(fp);
- X! change();
- X }
- X
- X void
- X--- 733,764 ----
- X if(isgod==TRUE) {
- X mvaddstr(LINES-2,0,"ENTER CONQUER SUPER-USER PASSWORD:");
- X refresh();
- X! (void) get_pass(string);
- X strcpy(passwd,crypt(string,SALT));
- X if(strncmp(passwd,ntn[0].passwd,PASSLTH)!=0) break;
- X mvaddstr(LINES-1,0,"PROMOTE WHAT USER TO DEMI-GOD? ");
- X refresh();
- X get_nname(string);
- X! if (strlen(string)!=0 && getpwnam(string)!=NULL) {
- X strncpy(ntn[0].leader,string,LEADERLTH);
- X }
- X }
- X break;
- X case 'p':
- X! case 'P':
- X! produce();
- X! if (isgod==TRUE) reset_god();
- X! return;
- X case 'b':
- X! case 'B':
- X! budget();
- X! if(isgod==TRUE) reset_god();
- X! return;
- X default:
- X if(isgod==TRUE) reset_god();
- X return;
- X }
- X! } /* end of continuous loop */
- X }
- X
- X void
- X*** omisc.c Sun Aug 6 20:55:34 1989
- X--- misc.c Sun Aug 6 20:55:43 1989
- X***************
- X*** 206,212 ****
- X */
- X /* BUG: should engage if army is hostile but does not own sector */
- X /* BUG: take into account THE_VOID, HIDDEN, and NINJA */
- X- /* BUG: NEUTRAL does not allow to pass */
- X if( (own = sct[x][y].owner) > 0 &&
- X ntn[own].dstatus[moving_country] >= WAR &&
- X x != bx && y != by &&
- X--- 206,211 ----
- X***************
- X*** 214,219 ****
- X--- 213,226 ----
- X continue; /* at war with the owner, may not pass */
- X }
- X
- X+ if( own > 0 &&
- X+ ntn[moving_country].dstatus[own] < WAR &&
- X+ ntn[own].dstatus[moving_country] > ALLIED &&
- X+ ntn[own].dstatus[moving_country] < WAR) {
- X+ /* not at war with owner & owner is neutral,no passing*/
- X+ continue;
- X+ }
- X+
- X level++;
- X if( land_2reachp( x, y, new_mp ) ) {
- X level--;
- X***************
- X*** 693,699 ****
- X }
- X
- X /* set up occ[][] for country.
- X! if leader==true, only for leader sectors plus ntn.communicatins range */
- X void
- X prep(country,leader)
- X int country,leader;
- X--- 700,708 ----
- X }
- X
- X /* set up occ[][] for country.
- X! * if leader==true, only for leader sectors plus ntn.communicatins range
- X! * if shipchk==true, include ships on the sector search
- X! */
- X void
- X prep(country,leader)
- X int country,leader;
- X***************
- X*** 722,728 ****
- X if( leader ) {
- X if((P_ATYPE<MINLEADER)
- X ||(P_ATYPE>=MINMONSTER)
- X! ||(P_ASOLD==0)) continue;
- X i=P_AXLOC;
- X j=P_AYLOC;
- X com = P_NTNCOM; /* do communications radius */
- X--- 731,737 ----
- X if( leader ) {
- X if((P_ATYPE<MINLEADER)
- X ||(P_ATYPE>=MINMONSTER)
- X! ||(P_ASOLD<=0)) continue;
- X i=P_AXLOC;
- X j=P_AYLOC;
- X com = P_NTNCOM; /* do communications radius */
- X***************
- X*** 967,981 ****
- X NGSHP=0;
- X }
- X for(i=0;i<NTOTAL;i++) {
- X! ntn[i].dstatus[country]=UNMET;
- X! nptr->dstatus[i]=UNMET;
- X }
- X- #ifdef MONSTER
- X- for(i=NTOTAL-4;i<NTOTAL;i++) {
- X- ntn[i].dstatus[country]=WAR;
- X- nptr->dstatus[i]=WAR;
- X- }
- X- #endif
- X
- X /*if take them you get their gold*/
- X if(country!=sct[nptr->capx][nptr->capy].owner){
- X--- 976,989 ----
- X NGSHP=0;
- X }
- X for(i=0;i<NTOTAL;i++) {
- X! if (ntn[i].active < NPC_PEASANT ) {
- X! ntn[i].dstatus[country]=UNMET;
- X! nptr->dstatus[i]=UNMET;
- X! } else {
- X! ntn[i].dstatus[country]=WAR;
- X! nptr->dstatus[i]=WAR;
- X! }
- X }
- X
- X /*if take them you get their gold*/
- X if(country!=sct[nptr->capx][nptr->capy].owner){
- X*** oreports.c Sun Aug 6 20:55:35 1989
- X--- reports.c Sun Aug 6 20:55:43 1989
- X***************
- X*** 297,303 ****
- X {
- X short armynum,nvynum;
- X long numship=0L,costsold=0L,numsold=0L;
- X! long nummonst=0L,costmonst=0L,money;
- X int isgod=FALSE;
- X
- X if(country==0) {
- X--- 297,303 ----
- X {
- X short armynum,nvynum;
- X long numship=0L,costsold=0L,numsold=0L;
- X! long nummonst=0L,costmonst=0L,money,chty;
- X int isgod=FALSE;
- X
- X if(country==0) {
- X***************
- X*** 357,365 ****
- X money=spread.gold - curntn->tgold - money; /* net income */
- X standend();
- X mvprintw(17,COLS-50,"NET INCOME....................%8ld",money);
- X! mvprintw(16,COLS-50,"CHARITY.......................%8ld",max((money*(long)curntn->charity)/100L,0L));
- X standout();
- X! mvprintw(18,COLS-50,"NEXT SEASON'S TREASURY........%8ld",(startgold + money)*(100L-(long)curntn->charity)/100L);
- X
- X mvaddstr(LINES-3,(COLS/2)-15,"HIT 'P' TO SEE PRODUCTION SCREEN");
- X mvaddstr(LINES-2,(COLS/2)-15,"HIT 'C' FOR CHANGE NATION SCREEN");
- X--- 357,366 ----
- X money=spread.gold - curntn->tgold - money; /* net income */
- X standend();
- X mvprintw(17,COLS-50,"NET INCOME....................%8ld",money);
- X! chty = max((money*(long)curntn->charity)/100L,0L);
- X! mvprintw(16,COLS-50,"CHARITY.......................%8ld",chty);
- X standout();
- X! mvprintw(18,COLS-50,"NEXT SEASON'S TREASURY........%8ld",(startgold + money-chty));
- X
- X mvaddstr(LINES-3,(COLS/2)-15,"HIT 'P' TO SEE PRODUCTION SCREEN");
- X mvaddstr(LINES-2,(COLS/2)-15,"HIT 'C' FOR CHANGE NATION SCREEN");
- X***************
- X*** 694,699 ****
- X--- 695,701 ----
- X NADJMER;
- X NADJGAL;
- X NADJHLD;
- X+ NADJLOC;
- X break;
- X } else if(P_NARMY!=MAXARM) {
- X errormsg("Army must be unloaded before Navy is divided");
- X***************
- X*** 738,743 ****
- X--- 740,746 ----
- X NADJMER;
- X NADJGAL;
- X NADJHLD;
- X+ NADJLOC;
- X break;
- X case '3':
- X /* DISBAND NAVY */
- X*** omove.c Sun Aug 6 20:55:34 1989
- X--- move.c Sun Aug 6 20:55:47 1989
- X***************
- X*** 506,511 ****
- X--- 506,512 ----
- X flee(XREAL,YREAL,0,FALSE);
- X }
- X mvprintw(LINES-2,0,"TAKING SECTOR");
- X+ clrtoeol();
- X refresh();
- X sleep(2);
- X SOWN=country;
- X*** oupdate.c Sun Aug 6 20:55:36 1989
- X--- update.c Sun Aug 6 20:55:48 1989
- X***************
- X*** 308,313 ****
- X--- 308,314 ----
- X &&( curntn->arm[x].stat!=SIEGED )
- X &&( curntn->arm[x].stat!=ONBOARD )
- X &&( curntn->arm[x].stat!=TRADED )
- X+ &&( curntn->arm[x].unittyp!=A_ZOMBIE )
- X &&( P_AXLOC==curntn->arm[x].xloc )
- X &&( P_AYLOC==curntn->arm[x].yloc )){
- X curntn->arm[x].stat=NUMSTATUS+armynum;
- X***************
- X*** 674,682 ****
- X ntn[country].tships=0;
- X ntn[country].tmil=0;
- X #ifdef XENIX
- X! z = ntn[country].spellpts;
- X! z /= 2;
- X! ntn[country].spellpts = z;
- X #else
- X if(rand()%4==0) ntn[country].spellpts/=2;
- X #endif /*XENIX*/
- X--- 675,685 ----
- X ntn[country].tships=0;
- X ntn[country].tmil=0;
- X #ifdef XENIX
- X! if (rand()%4 == 0) {
- X! z = ntn[country].spellpts;
- X! z /= 2;
- X! ntn[country].spellpts = z;
- X! }
- X #else
- X if(rand()%4==0) ntn[country].spellpts/=2;
- X #endif /*XENIX*/
- X***************
- X*** 790,796 ****
- X if(P_ASTAT==ONBOARD) continue;
- X /* may not capture water */
- X if(sct[P_AXLOC][P_AYLOC].altitude==WATER) {
- X! printf("Nation %s Army %d in Water\n",curntn->name,armynum);
- X continue;
- X }
- X if(occ[P_AXLOC][P_AYLOC] != country) continue;
- X--- 793,799 ----
- X if(P_ASTAT==ONBOARD) continue;
- X /* may not capture water */
- X if(sct[P_AXLOC][P_AYLOC].altitude==WATER) {
- X! fprintf(stderr,"Nation %s Army %d in Water\n",curntn->name,armynum);
- X continue;
- X }
- X if(occ[P_AXLOC][P_AYLOC] != country) continue;
- X***************
- X*** 799,822 ****
- X sptr->owner=country;
- X curntn->popularity++;
- X } else if((sptr->owner!=country)
- X! &&(curntn->dstatus[sptr->owner]>=WAR)
- X! &&(occ[P_AXLOC][P_AYLOC]==country)){
- X!
- X! if((sptr->owner!=0)
- X! &&(ntn[sptr->owner].race!=curntn->race))
- X if(magic(country,SLAVER)==TRUE){
- X flee(P_AXLOC,P_AYLOC,1,TRUE);
- X! }else{
- X flee(P_AXLOC,P_AYLOC,1,FALSE);
- X }
- X
- X! if((isntn( curntn->active ))
- X! &&(isntn( ntn[sptr->owner].active)))
- X #ifdef HIDELOC
- X! fprintf(fnews,"3.\tarea captured by %s from %s\n",curntn->name,ntn[sptr->owner].name);
- X #else
- X! fprintf(fnews,"3.\tarea %d,%d captured by %s from %s\n",P_AXLOC,P_AYLOC,curntn->name,ntn[sptr->owner].name);
- X #endif HIDELOC
- X sptr->owner=country;
- X curntn->popularity++;
- X }
- X--- 802,823 ----
- 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 if(magic(country,SLAVER)==TRUE){
- X flee(P_AXLOC,P_AYLOC,1,TRUE);
- X! } else {
- X flee(P_AXLOC,P_AYLOC,1,FALSE);
- X }
- X
- X! if((isntn( curntn->active ))
- X! &&(isntn( ntn[sptr->owner].active))) {
- X #ifdef HIDELOC
- X! fprintf(fnews,"3.\tarea captured by %s from %s\n",curntn->name,ntn[sptr->owner].name);
- X #else
- X! fprintf(fnews,"3.\tarea %d,%d captured by %s from %s\n",P_AXLOC,P_AYLOC,curntn->name,ntn[sptr->owner].name);
- X #endif HIDELOC
- X+ }
- X sptr->owner=country;
- X curntn->popularity++;
- X }
- X***************
- X*** 987,997 ****
- X /* take out for charity */
- X charity=((spread.gold-curntn->tgold)*curntn->charity)/100;
- X
- X! if(charity > 0) curntn->tgold = spread.gold - charity;
- X! else curntn->tgold = spread.gold;
- X if(curntn->tciv > 0) charity /= curntn->tciv;
- X else charity = 0;
- X
- X /* give them some benefit of the doubt */
- X curntn->popularity += 5*charity;
- X if(curntn->poverty < (charity+1)/2 )
- X--- 988,999 ----
- 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***************
- X*** 1053,1059 ****
- X
- X dissarray=TRUE;
- X for(armynum=0;armynum<MAXARM;armynum++)
- X! if (P_ATYPE==(getleader(curntn->class)-1)) {
- X dissarray=FALSE;
- X break;
- X }
- X--- 1055,1061 ----
- 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*** oio.c Sun Aug 6 20:55:34 1989
- X--- io.c Sun Aug 6 20:55:48 1989
- X***************
- X*** 34,46 ****
- X void
- X getspace()
- X {
- X sct = (struct s_sector **) m2alloc(MAPX,MAPY,sizeof(struct s_sector));
- X occ = (char **) m2alloc(MAPX,MAPY,sizeof(char));
- X movecost = (short **) m2alloc(MAPX,MAPY,sizeof(short));
- X }
- X
- X! #ifdef ADMIN
- X /************************************************************************/
- X /* PRINTELE() - print a sector.altitude map */
- X /************************************************************************/
- X void
- X--- 34,108 ----
- X void
- X getspace()
- X {
- X+ if (sct != NULL) free(sct);
- X sct = (struct s_sector **) m2alloc(MAPX,MAPY,sizeof(struct s_sector));
- X+ if (occ != NULL) free(occ);
- X occ = (char **) m2alloc(MAPX,MAPY,sizeof(char));
- X+ if (movecost != NULL) free(movecost);
- X movecost = (short **) m2alloc(MAPX,MAPY,sizeof(short));
- X }
- X
- X! #ifdef CONQUER
- X! char **mapseen;
- X!
- X /************************************************************************/
- X+ /* MAPPREP() - initialize map with what can be seen by nation. */
- X+ /************************************************************************/
- X+ void
- X+ mapprep()
- X+ {
- X+ int armynum, nvynum;
- X+ int x,y,i,j;
- X+
- X+ /* get space for map */
- X+ mapseen = (char **) m2alloc(MAPX,MAPY,sizeof(char));
- X+
- X+ /* initialize the array */
- X+ if (country==0 || magic(country,KNOWALL)==TRUE) {
- X+ armynum = TRUE;
- X+ } else {
- X+ armynum = FALSE;
- X+ }
- X+ for (x=0;x<MAPX;x++) for(y=0;y<MAPY;y++) {
- X+ mapseen[x][y] = armynum;
- X+ }
- X+
- X+ /* done for all knowing */
- X+ if (country==0 || magic(country,KNOWALL)==TRUE) return;
- X+
- X+ /* add all visible sectors from owned land */
- X+ for(x = 0; x < MAPX; x++)
- X+ for(y = 0; y < MAPY; y++)
- X+ if(sct[x][y].owner==country){
- X+ for(i=x-LANDSEE;i<=x+LANDSEE;i++)
- X+ for(j=y-LANDSEE;j<=y+LANDSEE;j++)
- X+ if (ONMAP(i,j)) {
- X+ mapseen[i][j]=TRUE;
- X+ }
- X+ }
- X+
- X+ /* now add all visible sections from armies */
- X+ for(armynum=0;armynum<MAXARM;armynum++)
- X+ if(P_ASOLD>0) {
- X+ for(i=(int)P_AXLOC-ARMYSEE;i<=(int)P_AXLOC+ARMYSEE;i++)
- X+ for(j=(int)P_AYLOC-ARMYSEE;j<=(int)P_AYLOC+ARMYSEE;j++)
- X+ if (ONMAP(i,j)) {
- X+ mapseen[i][j]=TRUE;
- X+ }
- X+ }
- X+
- X+ /* now add sectors visible by navy */
- X+ for(nvynum=0;nvynum<MAXNAVY;nvynum++)
- X+ if((P_NMSHP!=0)||(P_NWSHP!=0)||(P_NGSHP!=0)) {
- X+ for(i=(int)P_NXLOC-NAVYSEE;i<=(int)P_NXLOC+NAVYSEE;i++)
- X+ for(j=(int)P_NYLOC-NAVYSEE;j<=(int)P_NYLOC+NAVYSEE;j++)
- X+ if (ONMAP(i,j)) {
- X+ mapseen[i][j]=TRUE;
- X+ }
- X+ }
- X+ }
- X+
- X+ /************************************************************************/
- X /* PRINTELE() - print a sector.altitude map */
- X /************************************************************************/
- X void
- X***************
- X*** 48,60 ****
- X {
- X register int X, Y;
- X fprintf(stderr,"doing print of altitude\n");
- X for(Y=0;Y<MAPY;Y++) {
- X! for(X=0;X<MAPX;X++) putc(sct[X][Y].altitude,stdout);
- X putc('\n',stdout);
- X }
- X }
- X! #endif ADMIN
- X! #ifdef ADMIN
- X /************************************************************************/
- X /* PR_NTNS() - print nation marks */
- X /************************************************************************/
- X--- 110,131 ----
- X {
- X register int X, Y;
- X fprintf(stderr,"doing print of altitude\n");
- X+ if (country == 0) {
- X+ printf("Conquer %s.%d: Altitude Map of the World on Turn %d\n",
- X+ VERSION, PATCHLEVEL, TURN);
- X+ } else {
- X+ printf("Conquer %s.%d: Altitude Map for Nation %s on Turn %d\n",
- X+ VERSION, PATCHLEVEL, curntn->name, TURN);
- X+ }
- X for(Y=0;Y<MAPY;Y++) {
- X! for(X=0;X<MAPX;X++) {
- X! if(mapseen[X][Y]==TRUE) putc(sct[X][Y].altitude,stdout);
- X! else putc(' ',stdout);
- X! }
- X putc('\n',stdout);
- X }
- X }
- X!
- X /************************************************************************/
- X /* PR_NTNS() - print nation marks */
- X /************************************************************************/
- X***************
- X*** 63,79 ****
- X {
- X register int X, Y;
- X fprintf(stderr,"doing print of nations\n");
- X for(Y=0;Y<MAPY;Y++) {
- X for(X=0;X<MAPX;X++) {
- X! if(sct[X][Y].owner==0)
- X! putc(sct[X][Y].altitude,stdout);
- X! else putc(ntn[sct[X][Y].owner].mark,stdout);
- X }
- X putc('\n',stdout);
- X }
- X }
- X! #endif ADMIN
- X! #ifdef ADMIN
- X /************************************************************************/
- X /* PR_DESG() - print designations */
- X /************************************************************************/
- X--- 134,158 ----
- X {
- X register int X, Y;
- X fprintf(stderr,"doing print of nations\n");
- X+ if (country == 0) {
- X+ printf("Conquer %s.%d: Nation Map of the World on Turn %d\n",
- X+ VERSION, PATCHLEVEL, TURN);
- X+ } else {
- X+ printf("Conquer %s.%d: Nation Map for Nation %s on Turn %d\n",
- X+ VERSION, PATCHLEVEL, curntn->name, TURN);
- X+ }
- X for(Y=0;Y<MAPY;Y++) {
- X for(X=0;X<MAPX;X++) {
- X! if(mapseen[X][Y]==TRUE) {
- X! if(sct[X][Y].owner==0)
- X! putc(sct[X][Y].altitude,stdout);
- X! else putc(ntn[sct[X][Y].owner].mark,stdout);
- X! } else putc(' ',stdout);
- X }
- X putc('\n',stdout);
- X }
- X }
- X!
- X /************************************************************************/
- X /* PR_DESG() - print designations */
- X /************************************************************************/
- X***************
- X*** 82,98 ****
- X {
- X register int X, Y;
- X fprintf(stderr,"doing print of designations\n");
- X for(Y=0;Y<MAPY;Y++) {
- X for(X=0;X<MAPX;X++) {
- X! putc(sct[X][Y].designation,stdout);
- X!
- X }
- X putc('\n',stdout);
- X }
- X }
- X- #endif ADMIN
- X
- X /************************************************************************/
- X /* WRITEDATA() - write data to datafile */
- X /* trashes/creates datafile in the process */
- X /************************************************************************/
- X--- 161,215 ----
- X {
- X register int X, Y;
- X fprintf(stderr,"doing print of designations\n");
- X+ if (country == 0) {
- X+ printf("Conquer %s.%d: Designation Map of the World on Turn %d\n",
- X+ VERSION, PATCHLEVEL, TURN);
- X+ } else {
- X+ printf("Conquer %s.%d: Designation Map for Nation %s on Turn %d\n",
- X+ VERSION, PATCHLEVEL, curntn->name, TURN);
- X+ }
- X for(Y=0;Y<MAPY;Y++) {
- X for(X=0;X<MAPX;X++) {
- X! if (mapseen[X][Y]==TRUE) {
- X! if (country==0 || magic(sct[X][Y].owner,NINJA)==TRUE
- X! || magic(sct[X][Y].owner,THE_VOID)!=TRUE) {
- X! if(sct[X][Y].designation==DNODESIG)
- X! putc(sct[X][Y].altitude,stdout);
- X! else putc(sct[X][Y].designation,stdout);
- X! } else putc('?',stdout);
- X! } else putc(' ',stdout);
- X }
- X putc('\n',stdout);
- X }
- X }
- X
- X /************************************************************************/
- X+ /* PRINTVEG() - print a vegetation map subroutine */
- X+ /************************************************************************/
- X+ void
- X+ printveg()
- X+ {
- X+ register int X, Y;
- X+ fprintf(stderr,"doing print of vegetation\n");
- X+ if (country == 0) {
- X+ printf("Conquer %s.%d: Vegetation Map of the World on Turn %d\n",
- X+ VERSION, PATCHLEVEL, TURN);
- X+ } else {
- X+ printf("Conquer %s.%d: Vegetation Map for Nation %s on Turn %d\n",
- X+ VERSION, PATCHLEVEL, curntn->name, TURN);
- X+ }
- X+ for(Y=0;Y<MAPY;Y++) {
- X+ for(X=0;X<MAPX;X++) {
- X+ if(mapseen[X][Y]==TRUE) {
- X+ putc(sct[X][Y].vegetation,stdout);
- X+ } else putc(' ',stdout);
- X+ }
- X+ putc('\n',stdout);
- X+ }
- X+ }
- X+ #endif CONQUER
- X+
- X+ /************************************************************************/
- X /* WRITEDATA() - write data to datafile */
- X /* trashes/creates datafile in the process */
- X /************************************************************************/
- X***************
- X*** 186,206 ****
- X close(fd);
- X } /* readdata() */
- X
- X- #ifdef ADMIN
- X- /************************************************************************/
- X- /* PRINTVEG() - print a vegetation map subroutine */
- X- /************************************************************************/
- X- void
- X- printveg()
- X- {
- X- register int X, Y;
- X- fprintf(stderr,"doing print of vegetation\n");
- X- for(Y=0;Y<MAPY;Y++) {
- X- for(X=0;X<MAPX;X++) putc(sct[X][Y].vegetation,stdout);
- X- putc('\n',stdout);
- X- }
- X- }
- X- #endif ADMIN
- X #ifdef CONQUER
- X /************************************************************************/
- X /* OFFMAP() deal if cursor is off the map */
- X--- 303,308 ----
- X***************
- X*** 276,283 ****
- X }
- X whatcansee();
- X }
- X! #endif CONQUER
- X! #ifdef CONQUER
- X /************************************************************************/
- X /* PRINTSCORE() - like it says */
- X /************************************************************************/
- X--- 378,384 ----
- X }
- X whatcansee();
- X }
- X!
- X /************************************************************************/
- X /* PRINTSCORE() - like it says */
- X /************************************************************************/
- X***************
- X*** 314,333 ****
- X printf("%6s ",*(races+i));
- X }
- X
- X if (isntn(ntn[nationid].active)) {
- X! printf("%8s ",*(Class+ntn[nationid].class));
- X! printf(" %7s ",allignment[npctype(ntn[nationid].active)]);
- X printf("%6ld %8ld %8ld %8ld %4d\n",
- X ntn[nationid].score ,ntn[nationid].tgold
- X ,ntn[nationid].tmil ,ntn[nationid].tciv
- X ,ntn[nationid].tsctrs );
- X } else {
- X- if (ispeasant(ntn[nationid].active)) {
- X- printf("%8s %7s ","Peasant","Neutral");
- X- /* info not kept track of yet */
- X- } else {
- X- printf("%8s %7s ","Monster","Other");
- X- }
- X printf("%6s %8s %8s %8s %4s\n",
- X "---","-----","----","-----","--");
- X }
- X--- 415,433 ----
- X printf("%6s ",*(races+i));
- X }
- X
- X+ printf("%8s ",*(Class+ntn[nationid].class));
- X+ printf(" %7s ",alignment[npctype(ntn[nationid].active)]);
- X if (isntn(ntn[nationid].active)) {
- X! #ifdef NOSCORE
- X! printf("%6ld %8s %8s %8s %4s\n",
- X! ntn[nationid].score ,"-----","----" ,"-----","--");
- X! #else
- X printf("%6ld %8ld %8ld %8ld %4d\n",
- X ntn[nationid].score ,ntn[nationid].tgold
- X ,ntn[nationid].tmil ,ntn[nationid].tciv
- X ,ntn[nationid].tsctrs );
- X+ #endif /* NOSCORE */
- X } else {
- X printf("%6s %8s %8s %8s %4s\n",
- X "---","-----","----","-----","--");
- X }
- X***************
- X*** 485,488 ****
- X--- 585,627 ----
- X baseaddr[j] = baseaddr[j-1] + entrysize;
- X }
- X return(baseaddr);
- X+ }
- X+
- X+ /* If the string entered is too long, then a truncated */
- X+ /* string is returned. Length entered is returned. */
- X+ int
- X+ get_pass(str)
- X+ char *str;
- X+ {
- X+ char ch;
- X+ int done=FALSE,count=0;
- X+
- X+ while(done==FALSE) {
- X+ ch = getch();
- X+ if (ch=='\b' || ch=='\177') {
- X+ /* delete any entered characters */
- X+ if (count > 0) {
- X+ count--;
- X+ }
- X+ } else if (ch=='\025') {
- X+ /* make sure that ^U works */
- X+ count=0;
- X+ } else if (ch=='\n' || ch=='\r') {
- X+ done = TRUE;
- X+ } else if (ch != '\0') {
- X+ /* add any other character to the string */
- X+ if (count < PASSLTH) {
- X+ /* don't try adding too many */
- X+ str[count]= ch;
- X+ }
- X+ count++;
- X+ }
- X+ }
- X+ /* truncate too long a password and end others properly */
- X+ if (count > PASSLTH) {
- X+ str[PASSLTH] = '\0';
- X+ } else {
- X+ str[count] = '\0';
- X+ }
- X+ return(count);
- X }
- X*** onewhelp.c Sun Aug 6 20:55:34 1989
- X--- newhelp.c Sun Aug 6 20:55:48 1989
- X***************
- X*** 198,204 ****
- X--- 198,206 ----
- X fprintf(fp,"s/XTOMANYPEOPLE/%d/g\n",TOMANYPEOPLE);
- X fprintf(fp,"s/XABSMAXPEOPLE/%d/g\n",ABSMAXPEOPLE);
- X fprintf(fp,"s/XFINDPERCENT/%d/g\n",FINDPERCENT);
- X+ #ifdef ORCTAKE
- X fprintf(fp,"s/XTAKEPRICE/%d/g\n",ORCTAKE);
- X+ #endif ORCTAKE
- X
- X fprintf(fp,"s/XTGATTR/%d/g\n",TGATTR);
- X fprintf(fp,"s/XOTHRATTR/%d/g\n",OTHRATTR);
- X*** odata.c Sun Aug 6 20:55:34 1989
- X--- data.c Sun Aug 6 20:55:48 1989
- X***************
- X*** 51,59 ****
- X
- X char *directions[]= { "here", "north", "northeast", "east", "southeast",
- X "south", "southwest", "west", "northwest"};
- X! char *Class[]= { "NPC", "king", "emperor", "wizard", "priest", "pirate",
- X "trader", "warlord", "demon", "dragon", "shadow"};
- X! char *allignment[]= { "","Good","Neutral","Evil","Other" };
- X
- X char *unittype[]= {
- X "Militia", "Goblins", "Orcs", "Infantry", "Sailors", "Marines", "Archers",
- X--- 51,59 ----
- X
- X char *directions[]= { "here", "north", "northeast", "east", "southeast",
- X "south", "southwest", "west", "northwest"};
- X! char *Class[]= { "monster", "king", "emperor", "wizard", "priest", "pirate",
- X "trader", "warlord", "demon", "dragon", "shadow"};
- X! char *alignment[]= { "Other","Good","Neutral","Evil","Other" };
- X
- X char *unittype[]= {
- X "Militia", "Goblins", "Orcs", "Infantry", "Sailors", "Marines", "Archers",
- X*** onewlogin.c Sun Aug 6 20:55:35 1989
- X--- newlogin.c Sun Aug 6 20:55:49 1989
- X***************
- X*** 253,260 ****
- X }
- X
- X /* now show the extras for the Raw Materials */
- X! printw(", %ld jewels", amount*NLJEWELS/Mvalues[CH_RAWGOODS]);
- X! printw(", and %ld metal.", amount*NLMETAL/Mvalues[CH_RAWGOODS]);
- X }
- X
- X /* show the current amount for country item */
- X--- 253,262 ----
- X }
- X
- X /* now show the extras for the Raw Materials */
- X! printw(", %ld jewels", (long) (amount *
- X! ((float)NLJEWELS/Mvalues[CH_RAWGOODS])));
- X! printw(", and %ld metal.", (long) (amount *
- X! ((float)NLMETAL/Mvalues[CH_RAWGOODS])));
- X }
- X
- X /* show the current amount for country item */
- X***************
- X*** 277,297 ****
- X line++;
- X
- X /* now show the extras for the Raw Materials */
- X! if (NLJEWELS==NLMETAL) {
- X! sprintf(tempc,"%ld jewels & metal",
- X! spent[CH_RAWGOODS]*NLJEWELS);
- X! mvprintw(line,0,"%38s",tempc);
- X! mvprintw(line,COLS/2+10,"%ld jewels & metal",NLJEWELS);
- X! } else {
- X! sprintf(tempc,"%ld jewels",
- X! spent[CH_RAWGOODS]*NLJEWELS);
- X! mvprintw(line,0,"%38s",tempc);
- X! mvprintw(line++,COLS/2+10,"%ld jewels",NLJEWELS);
- X! sprintf(tempc,"%ld metal",
- X! spent[CH_RAWGOODS]*NLMETAL);
- X! mvprintw(line,0,"%38s",tempc);
- X! mvprintw(line,COLS/2+10,"%ld metals",NLMETAL);
- X! }
- X }
- X
- X /* convert the stored information into the nation statistics */
- X--- 279,299 ----
- X line++;
- X
- X /* now show the extras for the Raw Materials */
- X! #if NLJEWELS==NLMETAL
- X! sprintf(tempc,"%ld jewels & metal",
- X! spent[CH_RAWGOODS]*NLJEWELS);
- X! mvprintw(line,0,"%38s",tempc);
- X! mvprintw(line,COLS/2+10,"%ld jewels & metal",NLJEWELS);
- X! #else
- X! sprintf(tempc,"%ld jewels",
- X! spent[CH_RAWGOODS]*NLJEWELS);
- X! mvprintw(line,0,"%38s",tempc);
- X! mvprintw(line++,COLS/2+10,"%ld jewels",NLJEWELS);
- X! nsprintf(tempc,"%ld metal",
- X! spent[CH_RAWGOODS]*NLMETAL);
- X! mvprintw(line,0,"%38s",tempc);
- X! mvprintw(line,COLS/2+10,"%ld metals",NLMETAL);
- X! #endif
- X }
- X
- X /* convert the stored information into the nation statistics */
- X***************
- X*** 347,353 ****
- X int temp,ypos,xpos;
- X int more=TRUE; /*0 if add another player*/
- X long x;
- X! char tempc[LINELTH],strin[LINELTH+1];
- X char passwd[PASSLTH+1];
- X register i;
- X
- X--- 349,355 ----
- X int temp,ypos,xpos;
- X int more=TRUE; /*0 if add another player*/
- X long x;
- X! char tempc[LINELTH];
- X char passwd[PASSLTH+1];
- X register i;
- X
- X***************
- X*** 432,449 ****
- X mvprintw(2,0,"Enter National Password: ");
- X clrtoeol();
- X refresh();
- X! gets(tempc);
- X! if((strlen(tempc)<2)||(strlen(tempc)>PASSLTH)) {
- X! newerror("Invalid Password Length");
- X continue;
- X }
- X mvprintw(2,0,"Reenter National Password: ");
- X clrtoeol();
- X refresh();
- X! gets(passwd);
- X
- X! if((strlen(tempc)<2)||(strlen(tempc)>PASSLTH)
- X! ||(strncmp(passwd,tempc,PASSLTH)!=0)){
- X newerror("Invalid Password Match");
- X } else valid=TRUE;
- X }
- X--- 434,453 ----
- X mvprintw(2,0,"Enter National Password: ");
- X clrtoeol();
- X refresh();
- X! i = get_pass(tempc);
- X! if (i < 2) {
- X! newerror("Password Too Short");
- X continue;
- X+ } else if (i > PASSLTH) {
- 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
- X! if((i<2)||(i>PASSLTH)||(strncmp(passwd,tempc,PASSLTH)!=0)){
- X newerror("Invalid Password Match");
- X } else valid=TRUE;
- X }
- X***************
- X*** 595,601 ****
- X break;
- X }
- X }
- X! mvprintw(2,COLS/2,"Alignment: %s", allignment[curntn->active]);
- X clrtoeol();
- X
- X
- X--- 599,605 ----
- X break;
- X }
- X }
- X! mvprintw(2,COLS/2,"Alignment: %s", alignment[curntn->active]);
- X clrtoeol();
- X
- X
- X***************
- X*** 1044,1050 ****
- X }
- X if(is_habitable(x,y)) placed=1;
- X /*important that no countries near*/
- X! for(i=x-2;i<=x+2;i++) for(j=y-2;j<=y+2;j++){
- X if((isntn(ntn[sct[i][j].owner].active))
- X &&(sct[i][j].owner!=0)) placed=0;
- X }
- X--- 1048,1054 ----
- X }
- X if(is_habitable(x,y)) placed=1;
- X /*important that no countries near*/
- X! for(i=x-4;i<=x+4;i++) for(j=y-4;j<=y+4;j++){
- X if((isntn(ntn[sct[i][j].owner].active))
- X &&(sct[i][j].owner!=0)) placed=0;
- X }
- X***************
- X*** 1148,1153 ****
- X--- 1152,1158 ----
- X else if (curntn->location==FAIR) t=1;
- X else if (curntn->location==GREAT) t=2;
- X else {
- X+ if (ispc(curntn->active))
- X newerror("Error in finding placement");
- X t=0;
- X }
- X***************
- X*** 1168,1177 ****
- X sct[i][j].people=people;
- X sct[x][y].people-=people;
- X }
- X }
- X else {
- X! if(curntn->location==OOPS) newerror("MAJOR ERROR IN PLACEMENT");
- X! else if(curntn->location==RANDOM) {
- X newerror("Random Place Failed, trying to place again");
- X curntn->location=OOPS;
- X place(-1,-1);
- X--- 1173,1193 ----
- X sct[i][j].people=people;
- X sct[x][y].people-=people;
- X }
- X+ /* make sure status is set properly */
- X+ for(i=0;i<NTOTAL;i++) {
- X+ if (ntn[i].active < NPC_PEASANT) {
- X+ ntn[i].dstatus[country]=UNMET;
- X+ ntn[country].dstatus[i]=UNMET;
- X+ } else {
- X+ ntn[i].dstatus[country]=WAR;
- X+ ntn[country].dstatus[i]=WAR;
- X+ }
- X+ }
- X }
- X else {
- X! if(curntn->location==OOPS) {
- X! newerror("MAJOR ERROR IN PLACEMENT");
- X! } else if(curntn->location==RANDOM) {
- X newerror("Random Place Failed, trying to place again");
- X curntn->location=OOPS;
- X place(-1,-1);
- X***************
- X*** 1292,1298 ****
- X
- X /* extra points for starting late */
- X points -= (float) (TURN-1) / LATESTART;
- X! if( (TURN-1)/LATESTART > 0.0 ) {
- X sprintf(temp,"%.1f points added for starting late",
- X (float) (TURN-1) / LATESTART);
- X newerror(temp);
- X--- 1308,1314 ----
- X
- X /* extra points for starting late */
- X points -= (float) (TURN-1) / LATESTART;
- X! if( (float)(TURN-1)/LATESTART > 0.0 ) {
- X sprintf(temp,"%.1f points added for starting late",
- X (float) (TURN-1) / LATESTART);
- X newerror(temp);
- X*** omain.c Sun Aug 6 20:55:34 1989
- X--- main.c Sun Aug 6 20:55:49 1989
- X***************
- X*** 39,44 ****
- X--- 39,46 ----
- X int done=FALSE; /* if TRUE: you are done */
- X short hilmode=HI_OWN; /* hilight mode */
- X short dismode=DI_DESI;/* display mode */
- X+ short otherdismode= -(DI_MOVE);
- X+ short otherhilmode= HI_OWN;
- X short selector=0; /* selector (y vbl) for which army/navy... is "picked"*/
- X short pager=0; /* pager for selector 0,1,2,3*/
- X short country=0; /* nation id of owner*/
- X***************
- X*** 59,65 ****
- X int geteuid(), getuid(), setuid();
- X register int i,j;
- X char name[NAMELTH+1],filename[FILELTH];
- X! void srand(),init_hasseen();
- X int getopt();
- X char passwd[PASSLTH+1];
- X long time();
- X--- 61,67 ----
- X int geteuid(), getuid(), setuid();
- X register int i,j;
- X char name[NAMELTH+1],filename[FILELTH];
- X! void srand(),init_hasseen(),mapprep();
- X int getopt();
- X char passwd[PASSLTH+1];
- X long time();
- X***************
- X*** 67,81 ****
- X #ifdef SYSMAIL
- X extern char sysmail[];
- X #endif SYSMAIL
- X! int sflag=FALSE,l;
- X
- X char defaultdir[BIGLTH],tmppass[PASSLTH+1];
- X char cq_opts[BIGLTH];
- X! struct passwd *getpwnam();
- X
- X owneruid=getuid();
- X srand((unsigned) time((long *) 0));
- X strcpy(name,"");
- X strcpy(cq_opts,"");
- X
- X /* check conquer options */
- X--- 69,84 ----
- X #ifdef SYSMAIL
- X extern char sysmail[];
- X #endif SYSMAIL
- X! int sflag=FALSE,pflag=FALSE,l;
- X
- X char defaultdir[BIGLTH],tmppass[PASSLTH+1];
- X char cq_opts[BIGLTH];
- X! struct passwd *getpwnam(), *pwent;
- X
- X owneruid=getuid();
- X srand((unsigned) time((long *) 0));
- X strcpy(name,"");
- X+ strcpy(defaultdir,"");
- X strcpy(cq_opts,"");
- X
- X /* check conquer options */
- X***************
- X*** 168,174 ****
- X }
- X
- X /* process the command line arguments */
- X! while((i=getopt(argc,argv,"hGn:d:s"))!=EOF) switch(i){
- X /* process the command line arguments */
- X case 'h': /* execute help program*/
- X initscr();
- X--- 171,177 ----
- X }
- X
- X /* process the command line arguments */
- X! while((i=getopt(argc,argv,"Ghpn:d:s"))!=EOF) switch(i){
- X /* process the command line arguments */
- X case 'h': /* execute help program*/
- X initscr();
- X***************
- X*** 181,186 ****
- X--- 184,192 ----
- X endwin();
- X putchar('\n');
- X exit(SUCCESS);
- X+ case 'p': /* print the map*/
- X+ pflag++;
- X+ break;
- X case 'G':
- X Gaudy = TRUE;
- X break;
- X***************
- X*** 198,209 ****
- X sflag++;
- X break;
- X case '?': /* print out command line arguments */
- X! printf("Command line format: %s [-Ghs -d DIR -nNAT]\n",argv[0]);
- X! printf("\t-G gaudily highlight nation in news\n");
- X! printf("\t-n NAT play as nation NAT\n");
- X! printf("\t-h print help text\n");
- X! printf("\t-d DIR to use play different game\n");
- X! printf("\t-s print scores\n");
- X exit(SUCCESS);
- X };
- X
- X--- 204,216 ----
- X sflag++;
- X break;
- X case '?': /* print out command line arguments */
- X! fprintf(stderr,"Command line format: %s [-Ghps -d DIR -nNAT]\n",argv[0]);
- X! fprintf(stderr,"\t-n NAT play as nation NAT\n");
- X! fprintf(stderr,"\t-d DIR to use play different game\n");
- X! fprintf(stderr,"\t-G gaudily highlight nation in news\n");
- X! fprintf(stderr,"\t-h print help text\n");
- X! fprintf(stderr,"\t-p print a map\n");
- X! fprintf(stderr,"\t-s print scores\n");
- X exit(SUCCESS);
- X };
- X
- X***************
- X*** 211,217 ****
- X * dir where the files are kept and do some work.
- X */
- X if (chdir(defaultdir)) {
- X! printf("unable to change dir to %s\n",defaultdir);
- X exit(FAIL);
- X }
- X
- X--- 218,224 ----
- X * dir where the files are kept and do some work.
- X */
- X if (chdir(defaultdir)) {
- X! fprintf(stderr,"unable to change dir to %s\n",defaultdir);
- X exit(FAIL);
- X }
- X
- X***************
- X*** 218,223 ****
- X--- 225,231 ----
- X readdata(); /* read data*/
- X verifydata( __FILE__, __LINE__ ); /* verify data */
- X
- X+ /* now print the scores */
- X if(sflag){
- X printscore();
- X exit(SUCCESS);
- X***************
- X*** 233,247 ****
- X (void) setuid (geteuid ()) ;
- X }
- X
- X! /* at this stage must be a normal interactive game */
- X
- X- printf("conquer %s.%d: Copyright (c) 1988 by Edward M Barlow\n",VERSION,PATCHLEVEL);
- X-
- X /* check for update in progress */
- X sprintf(filename,"%sup",isonfile);
- X if(check_lock(filename,FALSE)==TRUE) {
- X! printf("Conquer is updating\n");
- X! printf("Please try again later.\n");
- X exit(FAIL);
- X }
- X
- X--- 241,253 ----
- X (void) setuid (geteuid ()) ;
- X }
- X
- X! fprintf(stderr,"conquer %s.%d: Copyright (c) 1988 by Edward M Barlow\n",VERSION,PATCHLEVEL);
- X
- X /* check for update in progress */
- X sprintf(filename,"%sup",isonfile);
- X if(check_lock(filename,FALSE)==TRUE) {
- X! fprintf(stderr,"Conquer is updating\n");
- X! fprintf(stderr,"Please try again later.\n");
- X exit(FAIL);
- X }
- X
- X***************
- X*** 250,268 ****
- X * if you fail give name of administrator of game
- X */
- X if (name[0] == '\0') {
- X! printf("what nation would you like to be: ");
- X gets(name);
- X }
- X #ifdef OGOD
- X if(strcmp(name,"god")==0 || strcmp(name,"unowned")==0) {
- X if ((owneruid != (getpwnam(LOGIN))->pw_uid ) &&
- X! (owneruid != (getpwnam(ntn[0].leader))->pw_uid )) {
- X! printf("Sorry -- you can not login as god\n");
- X! printf("you need to be logged in as %s",LOGIN);
- X if (strcmp(LOGIN, ntn[0].leader)!=0) {
- X! printf(" or %s",ntn[0].leader);
- X }
- X! printf("\n");
- X exit(FAIL);
- X }
- X strcpy(name,"unowned");
- X--- 256,277 ----
- X * if you fail give name of administrator of game
- X */
- X if (name[0] == '\0') {
- X! if (pflag != FALSE)
- X! fprintf(stderr,"Display map for what nation: ");
- X! else fprintf(stderr,"What nation would you like to be: ");
- X gets(name);
- X }
- X #ifdef OGOD
- X if(strcmp(name,"god")==0 || strcmp(name,"unowned")==0) {
- X if ((owneruid != (getpwnam(LOGIN))->pw_uid ) &&
- X! ((pwent=getpwnam(ntn[0].leader)) == NULL ||
- X! owneruid != pwent->pw_uid )) {
- X! fprintf(stderr,"Sorry -- you can not login as god\n");
- X! fprintf(stderr,"you need to be logged in as %s",LOGIN);
- X if (strcmp(LOGIN, ntn[0].leader)!=0) {
- X! fprintf(stderr," or %s",ntn[0].leader);
- X }
- X! fprintf(stderr,"\n");
- X exit(FAIL);
- X }
- X strcpy(name,"unowned");
- X***************
- X*** 276,295 ****
- X if(strcmp(name,ntn[i].name)==0) country=i;
- X
- X if(country==(-1)) {
- X! printf("Sorry, name <%s> not found\n",name);
- X! printf("\nFor rules type <conquer -h>");
- X! printf("\nFor information on conquer please contact %s.",OWNER);
- X! printf("\nTo enter this campaign please send mail to %s", LOGIN);
- X if (strcmp(LOGIN, ntn[0].leader)!=0) {
- X! printf(" or %s",ntn[0].leader);
- X }
- X! printf(".\n");
- X return;
- X! } else if(country==0) {
- X sprintf(filename,"%sadd",isonfile);
- X if(check_lock(filename,FALSE)==TRUE) {
- X! printf("A new player is being added.\n");
- X! printf("Continue anyway? [y or n]");
- X while(((i=getchar())!='y')&&(i!='n')) ;
- X if(i!='y') exit(FAIL);
- X }
- X--- 285,304 ----
- X if(strcmp(name,ntn[i].name)==0) country=i;
- X
- X if(country==(-1)) {
- X! fprintf(stderr,"Sorry, name <%s> not found\n",name);
- X! fprintf(stderr,"\nFor rules type <conquer -h>");
- X! fprintf(stderr,"\nFor information on conquer please contact %s.",OWNER);
- X! fprintf(stderr,"\nTo enter this campaign please send mail to %s", LOGIN);
- X if (strcmp(LOGIN, ntn[0].leader)!=0) {
- X! fprintf(stderr," or %s",ntn[0].leader);
- X }
- X! fprintf(stderr,".\n");
- X return;
- X! } else if(country==0 && !pflag) {
- X sprintf(filename,"%sadd",isonfile);
- X if(check_lock(filename,FALSE)==TRUE) {
- X! fprintf(stderr,"A new player is being added.\n");
- X! fprintf(stderr,"Continue anyway? [y or n]");
- X while(((i=getchar())!='y')&&(i!='n')) ;
- X if(i!='y') exit(FAIL);
- X }
- X***************
- X*** 297,324 ****
- X curntn = &ntn[country];
- X
- X /*get encrypted password*/
- X! strncpy(tmppass,getpass("\nwhat is your nation's password:"),PASSLTH);
- X strncpy(passwd,crypt(tmppass,SALT),PASSLTH);
- X if((strncmp(passwd,curntn->passwd,PASSLTH)!=0)
- X &&(strncmp(passwd,ntn[0].passwd,PASSLTH)!=0)) {
- X! strncpy(tmppass,getpass("\nerror: reenter your nation's password:"),PASSLTH);
- X strncpy(passwd,crypt(tmppass,SALT),PASSLTH);
- X if((strncmp(passwd,curntn->passwd,PASSLTH)!=0)
- X &&(strncmp(passwd,ntn[0].passwd,PASSLTH)!=0)) {
- X! printf("\nSorry:");
- X! printf("\nFor rules type <conquer -h>");
- X! printf("\nFor information on conquer please contact %s.",
- X OWNER);
- X! printf("\nTo enter this campaign please send mail to %s",
- X LOGIN);
- X if (strcmp(LOGIN, ntn[0].leader)!=0) {
- X! printf(" or %s",ntn[0].leader);
- X }
- X! printf(".\n");
- X exit(FAIL);
- X }
- X }
- X
- X initscr(); /* SET UP THE SCREEN */
- X /* check terminal size */
- X if (COLS<80 || LINES<24) {
- X--- 306,371 ----
- X curntn = &ntn[country];
- X
- X /*get encrypted password*/
- X! fprintf(stderr,"\nWhat is your Nation's Password: ");
- X! strncpy(tmppass,getpass(""),PASSLTH);
- X strncpy(passwd,crypt(tmppass,SALT),PASSLTH);
- X if((strncmp(passwd,curntn->passwd,PASSLTH)!=0)
- X &&(strncmp(passwd,ntn[0].passwd,PASSLTH)!=0)) {
- X! fprintf(stderr,"\nError: Reenter your Nation's Password: ");
- X! strncpy(tmppass,getpass(""),PASSLTH);
- X strncpy(passwd,crypt(tmppass,SALT),PASSLTH);
- X if((strncmp(passwd,curntn->passwd,PASSLTH)!=0)
- X &&(strncmp(passwd,ntn[0].passwd,PASSLTH)!=0)) {
- X! fprintf(stderr,"\nSorry:");
- X! fprintf(stderr,"\nFor rules type <conquer -h>");
- X! fprintf(stderr,"\nFor information on conquer please contact %s.",
- X OWNER);
- X! fprintf(stderr,"\nTo enter this campaign please send mail to %s",
- X LOGIN);
- X if (strcmp(LOGIN, ntn[0].leader)!=0) {
- X! fprintf(stderr," or %s",ntn[0].leader);
- X }
- X! fprintf(stderr,".\n");
- X exit(FAIL);
- X }
- X }
- X
- X+ /* now print the maps */
- X+ if (pflag) { /* print a map of the game */
- X+ fprintf(stderr,"\nFor convenience, this output is to stderr,\n");
- X+ fprintf(stderr,"while the maps will be sent to stdout.\n\n");
- X+ fprintf(stderr,"\tThe valid options are,\n");
- X+ fprintf(stderr,"\t\t1) altitudes\n\t\t2) vegetations\n");
- X+ fprintf(stderr,"\t\t3) nations\n");
- X+ fprintf(stderr,"\t\t4) designations\n\n");
- X+ fprintf(stderr,"\tWhat type of map? ");
- X+ scanf("%hd", &dismode);
- X+ fprintf(stderr,"\n");
- X+ switch(dismode) {
- X+ case 1:
- X+ mapprep();
- X+ printele();
- X+ break;
- X+ case 2:
- X+ mapprep();
- X+ printveg();
- X+ break;
- X+ case 3:
- X+ mapprep();
- X+ pr_ntns();
- X+ break;
- X+ case 4:
- X+ mapprep();
- X+ pr_desg();
- X+ break;
- X+ default:
- X+ fprintf(stderr,"Invalid Choice\n");
- X+ exit(FAIL);
- X+ break;
- X+ }
- X+ exit(SUCCESS);
- X+ }
- X+
- X initscr(); /* SET UP THE SCREEN */
- X /* check terminal size */
- X if (COLS<80 || LINES<24) {
- X***************
- X*** 410,416 ****
- X signal(SIGTERM,hangup); /* likewise for cheats!! */
- X
- X noecho();
- X! prep(country,FALSE); /* initialize prep array */
- X whatcansee(); /* what can they see */
- X
- X /* initialize mail files */
- X--- 457,463 ----
- X signal(SIGTERM,hangup); /* likewise for cheats!! */
- X
- X noecho();
- X! prep(country,FALSE); /* initialize prep array */
- X whatcansee(); /* what can they see */
- X
- X /* initialize mail files */
- X***************
- X*** 492,497 ****
- X--- 539,548 ----
- X {
- X char name[LINELTH+1];
- X char passwd[PASSLTH+1];
- X+ struct passwd *getpwnam(), *pwent;
- X+ #ifdef DEBUG
- X+ void sect_info();
- X+ #endif /* DEBUG */
- X int ocountry;
- X
- X switch(getch()) {
- X***************
- X*** 499,508 ****
- X ext_cmd( -1 );
- X curntn->tgold -= MOVECOST;
- X break;
- X! case '': /*redraw the screen*/
- X whatcansee(); /* what can they see */
- X redraw=TRUE;
- X break;
- X case 'a': /*army report*/
- X redraw=TRUE;
- X armyrpt(0);
- X--- 550,567 ----
- X ext_cmd( -1 );
- X curntn->tgold -= MOVECOST;
- X break;
- X! case '': /* redraw the screen */
- X whatcansee(); /* what can they see */
- X redraw=TRUE;
- X break;
- X+ #ifdef DEBUG
- X+ case '\t': /* debugging information for god and demi-god */
- X+ if ((owneruid != (getpwnam(LOGIN))->pw_uid ) &&
- X+ ((pwent=getpwnam(ntn[0].leader))==NULL || owneruid != pwent->pw_uid ))
- X+ break;
- X+ sect_info();
- X+ break;
- X+ #endif /* DEBUG */
- X case 'a': /*army report*/
- X redraw=TRUE;
- X armyrpt(0);
- X***************
- X*** 607,613 ****
- X mymove();
- X curntn->tgold -= MOVECOST;
- X makebottom();
- X! prep(country,FALSE);
- X pager=0;
- X selector=0;
- X break;
- X--- 666,675 ----
- X mymove();
- X curntn->tgold -= MOVECOST;
- X makebottom();
- X! prep(country,FALSE,TRUE);
- X! if (hilmode == HI_ARMY || hilmode == HI_YARM) {
- X! redraw = TRUE;
- X! }
- X pager=0;
- X selector=0;
- X break;
- X***************
- X*** 743,749 ****
- X case 'z': /*login as new user */
- X #ifdef OGOD
- X if ((owneruid != (getpwnam(LOGIN))->pw_uid ) &&
- X! (owneruid != (getpwnam(ntn[0].leader))->pw_uid )) break;
- X #endif
- X clear();
- X redraw=TRUE;
- X--- 805,811 ----
- X case 'z': /*login as new user */
- X #ifdef OGOD
- X if ((owneruid != (getpwnam(LOGIN))->pw_uid ) &&
- X! ((pwent=getpwnam(ntn[0].leader))==NULL || owneruid != pwent->pw_uid )) break;
- X #endif
- X clear();
- X redraw=TRUE;
- X***************
- X*** 795,801 ****
- X }
- X
- X /* remove old lock file -- new one already made */
- X! sprintf(fison,"%s%s",isonfile,ocountry);
- X unlink(fison);
- X
- X fclose(fexe);
- X--- 857,863 ----
- X }
- X
- X /* remove old lock file -- new one already made */
- X! sprintf(fison,"%s%d",isonfile,ocountry);
- X unlink(fison);
- X
- X fclose(fexe);
- X***************
- X*** 803,815 ****
- X sprintf(name,"%s%d",exefile,country);
- X if ((fexe=fopen(name,"a"))==NULL) {
- X beep();
- X! printf("error opening %s\n",name);
- X unlink(fison);
- X exit(FAIL);
- X }
- X curntn = &ntn[country];
- X
- X! printf("\n");
- X readdata();
- X execute(FALSE);
- X
- X--- 865,877 ----
- X sprintf(name,"%s%d",exefile,country);
- SHAR_EOF
- echo "End of part 2, continue with part 3"
- echo "3" > s2_seq_.tmp
- exit 0
-