Files
dusklight/include/JSystem/JUtility/JUTNameTab.h
T

47 lines
952 B
C++

#ifndef JUTNAMETAB_H
#define JUTNAMETAB_H
#include <dolphin/types.h>
#include "dusk/endian.h"
/**
* @ingroup jsystem-jutility
*
*/
struct ResNTAB {
BE(u16) mEntryNum;
BE(u16) mPad0;
struct Entry {
BE(u16) mKeyCode;
BE(u16) mOffs;
} mEntries[1];
inline const char* getName(u32 index) const {
return ((const char*)mEntries) + mEntries[index].mOffs - 4;
}
};
/**
* @ingroup jsystem-jutility
*
*/
class JUTNameTab {
public:
JUTNameTab();
JUTNameTab(const ResNTAB* pNameTable);
virtual ~JUTNameTab() {};
void setResource(const ResNTAB* pNameTable);
s32 getIndex(char const*) const;
const char* getName(u16 index) const;
u16 calcKeyCode(char const* pName) const;
const ResNTAB* getResNameTable() const { return mNameTable; }
private:
/* 0x4 */ const ResNTAB* mNameTable;
/* 0x8 */ const char* mpStrData;
/* 0xC */ u16 mNameNum;
};
#endif /* JUTNAMETAB_H */