fix github issue #1191 - obj->age of oil potions

Issue reported by AmyBSOD:  several actions change the object type of
a potion rather than force creation of a replacement one, and if/when
the type was changed to oil, the age wasn't converted from absolute
to relative.  Relative age is the amount available and/or the number
of turns it will burn if applied.  The later in a game a potion got
converted into oil, the longer it would burn.  Not mentioned:  reverse
situation was also the case, although that didn't have any noticeable
effect since incorrect absolute age of former oil doesn't matter.

Not thoroughly tested.  I got a potion of oil from a horn of plenty
and it burned for 400 turns, but it might have been created directly
rather than be a rejected magic potion that was converted into oil.

Closes #1191
This commit is contained in:
PatR
2024-01-03 13:29:15 -08:00
parent db4a44735e
commit c6897bf331
5 changed files with 51 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: (unknown) $:$NHDT-Revision: 1.1339 $ $NHDT-Date: 1702264272 2023/12/11 03:11:12 $
$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1353 $ $NHDT-Date: 1704316439 2024/01/03 21:13:59 $
General Fixes and Modified Features
-----------------------------------
@@ -1340,6 +1340,12 @@ wishing for a "lit candle" provided one, but the feedback as it was added into
don't fall off steed because of Fumbling if saddle is cursed
cursed welded quarterstaff doesn't prevent spellcasting
wielded quarterstaff gives a small spellcasting bonus
if polymorphing a potion turned it into oil, dipping potions produced oil
randomly, or a horn of plenty produced a magic potion and converted
it into oil, the resulting potion of oil had its age (amount left)
set of the original potion's age (turn it was created) and could burn
for an arbitrarily long time if applied; conversely, polymophing oil
into non-oil kept its relative age (no noticeable effect though)
Fixes to 3.7.0-x General Problems Exposed Via git Repository