3namespace Kinoko::Abstract::g3d {
5ResDic::ResDic(
const void *data) : m_data(reinterpret_cast<const Data *>(data)) {}
8const ResDic::NodeData *ResDic::get(
const char *pName, u32 len)
const {
9 const NodeData *c = &m_data->data[0];
10 const NodeData *x = &m_data->data[parse<u16>(c->idxLeft)];
12 while (parse<u16>(c->ref) > parse<u16>(x->ref)) {
15 u32 wd = parse<u16>(x->ref) >> 3;
16 u32 pos = parse<u16>(x->ref) & 7;
18 if (wd < len && (pName[wd] >> pos) & 1) {
19 x = &m_data->data[parse<u16>(x->idxRight)];
21 x = &m_data->data[parse<u16>(x->idxLeft)];
25 s32 stringOffset = parse<s32>(x->ofsString);
27 if (stringOffset != 0) {
29 reinterpret_cast<const char *
>(
reinterpret_cast<uintptr_t
>(m_data) + stringOffset);
31 if (std::strcmp(pName, xName) == 0) {