Files
Yanis 107fc0c144 Various improvements (#61)
* various improvements

* other improvements
2024-10-14 15:22:28 +02:00

87 lines
2.6 KiB
C

#ifndef _STRINGTABLE_H
#define _STRINGTABLE_H
#include "revolution/types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define ENCODING_NAME_LENGTH 18
typedef enum StringTableID {
TID_NONE = 0,
TID_ERRORS = 0x2842C987,
TID_COMMENTS = 0x3D2C2A7C
} StringTableID;
typedef enum StringID {
SID_NONE = 0,
SID_ERROR_BLANK = 0xA4E943CC,
SID_ERROR_CHOICE_OK = 0xF6C5198F,
SID_ERROR_CHOICE_PRESS_A_TO_RETURN_TO_MENU = 0xBB628DD1,
SID_ERROR_DATA_CORRUPT = 0x14A5B6E2,
SID_ERROR_DVD_STATE_FATAL_ERROR = 0xEBB077F2,
SID_ERROR_DVD_STATE_NO_DISK = 0x3A1F93A8,
SID_ERROR_DVD_STATE_RETRY = 0x25D38BC6,
SID_ERROR_DVD_STATE_WRONG_DISK = 0x7527596C,
SID_ERROR_FATAL = 0x27A3CCC2,
SID_ERROR_GAMECUBE_CONTROLLER_CONNECTED = 0xD6E8882D,
SID_ERROR_INS_INNODE = 0xE136B8C3,
SID_ERROR_INS_SPACE = 0xFBB27B1C,
SID_ERROR_INS_SPACE_PLURAL = 0x92FBDC3E,
SID_ERROR_MAX_BLOCKS = 0xC0192EA3,
SID_ERROR_MAX_FILES = 0x5D3A795B,
SID_ERROR_NEED_CLASSIC = 0x2F8DCDD7,
SID_ERROR_NO_CONTROLLER = 0x1786067E,
SID_ERROR_NWC24_CORRUPTED_FILE = 0x19C2F27E,
SID_ERROR_NWC24_ERROR_BUFFER = 0xB958D7EE,
SID_ERROR_NWC24_FATAL_ERROR = 0xECC5F9D8,
SID_ERROR_NWC24_SYSTEM_MENU_UPDATE_REQUIRED = 0x0522BEC0,
SID_ERROR_NWC24_UNAVAILABLE = 0xE1347C92,
SID_ERROR_REMOTE_BATTERY = 0x80E449BF,
SID_ERROR_REMOTE_COMMUNICATION = 0xB35ABA8B,
SID_ERROR_SYS_CORRUPT = 0x57D16861,
SID_ERROR_TIME_UP_OF_THE_TRIAL_VER = 0xA2B7EF38,
SID_COMMENT_GAME_NAME = 0x30690AFB,
SID_COMMENT_EMPTY = 0x30690AFD,
SID_ERROR_PHOTO_ALREADY_POSTED = 0x4016043D,
SID_ERROR_PHOTO_CANT_POST = 0xB93DC9EA,
SID_ERROR_PHOTO_POSTED = 0x24B1085E,
SID_ERROR_SYS_CORRUPT_REDOWNLOAD = 0x3D24B5C1,
SID_ERROR_SYS_MEM_CANT_ACCESS = 0xE46954BD,
SID_ERROR_SYS_MEM_CANT_ACCESS_2 = 0xEE30A5E0,
} StringID;
typedef struct STEntry {
/* 0x00 */ u32 nStringID;
/* 0x04 */ s32 nTextOffset1;
/* 0x08 */ s32 nTextOffset2; // same as `nTextOffset1`
/* 0x0C */ s16 nTextSize1;
/* 0x0E */ s16 nTextSize2; // same as `nTextSize1`
} STEntry; // size = 0x10
typedef struct STHeader {
/* 0x00 */ s32 magic;
/* 0x04 */ StringTableID eTableID;
/* 0x08 */ u16 nEntries;
/* 0x0A */ char szEncoding[ENCODING_NAME_LENGTH];
/* 0x1C */ char unk1C[2];
/* 0x1E */ u8 nSizeEntry;
/* 0x20 */ u8* entries;
} STHeader; // size = 0x24
typedef struct StringTable {
/* 0x00 */ STHeader header;
/* 0x24 */ char* szStrings;
} StringTable; // size = 0x28
STEntry* tableGetEntry(StringTable* pStringTable, StringID eStringID);
char* tableGetString(void* pSTBuffer, StringID eStringID);
#ifdef __cplusplus
}
#endif
#endif