View Single Post
Duggan
Senior Member
Volunteer Data File Contributor
 
Join Date: Nov 2009
Posts: 1,502

Old January 14th, 2020, 09:24 AM
Interestingly enough, the code for wide arrays accounts for dynamic array slots when counting up the cost, so either they just blindly copy-pasted, or it was considered. FWIW, the HLZ code relevant to this:

Quote:
Calc pwhBaseRnk Power Cost Per Rank Can Be Dynamic?
~ If the text is empty, we can assume it's ok to be a dynamic power
@text = ""

~ We can be dynamic if we're part of an array
~ But not if we're part of a wide array
if (parent.tagis[StrucChild.OnWideArr] <> 0) then
@text = "Powers in a wide array can't be made dynamic."
done
elseif (parent.tagis[StrucChild.OnArray] <> 0) then
done
endif

~ If we're part of a multiple alternate power, we can't be dynamic,
~ because the 'multiple power' container is the one with the flag
if (parent.tagexpr[StrucChild.OnMulti & !Helper.AltEffect] <> 0) then
@text = "This power can't be made dynamic - the parent 'Multiple Powers' must be made dynamic instead."
done
endif

~ We can be dynamic if we are an alternate power
if (parent.tagis[Helper.AltEffect] <> 0) then
done
endif

~ We can also be dynamic if we have any alternate power children
if (parent.tagis[Helper.HasAltPows] <> 0) then
done
endif

@text = "This power can't be made dynamic, because it isn't an alternate power or doesn't have any alternate powers."

~ We can be dynamic if we're part of an array
~ But not if we're part of a wide array
if (parent.tagis[StrucChild.OnWideArr] <> 0) then
@value = 0
done
elseif (parent.tagis[StrucChild.OnArray] <> 0) then
@value = 1
done
endif

~ If we're part of a multiple alternate power, we can't be dynamic,
~ because the 'multiple power' container is the one with the flag
~ (our alternate powers still can be, though)
if (parent.tagexpr[StrucChild.OnMulti & !Helper.AltEffect] <> 0) then
@value = 0
done
endif

~ We can be dynamic if we are an alternate power
if (parent.tagis[Helper.AltEffect] <> 0) then
@value = 1
done
endif

~ We can also be dynamic if we have any alternate power children
if (parent.tagis[Helper.HasAltPows] <> 0) then
@value = 1
done
endif
My suspicion is that this will require some further changes to get the interface to match up, since Hero Lab also doesn't allow non-dynamic array slots to be on at the same time as dynamic ones.
Duggan is offline   #2 Reply With Quote