%Cp - 00049
"Why search for the Amulet? Thou wouldst but lose it, cretin."
%E
+#
+# Banishment message (for converted hero)
+#
+%Cc - 00060
+"You have betrayed all those who hold allegiance to %d, as you once did.
+My allegiance to %d holds fast and I cannot condone or accept what you
+have done.
+Leave this place. You shall never set foot at %H again.
+That which you seek is now lost forever, for without the Bell of Opening,
+you will never be able to enter the place where he who has the Amulet
+resides.
+
+Go now! You are banished from this place.
+%E
#
# TEST PATTERN
#
mounting a steed allowed hero to make moves that would otherwise be disallowed
including mounting diagonally in a shop doorway
monsters lose intrinsic speed when pertrified
+if you have converted, the quest leader banishes you instead of asking you
+ to come back later, and tells you that you won't succeed without Bell
Platform- and/or Interface-Specific Fixes
STATIC_DCL void NDECL(on_locate);
STATIC_DCL void NDECL(on_goal);
STATIC_DCL boolean NDECL(not_capable);
-STATIC_DCL boolean FDECL(is_pure, (BOOLEAN_P));
+STATIC_DCL int FDECL(is_pure, (BOOLEAN_P));
STATIC_DCL void FDECL(expulsion, (BOOLEAN_P));
STATIC_DCL void NDECL(chat_with_leader);
STATIC_DCL void NDECL(chat_with_nemesis);
ok_to_quest()
{
return((boolean)((Qstat(got_quest) || Qstat(got_thanks)))
- && is_pure(FALSE));
+ && (is_pure(FALSE) > 0));
}
STATIC_OVL boolean
return((boolean)(u.ulevel < MIN_QUEST_LEVEL));
}
-STATIC_OVL boolean
+STATIC_OVL int
is_pure(talk)
boolean talk;
{
+ int purity;
aligntyp original_alignment = u.ualignbase[A_ORIGINAL];
#ifdef WIZARD
}
}
#endif
- return (boolean)(u.ualign.record >= MIN_QUEST_ALIGN &&
- u.ualign.type == original_alignment &&
- u.ualignbase[A_CURRENT] == original_alignment);
+ purity = (u.ualign.record >= MIN_QUEST_ALIGN &&
+ u.ualign.type == original_alignment &&
+ u.ualignbase[A_CURRENT] == original_alignment) ? 1 :
+ (u.ualignbase[A_CURRENT] != original_alignment) ? -1 : 0;
+ return purity;
}
/*
qt_pager(QT_BADLEVEL);
exercise(A_WIS, TRUE);
expulsion(FALSE);
- } else if(!is_pure(TRUE)) {
+ } else if(is_pure(TRUE) < 0) {
+ com_pager(QT_BANISHED);
+ expulsion(TRUE);
+ } else if(is_pure(TRUE) == 0) {
qt_pager(QT_BADALIGN);
if(Qstat(not_ready) == MAX_QUEST_TRIES) {
qt_pager(QT_LASTLEADER);