[net.games.emp] Bugs with move & checkpoint.

dudek@utcsrgv.UUCP (Gregory Dudek) (03/09/84)

- (Anti bug) ------
  There is a serious bug in our 4.1BSD version of empire or April 17,1982.
If you move into a checkpointed sector owned by somebody
else, and don't know the code, the game tells you that you
have been arrested, then says "'e' invalid direction (etc.)"
and then lets you happily move around through the other country's
checkpointed sectors. In fact, once this has happened, it
doesn't charge you any more mobility!
  The cause of this seems to be the fact that the "stop" direction
of the move command was changed from "e" in the old versions of
the game, to the current (by our standards) "h".
  In order to fix this, a patch to move.o is required (adb -w move.o).  
Extract it from empcom.a ("ar x empcom.a move.o) and patch the location
79c so that the instruction instruction becomes "movb $68,(r11)".
The old code is:
   cmpw  -4(fp),$-2
   bnequ acf
   movb  $65,(r11) <-- patch the 65 ("e") to a 68 ("h")
   pushal 130c     (this is the "you have been arrested" msg address)
   brw   555

  Put this back again via "ar r empcom.a move.o" and do a make
of BIN/emp1.
  Sorry if I've given anything away, but if you use checkpointing,
chances are somebody has blundered onto this already.

   Gregory Dudek
   aka Nexus
   {cornell,decvax,ihnp4,linus,utzoo,uw-beaver}!utcsrgv!dudek
-- 
   Gregory Dudek
   {cornell,decvax,ihnp4,linus,utzoo,uw-beaver}!utcsrgv!dudek