Make STEED unconditional.

This commit is contained in:
Sean Hunt
2015-03-17 18:45:49 +02:00
committed by Pasi Kallinen
parent aba6ecb7b3
commit 9759f5bf6d
62 changed files with 98 additions and 641 deletions
-1
View File
@@ -425,7 +425,6 @@ typedef unsigned char uchar;
/* monsters & objects */ /* monsters & objects */
#define KOPS /* Keystone Kops by Scott R. Turner */ #define KOPS /* Keystone Kops by Scott R. Turner */
#define SEDUCE /* Succubi/incubi seduction, by KAA, suggested by IM */ #define SEDUCE /* Succubi/incubi seduction, by KAA, suggested by IM */
#define STEED /* Riding steeds */
#define TOURIST /* Tourist players with cameras and Hawaiian shirts */ #define TOURIST /* Tourist players with cameras and Hawaiian shirts */
/* I/O */ /* I/O */
#define REDO /* support for redoing last command - DGK */ #define REDO /* support for redoing last command - DGK */
-4
View File
@@ -198,12 +198,8 @@
* Display the hero. It is assumed that all checks necessary to determine * Display the hero. It is assumed that all checks necessary to determine
* _if_ the hero can be seen have already been done. * _if_ the hero can be seen have already been done.
*/ */
#ifdef STEED
#define maybe_display_usteed (u.usteed && mon_visible(u.usteed)) ? \ #define maybe_display_usteed (u.usteed && mon_visible(u.usteed)) ? \
ridden_mon_to_glyph(u.usteed) : ridden_mon_to_glyph(u.usteed) :
#else
#define maybe_display_usteed /* empty */
#endif
#define display_self() \ #define display_self() \
show_glyph(u.ux, u.uy, \ show_glyph(u.ux, u.uy, \
-2
View File
@@ -2205,7 +2205,6 @@ E struct obj *FDECL(findgold, (struct obj *));
/* ### steed.c ### */ /* ### steed.c ### */
#ifdef STEED
E void NDECL(rider_cant_reach); E void NDECL(rider_cant_reach);
E boolean FDECL(can_saddle, (struct monst *)); E boolean FDECL(can_saddle, (struct monst *));
E int FDECL(use_saddle, (struct obj *)); E int FDECL(use_saddle, (struct obj *));
@@ -2217,7 +2216,6 @@ E void NDECL(kick_steed);
E void FDECL(dismount_steed, (int)); E void FDECL(dismount_steed, (int));
E void FDECL(place_monster, (struct monst *,int,int)); E void FDECL(place_monster, (struct monst *,int,int));
E boolean FDECL(stucksteed, (BOOLEAN_P)); E boolean FDECL(stucksteed, (BOOLEAN_P));
#endif
/* ### teleport.c ### */ /* ### teleport.c ### */
-2
View File
@@ -38,7 +38,6 @@
#define BY_PAPER 2 #define BY_PAPER 2
#define BY_OTHER 9 #define BY_OTHER 9
#ifdef STEED
/* Macros for why you are no longer riding */ /* Macros for why you are no longer riding */
#define DISMOUNT_GENERIC 0 #define DISMOUNT_GENERIC 0
#define DISMOUNT_FELL 1 #define DISMOUNT_FELL 1
@@ -47,7 +46,6 @@
#define DISMOUNT_ENGULFED 4 #define DISMOUNT_ENGULFED 4
#define DISMOUNT_BONES 5 #define DISMOUNT_BONES 5
#define DISMOUNT_BYCHOICE 6 #define DISMOUNT_BYCHOICE 6
#endif
/* Special returns from mapglyph() */ /* Special returns from mapglyph() */
#define MG_CORPSE 0x01 #define MG_CORPSE 0x01
-2
View File
@@ -114,9 +114,7 @@ struct prop {
# define W_RINGR 0x00040000L /* Right ring */ # define W_RINGR 0x00040000L /* Right ring */
# define W_RING (W_RINGL | W_RINGR) # define W_RING (W_RINGL | W_RINGR)
# define W_TOOL 0x00080000L /* Eyewear */ # define W_TOOL 0x00080000L /* Eyewear */
#ifdef STEED
# define W_SADDLE 0x00100000L /* KMH -- For riding monsters */ # define W_SADDLE 0x00100000L /* KMH -- For riding monsters */
#endif
# define W_BALL 0x00200000L /* Punishment ball */ # define W_BALL 0x00200000L /* Punishment ball */
# define W_CHAIN 0x00400000L /* Punishment chain */ # define W_CHAIN 0x00400000L /* Punishment chain */
-4
View File
@@ -593,10 +593,6 @@ extern dlevel_t level; /* structure describing the current level */
!(level.monsters[x][y])->mburied) !(level.monsters[x][y])->mburied)
#define MON_BURIED_AT(x,y) (level.monsters[x][y] != (struct monst *)0 && \ #define MON_BURIED_AT(x,y) (level.monsters[x][y] != (struct monst *)0 && \
(level.monsters[x][y])->mburied) (level.monsters[x][y])->mburied)
#ifndef STEED
#define place_monster(m,x,y) ((m)->mx=(x),(m)->my=(y),\
level.monsters[(m)->mx][(m)->my]=(m))
#endif
#define place_worm_seg(m,x,y) level.monsters[x][y] = m #define place_worm_seg(m,x,y) level.monsters[x][y] = m
#define remove_monster(x,y) level.monsters[x][y] = (struct monst *)0 #define remove_monster(x,y) level.monsters[x][y] = (struct monst *)0
#define m_at(x,y) (MON_AT(x,y) ? level.monsters[x][y] : \ #define m_at(x,y) (MON_AT(x,y) ? level.monsters[x][y] : \
-4
View File
@@ -68,12 +68,8 @@
#define P_BARE_HANDED_COMBAT 36 /* actually weaponless; gloves are ok */ #define P_BARE_HANDED_COMBAT 36 /* actually weaponless; gloves are ok */
#define P_MARTIAL_ARTS P_BARE_HANDED_COMBAT /* Role distinguishes */ #define P_MARTIAL_ARTS P_BARE_HANDED_COMBAT /* Role distinguishes */
#define P_TWO_WEAPON_COMBAT 37 /* Finally implemented */ #define P_TWO_WEAPON_COMBAT 37 /* Finally implemented */
#ifdef STEED
#define P_RIDING 38 /* How well you control your steed */ #define P_RIDING 38 /* How well you control your steed */
#define P_LAST_H_TO_H P_RIDING #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_FIRST_H_TO_H P_BARE_HANDED_COMBAT
#define P_NUM_SKILLS (P_LAST_H_TO_H+1) #define P_NUM_SKILLS (P_LAST_H_TO_H+1)
-2
View File
@@ -348,11 +348,9 @@ struct you {
long usleep; /* sleeping; monstermove you last started */ long usleep; /* sleeping; monstermove you last started */
int uinvault; int uinvault;
struct monst *ustuck; struct monst *ustuck;
#ifdef STEED
struct monst *usteed; struct monst *usteed;
long ugallop; long ugallop;
int urideturns; int urideturns;
#endif
int umortality; /* how many times you died */ int umortality; /* how many times you died */
int ugrave_arise; /* you die and become something aside from a ghost */ int ugrave_arise; /* you die and become something aside from a ghost */
int weapon_slots; /* unused skill slots */ int weapon_slots; /* unused skill slots */
-8
View File
@@ -229,13 +229,9 @@
#define HFlying u.uprops[FLYING].intrinsic #define HFlying u.uprops[FLYING].intrinsic
#define EFlying u.uprops[FLYING].extrinsic #define EFlying u.uprops[FLYING].extrinsic
#define BFlying u.uprops[FLYING].blocked #define BFlying u.uprops[FLYING].blocked
#ifdef STEED
# define Flying ((HFlying || EFlying || \ # define Flying ((HFlying || EFlying || \
(u.usteed && is_flyer(u.usteed->data))) && \ (u.usteed && is_flyer(u.usteed->data))) && \
!BFlying) !BFlying)
#else
# define Flying ((HFlying || EFlying) && !BFlying)
#endif
/* May touch surface; does not override any others */ /* May touch surface; does not override any others */
#define Wwalking (u.uprops[WWALKING].extrinsic && \ #define Wwalking (u.uprops[WWALKING].extrinsic && \
@@ -245,12 +241,8 @@
#define HSwimming u.uprops[SWIMMING].intrinsic #define HSwimming u.uprops[SWIMMING].intrinsic
#define ESwimming u.uprops[SWIMMING].extrinsic /* [Tom] */ #define ESwimming u.uprops[SWIMMING].extrinsic /* [Tom] */
#ifdef STEED
# define Swimming (HSwimming || ESwimming || \ # define Swimming (HSwimming || ESwimming || \
(u.usteed && is_swimmer(u.usteed->data))) (u.usteed && is_swimmer(u.usteed->data)))
#else
# define Swimming (HSwimming || ESwimming)
#endif
/* Get wet, don't go under water unless if amphibious */ /* Get wet, don't go under water unless if amphibious */
#define HMagical_breathing u.uprops[MAGICAL_BREATHING].intrinsic #define HMagical_breathing u.uprops[MAGICAL_BREATHING].intrinsic
-2
View File
@@ -118,12 +118,10 @@ boolean resuming;
(void) makemon((struct permonst *)0, 0, 0, NO_MM_FLAGS); (void) makemon((struct permonst *)0, 0, 0, NO_MM_FLAGS);
/* calculate how much time passed. */ /* calculate how much time passed. */
#ifdef STEED
if (u.usteed && u.umoved) { if (u.usteed && u.umoved) {
/* your speed doesn't augment steed's speed */ /* your speed doesn't augment steed's speed */
moveamt = mcalcmove(u.usteed); moveamt = mcalcmove(u.usteed);
} else } else
#endif
{ {
moveamt = youmonst.data->mmove; moveamt = youmonst.data->mmove;
+6 -36
View File
@@ -302,7 +302,6 @@ use_stethoscope(obj)
context.stethoscope_move = moves; context.stethoscope_move = moves;
context.stethoscope_movement = youmonst.movement; context.stethoscope_movement = youmonst.movement;
#ifdef STEED
if (u.usteed && u.dz > 0) { if (u.usteed && u.dz > 0) {
if (interference) { if (interference) {
pline("%s interferes.", Monnam(u.ustuck)); pline("%s interferes.", Monnam(u.ustuck));
@@ -311,7 +310,6 @@ use_stethoscope(obj)
mstatusline(u.usteed); mstatusline(u.usteed);
return res; return res;
} else } else
#endif
if (u.uswallow && (u.dx || u.dy || u.dz)) { if (u.uswallow && (u.dx || u.dy || u.dz)) {
mstatusline(u.ustuck); mstatusline(u.ustuck);
return res; return res;
@@ -442,11 +440,9 @@ struct obj *obj;
for(mtmp = fmon; mtmp; mtmp = nextmon) { for(mtmp = fmon; mtmp; mtmp = nextmon) {
nextmon = mtmp->nmon; /* trap might kill mon */ nextmon = mtmp->nmon; /* trap might kill mon */
if (DEADMONSTER(mtmp)) continue; if (DEADMONSTER(mtmp)) continue;
#ifdef STEED
/* steed is already at your location, so not affected; /* steed is already at your location, so not affected;
this avoids trap issues if you're on a trap location */ this avoids trap issues if you're on a trap location */
if (mtmp == u.usteed) continue; if (mtmp == u.usteed) continue;
#endif
if (mtmp->mtame) { if (mtmp->mtame) {
if (mtmp->mtrapped) { if (mtmp->mtrapped) {
/* no longer in previous trap (affects mintrap) */ /* no longer in previous trap (affects mintrap) */
@@ -550,13 +546,11 @@ struct obj *obj;
if(!get_adjacent_loc((char *)0, (char *)0, u.ux, u.uy, &cc)) return; if(!get_adjacent_loc((char *)0, (char *)0, u.ux, u.uy, &cc)) return;
if((cc.x == u.ux) && (cc.y == u.uy)) { if((cc.x == u.ux) && (cc.y == u.uy)) {
#ifdef STEED
if (u.usteed && u.dz > 0) { if (u.usteed && u.dz > 0) {
mtmp = u.usteed; mtmp = u.usteed;
spotmon = 1; spotmon = 1;
goto got_target; goto got_target;
} }
#endif
pline("Leash yourself? Very funny..."); pline("Leash yourself? Very funny...");
return; return;
} }
@@ -567,9 +561,7 @@ struct obj *obj;
} }
spotmon = canspotmon(mtmp); spotmon = canspotmon(mtmp);
#ifdef STEED
got_target: got_target:
#endif
if(!mtmp->mtame) { if(!mtmp->mtame) {
if(!spotmon) if(!spotmon)
@@ -648,10 +640,8 @@ next_to_u()
} }
} }
} }
#ifdef STEED
/* no pack mules for the Amulet */ /* no pack mules for the Amulet */
if (u.usteed && mon_has_amulet(u.usteed)) return FALSE; if (u.usteed && mon_has_amulet(u.usteed)) return FALSE;
#endif
return(TRUE); return(TRUE);
} }
@@ -1388,12 +1378,10 @@ int magic; /* 0=Physical, otherwise skill level */
} else if (!magic && !Jumping) { } else if (!magic && !Jumping) {
You_cant("jump very far."); You_cant("jump very far.");
return 0; return 0;
#ifdef STEED
/* if steed is immobile, can't do physical jump but can do spell one */ /* if steed is immobile, can't do physical jump but can do spell one */
} else if (!magic && u.usteed && stucksteed(FALSE)) { } else if (!magic && u.usteed && stucksteed(FALSE)) {
/* stucksteed gave "<steed> won't move" message */ /* stucksteed gave "<steed> won't move" message */
return 0; return 0;
#endif
} else if (u.uswallow) { } else if (u.uswallow) {
if (magic) { if (magic) {
You("bounce around a little."); You("bounce around a little.");
@@ -1438,23 +1426,19 @@ int magic; /* 0=Physical, otherwise skill level */
const char *bp = body_part(LEG); const char *bp = body_part(LEG);
if (wl == BOTH_SIDES) bp = makeplural(bp); if (wl == BOTH_SIDES) bp = makeplural(bp);
#ifdef STEED
if (u.usteed) if (u.usteed)
pline("%s is in no shape for jumping.", Monnam(u.usteed)); pline("%s is in no shape for jumping.", Monnam(u.usteed));
else else
#endif Your("%s%s %s in no shape for jumping.",
Your("%s%s %s in no shape for jumping.", (wl == LEFT_SIDE) ? "left " :
(wl == LEFT_SIDE) ? "left " : (wl == RIGHT_SIDE) ? "right " : "",
(wl == RIGHT_SIDE) ? "right " : "", bp, (wl == BOTH_SIDES) ? "are" : "is");
bp, (wl == BOTH_SIDES) ? "are" : "is");
return 0; return 0;
} }
#ifdef STEED
else if (u.usteed && u.utrap) { else if (u.usteed && u.utrap) {
pline("%s is stuck in a trap.", Monnam(u.usteed)); pline("%s is stuck in a trap.", Monnam(u.usteed));
return (0); return (0);
} }
#endif
pline("Where do you want to jump?"); pline("Where do you want to jump?");
cc.x = u.ux; cc.x = u.ux;
@@ -2237,7 +2221,6 @@ struct obj *otmp;
trapinfo.time_needed += (tmp > 12) ? 1 : (tmp > 7) ? 2 : 4; trapinfo.time_needed += (tmp > 12) ? 1 : (tmp > 7) ? 2 : 4;
/*[fumbling and/or confusion and/or cursed object check(s) /*[fumbling and/or confusion and/or cursed object check(s)
should be incorporated here instead of in set_trap]*/ should be incorporated here instead of in set_trap]*/
#ifdef STEED
if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) { if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) {
boolean chance; boolean chance;
@@ -2267,7 +2250,6 @@ struct obj *otmp;
return; return;
} }
} }
#endif
You("begin setting %s%s.", You("begin setting %s%s.",
shk_your(buf, otmp), shk_your(buf, otmp),
defsyms[trap_to_defsym(what_trap(ttyp))].explanation); defsyms[trap_to_defsym(what_trap(ttyp))].explanation);
@@ -2369,19 +2351,13 @@ struct obj *obj;
} else if ((!u.dx && !u.dy) || (u.dz > 0)) { } else if ((!u.dx && !u.dy) || (u.dz > 0)) {
int dam; int dam;
#ifdef STEED
/* Sometimes you hit your steed by mistake */ /* Sometimes you hit your steed by mistake */
if (u.usteed && !rn2(proficient + 2)) { if (u.usteed && !rn2(proficient + 2)) {
You("whip %s!", mon_nam(u.usteed)); You("whip %s!", mon_nam(u.usteed));
kick_steed(); kick_steed();
return 1; return 1;
} }
#endif if (Levitation || u.usteed) {
if (Levitation
#ifdef STEED
|| u.usteed
#endif
) {
/* Have a shot at snaring something on the floor */ /* Have a shot at snaring something on the floor */
otmp = level.objects[u.ux][u.uy]; otmp = level.objects[u.ux][u.uy];
if (otmp && otmp->otyp == CORPSE && otmp->corpsenm == PM_HORSE) { if (otmp && otmp->otyp == CORPSE && otmp->corpsenm == PM_HORSE) {
@@ -3194,11 +3170,9 @@ doapply()
case LEASH: case LEASH:
use_leash(obj); use_leash(obj);
break; break;
#ifdef STEED
case SADDLE: case SADDLE:
res = use_saddle(obj); res = use_saddle(obj);
break; break;
#endif
case MAGIC_WHISTLE: case MAGIC_WHISTLE:
use_magic_whistle(obj); use_magic_whistle(obj);
break; break;
@@ -3336,11 +3310,7 @@ unfixable_trouble_count(is_horn)
if (Stoned) unfixable_trbl++; if (Stoned) unfixable_trbl++;
if (Strangled) unfixable_trbl++; if (Strangled) unfixable_trbl++;
if (Wounded_legs if (Wounded_legs && !u.usteed) unfixable_trbl++;
#ifdef STEED
&& !u.usteed
#endif
) unfixable_trbl++;
if (Slimed) unfixable_trbl++; if (Slimed) unfixable_trbl++;
/* lycanthropy is not desirable, but it doesn't actually make you feel /* lycanthropy is not desirable, but it doesn't actually make you feel
bad */ bad */
+1 -6
View File
@@ -1687,10 +1687,7 @@ long *abil;
long wornbits; long wornbits;
long wornmask = (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | long wornmask = (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF |
W_WEP | W_QUIVER | W_SWAPWEP | W_ART | W_ARTI | W_AMUL | W_WEP | W_QUIVER | W_SWAPWEP | W_ART | W_ARTI | W_AMUL |
W_RINGL | W_RINGR | W_TOOL | W_BALL | W_CHAIN W_RINGL | W_RINGR | W_TOOL | W_BALL | W_CHAIN | W_SADDLE
#ifdef STEED
| W_SADDLE
#endif
#ifdef TOURIST #ifdef TOURIST
| W_ARMU | W_ARMU
#endif #endif
@@ -1868,7 +1865,6 @@ int dropflag; /* 0==don't drop, 1==drop all, 2==drop weapon */
/* check primary weapon next so that they're handled together */ /* check primary weapon next so that they're handled together */
if (uwep) (void)untouchable(uwep, dropit); if (uwep) (void)untouchable(uwep, dropit);
#ifdef STEED
/* in case someone is daft enough to add artifact or silver saddle */ /* in case someone is daft enough to add artifact or silver saddle */
if (u.usteed && (obj = which_armor(u.usteed, W_SADDLE)) != 0) { if (u.usteed && (obj = which_armor(u.usteed, W_SADDLE)) != 0) {
/* untouchable() calls retouch_object() which expects an object in /* untouchable() calls retouch_object() which expects an object in
@@ -1876,7 +1872,6 @@ int dropflag; /* 0==don't drop, 1==drop all, 2==drop weapon */
saddle and we're suppressing drop, so this works as intended */ saddle and we're suppressing drop, so this works as intended */
if (untouchable(obj, FALSE)) dismount_steed(DISMOUNT_THROWN); if (untouchable(obj, FALSE)) dismount_steed(DISMOUNT_THROWN);
} }
#endif
/* /*
* TODO? Force off gloves if either or both rings are going to * TODO? Force off gloves if either or both rings are going to
* become unworn; force off cloak [suit] before suit [shirt]. * become unworn; force off cloak [suit] before suit [shirt].
+2 -5
View File
@@ -440,11 +440,8 @@ exerper()
if(Sick || Vomiting) exercise(A_CON, FALSE); if(Sick || Vomiting) exercise(A_CON, FALSE);
if(Confusion || Hallucination) exercise(A_WIS, FALSE); if(Confusion || Hallucination) exercise(A_WIS, FALSE);
if((Wounded_legs if((Wounded_legs && !u.usteed) || Fumbling || HStun)
#ifdef STEED exercise(A_DEX, FALSE);
&& !u.usteed
#endif
) || Fumbling || HStun) exercise(A_DEX, FALSE);
} }
} }
+1 -4
View File
@@ -692,10 +692,7 @@ xchar x, y;
register long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE; register long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE;
pline(pullmsg, "bear trap"); pline(pullmsg, "bear trap");
set_wounded_legs(side, rn1(1000, 500)); set_wounded_legs(side, rn1(1000, 500));
#ifdef STEED if (!u.usteed) {
if (!u.usteed)
#endif
{
Your("%s %s is severely damaged.", Your("%s %s is severely damaged.",
(side == LEFT_SIDE) ? "left" : "right", (side == LEFT_SIDE) ? "left" : "right",
body_part(LEG)); body_part(LEG));
+1 -16
View File
@@ -1528,7 +1528,6 @@ int final;
boolean magic = (mode & MAGICENLIGHTENMENT) ? TRUE : FALSE; boolean magic = (mode & MAGICENLIGHTENMENT) ? TRUE : FALSE;
int cap; int cap;
char buf[BUFSZ], youtoo[BUFSZ]; char buf[BUFSZ], youtoo[BUFSZ];
#ifdef STEED
boolean Riding = (u.usteed && boolean Riding = (u.usteed &&
/* if hero dies while dismounting, u.usteed will still /* if hero dies while dismounting, u.usteed will still
be set; we want to ignore steed in that situation */ be set; we want to ignore steed in that situation */
@@ -1540,7 +1539,6 @@ int final;
(char *)0, (char *)0,
(SUPPRESS_SADDLE | SUPPRESS_HALLUCINATION), (SUPPRESS_SADDLE | SUPPRESS_HALLUCINATION),
FALSE); FALSE);
#endif
/*\ /*\
* Status (many are abbreviated on bottom line; others are or * Status (many are abbreviated on bottom line; others are or
@@ -1553,7 +1551,6 @@ int final;
/* not a traditional status but inherently obvious to player; more /* not a traditional status but inherently obvious to player; more
detail given below (attributes section) for magic enlightenment */ detail given below (attributes section) for magic enlightenment */
if (Upolyd) you_are("transformed", ""); if (Upolyd) you_are("transformed", "");
#ifdef STEED
/* not a trouble, but we want to display riding status before maybe /* not a trouble, but we want to display riding status before maybe
reporting steed as trapped or hero stuck to cursed saddle */ reporting steed as trapped or hero stuck to cursed saddle */
if (Riding) { if (Riding) {
@@ -1561,7 +1558,6 @@ int final;
you_are(buf, ""); you_are(buf, "");
Sprintf(eos(youtoo), "and %s ", steedname); Sprintf(eos(youtoo), "and %s ", steedname);
} }
#endif /*STEED*/
/* other movement situations that hero should always know */ /* other movement situations that hero should always know */
if (Levitation) { if (Levitation) {
if (Lev_at_will && magic) if (Lev_at_will && magic)
@@ -1639,14 +1635,12 @@ int final;
Sprintf(eos(predicament), " in %s", Sprintf(eos(predicament), " in %s",
an(defsyms[trap_to_defsym(t->ttyp)].explanation)); an(defsyms[trap_to_defsym(t->ttyp)].explanation));
} }
#ifdef STEED
if (u.usteed) { /* not `Riding' here */ if (u.usteed) { /* not `Riding' here */
Sprintf(buf, "%s%s ", anchored ? "you and " : "", steedname); Sprintf(buf, "%s%s ", anchored ? "you and " : "", steedname);
*buf = highc(*buf); *buf = highc(*buf);
enl_msg(buf, (anchored ? "are " : "is "), enl_msg(buf, (anchored ? "are " : "is "),
(anchored ? "were " : "was "), predicament, ""); (anchored ? "were " : "was "), predicament, "");
} else } else
#endif /*STEED*/
you_are(predicament, ""); you_are(predicament, "");
} /* (u.utrap) */ } /* (u.utrap) */
if (u.uswallow) { if (u.uswallow) {
@@ -1661,7 +1655,6 @@ int final;
a_monnam(u.ustuck)); a_monnam(u.ustuck));
you_are(buf, ""); you_are(buf, "");
} }
#ifdef STEED
if (Riding) { if (Riding) {
struct obj *saddle = which_armor(u.usteed, W_SADDLE); struct obj *saddle = which_armor(u.usteed, W_SADDLE);
@@ -1671,9 +1664,7 @@ int final;
you_are(buf, ""); you_are(buf, "");
} }
} }
#endif /*STEED*/
if (Wounded_legs) { if (Wounded_legs) {
#ifdef STEED
/* when mounted, Wounded_legs applies to steed rather than to /* when mounted, Wounded_legs applies to steed rather than to
hero; we only report steed's wounded legs in wizard mode */ hero; we only report steed's wounded legs in wizard mode */
if (u.usteed) { /* not `Riding' here */ if (u.usteed) { /* not `Riding' here */
@@ -1684,9 +1675,7 @@ int final;
enl_msg(buf, " has", " had", " wounded legs", ""); enl_msg(buf, " has", " had", " wounded legs", "");
} }
# endif # endif
} else } else {
#endif /*STEED*/
{
Sprintf(buf, "wounded %s", makeplural(body_part(LEG))); Sprintf(buf, "wounded %s", makeplural(body_part(LEG)));
you_have(buf, ""); you_have(buf, "");
} }
@@ -2474,9 +2463,7 @@ static const struct func_tab cmdlist[] = {
{'r', FALSE, doread}, {'r', FALSE, doread},
{'R', FALSE, doremring}, {'R', FALSE, doremring},
{M('r'), FALSE, dorub}, {M('r'), FALSE, dorub},
#ifdef STEED
{M('R'), FALSE, doride}, /* #ride */ {M('R'), FALSE, doride}, /* #ride */
#endif
{'s', TRUE, dosearch, "searching"}, {'s', TRUE, dosearch, "searching"},
{'S', TRUE, dosave}, {'S', TRUE, dosave},
{M('s'), FALSE, dosit}, {M('s'), FALSE, dosit},
@@ -2553,9 +2540,7 @@ struct ext_func_tab extcmdlist[] = {
#endif /* DUNGEON_OVERVIEW */ #endif /* DUNGEON_OVERVIEW */
{"pray", "pray to the gods for help", dopray, TRUE}, {"pray", "pray to the gods for help", dopray, TRUE},
{"quit", "exit without saving current game", done2, TRUE}, {"quit", "exit without saving current game", done2, TRUE},
#ifdef STEED
{"ride", "ride (or stop riding) a monster", doride, FALSE}, {"ride", "ride (or stop riding) a monster", doride, FALSE},
#endif
{"rub", "rub a lamp or a stone", dorub, FALSE}, {"rub", "rub a lamp or a stone", dorub, FALSE},
{"sit", "sit down", dosit, FALSE}, {"sit", "sit down", dosit, FALSE},
{"terrain", "show map without obstructions", doterrain, TRUE}, {"terrain", "show map without obstructions", doterrain, TRUE},
-2
View File
@@ -250,13 +250,11 @@ dig(VOID_ARGS)
You("fumble and drop %s.", yname(uwep)); You("fumble and drop %s.", yname(uwep));
dropx(uwep); dropx(uwep);
} else { } else {
#ifdef STEED
if (u.usteed) if (u.usteed)
pline("%s and %s %s!", pline("%s and %s %s!",
Yobjnam2(uwep, "bounce"), otense(uwep, "hit"), Yobjnam2(uwep, "bounce"), otense(uwep, "hit"),
mon_nam(u.usteed)); mon_nam(u.usteed));
else else
#endif
pline("Ouch! %s and %s you!", pline("Ouch! %s and %s you!",
Yobjnam2(uwep, "bounce"), otense(uwep, "hit")); Yobjnam2(uwep, "bounce"), otense(uwep, "hit"));
set_wounded_legs(RIGHT_SIDE, 5 + rnd(5)); set_wounded_legs(RIGHT_SIDE, 5 + rnd(5));
+1 -3
View File
@@ -1126,11 +1126,9 @@ see_monsters()
warn_obj_cnt = new_warn_obj_cnt; warn_obj_cnt = new_warn_obj_cnt;
} }
#ifdef STEED
/* when mounted, hero's location gets caught by monster loop */ /* when mounted, hero's location gets caught by monster loop */
if (!u.usteed) if (!u.usteed)
#endif newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
} }
/* /*
+3 -19
View File
@@ -80,11 +80,9 @@ boolean pushing;
char whobuf[BUFSZ]; char whobuf[BUFSZ];
Strcpy(whobuf, "you"); Strcpy(whobuf, "you");
#ifdef STEED
if (u.usteed) Strcpy(whobuf, y_monnam(u.usteed)); if (u.usteed) Strcpy(whobuf, y_monnam(u.usteed));
#endif pline("%s %s %s into the %s.", upstart(whobuf),
pline("%s %s %s into the %s.", upstart(whobuf), vtense(whobuf, "push"), the(xname(otmp)), what);
vtense(whobuf, "push"), the(xname(otmp)), what);
if (flags.verbose && !Blind) if (flags.verbose && !Blind)
pline("Now you can cross it!"); pline("Now you can cross it!");
/* no splashing in this case */ /* no splashing in this case */
@@ -434,14 +432,12 @@ register const char *word;
body_part(HAND)); body_part(HAND));
return(FALSE); return(FALSE);
} }
#ifdef STEED
if (obj->owornmask & W_SADDLE) { if (obj->owornmask & W_SADDLE) {
if (*word) if (*word)
You("cannot %s %s you are sitting on.", word, You("cannot %s %s you are sitting on.", word,
something); something);
return (FALSE); return (FALSE);
} }
#endif
return(TRUE); return(TRUE);
} }
@@ -801,11 +797,9 @@ dodown()
return 1; return 1;
} }
#ifdef STEED
if (stucksteed(TRUE)) { if (stucksteed(TRUE)) {
return 0; return 0;
} }
#endif
/* Levitation might be blocked, but player can still use '>' to /* Levitation might be blocked, but player can still use '>' to
turn off controlled levitaiton */ turn off controlled levitaiton */
if (HLevitation || ELevitation) { if (HLevitation || ELevitation) {
@@ -924,11 +918,9 @@ doup()
You_cant("go up here."); You_cant("go up here.");
return(0); return(0);
} }
#ifdef STEED
if (stucksteed(TRUE)) { if (stucksteed(TRUE)) {
return(0); return(0);
} }
#endif
if(u.ustuck) { if(u.ustuck) {
You("are %s, and cannot go up.", You("are %s, and cannot go up.",
!u.uswallow ? "being held" : is_animal(u.ustuck->data) ? !u.uswallow ? "being held" : is_animal(u.ustuck->data) ?
@@ -1267,12 +1259,10 @@ boolean at_stairs, falling, portal;
freeinv(uball); freeinv(uball);
} }
} }
#ifdef STEED
/* falling off steed has its own losehp() call */ /* falling off steed has its own losehp() call */
if (u.usteed) if (u.usteed)
dismount_steed(DISMOUNT_FELL); dismount_steed(DISMOUNT_FELL);
else else
#endif
losehp(Maybe_Half_Phys(rnd(3)), losehp(Maybe_Half_Phys(rnd(3)),
at_ladder ? "falling off a ladder" : at_ladder ? "falling off a ladder" :
"tumbling down a flight of stairs", "tumbling down a flight of stairs",
@@ -1305,11 +1295,7 @@ boolean at_stairs, falling, portal;
initrack(); initrack();
if ((mtmp = m_at(u.ux, u.uy)) != 0 if ((mtmp = m_at(u.ux, u.uy)) != 0 && mtmp != u.usteed) {
#ifdef STEED
&& mtmp != u.usteed
#endif
) {
/* There's a monster at your target destination; it might be one /* There's a monster at your target destination; it might be one
which accompanied you--see mon_arrive(dogmove.c)--or perhaps which accompanied you--see mon_arrive(dogmove.c)--or perhaps
it was already here. Randomly move you to an adjacent spot it was already here. Randomly move you to an adjacent spot
@@ -1746,9 +1732,7 @@ heal_legs()
context.botl = 1; context.botl = 1;
} }
#ifdef STEED
if (!u.usteed) if (!u.usteed)
#endif
{ {
const char *legs = body_part(LEG); const char *legs = body_part(LEG);
-10
View File
@@ -329,20 +329,16 @@ do_mname()
cy = cc.y; cy = cc.y;
if (cx == u.ux && cy == u.uy) { if (cx == u.ux && cy == u.uy) {
#ifdef STEED
if (u.usteed && canspotmon(u.usteed)) if (u.usteed && canspotmon(u.usteed))
mtmp = u.usteed; mtmp = u.usteed;
else { else {
#endif
pline("This %s creature is called %s and cannot be renamed.", pline("This %s creature is called %s and cannot be renamed.",
ACURR(A_CHA) > 14 ? ACURR(A_CHA) > 14 ?
(flags.female ? "beautiful" : "handsome") : (flags.female ? "beautiful" : "handsome") :
"ugly", "ugly",
plname); plname);
return; return;
#ifdef STEED
} }
#endif
} else } else
mtmp = m_at(cx, cy); mtmp = m_at(cx, cy);
@@ -678,9 +674,7 @@ boolean called;
do_it = !canspotmon(mtmp) && do_it = !canspotmon(mtmp) &&
article != ARTICLE_YOUR && article != ARTICLE_YOUR &&
!program_state.gameover && !program_state.gameover &&
#ifdef STEED
mtmp != u.usteed && mtmp != u.usteed &&
#endif
!(u.uswallow && mtmp == u.ustuck) && !(u.uswallow && mtmp == u.ustuck) &&
!(suppress & SUPPRESS_IT); !(suppress & SUPPRESS_IT);
do_saddle = !(suppress & SUPPRESS_SADDLE); do_saddle = !(suppress & SUPPRESS_SADDLE);
@@ -746,11 +740,9 @@ boolean called;
Strcat(strcat(buf, adjective), " "); Strcat(strcat(buf, adjective), " ");
if (do_invis) if (do_invis)
Strcat(buf, "invisible "); Strcat(buf, "invisible ");
#ifdef STEED
if (do_saddle && (mtmp->misc_worn_check & W_SADDLE) && if (do_saddle && (mtmp->misc_worn_check & W_SADDLE) &&
!Blind && !Hallucination) !Blind && !Hallucination)
Strcat(buf, "saddled "); Strcat(buf, "saddled ");
#endif
if (buf[0] != 0) if (buf[0] != 0)
has_adjectives = TRUE; has_adjectives = TRUE;
else else
@@ -898,10 +890,8 @@ struct monst *mtmp;
prefix = mtmp->mtame ? ARTICLE_YOUR : ARTICLE_THE; prefix = mtmp->mtame ? ARTICLE_YOUR : ARTICLE_THE;
suppression_flag = (has_mname(mtmp) suppression_flag = (has_mname(mtmp)
#ifdef STEED
/* "saddled" is redundant when mounted */ /* "saddled" is redundant when mounted */
|| mtmp == u.usteed || mtmp == u.usteed
#endif
) ? SUPPRESS_SADDLE : 0; ) ? SUPPRESS_SADDLE : 0;
return x_monnam(mtmp, prefix, (char *)0, suppression_flag, FALSE); return x_monnam(mtmp, prefix, (char *)0, suppression_flag, FALSE);
-14
View File
@@ -148,9 +148,7 @@ struct monst *
makedog() makedog()
{ {
register struct monst *mtmp; register struct monst *mtmp;
#ifdef STEED
register struct obj *otmp; register struct obj *otmp;
#endif
const char *petname; const char *petname;
int pettype; int pettype;
static int petname_used = 0; static int petname_used = 0;
@@ -179,7 +177,6 @@ makedog()
if(!mtmp) return((struct monst *) 0); /* pets were genocided */ if(!mtmp) return((struct monst *) 0); /* pets were genocided */
context.startingpet_mid = mtmp->m_id; context.startingpet_mid = mtmp->m_id;
#ifdef STEED
/* Horses already wear a saddle */ /* Horses already wear a saddle */
if (pettype == PM_PONY && !!(otmp = mksobj(SADDLE, TRUE, FALSE))) { if (pettype == PM_PONY && !!(otmp = mksobj(SADDLE, TRUE, FALSE))) {
if (mpickobj(mtmp, otmp)) if (mpickobj(mtmp, otmp))
@@ -190,7 +187,6 @@ makedog()
otmp->leashmon = mtmp->m_id; otmp->leashmon = mtmp->m_id;
update_mon_intrinsics(mtmp, otmp, TRUE, TRUE); update_mon_intrinsics(mtmp, otmp, TRUE, TRUE);
} }
#endif
if (!petname_used++ && *petname) if (!petname_used++ && *petname)
mtmp = christen_monst(mtmp, petname); mtmp = christen_monst(mtmp, petname);
@@ -323,10 +319,8 @@ boolean with_you;
mtmp->mtrack[0].x = mtmp->mtrack[0].y = 0; mtmp->mtrack[0].x = mtmp->mtrack[0].y = 0;
mtmp->mtrack[1].x = mtmp->mtrack[1].y = 0; mtmp->mtrack[1].x = mtmp->mtrack[1].y = 0;
#ifdef STEED
if (mtmp == u.usteed) if (mtmp == u.usteed)
return; /* don't place steed on the map */ return; /* don't place steed on the map */
#endif
if (with_you) { if (with_you) {
/* When a monster accompanies you, sometimes it will arrive /* When a monster accompanies you, sometimes it will arrive
at your intended destination and you'll end up next to at your intended destination and you'll end up next to
@@ -575,24 +569,20 @@ boolean pets_only; /* true for ascension or final escape */
only if in range. -3. */ only if in range. -3. */
(u.uhave.amulet && mtmp->iswiz)) (u.uhave.amulet && mtmp->iswiz))
&& ((!mtmp->msleeping && mtmp->mcanmove) && ((!mtmp->msleeping && mtmp->mcanmove)
#ifdef STEED
/* eg if level teleport or new trap, steed has no control /* eg if level teleport or new trap, steed has no control
to avoid following */ to avoid following */
|| (mtmp == u.usteed) || (mtmp == u.usteed)
#endif
) )
/* monster won't follow if it hasn't noticed you yet */ /* monster won't follow if it hasn't noticed you yet */
&& !(mtmp->mstrategy & STRAT_WAITFORU)) { && !(mtmp->mstrategy & STRAT_WAITFORU)) {
stay_behind = FALSE; stay_behind = FALSE;
if (mtmp->mtrapped) (void)mintrap(mtmp); /* try to escape */ if (mtmp->mtrapped) (void)mintrap(mtmp); /* try to escape */
#ifdef STEED
if (mtmp == u.usteed) { if (mtmp == u.usteed) {
/* make sure steed is eligible to accompany hero */ /* make sure steed is eligible to accompany hero */
mtmp->mtrapped = 0; /* escape trap */ mtmp->mtrapped = 0; /* escape trap */
mtmp->meating = 0; /* terminate eating */ mtmp->meating = 0; /* terminate eating */
mdrop_special_objs(mtmp); /* drop Amulet */ mdrop_special_objs(mtmp); /* drop Amulet */
} else } else
#endif
if (mtmp->meating || mtmp->mtrapped) { if (mtmp->meating || mtmp->mtrapped) {
if (canseemon(mtmp)) if (canseemon(mtmp))
pline("%s is still %s.", Monnam(mtmp), pline("%s is still %s.", Monnam(mtmp),
@@ -612,14 +602,12 @@ boolean pets_only; /* true for ascension or final escape */
: "Its"); : "Its");
m_unleash(mtmp, FALSE); m_unleash(mtmp, FALSE);
} }
#ifdef STEED
if (mtmp == u.usteed) { if (mtmp == u.usteed) {
/* can't happen unless someone makes a change /* can't happen unless someone makes a change
which scrambles the stay_behind logic above */ which scrambles the stay_behind logic above */
impossible("steed left behind?"); impossible("steed left behind?");
dismount_steed(DISMOUNT_GENERIC); dismount_steed(DISMOUNT_GENERIC);
} }
#endif
continue; continue;
} }
if (mtmp->isshk) if (mtmp->isshk)
@@ -980,9 +968,7 @@ boolean was_dead;
/* a life-saved monster might be leashed; /* a life-saved monster might be leashed;
don't leave it that way if it's no longer tame */ don't leave it that way if it's no longer tame */
if (mtmp->mleashed) m_unleash(mtmp, TRUE); if (mtmp->mleashed) m_unleash(mtmp, TRUE);
#ifdef STEED
if (mtmp == u.usteed) dismount_steed(DISMOUNT_THROWN); if (mtmp == u.usteed) dismount_steed(DISMOUNT_THROWN);
#endif
} else if (edog) { } else if (edog) {
/* it's still a pet; start a clean pet-slate now */ /* it's still a pet; start a clean pet-slate now */
edog->revivals++; edog->revivals++;
+4 -12
View File
@@ -354,11 +354,7 @@ register struct edog *edog;
stop_occupation(); stop_occupation();
} else if (monstermoves > edog->hungrytime + 750 || mtmp->mhp < 1) { } else if (monstermoves > edog->hungrytime + 750 || mtmp->mhp < 1) {
dog_died: dog_died:
if (mtmp->mleashed if (mtmp->mleashed && mtmp != u.usteed)
#ifdef STEED
&& mtmp != u.usteed
#endif
)
Your("leash goes slack."); Your("leash goes slack.");
else if (cansee(mtmp->mx, mtmp->my)) else if (cansee(mtmp->mx, mtmp->my))
pline("%s starves.", Monnam(mtmp)); pline("%s starves.", Monnam(mtmp));
@@ -453,11 +449,9 @@ int after, udist, whappr;
xchar otyp; xchar otyp;
int appr; int appr;
#ifdef STEED
/* Steeds don't move on their own will */ /* Steeds don't move on their own will */
if (mtmp == u.usteed) if (mtmp == u.usteed)
return (-2); return (-2);
#endif
omx = mtmp->mx; omx = mtmp->mx;
omy = mtmp->my; omy = mtmp->my;
@@ -626,7 +620,6 @@ register int after; /* this is extra fast monster movement */
if (has_edog && dog_hunger(mtmp, edog)) return(2); /* starved */ if (has_edog && dog_hunger(mtmp, edog)) return(2); /* starved */
udist = distu(omx,omy); udist = distu(omx,omy);
#ifdef STEED
/* Let steeds eat and maybe throw rider during Conflict */ /* Let steeds eat and maybe throw rider during Conflict */
if (mtmp == u.usteed) { if (mtmp == u.usteed) {
if (Conflict && !resist(mtmp, RING_CLASS, 0, 0)) { if (Conflict && !resist(mtmp, RING_CLASS, 0, 0)) {
@@ -634,10 +627,9 @@ register int after; /* this is extra fast monster movement */
return (1); return (1);
} }
udist = 1; udist = 1;
} else } else if (!udist)
#endif /* maybe we tamed him while being swallowed --jgm */
/* maybe we tamed him while being swallowed --jgm */ return(0);
if (!udist) return(0);
nix = omx; /* set before newdogpos */ nix = omx; /* set before newdogpos */
niy = omy; niy = omy;
-2
View File
@@ -716,7 +716,6 @@ dokick()
} else if (verysmall(youmonst.data)) { } else if (verysmall(youmonst.data)) {
You("are too small to do any kicking."); You("are too small to do any kicking.");
no_kick = TRUE; no_kick = TRUE;
#ifdef STEED
} else if (u.usteed) { } else if (u.usteed) {
if (yn_function("Kick your steed?", ynchars, 'y') == 'y') { if (yn_function("Kick your steed?", ynchars, 'y') == 'y') {
You("kick %s.", mon_nam(u.usteed)); You("kick %s.", mon_nam(u.usteed));
@@ -725,7 +724,6 @@ dokick()
} else { } else {
return 0; return 0;
} }
#endif
} else if (Wounded_legs) { } else if (Wounded_legs) {
/* note: jump() has similar code */ /* note: jump() has similar code */
long wl = (EWounded_legs & BOTH_SIDES); long wl = (EWounded_legs & BOTH_SIDES);
-2
View File
@@ -1002,13 +1002,11 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */
u.twoweap = twoweap; u.twoweap = twoweap;
} else if (u.dz < 0) { } else if (u.dz < 0) {
(void) toss_up(obj, rn2(5) && !Underwater); (void) toss_up(obj, rn2(5) && !Underwater);
#ifdef STEED
} else if (u.dz > 0 && u.usteed && } else if (u.dz > 0 && u.usteed &&
obj->oclass == POTION_CLASS && rn2(6)) { obj->oclass == POTION_CLASS && rn2(6)) {
/* alternative to prayer or wand of opening/spell of knock /* alternative to prayer or wand of opening/spell of knock
for dealing with cursed saddle: throw holy water > */ for dealing with cursed saddle: throw holy water > */
potionhit(u.usteed, obj, TRUE); potionhit(u.usteed, obj, TRUE);
#endif
} else { } else {
hitfloor(obj); hitfloor(obj);
} }
-2
View File
@@ -1148,10 +1148,8 @@ int x, y;
#ifdef CLIPPING #ifdef CLIPPING
cliparound(u.ux, u.uy); cliparound(u.ux, u.uy);
#endif #endif
#ifdef STEED
/* ridden steed always shares hero's location */ /* ridden steed always shares hero's location */
if (u.usteed) u.usteed->mx = u.ux, u.usteed->my = u.uy; if (u.usteed) u.usteed->mx = u.ux, u.usteed->my = u.uy;
#endif
/* when changing levels, don't leave old position set with /* when changing levels, don't leave old position set with
stale values from previous level */ stale values from previous level */
if (!on_level(&u.uz, &u.uz0)) u.ux0 = u.ux, u.uy0 = u.uy; if (!on_level(&u.uz, &u.uz0)) u.ux0 = u.ux, u.uy0 = u.uy;
+1 -11
View File
@@ -1017,10 +1017,8 @@ register int pm;
u.uconduct.polyselfs++; /* you're changing form */ u.uconduct.polyselfs++; /* you're changing form */
You_cant("resist the temptation to mimic %s.", You_cant("resist the temptation to mimic %s.",
Hallucination ? "an orange" : "a pile of gold"); Hallucination ? "an orange" : "a pile of gold");
#ifdef STEED
/* A pile of gold can't ride. */ /* A pile of gold can't ride. */
if (u.usteed) dismount_steed(DISMOUNT_FELL); if (u.usteed) dismount_steed(DISMOUNT_FELL);
#endif
nomul(-tmp); nomul(-tmp);
Sprintf(buf, Hallucination ? Sprintf(buf, Hallucination ?
"You suddenly dread being peeled and mimic %s again!" : "You suddenly dread being peeled and mimic %s again!" :
@@ -1540,9 +1538,7 @@ struct obj *obj;
what = "you lose control of", where = "yourself"; what = "you lose control of", where = "yourself";
else else
what = "you slap against the", where = what = "you slap against the", where =
#ifdef STEED
(u.usteed) ? "saddle" : (u.usteed) ? "saddle" :
#endif
surface(u.ux,u.uy); surface(u.ux,u.uy);
pline_The("world spins and %s %s.", what, where); pline_The("world spins and %s %s.", what, where);
incr_itimeout(&HDeaf, duration); incr_itimeout(&HDeaf, duration);
@@ -2337,11 +2333,7 @@ doeat() /* generic "eat" command funtion (see cmd.c) */
} else if (!is_edible(otmp)) { } else if (!is_edible(otmp)) {
You("cannot eat that!"); You("cannot eat that!");
return 0; return 0;
} else if ((otmp->owornmask & (W_ARMOR|W_TOOL|W_AMUL } else if ((otmp->owornmask & (W_ARMOR|W_TOOL|W_AMUL|W_SADDLE)) != 0) {
#ifdef STEED
|W_SADDLE
#endif
)) != 0) {
/* let them eat rings */ /* let them eat rings */
You_cant("eat %s you're wearing.", something); You_cant("eat %s you're wearing.", something);
return 0; return 0;
@@ -2844,9 +2836,7 @@ floorfood(verb,corpsecheck) /* get food from floor or pack */
/* if we can't touch floor objects then use invent food only */ /* if we can't touch floor objects then use invent food only */
if (!can_reach_floor(TRUE) || if (!can_reach_floor(TRUE) ||
#ifdef STEED
(feeding && u.usteed) || /* can't eat off floor while riding */ (feeding && u.usteed) || /* can't eat off floor while riding */
#endif
(is_pool_or_lava(u.ux, u.uy) && (is_pool_or_lava(u.ux, u.uy) &&
(Wwalking || is_clinger(youmonst.data) || (Wwalking || is_clinger(youmonst.data) ||
(Flying && !Breathless)))) (Flying && !Breathless))))
-2
View File
@@ -140,10 +140,8 @@ boolean check_pit;
struct trap *t; struct trap *t;
if (u.uswallow) return FALSE; if (u.uswallow) return FALSE;
#ifdef STEED
/* Restricted/unskilled riders can't reach the floor */ /* Restricted/unskilled riders can't reach the floor */
if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) return FALSE; if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) return FALSE;
#endif
if (check_pit && (t = t_at(u.ux, u.uy)) != 0 && if (check_pit && (t = t_at(u.ux, u.uy)) != 0 &&
uteetering_at_seen_pit(t) && !Flying) uteetering_at_seen_pit(t) && !Flying)
return FALSE; return FALSE;
-4
View File
@@ -167,10 +167,8 @@ int expltype;
} }
/* can be both you and mtmp if you're swallowed */ /* can be both you and mtmp if you're swallowed */
mtmp = m_at(i+x-1, j+y-1); mtmp = m_at(i+x-1, j+y-1);
#ifdef STEED
if (!mtmp && i+x-1 == u.ux && j+y-1 == u.uy) if (!mtmp && i+x-1 == u.ux && j+y-1 == u.uy)
mtmp = u.usteed; mtmp = u.usteed;
#endif
if (mtmp) { if (mtmp) {
if (mtmp->mhp < 1) explmask[i][j] = 2; if (mtmp->mhp < 1) explmask[i][j] = 2;
else switch(adtyp) { else switch(adtyp) {
@@ -275,10 +273,8 @@ int expltype;
type, &shopdamage, exploding_wand_typ); type, &shopdamage, exploding_wand_typ);
mtmp = m_at(i+x-1, j+y-1); mtmp = m_at(i+x-1, j+y-1);
#ifdef STEED
if (!mtmp && i+x-1 == u.ux && j+y-1 == u.uy) if (!mtmp && i+x-1 == u.ux && j+y-1 == u.uy)
mtmp = u.usteed; mtmp = u.usteed;
#endif
if (!mtmp) continue; if (!mtmp) continue;
if (do_hallu) { if (do_hallu) {
/* replace "gas spore" with a different description /* replace "gas spore" with a different description
+12 -66
View File
@@ -118,11 +118,7 @@ moverock()
/* Give them a chance to climb over it? */ /* Give them a chance to climb over it? */
return -1; return -1;
} }
if (verysmall(youmonst.data) if (verysmall(youmonst.data) && !u.usteed) {
#ifdef STEED
&& !u.usteed
#endif
) {
if (Blind) feel_location(sx, sy); if (Blind) feel_location(sx, sy);
pline("You're too small to push that %s.", xname(otmp)); pline("You're too small to push that %s.", xname(otmp));
goto cannot_push; goto cannot_push;
@@ -159,10 +155,7 @@ moverock()
} }
if (flags.verbose) if (flags.verbose)
pline("Perhaps that's why %s cannot move it.", pline("Perhaps that's why %s cannot move it.",
#ifdef STEED u.usteed ? y_monnam(u.usteed) : "you");
u.usteed ? y_monnam(u.usteed) :
#endif
"you");
goto cannot_push; goto cannot_push;
} }
@@ -231,13 +224,11 @@ moverock()
/* trap didn't work; skip "disappears" message */ /* trap didn't work; skip "disappears" message */
goto dopush; goto dopush;
} }
#ifdef STEED
if (u.usteed) if (u.usteed)
pline("%s pushes %s and suddenly it disappears!", pline("%s pushes %s and suddenly it disappears!",
upstart(y_monnam(u.usteed)), the(xname(otmp))); upstart(y_monnam(u.usteed)), the(xname(otmp)));
else else
#endif You("push %s and suddenly it disappears!",
You("push %s and suddenly it disappears!",
the(xname(otmp))); the(xname(otmp)));
if (ttmp->ttyp == TELEP_TRAP) { if (ttmp->ttyp == TELEP_TRAP) {
(void)rloco(otmp); (void)rloco(otmp);
@@ -279,19 +270,15 @@ moverock()
static NEARDATA long lastmovetime; static NEARDATA long lastmovetime;
#endif #endif
dopush: dopush:
#ifdef STEED
if (!u.usteed) { if (!u.usteed) {
#endif
if (moves > lastmovetime+2 || moves < lastmovetime) if (moves > lastmovetime+2 || moves < lastmovetime)
pline("With %s effort you move %s.", pline("With %s effort you move %s.",
throws_rocks(youmonst.data) ? "little" : "great", throws_rocks(youmonst.data) ? "little" : "great",
the(xname(otmp))); the(xname(otmp)));
exercise(A_STR, TRUE); exercise(A_STR, TRUE);
#ifdef STEED
} else } else
pline("%s moves %s.", pline("%s moves %s.",
upstart(y_monnam(u.usteed)), the(xname(otmp))); upstart(y_monnam(u.usteed)), the(xname(otmp)));
#endif
lastmovetime = moves; lastmovetime = moves;
} }
@@ -307,24 +294,19 @@ moverock()
} }
} else { } else {
nopushmsg: nopushmsg:
#ifdef STEED
if (u.usteed) if (u.usteed)
pline("%s tries to move %s, but cannot.", pline("%s tries to move %s, but cannot.",
upstart(y_monnam(u.usteed)), the(xname(otmp))); upstart(y_monnam(u.usteed)), the(xname(otmp)));
else else
#endif
You("try to move %s, but in vain.", the(xname(otmp))); You("try to move %s, but in vain.", the(xname(otmp)));
if (Blind) feel_location(sx, sy); if (Blind) feel_location(sx, sy);
cannot_push: cannot_push:
if (throws_rocks(youmonst.data)) { if (throws_rocks(youmonst.data)) {
#ifdef STEED
if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) { if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) {
You("aren't skilled enough to %s %s from %s.", You("aren't skilled enough to %s %s from %s.",
(flags.pickup && !Sokoban) ? "pick up" : "push aside", (flags.pickup && !Sokoban) ? "pick up" : "push aside",
the(xname(otmp)), y_monnam(u.usteed)); the(xname(otmp)), y_monnam(u.usteed));
} else } else {
#endif
{
pline("However, you can easily %s.", pline("However, you can easily %s.",
(flags.pickup && !Sokoban) ? (flags.pickup && !Sokoban) ?
"pick it up" : "push it aside"); "pick it up" : "push it aside");
@@ -334,11 +316,7 @@ moverock()
break; break;
} }
if ( if (!u.usteed && (((!invent || inv_weight() <= -850) &&
#ifdef STEED
!u.usteed &&
#endif
(((!invent || inv_weight() <= -850) &&
(!u.dx || !u.dy || (IS_ROCK(levl[u.ux][sy].typ) (!u.dx || !u.dy || (IS_ROCK(levl[u.ux][sy].typ)
&& IS_ROCK(levl[sx][u.uy].typ)))) && IS_ROCK(levl[sx][u.uy].typ))))
|| verysmall(youmonst.data))) { || verysmall(youmonst.data))) {
@@ -693,13 +671,10 @@ int mode;
You("try to ooze under the door, but can't squeeze your possessions through."); You("try to ooze under the door, but can't squeeze your possessions through.");
else if (x == ux || y == uy) { else if (x == ux || y == uy) {
if (Blind || Stunned || ACURR(A_DEX) < 10 || Fumbling) { if (Blind || Stunned || ACURR(A_DEX) < 10 || Fumbling) {
#ifdef STEED
if (u.usteed) { if (u.usteed) {
You_cant("lead %s through that closed door.", You_cant("lead %s through that closed door.",
y_monnam(u.usteed)); y_monnam(u.usteed));
} else } else {
#endif
{
pline("Ouch! You bump into a door."); pline("Ouch! You bump into a door.");
exercise(A_DEX, FALSE); exercise(A_DEX, FALSE);
} }
@@ -1001,9 +976,7 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
{ {
boolean anchored; boolean anchored;
const char *predicament, *culprit; const char *predicament, *culprit;
#ifdef STEED
char *steedname = !u.usteed ? (char *)0 : y_monnam(u.usteed); char *steedname = !u.usteed ? (char *)0 : y_monnam(u.usteed);
#endif
if (!u.utrap) return TRUE; /* sanity check */ if (!u.utrap) return TRUE; /* sanity check */
@@ -1011,11 +984,9 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
case TT_BEARTRAP: case TT_BEARTRAP:
if (flags.verbose) { if (flags.verbose) {
predicament = "caught in a bear trap"; predicament = "caught in a bear trap";
#ifdef STEED
if (u.usteed) if (u.usteed)
Norep("%s is %s.", upstart(steedname), predicament); Norep("%s is %s.", upstart(steedname), predicament);
else else
#endif
Norep("You are %s.", predicament); Norep("You are %s.", predicament);
} }
/* [why does diagonal movement give quickest escape?] */ /* [why does diagonal movement give quickest escape?] */
@@ -1037,41 +1008,33 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
if (--u.utrap) { if (--u.utrap) {
if (flags.verbose) { if (flags.verbose) {
predicament = "stuck to the web"; predicament = "stuck to the web";
#ifdef STEED
if (u.usteed) if (u.usteed)
Norep("%s is %s.", upstart(steedname), predicament); Norep("%s is %s.", upstart(steedname), predicament);
else else
#endif Norep("You are %s.", predicament);
Norep("You are %s.", predicament);
} }
} else { } else {
#ifdef STEED
if (u.usteed) if (u.usteed)
pline("%s breaks out of the web.", upstart(steedname)); pline("%s breaks out of the web.", upstart(steedname));
else else
#endif
You("disentangle yourself."); You("disentangle yourself.");
} }
break; break;
case TT_LAVA: case TT_LAVA:
if (flags.verbose) { if (flags.verbose) {
predicament = "stuck in the lava"; predicament = "stuck in the lava";
#ifdef STEED
if (u.usteed) if (u.usteed)
Norep("%s is %s.", upstart(steedname), predicament); Norep("%s is %s.", upstart(steedname), predicament);
else else
#endif
Norep("You are %s.", predicament); Norep("You are %s.", predicament);
} }
if (!is_lava(x, y)) { if (!is_lava(x, y)) {
u.utrap--; u.utrap--;
if ((u.utrap & 0xff) == 0) { if ((u.utrap & 0xff) == 0) {
u.utrap = 0; u.utrap = 0;
#ifdef STEED
if (u.usteed) if (u.usteed)
You("lead %s to the edge of the lava.", steedname); You("lead %s to the edge of the lava.", steedname);
else else
#endif
You("pull yourself to the edge of the lava."); You("pull yourself to the edge of the lava.");
} }
} }
@@ -1106,7 +1069,6 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
predicament = "stuck in the"; predicament = "stuck in the";
culprit = surface(u.ux, u.uy); culprit = surface(u.ux, u.uy);
} }
#ifdef STEED
if (u.usteed) { if (u.usteed) {
if (anchored) if (anchored)
Norep("You and %s are %s %s.", steedname, Norep("You and %s are %s %s.", steedname,
@@ -1115,16 +1077,13 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
Norep("%s is %s %s.", upstart(steedname), Norep("%s is %s %s.", upstart(steedname),
predicament, culprit); predicament, culprit);
} else } else
#endif Norep("You are %s %s.", predicament, culprit);
Norep("You are %s %s.", predicament, culprit);
} }
} else { } else {
#ifdef STEED
if (u.usteed) if (u.usteed)
pline("%s finally %s free.", upstart(steedname), pline("%s finally %s free.", upstart(steedname),
!anchored ? "lurches" : "wrenches the ball"); !anchored ? "lurches" : "wrenches the ball");
else else
#endif
You("finally %s free.", You("finally %s free.",
!anchored ? "wriggle" : "wrench the ball"); !anchored ? "wriggle" : "wrench the ball");
if (anchored) if (anchored)
@@ -1419,12 +1378,10 @@ domove()
newsym(x, y); newsym(x, y);
} }
/* not attacking an animal, so we try to move */ /* not attacking an animal, so we try to move */
#ifdef STEED
if ((u.dx || u.dy) && u.usteed && stucksteed(FALSE)) { if ((u.dx || u.dy) && u.usteed && stucksteed(FALSE)) {
nomul(0); nomul(0);
return; return;
} }
#endif
if(!youmonst.data->mmove) { if(!youmonst.data->mmove) {
You("are rooted %s.", You("are rooted %s.",
Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) ? Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) ?
@@ -1456,14 +1413,12 @@ domove()
mtmp = m_at(x, y); mtmp = m_at(x, y);
u.ux += u.dx; u.ux += u.dx;
u.uy += u.dy; u.uy += u.dy;
#ifdef STEED
/* Move your steed, too */ /* Move your steed, too */
if (u.usteed) { if (u.usteed) {
u.usteed->mx = u.ux; u.usteed->mx = u.ux;
u.usteed->my = u.uy; u.usteed->my = u.uy;
exercise_steed(); exercise_steed();
} }
#endif
/* /*
* If safepet at destination then move the pet to the hero's * If safepet at destination then move the pet to the hero's
@@ -1662,11 +1617,8 @@ invocation_message()
struct obj *otmp = carrying(CANDELABRUM_OF_INVOCATION); struct obj *otmp = carrying(CANDELABRUM_OF_INVOCATION);
nomul(0); /* stop running or travelling */ nomul(0); /* stop running or travelling */
#ifdef STEED
if (u.usteed) Sprintf(buf, "beneath %s", y_monnam(u.usteed)); if (u.usteed) Sprintf(buf, "beneath %s", y_monnam(u.usteed));
else else if (Levitation || Flying) Strcpy(buf, "beneath you");
#endif
if (Levitation || Flying) Strcpy(buf, "beneath you");
else Sprintf(buf, "under your %s", makeplural(body_part(FOOT))); else Sprintf(buf, "under your %s", makeplural(body_part(FOOT)));
You_feel("a strange vibration %s.", buf); You_feel("a strange vibration %s.", buf);
@@ -1752,7 +1704,6 @@ boolean newspot; /* true if called by spoteffects */
/* check for entering water or lava */ /* check for entering water or lava */
if (!u.ustuck && !Levitation && !Flying && if (!u.ustuck && !Levitation && !Flying &&
is_pool_or_lava(u.ux, u.uy)) { is_pool_or_lava(u.ux, u.uy)) {
#ifdef STEED
if (u.usteed && (is_flyer(u.usteed->data) || if (u.usteed && (is_flyer(u.usteed->data) ||
is_floater(u.usteed->data) || is_clinger(u.usteed->data))) { is_floater(u.usteed->data) || is_clinger(u.usteed->data))) {
/* floating or clinging steed keeps hero safe (is_flyer() test /* floating or clinging steed keeps hero safe (is_flyer() test
@@ -1770,7 +1721,6 @@ boolean newspot; /* true if called by spoteffects */
return TRUE; return TRUE;
} }
/* not mounted */ /* not mounted */
#endif /* STEED */
/* drown(),lava_effects() return true if hero changes /* drown(),lava_effects() return true if hero changes
location while surviving the problem */ location while surviving the problem */
@@ -2266,10 +2216,8 @@ dopickup()
if (!can_reach_floor(TRUE)) { if (!can_reach_floor(TRUE)) {
if (traphere && uteetering_at_seen_pit(traphere)) if (traphere && uteetering_at_seen_pit(traphere))
You("cannot reach the bottom of the pit."); You("cannot reach the bottom of the pit.");
#ifdef STEED
else if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) else if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
rider_cant_reach(); rider_cant_reach();
#endif
else if (Blind && !can_reach_floor(TRUE)) else if (Blind && !can_reach_floor(TRUE))
You("cannot reach anything here."); You("cannot reach anything here.");
else else
@@ -2578,9 +2526,7 @@ weight_cap()
} }
if (Levitation || Is_airlevel(&u.uz) /* pugh@cornell */ if (Levitation || Is_airlevel(&u.uz) /* pugh@cornell */
#ifdef STEED
|| (u.usteed && strongmonst(u.usteed->data)) || (u.usteed && strongmonst(u.usteed->data))
#endif
) )
carrcap = MAX_CARR_CAP; carrcap = MAX_CARR_CAP;
else { else {
+2 -9
View File
@@ -1252,10 +1252,7 @@ is_worn(otmp)
register struct obj *otmp; register struct obj *otmp;
{ {
return((boolean)(!!(otmp->owornmask & (W_ARMOR | W_RING | W_AMUL | W_TOOL | return((boolean)(!!(otmp->owornmask & (W_ARMOR | W_RING | W_AMUL | W_TOOL |
#ifdef STEED W_SADDLE | W_WEP | W_SWAPWEP | W_QUIVER))));
W_SADDLE |
#endif
W_WEP | W_SWAPWEP | W_QUIVER))));
} }
/* extra xprname() input that askchain() can't pass through safe_qbuf() */ /* extra xprname() input that askchain() can't pass through safe_qbuf() */
@@ -2803,11 +2800,7 @@ STATIC_OVL boolean
tool_in_use(obj) tool_in_use(obj)
struct obj *obj; struct obj *obj;
{ {
if ((obj->owornmask & (W_TOOL if ((obj->owornmask & (W_TOOL | W_SADDLE)) != 0L) return TRUE;
#ifdef STEED
| W_SADDLE
#endif
)) != 0L) return TRUE;
if (obj->oclass != TOOL_CLASS) return FALSE; if (obj->oclass != TOOL_CLASS) return FALSE;
return (boolean)(obj == uwep || obj->lamplit || return (boolean)(obj == uwep || obj->lamplit ||
(obj->otyp == LEASH && obj->leashmon)); (obj->otyp == LEASH && obj->leashmon));
+2 -10
View File
@@ -749,19 +749,11 @@ doclose() /* try to close a door */
} }
if(door->doormask == D_ISOPEN) { if(door->doormask == D_ISOPEN) {
if(verysmall(youmonst.data) if(verysmall(youmonst.data) && !u.usteed) {
#ifdef STEED
&& !u.usteed
#endif
) {
pline("You're too small to push the door closed."); pline("You're too small to push the door closed.");
return res; return res;
} }
if ( if ( u.usteed || rn2(25) < (ACURRSTR+ACURR(A_DEX)+ACURR(A_CON))/3) {
#ifdef STEED
u.usteed ||
#endif
rn2(25) < (ACURRSTR+ACURR(A_DEX)+ACURR(A_CON))/3) {
pline_The("door closes."); pline_The("door closes.");
door->doormask = D_CLOSED; door->doormask = D_CLOSED;
if (Blind) if (Blind)
+1 -9
View File
@@ -405,12 +405,10 @@ mattackm(magr, mdef)
break; break;
case AT_ENGL: case AT_ENGL:
#ifdef STEED
if (u.usteed && (mdef == u.usteed)) { if (u.usteed && (mdef == u.usteed)) {
strike = 0; strike = 0;
break; break;
} }
#endif
/* Engulfing attacks are directed at the hero if /* Engulfing attacks are directed at the hero if
* possible. -dlc * possible. -dlc
*/ */
@@ -956,11 +954,7 @@ mdamagem(magr, mdef, mattk)
if (vis) Strcpy(mdef_Monnam, Monnam(mdef)); if (vis) Strcpy(mdef_Monnam, Monnam(mdef));
mdef->mstrategy &= ~STRAT_WAITFORU; mdef->mstrategy &= ~STRAT_WAITFORU;
(void) rloc(mdef, FALSE); (void) rloc(mdef, FALSE);
if (vis && !canspotmon(mdef) if (vis && !canspotmon(mdef) && mdef != u.usteed)
#ifdef STEED
&& mdef != u.usteed
#endif
)
pline("%s suddenly disappears!", mdef_Monnam); pline("%s suddenly disappears!", mdef_Monnam);
} }
break; break;
@@ -1117,12 +1111,10 @@ mdamagem(magr, mdef, mattk)
Strcpy(mdefnambuf, x_monnam(mdef, ARTICLE_THE, (char *)0, 0, FALSE)); Strcpy(mdefnambuf, x_monnam(mdef, ARTICLE_THE, (char *)0, 0, FALSE));
otmp = obj; otmp = obj;
#ifdef STEED
if (u.usteed == mdef && if (u.usteed == mdef &&
otmp == which_armor(mdef, W_SADDLE)) otmp == which_armor(mdef, W_SADDLE))
/* "You can no longer ride <steed>." */ /* "You can no longer ride <steed>." */
dismount_steed(DISMOUNT_POLY); dismount_steed(DISMOUNT_POLY);
#endif
obj_extract_self(otmp); obj_extract_self(otmp);
if (otmp->owornmask) { if (otmp->owornmask) {
mdef->misc_worn_check &= ~otmp->owornmask; mdef->misc_worn_check &= ~otmp->owornmask;
+2 -10
View File
@@ -323,7 +323,6 @@ mattacku(mtmp)
if(u.uinvulnerable) return (0); /* stomachs can't hurt you! */ if(u.uinvulnerable) return (0); /* stomachs can't hurt you! */
} }
#ifdef STEED
else if (u.usteed) { else if (u.usteed) {
if (mtmp == u.usteed) if (mtmp == u.usteed)
/* Your steed won't attack you */ /* Your steed won't attack you */
@@ -343,7 +342,6 @@ mattacku(mtmp)
return (!!(mattackm(u.usteed, mtmp) & MM_DEF_DIED)); return (!!(mattackm(u.usteed, mtmp) & MM_DEF_DIED));
} }
} }
#endif
if (u.uundetected && !range2 && foundyou && !u.uswallow) { if (u.uundetected && !range2 && foundyou && !u.uswallow) {
if (!canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my); if (!canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my);
@@ -1145,11 +1143,7 @@ dopois:
* still _can_ attack you when you're flying or mounted. * still _can_ attack you when you're flying or mounted.
* [FIXME: why can't a flying attacker overcome this?] * [FIXME: why can't a flying attacker overcome this?]
*/ */
if ( if (u.usteed || Levitation || Flying) {
#ifdef STEED
u.usteed ||
#endif
Levitation || Flying) {
pline("%s tries to reach your %s %s!", Monnam(mtmp), pline("%s tries to reach your %s %s!", Monnam(mtmp),
sidestr, body_part(LEG)); sidestr, body_part(LEG));
dmg = 0; dmg = 0;
@@ -1664,7 +1658,6 @@ gulpmu(mtmp, mattk) /* monster swallows you, or damage if u.uswallow */
place_monster(mtmp, u.ux, u.uy); place_monster(mtmp, u.ux, u.uy);
u.ustuck = mtmp; u.ustuck = mtmp;
newsym(mtmp->mx,mtmp->my); newsym(mtmp->mx,mtmp->my);
#ifdef STEED
if (is_animal(mtmp->data) && u.usteed) { if (is_animal(mtmp->data) && u.usteed) {
char buf[BUFSZ]; char buf[BUFSZ];
/* Too many quirks presently if hero and steed /* Too many quirks presently if hero and steed
@@ -1676,8 +1669,7 @@ gulpmu(mtmp, mattk) /* monster swallows you, or damage if u.uswallow */
Monnam(mtmp), buf); Monnam(mtmp), buf);
dismount_steed(DISMOUNT_ENGULFED); dismount_steed(DISMOUNT_ENGULFED);
} else } else
#endif pline("%s engulfs you!", Monnam(mtmp));
pline("%s engulfs you!", Monnam(mtmp));
stop_occupation(); stop_occupation();
reset_occupations(); /* behave as if you had moved */ reset_occupations(); /* behave as if you had moved */
+3 -20
View File
@@ -337,12 +337,10 @@ register struct monst *mtmp;
!is_flyer(mtmp->data) && !is_floater(mtmp->data); !is_flyer(mtmp->data) && !is_floater(mtmp->data);
infountain = IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ); infountain = IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ);
#ifdef STEED
/* Flying and levitation keeps our steed out of the liquid */ /* Flying and levitation keeps our steed out of the liquid */
/* (but not water-walking or swimming) */ /* (but not water-walking or swimming) */
if (mtmp == u.usteed && (Flying || Levitation)) if (mtmp == u.usteed && (Flying || Levitation))
return (0); return (0);
#endif
/* Gremlin multiplying won't go on forever since the hit points /* Gremlin multiplying won't go on forever since the hit points
* keep going down, and when it gets to 1 hit point the clone * keep going down, and when it gets to 1 hit point the clone
@@ -449,15 +447,12 @@ struct monst *mon;
else if (mon->mspeed == MFAST) else if (mon->mspeed == MFAST)
mmove = (4 * mmove + 2) / 3; mmove = (4 * mmove + 2) / 3;
#ifdef STEED
if (mon == u.usteed) { if (mon == u.usteed) {
if (u.ugallop && context.mv) { if (u.ugallop && context.mv) {
/* average movement is 1.50 times normal */ /* average movement is 1.50 times normal */
mmove = ((rn2(2) ? 4 : 5) * mmove) / 3; mmove = ((rn2(2) ? 4 : 5) * mmove) / 3;
} }
} else } else if (mmove) {
#endif
if (mmove) {
/* vary movement points allocated to slightly reduce predictability; /* vary movement points allocated to slightly reduce predictability;
random increment (avg +2) exceeds random decrement (avg +1) by random increment (avg +2) exceeds random decrement (avg +1) by
a small amount; normal speed monsters will occasionally get an a small amount; normal speed monsters will occasionally get an
@@ -958,10 +953,8 @@ struct obj *otmp;
(otyp != BELL_OF_OPENING || !is_covetous(mdat))) (otyp != BELL_OF_OPENING || !is_covetous(mdat)))
return FALSE; return FALSE;
#ifdef STEED
/* Steeds don't pick up stuff (to avoid shop abuse) */ /* Steeds don't pick up stuff (to avoid shop abuse) */
if (mtmp == u.usteed) return (FALSE); if (mtmp == u.usteed) return (FALSE);
#endif
if (mtmp->isshk) return(TRUE); /* no limit */ if (mtmp->isshk) return(TRUE); /* no limit */
if (mtmp->mpeaceful && !mtmp->mtame) return(FALSE); if (mtmp->mpeaceful && !mtmp->mtame) return(FALSE);
/* otherwise players might find themselves obligated to violate /* otherwise players might find themselves obligated to violate
@@ -1313,10 +1306,8 @@ register struct monst *mtmp, *mtmp2;
relmon(mtmp, (struct monst **)0); relmon(mtmp, (struct monst **)0);
/* finish adding its replacement */ /* finish adding its replacement */
#ifdef STEED if (mtmp != u.usteed) /* don't place steed onto the map */
if (mtmp == u.usteed) ; else /* don't place steed onto the map */ place_monster(mtmp2, mtmp2->mx, mtmp2->my);
#endif
place_monster(mtmp2, mtmp2->mx, mtmp2->my);
if (mtmp2->wormno) /* update level.monsters[wseg->wx][wseg->wy] */ if (mtmp2->wormno) /* update level.monsters[wseg->wx][wseg->wy] */
place_wsegs(mtmp2); /* locations to mtmp2 not mtmp. */ place_wsegs(mtmp2); /* locations to mtmp2 not mtmp. */
if (emits_light(mtmp2->data)) { if (emits_light(mtmp2->data)) {
@@ -1330,9 +1321,7 @@ register struct monst *mtmp, *mtmp2;
mtmp2->nmon = fmon; mtmp2->nmon = fmon;
fmon = mtmp2; fmon = mtmp2;
if (u.ustuck == mtmp) u.ustuck = mtmp2; if (u.ustuck == mtmp) u.ustuck = mtmp2;
#ifdef STEED
if (u.usteed == mtmp) u.usteed = mtmp2; if (u.usteed == mtmp) u.usteed = mtmp2;
#endif
if (mtmp2->isshk) replshk(mtmp,mtmp2); if (mtmp2->isshk) replshk(mtmp,mtmp2);
/* discard the old monster */ /* discard the old monster */
@@ -1597,11 +1586,9 @@ register struct monst *mtmp;
need to do this after life-saving and before m_detach() */ need to do this after life-saving and before m_detach() */
if (mtmp->isgd && !grddead(mtmp)) return; if (mtmp->isgd && !grddead(mtmp)) return;
#ifdef STEED
/* Player is thrown from his steed when it dies */ /* Player is thrown from his steed when it dies */
if (mtmp == u.usteed) if (mtmp == u.usteed)
dismount_steed(DISMOUNT_GENERIC); dismount_steed(DISMOUNT_GENERIC);
#endif
mptr = mtmp->data; /* save this for m_detach() */ mptr = mtmp->data; /* save this for m_detach() */
/* restore chameleon, lycanthropes to true form at death */ /* restore chameleon, lycanthropes to true form at death */
@@ -1748,11 +1735,9 @@ mongone(mdef)
register struct monst *mdef; register struct monst *mdef;
{ {
mdef->mhp = 0; /* can skip some inventory bookkeeping */ mdef->mhp = 0; /* can skip some inventory bookkeeping */
#ifdef STEED
/* Player is thrown from his steed when it disappears */ /* Player is thrown from his steed when it disappears */
if (mdef == u.usteed) if (mdef == u.usteed)
dismount_steed(DISMOUNT_GENERIC); dismount_steed(DISMOUNT_GENERIC);
#endif
/* drop special items like the Amulet so that a dismissed Kop or nurse /* drop special items like the Amulet so that a dismissed Kop or nurse
can't remove them from the game */ can't remove them from the game */
@@ -2121,14 +2106,12 @@ mnexto(mtmp) /* Make monster mtmp next to you (if possible) */
coord mm; coord mm;
boolean couldspot = canspotmon(mtmp); boolean couldspot = canspotmon(mtmp);
#ifdef STEED
if (mtmp == u.usteed) { if (mtmp == u.usteed) {
/* Keep your steed in sync with you instead */ /* Keep your steed in sync with you instead */
mtmp->mx = u.ux; mtmp->mx = u.ux;
mtmp->my = u.uy; mtmp->my = u.uy;
return; return;
} }
#endif
if(!enexto(&mm, u.ux, u.uy, mtmp->data)) return; if(!enexto(&mm, u.ux, u.uy, mtmp->data)) return;
rloc_to(mtmp, mm.x, mm.y); rloc_to(mtmp, mm.x, mm.y);
-2
View File
@@ -791,9 +791,7 @@ boolean
levl_follower(mtmp) levl_follower(mtmp)
struct monst *mtmp; struct monst *mtmp;
{ {
#ifdef STEED
if (mtmp == u.usteed) return TRUE; if (mtmp == u.usteed) return TRUE;
#endif
/* Wizard with Amulet won't bother trying to follow across levels */ /* Wizard with Amulet won't bother trying to follow across levels */
if (mtmp->iswiz && mon_has_amulet(mtmp)) return FALSE; if (mtmp->iswiz && mon_has_amulet(mtmp)) return FALSE;
-4
View File
@@ -618,12 +618,8 @@ TOOL("crystal ball", "glass orb",
TOOL("lenses", (char *)0, 1, 0, 0, 0, 5, 3, 80, GLASS, HI_GLASS), TOOL("lenses", (char *)0, 1, 0, 0, 0, 5, 3, 80, GLASS, HI_GLASS),
TOOL("blindfold", (char *)0, 1, 0, 0, 0, 50, 2, 20, CLOTH, CLR_BLACK), TOOL("blindfold", (char *)0, 1, 0, 0, 0, 50, 2, 20, CLOTH, CLR_BLACK),
TOOL("towel", (char *)0, 1, 0, 0, 0, 50, 2, 50, CLOTH, CLR_MAGENTA), TOOL("towel", (char *)0, 1, 0, 0, 0, 50, 2, 50, CLOTH, CLR_MAGENTA),
#ifdef STEED
TOOL("saddle", (char *)0, 1, 0, 0, 0, 5,200, 150, LEATHER, HI_LEATHER), TOOL("saddle", (char *)0, 1, 0, 0, 0, 5,200, 150, LEATHER, HI_LEATHER),
TOOL("leash", (char *)0, 1, 0, 0, 0, 65, 12, 20, LEATHER, HI_LEATHER), TOOL("leash", (char *)0, 1, 0, 0, 0, 65, 12, 20, LEATHER, HI_LEATHER),
#else
TOOL("leash", (char *)0, 1, 0, 0, 0, 70, 12, 20, LEATHER, HI_LEATHER),
#endif
TOOL("stethoscope", (char *)0, 1, 0, 0, 0, 25, 4, 75, IRON, HI_METAL), TOOL("stethoscope", (char *)0, 1, 0, 0, 0, 25, 4, 75, IRON, HI_METAL),
TOOL("tinning kit", (char *)0, 1, 0, 0, 1, 15,100, 30, IRON, HI_METAL), TOOL("tinning kit", (char *)0, 1, 0, 0, 1, 15,100, 30, IRON, HI_METAL),
TOOL("tin opener", (char *)0, 1, 0, 0, 0, 35, 4, 30, IRON, HI_METAL), TOOL("tin opener", (char *)0, 1, 0, 0, 0, 35, 4, 30, IRON, HI_METAL),
+1 -5
View File
@@ -772,11 +772,7 @@ plus:
/* weptools already get this done when we go to the +n code */ /* weptools already get this done when we go to the +n code */
if (!is_weptool(obj)) if (!is_weptool(obj))
add_erosion_words(obj, prefix); add_erosion_words(obj, prefix);
if(obj->owornmask & (W_TOOL /* blindfold */ if(obj->owornmask & (W_TOOL /* blindfold */ | W_SADDLE)) {
#ifdef STEED
| W_SADDLE
#endif
)) {
Strcat(bp, " (being worn)"); Strcat(bp, " (being worn)");
break; break;
} }
-2
View File
@@ -65,10 +65,8 @@ char *outbuf;
/* being blinded may hide invisibility from self */ /* being blinded may hide invisibility from self */
(Invis && (senseself() || !Blind)) ? "invisible " : "", (Invis && (senseself() || !Blind)) ? "invisible " : "",
race, mons[u.umonnum].mname, plname); race, mons[u.umonnum].mname, plname);
#ifdef STEED
if (u.usteed) if (u.usteed)
Sprintf(eos(outbuf), ", mounted on %s", y_monnam(u.usteed)); Sprintf(eos(outbuf), ", mounted on %s", y_monnam(u.usteed));
#endif
return outbuf; return outbuf;
} }
-4
View File
@@ -1516,11 +1516,9 @@ boolean looting; /* loot vs tip */
const char *verb = looting ? "loot" : "tip"; const char *verb = looting ? "loot" : "tip";
if (!can_reach_floor(TRUE)) { if (!can_reach_floor(TRUE)) {
#ifdef STEED
if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
rider_cant_reach(); /* not skilled enough to reach */ rider_cant_reach(); /* not skilled enough to reach */
else else
#endif
cant_reach_floor(x, y, FALSE, TRUE); cant_reach_floor(x, y, FALSE, TRUE);
return FALSE; return FALSE;
} else if ((is_pool(x, y) && (looting || !Underwater)) || } else if ((is_pool(x, y) && (looting || !Underwater)) ||
@@ -1777,7 +1775,6 @@ boolean *prev_loot;
{ {
int c = -1; int c = -1;
int timepassed = 0; int timepassed = 0;
#ifdef STEED
struct obj *otmp; struct obj *otmp;
char qbuf[QBUFSZ]; char qbuf[QBUFSZ];
@@ -1816,7 +1813,6 @@ boolean *prev_loot;
return (0); return (0);
} }
} }
#endif /* STEED */
/* 3.4.0 introduced the ability to pick things up from within swallower's stomach */ /* 3.4.0 introduced the ability to pick things up from within swallower's stomach */
if (u.uswallow) { if (u.uswallow) {
int count = passed_info ? *passed_info : 0; int count = passed_info ? *passed_info : 0;
+1 -6
View File
@@ -401,9 +401,7 @@ register struct monst *mtmp;
", digesting you" : ", digesting you" :
is_animal(u.ustuck->data) ? ", swallowing you" : is_animal(u.ustuck->data) ? ", swallowing you" :
", engulfing you"); ", engulfing you");
#ifdef STEED
if (mtmp == u.usteed) Strcat(info, ", carrying you"); if (mtmp == u.usteed) Strcat(info, ", carrying you");
#endif
/* avoid "Status of the invisible newt ..., invisible" */ /* avoid "Status of the invisible newt ..., invisible" */
/* and unlike a normal mon_nam, use "saddled" even if it has a name */ /* and unlike a normal mon_nam, use "saddled" even if it has a name */
@@ -451,10 +449,7 @@ ustatusline()
} /* note: "goop" == "glop"; variation is intentional */ } /* note: "goop" == "glop"; variation is intentional */
} }
if (Stunned) Strcat(info, ", stunned"); if (Stunned) Strcat(info, ", stunned");
#ifdef STEED if (!u.usteed && Wounded_legs) {
if (!u.usteed)
#endif
if (Wounded_legs) {
const char *what = body_part(LEG); const char *what = body_part(LEG);
if ((Wounded_legs & BOTH_SIDES) == BOTH_SIDES) if ((Wounded_legs & BOTH_SIDES) == BOTH_SIDES)
what = makeplural(what); what = makeplural(what);
-2
View File
@@ -691,7 +691,6 @@ int mntmp;
if (!sticky && !u.uswallow && u.ustuck && sticks(youmonst.data)) u.ustuck = 0; if (!sticky && !u.uswallow && u.ustuck && sticks(youmonst.data)) u.ustuck = 0;
else if (sticky && !sticks(youmonst.data)) uunstick(); else if (sticky && !sticks(youmonst.data)) uunstick();
#ifdef STEED
if (u.usteed) { if (u.usteed) {
if (touch_petrifies(u.usteed->data) && if (touch_petrifies(u.usteed->data) &&
!Stone_resistance && rnl(3)) { !Stone_resistance && rnl(3)) {
@@ -704,7 +703,6 @@ int mntmp;
} }
if (!can_ride(u.usteed)) dismount_steed(DISMOUNT_POLY); if (!can_ride(u.usteed)) dismount_steed(DISMOUNT_POLY);
} }
#endif
if (flags.verbose) { if (flags.verbose) {
static const char use_thec[] = "Use the command #%s to %s."; static const char use_thec[] = "Use the command #%s to %s.";
+5 -31
View File
@@ -90,11 +90,9 @@ boolean talk;
} }
if (xtime && !old) { if (xtime && !old) {
if (talk) { if (talk) {
#ifdef STEED
if (u.usteed) if (u.usteed)
You("wobble in the saddle."); You("wobble in the saddle.");
else else
#endif
You("%s...", stagger(youmonst.data, "stagger")); You("%s...", stagger(youmonst.data, "stagger"));
} }
} }
@@ -676,10 +674,8 @@ peffects(otmp)
else { else {
if (Levitation || Is_airlevel(&u.uz)||Is_waterlevel(&u.uz)) if (Levitation || Is_airlevel(&u.uz)||Is_waterlevel(&u.uz))
You("are motionlessly suspended."); You("are motionlessly suspended.");
#ifdef STEED
else if (u.usteed) else if (u.usteed)
You("are frozen in place!"); You("are frozen in place!");
#endif
else else
Your("%s are frozen to the %s!", Your("%s are frozen to the %s!",
makeplural(body_part(FOOT)), surface(u.ux, u.uy)); makeplural(body_part(FOOT)), surface(u.ux, u.uy));
@@ -814,11 +810,8 @@ peffects(otmp)
} }
break; break;
case POT_SPEED: case POT_SPEED:
if(Wounded_legs && !otmp->cursed if(Wounded_legs && !otmp->cursed && !u.usteed) {
#ifdef STEED /* heal_legs() would heal steeds legs */
&& !u.usteed /* heal_legs() would heal steeds legs */
#endif
) {
heal_legs(); heal_legs();
unkn++; unkn++;
break; break;
@@ -1143,10 +1136,8 @@ boolean your_fault;
register const char *botlnam = bottlename(); register const char *botlnam = bottlename();
boolean isyou = (mon == &youmonst); boolean isyou = (mon == &youmonst);
int distance; int distance;
#ifdef STEED
struct obj *saddle = (struct obj *)0; struct obj *saddle = (struct obj *)0;
boolean hit_saddle = FALSE; boolean hit_saddle = FALSE;
#endif
if(isyou) { if(isyou) {
distance = 0; distance = 0;
@@ -1154,7 +1145,6 @@ boolean your_fault;
botlnam, body_part(HEAD)); botlnam, body_part(HEAD));
losehp(Maybe_Half_Phys(rnd(2)), "thrown potion", KILLED_BY_AN); losehp(Maybe_Half_Phys(rnd(2)), "thrown potion", KILLED_BY_AN);
} else { } else {
#ifdef STEED
/* sometimes it hits the saddle */ /* sometimes it hits the saddle */
if(((mon->misc_worn_check & W_SADDLE) && if(((mon->misc_worn_check & W_SADDLE) &&
(saddle = which_armor(mon, W_SADDLE))) && (saddle = which_armor(mon, W_SADDLE))) &&
@@ -1163,21 +1153,17 @@ boolean your_fault;
((rnl(10) > 7 && obj->cursed) || ((rnl(10) > 7 && obj->cursed) ||
(rnl(10) < 4 && obj->blessed) || !rn2(3))))) (rnl(10) < 4 && obj->blessed) || !rn2(3)))))
hit_saddle = TRUE; hit_saddle = TRUE;
#endif
distance = distu(mon->mx,mon->my); distance = distu(mon->mx,mon->my);
if (!cansee(mon->mx,mon->my)) pline("Crash!"); if (!cansee(mon->mx,mon->my)) pline("Crash!");
else { else {
char *mnam = mon_nam(mon); char *mnam = mon_nam(mon);
char buf[BUFSZ]; char buf[BUFSZ];
#ifdef STEED
if(hit_saddle && saddle) { if(hit_saddle && saddle) {
Sprintf(buf, "%s saddle", s_suffix(x_monnam(mon, Sprintf(buf, "%s saddle", s_suffix(x_monnam(mon,
ARTICLE_THE, (char *)0, ARTICLE_THE, (char *)0,
(SUPPRESS_IT|SUPPRESS_SADDLE), FALSE))); (SUPPRESS_IT|SUPPRESS_SADDLE), FALSE)));
} else } else if(has_head(mon->data)) {
#endif
if(has_head(mon->data)) {
Sprintf(buf, "%s %s", Sprintf(buf, "%s %s",
s_suffix(mnam), s_suffix(mnam),
(notonhead ? "body" : "head")); (notonhead ? "body" : "head"));
@@ -1187,20 +1173,12 @@ boolean your_fault;
pline_The("%s crashes on %s and breaks into shards.", pline_The("%s crashes on %s and breaks into shards.",
botlnam, buf); botlnam, buf);
} }
if(rn2(5) && mon->mhp > 1 if(rn2(5) && mon->mhp > 1 && !hit_saddle)
#ifdef STEED
&& !hit_saddle
#endif
)
mon->mhp--; mon->mhp--;
} }
/* oil doesn't instantly evaporate; Neither does a saddle hit */ /* oil doesn't instantly evaporate; Neither does a saddle hit */
if (obj->otyp != POT_OIL && if (obj->otyp != POT_OIL && !hit_saddle && cansee(mon->mx,mon->my))
#ifdef STEED
!hit_saddle &&
#endif
cansee(mon->mx,mon->my))
pline("%s.", Tobjnam(obj, "evaporate")); pline("%s.", Tobjnam(obj, "evaporate"));
if (isyou) { if (isyou) {
@@ -1224,7 +1202,6 @@ boolean your_fault;
} }
break; break;
} }
#ifdef STEED
} else if (hit_saddle && saddle) { } else if (hit_saddle && saddle) {
char *mnam, buf[BUFSZ], saddle_glows[BUFSZ]; char *mnam, buf[BUFSZ], saddle_glows[BUFSZ];
boolean affected = FALSE; boolean affected = FALSE;
@@ -1245,7 +1222,6 @@ boolean your_fault;
} }
if (useeit && !affected) if (useeit && !affected)
pline("%s %s wet.", buf, aobjnam(saddle, "get")); pline("%s %s wet.", buf, aobjnam(saddle, "get"));
#endif
} else { } else {
boolean angermon = TRUE; boolean angermon = TRUE;
@@ -1777,11 +1753,9 @@ dodip()
if (yn(upstart(qtoo)) == 'y') { if (yn(upstart(qtoo)) == 'y') {
if (Levitation) { if (Levitation) {
floating_above(pooltype); floating_above(pooltype);
#ifdef STEED
} else if (u.usteed && !is_swimmer(u.usteed->data) && } else if (u.usteed && !is_swimmer(u.usteed->data) &&
P_SKILL(P_RIDING) < P_BASIC) { P_SKILL(P_RIDING) < P_BASIC) {
rider_cant_reach(); /* not skilled enough to reach */ rider_cant_reach(); /* not skilled enough to reach */
#endif
} else { } else {
if (obj->otyp == POT_ACID) obj->in_use = 1; if (obj->otyp == POT_ACID) obj->in_use = 1;
(void) get_wet(obj); (void) get_wet(obj);
+1 -9
View File
@@ -207,12 +207,10 @@ in_trouble()
Cursed_obj(uarmf, FUMBLE_BOOTS)) Cursed_obj(uarmf, FUMBLE_BOOTS))
return TROUBLE_FUMBLING; return TROUBLE_FUMBLING;
if (worst_cursed_item()) return TROUBLE_CURSED_ITEMS; if (worst_cursed_item()) return TROUBLE_CURSED_ITEMS;
#ifdef STEED
if (u.usteed) { /* can't voluntarily dismount from a cursed saddle */ if (u.usteed) { /* can't voluntarily dismount from a cursed saddle */
otmp = which_armor(u.usteed, W_SADDLE); otmp = which_armor(u.usteed, W_SADDLE);
if (Cursed_obj(otmp, SADDLE)) return TROUBLE_SADDLE; if (Cursed_obj(otmp, SADDLE)) return TROUBLE_SADDLE;
} }
#endif
if (Blinded > 1 && haseyes(youmonst.data) && if (Blinded > 1 && haseyes(youmonst.data) &&
(!u.uswallow || (!u.uswallow ||
@@ -220,11 +218,7 @@ in_trouble()
return(TROUBLE_BLIND); return(TROUBLE_BLIND);
for(i=0; i<A_MAX; i++) for(i=0; i<A_MAX; i++)
if(ABASE(i) < AMAX(i)) return(TROUBLE_POISONED); if(ABASE(i) < AMAX(i)) return(TROUBLE_POISONED);
if(Wounded_legs if(Wounded_legs && !u.usteed) return (TROUBLE_WOUNDED_LEGS);
#ifdef STEED
&& !u.usteed
#endif
) return (TROUBLE_WOUNDED_LEGS);
if (u.uhs >= HUNGRY) return TROUBLE_HUNGRY; if (u.uhs >= HUNGRY) return TROUBLE_HUNGRY;
if (HStun & TIMEOUT) return TROUBLE_STUNNED; if (HStun & TIMEOUT) return TROUBLE_STUNNED;
if (HConfusion & TIMEOUT) return TROUBLE_CONFUSED; if (HConfusion & TIMEOUT) return TROUBLE_CONFUSED;
@@ -483,7 +477,6 @@ decurse:
pline ("Looks like you are back in Kansas."); pline ("Looks like you are back in Kansas.");
(void) make_hallucinated(0L,FALSE,0L); (void) make_hallucinated(0L,FALSE,0L);
break; break;
#ifdef STEED
case TROUBLE_SADDLE: case TROUBLE_SADDLE:
otmp = which_armor(u.usteed, W_SADDLE); otmp = which_armor(u.usteed, W_SADDLE);
if (!Blind) { if (!Blind) {
@@ -493,7 +486,6 @@ decurse:
} }
uncurse(otmp); uncurse(otmp);
break; break;
#endif
} }
} }
+1 -4
View File
@@ -1126,10 +1126,7 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
for (i = -bd; i <= bd; i++) for(j = -bd; j <= bd; j++) { for (i = -bd; i <= bd; i++) for(j = -bd; j <= bd; j++) {
if (!isok(u.ux + i, u.uy + j)) continue; if (!isok(u.ux + i, u.uy + j)) continue;
if ((mtmp = m_at(u.ux + i, u.uy + j)) != 0 if ((mtmp = m_at(u.ux + i, u.uy + j)) != 0
#ifdef STEED || (!i && !j && (mtmp = u.usteed) != 0)) {
|| (!i && !j && (mtmp = u.usteed) != 0)
#endif
) {
++candidates; ++candidates;
res = maybe_tame(mtmp, sobj); res = maybe_tame(mtmp, sobj);
results += res; results += res;
+2 -8
View File
@@ -516,7 +516,7 @@ STATIC_OVL
boolean boolean
restgamestate(fd, stuckid, steedid) restgamestate(fd, stuckid, steedid)
register int fd; register int fd;
unsigned int *stuckid, *steedid; /* STEED */ unsigned int *stuckid, *steedid;
{ {
struct flag newgameflags; struct flag newgameflags;
#ifdef SYSFLAGS #ifdef SYSFLAGS
@@ -652,10 +652,8 @@ unsigned int *stuckid, *steedid; /* STEED */
restore_oracles(fd); restore_oracles(fd);
if (u.ustuck) if (u.ustuck)
mread(fd, (genericptr_t) stuckid, sizeof (*stuckid)); mread(fd, (genericptr_t) stuckid, sizeof (*stuckid));
#ifdef STEED
if (u.usteed) if (u.usteed)
mread(fd, (genericptr_t) steedid, sizeof (*steedid)); mread(fd, (genericptr_t) steedid, sizeof (*steedid));
#endif
mread(fd, (genericptr_t) pl_character, sizeof pl_character); mread(fd, (genericptr_t) pl_character, sizeof pl_character);
mread(fd, (genericptr_t) pl_fruit, sizeof pl_fruit); mread(fd, (genericptr_t) pl_fruit, sizeof pl_fruit);
@@ -676,7 +674,7 @@ unsigned int *stuckid, *steedid; /* STEED */
*/ */
STATIC_OVL void STATIC_OVL void
restlevelstate(stuckid, steedid) restlevelstate(stuckid, steedid)
unsigned int stuckid, steedid; /* STEED */ unsigned int stuckid, steedid;
{ {
register struct monst *mtmp; register struct monst *mtmp;
@@ -686,7 +684,6 @@ unsigned int stuckid, steedid; /* STEED */
if (!mtmp) panic("Cannot find the monster ustuck."); if (!mtmp) panic("Cannot find the monster ustuck.");
u.ustuck = mtmp; u.ustuck = mtmp;
} }
#ifdef STEED
if (steedid) { if (steedid) {
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
if (mtmp->m_id == steedid) break; if (mtmp->m_id == steedid) break;
@@ -694,7 +691,6 @@ unsigned int stuckid, steedid; /* STEED */
u.usteed = mtmp; u.usteed = mtmp;
remove_monster(mtmp->mx, mtmp->my); remove_monster(mtmp->mx, mtmp->my);
} }
#endif
} }
/*ARGSUSED*/ /* fd used in MFLOPPY only */ /*ARGSUSED*/ /* fd used in MFLOPPY only */
@@ -793,9 +789,7 @@ register int fd;
* place_monster() on other levels * place_monster() on other levels
*/ */
u.ustuck = (struct monst *)0; u.ustuck = (struct monst *)0;
#ifdef STEED
u.usteed = (struct monst *)0; u.usteed = (struct monst *)0;
#endif
#ifdef MICRO #ifdef MICRO
# ifdef AMII_GRAPHICS # ifdef AMII_GRAPHICS
-8
View File
@@ -231,9 +231,7 @@ dosave0()
store_savefileinfo(fd); store_savefileinfo(fd);
store_plname_in_file(fd); store_plname_in_file(fd);
ustuck_id = (u.ustuck ? u.ustuck->m_id : 0); ustuck_id = (u.ustuck ? u.ustuck->m_id : 0);
#ifdef STEED
usteed_id = (u.usteed ? u.usteed->m_id : 0); usteed_id = (u.usteed ? u.usteed->m_id : 0);
#endif
savelev(fd, ledger_no(&u.uz), WRITE_SAVE | FREE_SAVE); savelev(fd, ledger_no(&u.uz), WRITE_SAVE | FREE_SAVE);
savegamestate(fd, WRITE_SAVE | FREE_SAVE); savegamestate(fd, WRITE_SAVE | FREE_SAVE);
@@ -248,9 +246,7 @@ dosave0()
* may mislead place_monster() on other levels * may mislead place_monster() on other levels
*/ */
u.ustuck = (struct monst *)0; u.ustuck = (struct monst *)0;
#ifdef STEED
u.usteed = (struct monst *)0; u.usteed = (struct monst *)0;
#endif
for(ltmp = (xchar)1; ltmp <= maxledgerno(); ltmp++) { for(ltmp = (xchar)1; ltmp <= maxledgerno(); ltmp++) {
if (ltmp == ledger_no(&uz_save)) continue; if (ltmp == ledger_no(&uz_save)) continue;
@@ -356,10 +352,8 @@ register int fd, mode;
save_oracles(fd, mode); save_oracles(fd, mode);
if(ustuck_id) if(ustuck_id)
bwrite(fd, (genericptr_t) &ustuck_id, sizeof ustuck_id); bwrite(fd, (genericptr_t) &ustuck_id, sizeof ustuck_id);
#ifdef STEED
if(usteed_id) if(usteed_id)
bwrite(fd, (genericptr_t) &usteed_id, sizeof usteed_id); bwrite(fd, (genericptr_t) &usteed_id, sizeof usteed_id);
#endif
bwrite(fd, (genericptr_t) pl_character, sizeof pl_character); bwrite(fd, (genericptr_t) pl_character, sizeof pl_character);
bwrite(fd, (genericptr_t) pl_fruit, sizeof pl_fruit); bwrite(fd, (genericptr_t) pl_fruit, sizeof pl_fruit);
savefruitchn(fd, mode); savefruitchn(fd, mode);
@@ -433,9 +427,7 @@ savestateinlock()
store_plname_in_file(fd); store_plname_in_file(fd);
ustuck_id = (u.ustuck ? u.ustuck->m_id : 0); ustuck_id = (u.ustuck ? u.ustuck->m_id : 0);
#ifdef STEED
usteed_id = (u.usteed ? u.usteed->m_id : 0); usteed_id = (u.usteed ? u.usteed->m_id : 0);
#endif
savegamestate(fd, WRITE_SAVE); savegamestate(fd, WRITE_SAVE);
} }
bclose(fd); bclose(fd);
+5 -13
View File
@@ -619,13 +619,11 @@ char *enterstring;
"Leave the %s%s outside.", "Leave the %s%s outside.",
tool, plur(cnt)); tool, plur(cnt));
should_block = TRUE; should_block = TRUE;
#ifdef STEED
} else if (u.usteed) { } else if (u.usteed) {
verbalize(NOTANGRY(shkp) ? verbalize(NOTANGRY(shkp) ?
"Will you please leave %s outside?" : "Will you please leave %s outside?" :
"Leave %s outside.", y_monnam(u.usteed)); "Leave %s outside.", y_monnam(u.usteed));
should_block = TRUE; should_block = TRUE;
#endif
} else { } else {
should_block = (Fast && (sobj_at(PICK_AXE, u.ux, u.uy) || should_block = (Fast && (sobj_at(PICK_AXE, u.ux, u.uy) ||
sobj_at(DWARVISH_MATTOCK, u.ux, u.uy))); sobj_at(DWARVISH_MATTOCK, u.ux, u.uy)));
@@ -3512,11 +3510,7 @@ register struct monst *shkp;
avoid = FALSE; avoid = FALSE;
} else { } else {
#define GDIST(x,y) (dist2(x,y,gx,gy)) #define GDIST(x,y) (dist2(x,y,gx,gy))
if (Invis if (Invis || u.usteed) {
#ifdef STEED
|| u.usteed
#endif
) {
avoid = FALSE; avoid = FALSE;
} else { } else {
uondoor = (u.ux == eshkp->shd.x && u.uy == eshkp->shd.y); uondoor = (u.ux == eshkp->shd.x && u.uy == eshkp->shd.y);
@@ -4285,9 +4279,7 @@ register xchar x, y;
&& shkp->mcanmove && !shkp->msleeping && shkp->mcanmove && !shkp->msleeping
&& (x == sx-1 || x == sx+1 || y == sy-1 || y == sy+1) && (x == sx-1 || x == sx+1 || y == sy-1 || y == sy+1)
&& (Invis || carrying(PICK_AXE) || carrying(DWARVISH_MATTOCK) && (Invis || carrying(PICK_AXE) || carrying(DWARVISH_MATTOCK)
#ifdef STEED
|| u.usteed || u.usteed
#endif
)) { )) {
pline("%s%s blocks your way!", shkname(shkp), pline("%s%s blocks your way!", shkname(shkp),
Invis ? " senses your motion and" : ""); Invis ? " senses your motion and" : "");
-2
View File
@@ -363,7 +363,6 @@ rndcurse() /* curse a few inventory items at random! */
update_inventory(); update_inventory();
} }
#ifdef STEED
/* treat steed's saddle as extended part of hero's inventory */ /* treat steed's saddle as extended part of hero's inventory */
if (u.usteed && !rn2(4) && if (u.usteed && !rn2(4) &&
(otmp = which_armor(u.usteed, W_SADDLE)) != 0 && (otmp = which_armor(u.usteed, W_SADDLE)) != 0 &&
@@ -379,7 +378,6 @@ rndcurse() /* curse a few inventory items at random! */
otmp->bknown = TRUE; otmp->bknown = TRUE;
} }
} }
#endif /*STEED*/
} }
void void
+5 -7
View File
@@ -974,15 +974,13 @@ dochat()
return(0); return(0);
} }
#ifdef STEED
if (u.usteed && u.dz > 0) { if (u.usteed && u.dz > 0) {
if (!u.usteed->mcanmove || u.usteed->msleeping) { if (!u.usteed->mcanmove || u.usteed->msleeping) {
pline("%s seems not to notice you.", Monnam(u.usteed)); pline("%s seems not to notice you.", Monnam(u.usteed));
return(1); return(1);
} else } else
return (domonnoise(u.usteed)); return (domonnoise(u.usteed));
} }
#endif
if (u.dz) { if (u.dz) {
pline("They won't hear you %s there.", u.dz < 0 ? "up" : "down"); pline("They won't hear you %s there.", u.dz < 0 ? "up" : "down");
+18 -22
View File
@@ -50,16 +50,15 @@ register struct monst *mtmp;
mtmp->mgold += gold->quan; mtmp->mgold += gold->quan;
delobj(gold); delobj(gold);
newsym(u.ux, u.uy); newsym(u.ux, u.uy);
#ifdef STEED if (u.usteed) {
if (u.usteed) who = u.usteed;
who = u.usteed, whose = s_suffix(y_monnam(who));
whose = s_suffix(y_monnam(who)), what = makeplural(mbodypart(who, FOOT));
what = makeplural(mbodypart(who, FOOT)); } else {
else who = &youmonst;
#endif whose = "your";
who = &youmonst, what = makeplural(body_part(FOOT));
whose = "your", }
what = makeplural(body_part(FOOT));
/* [ avoid "between your rear regions" :-] */ /* [ avoid "between your rear regions" :-] */
if (slithy(who->data)) what = "coils"; if (slithy(who->data)) what = "coils";
/* reduce "rear hooves/claws" to "hooves/claws" */ /* reduce "rear hooves/claws" to "hooves/claws" */
@@ -137,16 +136,15 @@ register struct monst *mtmp;
obj_extract_self(fgold); obj_extract_self(fgold);
add_to_minv(mtmp, fgold); add_to_minv(mtmp, fgold);
newsym(u.ux, u.uy); newsym(u.ux, u.uy);
#ifdef STEED if (u.usteed) {
if (u.usteed) who = u.usteed;
who = u.usteed, whose = s_suffix(y_monnam(who));
whose = s_suffix(y_monnam(who)), what = makeplural(mbodypart(who, FOOT));
what = makeplural(mbodypart(who, FOOT)); } else {
else who = &youmonst;
#endif whose = "your";
who = &youmonst, what = makeplural(body_part(FOOT));
whose = "your", }
what = makeplural(body_part(FOOT));
/* [ avoid "between your rear regions" :-] */ /* [ avoid "between your rear regions" :-] */
if (slithy(who->data)) what = "coils"; if (slithy(who->data)) what = "coils";
/* reduce "rear hooves/claws" to "hooves/claws" */ /* reduce "rear hooves/claws" to "hooves/claws" */
@@ -639,7 +637,6 @@ boolean verbosely;
if (mon->mhp > 0) { if (mon->mhp > 0) {
mon->misc_worn_check &= ~obj->owornmask; mon->misc_worn_check &= ~obj->owornmask;
update_mon = TRUE; update_mon = TRUE;
#ifdef STEED
/* don't charge for an owned saddle on dead steed (provided /* don't charge for an owned saddle on dead steed (provided
that the hero is within the same shop at the time) */ that the hero is within the same shop at the time) */
} else if (mon->mtame && (obj->owornmask & W_SADDLE) && } else if (mon->mtame && (obj->owornmask & W_SADDLE) &&
@@ -647,7 +644,6 @@ boolean verbosely;
/* being at a costly_spot guarantees lev->roomno is not 0 */ /* being at a costly_spot guarantees lev->roomno is not 0 */
index(in_rooms(u.ux, u.uy, SHOPBASE), levl[omx][omy].roomno)) { index(in_rooms(u.ux, u.uy, SHOPBASE), levl[omx][omy].roomno)) {
obj->no_charge = 1; obj->no_charge = 1;
#endif
} }
/* this should be done even if the monster has died */ /* this should be done even if the monster has died */
if (obj->owornmask & W_WEP) setmnotwielded(mon, obj); if (obj->owornmask & W_WEP) setmnotwielded(mon, obj);
-5
View File
@@ -5,9 +5,6 @@
#include "hack.h" #include "hack.h"
#ifdef STEED
/* Monsters that might be ridden */ /* Monsters that might be ridden */
static NEARDATA const char steeds[] = { static NEARDATA const char steeds[] = {
S_QUADRUPED, S_UNICORN, S_ANGEL, S_CENTAUR, S_DRAGON, S_JABBERWOCK, '\0' S_QUADRUPED, S_UNICORN, S_ANGEL, S_CENTAUR, S_DRAGON, S_JABBERWOCK, '\0'
@@ -698,6 +695,4 @@ int x, y;
level.monsters[x][y] = mon; level.monsters[x][y] = mon;
} }
#endif /* STEED */
/*steed.c*/ /*steed.c*/
+1 -10
View File
@@ -39,10 +39,7 @@ unsigned gpflags;
* oh well. * oh well.
*/ */
if (mtmp != &youmonst && x == u.ux && y == u.uy if (mtmp != &youmonst && x == u.ux && y == u.uy
#ifdef STEED && (!u.usteed || mtmp != u.usteed))
&& (!u.usteed || mtmp != u.usteed)
#endif
)
return FALSE; return FALSE;
if (mtmp) { if (mtmp) {
@@ -379,10 +376,8 @@ boolean force_it;
{ {
register struct obj *otmp; register struct obj *otmp;
#ifdef STEED
if (mtmp == u.usteed) if (mtmp == u.usteed)
return (FALSE); return (FALSE);
#endif
if (mtmp->mleashed) { if (mtmp->mleashed) {
otmp = get_mleash(mtmp); otmp = get_mleash(mtmp);
@@ -454,10 +449,8 @@ struct obj *scroll;
char whobuf[BUFSZ]; char whobuf[BUFSZ];
Strcpy(whobuf, "you"); Strcpy(whobuf, "you");
#ifdef STEED
if (u.usteed) if (u.usteed)
Sprintf(eos(whobuf), " and %s", mon_nam(u.usteed)); Sprintf(eos(whobuf), " and %s", mon_nam(u.usteed));
#endif
pline("To what position do %s want to be teleported?", pline("To what position do %s want to be teleported?",
whobuf); whobuf);
cc.x = u.ux; cc.x = u.ux;
@@ -1032,12 +1025,10 @@ boolean suppress_impossible;
{ {
register int x, y, trycount; register int x, y, trycount;
#ifdef STEED
if (mtmp == u.usteed) { if (mtmp == u.usteed) {
tele(); tele();
return TRUE; return TRUE;
} }
#endif
if (mtmp->iswiz && mtmp->mx) { /* Wizard, not just arriving */ if (mtmp->iswiz && mtmp->mx) { /* Wizard, not just arriving */
if (!In_W_tower(u.ux, u.uy, &u.uz)) if (!In_W_tower(u.ux, u.uy, &u.uz))
-8
View File
@@ -236,12 +236,10 @@ nh_timeout()
} }
} }
#ifdef STEED
if (u.ugallop) { if (u.ugallop) {
if (--u.ugallop == 0L && u.usteed) if (--u.ugallop == 0L && u.usteed)
pline("%s stops galloping.", Monnam(u.usteed)); pline("%s stops galloping.", Monnam(u.usteed));
} }
#endif
for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++) for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++)
if((upp->intrinsic & TIMEOUT) && !(--upp->intrinsic & TIMEOUT)) { if((upp->intrinsic & TIMEOUT) && !(--upp->intrinsic & TIMEOUT)) {
@@ -671,9 +669,7 @@ slip_or_trip()
const char *what; const char *what;
char buf[BUFSZ]; char buf[BUFSZ];
boolean on_foot = TRUE; boolean on_foot = TRUE;
#ifdef STEED
if (u.usteed) on_foot = FALSE; if (u.usteed) on_foot = FALSE;
#endif
if (otmp && on_foot && !u.uinwater && is_pool(u.ux, u.uy)) otmp = 0; if (otmp && on_foot && !u.uinwater && is_pool(u.ux, u.uy)) otmp = 0;
@@ -707,11 +703,9 @@ slip_or_trip()
} }
} else if (rn2(3) && is_ice(u.ux, u.uy)) { } else if (rn2(3) && is_ice(u.ux, u.uy)) {
pline("%s %s%s on the ice.", pline("%s %s%s on the ice.",
#ifdef STEED
u.usteed ? upstart(x_monnam(u.usteed, u.usteed ? upstart(x_monnam(u.usteed,
(has_mname(u.usteed)) ? ARTICLE_NONE : ARTICLE_THE, (has_mname(u.usteed)) ? ARTICLE_NONE : ARTICLE_THE,
(char *)0, SUPPRESS_SADDLE, FALSE)) : (char *)0, SUPPRESS_SADDLE, FALSE)) :
#endif
"You", rn2(2) ? "slip" : "slide", on_foot ? "" : "s"); "You", rn2(2) ? "slip" : "slide", on_foot ? "" : "s");
} else { } else {
if (on_foot) { if (on_foot) {
@@ -732,7 +726,6 @@ slip_or_trip()
break; break;
} }
} }
#ifdef STEED
else { else {
switch (rn2(4)) { switch (rn2(4)) {
case 1: case 1:
@@ -750,7 +743,6 @@ slip_or_trip()
} }
dismount_steed(DISMOUNT_FELL); dismount_steed(DISMOUNT_FELL);
} }
#endif
} }
} }
+7 -94
View File
@@ -30,11 +30,9 @@ STATIC_DCL char *FDECL(trapnote, (struct trap *,BOOLEAN_P));
STATIC_DCL void FDECL(join_adjacent_pits, (struct trap *)); STATIC_DCL void FDECL(join_adjacent_pits, (struct trap *));
#endif #endif
STATIC_DCL void FDECL(clear_conjoined_pits, (struct trap *)); STATIC_DCL void FDECL(clear_conjoined_pits, (struct trap *));
#ifdef STEED
STATIC_DCL int FDECL(steedintrap, (struct trap *, struct obj *)); STATIC_DCL int FDECL(steedintrap, (struct trap *, struct obj *));
STATIC_DCL boolean FDECL(keep_saddle_with_steedcorpse, STATIC_DCL boolean FDECL(keep_saddle_with_steedcorpse,
(unsigned, struct obj *, struct obj *)); (unsigned, struct obj *, struct obj *));
#endif
STATIC_DCL void NDECL(maybe_finish_sokoban); STATIC_DCL void NDECL(maybe_finish_sokoban);
/* mintrap() should take a flags argument, but for time being we use this */ /* mintrap() should take a flags argument, but for time being we use this */
@@ -651,7 +649,6 @@ boolean shatter;
return mtmp; return mtmp;
} }
#ifdef STEED
STATIC_OVL boolean STATIC_OVL boolean
keep_saddle_with_steedcorpse(steed_mid, objchn, saddle) keep_saddle_with_steedcorpse(steed_mid, objchn, saddle)
unsigned steed_mid; unsigned steed_mid;
@@ -679,7 +676,6 @@ struct obj *objchn, *saddle;
} }
return FALSE; return FALSE;
} }
#endif /*STEED*/
void void
dotrap(trap, trflags) dotrap(trap, trflags)
@@ -695,9 +691,7 @@ unsigned trflags;
plunged = (trflags & TOOKPLUNGE) != 0, plunged = (trflags & TOOKPLUNGE) != 0,
adj_pit = conjoined_pits(trap, t_at(u.ux0,u.uy0), TRUE); adj_pit = conjoined_pits(trap, t_at(u.ux0,u.uy0), TRUE);
int oldumort; int oldumort;
#ifdef STEED
int steed_article = ARTICLE_THE; int steed_article = ARTICLE_THE;
#endif
nomul(0); nomul(0);
@@ -736,7 +730,6 @@ unsigned trflags;
} }
} }
#ifdef STEED
if (u.usteed) { if (u.usteed) {
u.usteed->mtrapseen |= (1 << (ttype - 1)); u.usteed->mtrapseen |= (1 << (ttype - 1));
/* suppress article in various steed messages when using its /* suppress article in various steed messages when using its
@@ -744,7 +737,6 @@ unsigned trflags;
if (has_mname(u.usteed) && !Hallucination) if (has_mname(u.usteed) && !Hallucination)
steed_article = ARTICLE_NONE; steed_article = ARTICLE_NONE;
} }
#endif
switch(ttype) { switch(ttype) {
case ARROW_TRAP: case ARROW_TRAP:
@@ -761,11 +753,8 @@ unsigned trflags;
otmp->quan = 1L; otmp->quan = 1L;
otmp->owt = weight(otmp); otmp->owt = weight(otmp);
otmp->opoisoned = 0; otmp->opoisoned = 0;
#ifdef STEED
if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) /* nothing */; if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) /* nothing */;
else else if (thitu(8, dmgval(otmp, &youmonst), otmp, "arrow")) {
#endif
if (thitu(8, dmgval(otmp, &youmonst), otmp, "arrow")) {
obfree(otmp, (struct obj *)0); obfree(otmp, (struct obj *)0);
} else { } else {
place_object(otmp, u.ux, u.uy); place_object(otmp, u.ux, u.uy);
@@ -789,11 +778,8 @@ unsigned trflags;
otmp->owt = weight(otmp); otmp->owt = weight(otmp);
if (!rn2(6)) otmp->opoisoned = 1; if (!rn2(6)) otmp->opoisoned = 1;
oldumort = u.umortality; oldumort = u.umortality;
#ifdef STEED
if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) /* nothing */; if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) /* nothing */;
else else if (thitu(7, dmgval(otmp, &youmonst), otmp, "little dart")) {
#endif
if (thitu(7, dmgval(otmp, &youmonst), otmp, "little dart")) {
if (otmp->opoisoned) if (otmp->opoisoned)
poisoned("dart", A_CON, "little dart", poisoned("dart", A_CON, "little dart",
/* if damage triggered life-saving, /* if damage triggered life-saving,
@@ -876,27 +862,20 @@ unsigned trflags;
A_Your[trap->madeby_u]); A_Your[trap->madeby_u]);
break; break;
} }
if( if( !u.usteed && youmonst.data->msize <= MZ_SMALL) {
#ifdef STEED
!u.usteed &&
#endif
youmonst.data->msize <= MZ_SMALL) {
pline("%s bear trap closes harmlessly over you.", pline("%s bear trap closes harmlessly over you.",
A_Your[trap->madeby_u]); A_Your[trap->madeby_u]);
break; break;
} }
u.utrap = rn1(4, 4); u.utrap = rn1(4, 4);
u.utraptype = TT_BEARTRAP; u.utraptype = TT_BEARTRAP;
#ifdef STEED
if (u.usteed) { if (u.usteed) {
pline("%s bear trap closes on %s %s!", pline("%s bear trap closes on %s %s!",
A_Your[trap->madeby_u], s_suffix(mon_nam(u.usteed)), A_Your[trap->madeby_u], s_suffix(mon_nam(u.usteed)),
mbodypart(u.usteed, FOOT)); mbodypart(u.usteed, FOOT));
if (thitm(0, u.usteed, (struct obj *)0, dmg, FALSE)) if (thitm(0, u.usteed, (struct obj *)0, dmg, FALSE))
u.utrap = 0; /* steed died, hero not trapped */ u.utrap = 0; /* steed died, hero not trapped */
} else } else {
#endif
{
pline("%s bear trap closes on your %s!", pline("%s bear trap closes on your %s!",
A_Your[trap->madeby_u], body_part(FOOT)); A_Your[trap->madeby_u], body_part(FOOT));
if(u.umonnum == PM_OWLBEAR || u.umonnum == PM_BUGBEAR) if(u.umonnum == PM_OWLBEAR || u.umonnum == PM_BUGBEAR)
@@ -915,9 +894,7 @@ unsigned trflags;
pline("A cloud of gas puts you to sleep!"); pline("A cloud of gas puts you to sleep!");
fall_asleep(-rnd(25), TRUE); fall_asleep(-rnd(25), TRUE);
} }
#ifdef STEED
(void) steedintrap(trap, (struct obj *)0); (void) steedintrap(trap, (struct obj *)0);
#endif
break; break;
case RUST_TRAP: case RUST_TRAP:
@@ -1008,7 +985,6 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
} }
if (!Sokoban) { if (!Sokoban) {
char verbbuf[BUFSZ]; char verbbuf[BUFSZ];
#ifdef STEED
if (u.usteed) { if (u.usteed) {
if ((trflags & RECURSIVETRAP) != 0) if ((trflags & RECURSIVETRAP) != 0)
Sprintf(verbbuf, "and %s fall", Sprintf(verbbuf, "and %s fall",
@@ -1018,9 +994,7 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
Sprintf(verbbuf, "lead %s", Sprintf(verbbuf, "lead %s",
x_monnam(u.usteed, steed_article, x_monnam(u.usteed, steed_article,
"poor", SUPPRESS_SADDLE, FALSE)); "poor", SUPPRESS_SADDLE, FALSE));
} else } else if (adj_pit) {
#endif
if (adj_pit) {
You("move into an adjacent pit."); You("move into an adjacent pit.");
} else { } else {
Strcpy(verbbuf, !plunged ? "fall" : Strcpy(verbbuf, !plunged ? "fall" :
@@ -1038,7 +1012,6 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
pline("How pitiful. Isn't that the pits?"); pline("How pitiful. Isn't that the pits?");
if (ttype == SPIKED_PIT) { if (ttype == SPIKED_PIT) {
const char *predicament = "on a set of sharp iron spikes"; const char *predicament = "on a set of sharp iron spikes";
#ifdef STEED
if (u.usteed) { if (u.usteed) {
pline("%s %s %s!", pline("%s %s %s!",
upstart(x_monnam(u.usteed, steed_article, upstart(x_monnam(u.usteed, steed_article,
@@ -1046,14 +1019,11 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
adj_pit ? "steps" : "lands", adj_pit ? "steps" : "lands",
predicament); predicament);
} else } else
#endif You("%s %s!", adj_pit ? "step" : "land", predicament);
You("%s %s!", adj_pit ? "step" : "land", predicament);
} }
u.utrap = rn1(6,2); u.utrap = rn1(6,2);
u.utraptype = TT_PIT; u.utraptype = TT_PIT;
#ifdef STEED
if (!steedintrap(trap, (struct obj *)0)) { if (!steedintrap(trap, (struct obj *)0)) {
#endif
if (ttype == SPIKED_PIT) { if (ttype == SPIKED_PIT) {
oldumort = u.umortality; oldumort = u.umortality;
losehp(Maybe_Half_Phys(rnd(adj_pit ? 6 : 10)), losehp(Maybe_Half_Phys(rnd(adj_pit ? 6 : 10)),
@@ -1086,9 +1056,7 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
vision_full_recalc = 1; /* vision limits change */ vision_full_recalc = 1; /* vision limits change */
exercise(A_STR, FALSE); exercise(A_STR, FALSE);
exercise(A_DEX, FALSE); exercise(A_DEX, FALSE);
#ifdef STEED
} }
#endif
break; break;
case HOLE: case HOLE:
case TRAPDOOR: case TRAPDOOR:
@@ -1139,12 +1107,10 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
if (forcetrap) { if (forcetrap) {
Strcpy(verbbuf, "are caught by"); Strcpy(verbbuf, "are caught by");
#ifdef STEED
} else if (u.usteed) { } else if (u.usteed) {
Sprintf(verbbuf, "lead %s into", Sprintf(verbbuf, "lead %s into",
x_monnam(u.usteed, steed_article, x_monnam(u.usteed, steed_article,
"poor", SUPPRESS_SADDLE, FALSE)); "poor", SUPPRESS_SADDLE, FALSE));
#endif
} else { } else {
Sprintf(verbbuf, "%s into", Sprintf(verbbuf, "%s into",
Levitation ? (const char *)"float" : Levitation ? (const char *)"float" :
@@ -1158,7 +1124,6 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
{ {
register int str = ACURR(A_STR); register int str = ACURR(A_STR);
#ifdef STEED
/* If mounted, the steed gets trapped. Use mintrap /* If mounted, the steed gets trapped. Use mintrap
* to do all the work. If mtrapped is set as a result, * to do all the work. If mtrapped is set as a result,
* unset it and set utrap instead. In the case of a * unset it and set utrap instead. In the case of a
@@ -1183,7 +1148,6 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
webmsgok = FALSE; /* mintrap printed the messages */ webmsgok = FALSE; /* mintrap printed the messages */
} }
#endif
if (str <= 3) u.utrap = rn1(6,6); if (str <= 3) u.utrap = rn1(6,6);
else if (str < 6) u.utrap = rn1(6,4); else if (str < 6) u.utrap = rn1(6,4);
else if (str < 9) u.utrap = rn1(4,4); else if (str < 9) u.utrap = rn1(4,4);
@@ -1216,9 +1180,7 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
u.uen = (u.uenmax += 2); u.uen = (u.uenmax += 2);
break; break;
} else domagictrap(); } else domagictrap();
#ifdef STEED
(void) steedintrap(trap, (struct obj *)0); (void) steedintrap(trap, (struct obj *)0);
#endif
break; break;
case ANTI_MAGIC: case ANTI_MAGIC:
@@ -1258,13 +1220,11 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
case POLY_TRAP: { case POLY_TRAP: {
char verbbuf[BUFSZ]; char verbbuf[BUFSZ];
seetrap(trap); seetrap(trap);
#ifdef STEED
if (u.usteed) if (u.usteed)
Sprintf(verbbuf, "lead %s", Sprintf(verbbuf, "lead %s",
x_monnam(u.usteed, steed_article, x_monnam(u.usteed, steed_article,
(char *)0, SUPPRESS_SADDLE, FALSE)); (char *)0, SUPPRESS_SADDLE, FALSE));
else else
#endif
Sprintf(verbbuf,"%s", Sprintf(verbbuf,"%s",
Levitation ? (const char *)"float" : Levitation ? (const char *)"float" :
locomotion(youmonst.data, "step")); locomotion(youmonst.data, "step"));
@@ -1274,9 +1234,7 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
You_feel("momentarily different."); You_feel("momentarily different.");
/* Trap did nothing; don't remove it --KAA */ /* Trap did nothing; don't remove it --KAA */
} else { } else {
#ifdef STEED
(void) steedintrap(trap, (struct obj *)0); (void) steedintrap(trap, (struct obj *)0);
#endif
deltrap(trap); /* delete trap before polymorph */ deltrap(trap); /* delete trap before polymorph */
newsym(u.ux,u.uy); /* get rid of trap symbol */ newsym(u.ux,u.uy); /* get rid of trap symbol */
You_feel("a change coming over you."); You_feel("a change coming over you.");
@@ -1285,10 +1243,8 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
break; break;
} }
case LANDMINE: { case LANDMINE: {
#ifdef STEED
unsigned steed_mid = 0; unsigned steed_mid = 0;
struct obj *saddle = 0; struct obj *saddle = 0;
#endif
if ((Levitation || Flying) && !forcetrap) { if ((Levitation || Flying) && !forcetrap) {
if (!already_seen && rn2(3)) break; if (!already_seen && rn2(3)) break;
feeltrap(trap); feeltrap(trap);
@@ -1303,7 +1259,6 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
already_seen ? a_your[trap->madeby_u] : "", already_seen ? a_your[trap->madeby_u] : "",
already_seen ? " land mine" : "it"); already_seen ? " land mine" : "it");
} else { } else {
#ifdef STEED
/* prevent landmine from killing steed, throwing you to /* prevent landmine from killing steed, throwing you to
* the ground, and you being affected again by the same * the ground, and you being affected again by the same
* mine because it hasn't been deleted yet * mine because it hasn't been deleted yet
@@ -1311,26 +1266,21 @@ glovecheck: (void) rust_dmg(uarmg, "gauntlets", 1, TRUE, &youmonst);
static boolean recursive_mine = FALSE; static boolean recursive_mine = FALSE;
if (recursive_mine) break; if (recursive_mine) break;
#endif
feeltrap(trap); feeltrap(trap);
pline("KAABLAMM!!! You triggered %s land mine!", pline("KAABLAMM!!! You triggered %s land mine!",
a_your[trap->madeby_u]); a_your[trap->madeby_u]);
#ifdef STEED
if (u.usteed) steed_mid = u.usteed->m_id; if (u.usteed) steed_mid = u.usteed->m_id;
recursive_mine = TRUE; recursive_mine = TRUE;
(void) steedintrap(trap, (struct obj *)0); (void) steedintrap(trap, (struct obj *)0);
recursive_mine = FALSE; recursive_mine = FALSE;
saddle = sobj_at(SADDLE,u.ux, u.uy); saddle = sobj_at(SADDLE,u.ux, u.uy);
#endif
set_wounded_legs(LEFT_SIDE, rn1(35, 41)); set_wounded_legs(LEFT_SIDE, rn1(35, 41));
set_wounded_legs(RIGHT_SIDE, rn1(35, 41)); set_wounded_legs(RIGHT_SIDE, rn1(35, 41));
exercise(A_DEX, FALSE); exercise(A_DEX, FALSE);
} }
blow_up_landmine(trap); blow_up_landmine(trap);
#ifdef STEED
if (steed_mid && saddle && !u.usteed) if (steed_mid && saddle && !u.usteed)
(void)keep_saddle_with_steedcorpse(steed_mid, fobj, saddle); (void)keep_saddle_with_steedcorpse(steed_mid, fobj, saddle);
#endif
newsym(u.ux,u.uy); /* update trap symbol */ newsym(u.ux,u.uy); /* update trap symbol */
losehp(Maybe_Half_Phys(rnd(16)), "land mine", KILLED_BY_AN); losehp(Maybe_Half_Phys(rnd(16)), "land mine", KILLED_BY_AN);
/* fall recursively into the pit... */ /* fall recursively into the pit... */
@@ -1383,7 +1333,6 @@ boolean noprefix;
return tnbuf; return tnbuf;
} }
#ifdef STEED
STATIC_OVL int STATIC_OVL int
steedintrap(trap, otmp) steedintrap(trap, otmp)
struct trap *trap; struct trap *trap;
@@ -1460,7 +1409,6 @@ struct obj *otmp;
} }
return steedhit ? 1 : 0; return steedhit ? 1 : 0;
} }
#endif /*STEED*/
/* some actions common to both player and monsters for triggered landmine */ /* some actions common to both player and monsters for triggered landmine */
void void
@@ -1964,10 +1912,8 @@ register struct monst *mtmp;
Sokoban && !trap->madeby_u); Sokoban && !trap->madeby_u);
const char *fallverb; const char *fallverb;
#ifdef STEED
/* true when called from dotrap, inescapable is not an option */ /* true when called from dotrap, inescapable is not an option */
if (mtmp == u.usteed) inescapable = TRUE; if (mtmp == u.usteed) inescapable = TRUE;
#endif
if (!inescapable && if (!inescapable &&
((mtmp->mtrapseen & (1 << (tt-1))) != 0 || ((mtmp->mtrapseen & (1 << (tt-1))) != 0 ||
(tt == HOLE && !mindless(mptr)))) { (tt == HOLE && !mindless(mptr)))) {
@@ -1983,10 +1929,8 @@ register struct monst *mtmp;
in_sight = canseemon(mtmp); in_sight = canseemon(mtmp);
see_it = cansee(mtmp->mx, mtmp->my); see_it = cansee(mtmp->mx, mtmp->my);
#ifdef STEED
/* assume hero can tell what's going on for the steed */ /* assume hero can tell what's going on for the steed */
if (mtmp == u.usteed) in_sight = TRUE; if (mtmp == u.usteed) in_sight = TRUE;
#endif
switch (tt) { switch (tt) {
case ARROW_TRAP: case ARROW_TRAP:
if (trap->once && trap->tseen && !rn2(15)) { if (trap->once && trap->tseen && !rn2(15)) {
@@ -2633,7 +2577,6 @@ float_up()
You("gain control over your movements."); You("gain control over your movements.");
else else
You("start to float in the air!"); You("start to float in the air!");
#ifdef STEED
if (u.usteed && !is_floater(u.usteed->data) && if (u.usteed && !is_floater(u.usteed->data) &&
!is_flyer(u.usteed->data)) { !is_flyer(u.usteed->data)) {
if (Lev_at_will) if (Lev_at_will)
@@ -2643,7 +2586,6 @@ float_up()
dismount_steed(DISMOUNT_GENERIC); dismount_steed(DISMOUNT_GENERIC);
} }
} }
#endif
if (Flying) You("are no longer able to control your flight."); if (Flying) You("are no longer able to control your flight.");
BFlying |= I_SPECIAL; BFlying |= I_SPECIAL;
return; return;
@@ -2744,10 +2686,7 @@ long hmask, emask; /* might cancel timeout */
You_feel("heavier."); You_feel("heavier.");
/* u.uinwater msgs already in spoteffects()/drown() */ /* u.uinwater msgs already in spoteffects()/drown() */
else if (!u.uinwater && !no_msg) { else if (!u.uinwater && !no_msg) {
#ifdef STEED if (!(emask & W_SADDLE)) {
if (!(emask & W_SADDLE))
#endif
{
if (Sokoban && trap) { if (Sokoban && trap) {
/* Justification elsewhere for Sokoban traps /* Justification elsewhere for Sokoban traps
* is based on air currents. This is * is based on air currents. This is
@@ -2761,15 +2700,11 @@ long hmask, emask; /* might cancel timeout */
else else
You("fall over."); You("fall over.");
losehp(rnd(2), "dangerous winds", KILLED_BY); losehp(rnd(2), "dangerous winds", KILLED_BY);
#ifdef STEED
if (u.usteed) dismount_steed(DISMOUNT_FELL); if (u.usteed) dismount_steed(DISMOUNT_FELL);
#endif
selftouch("As you fall, you"); selftouch("As you fall, you");
#ifdef STEED
} else if (u.usteed && (is_floater(u.usteed->data) || } else if (u.usteed && (is_floater(u.usteed->data) ||
is_flyer(u.usteed->data))) { is_flyer(u.usteed->data))) {
You("settle more firmly in the saddle."); You("settle more firmly in the saddle.");
#endif
} else if (Hallucination) } else if (Hallucination)
pline("Bummer! You've %s.", pline("Bummer! You've %s.",
is_pool(u.ux,u.uy) ? "splashed down" : is_pool(u.ux,u.uy) ? "splashed down" :
@@ -2834,19 +2769,15 @@ climb_pit()
You("%s to the edge of the pit.", You("%s to the edge of the pit.",
(Sokoban && Levitation) ? (Sokoban && Levitation) ?
"struggle against the air currents and float" : "struggle against the air currents and float" :
#ifdef STEED
u.usteed ? "ride" : u.usteed ? "ride" :
#endif
"crawl"); "crawl");
fill_pit(u.ux, u.uy); fill_pit(u.ux, u.uy);
vision_full_recalc = 1; /* vision limits change */ vision_full_recalc = 1; /* vision limits change */
} else if (u.dz || flags.verbose) { } else if (u.dz || flags.verbose) {
#ifdef STEED
if (u.usteed) if (u.usteed)
Norep("%s is still in a pit.", Norep("%s is still in a pit.",
upstart(y_monnam(u.usteed))); upstart(y_monnam(u.usteed)));
else else
#endif
Norep((Hallucination && !rn2(5)) ? Norep((Hallucination && !rn2(5)) ?
"You've fallen, and you can't get up." : "You've fallen, and you can't get up." :
"You are still in a pit."); "You are still in a pit.");
@@ -3361,13 +3292,11 @@ drown()
return(TRUE); return(TRUE);
} else pline_The("attempted teleport spell fails."); } else pline_The("attempted teleport spell fails.");
} }
#ifdef STEED
if (u.usteed) { if (u.usteed) {
dismount_steed(DISMOUNT_GENERIC); dismount_steed(DISMOUNT_GENERIC);
if(!is_pool(u.ux,u.uy)) if(!is_pool(u.ux,u.uy))
return(TRUE); return(TRUE);
} }
#endif
crawl_ok = FALSE; crawl_ok = FALSE;
x = y = 0; /* lint suppression */ x = y = 0; /* lint suppression */
/* if sleeping, wake up now so that we don't crawl out of water /* if sleeping, wake up now so that we don't crawl out of water
@@ -3603,11 +3532,9 @@ boolean force_failure;
} }
/* untrappable traps are located on the ground. */ /* untrappable traps are located on the ground. */
if (!can_reach_floor(TRUE)) { if (!can_reach_floor(TRUE)) {
#ifdef STEED
if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
rider_cant_reach(); rider_cant_reach();
else else
#endif
You("are unable to reach the %s!", You("are unable to reach the %s!",
defsyms[trap_to_defsym(ttype)].explanation); defsyms[trap_to_defsym(ttype)].explanation);
return 0; return 0;
@@ -3627,12 +3554,10 @@ boolean force_failure;
if (ttmp2) { if (ttmp2) {
pline_The("webbing sticks to you. You're caught too!"); pline_The("webbing sticks to you. You're caught too!");
dotrap(ttmp2, NOWEBMSG); dotrap(ttmp2, NOWEBMSG);
#ifdef STEED
if (u.usteed && u.utrap) { if (u.usteed && u.utrap) {
/* you, not steed, are trapped */ /* you, not steed, are trapped */
dismount_steed(DISMOUNT_FELL); dismount_steed(DISMOUNT_FELL);
} }
#endif
} }
} else } else
pline("%s remains entangled.", Monnam(mtmp)); pline("%s remains entangled.", Monnam(mtmp));
@@ -3937,9 +3862,7 @@ boolean force;
useplural ? "are" : "is", useplural ? "are" : "is",
the_trap, here ? "here" : "there", the_trap, here ? "here" : "there",
useplural ? "them" : "it", useplural ? "them" : "it",
#ifdef STEED
u.usteed ? " while mounted" : u.usteed ? " while mounted" :
#endif
""); "");
trap_skipped = (ttmp != 0); trap_skipped = (ttmp != 0);
} else { /* deal_with_floor_trap */ } else { /* deal_with_floor_trap */
@@ -4131,9 +4054,7 @@ boolean *noticed; /* set to true iff hero notices the effect; */
const char *trapdescr, *which; const char *trapdescr, *which;
boolean ishero = (mon == &youmonst); boolean ishero = (mon == &youmonst);
#ifdef STEED
if (mon == u.usteed) ishero = TRUE; if (mon == u.usteed) ishero = TRUE;
#endif
t = t_at(ishero ? u.ux : mon->mx, ishero ? u.uy : mon->my); t = t_at(ishero ? u.ux : mon->mx, ishero ? u.uy : mon->my);
/* if no trap here or it's not a holding trap, we're done */ /* if no trap here or it's not a holding trap, we're done */
if (!t || (t->ttyp != BEAR_TRAP && t->ttyp != WEB)) return FALSE; if (!t || (t->ttyp != BEAR_TRAP && t->ttyp != WEB)) return FALSE;
@@ -4148,11 +4069,9 @@ boolean *noticed; /* set to true iff hero notices the effect; */
*noticed = TRUE; *noticed = TRUE;
/* give message only if trap was the expected type */ /* give message only if trap was the expected type */
if (u.utraptype == TT_BEARTRAP || u.utraptype == TT_WEB) { if (u.utraptype == TT_BEARTRAP || u.utraptype == TT_WEB) {
#ifdef STEED
if (u.usteed) if (u.usteed)
Sprintf(buf, "%s is", noit_Monnam(u.usteed)); Sprintf(buf, "%s is", noit_Monnam(u.usteed));
else else
#endif
Strcpy(buf, "You are"); Strcpy(buf, "You are");
pline("%s released from %s %s.", buf, which, trapdescr); pline("%s released from %s %s.", buf, which, trapdescr);
} }
@@ -4188,9 +4107,7 @@ boolean *noticed; /* set to true iff hero notices the effect; */
unsigned dotrapflags; unsigned dotrapflags;
boolean ishero = (mon == &youmonst), result; boolean ishero = (mon == &youmonst), result;
#ifdef STEED
if (mon == u.usteed) ishero = TRUE; if (mon == u.usteed) ishero = TRUE;
#endif
t = t_at(ishero ? u.ux : mon->mx, ishero ? u.uy : mon->my); t = t_at(ishero ? u.ux : mon->mx, ishero ? u.uy : mon->my);
/* if no trap here or it's not a holding trap, we're done */ /* if no trap here or it's not a holding trap, we're done */
if (!t || (t->ttyp != BEAR_TRAP && t->ttyp != WEB)) return FALSE; if (!t || (t->ttyp != BEAR_TRAP && t->ttyp != WEB)) return FALSE;
@@ -4199,10 +4116,8 @@ boolean *noticed; /* set to true iff hero notices the effect; */
if (u.utrap) return FALSE; /* already trapped */ if (u.utrap) return FALSE; /* already trapped */
*noticed = TRUE; *noticed = TRUE;
dotrapflags = FORCETRAP; dotrapflags = FORCETRAP;
#ifdef STEED
/* dotrap calls mintrap when mounted hero encounters a web */ /* dotrap calls mintrap when mounted hero encounters a web */
if (u.usteed) dotrapflags |= NOWEBMSG; if (u.usteed) dotrapflags |= NOWEBMSG;
#endif
++force_mintrap; ++force_mintrap;
dotrap(t, dotrapflags); dotrap(t, dotrapflags);
--force_mintrap; --force_mintrap;
@@ -4230,9 +4145,7 @@ boolean *noticed; /* set to true iff hero notices the effect; */
struct trap *t; struct trap *t;
boolean ishero = (mon == &youmonst), result; boolean ishero = (mon == &youmonst), result;
#ifdef STEED
if (mon == u.usteed) ishero = TRUE; if (mon == u.usteed) ishero = TRUE;
#endif
t = t_at(ishero ? u.ux : mon->mx, ishero ? u.uy : mon->my); t = t_at(ishero ? u.ux : mon->mx, ishero ? u.uy : mon->my);
/* if no trap here or it's not a falling trap, we're done /* if no trap here or it's not a falling trap, we're done
(note: falling rock traps have a trapdoor in the ceiling) */ (note: falling rock traps have a trapdoor in the ceiling) */
-18
View File
@@ -262,9 +262,7 @@ static const struct def_skill Skill_A[] = {
{ P_UNICORN_HORN, P_SKILLED }, { P_UNICORN_HORN, P_SKILLED },
{ P_ATTACK_SPELL, P_BASIC }, { P_HEALING_SPELL, P_BASIC }, { P_ATTACK_SPELL, P_BASIC }, { P_HEALING_SPELL, P_BASIC },
{ P_DIVINATION_SPELL, P_EXPERT}, { P_MATTER_SPELL, P_BASIC}, { P_DIVINATION_SPELL, P_EXPERT}, { P_MATTER_SPELL, P_BASIC},
#ifdef STEED
{ P_RIDING, P_BASIC }, { P_RIDING, P_BASIC },
#endif
{ P_TWO_WEAPON_COMBAT, P_BASIC }, { P_TWO_WEAPON_COMBAT, P_BASIC },
{ P_BARE_HANDED_COMBAT, P_EXPERT }, { P_BARE_HANDED_COMBAT, P_EXPERT },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -281,9 +279,7 @@ static const struct def_skill Skill_B[] = {
{ P_QUARTERSTAFF, P_BASIC }, { P_SPEAR, P_SKILLED }, { P_QUARTERSTAFF, P_BASIC }, { P_SPEAR, P_SKILLED },
{ P_TRIDENT, P_SKILLED }, { P_BOW, P_BASIC }, { P_TRIDENT, P_SKILLED }, { P_BOW, P_BASIC },
{ P_ATTACK_SPELL, P_SKILLED }, { P_ATTACK_SPELL, P_SKILLED },
#ifdef STEED
{ P_RIDING, P_BASIC }, { P_RIDING, P_BASIC },
#endif
{ P_TWO_WEAPON_COMBAT, P_BASIC }, { P_TWO_WEAPON_COMBAT, P_BASIC },
{ P_BARE_HANDED_COMBAT, P_MASTER }, { P_BARE_HANDED_COMBAT, P_MASTER },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -332,9 +328,7 @@ static const struct def_skill Skill_K[] = {
{ P_BOW, P_BASIC }, { P_CROSSBOW, P_SKILLED }, { P_BOW, P_BASIC }, { P_CROSSBOW, P_SKILLED },
{ P_ATTACK_SPELL, P_SKILLED }, { P_HEALING_SPELL, P_SKILLED }, { P_ATTACK_SPELL, P_SKILLED }, { P_HEALING_SPELL, P_SKILLED },
{ P_CLERIC_SPELL, P_SKILLED }, { P_CLERIC_SPELL, P_SKILLED },
#ifdef STEED
{ P_RIDING, P_EXPERT }, { P_RIDING, P_EXPERT },
#endif
{ P_TWO_WEAPON_COMBAT, P_SKILLED }, { P_TWO_WEAPON_COMBAT, P_SKILLED },
{ P_BARE_HANDED_COMBAT, P_EXPERT }, { P_BARE_HANDED_COMBAT, P_EXPERT },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -379,9 +373,7 @@ static const struct def_skill Skill_R[] = {
{ P_DART, P_EXPERT }, { P_SHURIKEN, P_SKILLED }, { P_DART, P_EXPERT }, { P_SHURIKEN, P_SKILLED },
{ P_DIVINATION_SPELL, P_SKILLED }, { P_ESCAPE_SPELL, P_SKILLED }, { P_DIVINATION_SPELL, P_SKILLED }, { P_ESCAPE_SPELL, P_SKILLED },
{ P_MATTER_SPELL, P_SKILLED }, { P_MATTER_SPELL, P_SKILLED },
#ifdef STEED
{ P_RIDING, P_BASIC }, { P_RIDING, P_BASIC },
#endif
{ P_TWO_WEAPON_COMBAT, P_EXPERT }, { P_TWO_WEAPON_COMBAT, P_EXPERT },
{ P_BARE_HANDED_COMBAT, P_EXPERT }, { P_BARE_HANDED_COMBAT, P_EXPERT },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -401,9 +393,7 @@ static const struct def_skill Skill_Ran[] = {
{ P_HEALING_SPELL, P_BASIC }, { P_HEALING_SPELL, P_BASIC },
{ P_DIVINATION_SPELL, P_EXPERT }, { P_DIVINATION_SPELL, P_EXPERT },
{ P_ESCAPE_SPELL, P_BASIC }, { P_ESCAPE_SPELL, P_BASIC },
#ifdef STEED
{ P_RIDING, P_BASIC }, { P_RIDING, P_BASIC },
#endif
{ P_BARE_HANDED_COMBAT, P_BASIC }, { P_BARE_HANDED_COMBAT, P_BASIC },
{ P_NONE, 0 } { P_NONE, 0 }
}; };
@@ -418,9 +408,7 @@ static const struct def_skill Skill_S[] = {
{ P_LANCE, P_SKILLED }, { P_LANCE, P_SKILLED },
{ P_BOW, P_EXPERT }, { P_SHURIKEN, P_EXPERT }, { P_BOW, P_EXPERT }, { P_SHURIKEN, P_EXPERT },
{ P_ATTACK_SPELL, P_SKILLED }, { P_CLERIC_SPELL, P_SKILLED }, { P_ATTACK_SPELL, P_SKILLED }, { P_CLERIC_SPELL, P_SKILLED },
#ifdef STEED
{ P_RIDING, P_SKILLED }, { P_RIDING, P_SKILLED },
#endif
{ P_TWO_WEAPON_COMBAT, P_EXPERT }, { P_TWO_WEAPON_COMBAT, P_EXPERT },
{ P_MARTIAL_ARTS, P_MASTER }, { P_MARTIAL_ARTS, P_MASTER },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -444,9 +432,7 @@ static const struct def_skill Skill_T[] = {
{ P_WHIP, P_BASIC }, { P_UNICORN_HORN, P_SKILLED }, { P_WHIP, P_BASIC }, { P_UNICORN_HORN, P_SKILLED },
{ P_DIVINATION_SPELL, P_BASIC }, { P_ENCHANTMENT_SPELL, P_BASIC }, { P_DIVINATION_SPELL, P_BASIC }, { P_ENCHANTMENT_SPELL, P_BASIC },
{ P_ESCAPE_SPELL, P_SKILLED }, { P_ESCAPE_SPELL, P_SKILLED },
#ifdef STEED
{ P_RIDING, P_BASIC }, { P_RIDING, P_BASIC },
#endif
{ P_TWO_WEAPON_COMBAT, P_SKILLED }, { P_TWO_WEAPON_COMBAT, P_SKILLED },
{ P_BARE_HANDED_COMBAT, P_SKILLED }, { P_BARE_HANDED_COMBAT, P_SKILLED },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -464,9 +450,7 @@ static const struct def_skill Skill_V[] = {
{ P_TRIDENT, P_BASIC }, { P_LANCE, P_SKILLED }, { P_TRIDENT, P_BASIC }, { P_LANCE, P_SKILLED },
{ P_SLING, P_BASIC }, { P_SLING, P_BASIC },
{ P_ATTACK_SPELL, P_BASIC }, { P_ESCAPE_SPELL, P_BASIC }, { P_ATTACK_SPELL, P_BASIC }, { P_ESCAPE_SPELL, P_BASIC },
#ifdef STEED
{ P_RIDING, P_SKILLED }, { P_RIDING, P_SKILLED },
#endif
{ P_TWO_WEAPON_COMBAT, P_SKILLED }, { P_TWO_WEAPON_COMBAT, P_SKILLED },
{ P_BARE_HANDED_COMBAT, P_EXPERT }, { P_BARE_HANDED_COMBAT, P_EXPERT },
{ P_NONE, 0 } { P_NONE, 0 }
@@ -484,9 +468,7 @@ static const struct def_skill Skill_W[] = {
{ P_DIVINATION_SPELL, P_EXPERT }, { P_ENCHANTMENT_SPELL, P_SKILLED }, { P_DIVINATION_SPELL, P_EXPERT }, { P_ENCHANTMENT_SPELL, P_SKILLED },
{ P_CLERIC_SPELL, P_SKILLED }, { P_ESCAPE_SPELL, P_EXPERT }, { P_CLERIC_SPELL, P_SKILLED }, { P_ESCAPE_SPELL, P_EXPERT },
{ P_MATTER_SPELL, P_EXPERT }, { P_MATTER_SPELL, P_EXPERT },
#ifdef STEED
{ P_RIDING, P_BASIC }, { P_RIDING, P_BASIC },
#endif
{ P_BARE_HANDED_COMBAT, P_BASIC }, { P_BARE_HANDED_COMBAT, P_BASIC },
{ P_NONE, 0 } { P_NONE, 0 }
}; };
+3 -17
View File
@@ -11,9 +11,7 @@ STATIC_DCL boolean FDECL(theft_petrifies, (struct obj *));
STATIC_DCL void FDECL(steal_it, (struct monst *, struct attack *)); STATIC_DCL void FDECL(steal_it, (struct monst *, struct attack *));
STATIC_DCL boolean FDECL(hitum, (struct monst *,struct attack *)); STATIC_DCL boolean FDECL(hitum, (struct monst *,struct attack *));
STATIC_DCL boolean FDECL(hmon_hitmon, (struct monst *,struct obj *,int)); STATIC_DCL boolean FDECL(hmon_hitmon, (struct monst *,struct obj *,int));
#ifdef STEED
STATIC_DCL int FDECL(joust, (struct monst *,struct obj *)); STATIC_DCL int FDECL(joust, (struct monst *,struct obj *));
#endif
STATIC_DCL void NDECL(demonpet); STATIC_DCL void NDECL(demonpet);
STATIC_DCL boolean FDECL(m_slips_free, (struct monst *mtmp,struct attack *mattk)); STATIC_DCL boolean FDECL(m_slips_free, (struct monst *mtmp,struct attack *mattk));
STATIC_DCL int FDECL(explum, (struct monst *,struct attack *)); STATIC_DCL int FDECL(explum, (struct monst *,struct attack *));
@@ -559,9 +557,7 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
boolean hand_to_hand = (thrown == HMON_MELEE || boolean hand_to_hand = (thrown == HMON_MELEE ||
/* not grapnels; applied implies uwep */ /* not grapnels; applied implies uwep */
(thrown == HMON_APPLIED && is_pole(uwep))); (thrown == HMON_APPLIED && is_pole(uwep)));
#ifdef STEED
int jousting = 0; int jousting = 0;
#endif
int wtype; int wtype;
struct obj *monwep; struct obj *monwep;
char unconventional[BUFSZ]; /* substituted for word "attack" in msg */ char unconventional[BUFSZ]; /* substituted for word "attack" in msg */
@@ -607,11 +603,7 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
/* or strike with a missile in your hand... */ /* or strike with a missile in your hand... */
(!thrown && (is_missile(obj) || is_ammo(obj))) || (!thrown && (is_missile(obj) || is_ammo(obj))) ||
/* or use a pole at short range and not mounted... */ /* or use a pole at short range and not mounted... */
(!thrown && (!thrown && !u.usteed && is_pole(obj)) ||
#ifdef STEED
!u.usteed &&
#endif
is_pole(obj)) ||
/* or throw a missile without the proper bow... */ /* or throw a missile without the proper bow... */
(is_ammo(obj) && (thrown != HMON_THROWN || (is_ammo(obj) && (thrown != HMON_THROWN ||
!ammo_and_launcher(obj, uwep)))) { !ammo_and_launcher(obj, uwep)))) {
@@ -693,14 +685,12 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
&& mon_hates_silver(mon)) { && mon_hates_silver(mon)) {
silvermsg = TRUE; silverobj = TRUE; silvermsg = TRUE; silverobj = TRUE;
} }
#ifdef STEED
if (u.usteed && !thrown && tmp > 0 && if (u.usteed && !thrown && tmp > 0 &&
weapon_type(obj) == P_LANCE && mon != u.ustuck) { weapon_type(obj) == P_LANCE && mon != u.ustuck) {
jousting = joust(mon, obj); jousting = joust(mon, obj);
/* exercise skill even for minimal damage hits */ /* exercise skill even for minimal damage hits */
if (jousting) valid_weapon_attack = TRUE; if (jousting) valid_weapon_attack = TRUE;
} }
#endif
if (thrown == HMON_THROWN && if (thrown == HMON_THROWN &&
(is_ammo(obj) || is_missile(obj))) { (is_ammo(obj) || is_missile(obj))) {
if (ammo_and_launcher(obj, uwep)) { if (ammo_and_launcher(obj, uwep)) {
@@ -991,7 +981,6 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
} }
} }
#ifdef STEED
if (jousting) { if (jousting) {
tmp += d(2, (obj == uwep) ? 10 : 2); /* [was in dmgval()] */ tmp += d(2, (obj == uwep) ? 10 : 2); /* [was in dmgval()] */
You("joust %s%s", You("joust %s%s",
@@ -1012,11 +1001,8 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
if (DEADMONSTER(mon)) already_killed = TRUE; if (DEADMONSTER(mon)) already_killed = TRUE;
} }
hittxt = TRUE; hittxt = TRUE;
} else } else if (unarmed && tmp > 1 && !thrown && !obj && !Upolyd) {
#endif /* VERY small chance of stunning opponent if unarmed. */
/* VERY small chance of stunning opponent if unarmed. */
if (unarmed && tmp > 1 && !thrown && !obj && !Upolyd) {
if (rnd(100) < P_SKILL(P_BARE_HANDED_COMBAT) && if (rnd(100) < P_SKILL(P_BARE_HANDED_COMBAT) &&
!bigmonst(mdat) && !thick_skinned(mdat)) { !bigmonst(mdat) && !thick_skinned(mdat)) {
if (canspotmon(mon)) if (canspotmon(mon))
-8
View File
@@ -43,9 +43,7 @@ STATIC_VAR NEARDATA const short skill_names_indices[P_NUM_SKILLS] = {
PN_CLERIC_SPELL, PN_ESCAPE_SPELL, PN_CLERIC_SPELL, PN_ESCAPE_SPELL,
PN_MATTER_SPELL, PN_MATTER_SPELL,
PN_BARE_HANDED, PN_TWO_WEAPONS, PN_BARE_HANDED, PN_TWO_WEAPONS,
#ifdef STEED
PN_RIDING PN_RIDING
#endif
}; };
/* note: entry [0] isn't used */ /* note: entry [0] isn't used */
@@ -1184,7 +1182,6 @@ struct obj *weapon;
bonus = ((bonus + 2) * (martial_bonus() ? 2 : 1)) / 2; bonus = ((bonus + 2) * (martial_bonus() ? 2 : 1)) / 2;
} }
#ifdef STEED
/* KMH -- It's harder to hit while you are riding */ /* KMH -- It's harder to hit while you are riding */
if (u.usteed) { if (u.usteed) {
switch (P_SKILL(P_RIDING)) { switch (P_SKILL(P_RIDING)) {
@@ -1196,7 +1193,6 @@ struct obj *weapon;
} }
if (u.twoweap) bonus -= 2; if (u.twoweap) bonus -= 2;
} }
#endif
return bonus; return bonus;
} }
@@ -1253,7 +1249,6 @@ struct obj *weapon;
bonus = ((bonus + 1) * (martial_bonus() ? 3 : 1)) / 2; bonus = ((bonus + 1) * (martial_bonus() ? 3 : 1)) / 2;
} }
#ifdef STEED
/* KMH -- Riding gives some thrusting damage */ /* KMH -- Riding gives some thrusting damage */
if (u.usteed && type != P_TWO_WEAPON_COMBAT) { if (u.usteed && type != P_TWO_WEAPON_COMBAT) {
switch (P_SKILL(P_RIDING)) { switch (P_SKILL(P_RIDING)) {
@@ -1264,7 +1259,6 @@ struct obj *weapon;
case P_EXPERT: bonus += 2; break; case P_EXPERT: bonus += 2; break;
} }
} }
#endif
return bonus; return bonus;
} }
@@ -1326,10 +1320,8 @@ const struct def_skill *class_skill;
P_SKILL(P_BARE_HANDED_COMBAT) = P_BASIC; P_SKILL(P_BARE_HANDED_COMBAT) = P_BASIC;
/* Roles that start with a horse know how to ride it */ /* Roles that start with a horse know how to ride it */
#ifdef STEED
if (urole.petnum == PM_PONY) if (urole.petnum == PM_PONY)
P_SKILL(P_RIDING) = P_BASIC; P_SKILL(P_RIDING) = P_BASIC;
#endif
/* /*
* Make sure we haven't missed setting the max on a skill * Make sure we haven't missed setting the max on a skill
+3 -13
View File
@@ -106,10 +106,7 @@ register struct obj *obj;
unweapon = (obj->oclass == WEAPON_CLASS) ? unweapon = (obj->oclass == WEAPON_CLASS) ?
is_launcher(obj) || is_ammo(obj) || is_launcher(obj) || is_ammo(obj) ||
is_missile(obj) || (is_pole(obj) is_missile(obj) || (is_pole(obj)
#ifdef STEED && !u.usteed) : !is_weptool(obj);
&& !u.usteed
#endif
) : !is_weptool(obj);
} else } else
unweapon = TRUE; /* for "bare hands" message */ unweapon = TRUE; /* for "bare hands" message */
update_inventory(); update_inventory();
@@ -288,11 +285,7 @@ dowield()
return (doswapweapon()); return (doswapweapon());
else if (wep == uquiver) else if (wep == uquiver)
setuqwep((struct obj *) 0); setuqwep((struct obj *) 0);
else if (wep->owornmask & (W_ARMOR | W_RING | W_AMUL | W_TOOL else if (wep->owornmask & (W_ARMOR | W_RING | W_AMUL | W_TOOL | W_SADDLE)) {
#ifdef STEED
| W_SADDLE
#endif
)) {
You("cannot wield that!"); You("cannot wield that!");
return (0); return (0);
} }
@@ -392,10 +385,7 @@ dowieldquiver()
!is_plural(uwep) ? "That is" : "They are"); !is_plural(uwep) ? "That is" : "They are");
return(0); return(0);
} else if (newquiver->owornmask & (W_ARMOR | W_RING | W_AMUL | W_TOOL } else if (newquiver->owornmask & (W_ARMOR | W_RING | W_AMUL | W_TOOL
#ifdef STEED | W_SADDLE)) {
| W_SADDLE
#endif
)) {
You("cannot ready that!"); You("cannot ready that!");
return (0); return (0);
} else { } else {
-6
View File
@@ -169,10 +169,8 @@ struct obj *obj;
res = W_TOOL; /* WORN_BLINDF */ res = W_TOOL; /* WORN_BLINDF */
else if (is_weptool(obj) || otyp == TIN_OPENER) else if (is_weptool(obj) || otyp == TIN_OPENER)
res = W_WEP|W_SWAPWEP; res = W_WEP|W_SWAPWEP;
#ifdef STEED
else if (otyp == SADDLE) else if (otyp == SADDLE)
res = W_SADDLE; res = W_SADDLE;
#endif
break; break;
case FOOD_CLASS: case FOOD_CLASS:
if (obj->otyp == MEAT_RING) res = W_RINGL|W_RINGR; if (obj->otyp == MEAT_RING) res = W_RINGL|W_RINGR;
@@ -382,10 +380,8 @@ boolean on, silently;
break; break;
} }
#ifdef STEED
if (!on && mon == u.usteed && obj->otyp == SADDLE) if (!on && mon == u.usteed && obj->otyp == SADDLE)
dismount_steed(DISMOUNT_FELL); dismount_steed(DISMOUNT_FELL);
#endif
/* if couldn't see it but now can, or vice versa, update display */ /* if couldn't see it but now can, or vice versa, update display */
if (!silently && (unseen ^ !canseemon(mon))) if (!silently && (unseen ^ !canseemon(mon)))
@@ -837,7 +833,6 @@ boolean polyspot;
m_lose_armor(mon, otmp); m_lose_armor(mon, otmp);
} }
} }
#ifdef STEED
if (!can_saddle(mon)) { if (!can_saddle(mon)) {
if ((otmp = which_armor(mon, W_SADDLE)) != 0) { if ((otmp = which_armor(mon, W_SADDLE)) != 0) {
if (polyspot) bypass_obj(otmp); if (polyspot) bypass_obj(otmp);
@@ -861,7 +856,6 @@ boolean polyspot;
} }
dismount_steed(DISMOUNT_FELL); dismount_steed(DISMOUNT_FELL);
} }
#endif
return; return;
} }
+2 -16
View File
@@ -26,9 +26,7 @@ STATIC_DCL int FDECL(stone_to_flesh_obj, (struct obj *));
STATIC_DCL boolean FDECL(zap_updown, (struct obj *)); STATIC_DCL boolean FDECL(zap_updown, (struct obj *));
STATIC_DCL void FDECL(zhitu, (int,int,const char *,XCHAR_P,XCHAR_P)); STATIC_DCL void FDECL(zhitu, (int,int,const char *,XCHAR_P,XCHAR_P));
STATIC_DCL void FDECL(revive_egg, (struct obj *)); STATIC_DCL void FDECL(revive_egg, (struct obj *));
#ifdef STEED
STATIC_DCL boolean FDECL(zap_steed, (struct obj *)); STATIC_DCL boolean FDECL(zap_steed, (struct obj *));
#endif
STATIC_DCL void FDECL(skiprange, (int,int *,int *)); STATIC_DCL void FDECL(skiprange, (int,int *,int *));
STATIC_DCL int FDECL(zap_hit, (int,int)); STATIC_DCL int FDECL(zap_hit, (int,int));
@@ -300,7 +298,6 @@ struct obj *otmp;
} else if (openfallingtrap(mtmp, TRUE, &learn_it)) { } else if (openfallingtrap(mtmp, TRUE, &learn_it)) {
/* mtmp might now be on the migrating monsters list */ /* mtmp might now be on the migrating monsters list */
break; break;
#ifdef STEED
} else if ((obj = which_armor(mtmp, W_SADDLE)) != 0) { } else if ((obj = which_armor(mtmp, W_SADDLE)) != 0) {
char buf[BUFSZ]; char buf[BUFSZ];
@@ -316,7 +313,6 @@ struct obj *otmp;
} }
obj_extract_self(obj); obj_extract_self(obj);
mdrop_obj(mtmp, obj, FALSE); mdrop_obj(mtmp, obj, FALSE);
#endif /* STEED */
} }
break; break;
case SPE_HEALING: case SPE_HEALING:
@@ -2433,7 +2429,6 @@ long duration;
return FALSE; return FALSE;
} }
#ifdef STEED
/* you've zapped a wand downwards while riding /* you've zapped a wand downwards while riding
* Return TRUE if the steed was hit by the wand. * Return TRUE if the steed was hit by the wand.
* Return FALSE if the steed was not hit by the wand. * Return FALSE if the steed was not hit by the wand.
@@ -2495,7 +2490,6 @@ struct obj *obj; /* wand or spell */
} }
return steedhit; return steedhit;
} }
#endif
/* /*
* cancel a monster (possibly the hero). inventory is cancelled only * cancel a monster (possibly the hero). inventory is cancelled only
@@ -2772,13 +2766,10 @@ struct obj *obj;
boolean disclose = FALSE, was_unkn = !objects[otyp].oc_name_known; boolean disclose = FALSE, was_unkn = !objects[otyp].oc_name_known;
exercise(A_WIS, TRUE); exercise(A_WIS, TRUE);
#ifdef STEED
if (u.usteed && (objects[otyp].oc_dir != NODIR) && if (u.usteed && (objects[otyp].oc_dir != NODIR) &&
!u.dx && !u.dy && (u.dz > 0) && zap_steed(obj)) { !u.dx && !u.dy && (u.dz > 0) && zap_steed(obj)) {
disclose = TRUE; disclose = TRUE;
} else } else if (objects[otyp].oc_dir == IMMEDIATE) {
#endif
if (objects[otyp].oc_dir == IMMEDIATE) {
zapsetup(); /* reset obj_zapped */ zapsetup(); /* reset obj_zapped */
if (u.uswallow) { if (u.uswallow) {
(void) bhitm(u.ustuck, obj); (void) bhitm(u.ustuck, obj);
@@ -3769,9 +3760,7 @@ register int dx,dy;
if (mon) { if (mon) {
if (type == ZT_SPELL(ZT_FIRE)) break; if (type == ZT_SPELL(ZT_FIRE)) break;
if (type >= 0) mon->mstrategy &= ~STRAT_WAITMASK; if (type >= 0) mon->mstrategy &= ~STRAT_WAITMASK;
#ifdef STEED
buzzmonst: buzzmonst:
#endif
if (zap_hit(find_mac(mon), spell_type)) { if (zap_hit(find_mac(mon), spell_type)) {
if (mon_reflects(mon, (char *)0)) { if (mon_reflects(mon, (char *)0)) {
if(cansee(mon->mx,mon->my)) { if(cansee(mon->mx,mon->my)) {
@@ -3838,13 +3827,10 @@ register int dx,dy;
} }
} else if (sx == u.ux && sy == u.uy && range >= 0) { } else if (sx == u.ux && sy == u.uy && range >= 0) {
nomul(0); nomul(0);
#ifdef STEED
if (u.usteed && !rn2(3) && !mon_reflects(u.usteed, (char *)0)) { if (u.usteed && !rn2(3) && !mon_reflects(u.usteed, (char *)0)) {
mon = u.usteed; mon = u.usteed;
goto buzzmonst; goto buzzmonst;
} else } else if (zap_hit((int) u.uac, 0)) {
#endif
if (zap_hit((int) u.uac, 0)) {
range -= 2; range -= 2;
pline("%s hits you!", The(fltxt)); pline("%s hits you!", The(fltxt));
if (Reflecting) { if (Reflecting) {
+1 -7
View File
@@ -1005,11 +1005,8 @@ make_version()
#ifdef TOURIST #ifdef TOURIST
| (1L << 10) | (1L << 10)
#endif #endif
#ifdef STEED
| (1L << 11)
#endif
#ifdef GOLDOBJ #ifdef GOLDOBJ
| (1L << 12) | (1L << 11)
#endif #endif
/* flag bits and/or other global variables (15..26) */ /* flag bits and/or other global variables (15..26) */
#ifdef TEXTCOLOR #ifdef TEXTCOLOR
@@ -1307,9 +1304,6 @@ static const char *build_opts[] = {
#ifdef REINCARNATION #ifdef REINCARNATION
"rogue level", "rogue level",
#endif #endif
#ifdef STEED
"saddles and riding",
#endif
#ifdef SCORE_ON_BOTL #ifdef SCORE_ON_BOTL
"score on status line", "score on status line",
#endif #endif
-2
View File
@@ -366,14 +366,12 @@ GnomeUIInfo action_menu[] = {
ghack_accelerator_selected, ghack_accelerator_selected,
GINT_TO_POINTER(M('j')), NULL, GNOME_APP_PIXMAP_NONE, NULL, 'j',GDK_MOD1_MASK GINT_TO_POINTER(M('j')), NULL, GNOME_APP_PIXMAP_NONE, NULL, 'j',GDK_MOD1_MASK
}, },
#ifdef STEED
{ {
GNOME_APP_UI_ITEM, N_("Ride"), GNOME_APP_UI_ITEM, N_("Ride"),
N_("Ride (or stop riding) a monster"), N_("Ride (or stop riding) a monster"),
doride, doride,
GINT_TO_POINTER(M('r')), NULL, GNOME_APP_PIXMAP_NONE, NULL, 'R',GDK_MOD1_MASK GINT_TO_POINTER(M('r')), NULL, GNOME_APP_PIXMAP_NONE, NULL, 'R',GDK_MOD1_MASK
}, },
#endif
{ {
GNOME_APP_UI_ITEM, N_("Wipe face"), GNOME_APP_UI_ITEM, N_("Wipe face"),
N_("wipe off your face"), N_("wipe off your face"),
-3
View File
@@ -81,9 +81,6 @@ struct conditionals {
{ OBJ_GLYPH, LEATHER_JACKET, "T-shirt" }, { OBJ_GLYPH, LEATHER_JACKET, "T-shirt" },
{ OBJ_GLYPH, LOCK_PICK, "credit card" }, { OBJ_GLYPH, LOCK_PICK, "credit card" },
{ OBJ_GLYPH, MAGIC_LAMP, "expensive camera" }, { OBJ_GLYPH, MAGIC_LAMP, "expensive camera" },
#endif
#ifndef STEED
{ OBJ_GLYPH, TOWEL, "saddle" },
#endif #endif
/* allow slime mold to look like slice of pizza, since we /* allow slime mold to look like slice of pizza, since we
* don't know what a slime mold should look like when renamed anyway * don't know what a slime mold should look like when renamed anyway