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; }
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; } }
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);