fix bz451 - non-sequitur role prompt

For OPTIONS=role:Valk,race:!human,align:!lawful (where first+second
contradicts third or vice versa), you'd get
  Shall I pick your Dwarven Valkyrie's for you?
where the what-to-pick field names are empty.  Now, align:!lawful
gets overridden, producing
  Shall I pick your Dwarven Valkyrie's alignment for you?
and then you'll end up lawful regardless of whether you answer yes
or no.  That may be suboptimal but does emphasize that the original
alignment constraint couldn't be honored.  (Things just fell out
that way and I haven't tried to make it behave any other way.)

While testing the fix, I noticed that OPTIONS=role:Valk,race:random
prompted
  Shall I pick your Valkyrie's race and alignment for you?
instead of honoring 'race:random' without asking, so I've tried to
fix that too.

Role selection has become insanely complex, so one or the other of
these fixes has probably broken some other permuation of partial
specification.  Both of the changes here have been done in the core
without touching any interface-specific role selection code.
This commit is contained in:
PatR
2016-05-18 01:49:56 -07:00
parent 05557ee068
commit a242e0d892
2 changed files with 45 additions and 12 deletions

View File

@@ -257,6 +257,12 @@ monster who accidentally killed itself by zapping wand of fire or fire horn
impossible "dmonsfree: N removed doesn't match M pending"
resurrecting a shopkeeper corpse caused crash (replmon -> replshk -> inhishop
-> no eshk data for temporary monster being replaced with revived shk)
new character with OPTIONS=role:Valk,race:!human,align:!lawful yielded
"Shall I pick your Dwarven Valkyrie's for you?" where !human forces
dwarf and dwarf forces lawful, contradicting align:!lawful
new character with OPTIONS=role:Valk,race:random yielded
"Shall I pick your Valkyrie's race and alignment for you?" instead
of honoring race:random without asking
Fixes to Post-3.6.0 Problems that Were Exposed Via git Respository