port: CMapOutdoor + PythonBackground + minimap (1:1 40250)
GameLib map/area/terrain units, PRTerrainLib Terrain/TextureSet, PythonBackground(+Module) and ColorTransitionHelper ported verbatim; pending stand-ins and background module stubs removed. Hand edits: BeginEnvironment's pointer tag via uintptr_t, LoadWaterMap reads the file's 32-bit longs. Terrain draw passes stay platform no-ops (Godot draws the terrain). RecordingDevice gains textures, buffers and render targets; orthographic draws become UI commands so CPythonMiniMap's masked tiles show through minimap_image_filter in python_ui_surface. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b69116992c
commit
2ead95756e
@@ -5,225 +5,288 @@
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CMapManager::IsMapOutdoor": {
|
||||
"status": "DIVERGENT",
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::IsMapOutdoor"
|
||||
],
|
||||
"note": "Returns false on every map: CMapOutdoor is not ported (the Godot terrain adapter draws the map), so CPythonMiniMap Update/Render/LoadAtlas take their no-outdoor-map path: no minimap terrain textures, marks or atlas. Resolves when CMapOutdoor is ported.",
|
||||
"test": "extension/tests/port_login_flow_test.cpp miniMap step (miniMap.GetAtlasSize() reports not loaded)"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::IsMapOutdoor"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetMapOutdoorRef": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetMapOutdoorRef"
|
||||
]
|
||||
},
|
||||
"CMapManager::CMapManager": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::CMapManager"
|
||||
]
|
||||
},
|
||||
"CMapManager::~CMapManager": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::~CMapManager"
|
||||
]
|
||||
},
|
||||
"CMapManager::IsSoftwareTilingEnable": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::IsSoftwareTilingEnable"
|
||||
]
|
||||
},
|
||||
"CMapManager::ReserveSoftwareTilingEnable": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::ReserveSoftwareTilingEnable"
|
||||
]
|
||||
},
|
||||
"CMapManager::Initialize": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::Initialize"
|
||||
]
|
||||
},
|
||||
"CMapManager::Create": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::Create"
|
||||
]
|
||||
},
|
||||
"CMapManager::Destroy": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::Destroy"
|
||||
]
|
||||
},
|
||||
"CMapManager::Clear": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::Clear"
|
||||
]
|
||||
},
|
||||
"CMapManager::AllocMap": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::AllocMap"
|
||||
]
|
||||
},
|
||||
"CMapManager::LoadProperty": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::LoadProperty"
|
||||
]
|
||||
},
|
||||
"CMapManager::LoadMap": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::LoadMap"
|
||||
]
|
||||
},
|
||||
"CMapManager::IsMapReady": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::IsMapReady"
|
||||
]
|
||||
},
|
||||
"CMapManager::UnloadMap": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::UnloadMap"
|
||||
]
|
||||
},
|
||||
"CMapManager::UpdateMap": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::UpdateMap"
|
||||
]
|
||||
},
|
||||
"CMapManager::UpdateAroundAmbience": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::UpdateAroundAmbience"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetHeight": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetHeight"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetTerrainHeight": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetTerrainHeight"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetWaterHeight": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetWaterHeight"
|
||||
]
|
||||
},
|
||||
"CMapManager::BeginEnvironment": {
|
||||
"status": "ADAPTED",
|
||||
"impl": [
|
||||
"extension/src/platform/pending/GameLib/MapManager.cpp:CMapManager::BeginEnvironment"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::BeginEnvironment"
|
||||
],
|
||||
"note": "Applies .msenv material/background light through RecordingDevice; fog and full CMapOutdoor environment remain TODO.",
|
||||
"note": "40250 verbatim except the ApplyLight tag: (DWORD)mc_pcurEnvironmentData becomes (DWORD)(uintptr_t) (a 64-bit pointer does not narrow implicitly); only compared for equality, as in 40250.",
|
||||
"test": "project/python_game_render_test.gd"
|
||||
},
|
||||
"CMapManager::EndEnvironment": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::EndEnvironment"
|
||||
]
|
||||
},
|
||||
"CMapManager::SetEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::SetEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::SetEnvironmentDataPtr": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::SetEnvironmentDataPtr"
|
||||
]
|
||||
},
|
||||
"CMapManager::ResetEnvironmentDataPtr": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::ResetEnvironmentDataPtr"
|
||||
]
|
||||
},
|
||||
"CMapManager::BlendEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::BlendEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::RegisterEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::RegisterEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetCurrentEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetCurrentEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::RefreshPortal": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::RefreshPortal"
|
||||
]
|
||||
},
|
||||
"CMapManager::ClearPortal": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::ClearPortal"
|
||||
]
|
||||
},
|
||||
"CMapManager::AddShowingPortalID": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::AddShowingPortalID"
|
||||
]
|
||||
},
|
||||
"CMapManager::AllocEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::AllocEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::DeleteEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::DeleteEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::LoadEnvironmentData": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::LoadEnvironmentData"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetShadowMapColor": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetShadowMapColor"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetRenderedSplatNum": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetRenderedSplatNum"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetRenderedGraphicThingInstanceNum": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetRenderedGraphicThingInstanceNum"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetNormal": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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)."
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetNormal"
|
||||
]
|
||||
},
|
||||
"CMapManager::isPhysicalCollision": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::isPhysicalCollision"
|
||||
]
|
||||
},
|
||||
"CMapManager::isAttrOn": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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)."
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::isAttrOn"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetAttr": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetAttr"
|
||||
]
|
||||
},
|
||||
"CMapManager::SetTerrainRenderSort": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::SetTerrainRenderSort"
|
||||
]
|
||||
},
|
||||
"CMapManager::SetTransparentTree": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::SetTransparentTree"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetTerrainRenderSort": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetTerrainRenderSort"
|
||||
]
|
||||
},
|
||||
"CMapManager::GetBaseXY": {
|
||||
"status": "TODO"
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::GetBaseXY"
|
||||
]
|
||||
},
|
||||
"CMapManager::__LoadMapInfoVector": {
|
||||
"status": "ADAPTED",
|
||||
"status": "PORTED",
|
||||
"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"
|
||||
"extension/src/port/GameLib/MapManager.cpp:CMapManager::__LoadMapInfoVector"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user