port 2D step 2: 40250 item_proto/mob_proto through CLZO and pack://locale/<lang>/

proto.cpp reads the 40250 MIPX/MMPT tables with the ported CLZO/TEA (156-byte
TItemTable, 255-byte SMobTable), replacing the m2dev XChaCha20 236/335 reader.
Names follow CItemData::GetName / GetMonsterName (szLocaleName, cp1252).
GDScript callers load AssetRoot.locale_file() = pack://locale/en/<name>, which
makes the EterPack chain runtime-reachable; port-map entries for the functions
a coverage run hit move to PORTED/ADAPTED.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-23 01:34:08 +09:00
co-authored by Claude Opus 5
parent 5a26e93f07
commit 232d0461be
28 changed files with 1367 additions and 332 deletions
+1
View File
@@ -490,3 +490,4 @@
{"time":"2026-09-22T16:00:00Z","event":"pack_inventory","scope":"Client/pack (batch 2R)","tool":"tools/epk_scan/epk_scan.py","report":"audit/packs/2R-scan.json","totals":{"registered_packs":136,"entries":54891,"unique_paths":52609,"NONE":20727,"COMPRESS":29812,"SECURITY":4352,"PANAMA":0,"HYBRIDCRYPT":0,"decode_failures":0,"overrides":2282,"overrides_different":2194,"case_collisions":0},"findings":["first-registered pack wins (CEterFileDict multimap, VS2022 STL)","short-layout packer in metin2_patch_{sd,mineral,mundi}: 4 SECURITY files rejected by 40250 CRC check","no server-delivered pack keys needed"]}
{"time":"2026-09-23T10:00:00Z","event":"port_round","unit":"EterPack/*, EterBase/{tea,lzo,Timer,Stl,Random}.cpp + platform EterBase/{CRC32,FileBase,MappedFile,Debug,Utils}","ported":["EterPack/EterPack.cpp","EterPack/EterPackManager.cpp","EterPack/EterPackCursor.cpp","EterPack/EterPackPolicy_CSHybridCrypt.cpp","EterBase/tea.cpp","EterBase/lzo.cpp","EterBase/Timer.cpp","EterBase/Stl.cpp","EterBase/Random.cpp"],"status_note":"mirror copies + platform FileBase/MappedFile/CRC32/Debug/Utils; not runtime-reachable until the asset_io pack backend (PORT-PLAN §5 step 5), so port-map statuses stay TODO","divergent":[],"needs_live":[],"corrections":["2R registered_packs 136 was wrong: 124 Index pairs -> 119 RegisterPack successes, 103 distinct packs + root (PORT-PLAN, memory)"],"findings":["libc++ unordered_multimap also keeps first-registered-wins: 0 wrong winners over 2282 overrides","exactly the 4 short-layout SECURITY files fail CEterPackManager::Get","pack/Index spells Etc for ETC.eix: CEterPack::CreateIndexFile fopens directly, so the bootstrap must resolve the on-disk dbname"],"keys":"EterPack TEA keys generated at configure time into the build tree (EterPackKeys.generated.h), never committed","tests":["extension/tests/port_eterpack_test.cpp PASS (macOS, 52605 files / 2023459178 bytes)","script/port_gate.sh macos/android/ios/windows PASS"]}
{"time":"2026-09-23T12:00:00Z","event":"port_round","unit":"platform UserInterface PackInitialize + EterBase/FileLoader.cpp + pack:// asset_io backend (PORT-PLAN §5 step 5b)","ported":["EterBase/FileLoader.cpp"],"deleted":[],"divergent":[],"needs_live":[],"status_note":"PackInitialize (platform, on-disk dbname resolution, no LogBoxf) + mtpack40250 backend + Metin2Pack node; no runtime reader uses pack:// until the proto/GDScript switch, so port-map statuses stay TODO","tests":["extension/tests/port_eterpack_test.cpp via PackSingletons+PackInitialize(\"pack\"): 103 packs, oracle order, PASS"],"commit":"5b"}
{"time":"2026-09-23T12:30:00Z","event":"port_round","unit":"proto reader -> 40250 item_proto/mob_proto via CLZO + pack://locale/<lang>/ (PORT-PLAN §5 step 2 + step 5 runtime switch)","ported":["EterPack/EterPack.cpp (16 fns)","EterPack/EterPackManager.cpp (14)","EterPack/EterPackPolicy_CSHybridCrypt.cpp (1)","EterBase/lzo.cpp (11)","EterBase/tea.cpp (2)","EterBase/Stl.cpp (2)"],"adapted":["UserInterface/UserInterface.cpp PackInitialize","EterBase/FileLoader.cpp (5)","EterBase/MappedFile.cpp (9)","EterBase/FileBase.cpp (5)","EterBase/CRC32.cpp GetCRC32"],"deleted":["extension/src/proto/proto.cpp m2dev reader: XChaCha20 + MCOZ, 236-byte item / 335-byte mob strides"],"divergent":[],"needs_live":[],"status_note":"statuses set only for the functions a clang coverage run of proto_test + port_eterpack_test hit; the rest stay TODO. SMobTable is a local #pragma pack(1) mirror in proto.cpp (static_assert 255) until batch 2P ports GameLib/PythonNonPlayer. name = cp1252(szLocaleName) as CItemData::GetName / CPythonNonPlayer::GetMonsterName","tests":["extension/tests/proto_test.cpp: 5743 items / 1334 mobs from pack://locale/en PASS","extension/tests/proto_item_layout_test.cpp 156/255 strides, 236/335 rejected PASS","godot netbridge/equip_model/remote_player/mob_view PASS"],"commit":"2D-proto"}
+28
View File
@@ -0,0 +1,28 @@
{
"reference": "EterBase/CRC32.cpp",
"reference_sha256": "80bbbc71a273097830279d96c7d7ac28df6d043675711eb1b6f28a9801a83016",
"priority": "P4",
"contracts": [],
"functions": {
"GetCRC32": {
"impl": [
"extension/src/platform/EterBase/CRC32.cpp:GetCRC32"
],
"status": "ADAPTED",
"note": "platform CRC32 table implementation; same polynomial and GetCRC32 values (checked against every stored filename_crc)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"GetCaseCRC32": {
"status": "TODO"
},
"GetHFILECRC32": {
"status": "TODO"
},
"GetFileCRC32": {
"status": "TODO"
},
"GetFileSize": {
"status": "TODO"
}
}
}
+72
View File
@@ -0,0 +1,72 @@
{
"reference": "EterBase/FileBase.cpp",
"reference_sha256": "262fcad3ae6ec2ee5c988c1beea0cfa2cc2adffc5e544fe36885bef1dc6dc71d",
"priority": "P4",
"contracts": [],
"functions": {
"CFileBase::CFileBase": {
"impl": [
"extension/src/platform/EterBase/FileBase.cpp:CFileBase::CFileBase"
],
"status": "ADAPTED",
"note": "platform CFileBase over std::fstream; open falls back to a case-insensitive path match (NTFS spelling)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CFileBase::~CFileBase": {
"impl": [
"extension/src/platform/EterBase/FileBase.cpp:CFileBase::~CFileBase"
],
"status": "ADAPTED",
"note": "platform CFileBase over std::fstream; open falls back to a case-insensitive path match (NTFS spelling)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CFileBase::GetFileName": {
"status": "TODO"
},
"CFileBase::Destroy": {
"impl": [
"extension/src/platform/EterBase/FileBase.cpp:CFileBase::Destroy"
],
"status": "ADAPTED",
"note": "platform CFileBase over std::fstream; open falls back to a case-insensitive path match (NTFS spelling)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CFileBase::Close": {
"impl": [
"extension/src/platform/EterBase/FileBase.cpp:CFileBase::Close"
],
"status": "ADAPTED",
"note": "platform CFileBase over std::fstream; open falls back to a case-insensitive path match (NTFS spelling)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CFileBase::Create": {
"impl": [
"extension/src/platform/EterBase/FileBase.cpp:CFileBase::Create"
],
"status": "ADAPTED",
"note": "platform CFileBase over std::fstream; open falls back to a case-insensitive path match (NTFS spelling)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CFileBase::Size": {
"status": "TODO"
},
"CFileBase::SeekCur": {
"status": "TODO"
},
"CFileBase::Seek": {
"status": "TODO"
},
"CFileBase::GetPosition": {
"status": "TODO"
},
"CFileBase::Write": {
"status": "TODO"
},
"CFileBase::Read": {
"status": "TODO"
},
"CFileBase::IsNull": {
"status": "TODO"
}
}
}
+102
View File
@@ -0,0 +1,102 @@
{
"reference": "EterBase/FileLoader.cpp",
"reference_sha256": "aaf832b188b7fff6350c7e3a41147fa4abfa2873ce160022c433dcac848c6875",
"priority": "P4",
"contracts": [],
"functions": {
"CMemoryTextFileLoader::CMemoryTextFileLoader": {
"impl": [
"extension/src/platform/EterBase/FileLoader.cpp:CMemoryTextFileLoader::CMemoryTextFileLoader"
],
"status": "ADAPTED",
"note": "40250 file verbatim, one change: the high-bit test casts to signed char (char is unsigned on arm64)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMemoryTextFileLoader::~CMemoryTextFileLoader": {
"impl": [
"extension/src/platform/EterBase/FileLoader.cpp:CMemoryTextFileLoader::~CMemoryTextFileLoader"
],
"status": "ADAPTED",
"note": "40250 file verbatim, one change: the high-bit test casts to signed char (char is unsigned on arm64)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMemoryTextFileLoader::SplitLineByTab": {
"status": "TODO"
},
"CMemoryTextFileLoader::SplitLine2": {
"status": "TODO"
},
"CMemoryTextFileLoader::SplitLine": {
"status": "TODO"
},
"CMemoryTextFileLoader::GetLineCount": {
"impl": [
"extension/src/platform/EterBase/FileLoader.cpp:CMemoryTextFileLoader::GetLineCount"
],
"status": "ADAPTED",
"note": "40250 file verbatim, one change: the high-bit test casts to signed char (char is unsigned on arm64)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMemoryTextFileLoader::CheckLineIndex": {
"status": "TODO"
},
"CMemoryTextFileLoader::GetLineString": {
"impl": [
"extension/src/platform/EterBase/FileLoader.cpp:CMemoryTextFileLoader::GetLineString"
],
"status": "ADAPTED",
"note": "40250 file verbatim, one change: the high-bit test casts to signed char (char is unsigned on arm64)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMemoryTextFileLoader::Bind": {
"impl": [
"extension/src/platform/EterBase/FileLoader.cpp:CMemoryTextFileLoader::Bind"
],
"status": "ADAPTED",
"note": "40250 file verbatim, one change: the high-bit test casts to signed char (char is unsigned on arm64)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMemoryFileLoader::GetSize": {
"status": "TODO"
},
"CMemoryFileLoader::GetPosition": {
"status": "TODO"
},
"CMemoryFileLoader::IsReadableSize": {
"status": "TODO"
},
"CMemoryFileLoader::Read": {
"status": "TODO"
},
"CMemoryFileLoader::GetCurrentPositionPointer": {
"status": "TODO"
},
"CMemoryFileLoader::CMemoryFileLoader": {
"status": "TODO"
},
"CMemoryFileLoader::~CMemoryFileLoader": {
"status": "TODO"
},
"CDiskFileLoader::GetSize": {
"status": "TODO"
},
"CDiskFileLoader::Read": {
"status": "TODO"
},
"CDiskFileLoader::Open": {
"status": "TODO"
},
"CDiskFileLoader::Close": {
"status": "TODO"
},
"CDiskFileLoader::Initialize": {
"status": "TODO"
},
"CDiskFileLoader::CDiskFileLoader": {
"status": "TODO"
},
"CDiskFileLoader::~CDiskFileLoader": {
"status": "TODO"
}
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"reference": "EterBase/MappedFile.cpp",
"reference_sha256": "82d65b1bb2bdc91038be929e079212af33cf963e5d4722d10256bd1df4341ee9",
"priority": "P4",
"contracts": [],
"functions": {
"CMappedFile::CMappedFile": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::CMappedFile"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::~CMappedFile": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::~CMappedFile"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::Create": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::Create"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::Get": {
"status": "TODO"
},
"CMappedFile::Link": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::Link"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::BindLZObject": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::BindLZObject"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::BindLZObjectWithBufferedSize": {
"status": "TODO"
},
"CMappedFile::AppendDataBlock": {
"status": "TODO"
},
"CMappedFile::Destroy": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::Destroy"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::Seek": {
"status": "TODO"
},
"CMappedFile::Map": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::Map"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::GetCurrentSeekPoint": {
"status": "TODO"
},
"CMappedFile::Size": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::Size"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"CMappedFile::GetPosition": {
"status": "TODO"
},
"CMappedFile::Read": {
"status": "TODO"
},
"CMappedFile::GetSeekPosition": {
"status": "TODO"
},
"CMappedFile::Unmap": {
"impl": [
"extension/src/platform/EterBase/MappedFile.cpp:CMappedFile::Unmap"
],
"status": "ADAPTED",
"note": "platform CMappedFile: std::ifstream read into an owned buffer instead of CreateFileMapping/MapViewOfFile; same Create/Map/Link/BindLZObject contract",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
}
}
}
+26
View File
@@ -0,0 +1,26 @@
{
"reference": "EterBase/Stl.cpp",
"reference_sha256": "239c44c77e8dba08e91f8838447ad2f15ab19ac6328650d13da37b9600a249cd",
"priority": "P4",
"contracts": [],
"functions": {
"korean_tolower": {
"impl": [
"extension/src/port/EterBase/Stl.cpp:korean_tolower"
],
"status": "PORTED"
},
"stl_static_string": {
"status": "TODO"
},
"stl_lowers": {
"impl": [
"extension/src/port/EterBase/Stl.cpp:stl_lowers"
],
"status": "PORTED"
},
"split_string": {
"status": "TODO"
}
}
}
+98
View File
@@ -0,0 +1,98 @@
{
"reference": "EterBase/lzo.cpp",
"reference_sha256": "7a236172e9900733e119944ffabf6762a999d4346fde9241e3027836d72c1354",
"priority": "P4",
"contracts": [],
"functions": {
"CLZObject::CLZObject": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::CLZObject"
],
"status": "PORTED"
},
"CLZObject::Initialize": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::Initialize"
],
"status": "PORTED"
},
"CLZObject::Clear": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::Clear"
],
"status": "PORTED"
},
"CLZObject::~CLZObject": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::~CLZObject"
],
"status": "PORTED"
},
"CLZObject::GetSize": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::GetSize"
],
"status": "PORTED"
},
"CLZObject::BeginCompress": {
"status": "TODO"
},
"CLZObject::BeginCompressInBuffer": {
"status": "TODO"
},
"CLZObject::Compress": {
"status": "TODO"
},
"CLZObject::BeginDecompress": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::BeginDecompress"
],
"status": "PORTED"
},
"CLZObject::Decompress": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::Decompress"
],
"status": "PORTED"
},
"CLZObject::Encrypt": {
"status": "TODO"
},
"CLZObject::__Decrypt": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZObject::__Decrypt"
],
"status": "PORTED"
},
"CLZObject::AllocBuffer": {
"status": "TODO"
},
"CLZO::CLZO": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZO::CLZO"
],
"status": "PORTED"
},
"CLZO::~CLZO": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZO::~CLZO"
],
"status": "PORTED"
},
"CLZO::CompressMemory": {
"status": "TODO"
},
"CLZO::CompressEncryptedMemory": {
"status": "TODO"
},
"CLZO::Decompress": {
"impl": [
"extension/src/port/EterBase/lzo.cpp:CLZO::Decompress"
],
"status": "PORTED"
},
"CLZO::GetWorkMemory": {
"status": "TODO"
}
}
}
+26
View File
@@ -0,0 +1,26 @@
{
"reference": "EterBase/tea.cpp",
"reference_sha256": "aeeb57c96a9febd22d11e221462f5f6b18830370847f45e74eec5fb085988007",
"priority": "P4",
"contracts": [],
"functions": {
"tea_code": {
"status": "TODO"
},
"tea_decode": {
"impl": [
"extension/src/port/EterBase/tea.cpp:tea_decode"
],
"status": "PORTED"
},
"tea_encrypt": {
"status": "TODO"
},
"tea_decrypt": {
"impl": [
"extension/src/port/EterBase/tea.cpp:tea_decrypt"
],
"status": "PORTED"
}
}
}
+218
View File
@@ -0,0 +1,218 @@
{
"reference": "EterPack/EterPack.cpp",
"reference_sha256": "7a38554a275da2fe7d16ea4c60a3ab644dbd3ed7845d19c385819045e74e6787",
"priority": "P4",
"contracts": [],
"functions": {
"CMakePackLog::SetFileName": {
"status": "TODO"
},
"CMakePackLog::GetSingleton": {
"status": "TODO"
},
"CMakePackLog::CMakePackLog": {
"status": "TODO"
},
"CMakePackLog::~CMakePackLog": {
"status": "TODO"
},
"CMakePackLog::__IsLogMode": {
"status": "TODO"
},
"CMakePackLog::Writef": {
"status": "TODO"
},
"CMakePackLog::Writenf": {
"status": "TODO"
},
"CMakePackLog::Write": {
"status": "TODO"
},
"CMakePackLog::__Write": {
"status": "TODO"
},
"CMakePackLog::WriteErrorf": {
"status": "TODO"
},
"CMakePackLog::WriteErrornf": {
"status": "TODO"
},
"CMakePackLog::WriteError": {
"status": "TODO"
},
"CMakePackLog::__WriteError": {
"status": "TODO"
},
"CMakePackLog::FlushError": {
"status": "TODO"
},
"CEterPack::CEterPack": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::CEterPack"
],
"status": "PORTED"
},
"CEterPack::~CEterPack": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::~CEterPack"
],
"status": "PORTED"
},
"CEterPack::Destroy": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::Destroy"
],
"status": "PORTED"
},
"CEterPack::GetPathName": {
"status": "TODO"
},
"CEterPack::Create": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::Create"
],
"status": "PORTED"
},
"CEterPack::DecryptIV": {
"status": "TODO"
},
"CEterPack::DecryptIndexFile": {
"status": "TODO"
},
"CEterPack::EncryptIndexFile": {
"status": "TODO"
},
"CEterPack::__BuildIndex": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::__BuildIndex"
],
"status": "PORTED"
},
"CEterPack::Get": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::Get"
],
"status": "PORTED"
},
"CEterPack::Get2": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::Get2"
],
"status": "PORTED"
},
"CEterPack::Delete": {
"status": "TODO"
},
"CEterPack::Extract": {
"status": "TODO"
},
"CEterPack::GetNames": {
"status": "TODO"
},
"CEterPack::Put": {
"status": "TODO"
},
"CEterPack::GenerateMD5Hash": {
"status": "TODO"
},
"CEterPack::GetFragmentSize": {
"status": "TODO"
},
"CEterPack::CreateIndexFile": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::CreateIndexFile"
],
"status": "PORTED"
},
"CEterPack::WriteIndex": {
"status": "TODO"
},
"CEterPack::GetFreeBlockIndex": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::GetFreeBlockIndex"
],
"status": "PORTED"
},
"CEterPack::PushFreeIndex": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::PushFreeIndex"
],
"status": "PORTED"
},
"CEterPack::GetNewIndexPosition": {
"status": "TODO"
},
"CEterPack::NewIndex": {
"status": "TODO"
},
"CEterPack::FindIndex": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::FindIndex"
],
"status": "PORTED"
},
"CEterPack::IsExist": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::IsExist"
],
"status": "PORTED"
},
"CEterPack::CreateDataFile": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::CreateDataFile"
],
"status": "PORTED"
},
"CEterPack::GetNewDataPosition": {
"status": "TODO"
},
"CEterPack::ReadData": {
"status": "TODO"
},
"CEterPack::WriteData": {
"status": "TODO"
},
"CEterPack::WriteNewData": {
"status": "TODO"
},
"CEterPack::GetIndexMap": {
"status": "TODO"
},
"CEterPack::DeleteUnreferencedData": {
"status": "TODO"
},
"CEterPack::GetDBName": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterPack::GetDBName"
],
"status": "PORTED"
},
"CEterPack::__CreateFileNameKey_Panama": {
"status": "TODO"
},
"CEterPack::__Encrypt_Panama": {
"status": "TODO"
},
"CEterPack::__Decrypt_Panama": {
"status": "TODO"
},
"CEterPack::GetPackPolicy_HybridCrypt": {
"status": "TODO"
},
"CEterFileDict::InsertItem": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterFileDict::InsertItem"
],
"status": "PORTED"
},
"CEterFileDict::UpdateItem": {
"status": "TODO"
},
"CEterFileDict::GetItem": {
"impl": [
"extension/src/port/EterPack/EterPack.cpp:CEterFileDict::GetItem"
],
"status": "PORTED"
}
}
}
@@ -0,0 +1,128 @@
{
"reference": "EterPack/EterPackManager.cpp",
"reference_sha256": "335a4bf569f4cf0b2154f39ca35f1e294f1a514641e082290f1f1ce6c0a336a9",
"priority": "P4",
"contracts": [],
"functions": {
"CEterPackManager::FindPack": {
"status": "TODO"
},
"CEterPackManager::SetCacheMode": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::SetCacheMode"
],
"status": "PORTED"
},
"CEterPackManager::SetRelativePathMode": {
"status": "TODO"
},
"CEterPackManager::ConvertFileName": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::ConvertFileName"
],
"status": "PORTED"
},
"CEterPackManager::CompareName": {
"status": "TODO"
},
"CEterPackManager::LoadStaticCache": {
"status": "TODO"
},
"CEterPackManager::__FindCache": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::__FindCache"
],
"status": "PORTED"
},
"CEterPackManager::__ClearCacheMap": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::__ClearCacheMap"
],
"status": "PORTED"
},
"CEterPackManager::Get": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::Get"
],
"status": "PORTED"
},
"CEterPackManager::GetFromPack": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::GetFromPack"
],
"status": "PORTED"
},
"CEterPackManager::ArrangeMemoryMappedPack": {
"status": "TODO"
},
"CEterPackManager::GetFromFile": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::GetFromFile"
],
"status": "PORTED"
},
"CEterPackManager::isExistInPack": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::isExistInPack"
],
"status": "PORTED"
},
"CEterPackManager::isExist": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::isExist"
],
"status": "PORTED"
},
"CEterPackManager::RegisterRootPack": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::RegisterRootPack"
],
"status": "PORTED"
},
"CEterPackManager::GetRootPackFileName": {
"status": "TODO"
},
"CEterPackManager::DecryptPackIV": {
"status": "TODO"
},
"CEterPackManager::RegisterPackWhenPackMaking": {
"status": "TODO"
},
"CEterPackManager::RegisterPack": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::RegisterPack"
],
"status": "PORTED"
},
"CEterPackManager::SetSearchMode": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::SetSearchMode"
],
"status": "PORTED"
},
"CEterPackManager::GetSearchMode": {
"status": "TODO"
},
"CEterPackManager::CEterPackManager": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::CEterPackManager"
],
"status": "PORTED"
},
"CEterPackManager::~CEterPackManager": {
"impl": [
"extension/src/port/EterPack/EterPackManager.cpp:CEterPackManager::~CEterPackManager"
],
"status": "PORTED"
},
"CEterPackManager::RetrieveHybridCryptPackKeys": {
"status": "TODO"
},
"CEterPackManager::RetrieveHybridCryptPackSDB": {
"status": "TODO"
},
"CEterPackManager::WriteHybridCryptPackInfo": {
"status": "TODO"
}
}
}
@@ -0,0 +1,53 @@
{
"reference": "EterPack/EterPackPolicy_CSHybridCrypt.cpp",
"reference_sha256": "02db1037e746468b036a3ec2004a4ebffa568d5433fe6e94bc50729ed69e6e0b",
"priority": "P4",
"contracts": [],
"functions": {
"GetFileExt": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::~EterPackPolicy_CSHybridCrypt": {
"impl": [
"extension/src/port/EterPack/EterPackPolicy_CSHybridCrypt.cpp:EterPackPolicy_CSHybridCrypt::~EterPackPolicy_CSHybridCrypt"
],
"status": "PORTED"
},
"EterPackPolicy_CSHybridCrypt::IsContainingCryptKey": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::GenerateCryptKey": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::GetPerFileCryptKey": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::EncryptMemory": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::DecryptMemory": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::WriteCryptKeyToFile": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::ReadCryptKeyInfoFromStream": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::GenerateSupplementaryDataBlock": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::GetSupplementaryDataBlock": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::IsContainingSDBFile": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::WriteSupplementaryDataBlockToFile": {
"status": "TODO"
},
"EterPackPolicy_CSHybridCrypt::ReadSupplementatyDataBlockFromStream": {
"status": "TODO"
}
}
}
@@ -0,0 +1,73 @@
{
"reference": "UserInterface/UserInterface.cpp",
"reference_sha256": "beed987e4b1de627acafe7ea6f5fde989b8f4b33c8643fe2abb0f7152ea4a9eb",
"priority": "P4",
"contracts": [],
"functions": {
"ApplicationSetErrorString": {
"status": "TODO"
},
"CheckPythonLibraryFilenames": {
"status": "TODO"
},
"ApplicationStringTable_Initialize": {
"status": "TODO"
},
"ApplicationStringTable_GetString": {
"status": "TODO"
},
"ApplicationStringTable_GetStringz": {
"status": "TODO"
},
"PackInitialize": {
"impl": [
"extension/src/platform/UserInterface/UserInterface.cpp:PackInitialize"
],
"status": "ADAPTED",
"note": "platform PackInitialize: Index pack names resolved to the on-disk .eix spelling case-insensitively; no LogBoxf; CTextFileLoader::SetCacheMode / CSoundData::SetPackMode not called (units not ported, neither affects pack registration)",
"test": "extension/tests/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects); extension/tests/proto_test.cpp (40250 locale/en item_proto/mob_proto through pack://)"
},
"RunMainScript": {
"status": "TODO"
},
"Main": {
"status": "TODO"
},
"CreateMetin2GameMutex": {
"status": "TODO"
},
"DestroyMetin2GameMutex": {
"status": "TODO"
},
"__ErrorPythonLibraryIsNotExist": {
"status": "TODO"
},
"__IsTimeStampOption": {
"status": "TODO"
},
"__PrintTimeStamp": {
"status": "TODO"
},
"__IsLocaleOption": {
"status": "TODO"
},
"__IsLocaleVersion": {
"status": "TODO"
},
"__IsOpenIDAuthKeyOption": {
"status": "TODO"
},
"__IsOpenIDTestOption": {
"status": "TODO"
},
"WinMain": {
"status": "TODO"
},
"GrannyError": {
"status": "TODO"
},
"Setup": {
"status": "TODO"
}
}
}