Esempio n. 1
0
 public void Load()
 {
     AnimDataFrame = FileManager.AnimData.CalculateCurrentGraphic(Graphic);
     IsEnabled     = true;
     AnimIndex     = 0;
     Speed         = AnimDataFrame.FrameInterval != 0 ? AnimDataFrame.FrameInterval * Constants.ITEM_EFFECT_ANIMATION_DELAY : Constants.ITEM_EFFECT_ANIMATION_DELAY;
 }
Esempio n. 2
0
        public void Load()
        {
            AnimDataFrame = AnimDataLoader.Instance.CalculateCurrentGraphic(Graphic);
            IsEnabled     = true;
            AnimIndex     = 0;

            if (AnimDataFrame.FrameInterval == 0)
            {
                IntervalInMs = Constants.ITEM_EFFECT_ANIMATION_DELAY;
            }
            else
            {
                IntervalInMs = AnimDataFrame.FrameInterval * Constants.ITEM_EFFECT_ANIMATION_DELAY;
            }
        }
Esempio n. 3
0
        public AnimDataFrame2 CalculateCurrentGraphic(ushort graphic)
        {
            IntPtr address = _file.StartAddress;

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

                //Stopwatch sw = Stopwatch.StartNew();
                //for (int i = 0; i < 2000000; i++)
                //{
                //    AnimDataFrame pad = Marshal.PtrToStructure<AnimDataFrame>(addr);
                //}

                //Console.WriteLine("Marshal: {0} ms", sw.ElapsedMilliseconds);

                //sw.Restart();
                //for (int i = 0; i < 2000000; i++)
                //{
                //
                //}

                //Console.WriteLine("Custom: {0} ms", sw.ElapsedMilliseconds);

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

                //if (pad.FrameInterval == 0)
                //    pad.FrameInterval = 1;
                AnimDataFrame2 a = UnsafeMemoryManager.ToStruct <AnimDataFrame2>(addr);

                return(a);
            }

            return(default);