Port map: correct the WebPage/Logo/MovieMan evidence (scripts grepped with LC_ALL=C)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 12:32:49 +09:00
co-authored by Claude Opus 5.5
parent ff71726ff0
commit c21e012965
4 changed files with 30 additions and 27 deletions
+3
View File
@@ -596,3 +596,6 @@
{"date": "2026-09-30T03:27:19+00:00", "unit": "EterLib/GrpVertexShader.cpp", "action": "all functions N_A: CVertexShader has no user outside its own files", "evidence": "grep CVertexShader over ClientVS22/source"}
{"date": "2026-09-30T03:27:19+00:00", "unit": "EterLib/GrpD3DXBuffer.cpp", "action": "all functions N_A: CDirect3DXBuffer is used only by the unused CPixelShader/CVertexShader", "evidence": "grep CDirect3DXBuffer over ClientVS22/source"}
{"date": "2026-09-30T03:31:03+00:00", "unit": "UserInterface/PythonExceptionSender.cpp", "action": "PORTED: verbatim copy + ScriptLib/StdAfx.cpp SetExceptionSender; PythonBoot installs the sender as 40250 Main does", "evidence": "iconv copy of ClientVS22/source/UserInterface/PythonExceptionSender.{h,cpp} and ScriptLib/StdAfx.cpp; ctest 19/19"}
{"date": "2026-09-30T03:32:49+00:00", "unit": "UserInterface/PythonApplicationLogo.cpp", "action": "correction: N_A: CPythonApplication::OnLogo* has no caller: intrologo.py calls app.OnLogoOpen/Update/Render/Close, but those bind appLogo* in PythonApplicationModule.cpp, whose CPythonApplication::OnLogo* calls are commented out", "evidence": "LC_ALL=C grep app.OnLogo over the root .py (intrologo.py); PythonApplicationModule.cpp:1165-1195 (the earlier grep ran without LC_ALL=C and missed the CP949 scripts)"}
{"date": "2026-09-30T03:32:49+00:00", "unit": "UserInterface/MovieMan.cpp", "action": "correction: N_A: reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome", "evidence": "find Client -iname *.avi: none; LC_ALL=C grep PlayIntro/PlayTutorial over ClientVS22/source (the earlier grep ran without LC_ALL=C and missed the CP949 scripts)"}
{"date": "2026-09-30T03:32:49+00:00", "unit": "UserInterface/PythonApplicationWebPage.cpp", "action": "correction: DIVERGENT: reachable: game.py __InGameShop_Show -> interfacemodule.OpenWebWindow -> uiweb.py app.ShowWebPage when constInfo.IN_GAME_SHOP_ENABLE (localeinfo sets it per locale), and uishop.MallPageDialog; the port has no embedded browser, so ShowWebPage/MoveWebPage/HideWebPage are stubs in platform/UserInterface/PythonApplication.cpp", "evidence": "LC_ALL=C grep ShowWebPage/uiweb/IN_GAME_SHOP_ENABLE over the root .py (the earlier grep ran without LC_ALL=C and missed the CP949 scripts)"}
+15 -15
View File
@@ -6,63 +6,63 @@
"functions": {
"CMovieMan::ClearToBlack": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::FillRect": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::GDIFillRect": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::GDIBlt": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::PlayLogo": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::PlayIntro": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::PlayTutorial": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::PlayMovie": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::GetWindowRect": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::CalcMovieRect": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::CalcBackgroundRect": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::RenderStreamToSurface": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::RenderFileToMMStream": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::RenderPostEffectFadeOut": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
},
"CMovieMan::BuildFilterGraphManually": {
"status": "N_A",
"note": "reached only from app.LogoOpen (CMovieMan::PlayLogo), which no root script calls"
"note": "reached at boot through prototype.py SetLogoPhase -> intrologo.py app.OnLogoOpen(\"logo1.avi\"/\"logo2.avi\") -> CMovieMan::PlayLogo -> PlayMovie(<cwd>\\\\logoN.avi), but the 40250 Client ships no .avi, so RenderFileToMMStream fails and nothing is shown; PlayIntro/PlayTutorial have no caller. The port stub matches that outcome"
}
}
}
@@ -6,19 +6,19 @@
"functions": {
"CPythonApplication::OnLogoOpen": {
"status": "N_A",
"note": "CPythonApplication::OnLogo* has no caller: appLogoOpen/appLogoUpdate have the calls commented out"
"note": "CPythonApplication::OnLogo* has no caller: intrologo.py calls app.OnLogoOpen/Update/Render/Close, but those bind appLogo* in PythonApplicationModule.cpp, whose CPythonApplication::OnLogo* calls are commented out"
},
"CPythonApplication::OnLogoUpdate": {
"status": "N_A",
"note": "CPythonApplication::OnLogo* has no caller: appLogoOpen/appLogoUpdate have the calls commented out"
"note": "CPythonApplication::OnLogo* has no caller: intrologo.py calls app.OnLogoOpen/Update/Render/Close, but those bind appLogo* in PythonApplicationModule.cpp, whose CPythonApplication::OnLogo* calls are commented out"
},
"CPythonApplication::OnLogoRender": {
"status": "N_A",
"note": "CPythonApplication::OnLogo* has no caller: appLogoOpen/appLogoUpdate have the calls commented out"
"note": "CPythonApplication::OnLogo* has no caller: intrologo.py calls app.OnLogoOpen/Update/Render/Close, but those bind appLogo* in PythonApplicationModule.cpp, whose CPythonApplication::OnLogo* calls are commented out"
},
"CPythonApplication::OnLogoClose": {
"status": "N_A",
"note": "CPythonApplication::OnLogo* has no caller: appLogoOpen/appLogoUpdate have the calls commented out"
"note": "CPythonApplication::OnLogo* has no caller: intrologo.py calls app.OnLogoOpen/Update/Render/Close, but those bind appLogo* in PythonApplicationModule.cpp, whose CPythonApplication::OnLogo* calls are commented out"
}
}
}
@@ -5,20 +5,20 @@
"contracts": [],
"functions": {
"CPythonApplication::IsWebPageMode": {
"status": "N_A",
"note": "reached only from app.ShowWebPage/MoveWebPage/HideWebPage, which only uiweb.py calls, and no root script imports uiweb"
"status": "DIVERGENT",
"note": "reachable: game.py __InGameShop_Show -> interfacemodule.OpenWebWindow -> uiweb.py app.ShowWebPage when constInfo.IN_GAME_SHOP_ENABLE (localeinfo sets it per locale), and uishop.MallPageDialog; the port has no embedded browser, so ShowWebPage/MoveWebPage/HideWebPage are stubs in platform/UserInterface/PythonApplication.cpp"
},
"CPythonApplication::ShowWebPage": {
"status": "N_A",
"note": "reached only from app.ShowWebPage/MoveWebPage/HideWebPage, which only uiweb.py calls, and no root script imports uiweb"
"status": "DIVERGENT",
"note": "reachable: game.py __InGameShop_Show -> interfacemodule.OpenWebWindow -> uiweb.py app.ShowWebPage when constInfo.IN_GAME_SHOP_ENABLE (localeinfo sets it per locale), and uishop.MallPageDialog; the port has no embedded browser, so ShowWebPage/MoveWebPage/HideWebPage are stubs in platform/UserInterface/PythonApplication.cpp"
},
"CPythonApplication::MoveWebPage": {
"status": "N_A",
"note": "reached only from app.ShowWebPage/MoveWebPage/HideWebPage, which only uiweb.py calls, and no root script imports uiweb"
"status": "DIVERGENT",
"note": "reachable: game.py __InGameShop_Show -> interfacemodule.OpenWebWindow -> uiweb.py app.ShowWebPage when constInfo.IN_GAME_SHOP_ENABLE (localeinfo sets it per locale), and uishop.MallPageDialog; the port has no embedded browser, so ShowWebPage/MoveWebPage/HideWebPage are stubs in platform/UserInterface/PythonApplication.cpp"
},
"CPythonApplication::HideWebPage": {
"status": "N_A",
"note": "reached only from app.ShowWebPage/MoveWebPage/HideWebPage, which only uiweb.py calls, and no root script imports uiweb"
"status": "DIVERGENT",
"note": "reachable: game.py __InGameShop_Show -> interfacemodule.OpenWebWindow -> uiweb.py app.ShowWebPage when constInfo.IN_GAME_SHOP_ENABLE (localeinfo sets it per locale), and uishop.MallPageDialog; the port has no embedded browser, so ShowWebPage/MoveWebPage/HideWebPage are stubs in platform/UserInterface/PythonApplication.cpp"
}
}
}