Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!ames!necntc!linus!philabs!micomvax!zap!fortin From: fortin@zap.UUCP (Denis Fortin) Newsgroups: comp.sources.games.bugs Subject: --- Fixes for Conquer on 16-bit machines --- Message-ID: <406@zap.UUCP> Date: 26 Feb 88 16:06:35 GMT Reply-To: fortin@zap.UUCP (Denis Fortin) Organization: (none), Montreal QC, Canada Lines: 1821 Greetings... For the past week or so I've toyed with Conquer. Now getting it to run on a 16-bit machine (80286) is no small task: there are many places where integers are assumed to be quite large (most notably, the power constants, which go up to 2**21 are often stuffed inside ints!). In addition, some printfs needed "l"'s added in "%d"'s. Anyway, this (rather long) message contains a list of all the mods I've made (including the fix for the rectangular world). WARNING: There is still a problem. After I run "conquer -x", the world seems to develop sectors where the number of people is < 0. This causes diagnostics when the program starts, so that's most probably a bug :-) ! I guess somewhere in update.c there is an int that overflows and becomes negative. If I have some time, I'll try to track it down and report the fix. NOTE: Obviously, these are not official fixes. I assume that Ed will see this message and consider including them in future releases. I'm willing to discuss these fixes by EMail... Denis Fortin fortin@zap.uucp Now, here come the diffs: ------------------------------------------------------------------------------ *** cexecute.orig --- cexecute.c ************** *** 130,136 case CHG_MGK: ntn[country].powers|=long2var; if(ntn[country].powers!=longvar){ ! printf("\nERROR ON MAGIC READ %ld != %d (or of %d)",longvar,ntn[country].powers,long2var); getchar(); } exenewmgk(long2var); --- 130,136 ----- case CHG_MGK: ntn[country].powers|=long2var; if(ntn[country].powers!=longvar){ ! printf("\nERROR ON MAGIC READ %ld != %ld (or of %ld)",longvar,ntn[country].powers,long2var); getchar(); } exenewmgk(long2var); *** combat.orig --- combat.c ************** *** 464,470 short armynum,nvynum; int save,i,j; /*set occ to 0*/ ! for(i=0;i