CText
This commit is contained in:
@@ -28,14 +28,14 @@ public:
|
||||
|
||||
CKeyArray(void) : entries(nil), numEntries(0) {}
|
||||
~CKeyArray(void) { Unload(); }
|
||||
void Load(uint32 length, uint8 *data, int *offset);
|
||||
void Load(uint32 length, int file, uint32 *offset);
|
||||
void Unload(void);
|
||||
void Update(wchar *chars);
|
||||
CKeyEntry *BinarySearch(const char *key, CKeyEntry *entries, int16 low, int16 high);
|
||||
#ifdef FIX_BUGS
|
||||
wchar *Search(const char *key, wchar *data);
|
||||
wchar *Search(const char *key, wchar *data, uint8 *result);
|
||||
#else
|
||||
wchar *Search(const char *key);
|
||||
wchar *Search(const char *key, uint8* result);
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -47,15 +47,45 @@ public:
|
||||
|
||||
CData(void) : chars(nil), numChars(0) {}
|
||||
~CData(void) { Unload(); }
|
||||
void Load(uint32 length, uint8 *data, int *offset);
|
||||
void Load(uint32 length, int file, uint32 *offset);
|
||||
void Unload(void);
|
||||
};
|
||||
|
||||
class CMissionTextOffsets
|
||||
{
|
||||
public:
|
||||
struct Entry
|
||||
{
|
||||
char szMissionName[8];
|
||||
uint32 offset;
|
||||
};
|
||||
|
||||
enum {MAX_MISSION_TEXTS = 90}; // beware that LCS has more
|
||||
|
||||
Entry data[MAX_MISSION_TEXTS];
|
||||
uint16 size;
|
||||
|
||||
CMissionTextOffsets(void) : size(0) {}
|
||||
void Load(uint32 table_size, int file, uint32* bytes_read, int);
|
||||
};
|
||||
|
||||
struct ChunkHeader
|
||||
{
|
||||
char magic[4];
|
||||
int size;
|
||||
};
|
||||
|
||||
class CText
|
||||
{
|
||||
CKeyArray keyArray;
|
||||
CData data;
|
||||
CKeyArray mission_keyArray;
|
||||
CData mission_data;
|
||||
char encoding;
|
||||
bool bHasMissionTextOffsets;
|
||||
bool bIsMissionTextLoaded;
|
||||
char szMissionTableName[8];
|
||||
CMissionTextOffsets MissionTextOffsets;
|
||||
public:
|
||||
CText(void);
|
||||
void Load(void);
|
||||
@@ -63,6 +93,9 @@ public:
|
||||
wchar *Get(const char *key);
|
||||
wchar GetUpperCase(wchar c);
|
||||
void UpperCase(wchar *s);
|
||||
void GetNameOfLoadedMissionText(char *outName);
|
||||
void ReadChunkHeader(ChunkHeader *buf, int32 file, uint32 *bytes_read);
|
||||
void LoadMissionText(char *MissionTableName);
|
||||
};
|
||||
|
||||
extern CText TheText;
|
||||
|
||||
Reference in New Issue
Block a user