Files
P2EP_Export/_Utils/Dungeon/ContTRNSL.hexpat
2026-03-23 16:26:40 +05:00

30 lines
1.1 KiB
Plaintext

struct Header {
u16 scriptPointersTableOffset;
u16 scriptStartOffset;
u16 textPointersTableOffset;
u16 textStartOffset;
};
Header header @ 0x00;
// Важно: вычитание двух u16 может дать underflow → результат интерпретируется как большое положительное число
// Поэтому лучше сразу привести к u32, чтобы избежать проблем
u32 scriptCount = (u32(header.scriptStartOffset) - u32(header.scriptPointersTableOffset)) / 2;
u32 textCount = (u32(header.textStartOffset) - u32(header.textPointersTableOffset)) / 2;
struct ScriptEntry {
u16 relativeOffset;
// Явно приводим к u32 перед сложением — на всякий случай
u16 firstWord @ (u32(header.scriptStartOffset) + this.relativeOffset);
};
ScriptEntry scripts[scriptCount] @ header.scriptPointersTableOffset;
struct TextEntry {
u16 relativeOffset;
u16 firstWord @ (u32(header.textStartOffset) + this.relativeOffset);
};
TextEntry texts[textCount] @ header.textPointersTableOffset;