mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-31 08:51:29 -04:00
4df8ccc871
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}
* Update configure.py and project.py for new libs structure
* Refactor `#include <dolphin/x.h>` -> `<x.h>`
* Remove `__REVOLUTION_SDK__` forwards from dolphin
* Fix dolphin/ references in revolution
* Wrap `#include <dolphin.h>` in `!__REVOLUTION_SDK__`
* Always build TRK against dolphin headers
* Resolve revolution SDK header resolution issues
58 lines
1.4 KiB
C++
58 lines
1.4 KiB
C++
#include "JSystem/JSystem.h" // IWYU pragma: keep
|
|
|
|
#include "JSystem/JUtility/JUTNameTab.h"
|
|
#include <cstring>
|
|
|
|
JUTNameTab::JUTNameTab() {
|
|
setResource(NULL);
|
|
}
|
|
|
|
JUTNameTab::JUTNameTab(const ResNTAB* pNameTable) {
|
|
setResource(pNameTable);
|
|
}
|
|
|
|
void JUTNameTab::setResource(const ResNTAB* pNameTable) {
|
|
mNameTable = 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 {
|
|
JUT_ASSERT(101, mNameTable != NULL);
|
|
|
|
const ResNTAB::Entry* pEntry = mNameTable->mEntries;
|
|
u16 keyCode = calcKeyCode(pName);
|
|
|
|
for (u16 i = 0; i < mNameNum; i++) {
|
|
if (
|
|
pEntry->mKeyCode == keyCode &&
|
|
strcmp((mNameTable->mEntries[i].mOffs + ((const char*)mNameTable)), pName) == 0
|
|
) {
|
|
return i;
|
|
}
|
|
pEntry++;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
const char* JUTNameTab::getName(u16 index) const {
|
|
JUT_ASSERT(138, mNameTable != NULL);
|
|
if (index < mNameNum)
|
|
return ((const char*)mNameTable) + mNameTable->mEntries[index].mOffs;
|
|
return NULL;
|
|
}
|
|
|
|
u16 JUTNameTab::calcKeyCode(const char* pName) const {
|
|
u32 keyCode = 0;
|
|
while (*pName)
|
|
keyCode = (keyCode * 3) + *pName++;
|
|
return keyCode;
|
|
}
|