mirror of
				https://github.com/PrimeDecomp/prime.git
				synced 2025-10-27 23:30:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			911 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			911 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef _CTOKEN
 | |
| #define _CTOKEN
 | |
| 
 | |
| #include "types.h"
 | |
| 
 | |
| #include "Kyoto/CObjectReference.hpp"
 | |
| #include "Kyoto/IObj.hpp"
 | |
| 
 | |
| class CObjectReference;
 | |
| 
 | |
| class CToken {
 | |
| public:
 | |
|   CToken() {}
 | |
|   CToken(CObjectReference* ref);
 | |
|   CToken(IObj* obj); // : x0_objRef(new CObjectReference(obj)), x4_lockHeld(false) {}
 | |
|   CToken(const CToken& other);
 | |
|   ~CToken();
 | |
| 
 | |
|   CObjOwnerDerivedFromIObjUntyped* GetObj();
 | |
|   void Lock();
 | |
|   void Unlock();
 | |
|   bool IsLoaded() const { return x0_objRef->IsLoaded(); }
 | |
|   void RemoveRef();
 | |
|   CToken& operator=(const CToken&);
 | |
|   bool HasReference() const { return x0_objRef != nullptr; }
 | |
|   const SObjectTag& GetTag() const { return x0_objRef->GetTag(); }
 | |
|   FourCC GetReferenceType() { return GetTag().GetType(); }
 | |
| 
 | |
|   bool HasLock() { return x4_lockHeld; }
 | |
| 
 | |
|   const CObjectReference* GetRef() const { return x0_objRef; }
 | |
| 
 | |
| private:
 | |
|   CObjectReference* x0_objRef;
 | |
|   bool x4_lockHeld;
 | |
| };
 | |
| 
 | |
| #endif // _CTOKEN
 |