B01016 - misplaced "you steal" message after being blasted by an artifact

I saw no straight-forward way to insert the message earlier in the
sequence, so...  I reasoned that you might not yet have a good grasp and
not be able to continue holding the object when reverting form.  So, I made
this into a drop case and made the drop message a rare past tense message.
Past tense is still OK for the other drop cases.
While testing this, I noticed you'd keep stealing even after reverting
form.  Added code to stop this.  Finally, there was a missing MON_NOWEP
call in the stealing code, added it.
This commit is contained in:
cohrs
2002-07-07 20:22:57 +00:00
parent 5802922a3d
commit 40c4800613
2 changed files with 12 additions and 2 deletions

View File

@@ -384,6 +384,7 @@ const char *drop_fmt, *drop_arg, *hold_msg;
/* place_object may change these */
boolean crysknife = (obj->otyp == CRYSKNIFE);
int oerode = obj->oerodeproof;
boolean wasUpolyd = Upolyd;
/* in case touching this object turns out to be fatal */
place_object(obj, u.ux, u.uy);
@@ -392,6 +393,12 @@ const char *drop_fmt, *drop_arg, *hold_msg;
obj_extract_self(obj); /* remove it from the floor */
dropy(obj); /* now put it back again :-) */
return obj;
} else if (wasUpolyd && !Upolyd) {
/* loose your grip if you revert your form */
if (drop_fmt) pline(drop_fmt, drop_arg);
obj_extract_self(obj);
dropy(obj);
return obj;
}
obj_extract_self(obj);
if (crysknife) {