mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-16 21:38:07 -04:00
Implemented PAL language support.
This commit is contained in:
+27
-17
@@ -8,27 +8,37 @@
|
||||
#include <Text.h>
|
||||
|
||||
extern "C" MessageTableEntry* sNesMessageEntryTablePtr;
|
||||
extern "C" MessageTableEntry* sGerMessageEntryTablePtr;
|
||||
extern "C" MessageTableEntry* sFraMessageEntryTablePtr;
|
||||
extern "C" MessageTableEntry* sStaffMessageEntryTablePtr;
|
||||
//extern "C" MessageTableEntry* _message_0xFFFC_nes;
|
||||
//extern "C" MessageTableEntry* _message_0xFFFC_nes;
|
||||
|
||||
MessageTableEntry* OTRMessage_LoadTable(const char* filePath, bool isNES) {
|
||||
auto file = std::static_pointer_cast<Ship::Text>(OTRGlobals::Instance->context->GetResourceManager()->LoadResource(filePath));
|
||||
|
||||
if (file == nullptr)
|
||||
return nullptr;
|
||||
|
||||
MessageTableEntry* table = (MessageTableEntry*)malloc(sizeof(MessageTableEntry) * file->messages.size());
|
||||
|
||||
for (int i = 0; i < file->messages.size(); i++) {
|
||||
table[i].textId = file->messages[i].id;
|
||||
table[i].typePos = (file->messages[i].textboxType << 4) | file->messages[i].textboxYPos;
|
||||
table[i].segment = file->messages[i].msg.c_str();
|
||||
table[i].msgSize = file->messages[i].msg.size();
|
||||
|
||||
if (isNES && file->messages[i].id == 0xFFFC)
|
||||
_message_0xFFFC_nes = (char*)file->messages[i].msg.c_str();
|
||||
}
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
extern "C" void OTRMessage_Init()
|
||||
{
|
||||
auto file = std::static_pointer_cast<Ship::Text>(OTRGlobals::Instance->context->GetResourceManager()->LoadResource("text/nes_message_data_static/nes_message_data_static"));
|
||||
|
||||
sNesMessageEntryTablePtr = (MessageTableEntry*)malloc(sizeof(MessageTableEntry) * file->messages.size());
|
||||
|
||||
for (int i = 0; i < file->messages.size(); i++)
|
||||
{
|
||||
sNesMessageEntryTablePtr[i].textId = file->messages[i].id;
|
||||
sNesMessageEntryTablePtr[i].typePos = (file->messages[i].textboxType << 4) | file->messages[i].textboxYPos;
|
||||
sNesMessageEntryTablePtr[i].segment = file->messages[i].msg.c_str();
|
||||
sNesMessageEntryTablePtr[i].msgSize = file->messages[i].msg.size();
|
||||
|
||||
if (file->messages[i].id == 0xFFFC)
|
||||
{
|
||||
_message_0xFFFC_nes = (char*)file->messages[i].msg.c_str();
|
||||
}
|
||||
}
|
||||
sNesMessageEntryTablePtr = OTRMessage_LoadTable("text/nes_message_data_static/nes_message_data_static", true);
|
||||
sGerMessageEntryTablePtr = OTRMessage_LoadTable("text/ger_message_data_static/ger_message_data_static", false);
|
||||
sFraMessageEntryTablePtr = OTRMessage_LoadTable("text/fra_message_data_static/fra_message_data_static", false);
|
||||
|
||||
auto file2 = std::static_pointer_cast<Ship::Text>(OTRGlobals::Instance->context->GetResourceManager()->LoadResource("text/staff_message_data_static/staff_message_data_static"));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user