From 1810ff3949953a4aa8091f884c4e6d39f4021e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20M=C3=BCller?= Date: Wed, 19 Jan 2022 22:20:28 +0100 Subject: [PATCH 1/4] Move InitTilemapSkip to CLayers --- src/game/client/components/background.cpp | 1 - .../client/components/menu_background.cpp | 1 - src/game/client/gameclient.cpp | 2 - src/game/client/render.cpp | 34 ----------------- src/game/client/render.h | 2 - src/game/layers.cpp | 38 +++++++++++++++++++ src/game/layers.h | 2 + 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/game/client/components/background.cpp b/src/game/client/components/background.cpp index 5e3dfcbf2..187bf6ecb 100644 --- a/src/game/client/components/background.cpp +++ b/src/game/client/components/background.cpp @@ -78,7 +78,6 @@ void CBackground::LoadBackground() else if(m_pMap->Load(aBuf)) { m_pLayers->InitBackground(m_pMap); - RenderTools()->RenderTilemapGenerateSkip(m_pLayers); NeedImageLoading = true; m_Loaded = true; } diff --git a/src/game/client/components/menu_background.cpp b/src/game/client/components/menu_background.cpp index bf60c8267..13909711d 100644 --- a/src/game/client/components/menu_background.cpp +++ b/src/game/client/components/menu_background.cpp @@ -255,7 +255,6 @@ void CMenuBackground::LoadMenuBackground(bool HasDayHint, bool HasNightHint) if(m_Loaded) { m_pLayers->InitBackground(m_pMap); - RenderTools()->RenderTilemapGenerateSkip(m_pLayers); NeedImageLoading = true; CMapLayers::OnMapLoad(); diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index 5abeb931b..b501ecf70 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -422,8 +422,6 @@ void CGameClient::OnConnected() m_Layers.Init(Kernel()); m_Collision.Init(Layers()); - RenderTools()->RenderTilemapGenerateSkip(Layers()); - CRaceHelper::ms_aFlagIndex[0] = -1; CRaceHelper::ms_aFlagIndex[1] = -1; diff --git a/src/game/client/render.cpp b/src/game/client/render.cpp index f508755e5..95732fc22 100644 --- a/src/game/client/render.cpp +++ b/src/game/client/render.cpp @@ -774,37 +774,3 @@ void CRenderTools::MapscreenToWorld(float CenterX, float CenterY, float Parallax pPoints[2] = pPoints[0] + Width; pPoints[3] = pPoints[1] + Height; } - -void CRenderTools::RenderTilemapGenerateSkip(class CLayers *pLayers) -{ - for(int g = 0; g < pLayers->NumGroups(); g++) - { - CMapItemGroup *pGroup = pLayers->GetGroup(g); - - for(int l = 0; l < pGroup->m_NumLayers; l++) - { - CMapItemLayer *pLayer = pLayers->GetLayer(pGroup->m_StartLayer + l); - - if(pLayer->m_Type == LAYERTYPE_TILES) - { - CMapItemLayerTilemap *pTmap = (CMapItemLayerTilemap *)pLayer; - CTile *pTiles = (CTile *)pLayers->Map()->GetData(pTmap->m_Data); - for(int y = 0; y < pTmap->m_Height; y++) - { - for(int x = 1; x < pTmap->m_Width;) - { - int sx; - for(sx = 1; x + sx < pTmap->m_Width && sx < 255; sx++) - { - if(pTiles[y * pTmap->m_Width + x + sx].m_Index) - break; - } - - pTiles[y * pTmap->m_Width + x].m_Skip = sx - 1; - x += sx; - } - } - } - } - } -} diff --git a/src/game/client/render.h b/src/game/client/render.h index 25695f965..cf0b0ea00 100644 --- a/src/game/client/render.h +++ b/src/game/client/render.h @@ -103,8 +103,6 @@ public: void DrawCircle(float x, float y, float r, int Segments); // larger rendering methods - void RenderTilemapGenerateSkip(class CLayers *pLayers); - void GetRenderTeeBodySize(class CAnimState *pAnim, CTeeRenderInfo *pInfo, vec2 &BodyOffset, float &Width, float &Height); void GetRenderTeeFeetSize(class CAnimState *pAnim, CTeeRenderInfo *pInfo, vec2 &FeetOffset, float &Width, float &Height); diff --git a/src/game/layers.cpp b/src/game/layers.cpp index 6d833a076..4c8af5cb3 100644 --- a/src/game/layers.cpp +++ b/src/game/layers.cpp @@ -107,6 +107,8 @@ void CLayers::Init(class IKernel *pKernel) } } } + + InitTilemapSkip(); } void CLayers::InitBackground(class IMap *pMap) @@ -157,6 +159,42 @@ void CLayers::InitBackground(class IMap *pMap) } } } + + InitTilemapSkip(); +} + +void CLayers::InitTilemapSkip() +{ + for(int g = 0; g < NumGroups(); g++) + { + CMapItemGroup *pGroup = GetGroup(g); + + for(int l = 0; l < pGroup->m_NumLayers; l++) + { + CMapItemLayer *pLayer = GetLayer(pGroup->m_StartLayer + l); + + if(pLayer->m_Type == LAYERTYPE_TILES) + { + CMapItemLayerTilemap *pTmap = (CMapItemLayerTilemap *)pLayer; + CTile *pTiles = (CTile *)m_pMap->GetData(pTmap->m_Data); + for(int y = 0; y < pTmap->m_Height; y++) + { + for(int x = 1; x < pTmap->m_Width;) + { + int sx; + for(sx = 1; x + sx < pTmap->m_Width && sx < 255; sx++) + { + if(pTiles[y * pTmap->m_Width + x + sx].m_Index) + break; + } + + pTiles[y * pTmap->m_Width + x].m_Skip = sx - 1; + x += sx; + } + } + } + } + } } CMapItemGroup *CLayers::GetGroup(int Index) const diff --git a/src/game/layers.h b/src/game/layers.h index fa8d6ac93..61a2f428e 100644 --- a/src/game/layers.h +++ b/src/game/layers.h @@ -16,6 +16,8 @@ class CLayers CMapItemLayerTilemap *m_pGameLayer; class IMap *m_pMap; + void InitTilemapSkip(); + public: CLayers(); void Init(class IKernel *pKernel); From 6c558c21380bdb3c4dc3665b82b867cdccfac438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20M=C3=BCller?= Date: Wed, 19 Jan 2022 22:27:59 +0100 Subject: [PATCH 2/4] Improve code style of InitTilemapSkip --- src/game/layers.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/game/layers.cpp b/src/game/layers.cpp index 4c8af5cb3..db8db09d8 100644 --- a/src/game/layers.cpp +++ b/src/game/layers.cpp @@ -167,29 +167,29 @@ void CLayers::InitTilemapSkip() { for(int g = 0; g < NumGroups(); g++) { - CMapItemGroup *pGroup = GetGroup(g); + const CMapItemGroup *pGroup = GetGroup(g); for(int l = 0; l < pGroup->m_NumLayers; l++) { - CMapItemLayer *pLayer = GetLayer(pGroup->m_StartLayer + l); + const CMapItemLayer *pLayer = GetLayer(pGroup->m_StartLayer + l); if(pLayer->m_Type == LAYERTYPE_TILES) { - CMapItemLayerTilemap *pTmap = (CMapItemLayerTilemap *)pLayer; - CTile *pTiles = (CTile *)m_pMap->GetData(pTmap->m_Data); - for(int y = 0; y < pTmap->m_Height; y++) + const CMapItemLayerTilemap *pTilemap = (CMapItemLayerTilemap *)pLayer; + CTile *pTiles = (CTile *)m_pMap->GetData(pTilemap->m_Data); + for(int y = 0; y < pTilemap->m_Height; y++) { - for(int x = 1; x < pTmap->m_Width;) + for(int x = 1; x < pTilemap->m_Width;) { - int sx; - for(sx = 1; x + sx < pTmap->m_Width && sx < 255; sx++) + int SkippedX; + for(SkippedX = 1; x + SkippedX < pTilemap->m_Width && SkippedX < 255; SkippedX++) { - if(pTiles[y * pTmap->m_Width + x + sx].m_Index) + if(pTiles[y * pTilemap->m_Width + x + SkippedX].m_Index) break; } - pTiles[y * pTmap->m_Width + x].m_Skip = sx - 1; - x += sx; + pTiles[y * pTilemap->m_Width + x].m_Skip = SkippedX - 1; + x += SkippedX; } } } From e9293877caf568705055843dfd0f1805c0fd97e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20M=C3=BCller?= Date: Wed, 19 Jan 2022 22:30:29 +0100 Subject: [PATCH 3/4] Add CLayers::NumLayers --- src/game/layers.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/layers.h b/src/game/layers.h index 61a2f428e..4d010d8e9 100644 --- a/src/game/layers.h +++ b/src/game/layers.h @@ -23,6 +23,7 @@ public: void Init(class IKernel *pKernel); void InitBackground(class IMap *pMap); int NumGroups() const { return m_GroupsNum; }; + int NumLayers() const { return m_LayersNum; } class IMap *Map() const { return m_pMap; }; CMapItemGroup *GameGroup() const { return m_pGameGroup; }; CMapItemLayerTilemap *GameLayer() const { return m_pGameLayer; }; From 4791bc4cd819cb8b8711ab1ac71c0b2cd9917c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20M=C3=BCller?= Date: Wed, 19 Jan 2022 22:31:49 +0100 Subject: [PATCH 4/4] Remove unnecessary trailing semicolons --- src/game/layers.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/game/layers.h b/src/game/layers.h index 4d010d8e9..10dc2df27 100644 --- a/src/game/layers.h +++ b/src/game/layers.h @@ -22,21 +22,21 @@ public: CLayers(); void Init(class IKernel *pKernel); void InitBackground(class IMap *pMap); - int NumGroups() const { return m_GroupsNum; }; + int NumGroups() const { return m_GroupsNum; } int NumLayers() const { return m_LayersNum; } - class IMap *Map() const { return m_pMap; }; - CMapItemGroup *GameGroup() const { return m_pGameGroup; }; - CMapItemLayerTilemap *GameLayer() const { return m_pGameLayer; }; + class IMap *Map() const { return m_pMap; } + CMapItemGroup *GameGroup() const { return m_pGameGroup; } + CMapItemLayerTilemap *GameLayer() const { return m_pGameLayer; } CMapItemGroup *GetGroup(int Index) const; CMapItemLayer *GetLayer(int Index) const; // DDRace - CMapItemLayerTilemap *TeleLayer() const { return m_pTeleLayer; }; - CMapItemLayerTilemap *SpeedupLayer() const { return m_pSpeedupLayer; }; - CMapItemLayerTilemap *FrontLayer() const { return m_pFrontLayer; }; - CMapItemLayerTilemap *SwitchLayer() const { return m_pSwitchLayer; }; - CMapItemLayerTilemap *TuneLayer() const { return m_pTuneLayer; }; + CMapItemLayerTilemap *TeleLayer() const { return m_pTeleLayer; } + CMapItemLayerTilemap *SpeedupLayer() const { return m_pSpeedupLayer; } + CMapItemLayerTilemap *FrontLayer() const { return m_pFrontLayer; } + CMapItemLayerTilemap *SwitchLayer() const { return m_pSwitchLayer; } + CMapItemLayerTilemap *TuneLayer() const { return m_pTuneLayer; } private: CMapItemLayerTilemap *m_pTeleLayer;