Make SEDUCE unconditional.

This commit is contained in:
Sean Hunt
2015-02-27 19:33:48 -05:00
parent 612852f7de
commit 6e9fa71b05
12 changed files with 7 additions and 49 deletions
-1
View File
@@ -417,7 +417,6 @@ typedef unsigned char uchar;
/* dungeon levels */ /* dungeon levels */
#define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */ #define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */
/* monsters & objects */ /* monsters & objects */
#define SEDUCE /* Succubi/incubi seduction, by KAA, suggested by IM */
/* I/O */ /* I/O */
#define REDO /* support for redoing last command - DGK */ #define REDO /* support for redoing last command - DGK */
#if !defined(MAC) #if !defined(MAC)
-2
View File
@@ -1112,9 +1112,7 @@ E boolean NDECL(gulp_blnd_check);
E int FDECL(gazemu, (struct monst *,struct attack *)); E int FDECL(gazemu, (struct monst *,struct attack *));
E void FDECL(mdamageu, (struct monst *,int)); E void FDECL(mdamageu, (struct monst *,int));
E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *)); E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
#ifdef SEDUCE
E int FDECL(doseduce, (struct monst *)); E int FDECL(doseduce, (struct monst *));
#endif
/* ### minion.c ### */ /* ### minion.c ### */
-1
View File
@@ -72,7 +72,6 @@
#define AD_DISE 33 /* confers diseases */ #define AD_DISE 33 /* confers diseases */
#define AD_DCAY 34 /* decays organics (brown Pudding) */ #define AD_DCAY 34 /* decays organics (brown Pudding) */
#define AD_SSEX 35 /* Succubus seduction (extended) */ #define AD_SSEX 35 /* Succubus seduction (extended) */
/* If no SEDUCE then same as AD_SEDU */
#define AD_HALU 36 /* causes hallucination */ #define AD_HALU 36 /* causes hallucination */
#define AD_DETH 37 /* for Death only */ #define AD_DETH 37 /* for Death only */
#define AD_PEST 38 /* for Pestilence only */ #define AD_PEST 38 /* for Pestilence only */
+1 -5
View File
@@ -35,11 +35,7 @@ struct sysopt {
}; };
E struct sysopt sysopt; E struct sysopt sysopt;
#ifdef SEDUCE #define SYSOPT_SEDUCE sysopt.seduce
# define SYSOPT_SEDUCE sysopt.seduce
#else
# define SYSOPT_SEDUCE 0
#endif
#endif /* SYS_H */ #endif /* SYS_H */
-2
View File
@@ -1083,9 +1083,7 @@ mdamagem(magr, mdef, mattk)
/* Automatic kill if drained past level 0 */ /* Automatic kill if drained past level 0 */
} }
break; break;
#ifdef SEDUCE
case AD_SSEX: case AD_SSEX:
#endif
case AD_SITM: /* for now these are the same */ case AD_SITM: /* for now these are the same */
case AD_SEDU: case AD_SEDU:
if (magr->mcan) break; if (magr->mcan) break;
+4 -19
View File
@@ -12,9 +12,7 @@ STATIC_DCL void FDECL(urustm, (struct monst *, struct obj *));
STATIC_DCL boolean FDECL(u_slip_free, (struct monst *,struct attack *)); STATIC_DCL boolean FDECL(u_slip_free, (struct monst *,struct attack *));
STATIC_DCL int FDECL(passiveum, (struct permonst *,struct monst *,struct attack *)); STATIC_DCL int FDECL(passiveum, (struct permonst *,struct monst *,struct attack *));
#ifdef SEDUCE
STATIC_DCL void FDECL(mayberem, (struct obj *, const char *)); STATIC_DCL void FDECL(mayberem, (struct obj *, const char *));
#endif
STATIC_DCL boolean FDECL(diseasemu, (struct permonst *)); STATIC_DCL boolean FDECL(diseasemu, (struct permonst *));
STATIC_DCL int FDECL(hitmu, (struct monst *,struct attack *)); STATIC_DCL int FDECL(hitmu, (struct monst *,struct attack *));
@@ -1256,7 +1254,6 @@ dopois:
if(!mtmp->mcan) stealgold(mtmp); if(!mtmp->mcan) stealgold(mtmp);
break; break;
#ifdef SEDUCE
case AD_SSEX: case AD_SSEX:
if(SYSOPT_SEDUCE){ if(SYSOPT_SEDUCE){
if(could_seduce(mtmp, &youmonst, mattk) == 1 if(could_seduce(mtmp, &youmonst, mattk) == 1
@@ -1266,7 +1263,6 @@ dopois:
break; break;
} }
/* else FALLTHRU */ /* else FALLTHRU */
#endif
case AD_SITM: /* for now these are the same */ case AD_SITM: /* for now these are the same */
case AD_SEDU: case AD_SEDU:
if (is_animal(mtmp->data)) { if (is_animal(mtmp->data)) {
@@ -1274,10 +1270,7 @@ dopois:
if (mtmp->mcan) break; if (mtmp->mcan) break;
/* Continue below */ /* Continue below */
} else if (dmgtype(youmonst.data, AD_SEDU) } else if (dmgtype(youmonst.data, AD_SEDU)
#ifdef SEDUCE || (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))) {
|| (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))
#endif
) {
pline("%s %s.", Monnam(mtmp), mtmp->minvent ? pline("%s %s.", Monnam(mtmp), mtmp->minvent ?
"brags about the goods some dungeon explorer provided" : "brags about the goods some dungeon explorer provided" :
"makes some remarks about how difficult theft is lately"); "makes some remarks about how difficult theft is lately");
@@ -2198,19 +2191,13 @@ struct attack *mattk;
gendef = gender(mdef); gendef = gender(mdef);
} }
if(agrinvis && !defperc if(agrinvis && !defperc &&
#ifdef SEDUCE (!SYSOPT_SEDUCE || ( mattk && mattk->adtyp != AD_SSEX)))
&& (!SYSOPT_SEDUCE || ( mattk && mattk->adtyp != AD_SSEX))
#endif
)
return 0; return 0;
if(pagr->mlet != S_NYMPH if(pagr->mlet != S_NYMPH
&& ((pagr != &mons[PM_INCUBUS] && pagr != &mons[PM_SUCCUBUS]) && ((pagr != &mons[PM_INCUBUS] && pagr != &mons[PM_SUCCUBUS])
#ifdef SEDUCE || (SYSOPT_SEDUCE && mattk && mattk->adtyp != AD_SSEX)))
|| (SYSOPT_SEDUCE && mattk && mattk->adtyp != AD_SSEX)
#endif
))
return 0; return 0;
if(genagr == 1 - gendef) if(genagr == 1 - gendef)
@@ -2219,7 +2206,6 @@ struct attack *mattk;
return (pagr->mlet == S_NYMPH) ? 2 : 0; return (pagr->mlet == S_NYMPH) ? 2 : 0;
} }
#ifdef SEDUCE
/* Returns 1 if monster teleported */ /* Returns 1 if monster teleported */
int int
doseduce(mon) doseduce(mon)
@@ -2485,7 +2471,6 @@ const char *str;
} }
remove_worn_item(obj, TRUE); remove_worn_item(obj, TRUE);
} }
#endif /* SEDUCE */
STATIC_OVL int STATIC_OVL int
passiveum(olduasmon,mtmp,mattk) passiveum(olduasmon,mtmp,mattk)
+2 -8
View File
@@ -2554,14 +2554,9 @@ struct permonst _mons2[] = {
#define SEDUCTION_ATTACKS_NO \ #define SEDUCTION_ATTACKS_NO \
A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \ A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK) ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK)
#ifdef SEDUCE
# define SEDUCTION_ATTACKS SEDUCTION_ATTACKS_YES
#else
# define SEDUCTION_ATTACKS SEDUCTION_ATTACKS_NO
#endif
MON("succubus", S_DEMON, MON("succubus", S_DEMON,
LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1), LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
SEDUCTION_ATTACKS, SEDUCTION_ATTACKS_YES,
SIZ(WT_HUMAN, 400, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0, SIZ(WT_HUMAN, 400, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
M1_HUMANOID|M1_FLY|M1_POIS, M1_HUMANOID|M1_FLY|M1_POIS,
M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE,
@@ -2577,12 +2572,11 @@ struct permonst _mons2[] = {
CLR_BROWN), CLR_BROWN),
MON("incubus", S_DEMON, MON("incubus", S_DEMON,
LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1), LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
SEDUCTION_ATTACKS, SEDUCTION_ATTACKS_YES,
SIZ(WT_HUMAN, 400, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0, SIZ(WT_HUMAN, 400, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
M1_HUMANOID|M1_FLY|M1_POIS, M1_HUMANOID|M1_FLY|M1_POIS,
M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_MALE, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_MALE,
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY), M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
#undef SEDUCTION_ATTACKS
/* Used by AD&D for a type of demon, originally one of the Furies */ /* Used by AD&D for a type of demon, originally one of the Furies */
/* and spelled this way */ /* and spelled this way */
MON("erinys", S_DEMON, MON("erinys", S_DEMON,
-2
View File
@@ -807,7 +807,6 @@ register struct monst *mtmp;
case MS_SEDUCE: case MS_SEDUCE:
{ {
int swval; int swval;
#ifdef SEDUCE
if (SYSOPT_SEDUCE) { if (SYSOPT_SEDUCE) {
if (ptr->mlet != S_NYMPH && if (ptr->mlet != S_NYMPH &&
could_seduce(mtmp, &youmonst, (struct attack *)0) == 1) { could_seduce(mtmp, &youmonst, (struct attack *)0) == 1) {
@@ -816,7 +815,6 @@ register struct monst *mtmp;
} }
swval = ((poly_gender() != (int) mtmp->female) ? rn2(3) : 0); swval = ((poly_gender() != (int) mtmp->female) ? rn2(3) : 0);
} else } else
#endif
swval = ((poly_gender() == 0) ? rn2(3) : 0); swval = ((poly_gender() == 0) ? rn2(3) : 0);
switch(swval){ switch(swval){
case 2: case 2:
-2
View File
@@ -54,10 +54,8 @@ sys_early_init(){
# endif # endif
#endif #endif
#ifdef SEDUCE
sysopt.seduce = 1; /* if it's compiled in, default to on */ sysopt.seduce = 1; /* if it's compiled in, default to on */
sysopt_seduce_set(sysopt.seduce); sysopt_seduce_set(sysopt.seduce);
#endif
} }
-2
View File
@@ -1452,9 +1452,7 @@ register struct attack *mattk;
minstapetrify(mdef, TRUE); minstapetrify(mdef, TRUE);
tmp = 0; tmp = 0;
break; break;
#ifdef SEDUCE
case AD_SSEX: case AD_SSEX:
#endif
case AD_SEDU: case AD_SEDU:
case AD_SITM: case AD_SITM:
steal_it(mdef, mattk); steal_it(mdef, mattk);
-2
View File
@@ -584,9 +584,7 @@ coord *cc;
/* most cancelled monsters return to normal, /* most cancelled monsters return to normal,
but some need to stay cancelled */ but some need to stay cancelled */
if (!dmgtype(mtmp2->data, AD_SEDU) if (!dmgtype(mtmp2->data, AD_SEDU)
#ifdef SEDUCE
&& (!SYSOPT_SEDUCE || !dmgtype(mtmp2->data, AD_SSEX)) && (!SYSOPT_SEDUCE || !dmgtype(mtmp2->data, AD_SSEX))
#endif
) mtmp2->mcan = 0; ) mtmp2->mcan = 0;
mtmp2->mcansee = 1; /* set like in makemon */ mtmp2->mcansee = 1; /* set like in makemon */
mtmp2->mblinded = 0; mtmp2->mblinded = 0;
-3
View File
@@ -1298,9 +1298,6 @@ static const char *build_opts[] = {
# endif # endif
# endif # endif
#endif #endif
#ifdef SEDUCE
"seduction",
#endif
#ifdef SHELL #ifdef SHELL
"shell command", "shell command",
#endif #endif