Skip to content

Commit

Permalink
patterns: Added Minecraft LCE LOC file pattern (#311)
Browse files Browse the repository at this point in the history
* create LOC hexpat

* loc to list
  • Loading branch information
DexrnZacAttack authored Nov 17, 2024
1 parent 1d680fb commit c8d9a8d
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
| ISO | | [`patterns/iso.hexpat`](patterns/iso.hexpat) | ISO 9660 file system |
| Java Class | `application/x-java-applet` | [`patterns/java_class.hexpat`](patterns/java_class.hexpat) | Java Class files |
| JPEG | `image/jpeg` | [`patterns/jpeg.hexpat`](patterns/jpeg.hexpat) | JPEG Image Format |
| LOC | | [`patterns/loc.hexpat`](patterns/loc.hexpat) | Minecraft Legacy Console Edition Language file |
| Lua 5.1 | | [`patterns/lua51.hexpat`](patterns/lua51.hexpat) | Lua 5.1 bytecode |
| Lua 5.2 | | [`patterns/lua52.hexpat`](patterns/lua52.hexpat) | Lua 5.2 bytecode |
| Lua 5.3 | | [`patterns/lua53.hexpat`](patterns/lua53.hexpat) | Lua 5.3 bytecode |
Expand Down
46 changes: 46 additions & 0 deletions patterns/loc.hexpat
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#pragma author DexrnZacAttack
#pragma description Minecraft LCE LOC file

#pragma endian big
#pragma array_limit 739845729834
#pragma pattern_limit 34893726894

import std.string;

struct Keys {
bool useUniqueIDs;
u32 count;
u32 key[count];
};

struct LangIds {
u16 len;
char id[len];
u32 unk;
} [[name(id)]];

struct LocString {
u16 keySize;
char key[keySize];
} [[name(std::string::to_string(key))]];

struct Language {
u32 read;
if (read > 0)
u8 unk;
u16 len;
char id[len];
u32 count;
LocString strings[count];
} [[name(id)]];

struct Loc {
u32 version;
u32 count;
if (version == 2)
Keys keys;
LangIds ids[count];
Language language[count];
};

Loc loc @ 0x00;

0 comments on commit c8d9a8d

Please sign in to comment.