Talk:Script File Structure
Revision as of 03:13, 28 October 2018 by imported>Scrivener07 (→Fragments)
Imports with global function via inheritance
I may have found a quirk when importing global functions from another script. If the global functions you're importing are from a parent via inheritance, the compiler cannot resolve the global function.
Papyrus
Scriptname MyNamespace:ObjectBase
Function MyGlobalFunction() Global
{Global Function}
EndFunction
Scriptname MyNamespace:Object extends MyNamespace:ObjectBase
import MyNamespace:ObjectBase
Event OnInit()
MyGlobalFunction() ; compiler error below
EndEvent
global function MyGlobalFunction cannot be called on an object
Error while trying to typecheck script MyNamespace:Object: Index (zero based) must be greater than or equal to zero and less than the size of theNo output generated for MyNamespace\Object.psc, compilation failed.
The error above goes away and can be imported if the globals are relocated to a script outside the `Objects` inheritance.
Scriptname MyNamespace:Other
Function MyGlobalFunction() Global
{Global Function}
EndFunction
Scriptname MyNamespace:Object extends MyNamespace:ObjectBase
import MyNamespace:Other
Event OnInit()
MyGlobalFunction()
EndEvent
Scrivener07 (talk) 2017-08-06T16:13:12 (EDT)
Fragments
It appears you can't import functions into a fragment. :/ --Rasikko (talk) 2018-10-28T01:56:55 (EDT)