Files
mtgodot-poc/audit/port-map/GameLib/MapManager.cpp.json
T
shenleiandClaude Opus 5.5 9298500df9 port: PythonItem + item module (batch 2 P3-b)
Verbatim 40250 CPythonItem and the item Python module replace the
pending stand-in and the module stub; CPythonApplication::Create calls
m_pyItem.Create() in 40250 order. itemGetIconImage returns its handle
through Py_BuildPointer (the ILP32 int truncated it and wndMgr.SetSlot
crashed on the live inventory). CMapManager::GetNormal evaluates
CTerrain::CalculateNormal on the native height tile; the item text-tail
members stay stubs, Pick answering -1 like an empty tail map.

The fake server drops vnum 19 next to the actor at entergame and answers
CG_ITEM_PICKUP with GC_ITEM_GROUND_DEL; login_flow picks it up through
player.PickCloseItem and checks item.SelectItem(19).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 00:50:16 +09:00

225 lines
7.6 KiB
JSON

{
"reference": "GameLib/MapManager.cpp",
"reference_sha256": "6e20512dcbe73aeb9d49300667ce460bbd21bf4697a75a0d96fa1b57e7c8a4ff",
"priority": "P4",
"contracts": [],
"functions": {
"CMapManager::IsMapOutdoor": {
"status": "TODO"
},
"CMapManager::GetMapOutdoorRef": {
"status": "TODO"
},
"CMapManager::CMapManager": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::CMapManager"
],
"note": "Constructor matches 40250; kept in pending file until CMapOutdoor is ported.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::~CMapManager": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::~CMapManager"
],
"note": "Calls transition adapter Destroy, which frees pack-backed map state.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::IsSoftwareTilingEnable": {
"status": "TODO"
},
"CMapManager::ReserveSoftwareTilingEnable": {
"status": "TODO"
},
"CMapManager::Initialize": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::Initialize"
],
"note": "40250 AtlasInfo loading order; pack text parsed in transition adapter.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::Create": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::Create"
],
"note": "No CMapOutdoor allocation yet; Metin2World renders terrain.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::Destroy": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::Destroy"
],
"note": "Frees transition map and environment data; CMapOutdoor cleanup remains TODO.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::Clear": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::Clear"
],
"note": "Clears pack-backed terrain state, not CMapOutdoor.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::AllocMap": {
"status": "TODO"
},
"CMapManager::LoadProperty": {
"status": "TODO"
},
"CMapManager::LoadMap": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::LoadMap"
],
"note": "Loads Setting.txt, initial height tile and .msenv from 40250 packs for reachable Warp chain; outdoor scene lifecycle remains TODO.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::IsMapReady": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::IsMapReady"
],
"note": "Reports pack-backed transition map readiness instead of CMapOutdoor::IsReady.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::UnloadMap": {
"status": "TODO"
},
"CMapManager::UpdateMap": {
"status": "TODO"
},
"CMapManager::UpdateAroundAmbience": {
"status": "TODO"
},
"CMapManager::GetHeight": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::GetHeight"
],
"note": "Uses the 40250 terrain triangle interpolation on packed height.raw; placed-object height remains TODO.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::GetTerrainHeight": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::GetTerrainHeight"
],
"note": "CMapOutdoor::GetTerrainHeight: 40250 terrain triangle interpolation on packed height.raw. GetHeight forwards here until map objects are registered (CMapOutdoor::GetHeight's object half).",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CMapManager::GetWaterHeight": {
"status": "TODO"
},
"CMapManager::BeginEnvironment": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::BeginEnvironment"
],
"note": "Applies .msenv material/background light through RecordingDevice; fog and full CMapOutdoor environment remain TODO.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::EndEnvironment": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::EndEnvironment"
],
"note": "Restores recorded lighting state; full environment state restoration remains TODO.",
"test": "project/python_game_render_test.gd"
},
"CMapManager::SetEnvironmentData": {
"status": "TODO"
},
"CMapManager::SetEnvironmentDataPtr": {
"status": "TODO"
},
"CMapManager::ResetEnvironmentDataPtr": {
"status": "TODO"
},
"CMapManager::BlendEnvironmentData": {
"status": "TODO"
},
"CMapManager::RegisterEnvironmentData": {
"status": "TODO"
},
"CMapManager::GetCurrentEnvironmentData": {
"status": "TODO"
},
"CMapManager::GetEnvironmentData": {
"status": "TODO"
},
"CMapManager::RefreshPortal": {
"status": "TODO"
},
"CMapManager::ClearPortal": {
"status": "TODO"
},
"CMapManager::AddShowingPortalID": {
"status": "TODO"
},
"CMapManager::AllocEnvironmentData": {
"status": "TODO"
},
"CMapManager::DeleteEnvironmentData": {
"status": "TODO"
},
"CMapManager::LoadEnvironmentData": {
"status": "TODO"
},
"CMapManager::GetShadowMapColor": {
"status": "TODO"
},
"CMapManager::GetRenderedSplatNum": {
"status": "TODO"
},
"CMapManager::GetRenderedGraphicThingInstanceNum": {
"status": "TODO"
},
"CMapManager::GetNormal": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::GetNormal"
],
"test": "extension/tests/port_login_flow_test.cpp (port.login_flow: ground item vnum 19 add/ownership/PickCloseItem/GROUND_DEL; item.SelectItem(19))",
"note": "CMapOutdoor::GetNormal tile clamp + CTerrain::CalculateNormal formula evaluated per call on the native height tile (no m_acNormalMap until CMapOutdoor/CTerrain are ported)."
},
"CMapManager::isPhysicalCollision": {
"status": "TODO"
},
"CMapManager::isAttrOn": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::isAttrOn"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "CMapOutdoor::isAttrOn + CTerrain::isAttrOn verbatim over native attr.atr tiles (Setting.txt map size instead of the CTerrain list)."
},
"CMapManager::GetAttr": {
"status": "TODO"
},
"CMapManager::SetTerrainRenderSort": {
"status": "TODO"
},
"CMapManager::SetTransparentTree": {
"status": "TODO"
},
"CMapManager::GetTerrainRenderSort": {
"status": "TODO"
},
"CMapManager::GetBaseXY": {
"status": "TODO"
},
"CMapManager::__LoadMapInfoVector": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::__LoadMapInfoVector"
],
"note": "Reads packed AtlasInfo bounds with 40250 terrain tile size; parser is transitional.",
"test": "project/python_game_render_test.gd"
}
}
}