public void PushBefore(ViRefNode1 <T> after, ViRefList1 <T> list) { if (list.Size == 0) { return; } if (after.IsAttach(list)) { return; } if (after.IsAttach() == false) { return; } ViDebuger.AssertError(after._list); ViRefList1 <T> receiveList = after._list; ViRefNode1 <T> iter = list._root._next; while (iter != list._root) { iter._list = receiveList; iter = iter._next; } ViDebuger.AssertError(receiveList != list); ViRefNode1 <T> first = list._root._next; ViRefNode1 <T> back = list._root._pre; ViRefNode1 <T> pre = after._pre; _Link(pre, first); _Link(back, after); receiveList._cnt += list.Size; list._Init(); }
public void PushFront(ViRefList1 <T> list) { if (list == this) { return; } PushAfter(_root, list); }
public void PushBack(ViRefList1 <T> list) { if (list == this) { return; } PushBefore(_root, list); }
public static bool GetValue(Int32 deltaValue, ViRefList1 <ViValueMapping> list, ref Int32 detalValue, ref UInt32 idx) { if (list.Size == 0) { return(false); } ViValueMapping node = list.GetHead() as ViValueMapping; ViDebuger.AssertError(node); idx = node.DestIdx; detalValue = node.Value(deltaValue); return(true); }
public static Int32 Mod(Int32 iDamage, ViRefList1 <ViValueDisMod> kList) { Int32 iReserveDamage = iDamage; kList.BeginIterator(); while (!kList.IsEnd()) { ViValueDisMod kModifier = kList.CurrentNode as ViValueDisMod; kList.Next(); ViDebuger.AssertError(kModifier); iReserveDamage = kModifier.Mod(iReserveDamage); if (iReserveDamage == 0) { kList.EndIterator(); break; } } return(iReserveDamage); }
#pragma warning disable 0219 public static void Test() { ViValueDisModEx_0 disMod0 = new ViValueDisModEx_0(); disMod0.SetDisValue(100); ViValueDisModEx_0 disMod1 = new ViValueDisModEx_0(); disMod1.SetDisValue(100); ViRefList1 <ViValueDisMod> disModList = new ViRefList1 <ViValueDisMod>(); disModList.PushBack(disMod0); disModList.PushBack(disMod1); Int32 iReserve = 0; iReserve = ViValueDisMod.Mod(45, disModList); iReserve = ViValueDisMod.Mod(45, disModList); iReserve = ViValueDisMod.Mod(45, disModList); iReserve = ViValueDisMod.Mod(45, disModList); iReserve = ViValueDisMod.Mod(45, disModList); }
#pragma warning disable 0219 public static void Test() { ViRefList1 <int> list = new ViRefList1 <int>(); ViRefNode1 <int> node0 = new ViRefNode1 <int>(); ViRefNode1 <int> node1 = new ViRefNode1 <int>(); ViRefNode1 <int> node2 = new ViRefNode1 <int>(); list.PushBack(node0); list.PushBack(node1); list.PushBack(node2); list.BeginIterator(); while (!list.IsEnd()) { ViRefNode1 <int> node = list.CurrentNode; list.Next(); ///<使用> ///</使用> } list.Clear(); }
public bool IsAttach(ViRefList1 <T> list) { return(list == _list); }