objects like dungeon, but for object symbols
default: ])[="(%!?+/$*`0_.
pettype your preferred type of pet (cat or dog), if your character
- class uses both types [RANDOM]
+ class uses both types; or none for no pet [RANDOM]
race Your starting race (e.g., race:Human, race:Elf). [RANDOM]
role Your starting role (e.g., role:Barbarian, role:Valk).
Although you can specify just the first letter(s), it will
makes sense for windowing system interfaces that implement this feature.
.lp pettype
Specify the type of your initial pet, if you are playing a character class
-that uses multiple types of pets. Possible values are ``cat'' and ``dog''.
+that uses multiple types of pets; or choose to have no initial pet at all.
+Possible values are ``cat'', ``dog'' and ``none''.
Cannot be set with the `O' command.
.lp pickup_burden
When you pick up an item that would exceed this encumbrance
%.lp
\item[\ib{pettype}]
Specify the type of your initial pet, if you are playing a character class
-that uses multiple types of pets. Possible values are ``{\tt cat}''
-and ``{\tt dog}''.
+that uses multiple types of pets; or choose to have no initial pet at all.
+Possible values are ``{\tt cat}'', ``{\tt dog}'' and ``{\tt none}''.
Cannot be set with the `{\tt O}' command.
%.Ip
\item[\ib{pickup\_burden}]
jousting by players wielding a lance while riding
when reading spellbooks, don't "continue studying" wrong book if original one
gets destroyed after previous reading attempt has been interrupted
+can start game without a pet via pettype:none (Dylan O'Donnell)
Platform- and/or Interface-Specific New Features
NEARDATA char dogname[PL_PSIZ] = DUMMY;
NEARDATA char catname[PL_PSIZ] = DUMMY;
NEARDATA char horsename[PL_PSIZ] = DUMMY;
-char preferred_pet; /* '\0', 'c', 'd' */
+char preferred_pet; /* '\0', 'c', 'd', 'n' (none) */
/* monsters that went down/up together with @ */
NEARDATA struct monst *mydogs = (struct monst *)0;
/* monsters that are moving to another dungeon level */
int pettype;
static int petname_used = 0;
+ if (preferred_pet == 'n') return((struct monst *) 0);
+
pettype = pet_type();
if (pettype == PM_LITTLE_DOG)
petname = dogname;
case 'F':
preferred_pet = 'c';
break;
+ case 'n': /* no pet */
+ case 'N':
+ preferred_pet = 'n';
+ break;
default:
pline("Unrecognized pet type '%s'", op);
break;
}
- } else if (negated) preferred_pet = 0;
+ } else if (negated) preferred_pet = 'n';
return;
}
#endif
else if (!strcmp(optname, "pettype"))
Sprintf(buf, "%s", (preferred_pet == 'c') ? "cat" :
- (preferred_pet == 'd') ? "dog" : "random" );
+ (preferred_pet == 'd') ? "dog" :
+ (preferred_pet == 'n') ? "none" : "random");
else if (!strcmp(optname, "pickup_burden"))
Sprintf(buf, "%s", burdentype[flags.pickup_burden] );
else if (!strcmp(optname, "pickup_types")) {