I'm getting crashes on level-gen semi-regularly and trying to figure out what's up with them by messing around offline.
Figured out at least one reason for the "object property not recognized" error, get_property() has no code for handling the ignore flags (like "ignore electricity") but there's an ignore electricity call in choose_type().
Edit: Rings of the Elements cause crashes on gen because of the off-weapon brands, this line for processing them accesses unallocated memory. (Also, the element-ring activations RING_ELEC and RING_COLD need to have their descriptions swapped around.) It seems like this is the main reason for the crashes, I replaced that line with "append_brand(&obj->brands, pick);" and I'm now getting far fewer crashes. I do think there's still at least one other crash that's much rarer, it gives error messages for a failed assertion in rand_div() on z-rand.c line 169 (where it asserts that m <= 0x10000000) but it's so rare I'm having trouble reproducing it. Will go after it in the morning if you don't find it first.
Figured out at least one reason for the "object property not recognized" error, get_property() has no code for handling the ignore flags (like "ignore electricity") but there's an ignore electricity call in choose_type().
Edit: Rings of the Elements cause crashes on gen because of the off-weapon brands, this line for processing them accesses unallocated memory. (Also, the element-ring activations RING_ELEC and RING_COLD need to have their descriptions swapped around.) It seems like this is the main reason for the crashes, I replaced that line with "append_brand(&obj->brands, pick);" and I'm now getting far fewer crashes. I do think there's still at least one other crash that's much rarer, it gives error messages for a failed assertion in rand_div() on z-rand.c line 169 (where it asserts that m <= 0x10000000) but it's so rare I'm having trouble reproducing it. Will go after it in the morning if you don't find it first.
Comment