From f71f69cfc24297e3d0073b1bedbd012391a7316e Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Tue, 9 Nov 2021 18:42:48 +0100 Subject: [PATCH] feat: basic castle rendering --- src/render/loader/WorldLoader.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/render/loader/WorldLoader.cpp b/src/render/loader/WorldLoader.cpp index 69ee536..07a5e1e 100644 --- a/src/render/loader/WorldLoader.cpp +++ b/src/render/loader/WorldLoader.cpp @@ -123,6 +123,34 @@ GL::VertexArray loadWorldModel(const td::game::World* world) { } } + for (int castleColor = 0; castleColor < 2; castleColor++) { + const game::TeamCastle& castle = world->getTeam(game::TeamColor(castleColor)).getCastle(); + float fromX = castle.x - 2, toX = castle.x + 3; + float fromY = castle.y - 2, toY = castle.y + 3; + + positions.insert(positions.end(), { + fromX, fromY, + fromX, toY, + toX, fromY, + + toX, toY, + fromX, toY, + toX, fromY, + }); + + for (int i = 0; i < 6; i++) { + int color = 255; + color |= world->getSpawnColor(game::TeamColor(castleColor)).r << 24; + color |= world->getSpawnColor(game::TeamColor(castleColor)).g << 16; + color |= world->getSpawnColor(game::TeamColor(castleColor)).b << 8; + + int newColorIndex = colors.size(); + colors.push_back(0); + + memcpy(colors.data() + newColorIndex, &color, 1 * sizeof(int)); + } + } + GL::VertexBuffer positionVBO(positions, 2); positionVBO.addVertexAttribPointer(0, 2, 0); GL::VertexBuffer colorVBO(colors, 1);