/// <summary>
        /// This routine converts a string to its component location data
        /// fields.
        /// </summary>
        /// <param name="sLocation">Supplies the string to convert.</param>
        /// <returns>The converted location data fields.</returns>
        public LOCATION_DATA ACR_StringToLocationData(string sLocation)
        {
            LOCATION_DATA LocationData = new LOCATION_DATA();

            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);
                LocationData.AreaTag = Script.GetSubString(sLocation, iPos, iCount);

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

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

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

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

            return(LocationData);
        }
        /// <summary>
        /// This routine converts a string to its component location data
        /// fields.
        /// </summary>
        /// <param name="sLocation">Supplies the string to convert.</param>
        /// <returns>The converted location data fields.</returns>
        public LOCATION_DATA ACR_StringToLocationData(string sLocation)
        {
            LOCATION_DATA LocationData = new LOCATION_DATA();

            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);
                LocationData.AreaTag = Script.GetSubString(sLocation, iPos, iCount);

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

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

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

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

            return LocationData;
        }