Files
mtgodot-poc/audit/port-map/UserInterface/PythonApplication.cpp.json
T
shenleiandClaude Opus 5.5 dda885a17a render parity unit J: 40250 automatic sight range in CPythonApplication::Process
Process now runs 40250's render-time / face-count block and sets view
distance set 0 each frame (25600 under 5000 faces, else scaled by render
time, or the forced range). SetForceSightRange and SkipRenderBuffering are
ported from stubs; the invented SetCursorPosition in UpdateGame is removed.
Port-map boilerplate notes replaced; Destroy recorded as DIVERGENT.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 14:22:41 +09:00

308 lines
15 KiB
JSON

{
"reference": "UserInterface/PythonApplication.cpp",
"reference_sha256": "9a9e5268c7475e6ed720bc8ee53ed58d334b22d1efa93310b3d45f1bbdd85bf3",
"priority": "P4",
"contracts": [],
"functions": {
"CPythonApplication::CPythonApplication": {
"status": "N_A",
"note": "Monolithic Win32 application constructor; subsystems managed as individual singletons in PythonBoot"
},
"CPythonApplication::~CPythonApplication": {
"status": "N_A",
"note": "Subsystems destroyed in GameSingletons / PythonBoot::Stop"
},
"CPythonApplication::GetMousePosition": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetMousePosition"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::SetMinFog": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetMinFog"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "40250 body verbatim in the platform layer."
},
"CPythonApplication::SetFrameSkip": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetFrameSkip"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::NotifyHack": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::NotifyHack"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetInfo": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetInfo"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::Abort": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Abort"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::Exit": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Exit"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::RenderGame": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::RenderGame"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "40250's !PERF_CHECKER_RENDER_GAME branch line for line, members reached through their singletons; the perf-timing branch (PERF_CHECKER_RENDER_GAME is FALSE) is left out."
},
"CPythonApplication::UpdateGame": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::UpdateGame"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "40250 body through the singletons, minus the __PERFORMANCE_CHECK__/PERF_CHECKER timing. An invented CScreen::SetCursorPosition in the perspective block was removed (unit J): as in 40250 the pick ray comes from RenderGame's SetCursorPosition."
},
"CPythonApplication::SkipRenderBuffering": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SkipRenderBuffering"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "40250 body verbatim in the platform layer."
},
"CPythonApplication::Process": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Process"
],
"test": "extension/tests/port_login_flow_test.cpp",
"note": "Frame order as 40250 (network, account connector, camera, resource, mouse/UI update, specular, culling, Begin/UI/mouse render/End). Left out: guild mark up/download (not ported), lost-device restore, ClearDepthBuffer/Show (host presents), frame-skip timing/Sleep (host paces frames), FPS counters, and the !IsActive() SkipRenderBuffering(3000) (CMSWindow::IsActive is a stub). Unit J restored 40250:741-842: render time, face count, frame buffering average and the automatic sight range (SetViewDistanceSet(0, ...): 25600 under 5000 faces, else MIN_FOG..25600 scaled by render time, or the forced range), with a PORT guard on the face-speed division. Fog/far-clip effect NEEDS_LIVE against the reference frame."
},
"CPythonApplication::UpdateClientRect": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::UpdateClientRect"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::SetMouseHandler": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:SetMouseHandler"
],
"note": "Body verbatim on a file-static m_poMouseHandler (no application object yet); SetCursorNum calls its ChangeCursor.",
"test": "extension/tests/port_login_flow_test.cpp (step 10)"
},
"CPythonApplication::CheckDeviceState": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::CheckDeviceState"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::CreateDevice": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::CreateDevice"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::Loop": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Loop"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"LoadLocaleData": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:LoadLocaleData"
],
"note": "Body verbatim in the platform CPythonApplication stand-in (the class itself is not ported); it reads item/mob tables and CPythonSkill's skilldesc/skilltable.",
"test": "extension/tests/port_login_flow_test.cpp step 3c (port.login_flow / port.login_live: item 19 Sword+9, mob 101 Wild Dog, skill 1 Three-Way Cut cool time 12)"
},
"__GetWindowMode": {
"status": "N_A",
"note": "Win32 window mode helper; canvas size managed by Godot host"
},
"CPythonApplication::Create": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Create"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons; m_LightManager.Initialize() (40250 :1263) now called; Destroy() still empty (m_LightManager.Destroy at 40250 :1418 not yet mirrored); 40250 :1196-1251 tiling selection mirrored (SOFTWARE_TILING cfg → GRAPHICS_CAPS_SOFTWARE_TILING before device create, auto tiling IsFastTNL ? HTP : STP via ReserveSoftwareTilingEnable, !IsFastTNL → CGrannyLODController::SetMinLODMode(true)); RecordingDevice caps report VS 1.1 + CLIPTLVERTS so auto picks HTP",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::SetGlobalCenterPosition": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetGlobalCenterPosition"
],
"note": "40250 GlobalPositionToLocalPosition -> GetHeight -> SetCenterPosition order preserved in platform host; exercised by port.login_flow and python_game_render_test.",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::SetCenterPosition": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplicationCamera.cpp:CPythonApplication::SetCenterPosition"
],
"note": "40250 camera state adapted on platform ApplicationCamera structure",
"test": "extension/tests/port_login_flow_test.cpp (step 8, 9)"
},
"CPythonApplication::GetCenterPosition": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplicationCamera.cpp:CPythonApplication::GetCenterPosition"
],
"note": "40250 camera state adapted on platform ApplicationCamera structure",
"test": "extension/tests/port_login_flow_test.cpp (step 8, 9)"
},
"CPythonApplication::SetServerTime": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetServerTime"
],
"note": "GC_TIME sets the server time, local ELTimer millisecond base and wall-clock base in ServerClock; platform host routes IAbstractApplication::SetServerTime here.",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetServerTime": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetServerTime"
],
"note": "Returns 40250 server millisecond base plus wrapped ELTimer elapsed milliseconds; port.login_flow checks the fake GC_TIME replaces a sentinel.",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetServerTimeStamp": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetServerTimeStamp"
],
"note": "Returns 40250 server base plus wall-clock elapsed seconds; port.login_flow checks the fake GC_TIME replaces a sentinel.",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetGlobalTime": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetGlobalTime"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetGlobalElapsedTime": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetGlobalElapsedTime"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::SetFPS": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetFPS"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetWidth": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetWidth"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetHeight": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetHeight"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::SetConnectData": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetConnectData"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::GetConnectData": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::GetConnectData"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::EnableSpecialCameraMode": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplicationCamera.cpp:CPythonApplication::EnableSpecialCameraMode"
],
"note": "40250 camera state adapted on platform ApplicationCamera structure",
"test": "extension/tests/port_login_flow_test.cpp (step 8, 9)"
},
"CPythonApplication::SetCameraSpeed": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplicationCamera.cpp:CPythonApplication::SetCameraSpeed"
],
"note": "40250 camera state adapted on platform ApplicationCamera structure",
"test": "extension/tests/port_login_flow_test.cpp (step 8, 9)"
},
"CPythonApplication::SetForceSightRange": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::SetForceSightRange"
],
"note": "40250 body verbatim in the platform layer. m_iForceSightRange lives in the file-static s_iForceSightRange (initial -1 as the 40250 constructor sets) until the application object exists.",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::Clear": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Clear"
],
"note": "40250 CPythonApplication lifecycle and state adapted for platform host and singletons",
"test": "extension/tests/port_login_flow_test.cpp"
},
"CPythonApplication::Destroy": {
"status": "DIVERGENT",
"impl": [
"extension/src/platform/UserInterface/PythonApplication.cpp:CPythonApplication::Destroy"
],
"note": "Empty and never called: the host tears down through the singleton resets in PythonBoot::Stop, not 40250 Main's app->Destroy(). 40250's body (window manager, SaveConfig/SaveInterfaceStatus writing into the client dir, managers incl. m_LightManager.Destroy(), device) is not run; porting it needs Stop to call it with config writes redirected out of the 40250 client dir."
}
}
}