//Emerald private void Generate3rdGenEPIDJob(uint calibration, uint minRedraws, uint maxRedraws) { uint searchRange = lowerGenerator.MaxResults; for (uint redraws = minRedraws; redraws <= maxRedraws; ++redraws) { // note: this is inefficent and should be done in a much faster way // will require a restructure of FrameGenerator uint offset = calibration + 3*redraws; lowerGenerator.Calibration = offset; List<Frame> frames = lowerGenerator.Generate(frameCompare, id, sid); progressTotal = (ulong) frames.Count*searchRange*(maxRedraws - minRedraws); foreach (Frame frame in frames) { waitHandle.WaitOne(); progressSearched += searchRange; progressFound += 1; var iframe = new IFrameEEggPID { Advances = frame.Advances, FrameLowerPID = frame.Number - offset, Pid = frame.Pid, Shiny = frame.Shiny, Redraws = redraws }; lock (threadLock) { iframesEEgg.Add(iframe); } refreshQueue = true; } } }
private void Generate3rdGenEIVJob() { uint searchRange = ivGenerator.MaxResults; //generate the iv frames List<Frame> ivFrames = ivGenerator.Generate(subFrameCompare, id, sid); progressTotal = (ulong) ivFrames.Count*searchRange; foreach (Frame frame in ivFrames) { waitHandle.WaitOne(); //ivGenerator.StaticPID = frame.Pid; progressSearched += searchRange; progressFound += (uint) ivFrames.Count; var iframe = new IFrameEEggPID { FrameNumber = frame.Name, FrameUpperPID = frame.Number, Pid = frame.Pid, Shiny = frame.Shiny, DisplayHp = frame.DisplayHpAlt, DisplayAtk = frame.DisplayAtkAlt, DisplayDef = frame.DisplayDefAlt, DisplaySpa = frame.DisplaySpaAlt, DisplaySpd = frame.DisplaySpdAlt, DisplaySpe = frame.DisplaySpeAlt, DisplayHpInh = frame.DisplayHp, DisplayAtkInh = frame.DisplayAtk, DisplayDefInh = frame.DisplayDef, DisplaySpaInh = frame.DisplaySpa, DisplaySpdInh = frame.DisplaySpd, DisplaySpeInh = frame.DisplaySpe, }; lock (threadLock) { iframesEEggIV.Add(iframe); } refreshQueue = true; } }