class ItemReference { protected: // The size of the m_QuantumNumber field limits the number // of quanta that can exist in one file. If we don't want // to increase the size of an ItemReference object, then // we can't increase this number without simultaneously // lowering the number of items in a block. unsigned m_QuantumNumber:20; unsigned m_RelativeItemNumber:12; public: int IsReference() { return m_RelativeItemNumber != NoItem; } int GetItemNumber() {return m_RelativeItemNumber;} int GetQuantumNumber() {return m_QuantumNumber;} void SetItemNumber(ArrayIndex p_ItemNumber) { m_RelativeItemNumber = p_ItemNumber; } void SetQuantumNumber(QuantumNumber p_QuantumNumber) { m_QuantumNumber = p_QuantumNumber; } };