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); }
public void UnmapTriggerGuid2UInt32(TriggerInstance role) { mTableTriggers.Remove(role.Id); mSingeIdTriggers.Remove(role.SingleId); role._SetSingleId(0); }