// // Generated By: dol2asm // Translation Unit: JUTNameTab // #include "JSystem/JUtility/JUTNameTab.h" #include "dol2asm.h" #include "dolphin/types.h" #include "msl_c/string.h" JUTNameTab::JUTNameTab() { setResource(NULL); } JUTNameTab::JUTNameTab(const ResNTAB* pNameTable) { setResource(pNameTable); } void JUTNameTab::setResource(const ResNTAB* pNameTable) { mpNameTable = pNameTable; if (pNameTable != NULL) { mNameNum = pNameTable->mEntryNum; mpStrData = (const char*)(pNameTable->mEntries + mNameNum); } else { mNameNum = 0; mpStrData = 0; } } s32 JUTNameTab::getIndex(const char* pName) const { const ResNTAB::Entry* pEntry = mpNameTable->mEntries; u16 keyCode = calcKeyCode(pName); for (u16 i = 0; i < mNameNum; pEntry++, i++) if (pEntry->mKeyCode == keyCode && strcmp((mpNameTable->mEntries[i].mOffs + ((const char*)mpNameTable)), pName) == 0) return i; return -1; } const char* JUTNameTab::getName(u16 index) const { if (index < mNameNum) return mpNameTable->getName(index); return NULL; } u16 JUTNameTab::calcKeyCode(const char* pName) const { u32 keyCode = 0; while (*pName) keyCode = (keyCode * 3) + *pName++; return keyCode; }