otmp = mksobj((int) a->otyp, TRUE, FALSE);
if (otmp) {
+ /* prevent erosion from generating */
+ otmp->oeroded = otmp->oeroded2 = 0;
otmp = oname(otmp, a->name, ONAME_NO_FLAGS);
otmp->oartifact = m;
/* set existence and reason for creation bits */
otmp->blessed = obj->blessed;
otmp->cursed = obj->cursed;
otmp->bknown = obj->bknown;
+ otmp->oeroded = otmp->oeroded2 = 0;
if (obj->blessed) {
if (otmp->spe < 0)
otmp->spe = 0;
if (typ == STRANGE_OBJECT)
return;
obj = mksobj(typ, FALSE, FALSE);
+ obj->oeroded = obj->oeroded2 = 0;
if (!rn2(3))
obj->oerodeproof = 1;
if (!rn2(3))
if (weapon != STRANGE_OBJECT) {
otmp = mksobj(weapon, TRUE, FALSE);
+ otmp->oeroded = otmp->oeroded2 = 0;
otmp->spe = (special ? rn1(5, 4) : rn2(4));
if (!rn2(3))
otmp->oerodeproof = 1;
/* set eroded and erodeproof */
if (erosion_matters(d.otmp)) {
+ /* wished-for item shouldn't be eroded unless specified */
+ d.otmp->oeroded = d.otmp->oeroded2 = 0;
if (d.eroded && (is_flammable(d.otmp) || is_rustprone(d.otmp)))
d.otmp->oeroded = d.eroded;
if (d.eroded2 && (is_corrodeable(d.otmp) || is_rottable(d.otmp)))