Sting vs level teleport's "materialize" message
When level teleporting, Sting/Orcrish/Grimtooth would start or stop glowing based on occupants of the new level before "you materialize on another level". That wasn't necessarily incorrect for the glow stopping but was clearly wrong for it starting. This fix uses a flag as a hack to avoid finding and changing all the calls to docrt() and see_monsters(). It ought to be fixed properly....
This commit is contained in:
@@ -1295,12 +1295,19 @@ see_monsters()
|
||||
if (Warn_of_mon && (g.context.warntype.obj & mon->data->mflags2) != 0L)
|
||||
new_warn_obj_cnt++;
|
||||
}
|
||||
/*
|
||||
* Make Sting glow blue or stop glowing if required.
|
||||
*/
|
||||
if (new_warn_obj_cnt != g.warn_obj_cnt) {
|
||||
Sting_effects(new_warn_obj_cnt);
|
||||
g.warn_obj_cnt = new_warn_obj_cnt;
|
||||
|
||||
/* message sequencing: when changing levels via level teleport,
|
||||
the start-glow/stop-glow message from Sting_effects() would come
|
||||
too soon so we suppress it for docrt() -> see_monsters() then
|
||||
reenable it and call see_monsters() a second time */
|
||||
if (!iflags.no_glow) {
|
||||
/*
|
||||
* Make Sting glow blue or stop glowing if required.
|
||||
*/
|
||||
if (new_warn_obj_cnt != g.warn_obj_cnt) {
|
||||
Sting_effects(new_warn_obj_cnt);
|
||||
g.warn_obj_cnt = new_warn_obj_cnt;
|
||||
}
|
||||
}
|
||||
|
||||
/* when mounted, hero's location gets caught by monster loop */
|
||||
|
||||
Reference in New Issue
Block a user