User:Terra Nova2
Revision as of 12:24, 8 April 2016 by imported>Terra Nova2
Long function that doesn't work because missing "pieces".
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