|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 54373 (0xd465) Types: TextFile Names: »patches02a«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Conquer/patches02a«
*** opatchlevel.h --- patchlevel.h ************** *** 1 ! #define PATCHLEVEL 1 --- 1 ----- ! #define PATCHLEVEL 2 *** onotes.v4 --- notes.v4 ************** *** 18,23 9. merged do_lizard() and updlizard(). [used name do_lizard()]. 10. fixed bug with getchar querys in makeworl.c. 11. fixed bug with y < MAPX mistype in randeven.c. ------------------------------------------------------------------------- | 1.0 POSSIBLE SHORT-TERM ENHANCEMENTS/FIXES FOR CONQUER V4 | --- 18,45 ----- 9. merged do_lizard() and updlizard(). [used name do_lizard()]. 10. fixed bug with getchar querys in makeworl.c. 11. fixed bug with y < MAPX mistype in randeven.c. + ===4.0 patch number one released => 4.1 ========================== + 12. fixed underflow problems with unsigned chars xloc,yloc,xcap,ycap. + 13. misc.c(834): changed "owner=DCAPITOL" to "designation=DCAPITOL". + 14. npc.c(171,172): changed rand()%2-1 to rand()%3-1. + 15. randeven.c: put #ifdef MONSTER around nomad raid section. + 16. reports.c(618): changed flthold() to fltmhold(). + 17. combat.c(488,510): changed "-=0" to "=0". + 18. newlogin.c(507): changed temp < points to temp > points. + 19. newlogin.c(795): added "& MAPY > 24". + 20. extcmds.c(365): fixed check on same location for merging groups. + 21. newhelp.c(163): added #ifdef for RANEVENT to newhelp.c. + 22. altered map printing routines to send to stdout, and have stderr be + for communicating with the user. so now "conqrun -p > foo" works. + 23. removed password checking under -p option. would only be useful if + OGOD was defined, and if that was the case, only god could get + to that point anyway. + 24. made copyright screen variable with screen size. + 25. added TIMELOG feature to use system date command to show last update time. + 26. made errormsg display on COLS-20 instead of 60. fixed up display bugs. + 27. added more names to rebel name list. + 28. worked on Makefile. [made sure of parallelism; ready to distribute] + 29. reworded treasury display on budget screen for clarity. ------------------------------------------------------------------------- | 1.0 POSSIBLE SHORT-TERM ENHANCEMENTS/FIXES FOR CONQUER V4 | ************** *** 22,27 ------------------------------------------------------------------------- | 1.0 POSSIBLE SHORT-TERM ENHANCEMENTS/FIXES FOR CONQUER V4 | ------------------------------------------------------------------------- o fix the helpfiles to reflect current changes in game as noted later in this file. o there is some overflow somewhere, which creates a huge amount of gold --- 44,52 ----- ------------------------------------------------------------------------- | 1.0 POSSIBLE SHORT-TERM ENHANCEMENTS/FIXES FOR CONQUER V4 | ------------------------------------------------------------------------- + o make land capture only occur during update. + o make the create world routine interactive with curses display. + o make the newlogin routine interactive with curses display. o fix the helpfiles to reflect current changes in game as noted later in this file. o there is some overflow somewhere, which creates a huge amount of gold ************** *** 32,38 o adjust spew.c and write new rules files for 1) random npc mail 2) npc delcarations of war ! o Treaty war delcarations only last one turn ???? It seems to revert sometimes. o reward for killing monsters 10K Gold and 1K Jewels per 50 men-equivalent. o implement sacking of capitol instead of destruction of nation. This should award all iron, gold and jewels to the successor, but leave --- 57,63 ----- o adjust spew.c and write new rules files for 1) random npc mail 2) npc delcarations of war ! o Treaty war delcarations only last one turn ???? It seems to revert sometimes. o reward for killing monsters 10K Gold and 1K Jewels per 50 men-equivalent. o implement new method for detection of captured lands. if any allies of sector owner in sector, prevent taking of sector; otherwise, award ************** *** 34,43 2) npc delcarations of war o Treaty war delcarations only last one turn ???? It seems to revert sometimes. o reward for killing monsters 10K Gold and 1K Jewels per 50 men-equivalent. - o implement sacking of capitol instead of destruction of nation. This - should award all iron, gold and jewels to the successor, but leave - food (or a good portion of it) with the nation owner. This should - be implemented on all nations, including pcs. o implement new method for detection of captured lands. if any allies of sector owner in sector, prevent taking of sector; otherwise, award sector to nation with more troops if troops are twice the remaining --- 59,64 ----- 2) npc delcarations of war o Treaty war delcarations only last one turn ???? It seems to revert sometimes. o reward for killing monsters 10K Gold and 1K Jewels per 50 men-equivalent. o implement new method for detection of captured lands. if any allies of sector owner in sector, prevent taking of sector; otherwise, award sector to nation with more troops if troops are twice the remaining ************** *** 57,63 in a city will have a 50% (+5% for added leader) chance of stopping a bad event. o All units should have loyalty ratings, and can revolt. - o Newlogin setup should be revamped to use curses display. Better control. o Revamp user help interface to allow searching through help files. o leader experience. mail to nation if happen. This has untold impacts on combat... and i dont want to touch it yet. sorry. --- 78,83 ----- in a city will have a 50% (+5% for added leader) chance of stopping a bad event. o All units should have loyalty ratings, and can revolt. o Revamp user help interface to allow searching through help files. o leader experience. mail to nation if happen. This has untold impacts on combat... and i dont want to touch it yet. sorry. *** oheader.h --- header.h ************** *** 49,54 #define SPOOLDIR "/usr/spool/mail" /* location of mail spool */ #define FILELOCK /* if your system supports BSD flock() */ /* other file locking is not well implemented */ #define NTOTAL 25 /* max # of nations ( player + npc + monster ) */ #define MAXPTS 65 /* points for players to buy stuff with at start*/ --- 49,55 ----- #define SPOOLDIR "/usr/spool/mail" /* location of mail spool */ #define FILELOCK /* if your system supports BSD flock() */ /* other file locking is not well implemented */ + #define TIMELOG /* if your system has the date command */ #define NTOTAL 25 /* max # of nations ( player + npc + monster ) */ #define MAXPTS 65 /* points for players to buy stuff with at start*/ *** odata.h --- data.h ************** *** 900,906 extern int unitmove[], unitattack[], unitdefend[]; /* file name definitions */ ! extern char *sortname,*exefile,*datafile,*msgfile,*helpfile,*newsfile,*isonfile; #ifdef CONQUER extern int conq_mail_status; --- 900,907 ----- extern int unitmove[], unitattack[], unitdefend[]; /* file name definitions */ ! extern char *sortname,*exefile,*datafile,*msgfile; ! extern char *helpfile,*newsfile,*isonfile,*timefile; #ifdef CONQUER extern int conq_mail_status; *** oadmin.c --- admin.c ************** *** 178,195 unlink(string); exit(SUCCESS); } else if (pflag) { /* print a map of the game */ ! #ifdef OGOD ! if(strncmp(crypt(getpass("\nwhat is conquer super user password:"),SALT),ntn[0].passwd,PASSLTH)!=0) { ! printf("sorry, must be super user to get map\n"); ! exit(FAIL); ! } ! #endif OGOD ! printf("For Convienience, output is to stderr\n"); ! printf("what type of map\noptions are\n"); ! printf("\t1) altitudes\n\t2) vegetations\n"); ! printf("\t3) nations\n\n"); ! printf("\tINPUT:"); ! scanf("%hd",&dismode); if(dismode==1) printele(); else if(dismode==2) printveg(); else pr_ntns(); --- 178,191 ----- unlink(string); exit(SUCCESS); } else if (pflag) { /* print a map of the game */ ! fprintf(stderr,"\nFor convenience, this output is to stderr,\n"); ! fprintf(stderr,"while the maps will be sent to stdout.\n\n"); ! fprintf(stderr,"\tThe valid options are,\n"); ! fprintf(stderr,"\t\t1) altitudes\n\t\t2) vegetations\n"); ! fprintf(stderr,"\t\t3) nations\n\n"); ! fprintf(stderr,"\tWhat type of map? "); ! scanf("%hd", &dismode); ! fprintf(stderr,"\n"); if(dismode==1) printele(); else if(dismode==2) printveg(); else pr_ntns(); ************** *** 222,227 update(); writedata(); unlink(string); exit(SUCCESS); } printf("error: must specify an option\n"); --- 218,227 ----- update(); writedata(); unlink(string); + #ifdef TIMELOG + sprintf(string, "date > %s", timefile); + system(string); + #endif /* TIMELOG */ exit(SUCCESS); } printf("error: must specify an option\n"); *** oextcmds.c --- extcmds.c ************** *** 269,276 return; } ! oldx=P_AXLOC; ! oldy=P_AYLOC; army2=armynum; armynum=(-1); --- 269,276 ----- return; } ! oldx=(int)P_AXLOC; ! oldy=(int)P_AYLOC; army2=armynum; armynum=(-1); ************** *** 317,323 { mvaddstr(LINES-1, 0, str); clrtoeol(); ! mvaddstr(LINES-1, 60, "PRESS ANY KEY"); beep(); refresh(); getch(); --- 317,323 ----- { mvaddstr(LINES-1, 0, str); clrtoeol(); ! mvaddstr(LINES-1, COLS-20, "PRESS ANY KEY"); beep(); refresh(); getch(); ************** *** 362,368 return; } if((P_AXLOC != curntn->arm[group].xloc) ! &&(P_AXLOC != curntn->arm[group].xloc)){ errormsg("units are not in same sector"); return; } --- 362,368 ----- return; } if((P_AXLOC != curntn->arm[group].xloc) ! ||(P_AYLOC != curntn->arm[group].yloc)){ errormsg("units are not in same sector"); return; } *** omakeworl.c --- makeworl.c ************** *** 45,51 int rflag; /* TRUE if you wish to read in a map from mapfiles */ { char passwd[PASSLTH+1],*getpass(); ! char newstring[100]; FILE *fopen(); /*abort if datafile currently exists*/ --- 45,51 ----- int rflag; /* TRUE if you wish to read in a map from mapfiles */ { char passwd[PASSLTH+1],*getpass(); ! char newstring[200]; FILE *fopen(); /*abort if datafile currently exists*/ ************** *** 70,76 printf("First, we must zero extraneous files from prior games\n"); printf("\tignore any errors this causes\n"); ! sprintf(newstring,"rm -f %s* %s* %s* %s* %s 2> /dev/null",exefile,msgfile,newsfile,isonfile,tradefile); printf("\t%s\n",newstring); system(newstring); printf("OK This has been done, Now to set up a new world\n\n"); --- 70,77 ----- printf("First, we must zero extraneous files from prior games\n"); printf("\tignore any errors this causes\n"); ! sprintf(newstring,"rm -f %s* %s* %s* %s* %s %s 2> /dev/null", ! exefile, msgfile, newsfile, isonfile, tradefile, timefile); printf("\t%s\n",newstring); system(newstring); printf("OK This has been done, Now to set up a new world\n\n"); *** osort.c --- sort.c ************** *** 27,32 * Initial Revision: (adb@bucsf.bu.edu) * Tuesday March 21th, 1989 - Began the program at 23:26 EST * Wednesday March 22nd, 1989 - Finished the initial version 11:29 EST */ #include <stdio.h> --- 27,33 ----- * Initial Revision: (adb@bucsf.bu.edu) * Tuesday March 21th, 1989 - Began the program at 23:26 EST * Wednesday March 22nd, 1989 - Finished the initial version 11:29 EST + * Wednesday July 5th, 1989 - Stopped use of sysexits.h 7:22 EST */ #include <stdio.h> ************** *** 30,38 */ #include <stdio.h> - #ifndef HPUX - #include <sysexits.h> - #endif HPUX #include <ctype.h> /* system definitions just in case */ --- 31,36 ----- */ #include <stdio.h> #include <ctype.h> /* system definitions just in case */ ************** *** 39,45 #ifndef FALSE #define FALSE (0) #define TRUE (1) ! #endif /* check for system exit definitions */ #ifndef EX_OK --- 37,43 ----- #ifndef FALSE #define FALSE (0) #define TRUE (1) ! #endif /* FALSE */ /* system exit definitions from sysexits.h on BSD machines */ #ifndef EX_OK ************** *** 41,47 #define TRUE (1) #endif ! /* check for system exit definitions */ #ifndef EX_OK #define EX_OK 0 /* successful termination */ #define EX_USAGE 64 /* invalid command line format */ --- 39,45 ----- #define TRUE (1) #endif /* FALSE */ ! /* system exit definitions from sysexits.h on BSD machines */ #ifndef EX_OK #define EX_OK 0 /* successful termination */ #define EX_USAGE 64 /* invalid command line format */ ************** *** 48,54 #define EX_NOINPUT 66 /* could not open input file */ #define EX_SOFTWARE 70 /* software error; couldn't malloc */ #define EX_CANTCREAT 73 /* could not create output file */ ! #endif /* number of characters to compare by default */ #define DEFAULT_COMP 2 --- 46,52 ----- #define EX_NOINPUT 66 /* could not open input file */ #define EX_SOFTWARE 70 /* software error; couldn't malloc */ #define EX_CANTCREAT 73 /* could not create output file */ ! #endif /* EX_OK */ /* number of characters to compare by default */ #define DEFAULT_COMP 2 *** orandeven.c --- randeven.c ************** *** 5,11 #include "data.h" #ifdef RANEVENT - #ifdef ADMIN char *names[] = { /* must end in single character name */ "groo","brok","vul","poin","srop","hoga","nobi","bonz","gail", "lynn","zorb","theed","urda","X" --- 5,10 ----- #include "data.h" #ifdef RANEVENT char *names[] = { /* must end in single character name */ "groo","brok","vul","poin","srop","hoga","nobi","bonz","gail", "lynn","zorb","theed","urda","anima","bedlam","delos","quin", ************** *** 8,14 #ifdef ADMIN char *names[] = { /* must end in single character name */ "groo","brok","vul","poin","srop","hoga","nobi","bonz","gail", ! "lynn","zorb","theed","urda","X" }; extern FILE *fnews; --- 7,14 ----- #ifdef RANEVENT char *names[] = { /* must end in single character name */ "groo","brok","vul","poin","srop","hoga","nobi","bonz","gail", ! "lynn","zorb","theed","urda","anima","bedlam","delos","quin", ! "xynd","putz","erde","clym","fanz","ilth","X" }; extern FILE *fnews; ************** *** 556,561 curntn->jewels+=longval; break; case 25: /*nomad raid -- put large nomad army in area*/ for( holdval=1;holdval<NTOTAL;holdval++ ) if( ntn[holdval].active==NPC_NOMAD ) break; --- 556,562 ----- curntn->jewels+=longval; break; case 25: + #ifdef MONSTER /*nomad raid -- put large nomad army in area*/ for( holdval=1;holdval<NTOTAL;holdval++ ) if( ntn[holdval].active==NPC_NOMAD ) break; ************** *** 591,596 } done=TRUE; break; case 26: /*town burns -- reduce fort and redesignate*/ holdval=0; --- 592,598 ----- } done=TRUE; break; + #endif MONSTER case 26: /*town burns -- reduce fort and redesignate*/ holdval=0; ************** *** 1105,1109 weather() { } - #endif ADMIN #endif RANEVENT --- 1107,1110 ----- weather() { } #endif RANEVENT *** omisc.c --- misc.c ************** *** 831,837 } else if(isnpc(curntn->active)) { if(sct[curntn->capx][curntn->capy].owner==country) { /* reset capitol for npcs */ ! sct[curntn->capx][curntn->capy].owner=DCAPITOL; if(sct[curntn->capx][curntn->capy].fortress<1) sct[curntn->capx][curntn->capy].fortress=1; } --- 831,837 ----- } else if(isnpc(curntn->active)) { if(sct[curntn->capx][curntn->capy].owner==country) { /* reset capitol for npcs */ ! sct[curntn->capx][curntn->capy].designation=DCAPITOL; if(sct[curntn->capx][curntn->capy].fortress<1) sct[curntn->capx][curntn->capy].fortress=1; } *** oreports.c --- reports.c ************** *** 91,98 standend(); mvprintw(ypos+1,xpos,"%ld",P_ASOLD); mvprintw(ypos+2,xpos,"%d",P_AMOVE); ! mvprintw(ypos+3,xpos,"%d",P_AXLOC); ! mvprintw(ypos+4,xpos,"%d",P_AYLOC); if(P_ASTAT>=NUMSTATUS) mvprintw(ypos+5,xpos,"group %d",P_ASTAT-NUMSTATUS); else --- 91,98 ----- standend(); mvprintw(ypos+1,xpos,"%ld",P_ASOLD); mvprintw(ypos+2,xpos,"%d",P_AMOVE); ! mvprintw(ypos+3,xpos,"%d",(int)P_AXLOC); ! mvprintw(ypos+4,xpos,"%d",(int)P_AYLOC); if(P_ASTAT>=NUMSTATUS) mvprintw(ypos+5,xpos,"group %d",P_ASTAT-NUMSTATUS); else ************** *** 328,334 standout(); mvprintw(3,0, "nation name is......%s",curntn->name); standend(); ! mvprintw(4,0, "talons in treasury.$%ld",startgold); mvprintw(5,0, "number of sectors...%d",spread.sectors); if(curntn->tfood<2*curntn->tciv) standout(); mvprintw(7,0, "granary holds.....%8ld",curntn->tfood); --- 328,334 ----- standout(); mvprintw(3,0, "nation name is......%s",curntn->name); standend(); ! mvprintw(4,0, "starting treasury..$%ld",startgold); mvprintw(5,0, "number of sectors...%d",spread.sectors); if(curntn->tfood<2*curntn->tciv) standout(); mvprintw(7,0, "granary holds.....%8ld",curntn->tfood); ************** *** 355,361 money=spread.gold - curntn->tgold - money; /* net income */ standend(); mvprintw(17,COLS-50,"NET INCOME....................%8ld",money); ! mvprintw(16,COLS-50,"CHARITY.......................%8ld",max((money*curntn->charity)/100,0)); standout(); mvprintw(18,COLS-50,"NEXT SEASON'S TREASURY........%8ld",(startgold + money)*(100-curntn->charity)/100); --- 355,361 ----- money=spread.gold - curntn->tgold - money; /* net income */ standend(); mvprintw(17,COLS-50,"NET INCOME....................%8ld",money); ! mvprintw(16,COLS-50,"CHARITY.......................%8ld",max((money*(long)curntn->charity)/100L,0L)); standout(); mvprintw(18,COLS-50,"NEXT SEASON'S TREASURY........%8ld",(startgold + money)*(100L-(long)curntn->charity)/100L); ************** *** 357,363 mvprintw(17,COLS-50,"NET INCOME....................%8ld",money); mvprintw(16,COLS-50,"CHARITY.......................%8ld",max((money*curntn->charity)/100,0)); standout(); ! mvprintw(18,COLS-50,"NEXT SEASON'S TREASURY........%8ld",(startgold + money)*(100-curntn->charity)/100); mvaddstr(LINES-3,(COLS/2)-15,"HIT 'P' TO SEE PRODUCTION SCREEN"); mvaddstr(LINES-2,(COLS/2)-15,"HIT 'C' FOR CHANGE NATION SCREEN"); --- 357,363 ----- mvprintw(17,COLS-50,"NET INCOME....................%8ld",money); mvprintw(16,COLS-50,"CHARITY.......................%8ld",max((money*(long)curntn->charity)/100L,0L)); standout(); ! mvprintw(18,COLS-50,"NEXT SEASON'S TREASURY........%8ld",(startgold + money)*(100L-(long)curntn->charity)/100L); mvaddstr(LINES-3,(COLS/2)-15,"HIT 'P' TO SEE PRODUCTION SCREEN"); mvaddstr(LINES-2,(COLS/2)-15,"HIT 'C' FOR CHANGE NATION SCREEN"); ************** *** 408,414 standout(); mvprintw(4,0, "nation name is....%s",curntn->name); standend(); ! mvprintw(5,0, "talons in treasury..$%ld",startgold); mvaddstr(7,0, "FOOD PRODUCTION"); mvprintw(9,0, "granary now holds.........%8ld tons",curntn->tfood); mvprintw(10,0, "%8ld people in farms..%8ld tons",spread.infarm,spread.food - curntn->tfood); --- 408,414 ----- standout(); mvprintw(4,0, "nation name is....%s",curntn->name); standend(); ! mvprintw(5,0, "talons in treasury..$%ld",curntn->tgold); mvaddstr(7,0, "FOOD PRODUCTION"); mvprintw(9,0, "granary now holds.........%8ld tons",curntn->tfood); mvprintw(10,0, "%8ld people in farms..%8ld tons",spread.infarm,spread.food - curntn->tfood); ************** *** 615,621 crew = flthold(nvynum)*P_NCREW; people = fltmhold(nvynum)*P_NPEOP; crew += flthold(newnavy)*curntn->nvy[newnavy].crew; ! people += flthold(newnavy)*curntn->nvy[newnavy].people; for(i=N_LIGHT;i<=N_HEAVY;i++) { (void) addwships(newnavy,i,P_NWAR(i)); (void) addmships(newnavy,i,P_NMER(i)); --- 615,621 ----- crew = flthold(nvynum)*P_NCREW; people = fltmhold(nvynum)*P_NPEOP; crew += flthold(newnavy)*curntn->nvy[newnavy].crew; ! people += fltmhold(newnavy)*curntn->nvy[newnavy].people; for(i=N_LIGHT;i<=N_HEAVY;i++) { (void) addwships(newnavy,i,P_NWAR(i)); (void) addmships(newnavy,i,P_NMER(i)); *** ocombat.c --- combat.c ************** *** 484,491 Aloss+=loss; ntn[owner[i]].arm[unit[i]].sold-=loss; if((ntn[owner[i]].arm[unit[i]].unittyp==A_MILITIA)&&(retreatside==ATKR)) { ! sct[ntn[owner[i]].arm[unit[i]].xloc][ntn[owner[i]].arm[unit[i]].yloc].people += ntn[owner[i]].arm[unit[i]].sold; ! ntn[owner[i]].arm[unit[i]].sold-=0; } } } else if(side[i]==DFND){ --- 484,491 ----- Aloss+=loss; ntn[owner[i]].arm[unit[i]].sold-=loss; if((ntn[owner[i]].arm[unit[i]].unittyp==A_MILITIA)&&(retreatside==ATKR)) { ! sct[ntn[owner[i]].arm[unit[i]].xloc][ntn[owner[i]].arm[unit[i]].yloc].people += ntn[owner[i]].arm[unit[i]].sold; ! ntn[owner[i]].arm[unit[i]].sold=0; } } } else if(side[i]==DFND){ ************** *** 506,513 Dloss+=loss; ntn[owner[i]].arm[unit[i]].sold-=loss; if((ntn[owner[i]].arm[unit[i]].unittyp==A_MILITIA)&&(retreatside==DFND)) { ! sct[ntn[owner[i]].arm[unit[i]].xloc][ntn[owner[i]].arm[unit[i]].yloc].people += ntn[owner[i]].arm[unit[i]].sold; ! ntn[owner[i]].arm[unit[i]].sold-=0; } } } --- 506,513 ----- Dloss+=loss; ntn[owner[i]].arm[unit[i]].sold-=loss; if((ntn[owner[i]].arm[unit[i]].unittyp==A_MILITIA)&&(retreatside==DFND)) { ! sct[ntn[owner[i]].arm[unit[i]].xloc][ntn[owner[i]].arm[unit[i]].yloc].people += ntn[owner[i]].arm[unit[i]].sold; ! ntn[owner[i]].arm[unit[i]].sold=0; } } } *** omove.c --- move.c ************** *** 165,171 } for(i=0;i<MAXARM;i++) if(curntn->arm[i].sold>0){ standout(); ! see(curntn->arm[i].xloc-xoffset,curntn->arm[i].yloc-yoffset); } for(i=0;i<MAXNAVY;i++) if(curntn->nvy[i].merchant+curntn->nvy[i].warships+curntn->nvy[i].galleys!=0){ standout(); --- 165,171 ----- } for(i=0;i<MAXARM;i++) if(curntn->arm[i].sold>0){ standout(); ! see((int)curntn->arm[i].xloc-xoffset,(int)curntn->arm[i].yloc-yoffset); } for(i=0;i<MAXNAVY;i++) if(curntn->nvy[i].merchant+curntn->nvy[i].warships+curntn->nvy[i].galleys!=0){ standout(); ************** *** 169,175 } for(i=0;i<MAXNAVY;i++) if(curntn->nvy[i].merchant+curntn->nvy[i].warships+curntn->nvy[i].galleys!=0){ standout(); ! see(curntn->nvy[i].xloc-xoffset,curntn->nvy[i].yloc-yoffset); } } else for(i=XREAL-xoffset-1;i<=XREAL-xoffset+1;i++){ --- 169,175 ----- } for(i=0;i<MAXNAVY;i++) if(curntn->nvy[i].merchant+curntn->nvy[i].warships+curntn->nvy[i].galleys!=0){ standout(); ! see((int)curntn->nvy[i].xloc-xoffset,(int)curntn->nvy[i].yloc-yoffset); } } else for(i=XREAL-xoffset-1;i<=XREAL-xoffset+1;i++){ *** oupdate.c --- update.c ************** *** 271,280 ||( P_ATYPE>=MINLEADER)) menok=TRUE; else menok=FALSE; /* range of 4 if menok is FALSE else 2 */ ! for(x=P_AXLOC-4+menok*2;x<=P_AXLOC+4-menok*2;x++) ! for(y=P_AYLOC-4+menok*2;y<=P_AYLOC+4-menok*2;y++) if(ONMAP(x,y)) ! if( menok==TRUE || ISCITY(sct[x][y].designation) ) ! sum+=attr[x][y]; } if(sum==0) { --- 271,283 ----- ||( P_ATYPE>=MINLEADER)) menok=TRUE; else menok=FALSE; /* range of 4 if menok is FALSE else 2 */ ! for(x=(int)P_AXLOC-4+menok*2;x<=(int)P_AXLOC+4-menok*2;x++) ! for(y=(int)P_AYLOC-4+menok*2;y<=(int)P_AYLOC+4-menok*2;y++) { ! if(ONMAP(x,y)) { ! if( menok==TRUE || ISCITY(sct[x][y].designation) ) ! sum+=attr[x][y]; ! } ! } } if(sum==0) { ************** *** 313,320 } else { where=rand()%sum; /* range of 4 if menok is FALSE else 2 */ ! for(x=P_AXLOC-4+menok*2;x<=P_AXLOC+4-menok*2;x++) ! for(y=P_AYLOC-4+menok*2;y<=P_AYLOC+4-menok*2;y++) if(ONMAP(x,y)){ if( menok==TRUE || ISCITY(sct[x][y].designation) ) where -= attr[x][y]; if( (where < 0 ) --- 316,324 ----- } else { where=rand()%sum; /* range of 4 if menok is FALSE else 2 */ ! for(x=(int)P_AXLOC-4+menok*2;x<=(int)P_AXLOC+4-menok*2;x++) ! for(y=(int)P_AYLOC-4+menok*2;y<=(int)P_AYLOC+4-menok*2;y++) ! if(ONMAP(x,y)){ if( menok==TRUE || ISCITY(sct[x][y].designation) ) where -= attr[x][y]; if( (where < 0 ) ************** *** 320,326 if( (where < 0 ) && movecost[x][y]>=1 && movecost[x][y]<=P_AMOVE ! &&(land_reachp(P_AXLOC,P_AYLOC,x,y,P_AMOVE,country))){ P_AXLOC=x; P_AYLOC=y; if(P_ATYPE == getleader(curntn->class)-1 ){ --- 324,330 ----- if( (where < 0 ) && movecost[x][y]>=1 && movecost[x][y]<=P_AMOVE ! &&(land_reachp((int)P_AXLOC,(int)P_AYLOC,x,y,P_AMOVE,country))){ P_AXLOC=x; P_AYLOC=y; if(P_ATYPE == getleader(curntn->class)-1 ){ ************** *** 355,361 /*do again - have this block if lots of bad terrain*/ /*what could happen is that it won't find a move first time*/ ! for(x=P_AXLOC-2;x<=P_AXLOC+2;x++) for(y=P_AYLOC-2;y<=P_AYLOC+2;y++) { if(!ONMAP(x,y)) continue; --- 359,366 ----- /*do again - have this block if lots of bad terrain*/ /*what could happen is that it won't find a move first time*/ ! for(x=(int)P_AXLOC-2;x<=(int)P_AXLOC+2;x++) ! for(y=(int)P_AYLOC-2;y<=(int)P_AYLOC+2;y++) { if(!ONMAP(x,y)) continue; ************** *** 613,620 } /*if near capitol add to attr*/ ! for(x=curntn->capx-2;x<=curntn->capx+2;x++) ! for(y=curntn->capy-2;y<=curntn->capy+2;y++) if((ONMAP(x,y))&&(attr[x][y]>0)) attr[x][y]+=20; /*MOVE CIVILIANS based on the ratio of attractivenesses --- 618,625 ----- } /*if near capitol add to attr*/ ! for(x=(int)curntn->capx-2;x<=(int)curntn->capx+2;x++) ! for(y=(int)curntn->capy-2;y<=(int)curntn->capy+2;y++) if((ONMAP(x,y))&&(attr[x][y]>0)) attr[x][y]+=20; /*MOVE CIVILIANS based on the ratio of attractivenesses ************** *** 695,702 /* try to relieve sieges */ if(P_ASTAT!=SIEGED && ntn[country].arm[armynum-1].stat!=SIEGED) { ! for(i=ntn[country].arm[armynum-1].xloc-1;i<=ntn[country].arm[armynum-1].xloc+1;i++) { ! for(j=ntn[country].arm[armynum-1].yloc-1;j<=ntn[country].arm[armynum-1].yloc+1;j++) { if(ONMAP(i,j) &&(sct[i][j].altitude!=WATER) &&(sct[i][j].altitude!=PEAK) --- 700,707 ----- /* try to relieve sieges */ if(P_ASTAT!=SIEGED && ntn[country].arm[armynum-1].stat!=SIEGED) { ! for(i=(int)ntn[country].arm[armynum-1].xloc-1;i<=ntn[country].arm[armynum-1].xloc+1;i++) { ! for(j=(int)ntn[country].arm[armynum-1].yloc-1;j<=ntn[country].arm[armynum-1].yloc+1;j++) { if(ONMAP(i,j) &&(sct[i][j].altitude!=WATER) &&(sct[i][j].altitude!=PEAK) ************** *** 804,810 fprintf(fm,"Message from Conquer\n\n"); fprintf(fm,"\tYour Scouting Unit %d was captured\n"); fprintf(fm,"\t by %s military in sector %d,%d\n", ! ntn[occval].name,P_AXLOC,P_AYLOC); mailclose(); } if (ispc(ntn[occval].active)) { --- 809,815 ----- fprintf(fm,"Message from Conquer\n\n"); fprintf(fm,"\tYour Scouting Unit %d was captured\n"); fprintf(fm,"\t by %s military in sector %d,%d\n", ! ntn[occval].name,(int)P_AXLOC,(int)P_AYLOC); mailclose(); } if (ispc(ntn[occval].active)) { ************** *** 811,817 mailopen(occval); fprintf(fm,"Message from Conquer\n\n"); fprintf(fm,"\tA Scout from nation %s was captured\n",curntn->name); ! fprintf(fm,"\t in sector %d,%d.\n",P_AXLOC,P_AYLOC); mailclose(); } } --- 816,822 ----- mailopen(occval); fprintf(fm,"Message from Conquer\n\n"); fprintf(fm,"\tA Scout from nation %s was captured\n",curntn->name); ! fprintf(fm,"\t in sector %d,%d.\n",(int)P_AXLOC,(int)P_AYLOC); mailclose(); } } *** ocommands.c --- commands.c ************** *** 875,881 if(isgod==TRUE) reset_god(); return; } else if(i_cost > curntn->metals) { ! mvprintw(LINES-2,0,"You don't have %ld metal",i_cost); clrtoeol(); refresh(); getch(); --- 875,882 ----- if(isgod==TRUE) reset_god(); return; } else if(i_cost > curntn->metals) { ! mvprintw(LINES-1,0,"You don't have %ld metal",i_cost); ! mvprintw(LINES-1,COLS-20,"PRESS ANY KEY"); clrtoeol(); refresh(); getch(); ************** *** 959,965 P_AYLOC = ntn[i].capy; P_AXLOC = ntn[i].capx; mvprintw(LINES-2,0,"The Spy Starts in %s's Capitol (%d,%d)", ! ntn[i].name,P_AXLOC,P_AYLOC); clrtoeol(); } else { clear_bottom(0); --- 960,966 ----- P_AYLOC = ntn[i].capy; P_AXLOC = ntn[i].capx; mvprintw(LINES-2,0,"The Spy Starts in %s's Capitol (%d,%d)", ! ntn[i].name,(int)P_AXLOC,(int)P_AYLOC); clrtoeol(); } else { clear_bottom(0); ************** *** 973,979 P_AYLOC = YREAL; P_AXLOC = XREAL; mvprintw(LINES-2,0,"Intelligence indicates that %s lies to the %s",ntn[i].name, ! *(directions+compass(P_AXLOC,P_AYLOC,ntn[i].capx,ntn[i].capy))); clrtoeol(); } errormsg(""); --- 974,981 ----- P_AYLOC = YREAL; P_AXLOC = XREAL; mvprintw(LINES-2,0,"Intelligence indicates that %s lies to the %s",ntn[i].name, ! *(directions+compass((int)P_AXLOC,(int)P_AYLOC, ! (int)ntn[i].capx,(int)ntn[i].capy))); clrtoeol(); } errormsg(""); ************** *** 1294,1301 if(P_ASOLD <= 0) return(0); } /*move to correct location*/ ! xcurs = P_AXLOC - xoffset; ! ycurs = P_AYLOC - yoffset; coffmap(); /*select correct unit*/ --- 1296,1303 ----- if(P_ASOLD <= 0) return(0); } /*move to correct location*/ ! xcurs = (int)P_AXLOC - xoffset; ! ycurs = (int)P_AYLOC - yoffset; coffmap(); /*select correct unit*/ *** oio.c --- io.c ************** *** 47,53 printele() { register int X, Y; ! printf("doing print of altitude\n"); for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) putc(sct[X][Y].altitude,stdout); putc('\n',stdout); --- 47,53 ----- printele() { register int X, Y; ! fprintf(stderr,"doing print of altitude\n"); for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) putc(sct[X][Y].altitude,stdout); putc('\n',stdout); ************** *** 62,68 pr_ntns() { register int X, Y; ! printf("doing print of nations\n"); for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) { if(sct[X][Y].owner==0) --- 62,68 ----- pr_ntns() { register int X, Y; ! fprintf(stderr,"doing print of nations\n"); for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) { if(sct[X][Y].owner==0) ************** *** 66,73 for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) { if(sct[X][Y].owner==0) ! putc(sct[X][Y].altitude,stderr); ! else putc(ntn[sct[X][Y].owner].mark,stderr); } putc('\n',stderr); } --- 66,73 ----- for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) { if(sct[X][Y].owner==0) ! putc(sct[X][Y].altitude,stdout); ! else putc(ntn[sct[X][Y].owner].mark,stdout); } putc('\n',stdout); } ************** *** 69,75 putc(sct[X][Y].altitude,stderr); else putc(ntn[sct[X][Y].owner].mark,stderr); } ! putc('\n',stderr); } } #endif ADMIN --- 69,75 ----- putc(sct[X][Y].altitude,stdout); else putc(ntn[sct[X][Y].owner].mark,stdout); } ! putc('\n',stdout); } } #endif ADMIN ************** *** 124,130 /*read in existing nation army and navy data*/ /*check if file openable*/ ! printf("reading data file\n"); if( (fd = open(datafile,0)) < 0 ) { fprintf( stderr, "can not open %s \n", datafile ); fprintf( stderr, "for help with conquer, type conquer -h\n"); --- 124,130 ----- /*read in existing nation army and navy data*/ /*check if file openable*/ ! fprintf(stderr,"reading data file\n"); if( (fd = open(datafile,0)) < 0 ) { fprintf( stderr, "can not open %s \n", datafile ); fprintf( stderr, "for help with conquer, type conquer -h\n"); ************** *** 176,182 printveg() { register int X, Y; ! printf("doing print of vegetation\n"); for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) putc(sct[X][Y].vegetation,stderr); putc('\n',stderr); --- 176,182 ----- printveg() { register int X, Y; ! fprintf(stderr,"doing print of vegetation\n"); for(Y=0;Y<MAPY;Y++) { for(X=0;X<MAPX;X++) putc(sct[X][Y].vegetation,stdout); putc('\n',stdout); ************** *** 178,185 register int X, Y; printf("doing print of vegetation\n"); for(Y=0;Y<MAPY;Y++) { ! for(X=0;X<MAPX;X++) putc(sct[X][Y].vegetation,stderr); ! putc('\n',stderr); } } #endif ADMIN --- 178,185 ----- register int X, Y; fprintf(stderr,"doing print of vegetation\n"); for(Y=0;Y<MAPY;Y++) { ! for(X=0;X<MAPX;X++) putc(sct[X][Y].vegetation,stdout); ! putc('\n',stdout); } } #endif ADMIN ************** *** 268,273 { int i; int nationid; /*current nation id */ printf("Conquer %s.%d: %s of Year %d, Turn %d\n",VERSION,PATCHLEVEL, PSEASON(TURN),YEAR(TURN), TURN); --- 268,277 ----- { int i; int nationid; /*current nation id */ + #ifdef TIMELOG + FILE *timefp, *fopen(); + char timestr[80]; + #endif /* TIMELOG */ printf("Conquer %s.%d: %s of Year %d, Turn %d\n",VERSION,PATCHLEVEL, PSEASON(TURN),YEAR(TURN), TURN); ************** *** 271,276 printf("Conquer %s.%d: %s of Year %d, Turn %d\n",VERSION,PATCHLEVEL, PSEASON(TURN),YEAR(TURN), TURN); printf("id name race class align score talons military civilians sect\n"); for (nationid=1; nationid<NTOTAL; nationid++) { if(!isntn(ntn[nationid].active)) continue; --- 275,287 ----- printf("Conquer %s.%d: %s of Year %d, Turn %d\n",VERSION,PATCHLEVEL, PSEASON(TURN),YEAR(TURN), TURN); + #ifdef TIMELOG + if ((timefp=fopen(timefile,"r"))!=NULL) { + fgets(timestr, 50, timefp); + printf("Last Update: %s", timestr); + fclose(timefp); + } + #endif /* TIMELOG */ printf("id name race class align score talons military civilians sect\n"); for (nationid=1; nationid<NTOTAL; nationid++) { if(!isntn(ntn[nationid].active)) continue; *** onewhelp.c --- newhelp.c ************** *** 160,165 fprintf(fp,"s/ZSTOCKCOST/%d/g\n",STOCKCOST); /* other defines */ fprintf(fp,"s/XNORANDEVENTS/%d/g\n",RANEVENT); fprintf(fp,"s/XLANDSEE/%d/g\n",LANDSEE); fprintf(fp,"s/XNAVYSEE/%d/g\n",NAVYSEE); --- 160,166 ----- fprintf(fp,"s/ZSTOCKCOST/%d/g\n",STOCKCOST); /* other defines */ + #ifdef RANEVENT fprintf(fp,"s/XNORANDEVENTS/%d/g\n",RANEVENT); #else fprintf(fp,"s/XNORANDEVENTS/0/g\n"); ************** *** 161,166 /* other defines */ fprintf(fp,"s/XNORANDEVENTS/%d/g\n",RANEVENT); fprintf(fp,"s/XLANDSEE/%d/g\n",LANDSEE); fprintf(fp,"s/XNAVYSEE/%d/g\n",NAVYSEE); fprintf(fp,"s/XARMYSEE/%d/g\n",ARMYSEE); --- 162,170 ----- /* other defines */ #ifdef RANEVENT fprintf(fp,"s/XNORANDEVENTS/%d/g\n",RANEVENT); + #else + fprintf(fp,"s/XNORANDEVENTS/0/g\n"); + #endif fprintf(fp,"s/XLANDSEE/%d/g\n",LANDSEE); fprintf(fp,"s/XNAVYSEE/%d/g\n",NAVYSEE); fprintf(fp,"s/XARMYSEE/%d/g\n",ARMYSEE); *** odata.c --- data.c ************** *** 181,186 char *exefile = "exec"; char *datafile = "data"; char *msgfile = "mesg"; char *sortname = "conqsort"; #ifdef ADMIN --- 181,187 ----- char *exefile = "exec"; char *datafile = "data"; char *msgfile = "mesg"; + char *timefile = "timelog"; char *sortname = "conqsort"; #ifdef ADMIN *** omagic.c --- magic.c ************** *** 377,384 if(newpower==DESTROYER) { /* this ifdef is so that destroyer only takes place in an update */ #ifdef ADMIN ! for(x=curntn->capx-3;x<=curntn->capx+3;x++) { ! for(y=curntn->capy-3;y<=curntn->capy+3;y++){ if((ONMAP(x,y)) &&(sct[x][y].altitude!=WATER) #ifdef DERVDESG --- 377,384 ----- if(newpower==DESTROYER) { /* this ifdef is so that destroyer only takes place in an update */ #ifdef ADMIN ! for(x=(int)curntn->capx-3;x<=(int)curntn->capx+3;x++) { ! for(y=(int)curntn->capy-3;y<=(int)curntn->capy+3;y++){ if((ONMAP(x,y)) &&(sct[x][y].altitude!=WATER) #ifdef DERVDESG ************** *** 723,730 return; } if(oldpower==DESTROYER) { ! for(x=curntn->capx-3;x<=curntn->capx+3;x++) { ! for(y=curntn->capy-3;y<=curntn->capy+3;y++){ if((ONMAP(x,y)) &&(sct[x][y].altitude!=WATER) &&((x!=curntn->capx) --- 723,730 ----- return; } if(oldpower==DESTROYER) { ! for(x=(int)curntn->capx-3;x<=(int)curntn->capx+3;x++) { ! for(y=(int)curntn->capy-3;y<=(int)curntn->capy+3;y++){ if((ONMAP(x,y)) &&(sct[x][y].altitude!=WATER) &&((x!=curntn->capx) *** onewlogin.c --- newlogin.c ************** *** 504,510 printf("how many purchasing points to spend?:"); scanf("%d",&temp); putchar('\n'); ! if(temp < points) { printf("You don't have enough points left"); } else if (temp < 0) { printf("Negative, huh? Who you trying to kid?"); --- 504,510 ----- printf("how many purchasing points to spend?:"); scanf("%d",&temp); putchar('\n'); ! if(temp > points) { printf("You don't have enough points left"); } else if (temp < 0) { printf("Negative, huh? Who you trying to kid?"); ************** *** 792,798 &&( sct[i][j].owner!=0)) placed=0; } } else { ! if(MAPX>24){ x = rand()%(MAPX-24)+12; y = rand()%(MAPY-24)+12; }else { --- 792,798 ----- &&( sct[i][j].owner!=0)) placed=0; } } else { ! if(MAPX>24 && MAPY>24){ x = rand()%(MAPX-24)+12; y = rand()%(MAPY-24)+12; }else { *** odisplay.c --- display.c ************** *** 408,415 for(nvynum=0;nvynum<MAXNAVY;nvynum++) if((P_NMSHP!=0)||(P_NWSHP!=0)||(P_NGSHP!=0)) ! for(i=P_NXLOC-xoffset-NAVYSEE;i<=P_NXLOC-xoffset+NAVYSEE;i++) ! for(j=P_NYLOC-yoffset-NAVYSEE;j<=P_NYLOC-yoffset+NAVYSEE;j++) if(i>=0 && j>=0 && i<SCREEN_X_SIZE && j<SCREEN_Y_SIZE) HAS_SEEN(i,j)=TRUE; --- 408,415 ----- for(nvynum=0;nvynum<MAXNAVY;nvynum++) if((P_NMSHP!=0)||(P_NWSHP!=0)||(P_NGSHP!=0)) ! for(i=(int)P_NXLOC-xoffset-NAVYSEE;i<=(int)P_NXLOC-xoffset+NAVYSEE;i++) ! for(j=(int)P_NYLOC-yoffset-NAVYSEE;j<=(int)P_NYLOC-yoffset+NAVYSEE;j++) if(i>=0 && j>=0 && i<SCREEN_X_SIZE && j<SCREEN_Y_SIZE) HAS_SEEN(i,j)=TRUE; ************** *** 415,422 for(armynum=0;armynum<MAXARM;armynum++) if(P_ASOLD>0) ! for(i=P_AXLOC-xoffset-ARMYSEE;i<=P_AXLOC-xoffset+ARMYSEE;i++) ! for(j=P_AYLOC-yoffset-ARMYSEE;j<=P_AYLOC-yoffset+ARMYSEE;j++) if(i>=0 && j>=0 && i<SCREEN_X_SIZE && j<SCREEN_Y_SIZE) HAS_SEEN(i,j)=TRUE; --- 415,422 ----- for(armynum=0;armynum<MAXARM;armynum++) if(P_ASOLD>0) ! for(i=(int)P_AXLOC-xoffset-ARMYSEE;i<=(int)P_AXLOC-xoffset+ARMYSEE;i++) ! for(j=(int)P_AYLOC-yoffset-ARMYSEE;j<=(int)P_AYLOC-yoffset+ARMYSEE;j++) if(i>=0 && j>=0 && i<SCREEN_X_SIZE && j<SCREEN_Y_SIZE) HAS_SEEN(i,j)=TRUE; *** omain.c --- main.c ************** *** 211,222 } initscr(); /* SET UP THE SCREEN */ - copyscreen(); /* copyright screen */ - /* note the getch() later - everything between - now and then is non-interactive */ - init_hasseen(); /* now we know how big the screen is, - we can init that array! */ - /* check terminal size */ if (COLS<80 || LINES<24) { fprintf(stderr,"%s: terminal should be at least 80x24\n",argv[0]); --- 211,216 ----- } initscr(); /* SET UP THE SCREEN */ /* check terminal size */ if (COLS<80 || LINES<24) { fprintf(stderr,"%s: terminal should be at least 80x24\n",argv[0]); ************** *** 222,228 fprintf(stderr,"%s: terminal should be at least 80x24\n",argv[0]); fprintf(stderr,"please try again with a different setup\n"); beep(); - refresh(); getch(); bye(FALSE); } --- 216,221 ----- fprintf(stderr,"%s: terminal should be at least 80x24\n",argv[0]); fprintf(stderr,"please try again with a different setup\n"); beep(); getch(); bye(FALSE); } ************** *** 227,232 bye(FALSE); } strcpy(fison,"START"); /* just in case you abort early */ crmode(); /* cbreak mode */ --- 220,231 ----- bye(FALSE); } + copyscreen(); /* copyright screen */ + /* note the getch() later - everything between + now and then is non-interactive */ + init_hasseen(); /* now we know how big the screen is, + we can init that array! */ + strcpy(fison,"START"); /* just in case you abort early */ crmode(); /* cbreak mode */ ************** *** 263,269 #endif TRADE if(curntn->capx>15) { xcurs=15; ! xoffset= (curntn->capx-15); } else { xcurs= curntn->capx; xoffset= 0; --- 262,268 ----- #endif TRADE if(curntn->capx>15) { xcurs=15; ! xoffset= ((int)curntn->capx-15); } else { xcurs= curntn->capx; xoffset= 0; ************** *** 270,276 } if(curntn->capy>10) { ycurs=10; ! yoffset= (curntn->capy-10); } else { yoffset= 0; ycurs= curntn->capy; --- 269,275 ----- } if(curntn->capy>10) { ycurs=10; ! yoffset= ((int)curntn->capy-10); } else { yoffset= 0; ycurs= curntn->capy; ************** *** 692,698 } else { if(curntn->capx>15) { xcurs=15; ! xoffset= (curntn->capx-15); } else { xcurs= curntn->capx; xoffset= 0; --- 691,697 ----- } else { if(curntn->capx>15) { xcurs=15; ! xoffset= ((int)curntn->capx-15); } else { xcurs= curntn->capx; xoffset= 0; ************** *** 699,705 } if(curntn->capy>10) { ycurs=10; ! yoffset= (curntn->capy-10); } else { yoffset= 0; ycurs= curntn->capy; --- 698,704 ----- } if(curntn->capy>10) { ycurs=10; ! yoffset= ((int)curntn->capy-10); } else { yoffset= 0; ycurs= curntn->capy; ************** *** 1012,1017 void copyscreen() { clear(); standout(); mvprintw(8,28,"Conquer %s.%d",VERSION,PATCHLEVEL); --- 1011,1021 ----- void copyscreen() { + #ifdef TIMELOG + FILE *timefp, *fopen(); + char string[80]; + #endif /* TIMELOG */ + clear(); standout(); mvprintw(8,COLS/2-12,"Conquer %s.%d",VERSION,PATCHLEVEL); ************** *** 1014,1020 { clear(); standout(); ! mvprintw(8,28,"Conquer %s.%d",VERSION,PATCHLEVEL); standend(); mvaddstr(10,19, "Copyright (c) 1988 by Edward M Barlow"); mvaddstr(11,18,"Written Edward M Barlow and Adam Bryant"); --- 1018,1024 ----- clear(); standout(); ! mvprintw(8,COLS/2-12,"Conquer %s.%d",VERSION,PATCHLEVEL); standend(); mvaddstr(10,COLS/2-21, "Copyright (c) 1988 by Edward M Barlow"); mvaddstr(11,COLS/2-22,"Written Edward M Barlow and Adam Bryant"); ************** *** 1016,1029 standout(); mvprintw(8,28,"Conquer %s.%d",VERSION,PATCHLEVEL); standend(); ! mvaddstr(10,19, "Copyright (c) 1988 by Edward M Barlow"); ! mvaddstr(11,18,"Written Edward M Barlow and Adam Bryant"); ! mvaddstr(12,26,"All Rights Reserved"); ! mvaddstr(LINES-7,19,"This version is for personal use only"); ! mvaddstr(LINES-5,8,"It is expressly forbidden port this software to any form of"); ! mvaddstr(LINES-4,8,"Personal Computer or to redistribute this software without"); ! mvaddstr(LINES-3,14,"the permission of Edward Barlow or Adam Bryant"); ! mvprintw(LINES-1, 60, "PRESS ANY KEY"); refresh(); } --- 1020,1040 ----- standout(); mvprintw(8,COLS/2-12,"Conquer %s.%d",VERSION,PATCHLEVEL); standend(); ! mvaddstr(10,COLS/2-21, "Copyright (c) 1988 by Edward M Barlow"); ! mvaddstr(11,COLS/2-22,"Written Edward M Barlow and Adam Bryant"); ! mvaddstr(12,COLS/2-12,"All Rights Reserved"); ! mvaddstr(LINES-8,COLS/2-21,"This version is for personal use only"); ! mvaddstr(LINES-6,COLS/2-32,"It is expressly forbidden port this software to any form of"); ! mvaddstr(LINES-5,COLS/2-32,"Personal Computer or to redistribute this software without"); ! mvaddstr(LINES-4,COLS/2-26,"the permission of Edward Barlow or Adam Bryant"); ! #ifdef TIMELOG ! if ((timefp=fopen(timefile,"r"))!=NULL) { ! fgets(string, 50, timefp); ! mvprintw(LINES-1, 0, "Last Update: %s", string); ! fclose(timefp); ! } ! #endif /* TIMELOG */ ! mvprintw(LINES-1, COLS-20, "PRESS ANY KEY"); refresh(); } *** onpc.c --- npc.c ************** *** 29,35 int x,y; /* FOR TESTING OF WHAT THE ATTRACTIVENESS ENDS UP LIKE */ printf("Attractiveness for sectors around CAPITAL at %d %d veg alt des\n",curntn->capx,curntn->capy); ! for(y=curntn->capy-3;y<curntn->capy+4;y++) { printf("\n"); for(x=curntn->capx-3;x<curntn->capx+4;x++) if(ONMAP(x,y)) { if( sct[x][y].altitude != WATER ) { --- 29,35 ----- int x,y; /* FOR TESTING OF WHAT THE ATTRACTIVENESS ENDS UP LIKE */ printf("Attractiveness for sectors around CAPITAL at %d %d veg alt des\n",curntn->capx,curntn->capy); ! for(y=(int)curntn->capy-3;y<(int)curntn->capy+4;y++) { printf("\n"); for(x=(int)curntn->capx-3;x<(int)curntn->capx+4;x++) if(ONMAP(x,y)) { if( sct[x][y].altitude != WATER ) { ************** *** 31,37 printf("Attractiveness for sectors around CAPITAL at %d %d veg alt des\n",curntn->capx,curntn->capy); for(y=curntn->capy-3;y<curntn->capy+4;y++) { printf("\n"); ! for(x=curntn->capx-3;x<curntn->capx+4;x++) if(ONMAP(x,y)) { if( sct[x][y].altitude != WATER ) { printf("[%2d,%2d] ",x,y); } --- 31,37 ----- printf("Attractiveness for sectors around CAPITAL at %d %d veg alt des\n",curntn->capx,curntn->capy); for(y=(int)curntn->capy-3;y<(int)curntn->capy+4;y++) { printf("\n"); ! for(x=(int)curntn->capx-3;x<(int)curntn->capx+4;x++) if(ONMAP(x,y)) { if( sct[x][y].altitude != WATER ) { printf("[%2d,%2d] ",x,y); } ************** *** 37,43 } } printf("\n"); ! for(x=curntn->capx-3;x<curntn->capx+4;x++) if(ONMAP(x,y)) { if( sct[x][y].altitude != WATER ) { printf("%5d %c%c%c " ,attr[x][y] --- 37,43 ----- } } printf("\n"); ! for(x=(int)curntn->capx-3;x<(int)curntn->capx+4;x++) if(ONMAP(x,y)) { if( sct[x][y].altitude != WATER ) { printf("%5d %c%c%c " ,attr[x][y] ************** *** 111,118 } count=0; while( TRUE ) { ! x=P_AXLOC+rand()%5-2; ! y=P_AYLOC+rand()%5-2; if( count++ > 100 ) { P_ASOLD=0; --- 111,118 ----- } count=0; while( TRUE ) { ! x=(int)P_AXLOC+rand()%5-2; ! y=(int)P_AYLOC+rand()%5-2; if( count++ > 100 ) { P_ASOLD=0; ************** *** 122,128 if(( x==P_AXLOC && y==P_AYLOC ) ||(!ONMAP(x,y) ||(!is_habitable(x,y))) ! ||(!land_reachp(P_AXLOC,P_AYLOC,x,y,curntn->maxmove,country))) continue; P_AXLOC=x; P_AYLOC=y; --- 122,129 ----- if(( x==P_AXLOC && y==P_AYLOC ) ||(!ONMAP(x,y) ||(!is_habitable(x,y))) ! ||(!land_reachp((int)P_AXLOC,(int)P_AYLOC, ! x,y,curntn->maxmove,country))) continue; P_AXLOC=x; P_AYLOC=y; ************** *** 167,174 P_ASOLD /= 100; } P_AMOVE=(curntn->maxmove * *(unitmove+P_ATYPE%UTYPE))/10; ! x=P_AXLOC+rand()%2-1; ! y=P_AYLOC+rand()%2-1; if(ONMAP(x,y)&&(is_habitable(x,y)) &&(land_reachp(P_AXLOC,P_AYLOC,x,y,P_AMOVE,country))){ P_AXLOC=x; --- 168,175 ----- P_ASOLD /= 100; } P_AMOVE=(curntn->maxmove * *(unitmove+P_ATYPE%UTYPE))/10; ! x=(int)P_AXLOC+rand()%3-1; ! y=(int)P_AYLOC+rand()%3-1; if(ONMAP(x,y)&&(is_habitable(x,y)) &&(land_reachp((int)P_AXLOC,(int)P_AYLOC,x,y,P_AMOVE,country))){ P_AXLOC=x; ************** *** 170,176 x=P_AXLOC+rand()%2-1; y=P_AYLOC+rand()%2-1; if(ONMAP(x,y)&&(is_habitable(x,y)) ! &&(land_reachp(P_AXLOC,P_AYLOC,x,y,P_AMOVE,country))){ P_AXLOC=x; P_AYLOC=y; /*if owned & unoccupied you take & people flee*/ --- 171,177 ----- x=(int)P_AXLOC+rand()%3-1; y=(int)P_AYLOC+rand()%3-1; if(ONMAP(x,y)&&(is_habitable(x,y)) ! &&(land_reachp((int)P_AXLOC,(int)P_AYLOC,x,y,P_AMOVE,country))){ P_AXLOC=x; P_AYLOC=y; /*if owned & unoccupied you take & people flee*/ ************** *** 244,251 for(y=0;y<MAXNAVY;y++) if(ntn[x].nvy[y].warships!=0 || ntn[x].nvy[y].merchant!=0 || ntn[x].nvy[y].galleys!=0) { ! if((abs(ntn[x].nvy[y].xloc-P_NXLOC)<=PRTZONE) ! &&(abs(ntn[x].nvy[y].yloc-P_NYLOC)<=PRTZONE)) { P_NXLOC= ntn[x].nvy[y].xloc; P_NYLOC= ntn[x].nvy[y].yloc; } --- 245,252 ----- for(y=0;y<MAXNAVY;y++) if(ntn[x].nvy[y].warships!=0 || ntn[x].nvy[y].merchant!=0 || ntn[x].nvy[y].galleys!=0) { ! if((abs((int)ntn[x].nvy[y].xloc-(int)P_NXLOC)<=PRTZONE) ! &&(abs((int)ntn[x].nvy[y].yloc-(int)P_NYLOC)<=PRTZONE)) { P_NXLOC= ntn[x].nvy[y].xloc; P_NYLOC= ntn[x].nvy[y].yloc; } ************** *** 359,366 for(armynum=1;armynum<MAXARM;armynum++) if(P_ASOLD>0){ /* move army back if too far out */ ok = 0; ! for(x=P_AXLOC-3;x<=P_AXLOC+3;x++) ! for(y=P_AYLOC-3;y<=P_AYLOC+3;y++) if((ONMAP(x,y))&&(sct[x][y].owner==country)) ok=1; if(ok==0){ P_AXLOC=curntn->capx; --- 360,367 ----- for(armynum=1;armynum<MAXARM;armynum++) if(P_ASOLD>0){ /* move army back if too far out */ ok = 0; ! for(x=(int)P_AXLOC-3;x<=(int)P_AXLOC+3;x++) ! for(y=(int)P_AYLOC-3;y<=(int)P_AYLOC+3;y++) if((ONMAP(x,y))&&(sct[x][y].owner==country)) ok=1; if(ok==0){ P_AXLOC=curntn->capx; ************** *** 727,734 hostile-=20; } /* if next to capitol, they dont like you */ ! for(X=curntn->capx-1;X<=curntn->capx+1;X++) ! for(Y=curntn->capy-1;Y<=curntn->capy+1;Y++) if(ONMAP(X,Y)) { if(sct[X][Y].owner == x) { friendly-=10; hostile +=10; --- 728,736 ----- hostile-=20; } /* if next to capitol, they dont like you */ ! for(X=(int)curntn->capx-1;X<=(int)curntn->capx+1;X++) ! for(Y=(int)curntn->capy-1;Y<=(int)curntn->capy+1;Y++) ! if(ONMAP(X,Y)) { if(sct[X][Y].owner == x) { friendly-=10; hostile +=10; ************** *** 840,846 endy=MAPY; } else { if( curntn->capx > NPCTOOFAR ) ! stx=curntn->capx-NPCTOOFAR; else stx=0; if( curntn->capy > NPCTOOFAR ) sty=curntn->capy-NPCTOOFAR; --- 842,848 ----- endy=MAPY; } else { if( curntn->capx > NPCTOOFAR ) ! stx=(int)curntn->capx-NPCTOOFAR; else stx=0; if( curntn->capy > NPCTOOFAR ) sty=(int)curntn->capy-NPCTOOFAR; ************** *** 843,849 stx=curntn->capx-NPCTOOFAR; else stx=0; if( curntn->capy > NPCTOOFAR ) ! sty=curntn->capy-NPCTOOFAR; else sty=0; if( curntn->capx + NPCTOOFAR < MAPX ) endx=curntn->capx+NPCTOOFAR; --- 845,851 ----- stx=(int)curntn->capx-NPCTOOFAR; else stx=0; if( curntn->capy > NPCTOOFAR ) ! sty=(int)curntn->capy-NPCTOOFAR; else sty=0; if( (int)curntn->capx + NPCTOOFAR < MAPX ) endx=(int)curntn->capx+NPCTOOFAR; ************** *** 845,852 if( curntn->capy > NPCTOOFAR ) sty=curntn->capy-NPCTOOFAR; else sty=0; ! if( curntn->capx + NPCTOOFAR < MAPX ) ! endx=curntn->capx+NPCTOOFAR; else endx=MAPX; if( curntn->capy + NPCTOOFAR < MAPY ) endy=curntn->capy+NPCTOOFAR; --- 847,854 ----- if( curntn->capy > NPCTOOFAR ) sty=(int)curntn->capy-NPCTOOFAR; else sty=0; ! if( (int)curntn->capx + NPCTOOFAR < MAPX ) ! endx=(int)curntn->capx+NPCTOOFAR; else endx=MAPX; if( (int)curntn->capy + NPCTOOFAR < MAPY ) endy=(int)curntn->capy+NPCTOOFAR; ************** *** 848,855 if( curntn->capx + NPCTOOFAR < MAPX ) endx=curntn->capx+NPCTOOFAR; else endx=MAPX; ! if( curntn->capy + NPCTOOFAR < MAPY ) ! endy=curntn->capy+NPCTOOFAR; else endy=MAPY; } --- 850,857 ----- if( (int)curntn->capx + NPCTOOFAR < MAPX ) endx=(int)curntn->capx+NPCTOOFAR; else endx=MAPX; ! if( (int)curntn->capy + NPCTOOFAR < MAPY ) ! endy=(int)curntn->capy+NPCTOOFAR; else endy=MAPY; } ************** *** 1099,1106 for(x=stx;x<endx;x++) for(y=sty;y<endy;y++) { if((sct[x][y].owner != country ) &&( sct[x][y].owner != 0 ) ! &&( abs(x-curntn->capx)>2 ) ! &&( abs(y-curntn->capy)>2 ) &&( ntn[country].dstatus[sct[x][y].owner]<WAR) &&( ntn[sct[x][y].owner].dstatus[country]<WAR) &&( ntn[country].dstatus[sct[x][y].owner]>ALLIED)) --- 1101,1108 ----- for(x=stx;x<endx;x++) for(y=sty;y<endy;y++) { if((sct[x][y].owner != country ) &&( sct[x][y].owner != 0 ) ! &&( abs(x-(int)curntn->capx)>2 ) ! &&( abs(y-(int)curntn->capy)>2 ) &&( ntn[country].dstatus[sct[x][y].owner]<WAR) &&( ntn[sct[x][y].owner].dstatus[country]<WAR) &&( ntn[country].dstatus[sct[x][y].owner]>ALLIED)) ************** *** 1126,1133 register int x,y; /* around capitol */ ! for(x=curntn->capx-4;x<=curntn->capx+4;x++){ ! for(y=curntn->capy-4;y<=curntn->capy+4;y++){ if((ONMAP(x,y))&&(sct[x][y].owner==0)) { attr[x][y] += 700; } --- 1128,1135 ----- register int x,y; /* around capitol */ ! for(x=(int)curntn->capx-4;x<=(int)curntn->capx+4;x++){ ! for(y=(int)curntn->capy-4;y<=(int)curntn->capy+4;y++){ if((ONMAP(x,y))&&(sct[x][y].owner==0)) { attr[x][y] += 700; } ************** *** 1167,1174 ntn[natn].arm[x].sold/10; /*plus 80 if near your capitol */ ! for(x=curntn->capx-1;x<=curntn->capy+1;x++){ ! for(y=curntn->capy-1;y<=curntn->capy+1;y++){ if(ONMAP(x,y)) attr[x][y]+=80; } } --- 1169,1176 ----- ntn[natn].arm[x].sold/10; /*plus 80 if near your capitol */ ! for(x=(int)curntn->capx-1;x<=(int)curntn->capy+1;x++){ ! for(y=(int)curntn->capy-1;y<=(int)curntn->capy+1;y++){ if(ONMAP(x,y)) attr[x][y]+=80; } }