/* "trapped" recognized but not honored outside wizard mode */
} else if(!strncmpi(bp, "trapped ",l=8)) {
trapped = 0; /* undo any previous "untrapped" */
-#ifdef WIZARD
if (wizard) trapped = 1;
-#endif
} else if(!strncmpi(bp, "untrapped ",l=10)) {
trapped = 2; /* not trapped */
} else if(!strncmpi(bp, "greased ",l=8)) {
if(!BSTRCMPI(bp, p-10, "gold piece") || !BSTRCMPI(bp, p-7, "zorkmid") ||
!strcmpi(bp, "gold") || !strcmpi(bp, "money") ||
!strcmpi(bp, "coin") || *bp == GOLD_SYM) {
- if (cnt > 5000
-#ifdef WIZARD
- && !wizard
-#endif
- ) cnt=5000;
- if (cnt < 1) cnt=1;
+ if (cnt > 5000 && !wizard) cnt = 5000;
+ else if (cnt < 1) cnt = 1;
#ifndef GOLDOBJ
pline("%d gold piece%s.", cnt, plur(cnt));
- u.ugold += cnt;
- context.botl=1;
- return (&zeroobj);
+ u.ugold += (long) cnt;
+ otmp = &zeroobj; /* readobjnam()'s return value for gold */
#else
otmp = mksobj(GOLD_PIECE, FALSE, FALSE);
- otmp->quan = cnt;
+ otmp->quan = (long) cnt;
otmp->owt = weight(otmp);
- context.botl=1;
- return (otmp);
#endif
+ context.botl = 1;
+ return otmp;
}
+
+ /* check for single character object class code ("/" for wand, &c) */
if (strlen(bp) == 1 &&
- (i = def_char_to_objclass(*bp)) < MAXOCLASSES && i > ILLOBJ_CLASS
-#ifdef WIZARD
- && (wizard || i != VENOM_CLASS)
-#else
- && i != VENOM_CLASS
-#endif
- ) {
+ (i = def_char_to_objclass(*bp)) < MAXOCLASSES &&
+ i > ILLOBJ_CLASS && (i != VENOM_CLASS || wizard)) {
oclass = i;
goto any;
}
typfnd:
if (typ) oclass = objects[typ].oc_class;
- /* check for some objects that are not allowed */
- if (typ && objects[typ].oc_unique) {
-#ifdef WIZARD
- if (wizard)
- ; /* allow unique objects */
- else
-#endif
+ /* handle some objects that are only allowed in wizard mode */
+ if (typ && !wizard) {
switch (typ) {
case AMULET_OF_YENDOR:
typ = FAKE_AMULET_OF_YENDOR;
case SPE_BOOK_OF_THE_DEAD:
typ = SPE_BLANK_PAPER;
break;
+ case MAGIC_LAMP:
+ typ = OIL_LAMP;
+ break;
+ default:
+ /* catch any other non-wishable objects (venom) */
+ if (objects[typ].oc_nowish) return ((struct obj *)0);
+ break;
}
}
- /* catch any other non-wishable objects */
- if (objects[typ].oc_nowish
-#ifdef WIZARD
- && !wizard
-#endif
- )
- return((struct obj *)0);
-
- /* convert magic lamps to regular lamps before lighting them or setting
- the charges */
- if (typ == MAGIC_LAMP
-#ifdef WIZARD
- && !wizard
-#endif
- )
- typ = OIL_LAMP;
-
- if(typ) {
- otmp = mksobj(typ, TRUE, FALSE);
- } else {
- otmp = mkobj(oclass, FALSE);
- if (otmp) typ = otmp->otyp;
- }
+ /*
+ * Create the object, then fine-tune it.
+ */
+ otmp = typ ? mksobj(typ, TRUE, FALSE) : mkobj(oclass, FALSE);
+ typ = otmp->otyp, oclass = otmp->oclass; /* what we actually got */
if (islit &&
(typ == OIL_LAMP || typ == MAGIC_LAMP || typ == BRASS_LANTERN ||
obj_extract_self(otmp); /* now release it for caller's use */
}
- if(cnt > 0 && objects[typ].oc_merge && oclass != SPBOOK_CLASS &&
- (cnt < rnd(6) ||
-#ifdef WIZARD
- wizard ||
-#endif
+ /* if player specified a reasonable count, maybe honor it */
+ if (cnt > 0 && objects[typ].oc_merge &&
+ (wizard || cnt < rnd(6) ||
(cnt <= 7 && Is_candle(otmp)) ||
(cnt <= 20 &&
((oclass == WEAPON_CLASS && is_ammo(otmp))
|| typ == ROCK || is_missile(otmp)))))
- otmp->quan = (long) cnt;
+ otmp->quan = (long) cnt;
#ifdef WIZARD
if (oclass == VENOM_CLASS) otmp->spe = 1;
case SCR_MAIL: otmp->spe = 1; break;
#endif
case WAN_WISHING:
-#ifdef WIZARD
if (!wizard) {
-#endif
otmp->spe = (rn2(10) ? -1 : 0);
break;
-#ifdef WIZARD
}
/* fall through, if wizard */
-#endif
default: otmp->spe = spe;
}
curse(otmp);
} else if (uncursed) {
otmp->blessed = 0;
- otmp->cursed = (Luck < 0
-#ifdef WIZARD
- && !wizard
-#endif
- );
+ otmp->cursed = (Luck < 0 && !wizard);
} else if (blessed) {
- otmp->blessed = (Luck >= 0
-#ifdef WIZARD
- || wizard
-#endif
- );
- otmp->cursed = (Luck < 0
-#ifdef WIZARD
- && !wizard
-#endif
- );
+ otmp->blessed = (Luck >= 0 || wizard);
+ otmp->cursed = (Luck < 0 && !wizard);
} else if (spesgn < 0) {
curse(otmp);
}
/* set erodeproof */
if (erodeproof && !eroded && !eroded2)
- otmp->oerodeproof = (Luck >= 0
-#ifdef WIZARD
- || wizard
-#endif
- );
+ otmp->oerodeproof = (Luck >= 0 || wizard);
}
/* set otmp->recharged */
if (oclass == WAND_CLASS) {
/* prevent wishing abuse */
- if (otmp->otyp == WAN_WISHING
-#ifdef WIZARD
- && !wizard
-#endif
- ) rechrg = 1;
+ if (otmp->otyp == WAN_WISHING && !wizard) rechrg = 1;
otmp->recharged = (unsigned)rechrg;
}
otmp->odiluted = 1;
/* set tin variety */
- if (otmp->otyp == TIN && tvariety >= 0 &&
- (rn2(4)
-#ifdef WIZARD
- || wizard
-#endif
- ))
+ if (otmp->otyp == TIN && tvariety >= 0 && (rn2(4) || wizard))
set_tin_variety(otmp, tvariety);
if (name) {
/* more wishing abuse: don't allow wishing for certain artifacts */
/* and make them pay; charge them for the wish anyway! */
if ((is_quest_artifact(otmp) ||
- (otmp->oartifact && rn2(nartifact_exist()) > 1))
-#ifdef WIZARD
- && !wizard
-#endif
- ) {
+ (otmp->oartifact && rn2(nartifact_exist()) > 1)) &&
+ !wizard) {
artifact_exists(otmp, safe_oname(otmp), FALSE);
obfree(otmp, (struct obj *) 0);
otmp = &zeroobj;