3#include <container/seadBuffer.h>
4#include <container/seadSafeArray.h>
5#include <environment/aglEnvObj.h>
7namespace agl {
namespace env {
26 setContainMax(T::getType(), max);
31 return mTypeMax[type];
37 return getContainMax(T::getType());
60 return mEnvObjPtrBuffer.size();
70 return searchBufferIndex(T::getType(), name);
78 return searchTypeIndex(T::getType(), name);
85 if (0 <= index && index < mTypeInfo[type].mMaxNum)
86 return *mEnvObjPtrBuffer.get(mTypeInfo[type].mStartIndex + index);
94 if (0 <= index && index < mTypeInfo[type].mMaxNum)
95 return *mEnvObjPtrBuffer.get(mTypeInfo[type].mStartIndex + index);
101 template <
typename T>
104 return sead::DynamicCast<T>(getEnvObj(T::getType(), index));
107 template <
typename T>
110 return sead::DynamicCast<T>(getEnvObj(T::getType(), index));
115 return mTypeInfo[type].mStartIndex;
118 template <
typename T>
121 return getEnvObjStartIndex(T::getType());
126 return mTypeInfo[type].mMaxNum;
129 template <
typename T>
132 return getEnvObjMaxNum(T::getType());
141 static_assert(
sizeof(
TypeInfo) == 4);
149static_assert(
sizeof(
EnvObjBuffer) == 0x20,
"agl::env::EnvObjBuffer size mismatch");
Definition aglEnvObjBuffer.h:13
s32 getContainMax(s32 type) const
Definition aglEnvObjBuffer.h:29
sead::SafeArray< s32, EnvObj::cTypeMax > mTypeMax
Definition aglEnvObjBuffer.h:46
void setContainMax(s32 max)
Definition aglEnvObjBuffer.h:24
virtual ~AllocateArg()
Definition aglEnvObjBuffer.h:17
void setContainMax(s32 type, s32 max)
Definition aglEnvObjBuffer.cpp:116
AllocateArg()
Definition aglEnvObjBuffer.cpp:110
s32 getContainTotal() const
Definition aglEnvObjBuffer.h:40
s32 getContainMax() const
Definition aglEnvObjBuffer.h:35
s32 mTotal
Definition aglEnvObjBuffer.h:47
Definition aglEnvObjBuffer.h:10
EnvObjBuffer()
Definition aglEnvObjBuffer.cpp:12
u32 _18[4/sizeof(u32)]
Definition aglEnvObjBuffer.h:147
s32 searchBufferIndex(const sead::SafeString &name) const
Definition aglEnvObjBuffer.h:68
s32 getEnvObjStartIndex(s32 type) const
Definition aglEnvObjBuffer.h:113
virtual ~EnvObjBuffer()
Definition aglEnvObjBuffer.cpp:18
s32 searchBufferIndex(s32 type, const sead::SafeString &name) const
Definition aglEnvObjBuffer.cpp:74
virtual void freeBuffer()
Definition aglEnvObjBuffer.cpp:56
s32 searchTypeIndex(s32 type, const sead::SafeString &name) const
Definition aglEnvObjBuffer.cpp:92
const EnvObj * getEnvObj(s32 type, s32 index) const
Definition aglEnvObjBuffer.h:92
s32 getEnvObjMaxNum(s32 type) const
Definition aglEnvObjBuffer.h:130
T * getEnvObj(s32 index)
Definition aglEnvObjBuffer.h:102
const T * getEnvObj(s32 index) const
Definition aglEnvObjBuffer.h:108
s32 searchTypeIndex(const sead::SafeString &name) const
Definition aglEnvObjBuffer.h:76
u32 _4
Definition aglEnvObjBuffer.h:144
EnvObj * getEnvObj(s32 type, s32 index)
Definition aglEnvObjBuffer.h:83
sead::Buffer< TypeInfo > mTypeInfo
Definition aglEnvObjBuffer.h:145
virtual void allocBuffer(const AllocateArg &arg, sead::Heap *heap)
Definition aglEnvObjBuffer.cpp:23
s32 getEnvObjMaxNum(s32 type) const
Definition aglEnvObjBuffer.h:124
sead::Buffer< EnvObj * > mEnvObjPtrBuffer
Definition aglEnvObjBuffer.h:146
void sort(s32 type)
Definition aglEnvObjBuffer.cpp:62
s32 getContainTotal() const
Definition aglEnvObjBuffer.h:58
s32 searchType(s32 buffer_index) const
Definition aglEnvObjBuffer.cpp:101
u32 _0
Definition aglEnvObjBuffer.h:143
s32 getEnvObjStartIndex(s32 type) const
Definition aglEnvObjBuffer.h:119
Definition aglEnvObj.h:17
Definition seadBuffer.h:13
Definition aglEnvObj.cpp:21
Definition aglDisplayList.cpp:5
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
Definition aglEnvObjBuffer.h:137
u16 mStartIndex
Definition aglEnvObjBuffer.h:138
u16 mMaxNum
Definition aglEnvObjBuffer.h:139