コード例 #1
0
        public unsafe AnimDataFrame CalculateCurrentGraphic(ushort graphic)
        {
            IntPtr address = _file?.StartAddress ?? IntPtr.Zero;

            if (address != IntPtr.Zero)
            {
                IntPtr addr = address + (graphic * 68 + 4 * ((graphic >> 3) + 1));

                if (addr.ToInt64() < address.ToInt64() + _file.Length)
                {
                    ref AnimDataFrame a = ref Unsafe.AsRef <AnimDataFrame>((void *)addr);

                    return(a);
                }
            }
コード例 #2
0
        public static AnimDataFrame CalculateCurrentGraphic(ushort graphic)
        {
            IntPtr address = _file.StartAddress;

            if (address != IntPtr.Zero)
            {
                int           addr = graphic * 68 + 4 * ((graphic >> 3) + 1);
                AnimDataFrame pad  = Marshal.PtrToStructure <AnimDataFrame>(address + addr);

                //if (pad.FrameCount == 0)
                //{
                //    pad.FrameCount = 1;
                //    pad.FrameData[0] = 0;
                //}

                //if (pad.FrameInterval == 0)
                //    pad.FrameInterval = 1;

                return(pad);
            }

            return(default);