Difference between revisions of "User:Terra Nova2"
Jump to navigation
Jump to search
no edit summary
imported>Terra Nova2 |
imported>Terra Nova2 |
||
Line 1: | Line 1: | ||
Long function that doesn't work because missing "pieces". | |||
<source lang="papyrus"> | |||
Location Function GetParentLocation(ObjectReference akRef) | |||
;==============================DOCUMENTATION ON THIS FUNCTION=================================================================== | |||
; ============================================================================================================================== | |||
Int i = 0 | |||
Int iHold = 0 | |||
Int iWorldSpaceHold = 0 | |||
Int iWorldSpaceLoc = 0 | |||
Int iNoParent = 0 | |||
Int iGetWorldSpace = 0 | |||
Int iIndex = City.Length | |||
Int iHoldIndex = Hold.Length | |||
Int iWorldSpaceLocIndex = WorldSpaceLoc.Length | |||
Int iWorldSpaceHoldIndex = WorldSpaceHold.Length | |||
Int iNoParentIndex = NoParent.Length | |||
Int iGetWorldSpaceIndex = GetWorldSpaces.Length | |||
;debug.notification("Name of my location." +akRef.GetCurrentLocation().GetName() as string) | |||
IF akRef.GetCurrentLocation() != none ; Check if our cell has a locaiton. | |||
if !akRef.isInInterior() && akRef.GetWorldSpace() == Tamriel ; We're outside and in the Tamriel worldspace. | |||
debug.trace("We're checking for the parent in an exterior.") | |||
While i < iIndex | |||
if City[i] == akRef.GetCurrentLocation() ; Check if our location matches a city. | |||
debug.trace("Storing the index" + i) | |||
Int iSameLocation = i | |||
While iHold < iHoldIndex | |||
debug.trace("We're checking holds.") | |||
if Hold[iHold].isChild(City[iSameLocation]) | |||
debug.trace("We're returning the hold that is contained in index" + iHold + "and is" +Hold[iHold].Getname()) | |||
return Hold[iHold] | |||
endif | |||
debug.trace("Incrementing through the hold locations" + Hold[iHold].GetName() + "hold.") | |||
iHold += 1 | |||
EndWhile | |||
endif | |||
debug.trace("Incrementing through the cities." + i) | |||
i += 1 | |||
EndWhile | |||
elseif akRef.IsInInterior() ; We're inside an interior | |||
debug.trace("We're in an interior") | |||
While iHold < iHoldIndex | |||
if Hold[iHold].isChild(akRef.GetCurrentLocation()) | |||
debug.trace("Returning_" +Hold[iHold].Getname()+ "hold" + "_for this interior at Index_" +iHold) | |||
return Hold[iHold] | |||
endif | |||
debug.trace("Incrementing through the holds" +Hold[iHold].GetName()+ "hold.") | |||
iHold += 1 | |||
EndWhile | |||
elseif akRef.GetWorldSpace() != Tamriel ; We're not in Kansas anymore Dorothy. | |||
debug.trace("We're not in Kansas anymore. Dorothy") | |||
While iGetWorldSpace < iGetWorldSpaceIndex | |||
if akRef.GetWorldSpace() == GetWorldSpaces[iGetWorldSpace] | |||
Int StoreWorldSpace = iGetWorldSpace | |||
if | |||
While iWorldSpaceLoc < iWorldSpaceLocIndex | |||
if WorldSpaceLoc[iWorldSpaceLoc] == akRef.GetCurrentLocation() | |||
debug.trace("Returning Tamriel") | |||
return TamrielLocation | |||
endif | |||
debug.trace(WorldSpaceLoc[iWorldSpaceLoc].GetName() +"at index_" +iWorldSpaceLoc+ "_is not the parent.") | |||
iWorldSpaceLoc += 1 | |||
EndWhile | |||
While iWorldSpaceHold < iWorldSpaceHoldIndex | |||
if WorldSpaceHold[iWorldSpaceHold] == akRef.GetCurrentLocation() | |||
debug.trace("Storing the location_"+WorldSpaceHold[iWorldSpaceHold].GetName()+ "_at index_" +iWorldSpaceHold) | |||
Int iWorldSpaceIndex = iWorldSpaceHold | |||
While iHold < iHoldIndex | |||
debug.trace("Checking holds..") | |||
if Hold[iHold].isChild(WorldSpaceHold[iWorldSpaceIndex]) | |||
debug.trace("Retuning the_"+Hold[iHold].GetName()+"hold.") | |||
return Hold[iHold] | |||
endif | |||
debug.trace("Incrementing though the holds_"+Hold[iHold].Getname()+ "_of index_" +iHold) | |||
iHold += 1 | |||
EndWhile | |||
endif | |||
debug.trace("Incrementing through the worldspace location index_"+iWorldSpaceHold) | |||
iWorldSpaceHold += 1 | |||
EndWhile | |||
While iNoParentIndex | |||
iNoParentIndex -= 1 | |||
if NoParent[iNoParentIndex] == akRef.GetCurrentLocation() | |||
debug.notification("This location has no assigned parent.") | |||
return none | |||
endif | |||
EndWhile | |||
if akRef.GetCurrentLocation() == KatariahLocation | |||
While i < iIndex | |||
if City[i].isChild(KatariahLocation) | |||
Int iKatParent | |||
While iHold < iHoldIndex | |||
if Hold[iHold].isChild(City[iKatParent]) | |||
return Hold[iHold] | |||
endif | |||
iHold += 1 | |||
EndWhile | |||
endif | |||
i += 1 | |||
EndWhile | |||
endif | |||
endif | |||
else | |||
debug.notification("This cell has no assigned location.") | |||
return none | |||
endif | |||
debug.notification("No parents found for any location.") | |||
return none ; return none if no parents are found. | |||
EndFunction | |||
</source> |