Update Give Equipment node to fully match documented interface

This commit is contained in:
2015-06-26 12:57:53 -04:00
parent fc83f656bb
commit 2bb89f127c

View File

@@ -3266,17 +3266,21 @@ void affect_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
}
if(to_give.charges > 0 && spec.ex1c >= 0)
to_give.charges = spec.ex1c;
if(spec.ex2a == 1) to_give.ident = true;
if(spec.ex2a == 1 || spec.ex2a == 2) to_give.ident = true;
else if(spec.ex2a == 0) to_give.ident = false;
if(spec.ex2a == 2) to_give.concealed = false;
if(spec.ex2b == 1) to_give.cursed = to_give.unsellable = true;
else if(spec.ex2b == 0) to_give.cursed = to_give.unsellable = false;
int equip_type = 0;
if(spec.ex2c == 0) equip_type = GIVE_EQUIP_SOFT;
else if(spec.ex2c == 1) equip_type = GIVE_EQUIP_TRY;
else if(spec.ex2c >= 2) equip_type = GIVE_EQUIP_FORCE;
bool success = true;
for(i = 0; i < 6; i++)
if(pc_num == 6 || pc_num == i)
univ.party[i].give_item(to_give, equip_type | GIVE_ALLOW_OVERLOAD);
success = success && univ.party[i].give_item(to_give, equip_type | GIVE_ALLOW_OVERLOAD);
if(!success)
*next_spec = spec.pic;
}
break;
default: