Subject: YACNHEA (long)
From: Big Gaute <[email-masked]>
Date: 15 Feb 2000 22:51:33 +0000
Newsgroups: rec.games.roguelike.nethack

Yet Another Clumsy Nethack Extension Attempt.

Having played nethack for a while, I decided to have a look at the
sources and play around for a bit.  After adding a couple of monsters
and so on, I decided to try something slightly more difficult: adding
a lightsaber.  Now I now that SLASH'EM et all have already got
lightsabers and such, but I wanted to do this for kicks, not for
utility.

Lightsabers are funny things.  They should be weapons.  You should be
able to turn them on and off.  They should do different damage
depending on whether they are on or off.  Also, if on then they are a
light source.  To make things interesting, if the lightsaber is rusty
/ eroded there should be a healthy chance of the lightsaber
spontaneously giving out when you're trying to whack something.

I have to say that the nethack sources are very well laid out.  One
possible exception is the fact that eg. attack code is duplicated a
few times, I think I had to put in similar checks in as much as three
different places at one point.

Below is the bulk of my modifications to the game.  If anyone would
take a look at them and comment, I would be very happy.

Things not implemented yet:

* What to do when a lit lightsaber is swallowed?
* What if it is kicked or thrown?
* Teaching monsters to turn lightsabers on and off at clever times.
* Do different damage when lit / unlit.

As far as I can see from the sources, the damage done when a monster
hits with a weapon is dependent on the _monster_ rather than the
actual weapon.  Is this correct?

diff -ur nethack-3.3.0/include/skills.h gautehack/include/skills.h
--- nethack-3.3.0/include/skills.h	Sat Dec 11 05:20:51 1999
+++ gautehack/include/skills.h	Sat Feb 12 00:05:52 2000
@@ -50,6 +50,39 @@
 #define P_WHIP              28
 #define P_UNICORN_HORN      29	/* last weapon */
 #define P_FIRST_WEAPON      P_DAGGER
+#ifdef GAUTE
+/* In order to squeeze in the lightsaber, I had to copy an renumber the
+   rest of this stuff.  Argh. */
+#define P_LIGHTSABER        30 /* Actually, this is the last weapon. */
+#define P_LAST_WEAPON       P_LIGHTSABER
+
+/* Spell Skills added by Larry Stewart-Zerba */
+#define P_ATTACK_SPELL      31
+#define P_HEALING_SPELL     32
+#define P_DIVINATION_SPELL  33
+#define P_ENCHANTMENT_SPELL 34
+#define P_CLERIC_SPELL      35
+#define P_ESCAPE_SPELL      36
+#define P_MATTER_SPELL      37
+#define P_FIRST_SPELL		P_ATTACK_SPELL
+#define P_LAST_SPELL		P_MATTER_SPELL
+
+/* Other types of combat */
+#define P_BARE_HANDED_COMBAT	38
+#define P_MARTIAL_ARTS		P_BARE_HANDED_COMBAT	/* Role distinguishes */
+#define P_TWO_WEAPON_COMBAT	39	/* Finally implemented */
+#ifdef STEED
+#define P_RIDING		40	/* How well you control your steed */
+#define P_LAST_H_TO_H		P_RIDING
+#else
+#define P_LAST_H_TO_H		P_TWO_WEAPON_COMBAT
+#endif
+#define P_FIRST_H_TO_H		P_BARE_HANDED_COMBAT
+
+#define P_NUM_SKILLS		(P_LAST_H_TO_H+1)
+
+#else
+
 #define P_LAST_WEAPON       P_UNICORN_HORN
 
 /* Spell Skills added by Larry Stewart-Zerba */
@@ -76,6 +109,8 @@
 #define P_FIRST_H_TO_H		P_BARE_HANDED_COMBAT
 
 #define P_NUM_SKILLS		(P_LAST_H_TO_H+1)
+
+#endif
 
 /* These roles qualify for a martial arts bonus */
 #define martial_bonus()	(Role_if(PM_SAMURAI) || Role_if(PM_MONK))
diff -ur nethack-3.3.0/src/Makefile gautehack/src/Makefile
--- nethack-3.3.0/src/Makefile	Tue Feb 15 21:32:39 2000
+++ gautehack/src/Makefile	Fri Feb 11 17:13:21 2000
@@ -112,7 +112,7 @@
 
 # flags for Linux
 #   compile normally
-CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include
+CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include -DGAUTE -DWIZARD=\"gs234\"
 LFLAGS = -L/usr/X11R6/lib
 #   OR compile backwards compatible a.out format
 # CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include -I/usr/X11/include
Binary files nethack-3.3.0/src/allmain.o and gautehack/src/allmain.o differ
Binary files nethack-3.3.0/src/alloc.o and gautehack/src/alloc.o differ
diff -ur nethack-3.3.0/src/apply.c gautehack/src/apply.c
--- nethack-3.3.0/src/apply.c	Sat Dec 11 05:20:53 1999
+++ gautehack/src/apply.c	Tue Feb 15 21:38:04 2000
@@ -987,7 +987,11 @@
 
 	if (obj->lamplit) {
 	    if (obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP ||
-		    obj->otyp == BRASS_LANTERN || obj->otyp == POT_OIL) {
+		    obj->otyp == BRASS_LANTERN || obj->otyp == POT_OIL
+#ifdef GAUTE
+		|| obj->otyp == LIGHTSABER
+#endif		
+		) {
 		(void) get_obj_location(obj, &x, &y, 0);
 		if (obj->where == OBJ_MINVENT ? cansee(x,y) : !Blind)
 		    pline("%s goes out!", Yname2(obj));
@@ -999,6 +1003,39 @@
 	return FALSE;
 }
 
+#ifdef GAUTE
+void
+use_lightsaber(obj)
+struct obj *obj;
+{
+  char buf[BUFSZ];
+  
+  if (obj->lamplit)
+    {
+      You("turn of %s.", yname (obj));
+      end_burn (obj, FALSE);
+      return;
+    }
+  else
+    {
+      if (uwep != obj && !wield_tool (obj))
+	return;
+      
+      if ((obj->cursed && !rn2(2))
+	  || (greatest_erosion (obj) > !rnl(5))
+	  || (obj->cursed && greatest_erosion (obj)))
+	{
+	  pline ("Static sputters from %s for a moment and then dies.",
+		 yname (obj));
+	  return;
+	}
+      pline ("A beam of pure energy streams forth from %s!",
+	     yname (obj));
+      begin_burn (obj, FALSE);
+    }
+}
+#endif
+
 STATIC_OVL void
 use_lamp(obj)
 struct obj *obj;
@@ -2413,6 +2450,11 @@
 	case DWARVISH_MATTOCK:
 		res = use_pick_axe(obj);
 		break;
+#ifdef GAUTE
+	case LIGHTSABER:
+	        use_lightsaber (obj);
+	        break;
+#endif
 	case TINNING_KIT:
 		use_tinning_kit(obj);
 		break;
diff -ur nethack-3.3.0/src/invent.c gautehack/src/invent.c
--- nethack-3.3.0/src/invent.c	Sat Dec 11 05:20:54 1999
+++ gautehack/src/invent.c	Tue Feb 15 20:32:23 2000
@@ -736,6 +736,11 @@
 			!strcmp(word, "untrap with")) &&
 		     /* Picks, axes, pole-weapons, bullwhips */
 		    ((otmp->oclass == WEAPON_CLASS && !is_pick(otmp) &&
+#ifdef GAUTE
+		      /* This means that we will be offered the lightsaber
+			 when untrapping.  Oh well. */
+		      otmp->otyp != LIGHTSABER &&
+#endif
 		      !is_pole(otmp) && otyp != BULLWHIP)
 		|| (otmp->oclass == POTION_CLASS &&
 		     /* only applicable potion is oil, and it will only
@@ -2063,6 +2068,10 @@
 			| W_SADDLE
 #endif
 			)) != 0L) return TRUE;
+#ifdef GAUTE
+	if (obj->otyp == LIGHTSABER && obj->lamplit)
+	  return TRUE;
+#endif
 	if (obj->oclass != TOOL_CLASS) return FALSE;
 	return (boolean)(obj == uwep || obj->lamplit ||
 				(obj->otyp == LEASH && obj->leashmon));
diff -ur nethack-3.3.0/src/light.c gautehack/src/light.c
--- nethack-3.3.0/src/light.c	Sat Dec 11 05:20:54 1999
+++ gautehack/src/light.c	Tue Feb 15 00:01:46 2000
@@ -476,7 +476,16 @@
     struct obj *obj;
 {
     /* so far, only burning objects shed light */
-    return obj_is_burning(obj);
+    return
+#ifdef GAUTE
+      (
+#endif
+      obj_is_burning(obj)
+#ifdef GAUTE
+      || (obj->otyp == LIGHTSABER && obj->lamplit))
+#endif
+      ;
+
 }
 
 /* Return TRUE if sheds light AND will be snuffed by end_burn(). */
diff -ur nethack-3.3.0/src/mhitm.c gautehack/src/mhitm.c
--- nethack-3.3.0/src/mhitm.c	Sat Dec 11 05:20:54 1999
+++ gautehack/src/mhitm.c	Tue Feb 15 22:32:31 2000
@@ -424,7 +424,10 @@
 		pline("%s %s.", buf, mon_nam(mdef));
 	}
 	for (obj = mdef->minvent; obj; obj = obj->nobj)
-	    (void) snuff_lit(obj);
+#ifdef GAUTE
+	  /* FIXME: Kill monsters chewing on lightsabers? */
+#endif
+	  (void) snuff_lit(obj);
 
 	/*
 	 *  All of this maniuplation is needed to keep the display correct.
@@ -561,7 +564,13 @@
 			tmp = 0;
 		else if(mattk->aatyp == AT_WEAP) {
 		    if(otmp) {
-			if (otmp->otyp == CORPSE &&
+#ifdef GAUTE
+		        if (otmp->otyp == LIGHTSABER
+			    && cursed (otmp)
+			    && (greatest_erosion (otmp) > rn2(5)))
+			  snuff_lit (otmp);
+#endif
+		        if (otmp->otyp == CORPSE &&
 				touch_petrifies(&mons[otmp->corpsenm]))
 			    goto do_stone_goto_label;
 			tmp += dmgval(otmp, mdef);
diff -ur nethack-3.3.0/src/mhitu.c gautehack/src/mhitu.c
--- nethack-3.3.0/src/mhitu.c	Sat Dec 11 05:20:54 1999
+++ gautehack/src/mhitu.c	Tue Feb 15 21:02:44 2000
@@ -605,7 +605,16 @@
 				    mswings(mtmp, otmp);
 				}
 				if(tmp > (j = dieroll = rnd(20+i)))
+#ifdef GAUTE
+				  {
+				    if (otmp && otmp->otyp == LIGHTSABER
+					&& (greatest_erosion(otmp) > rn2(5)))
+				      snuff_lit (otmp);
+#endif
 				    sum[i] = hitmu(mtmp, mattk);
+#ifdef GAUTE
+				  }
+#endif
 				else
 				    missmu(mtmp, (tmp == j), mattk);
 				/* KMH -- Don't accumulate to-hit bonuses */
@@ -1539,7 +1562,10 @@
 			    tim_tmp : 0;
 		swallowed(1);
 		for(otmp2 = invent; otmp2; otmp2 = otmp2->nobj) {
-			(void) snuff_lit(otmp2);
+#ifdef GAUTE
+		  /* FIXME: Chew on lightsabers? */
+#endif
+		  (void) snuff_lit(otmp2);
 		}
 	}
 
diff -ur nethack-3.3.0/src/objects.c gautehack/src/objects.c
--- nethack-3.3.0/src/objects.c	Sat Dec 11 05:20:55 1999
+++ gautehack/src/objects.c	Tue Feb 15 00:38:19 2000
@@ -185,7 +185,10 @@
 	0, 0, 0,  0, 40,300,  4,  6, 0, S,   P_BROAD_SWORD, IRON, CLR_BLACK),
 						/* +d4 small, +1 large */
 						/* +5d2 +d8 from level drain */
-
+#ifdef GAUTE
+WEAPON("lightsaber", (char *)0,
+       1, 0, 1, 0, 3, 500, 4, 6, 2, S,   P_LIGHTSABER, IRON, HI_METAL),
+#endif
 /* polearms */
 /* spear-type */
 WEAPON("partisan", "vulgar polearm",
diff -ur nethack-3.3.0/src/objnam.c gautehack/src/objnam.c
--- nethack-3.3.0/src/objnam.c	Sat Dec 11 05:20:55 1999
+++ gautehack/src/objnam.c	Tue Feb 15 00:31:46 2000
@@ -571,6 +571,10 @@
 			Strcat(prefix, sitoa(obj->spe));
 			Strcat(prefix, " ");
 		}
+#ifdef GAUTE
+		if (obj->otyp == LIGHTSABER && obj->lamplit)
+		  Strcat (bp, " (lit)");
+#endif
 		break;
 	case ARMOR_CLASS:
 		if(obj->owornmask & W_ARMOR)
diff -ur nethack-3.3.0/src/pickup.c gautehack/src/pickup.c
--- nethack-3.3.0/src/pickup.c	Sat Dec 11 05:20:55 1999
+++ gautehack/src/pickup.c	Tue Feb 15 20:44:48 2000
@@ -1386,7 +1386,11 @@
 	Strcpy(buf, the(xname(current_container)));
 	You("put %s into %s.", doname(obj), buf);
 
-	if (obj_is_burning(obj))	/* this used to be part of freeinv() */
+	if (obj_is_burning(obj)
+#ifdef GAUTE
+	    || obj->otyp == LIGHTSABER
+#endif
+	    )	/* this used to be part of freeinv() */
 		(void) snuff_lit(obj);
 
 	if (floor_container && costly_spot(u.ux, u.uy)) {
diff -ur nethack-3.3.0/src/potion.c gautehack/src/potion.c
--- nethack-3.3.0/src/potion.c	Sat Dec 11 05:20:55 1999
+++ gautehack/src/potion.c	Tue Feb 15 20:40:02 2000
@@ -1254,7 +1263,13 @@
 {
 	char Your_buf[BUFSZ];
 
-	if (snuff_lit(obj)) return(TRUE);
+	if (
+#ifdef GAUTE
+	    /* Avoid snuffing eg. lightsabers */
+	    
+	    obj_is_burning (obj) &&
+#endif
+	    snuff_lit(obj)) return(TRUE);
 
 	if (obj->greased) {
 		grease_protect(obj,(char *)0,FALSE,&youmonst);
@@ -1578,6 +1593,11 @@
 			obj->oeroded++;
 		    }
 		}
+#ifdef GAUTE
+	    } else if (potion->otyp == POT_OIL && obj->otyp == LIGHTSABER)
+	      /* FIXME: Make the potion go up in flames? */
+	    {
+#endif	      
 	    } else if (potion->cursed || !is_metallic(obj) ||
 		    /* arrows,&c are classed as metallic due to arrowhead
 		       material, but dipping in oil shouldn't repair them */
diff -ur nethack-3.3.0/src/steal.c gautehack/src/steal.c
--- nethack-3.3.0/src/steal.c	Sat Dec 11 05:20:56 1999
+++ gautehack/src/steal.c	Mon Feb 14 23:56:13 2000
@@ -305,7 +305,13 @@
 	   so we have to call it after doing the object checks */
 	add_to_minv(mtmp, otmp);
 	/* and we had to defer this until object is in mtmp's inventory */
-	if (snuff_otmp) snuff_light_source(mtmp->mx, mtmp->my);
+	if (snuff_otmp)
+#ifdef GAUTE
+#if 0
+	  /* Kill monster chewing on your lightsaber? */
+#endif
+#endif
+	  snuff_light_source(mtmp->mx, mtmp->my);
     }
 }
 
diff -ur nethack-3.3.0/src/timeout.c gautehack/src/timeout.c
--- nethack-3.3.0/src/timeout.c	Sat Dec 11 05:20:56 1999
+++ gautehack/src/timeout.c	Mon Feb 14 23:55:00 2000
@@ -976,7 +976,10 @@
 	if (obj->age == 0 && obj->otyp != MAGIC_LAMP) return;
 
 	switch (obj->otyp) {
-	    case MAGIC_LAMP:
+#ifdef GAUTE
+	case LIGHTSABER:
+#endif
+	case MAGIC_LAMP:
 		obj->lamplit = 1;
 		do_timer = FALSE;
 		break;
@@ -1060,7 +1063,11 @@
 
 	del_light_source(LS_OBJECT, (genericptr_t) obj);
 
-	if (obj->otyp == MAGIC_LAMP) timer_attached = FALSE;
+	if (obj->otyp == MAGIC_LAMP
+#ifdef GAUTE
+	    || obj->otyp == LIGHTSABER
+#endif
+	    ) timer_attached = FALSE;
 	if (timer_attached) {
 	    expire_time = stop_timer(BURN_OBJECT, (genericptr_t) obj);
 	    if (expire_time)
diff -ur nethack-3.3.0/src/trap.c gautehack/src/trap.c
--- nethack-3.3.0/src/trap.c	Sat Dec 11 05:20:56 1999
+++ gautehack/src/trap.c	Tue Feb 15 20:39:13 2000
@@ -678,7 +678,10 @@
 		    default:
 			pline("%s you!", A_gush_of_water_hits);
 			for (otmp=invent; otmp; otmp = otmp->nobj)
-				    (void) snuff_lit(otmp);
+#ifdef GAUTE
+			  if (obj_is_burning (otmp))
+#endif
+			  (void) snuff_lit(otmp);
 			if (uarmc)
 			    (void) rust_dmg(uarmc, "cloak", 1, TRUE, &youmonst);
 			else if (uarm)
@@ -1310,7 +1313,10 @@
 				pline("%s %s!", A_gush_of_water_hits,
 				    mon_nam(mtmp));
 			    for (otmp=mtmp->minvent; otmp; otmp = otmp->nobj)
-				(void) snuff_lit(otmp);
+#ifdef GAUTE
+			      if (obj_is_burning (otmp))
+#endif			
+			      (void) snuff_lit(otmp);
 			    target = which_armor(mtmp, W_ARMC);
 			    if (target)
 				(void) rust_dmg(target, "cloak", 1, TRUE, mtmp);
@@ -1969,6 +1975,9 @@
 	   pieces of armor may get affected by the water */
 	for (; obj; obj = (here ? obj->nexthere : obj->nobj)) {
 
+#ifdef GAUTE
+	  if (obj_is_burning (obj))
+#endif
 		(void) snuff_lit(obj);
 
 		if(obj->greased) {
diff -ur nethack-3.3.0/src/uhitm.c gautehack/src/uhitm.c
--- nethack-3.3.0/src/uhitm.c	Sat Dec 11 05:20:56 1999
+++ gautehack/src/uhitm.c	Tue Feb 15 20:44:48 2000
@@ -487,6 +487,7 @@
 	boolean ispoisoned = FALSE, needpoismsg = FALSE, poiskilled = FALSE;
 	boolean silvermsg = FALSE;
 	boolean valid_weapon_attack = FALSE;
+
 	int wtype;
 	struct obj *monwep;
 	char yourbuf[BUFSZ];
@@ -595,6 +596,14 @@
 			hittxt = TRUE;
 			if (mdat != &mons[PM_SHADE])
 			    tmp++;
+#ifdef GAUTE
+		    } else if (!thrown && obj->otyp == LIGHTSABER
+			       && ((greatest_erosion (obj) > rnl(5))
+				   || (cursed (obj)
+				       && (greatest_erosion (obj) > rnl(5)))))
+		    {
+		      snuff_lit (obj);
+#endif
 		    } else if(thrown && (is_ammo(obj) || is_missile(obj))) {
 			if (ammo_and_launcher(obj, uwep)) {
 			    /* Elves and Samurai do extra damage using
@@ -1518,7 +1527,10 @@
 
 	if(u.uhunger < 1500 && !u.uswallow) {
 	    for (otmp = mdef->minvent; otmp; otmp = otmp->nobj)
-		(void) snuff_lit(otmp);
+#ifdef GAUTE
+	      /* FIXME: Have something nasty happen if you swallow a lightsaber */
+#endif
+	      (void) snuff_lit(otmp);
 
 	    if(!touch_petrifies(mdef->data) || Stone_resistance) {
 #ifdef LINT	/* static char msgbuf[BUFSZ]; */
diff -ur nethack-3.3.0/src/weapon.c gautehack/src/weapon.c
--- nethack-3.3.0/src/weapon.c	Sat Dec 11 05:20:56 1999
+++ gautehack/src/weapon.c	Tue Feb 15 21:16:57 2000
@@ -334,6 +334,10 @@
 		    /* never select non-cockatrice corpses */
 		    !((x == CORPSE || x == EGG) &&
 			!touch_petrifies(&mons[otmp->corpsenm])) &&
+#ifdef GAUTE
+		/* Never choose eroded lightsabers. */
+		!(x == LIGHTSABER && greatest_erosion (otmp)) &&
+#endif
 		    (!otmp->oartifact || touch_artifact(otmp,mtmp)))
 		return otmp;
 	}
@@ -457,7 +461,12 @@
 /* Weapons in order of preference */
 static NEARDATA short hwep[] = {
 	  CORPSE,  /* cockatrice corpse */
-	  TSURUGI, RUNESWORD, DWARVISH_MATTOCK, TWO_HANDED_SWORD, BATTLE_AXE,
+	  TSURUGI, RUNESWORD, DWARVISH_MATTOCK,
+#ifdef GAUTE
+	  LIGHTSABER, /* FIXME:  We need to teach monsters to turn these
+			 things on. */
+#endif
+	  TWO_HANDED_SWORD, BATTLE_AXE,
 	  KATANA, UNICORN_HORN, CRYSKNIFE, TRIDENT, LONG_SWORD,
 	  ELVEN_BROADSWORD, BROADSWORD, LUCERN_HAMMER, SCIMITAR, SILVER_SABER,
 	  MORNING_STAR, ELVEN_SHORT_SWORD, DWARVISH_SHORT_SWORD, SHORT_SWORD,
diff -ur nethack-3.3.0/src/wield.c gautehack/src/wield.c
--- nethack-3.3.0/src/wield.c	Sat Dec 11 05:20:56 1999
+++ gautehack/src/wield.c	Tue Feb 15 01:16:21 2000
@@ -235,6 +235,11 @@
 		return(0);
 	}
 
+#ifdef GAUTE
+	if (uwep && uwep->otyp == LIGHTSABER && uwep->lamplit)
+	  use_lightsaber (uwep);
+#endif
+	
 	/* Prompt for a new weapon */
 	if (!(wep = getobj(wield_objs, "wield")))
 		/* Cancelled */
diff -ur nethack-3.3.0/sys/unix/Makefile.src gautehack/sys/unix/Makefile.src
--- nethack-3.3.0/sys/unix/Makefile.src	Tue Feb 15 21:32:39 2000
+++ gautehack/sys/unix/Makefile.src	Fri Feb 11 17:13:21 2000
@@ -112,7 +112,7 @@
 
 # flags for Linux
 #   compile normally
-CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include
+CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include -DGAUTE -DWIZARD=\"gs234\"
 LFLAGS = -L/usr/X11R6/lib
 #   OR compile backwards compatible a.out format
 # CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include -I/usr/X11/include
diff -ur nethack-3.3.0/sys/unix/Makefile.utl gautehack/sys/unix/Makefile.utl
--- nethack-3.3.0/sys/unix/Makefile.utl	Tue Feb 15 21:32:39 2000
+++ gautehack/sys/unix/Makefile.utl	Fri Feb 11 17:14:15 2000
@@ -67,7 +67,7 @@
 
 # flags for Linux
 #   compile normally
-CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include
+CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include -DGAUTE -DWIZARD=\"gs234\"
 LFLAGS = -L/usr/X11R6/lib
 #   OR compile backwards compatible a.out format
 # CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include -I/usr/X11/include
diff -ur nethack-3.3.0/util/Makefile gautehack/util/Makefile
--- nethack-3.3.0/util/Makefile	Tue Feb 15 21:32:39 2000
+++ gautehack/util/Makefile	Fri Feb 11 17:14:15 2000
@@ -67,7 +67,7 @@
 
 # flags for Linux
 #   compile normally
-CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include
+CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include -DGAUTE -DWIZARD=\"gs234\"
 LFLAGS = -L/usr/X11R6/lib
 #   OR compile backwards compatible a.out format
 # CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include -I/usr/X11/include

-- 
Big Gaute (not to be confused with LG)
"There was a time when a guy who died at forty was revered as the toughest
and most doggedly ancient son of a bitch in Cow Ass Clearing, Shitoleshire,
Engalond, back in the year dot." - Spider Jerusalem, Transmetropolitan #25