ALFA.Database.ACR_StringToLocation C# (CSharp) Метод

ACR_StringToLocation() публичный Метод

This routine converts a string to a location.
public ACR_StringToLocation ( string sLocation ) : NWScript.NWScriptEngineStructure2
sLocation string Supplies the string to convert.
Результат NWScript.NWScriptEngineStructure2
        public NWLocation ACR_StringToLocation(string sLocation)
        {
            UInt32 oArea;
            Vector3 vPosition;
            float fOrientation, fX, fY, fZ;

            int iPos, iCount, iLen = Script.GetStringLength(sLocation);

            if (iLen > 0)
            {
                iPos = Script.FindSubString(sLocation, "#A#", 0) + 3;
                iCount = Script.FindSubString(Script.GetSubString(sLocation, iPos, iLen - iPos), "#", 0);
                oArea = Script.GetObjectByTag(Script.GetSubString(sLocation, iPos, iCount), 0);

                iPos = Script.FindSubString(sLocation, "#X#", 0) + 3;
                iCount = Script.FindSubString(Script.GetSubString(sLocation, iPos, iLen - iPos), "#", 0);
                fX = Script.StringToFloat(Script.GetSubString(sLocation, iPos, iCount));

                iPos = Script.FindSubString(sLocation, "#Y#", 0) + 3;
                iCount = Script.FindSubString(Script.GetSubString(sLocation, iPos, iLen - iPos), "#", 0);
                fY = Script.StringToFloat(Script.GetSubString(sLocation, iPos, iCount));

                iPos = Script.FindSubString(sLocation, "#Z#", 0) + 3;
                iCount = Script.FindSubString(Script.GetSubString(sLocation, iPos, iLen - iPos), "#", 0);
                fZ = Script.StringToFloat(Script.GetSubString(sLocation, iPos, iCount));

                vPosition.x = fX;
                vPosition.y = fY;
                vPosition.z = fZ;

                iPos = Script.FindSubString(sLocation, "#O#",0) + 3;
                fOrientation = Script.StringToFloat(Script.GetSubString(sLocation, iPos, iLen - iPos));

                return Script.Location(oArea, vPosition, fOrientation);
            }

            vPosition.x = 0.0f;
            vPosition.y = 0.0f;
            vPosition.z = 0.0f;

            return Script.Location(CLRScriptBase.OBJECT_INVALID, vPosition, 0.0f);
        }