Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site uwmacc.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!whuxlm!harpo!decvax!mcnc!philabs!cmcl2!seismo!uwvax!uwmacc!myers From: myers@uwmacc.UUCP (Latitudinarian Lobster) Newsgroups: net.games.hack Subject: Hack 1.0.2 fix for mellow shopkeepers. Message-ID: <1185@uwmacc.UUCP> Date: Tue, 4-Jun-85 19:47:16 EDT Article-I.D.: uwmacc.1185 Posted: Tue Jun 4 19:47:16 1985 Date-Received: Thu, 6-Jun-85 06:50:20 EDT Distribution: net Organization: UWisconsin-Madison Academic Comp Center Lines: 86 I've always thought it a bit funny that shopkeepers didn't mind you having a box or pickaxe IN the shop -- you are only checked when you enter. It was recently pointed out that you can currently always get in the front door with a pickaxe if you are patient enough. Below is a context diff for a patch (with a couple of older ones included) which will cause the shopkeeper to become angry if you are ever in his shop with a box or a pickaxe (aside from standing on the front door). *** hack.shk.c.old Mon Apr 29 18:42:44 1985 --- hack.shk.c Tue Jun 4 18:16:25 1985 *************** *** 233,239 if(ANGRY(shopkeeper) && strncmp(ESHK(shopkeeper)->customer,plname,PL_NSIZ)) NOTANGRY(shopkeeper) = 1; - billobjs = 0; return; } shopkeeper = 0; --- 233,238 ----- if(ANGRY(shopkeeper) && strncmp(ESHK(shopkeeper)->customer,plname,PL_NSIZ)) NOTANGRY(shopkeeper) = 1; return; } shopkeeper = 0; *************** *** 816,821 else { uondoor = (u.ux == ESHK(shkp)->shd.x && u.uy == ESHK(shkp)->shd.y); if(uondoor) { if(ESHK(shkp)->billct) pline("Hello %s! Will you please pay before leaving?", --- 815,821 ----- else { uondoor = (u.ux == ESHK(shkp)->shd.x && u.uy == ESHK(shkp)->shd.y); + badinv = (carrying(PICK_AXE) || carrying(ICE_BOX)); if(uondoor) { if(ESHK(shkp)->billct) pline("Hello %s! Will you please pay before leaving?", *************** *** 820,826 if(ESHK(shkp)->billct) pline("Hello %s! Will you please pay before leaving?", plname); - badinv = (carrying(PICK_AXE) || carrying(ICE_BOX)); if(satdoor && badinv) return(0); avoid = !badinv; --- 820,825 ----- if(ESHK(shkp)->billct) pline("Hello %s! Will you please pay before leaving?", plname); if(satdoor && badinv) return(0); avoid = !badinv; *************** *** 824,832 if(satdoor && badinv) return(0); avoid = !badinv; ! } else { ! avoid = (u.uinshop && dist(gx,gy) > 8); ! badinv = FALSE; } if(((!ESHK(shkp)->robbed && !ESHK(shkp)->billct) || avoid) --- 823,833 ----- if(satdoor && badinv) return(0); avoid = !badinv; ! } else { /* uwmacc!myers; get angry */ ! if(u.uinshop && badinv) { /* if you're not in doorway */ ! avoid = FALSE; ! setmangry(shkp); ! } else avoid = (u.uinshop && dist(gx,gy) > 8); } if(((!ESHK(shkp)->robbed && !ESHK(shkp)->billct) || avoid)