Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#1365 closed bug (fixed (in master))

Normal DSMs don't contribute to level rating

Reported by: Zaxx Owned by:
Milestone: 3.3.0 Keywords:


File: obj-make.c

The rating boost for DSMs is done in a_m_aux_2(), which is called by apply_magic() only if power is non-zero. So "good" DSMs will get a rating boost... but also "bad" DSMs. But not "average" DSMs.

Fix: move the rating boost back to apply_magic()

Change History (6)

comment:1 Changed 10 years ago by d_m

This is not a part of the code that I'm very familiar with. If you had a patch in mind it would help me a lot.

Your suggestions so far have been really good. Is there any chance you'd want to create a github account and start sending pull requests for some of these things? In general, it's a lot easier for me to review and test a patch than learn a new section of code and apply a new strategy to it.

In either case, thanks for reviewing the code and catching these things!

comment:2 Changed 10 years ago by myshkin

In which version of the code are you seeing this behavior? In V HEAD, apply_magic() does modify cave->rating.

comment:3 Changed 10 years ago by eddiegrove

It sounds as if what you folks are talking about are steps forward, but as to the actual bug, is it even possible to have an average DSM? I have never seen one.

comment:4 Changed 10 years ago by Zaxx

Sorry... I'm always looking at the 3.2 source code since I don't have any github account. As for DSM quality goes, it's the same as any other piece of armor:

  • power = 2, ego DSM
  • power = 1, good DSM (AC boost, [X, +Y] with Y > 10)
  • power = 0, average DSM (the base [X, +10] one)
  • power = -1, the "bad" DSM (AC penalty, [X, +Y] with Y < 10)
  • power = -2, ego DSM (no cursed DSM, so it's the same as power = 2)

Checking the HEAD code, this seems to be fixed... so this bug is obsolete.

comment:5 Changed 10 years ago by myshkin

  • Resolution set to fixed
  • Status changed from new to closed

Thanks, Zaxx. I'm closing the ticket.

By the way, even if you don't have a github account, you can still clone the repository with

git clone

and then use git fetch or git pull as necessary to stay up to date.

comment:6 Changed 10 years ago by myshkin

  • Milestone changed from Triage to 3.3.0
Note: See TracTickets for help on using tickets.