Files
mtgodot-poc/audit/port-map/EterPythonLib/PythonGraphic.cpp.json
T
shenleiandClaude Opus 5.5 8b4700f008 2V3-b: click on the ground to walk; read the terrain attribute map
CScreen::SetCursorPosition and CPythonGraphic::SetCursorPosition are the 40250
bodies, so RenderGame builds the pick ray under the cursor each frame.
CPythonBackground::GetPickingPoint* march that ray as
CMapOutdoor::__PickTerrainHeight does, against the native CMapManager height
(PR_FLOAT_TO_INT's x87 rounding becomes floor); object picking waits for
CMapOutdoor. CMapManager::isAttrOn reads the packed <map>/<xxxyyy>/attr.atr
as CMapOutdoor::isAttrOn + CTerrain::isAttrOn do, and CheckAdvancing with its
collision checkers is verbatim (no map objects are registered yet). All of
this stays in the pending/platform layer and is marked ADAPTED.

port.login_flow clicks the ground below the actor after the key walk. The
actor walks to the picked point (334 cm offline), and the fake server sees
FUNC_MOVE, then FUNC_WAIT. It also checks that the actor's cell is free and
that its terrain block has blocked cells. port.login_live against the real
server passed (key 133 cm, click 296 cm), and python_game_render_test.sh
passes offline. MT_TEST_MODE=python_ui now adds the 3D surface, so the port
route can be played by hand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:57:34 +09:00

86 lines
2.1 KiB
JSON

{
"reference": "EterPythonLib/PythonGraphic.cpp",
"reference_sha256": "82fc01bd616637f92fcbc17e1eb2c7dd8ab78615695dc2aaabe9e5bf2f204632",
"priority": "P4",
"contracts": [],
"functions": {
"CPythonGraphic::Destroy": {
"status": "TODO"
},
"CPythonGraphic::GetD3D": {
"status": "TODO"
},
"CPythonGraphic::GetOrthoDepth": {
"status": "TODO"
},
"CPythonGraphic::SetInterfaceRenderState": {
"status": "TODO"
},
"CPythonGraphic::SetGameRenderState": {
"status": "TODO"
},
"CPythonGraphic::SetCursorPosition": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterPythonLib/PythonGraphic.cpp:CPythonGraphic::SetCursorPosition"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "40250 body verbatim in the platform layer (pick ray through the cursor)."
},
"CPythonGraphic::SetOmniLight": {
"status": "TODO"
},
"CPythonGraphic::SetViewport": {
"status": "TODO"
},
"CPythonGraphic::RestoreViewport": {
"status": "TODO"
},
"CPythonGraphic::SetGamma": {
"status": "TODO"
},
"GenScreenShotTag": {
"status": "TODO"
},
"CPythonGraphic::SaveJPEG": {
"status": "TODO"
},
"CPythonGraphic::SaveScreenShot": {
"status": "TODO"
},
"CPythonGraphic::PushState": {
"status": "TODO"
},
"CPythonGraphic::PopState": {
"status": "TODO"
},
"CPythonGraphic::RenderImage": {
"status": "TODO"
},
"CPythonGraphic::RenderAlphaImage": {
"status": "TODO"
},
"CPythonGraphic::RenderCoolTimeBox": {
"status": "TODO"
},
"CPythonGraphic::GenerateColor": {
"status": "TODO"
},
"CPythonGraphic::RenderDownButton": {
"status": "TODO"
},
"CPythonGraphic::RenderUpButton": {
"status": "TODO"
},
"CPythonGraphic::GetAvailableMemory": {
"status": "TODO"
},
"CPythonGraphic::CPythonGraphic": {
"status": "TODO"
},
"CPythonGraphic::~CPythonGraphic": {
"status": "TODO"
}
}
}