// Stand-in for the 40250 logic unit UserInterface/PythonBackground.cpp, not ported yet: the members the ported units // reference, as platform_stub.py stubs. Delete this file in the commit that ports the unit into port/ // (docs/PORT-PLAN.md). #include "UserInterface/StdAfx.h" #include "UserInterface/PythonBackground.h" #include "EterLib/StateManager.h" #include "../../PlatformStub.h" auto CPythonBackground::Destroy() -> void { CMapManager::Destroy(); m_bVisibleGuildArea = FALSE; } auto CPythonBackground::Create() -> void { CMapManager::Create(); } auto CPythonBackground::GlobalPositionToLocalPosition(LONG &x, LONG &y) -> void { x -= m_dwBaseX; y -= m_dwBaseY; } auto CPythonBackground::LocalPositionToGlobalPosition(LONG &x, LONG &y) -> void { x += m_dwBaseX; y += m_dwBaseY; } auto CPythonBackground::RefreshShadowLevel() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::Update(float, float, float) -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::ClearGuildArea() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RegisterGuildArea(int, int, int, int) -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::CreateTargetEffect(DWORD, DWORD) -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::CreateTargetEffect(DWORD, long, long) -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::DeleteTargetEffect(DWORD) -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::Warp(DWORD x, DWORD y) -> void { if (m_kVct_kMapInfo.empty()) Initialize(); auto found = std::find_if(m_kVct_kMapInfo.begin(), m_kVct_kMapInfo.end(), [x, y](const TMapInfo &info) { return x >= info.m_dwBaseX && x < info.m_dwEndX && y >= info.m_dwBaseY && y < info.m_dwEndY; }); if (found == m_kVct_kMapInfo.end()) { TraceError("NOT_FOUND_GLOBAL_POSITION(%u, %u)", x, y); return; } if (!LoadMap(found->m_strName, float(x - found->m_dwBaseX), float(y - found->m_dwBaseY), 0.0f)) { TraceError("CPythonBackground::Warp map load failed: %s", found->m_strName.c_str()); return; } m_dwBaseX = found->m_dwBaseX; m_dwBaseY = found->m_dwBaseY; m_strMapName = found->m_strName; } auto CPythonBackground::GetWarpMapName() -> const char * { return m_strMapName.c_str(); } CPythonBackground::CPythonBackground() { m_eViewDistanceNum=0; m_dwBaseX=0; m_dwBaseY=0; m_bVisibleGuildArea=FALSE; m_iXMasTreeGrade=0; } CPythonBackground::~CPythonBackground() { MT_PLATFORM_STUB(); } auto CPythonBackground::CheckAdvancing(CInstanceBase *) -> bool { MT_PLATFORM_STUB(); return mt_platform_stub_return(); } auto CPythonBackground::GetPickingPointWithRayOnlyTerrain(const CRay &, D3DXVECTOR3 *) -> bool { MT_PLATFORM_STUB(); return mt_platform_stub_return(); } // 40250 PythonBackground.cpp:173 (CPythonApplication::RenderGame's SetPerspective); m_pkMap stays null // until the map is ported, so this is the 50000 far clip. float CPythonBackground::GetFarClip() { if (!m_pkMap) return 50000.0f; if (m_ViewDistanceSet[m_eViewDistanceNum].m_fFarClip==0.0f) { TraceError("CPythonBackground::GetFarClip m_eViewDistanceNum=%d", m_eViewDistanceNum); m_ViewDistanceSet[m_eViewDistanceNum].m_fFarClip=25600.0f; } return m_ViewDistanceSet[m_eViewDistanceNum].m_fFarClip; } auto CPythonBackground::Render() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderAfterLensFlare() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderBeforeLensFlare() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderCharacterShadowToTexture() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderCloud() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderEffect() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderPCBlocker() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderSky() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderSnow() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::RenderWater() -> void { MT_PLATFORM_STUB(); } auto CPythonBackground::SetBackgroundDirLight() -> void { if (!IsMapReady() || !mc_pcurEnvironmentData) return; STATEMANAGER.SetLight(0, &mc_pcurEnvironmentData->DirLights[ENV_DIRLIGHT_BACKGROUND]); } auto CPythonBackground::SetCharacterDirLight() -> void { if (!IsMapReady() || !mc_pcurEnvironmentData) return; STATEMANAGER.SetLight(0, &mc_pcurEnvironmentData->DirLights[ENV_DIRLIGHT_CHARACTER]); } void CPythonBackground::Initialize() { std::string atlas(LocaleService_GetLocalePath()); atlas += "/AtlasInfo.txt"; SetAtlasInfoFileName(atlas.c_str()); CMapManager::Initialize(); }