unrevert some unintentionally reverted bands

fixes #560
This commit is contained in:
nhmall
2021-07-29 16:01:55 -04:00
parent c0c617c413
commit cf2475285d
5 changed files with 64 additions and 23 deletions
+2 -1
View File
@@ -3349,7 +3349,8 @@ randomkey(void)
c = (char) rn1('9' - '0' + 1, '0'); c = (char) rn1('9' - '0' + 1, '0');
break; break;
case 14: case 14:
c = (char) rn2(iflags.wc_eight_bit_input ? 256 : 128); /* any char, but avoid '\0' because it's used for mouse click */
c = (char) rnd(iflags.wc_eight_bit_input ? 255 : 127);
break; break;
} }
+35 -15
View File
@@ -236,9 +236,13 @@ summon_minion(aligntyp alignment, boolean talk)
} }
if (mon) { if (mon) {
if (talk) { if (talk) {
pline_The("voice of %s booms:", align_gname(alignment)); if (!Deaf)
pline_The("voice of %s booms:", align_gname(alignment));
else
You_feel("%s booming voice:",
s_suffix(align_gname(alignment)));
verbalize("Thou shalt pay for thine indiscretion!"); verbalize("Thou shalt pay for thine indiscretion!");
if (!Blind) if (canspotmon(mon))
pline("%s appears before you.", Amonnam(mon)); pline("%s appears before you.", Amonnam(mon));
mon->mstrategy &= ~STRAT_APPEARMSG; mon->mstrategy &= ~STRAT_APPEARMSG;
} }
@@ -289,16 +293,18 @@ demon_talk(register struct monst *mtmp)
newsym(mtmp->mx, mtmp->my); newsym(mtmp->mx, mtmp->my);
} }
if (g.youmonst.data->mlet == S_DEMON) { /* Won't blackmail their own. */ if (g.youmonst.data->mlet == S_DEMON) { /* Won't blackmail their own. */
pline("%s says, \"Good hunting, %s.\"", Amonnam(mtmp), if (!Deaf)
flags.female ? "Sister" : "Brother"); pline("%s says, \"Good hunting, %s.\"", Amonnam(mtmp),
flags.female ? "Sister" : "Brother");
else if (canseemon(mtmp))
pline("%s says something.", Amonnam(mtmp));
if (!tele_restrict(mtmp)) if (!tele_restrict(mtmp))
(void) rloc(mtmp, TRUE); (void) rloc(mtmp, TRUE);
return 1; return 1;
} }
cash = money_cnt(g.invent); cash = money_cnt(g.invent);
demand = demand = (cash * (rnd(80) + 20 * Athome))
(cash * (rnd(80) + 20 * Athome)) / (100 * (1 + (sgn(u.ualign.type) == sgn(mtmp->data->maligntyp))));
/ (100 * (1 + (sgn(u.ualign.type) == sgn(mtmp->data->maligntyp))));
if (!demand || g.multi < 0) { /* you have no gold or can't move */ if (!demand || g.multi < 0) { /* you have no gold or can't move */
mtmp->mpeaceful = 0; mtmp->mpeaceful = 0;
@@ -308,13 +314,21 @@ demon_talk(register struct monst *mtmp)
/* make sure that the demand is unmeetable if the monster /* make sure that the demand is unmeetable if the monster
has the Amulet, preventing monster from being satisfied has the Amulet, preventing monster from being satisfied
and removed from the game (along with said Amulet...) */ and removed from the game (along with said Amulet...) */
if (mon_has_amulet(mtmp)) /* [actually the Amulet is safe; it would be dropped when
demand = cash + (long) rn1(1000, 40); mongone() gets rid of the monster; force combat anyway;
also make it unmeetable if the player is Deaf, to simplify
handling that case as player-won't-pay] */
if (mon_has_amulet(mtmp) || Deaf)
/* 125: 5*25 in case hero has maximum possible charisma */
demand = cash + (long) rn1(1000, 125);
pline("%s demands %ld %s for safe passage.", Amonnam(mtmp), demand, if (!Deaf)
currency(demand)); pline("%s demands %ld %s for safe passage.",
Amonnam(mtmp), demand, currency(demand));
if ((offer = bribe(mtmp)) >= demand) { else if (canseemon(mtmp))
pline("%s seems to be demanding something.", Amonnam(mtmp));
offer = 0L;
if (!Deaf && ((offer = bribe(mtmp)) >= demand)) {
pline("%s vanishes, laughing about cowardly mortals.", pline("%s vanishes, laughing about cowardly mortals.",
Amonnam(mtmp)); Amonnam(mtmp));
} else if (offer > 0L } else if (offer > 0L
@@ -477,12 +491,18 @@ gain_guardian_angel(void)
Hear_again(); /* attempt to cure any deafness now (divine Hear_again(); /* attempt to cure any deafness now (divine
message will be heard even if that fails) */ message will be heard even if that fails) */
if (Conflict) { if (Conflict) {
pline("A voice booms:"); if (!Deaf)
pline("A voice booms:");
else
You_feel("a booming voice:");
verbalize("Thy desire for conflict shall be fulfilled!"); verbalize("Thy desire for conflict shall be fulfilled!");
/* send in some hostile angels instead */ /* send in some hostile angels instead */
lose_guardian_angel((struct monst *) 0); lose_guardian_angel((struct monst *) 0);
} else if (u.ualign.record > 8) { /* fervent */ } else if (u.ualign.record > 8) { /* fervent */
pline("A voice whispers:"); if (!Deaf)
pline("A voice whispers:");
else
You_feel("a soft voice:");
verbalize("Thou hast been worthy of me!"); verbalize("Thou hast been worthy of me!");
mm.x = u.ux; mm.x = u.ux;
mm.y = u.uy; mm.y = u.uy;
+4 -1
View File
@@ -2829,7 +2829,10 @@ muse_unslime(
dmg = d(3, 4); /* [**TEMP** (different from hero)] */ dmg = d(3, 4); /* [**TEMP** (different from hero)] */
m_useup(mon, obj); m_useup(mon, obj);
} else { /* wand/horn of fire w/ positive charge count */ } else { /* wand/horn of fire w/ positive charge count */
mplayhorn(mon, obj, TRUE); if (obj->otyp == FIRE_HORN)
mplayhorn(mon, obj, TRUE);
else
mzapwand(mon, obj, TRUE);
/* -1 => monster's wand of fire; 2 => # of damage dice */ /* -1 => monster's wand of fire; 2 => # of damage dice */
dmg = zhitm(mon, by_you ? 1 : -1, 2, &odummyp); dmg = zhitm(mon, by_you ? 1 : -1, 2, &odummyp);
} }
+21 -5
View File
@@ -2956,7 +2956,7 @@ rnd_otyp_by_namedesc(
* probabilities are not very useful because they don't take * probabilities are not very useful because they don't take
* the class generation probability into account. [If 10% * the class generation probability into account. [If 10%
* of spellbooks were blank and 1% of scrolls were blank, * of spellbooks were blank and 1% of scrolls were blank,
* "blank" would have 10/11 chance to yield a blook even though * "blank" would have 10/11 chance to yield a book even though
* scrolls are supposed to be much more common than books.] * scrolls are supposed to be much more common than books.]
*/ */
for (i = lo; i <= hi; ++i) { for (i = lo; i <= hi; ++i) {
@@ -3910,6 +3910,7 @@ readobjnam_postparse1(struct _readobjnam_data *d)
for (i = 0; i < (int) (sizeof wrpsym); i++) { for (i = 0; i < (int) (sizeof wrpsym); i++) {
register int j = strlen(wrp[i]); register int j = strlen(wrp[i]);
/* check for "<class> [ of ] something" */
if (!strncmpi(d->bp, wrp[i], j)) { if (!strncmpi(d->bp, wrp[i], j)) {
d->oclass = wrpsym[i]; d->oclass = wrpsym[i];
if (d->oclass != AMULET_CLASS) { if (d->oclass != AMULET_CLASS) {
@@ -3921,12 +3922,27 @@ readobjnam_postparse1(struct _readobjnam_data *d)
d->actualn = d->bp; d->actualn = d->bp;
return 1; /*goto srch;*/ return 1; /*goto srch;*/
} }
/* check for "something <class>" */
if (!BSTRCMPI(d->bp, d->p - j, wrp[i])) { if (!BSTRCMPI(d->bp, d->p - j, wrp[i])) {
d->oclass = wrpsym[i]; d->oclass = wrpsym[i];
d->p -= j; /* for "foo amulet", leave the class name so that
*d->p = 0; wishymatch() can do "of inversion" to try matching
if (d->p > d->bp && d->p[-1] == ' ') "amulet of foo"; other classes don't include their
d->p[-1] = 0; class name in their full object names (where
"potion of healing" is just "healing", for instance) */
if (d->oclass != AMULET_CLASS) {
d->p -= j;
*d->p = '\0';
if (d->p > d->bp && d->p[-1] == ' ')
d->p[-1] = '\0';
} else {
/* amulet without "of"; convoluted wording but better a
special case that's handled than one that's missing */
if (!strncmpi(d->bp, "versus poison ", 14)) {
d->typ = AMULET_VERSUS_POISON;
return 2; /*goto typfnd;*/
}
}
d->actualn = d->dn = d->bp; d->actualn = d->dn = d->bp;
return 1; /*goto srch;*/ return 1; /*goto srch;*/
} }
+2 -1
View File
@@ -720,8 +720,9 @@ angrygods(aligntyp resp_god)
(on_altar() && (a_align(u.ux, u.uy) != resp_god)) (on_altar() && (a_align(u.ux, u.uy) != resp_god))
? "scorn" ? "scorn"
: "call upon"); : "call upon");
/* [why isn't this using verbalize()?] */
pline("\"Then die, %s!\"", pline("\"Then die, %s!\"",
g.youmonst.data->mlet == S_HUMAN ? "mortal" : "creature"); (g.youmonst.data->mlet == S_HUMAN) ? "mortal" : "creature");
summon_minion(resp_god, FALSE); summon_minion(resp_god, FALSE);
break; break;