|Anonymous | Login | Signup for a new account||2019-08-18 23:58 CEST|
|Main | My View | View Issues | Change Log | Wiki | Tavern | News|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0007785||[DCSS] Patches||minor||N/A||2013-11-26 07:32||2016-01-30 02:26|
|Status||closed||Product Branch||0.13 ancient branch|
|Summary||0007785: Multi-Zap Indicators in Tiles|
While experimenting with the Shock spell, I thought it would be really nice if there were a visual indicator for tiles that would 'zap' more than once when you bounce the spell off walls. This gave me an excuse to take a look at the code, so I dug into it. I've made a patch that accomplishes this by extending the aff_type in target.h with an AFF_MULTIPLE and modifying targetter_beam::is_affected to return this if a tile is affected more than once.
One major issue though is that I had to modify bolt::do_fire in beam.cc to allow reporting of repeated visits to the same tile. The resulting path_taken gets used in a lot of places and I'm not sure if having these repeated tiles in the path for bouncing beams will cause problems elsewhere.
If this does have undesirable side effects, I have a few thoughts on two possible solutions:
- Create a method that exposes path_taken as an iterator that excludes repeated tiles, like 'path_taken_unique' and update conflicting references to use this new method.
- Modify path_taken to be a vector of a new path_entry type, with the coord contained within along with other information, such as whether a tile was 'visited twice' by a bouncing beam. This could allow for adding other interesting details about the beam's path later for consumption by outside code.
One other side note is that I had to modify the MSVC project file to set the proper paths for my Git/Perl environment and did not intend to commit that, but I'm a bit new to Git (more used to Mercurial.)
|Tags||No tags attached.|
|Attached Files||MultiZap Indicator.patch [^] (9,496 bytes) 2013-11-26 07:32 [Show Content]|
|Added in https://github.com/crawl/crawl/commit/71fc851c24e3, [^] thanks!|
Playing on CSZO and the multi-zap tile isn't showing up (instead it shows a blank space where multi-zap occurs.) Maybe tiles cache didn't get updated when the trunk was built? (I vaguely recall that being a thing.)
In any case, cool to see my botched Git patch managed to turn into something useful. :)
|Thanks for pointing that out; turns out it needs more code to work in Webtiles. Should be working on next recompile now.|
|2013-11-26 07:32||Jarlyk||New Issue|
|2013-11-26 07:32||Jarlyk||File Added: MultiZap Indicator.patch|
|2013-11-30 19:44||neil||Relationship added||child of 0007071|
|2015-12-02 22:17||wheals||Note Added: 0029904|
|2015-12-02 22:17||wheals||Status||new => resolved|
|2015-12-02 22:17||wheals||Fixed in Branch||=> 0.18 development branch|
|2015-12-02 22:17||wheals||Resolution||open => done|
|2015-12-02 22:17||wheals||Assigned To||=> wheals|
|2015-12-03 03:04||Jarlyk||Note Added: 0029905|
|2015-12-03 04:32||wheals||Note Added: 0029906|
|2016-01-30 02:26||Jarlyk||Status||resolved => closed|
|Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group|