From 420d39d4672fb328933e44aa75816a049339a58f Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 8 Apr 2016 23:30:17 +1000 Subject: [PATCH] Barriers are being drawn --- client/barrier_manager.cpp | 6 +++++- client/barrier_manager.hpp | 1 + client/composite_image.hpp | 4 ++-- client/entities/base_barrier.cpp | 12 +++++++++++- client/entities/base_barrier.hpp | 2 ++ client/scenes/world.cpp | 4 ++++ common/graphics/image.cpp | 2 +- 7 files changed, 26 insertions(+), 5 deletions(-) diff --git a/client/barrier_manager.cpp b/client/barrier_manager.cpp index f9a985d..f04e2c6 100644 --- a/client/barrier_manager.cpp +++ b/client/barrier_manager.cpp @@ -46,7 +46,7 @@ void BarrierManager::UnloadTemplateImages() { } BaseBarrier* BarrierManager::Create(int index) { - barrierMap.emplace( index, BaseBarrier(baseImage, templateImages) ); + barrierMap.emplace(index, BaseBarrier(baseImage, templateImages)); return &barrierMap[index]; } @@ -74,4 +74,8 @@ BaseBarrier* BarrierManager::Find(int i) { std::map* BarrierManager::GetContainer() { return &barrierMap; +} + +std::map* BarrierManager::GetTemplateContainer() { + return &templateImages; } \ No newline at end of file diff --git a/client/barrier_manager.hpp b/client/barrier_manager.hpp index 39464ad..ae8c222 100644 --- a/client/barrier_manager.hpp +++ b/client/barrier_manager.hpp @@ -47,6 +47,7 @@ public: BaseBarrier* Find(int i); std::map* GetContainer(); + std::map* GetTemplateContainer(); private: Image baseImage; diff --git a/client/composite_image.hpp b/client/composite_image.hpp index 3b27d57..c33308b 100644 --- a/client/composite_image.hpp +++ b/client/composite_image.hpp @@ -77,8 +77,8 @@ template void CompositeImage::DrawTo(SDL_Renderer* const dest, Sint16 x, Sint16 y, double scaleX, double scaleY) { //draw all members, regardless of internal ordering for (auto& it : imageMap) { - if (it.first) { - it.second.DrawTo(dest, x, y, scaleX, scaleY); + if (it.second.first) { + it.second.second.DrawTo(dest, x, y, scaleX, scaleY); } } } diff --git a/client/entities/base_barrier.cpp b/client/entities/base_barrier.cpp index 5cdd623..adaebe4 100644 --- a/client/entities/base_barrier.cpp +++ b/client/entities/base_barrier.cpp @@ -26,7 +26,7 @@ #include BaseBarrier::BaseBarrier(Image& argBaseImage, std::map& templateImages) { - baseImage = argBaseImage; + baseImage.SetTexture(argBaseImage.GetTexture()); composite.SetImageTextures(templateImages); } @@ -38,6 +38,16 @@ void BaseBarrier::CorrectSprite() { //TODO: (0) link status to sprite } +void BaseBarrier::Update() { + // +} + +void BaseBarrier::DrawTo(SDL_Renderer* const dest, int camX, int camY) { + //ignore the default sprite for now + baseImage.DrawTo(dest, origin.x - camX, origin.y - camY); + composite.DrawTo(dest, origin.x - camX, origin.y - camY); +} + int BaseBarrier::SetStatus(int k, int v) { if (k >= 8 || k < 0) { return -1; diff --git a/client/entities/base_barrier.hpp b/client/entities/base_barrier.hpp index c04de00..7dc7d35 100644 --- a/client/entities/base_barrier.hpp +++ b/client/entities/base_barrier.hpp @@ -32,6 +32,8 @@ public: virtual ~BaseBarrier(); void CorrectSprite(); + void Update(); + void DrawTo(SDL_Renderer* const, int camX, int camY); int SetStatus(int, int); int FindStatus(int); diff --git a/client/scenes/world.cpp b/client/scenes/world.cpp index ca79d4d..f426d46 100644 --- a/client/scenes/world.cpp +++ b/client/scenes/world.cpp @@ -98,6 +98,7 @@ World::World(int* const argClientIndex, int* const argAccountIndex): SDL_RenderGetLogicalSize(GetRenderer(), &camera.width, &camera.height); //debug + barrierMgr.LoadBaseImage(GetRenderer(), config["dir.sprites"] + "/barrier/base.png"); barrierMgr.LoadTemplateImages(GetRenderer(), std::list{ config["dir.sprites"] + "/barrier/slot 1 green.png", @@ -110,6 +111,8 @@ World::World(int* const argClientIndex, int* const argAccountIndex): config["dir.sprites"] + "/barrier/slot 8 green.png" } ); + + std::cout << "Templates loaded: " << barrierMgr.GetTemplateContainer()->size() << std::endl; } World::~World() { @@ -221,6 +224,7 @@ void World::RenderFrame(SDL_Renderer* renderer) { for (auto& it : creatureMap) { it.second.DrawTo(renderer, camera.x, camera.y); } + barrierMgr.DrawTo(renderer, camera.x, camera.y); //draw UI disconnectButton.DrawTo(renderer); diff --git a/common/graphics/image.cpp b/common/graphics/image.cpp index 02b56d3..7eadeaf 100644 --- a/common/graphics/image.cpp +++ b/common/graphics/image.cpp @@ -161,7 +161,7 @@ SDL_Texture* Image::SetTexture(SDL_Texture* ptr) { clip.y = 0; if (SDL_QueryTexture(texture, nullptr, nullptr, &clip.w, &clip.h)) { std::ostringstream msg; - msg << "Failed to record metadata for a newly image image"; + msg << "Failed to record metadata for a newly set image"; msg << "; " << SDL_GetError(); throw(std::runtime_error(msg.str())); }