The Pet Patch by Virgo Vardja The Pet Patch lets you use the startup option 'pettype:n', meaning 'no thank you, I do not want to have a pet at all'. It also shows (in your conduct) how many pets you had in total diff -c src/allmain.c src/allmain.c *** src/allmain.c Sat Jul 22 02:59:01 2000 --- src/allmain.c Mon Nov 6 11:44:34 2000 *************** *** 497,503 **** * - ucsfcgl!kneller */ if(MON_AT(u.ux, u.uy)) mnexto(m_at(u.ux, u.uy)); ! (void) makedog(); docrt(); if (flags.legacy) { --- 497,505 ---- * - ucsfcgl!kneller */ if(MON_AT(u.ux, u.uy)) mnexto(m_at(u.ux, u.uy)); ! ! if (preferred_pet != 'n') ! (void) makedog(); docrt(); if (flags.legacy) { diff -c src/cmd.c src/cmd.c *** src/cmd.c Sat Jul 22 02:59:03 2000 --- src/cmd.c Mon Nov 6 19:38:32 2000 *************** *** 1139,1144 **** --- 1139,1152 ---- " for any artifacts"); } + if (!u.uconduct.pets) + enl_msg(You_, "have had ", "had ", "no pets"); + else { + Sprintf(buf, "%ld pet%s", + u.uconduct.pets, (u.uconduct.pets > 1L) ? "s" : ""); + enl_msg(You_, "have had ", "had ", buf); + } + /* Pop up the window and wait for a key */ display_nhwindow(en_win, TRUE); destroy_nhwindow(en_win); diff -c src/dog.c src/dog.c *** src/dog.c Mon Jul 17 00:15:49 2000 --- src/dog.c Mon Nov 6 19:32:13 2000 *************** *** 718,723 **** --- 718,724 ---- /* eating might have killed it, but that doesn't matter here; a non-null result suppresses "miss" message for thrown food and also implies that the object has been deleted */ + u.uconduct.pets++; return mtmp; } else return (struct monst *)0; *************** *** 744,749 **** --- 745,751 ---- place_object(obj, mtmp2->mx, mtmp2->my); /* put on floor */ /* devour the food (might grow into larger, genocided monster) */ if (dog_eat(mtmp2, obj, mtmp2->mx, mtmp2->my, TRUE) == 2) + u.uconduct.pets++; return mtmp2; /* oops, it died... */ /* `obj' is now obsolete */ } *************** *** 753,758 **** --- 755,761 ---- mtmp2->weapon_check = NEED_HTH_WEAPON; (void) mon_wield_item(mtmp2); } + u.uconduct.pets++; return(mtmp2); } diff -c src/options.c src/options.c *** src/options.c Wed Aug 9 20:33:01 2000 --- src/options.c Mon Nov 6 11:43:52 2000 *************** *** 983,988 **** --- 983,992 ---- case 'F': preferred_pet = 'c'; break; + case 'n': /* no pet at all */ + case 'N': + preferred_pet = 'n'; + break; default: pline("Unrecognized pet type '%s'", op); break; diff -c include/you.h include/you.h *** include/you.h Sat Jul 15 17:08:29 2000 --- include/you.h Mon Nov 6 16:14:21 2000 *************** *** 59,74 **** */ struct u_conduct { /* number of times... */ long unvegetarian; /* eaten any animal */ ! long unvegan; /* ... or any animal byproduct */ ! long food; /* ... or any comestible */ ! long gnostic; /* used prayer, priest, or altar */ ! long weaphit; /* hit a monster with a weapon */ long killer; /* killed a monster yourself */ ! long literate; /* read something (other than BotD) */ ! long polypiles; /* polymorphed an object */ ! long polyselfs; /* transformed yourself */ long wishes; /* used a wish */ ! long wisharti; /* wished for an artifact */ /* genocides already listed at end of game */ }; --- 59,75 ---- */ struct u_conduct { /* number of times... */ long unvegetarian; /* eaten any animal */ ! long unvegan; /* ... or any animal byproduct */ ! long food; /* ... or any comestible */ ! long gnostic; /* used prayer, priest, or altar */ ! long weaphit; /* hit a monster with a weapon */ long killer; /* killed a monster yourself */ ! long literate; /* read something (other than BotD) */ ! long polypiles; /* polymorphed an object */ ! long polyselfs; /* transformed yourself */ long wishes; /* used a wish */ ! long wisharti; /* wished for an artifact */ ! long pets; /* had a pet */ /* genocides already listed at end of game */ };