It turns out the problem with SNAPSS playing the wrong sound for weapons that use ammo is not due to a change in what aWeaponUNID is set to, but rather a bug in typGetProperty. (Several of these have been introduced in the 1.7 alphas.)
Using itmGetProperty instead returns the correct value. It seems like both of these should resolve to CItemType::GetProperty(), so the difference may be here (CItem line 922):
// If this is a missile, then pass it to the weapon.
else if (GetType()->IsMissile() && Ctx.ResolveVariant())
return Ctx.GetVariantDevice()->GetItemProperty(Ctx, sName);
// Otherwise, from the type
else
return CreateResultFromDataField(CC, GetType()->GetDataField(sName));
}
At any rate, when using typGetProperty, it seems to think that the first weapon in the game (the laser cannon) can fire any ammo.
See also:
Request: Variable to get launcher UNID instead of just ammo UNID in events.
(typGetProperty) doesn't work correctly during <OnGlobalTypesInit> for certain values (1.7A2)
...Huh. Neat. Thanks for this one, NMS. Things make a little more sense, now. ^.^
This might explain the bug where (typGetProperty aWeaponType 'speed) always returns 100 since 1.7a2.
Yes, it does explain that for ammo types. It seems to work properly for weapons, whether or not they use ammo.
This should be fixed in 1.7 Alpha 3. Same as the bug for: https://ministry.kronosaur.com/record.hexm?id=57737