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>
308 lines
15 KiB
JSON
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."
|
|
}
|
|
}
|
|
}
|