bool CPythonMiniMap::LoadAtlas() { CPythonBackground& rkBG=CPythonBackground::Instance(); if (!rkBG.IsMapOutdoor()) return false; CMapOutdoor& rkMap=rkBG.GetMapOutdoorRef(); const char* playerMarkFileName = "d:/ymir work/ui/minimap/playermark.sub"; char atlasFileName[1024+1]; snprintf(atlasFileName, sizeof(atlasFileName), "%s/atlas.sub", rkMap.GetName().c_str()); if (!CEterPackManager::Instance().isExist(atlasFileName)) { snprintf(atlasFileName, sizeof(atlasFileName), "d:/ymir work/ui/atlas/%s/atlas.sub", rkMap.GetName().c_str()); } m_AtlasImageInstance.Destroy(); m_AtlasPlayerMark.Destroy(); CGraphicImage* pkGrpImgAtlas = (CGraphicImage *) CResourceManager::Instance().GetResourcePointer(atlasFileName); if (pkGrpImgAtlas) { m_AtlasImageInstance.SetImagePointer(pkGrpImgAtlas); if (pkGrpImgAtlas->IsEmpty()) m_bAtlas=false; else m_bAtlas=true; } else { } m_AtlasPlayerMark.SetImagePointer((CGraphicSubImage *) CResourceManager::Instance().GetResourcePointer(playerMarkFileName)); short sTerrainCountX, sTerrainCountY; rkMap.GetBaseXY(&m_dwAtlasBaseX, &m_dwAtlasBaseY); rkMap.GetTerrainCount(&sTerrainCountX, &sTerrainCountY); m_fAtlasMaxX = (float) sTerrainCountX * CTerrainImpl::TERRAIN_XSIZE; m_fAtlasMaxY = (float) sTerrainCountY * CTerrainImpl::TERRAIN_YSIZE; m_fAtlasImageSizeX = (float) m_AtlasImageInstance.GetWidth(); m_fAtlasImageSizeY = (float) m_AtlasImageInstance.GetHeight(); __LoadAtlasMarkInfo(); if (m_bShowAtlas) OpenAtlasWindow(); return true; }