Difference between revisions of "GetActorOwner - ObjectReference"
GetActorOwner - ObjectReference (edit)
Revision as of 18:01, 10 September 2015
, 18:01, 10 September 2015→Returning an inherited owner
imported>Fireundubh (explicit vs. inherited ownership) |
imported>Fireundubh |
||
Line 35: | Line 35: | ||
ActorBase Function GetInheritedOwner(ObjectReference aObj, ObjectReference aContainer) | ActorBase Function GetInheritedOwner(ObjectReference aObj, ObjectReference aContainer) | ||
ActorBase actorOwner | |||
; if the object exists | |||
; try to get the object's explicit owner | |||
If aObj | |||
actorOwner = aObj.GetActorOwner() | |||
; if the object does not have an explicit owner | |||
; and if the container exists | |||
; try to get the container's explicit owner | |||
If !actorOwner | |||
If aContainer | |||
actorOwner = aContainer.GetActorOwner() | |||
; but if the container also does not have an explicit owner | |||
; try to get the parent cell of the container's explicit owner | |||
If !actorOwner | |||
actorOwner = aContainer.GetParentCell().GetActorOwner() | |||
EndIf | |||
EndIf | |||
; if even the parent cell of the container does not have an explicit owner | |||
; try one last time to get the parent cell of the object's explicit owner | |||
If !actorOwner | |||
actorOwner = aObj.GetParentCell().GetActorOwner() | |||
EndIf | |||
EndIf | |||
EndIf | |||
; returns an explicit owner, inherited owner, or none | |||
Return actorOwner | |||
EndFunction | EndFunction | ||
</source> | </source> |