BUG: Fix ExtendedItemSetOptionByRecord() failing to assign explicitly passed properties

This commit is contained in:
bananarama92 2025-03-19 16:21:07 +01:00
parent c99c403046
commit 51a334920b
No known key found for this signature in database
GPG key ID: E83C7D3B5DA36248

View file

@ -1336,6 +1336,11 @@ function ExtendedItemSetOptionByRecord(C, itemOrGroupName, typeRecord=null, opti
const propertyKeys = new Set();
/** @type {Set<keyof ItemProperties>} */
const whiteListKeys = new Set(["OverridePriority"]);
for (const key of whiteListKeys) {
if (properties?.[key]) {
propertyKeys.add(key);
}
}
const previousOptions = ExtendedItemGatherOptions(item);
if (typeRecord != null) {
@ -1397,11 +1402,11 @@ function ExtendedItemSetOptionByRecord(C, itemOrGroupName, typeRecord=null, opti
}
if (properties != null) {
const invalidProperties = CommonKeys(properties).filter(i => !propertyKeys.has(i) && !whiteListKeys.has(i));
const invalidProperties = CommonKeys(properties).filter(i => !propertyKeys.has(i));
if (invalidProperties.length > 0) {
console.warn("Ignoring unsanctioned/invalid item properties", invalidProperties.sort());
}
Object.assign(item, CommonPick(properties, propertyKeys));
Object.assign((item.Property ??= {}), CommonPick(properties, propertyKeys));
}
if (refresh || refresh == null) {