Register item registry normalization
This commit is contained in:
@@ -112,6 +112,27 @@ func appendItemEventLists(values []dnd.ItemEventList) (dnd.ItemEventList, error)
|
||||
return combined, nil
|
||||
}
|
||||
|
||||
func appendItemRegistries(values []dnd.ItemRegistry) (dnd.ItemRegistry, error) {
|
||||
count := 0
|
||||
present := false
|
||||
for _, value := range values {
|
||||
if value.Items != nil {
|
||||
present = true
|
||||
}
|
||||
count += len(value.Items)
|
||||
}
|
||||
if !present {
|
||||
return dnd.ItemRegistry{}, nil
|
||||
}
|
||||
combined := dnd.ItemRegistry{Items: make([]dnd.Item, 0, count)}
|
||||
for _, value := range values {
|
||||
for _, item := range value.Items {
|
||||
combined.Items = append(combined.Items, cloneItem(item))
|
||||
}
|
||||
}
|
||||
return combined, nil
|
||||
}
|
||||
|
||||
func appendNPCOccurrenceLists(values []dnd.NPCOccurrenceList) (dnd.NPCOccurrenceList, error) {
|
||||
count := 0
|
||||
present := false
|
||||
@@ -216,6 +237,12 @@ func cloneItemEvent(value dnd.ItemEvent) dnd.ItemEvent {
|
||||
return clone
|
||||
}
|
||||
|
||||
func cloneItem(value dnd.Item) dnd.Item {
|
||||
clone := value
|
||||
clone.SourceRefs = cloneSourceRefs(value.SourceRefs)
|
||||
return clone
|
||||
}
|
||||
|
||||
func cloneSpellCast(value dnd.SpellCast) dnd.SpellCast {
|
||||
clone := value
|
||||
clone.SourceRefs = cloneSourceRefs(value.SourceRefs)
|
||||
|
||||
Reference in New Issue
Block a user