client: hardcoded pack/property.pck path bypasses m2p loader #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The MinGW client build at
build-mingw64-lld/bin/Metin2_RelWithDebInfo.exehas the stringpack/property.pckembedded directly. When booting against a release tree that ships onlyproperty.m2p(and no.pck), the client reaches the character select screen fine — root/etc/item/etc all load through the m2p loader — but once a character is selected and in-game code tries to open the property pack file, it pops a modal:This is the only hardcoded
.pckreference in the entire new exe:So every other pack group is loaded through a code path that at least tries
.m2pfirst.propertyalone bypasses that. Almost certainly a directfopen(...)or equivalent on a literal path constant somewhere in the resource / world / property loading code.Reproduction
property.m2ponly, noproperty.pck.Setup: InitializeM2PackRuntimeKeyProvider okpath).Main: PackInitialize okpasses (generic loader is happy with m2p)Cannot open property pack file (filename pack/property.pck)Workaround used tonight: ship
property.pckalongsideproperty.m2pin the release tree. Size penalty: 10 MB. Also necessitates documentingpropertyas a "dual-format required" pack in the migration doc.Where to fix
Search
m2dev-client-srcfor the literalpack/property.pck. Likely candidates:src/UserInterface/property loading codesrc/EterLib/orsrc/GameLib/pack manager bootstrap that loads property manually (outside the normalCPackManager::AddPackpath that respects.m2ppreference)The fix is to route that load through the same extension-aware loader that the rest of the client uses. Or, simpler, rename the hardcoded path to
pack/propertyand let the loader resolve the extension.Migration impact
Per
m2pack-secure/docs/migration.mdPhase 4 ("package only.m2pfor release clients"),propertycannot make Phase 4 until this is fixed. All other pack groups that I mass-migrated tonight were in Phase 4 candidates; property alone is held back.Affected today:
2026.04.15-m2pack-v3ships bothproperty.m2pandproperty.pckas a workaround.Related
metin-server/m2pack-securedocs/migration.mdjann/metin-launcherPR docs: add windows native test runbook (#1)