Exemplo n.º 1
0
        public bool MapTriggerGuid2UInt32(TriggerInstance role)
        {
            if (role.SingleId != 0)
            {
                return(false);
            }
            TriggerInstance temp;

            if (mTableTriggers.TryGetValue(role.Id, out temp))
            {
                return(false);
            }
            UInt32 singleId = 0;

            for (int count = 0; count < (UInt32)EIdIndexInfo.MaxTriggerInPlanes; count++)
            {
                if (mSingeIdTriggers.TryGetValue(mNextTriggerId, out temp) == false)
                {
                    singleId = mNextTriggerId;
                    mNextTriggerId++;
                    break;
                }
                else
                {
                    ++mNextTriggerId;
                    if (mNextTriggerId >= (UInt32)EIdIndexInfo.TriggerEnd)
                    {
                        mNextTriggerId = (UInt32)EIdIndexInfo.TriggerStart;
                    }
                }
            }

            if (singleId == 0)
            {
                return(false);
            }
            role._SetSingleId(singleId);
            mTableTriggers.Add(role.Id, role);
            mSingeIdTriggers.Add(singleId, role);
            return(true);
        }
Exemplo n.º 2
0
 public void UnmapTriggerGuid2UInt32(TriggerInstance role)
 {
     mTableTriggers.Remove(role.Id);
     mSingeIdTriggers.Remove(role.SingleId);
     role._SetSingleId(0);
 }