Esempio n. 1
0
    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();
    }
Esempio n. 2
0
 public void PushFront(ViRefList1 <T> list)
 {
     if (list == this)
     {
         return;
     }
     PushAfter(_root, list);
 }
Esempio n. 3
0
 public void PushBack(ViRefList1 <T> list)
 {
     if (list == this)
     {
         return;
     }
     PushBefore(_root, list);
 }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
#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);
    }
Esempio n. 7
0
#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();
    }
Esempio n. 8
0
 public bool IsAttach(ViRefList1 <T> list)
 {
     return(list == _list);
 }