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:
@@ -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"}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user