NW4F G3d
Loading...
Searching...
No Matches
g3d_ResDictionary.h
Go to the documentation of this file.
1#ifndef NW_G3D_RES_RESDICTIONARY_H_
2#define NW_G3D_RES_RESDICTIONARY_H_
3
4#include <nw/g3d/g3d_config.h>
5#include <nw/g3d/res/g3d_ResCommon.h>
6
7namespace nw { namespace g3d { namespace res {
8
23
25{
27
28public:
29 using ResDicPatriciaData::Node;
30
31 int GetDataCount() const
32 {
33 return ref().numData;
34 }
35
36 void* Get(int idx) const
37 {
38 NW_G3D_ASSERT_INDEX_BOUNDS(idx, ref().numData);
39 return const_cast<void*>(ref().node[idx + 1].ofsData.to_ptr());
40 }
41
42 void* Find(const char* str) const;
43 void* Find(const char* str, size_t len) const;
44 void* Find(const ResName* name) const;
45
46 int FindIndex(const char* str) const;
47 int FindIndex(const char* str, size_t len) const;
48 int FindIndex(const ResName* name) const;
49
50 Node* FindNode(const char* str, size_t len) const;
51 Node* FindNode(const ResName* name) const;
52
53 const ResName* GetResName(u32 idx) const
54 {
55 NW_G3D_ASSERT_INDEX_BOUNDS(idx, ref().numData);
56 return ref().node[idx + 1].ofsName.GetResName();
57 }
58
59 const char* GetName(int idx) const
60 {
61 NW_G3D_ASSERT_INDEX_BOUNDS(idx, ref().numData);
62 return ref().node[idx + 1].ofsName.to_ptr();
63 }
64
71
73};
74
76
77} } } // namespace nw::g3d::res
78
79#endif // NW_G3D_RES_RESDICTIONARY_H_
Definition g3d_ResCommon.h:93
Definition g3d_ResCommon.h:62
Definition g3d_ResDictionary.h:25
const ResName * GetResName(u32 idx) const
Definition g3d_ResDictionary.h:53
void * Find(const char *str) const
Definition g3d_ResDictionary.cpp:23
int FindIndex(const ResName *name) const
Definition g3d_ResDictionary.cpp:68
void * Find(const char *str, size_t len) const
void * Get(int idx) const
Definition g3d_ResDictionary.h:36
Node * FindNode(const char *str, size_t len) const
Definition g3d_ResDictionary.cpp:83
void * Find(const ResName *name) const
Definition g3d_ResDictionary.cpp:38
int GetDataCount() const
Definition g3d_ResDictionary.h:31
int FindIndex(const char *str) const
Definition g3d_ResDictionary.cpp:53
const char * GetName(int idx) const
Definition g3d_ResDictionary.h:59
int FindIndex(const char *str, size_t len) const
Node * FindNode(const ResName *name) const
Definition g3d_ResDictionary.cpp:105
BuildResult
Definition g3d_ResDictionary.h:66
@ ERR_NAME_DUPLICATION
Definition g3d_ResDictionary.h:69
@ SUCCESS
Definition g3d_ResDictionary.h:67
Definition g3d_ResCommon.h:40
#define NW_G3D_RES_COMMON(class_name)
Definition g3d_ResCommon.h:30
#define NW_G3D_ASSERT_INDEX_BOUNDS(index, size)
Definition g3d_assert.h:23
Definition g3d_defs.h:122
ResDicPatricia ResDicType
Definition g3d_ResDictionary.h:75
Definition g3d_GfxManage.cpp:10
Definition g3d_ResDictionary.h:15
u16 idxLeft
Definition g3d_ResDictionary.h:17
BinString ofsName
Definition g3d_ResDictionary.h:19
u32 refBit
Definition g3d_ResDictionary.h:16
u16 idxRight
Definition g3d_ResDictionary.h:18
Offset ofsData
Definition g3d_ResDictionary.h:20
Definition g3d_ResDictionary.h:10
u32 size
Definition g3d_ResDictionary.h:11
s32 numData
Definition g3d_ResDictionary.h:12