/
dieoska
/
ddnet
Обзор
Документация
Войти
/
dieoska
/
ddnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/game/client/components/background.cpp
112 строк
2 KB
Robert Müller
Order and group all `#include`s with Clang Format
29 сен 2025, 18:59
29 сен 2025, 18:59
a64bc97
Код
Авторство
О чём код?
#include "background.h" #include <base/system.h> #include <engine/map.h> #include <engine/shared/config.h> #include <game/client/components/mapimages.h> #include <game/client/components/maplayers.h> #include <game/client/gameclient.h> #include <game/layers.h> #include <game/localization.h> CBackground::CBackground(ERenderType MapType, bool OnlineOnly) : CMapLayers(MapType, OnlineOnly) { m_pLayers = new CLayers; m_pBackgroundLayers = m_pLayers; m_pImages = new CMapImages; m_pBackgroundImages = m_pImages; m_Loaded = false; m_aMapName[0] = '\0'; } CBackground::~CBackground() { delete m_pBackgroundLayers; delete m_pBackgroundImages; } CBackgroundEngineMap *CBackground::CreateBGMap() { return new CBackgroundEngineMap; } void CBackground::OnInit() { m_pBackgroundMap = CreateBGMap(); m_pMap = m_pBackgroundMap; m_pImages->OnInterfacesInit(GameClient()); Kernel()->RegisterInterface(m_pBackgroundMap); if(g_Config.m_ClBackgroundEntities[0] != '\0' && str_comp(g_Config.m_ClBackgroundEntities, CURRENT_MAP)) LoadBackground(); } void CBackground::LoadBackground() { if(m_Loaded && m_pMap == m_pBackgroundMap) m_pMap->Unload(); m_Loaded = false; m_pMap = m_pBackgroundMap; m_pLayers = m_pBackgroundLayers; m_pImages = m_pBackgroundImages; str_copy(m_aMapName, g_Config.m_ClBackgroundEntities); if(g_Config.m_ClBackgroundEntities[0] != '\0') { bool NeedImageLoading = false; char aBuf[IO_MAX_PATH_LENGTH]; str_format(aBuf, sizeof(aBuf), "maps/%s%s", g_Config.m_ClBackgroundEntities, str_endswith(g_Config.m_ClBackgroundEntities, ".map") ? "" : ".map"); if(str_comp(g_Config.m_ClBackgroundEntities, CURRENT_MAP) == 0) { m_pMap = Kernel()->RequestInterface<IEngineMap>(); if(m_pMap->IsLoaded()) { m_pLayers = GameClient()->Layers(); m_pImages = &GameClient()->m_MapImages; m_Loaded = true; } } else if(m_pMap->Load(aBuf)) { m_pLayers->Init(m_pMap, true); NeedImageLoading = true; m_Loaded = true; } if(m_Loaded) { if(NeedImageLoading) { m_pImages->LoadBackground(m_pLayers, m_pMap); } CMapLayers::OnMapLoad(); } } } void CBackground::OnMapLoad() { if(str_comp(g_Config.m_ClBackgroundEntities, CURRENT_MAP) == 0 || str_comp(g_Config.m_ClBackgroundEntities, m_aMapName)) { LoadBackground(); } } void CBackground::OnRender() { if(!m_Loaded) return; if(Client()->State() != IClient::STATE_ONLINE && Client()->State() != IClient::STATE_DEMOPLAYBACK) return; if(g_Config.m_ClOverlayEntities != 100) return; CMapLayers::OnRender(); }