|Anonymous | Login | Signup for a new account||2019-04-19 21:03 CEST|
|Main | My View | View Issues | Change Log | Wiki | Tavern | News|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0008446||[DCSS] Bug Report||minor||always||2014-04-26 08:30||2014-05-06 15:09|
|Status||resolved||Product Branch||0.15 ancient branch|
|Summary||0008446: De-hogged enemies can walk around while unable to move|
If one of kirke's hogs is in a web, paralyzed, petrified/petrifying when Kirke is killed, they keep the enchantment but aren't affected by it; they wander around happy as can be, even though they're described/shown as being entangled/paralyzed/petrified (respectively.)
If they're netted, they will happily wander out of the net, after which they're described as 'entangled in a web'.
The effect seems to last indefinitely, until you save and quit, or leave/re-enter the level; then the effect vanishes after a few turns. (Presumably some short default duration is set...)
The relevant function is dactions.cc:_daction_hog_to_human() (which explicitly preserves all enchantments), but I'm not familiar enough with the relevant code to know what needs to be changed.
|Tags||No tags attached.|
|Attached Files||8446_dehogged_enchantment_fix [^] (1,392 bytes) 2014-04-30 08:57|
Looking through the monster enchantment code, it looks like it might be the fact that the enchantment list is copied over, but not the cache of which enchantments the monster had.
I'll test this and submit a patch when I'm done.
Since the enchantment cache wasn't copied over, none of the enchantments were being checked during the monster::apply_enchantments() loop for duration updates or available to monster::has_ench(...). (Among other things, the cache allows the update loop to only check pre-existing enchantments when previous steps of the loop can add additional enchantments) On game reload, the cache is generated from the current enchantment list, so that restores behavior.
I checked around the code base, and it appears that everywhere else the enchantments are being copied, the cache is copied as well.
|Seems fine, committed.|
|Resolving since this was committed.|
|2014-04-26 08:30||PleasingFungus||New Issue|
|2014-04-30 08:27||qoala||Note Added: 0025980|
|2014-04-30 08:57||qoala||File Added: 8446_dehogged_enchantment_fix|
|2014-04-30 09:07||qoala||Note Added: 0025983|
|2014-05-04 09:03||wheals||Note Added: 0026040|
|2014-05-06 15:09||MarvinPA||Note Added: 0026069|
|2014-05-06 15:09||MarvinPA||Status||new => resolved|
|2014-05-06 15:09||MarvinPA||Fixed in Branch||=> 0.15 development branch|
|2014-05-06 15:09||MarvinPA||Resolution||open => done|
|2014-05-06 15:09||MarvinPA||Assigned To||=> MarvinPA|
|Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group|