mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-17 17:05:09 +00:00
50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
|
/**
|
||
|
* @file instance.h
|
||
|
* @brief NEX Instance Controllers.
|
||
|
*/
|
||
|
#pragma once
|
||
|
|
||
|
#include "RootObject.h"
|
||
|
|
||
|
namespace nn
|
||
|
{
|
||
|
namespace nex
|
||
|
{
|
||
|
class InstanceTable;
|
||
|
|
||
|
class InstanceControl : public nn::nex::RootObject
|
||
|
{
|
||
|
public:
|
||
|
InstanceControl(u32, u32);
|
||
|
|
||
|
u32 mInstanceContext; // _8
|
||
|
u32 mInstanceType; // _C
|
||
|
void* mDelegateInstance; // _10
|
||
|
bool mIsValidControl; // _18
|
||
|
u8 _19; // probably padding
|
||
|
u8 _1A;
|
||
|
u8 _1B;
|
||
|
|
||
|
static nn::nex::InstanceTable* s_oInstanceTable;
|
||
|
};
|
||
|
|
||
|
class InstanceTable : public nn::nex::RootObject
|
||
|
{
|
||
|
public:
|
||
|
InstanceTable();
|
||
|
|
||
|
virtual ~InstanceTable();
|
||
|
|
||
|
bool AddInstance(nn::nex::InstanceControl *, u32, u32);
|
||
|
void DelInstance(nn::nex::InstanceControl *, u32, u32);
|
||
|
u32 CreateContext();
|
||
|
bool DeleteContext(u32);
|
||
|
void AllocateExtraContexts(u64 size);
|
||
|
void FreeExtraContexts();
|
||
|
u32 GetHighestID() const;
|
||
|
u32 FindInstanceContext(nn::nex::InstanceControl *, u32);
|
||
|
|
||
|
u8 _0[0x94];
|
||
|
};
|
||
|
};
|
||
|
};
|