This newest version is much more stable. Made it to DL 98 before it crashed, immediately upon level arrival down the stairs. Haven't been able to duplicate it, so I don't know what the crash was from, but it must have had trouble generating something.
Edit: Yep, it's a crash on level generation, so no savefile will do much to troubleshoot it. However, if you go to DL 98/99 and stair scum, it shouldn't take too long to generate a crash.
Bugs and complaints on current master
Collapse
X
-
OK, there is a new build up on the nightlies page with the following changes:- Crash on removing all curses fixed
- Other apparently random crashes probably also fixed (usually would have happened when an attack on the player prompted an attempt to learn object properties)
- The sticky curse has been removed, and the One and Morgoth's crown now simply have the sticky property; putting on one of these gives the "deathly cold" message
- The method of applying curses during object generation has been changed; this will probably result in more cursed objects, but no curses on artifacts (except deliberately cursed randarts)
- Various code improvements by takkaria
Randart generation still needs some work to fix the issue of lots of little modifier boosts, and to work the new curses in properly.Leave a comment:
-
-
Leave a comment:
-
Just a little code improvement (object_runes_known):
Code:for (i = 0; i < z_info->curse_max; i++) { if (!curses_are_equal(obj, obj->known)) return false; }
Leave a comment:
-
I feel like there should be a message on wielding a cursed object, just not the old "Oops! It feels deathly cold!" message, which is too strongly associated with the traditional sticky curse. Maybe "A dark aura surrounds you" or something like that?Last edited by Nomad; December 9, 2016, 00:37.Leave a comment:
-
Another change: the "Oops! It feels deathly cold!" message has been removed. To warn the player when wielding a cursed item, maybe keep the sound effect (using MSG_CURSED instead of MSG_WIELD if the item is cursed)?Leave a comment:
-
Summary of my understanding of curse problems:- Loops starting from 0 or 1 should (in general) both be fine, as curses[0] is a blank one
- Curse objects have not been removed as far as I'm aware; variability is certainly gone, and the whole of curse.txt needs to be overhauled
- Being able to generate curses with power 0 is indeed an oversight
- The crash is caused by freeing the object curse array but not setting the pointer to 0
I should get to fixing on the weekend.Leave a comment:
-
From the same commit, it seems like all randomization of curses has been lost: combat values (tohit, todam, toac) and modifiers. Since the "object" part of the curse has been removed, I'm not even sure curses do anything anymore (except the obvious ones).Leave a comment:
-
Also inside those "for" loops, all curses with power = 0 should be excluded. For example (item_tester_uncursable):
Code:for (i = 1; i < z_info->curse_max; i++) { if (c[i].power < 100) return true; }
Code:for (i = 0; i < z_info->curse_max; i++) { if (c[i].power == 0) continue; if (c[i].power < 100) return true; }
Leave a comment:
-
Oh yes, arrays of curses are browsed using a "for" loop that sometimes starts with 0 and sometimes starts with 1. Since the Steelskin curse is the last in the txt file, it is the first one in the "curses" array. That could explain the crash.Leave a comment:
-
I'm just looking at the commit about curses (a222ddd). When they were a linked list, there was no problem because a curse would exist or not depending on whether or not it was a "link". With arrays, a curse exists if its power is nonzero in the array. However, when a curse is appended, its power is calculated from the object level... and the result can be zero. An easy fix would be to ensure that the power of the curse is at least 1 when it is appended to the object.Leave a comment:
-
Here's a savefile with Curse weirdness and CRASH on Remove Curse. Belwether.zip
Curse Weirdness: @ has found Aiglos, which was identified as cursed when found, but on initially trying ?Remove Curse while in @'s pack, was informed "you have no curses to remove". ?Identify indicate "you have nothing to identify". @ must wield the weapon. Oddly enough, the curse can disappear when examining the weapon (not the "??", but the steelskin description, in this case. Go up or down stairs, or some other action that causes a refresh and the curse description would reappear. In addition, why are artifacts not normally cursed by their nature subject to these regular curses attaching to them? I think artifacts should be immune from such regular curses.
Remove Curse CRASH: Now, to the CRASH. When the curse is shown on Aiglos, @ reads ?Remove Curse, successfully removing the Steelskin curse, but, then on examination of the weapon a whole host of curse descriptions appears. Take one step to the right and CRASH. Or, <Esc> from the descriptions and CRASH. Basically, CRASH!
Hopefully the above description is clear enough to explain the curse/remove curse problems inherent in the attached savefile. Though, I'm very tired and think maybe I'm just rambling.Leave a comment:
-
Leave a comment:
-
New build up which fixes the lore issue. For the others, I note that Medusa doesn't breathe, so I guess that was a bolt or ball spell. What type of hounds are you seeing this with?Leave a comment:
Leave a comment: