private MagicMoveRecord FixMMRs(MagicMoveRecord first) { MagicMoveRecord last = first; for (int i = 0; i < NeedFixRecords.Count;) { if (last != null) { MagicMoveRecord tmp = NeedFixRecords[i]; var temp2 = CalcNextMMR(last, tmp.GetDir().x, tmp.GetDir().z, tmp.GetSpeedType(), tmp.GetTime(), tmp.GetCMDIndex(), tmp); if (temp2 != null) { i++; } else { if (last == first && first.GetCMDIndex() > tmp.GetCMDIndex()) { first = tmp; } else { Log("if(last==first && first.GetCMDIndex() > tmp.GetCMDIndex())@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@22"); } NeedFixRecords.RemoveAt(i); Log("discard:" + tmp.ToString()); } last = tmp; } } return(first); }
private void SetCurMMR(MagicMoveRecord mmr) { if (mmr != CurMagicRecord) { Log("MMR changed:" + CurMagicRecord.GetCMDIndex() + "->" + mmr.GetCMDIndex()); CurMagicRecord = mmr; } }
private void FixMMRs(MagicMoveRecord first) { Log("FixMMRs Enter:"); int firstIdx = Records.IndexOf(first); if (firstIdx < 0) { while (true) { Log("if(firstIdx < 0)"); } return; } MagicMoveRecord previous = Records[firstIdx]; Log("Fix Begin:"); for (int i = firstIdx + 1; i < Records.Count; i++) { MagicMoveRecord tmp = Records[i]; CalcNextMMR(previous, tmp.GetDir().x, tmp.GetDir().z, tmp.GetSpeedType(), tmp.GetCMDTime(), tmp.GetCMDIndex(), tmp); previous = tmp; } Log("Fix End:"); Log("FixMMRs Leave:"); }