Barriers are being drawn

This commit is contained in:
2016-04-08 23:30:17 +10:00
parent e2e2e243d4
commit 420d39d467
7 changed files with 26 additions and 5 deletions
+5 -1
View File
@@ -46,7 +46,7 @@ void BarrierManager::UnloadTemplateImages() {
} }
BaseBarrier* BarrierManager::Create(int index) { BaseBarrier* BarrierManager::Create(int index) {
barrierMap.emplace( index, BaseBarrier(baseImage, templateImages) ); barrierMap.emplace(index, BaseBarrier(baseImage, templateImages));
return &barrierMap[index]; return &barrierMap[index];
} }
@@ -74,4 +74,8 @@ BaseBarrier* BarrierManager::Find(int i) {
std::map<int, BaseBarrier>* BarrierManager::GetContainer() { std::map<int, BaseBarrier>* BarrierManager::GetContainer() {
return &barrierMap; return &barrierMap;
}
std::map<std::string, Image>* BarrierManager::GetTemplateContainer() {
return &templateImages;
} }
+1
View File
@@ -47,6 +47,7 @@ public:
BaseBarrier* Find(int i); BaseBarrier* Find(int i);
std::map<int, BaseBarrier>* GetContainer(); std::map<int, BaseBarrier>* GetContainer();
std::map<std::string, Image>* GetTemplateContainer();
private: private:
Image baseImage; Image baseImage;
+2 -2
View File
@@ -77,8 +77,8 @@ template<typename T>
void CompositeImage<T>::DrawTo(SDL_Renderer* const dest, Sint16 x, Sint16 y, double scaleX, double scaleY) { void CompositeImage<T>::DrawTo(SDL_Renderer* const dest, Sint16 x, Sint16 y, double scaleX, double scaleY) {
//draw all members, regardless of internal ordering //draw all members, regardless of internal ordering
for (auto& it : imageMap) { for (auto& it : imageMap) {
if (it.first) { if (it.second.first) {
it.second.DrawTo(dest, x, y, scaleX, scaleY); it.second.second.DrawTo(dest, x, y, scaleX, scaleY);
} }
} }
} }
+11 -1
View File
@@ -26,7 +26,7 @@
#include <cstring> #include <cstring>
BaseBarrier::BaseBarrier(Image& argBaseImage, std::map<std::string, Image>& templateImages) { BaseBarrier::BaseBarrier(Image& argBaseImage, std::map<std::string, Image>& templateImages) {
baseImage = argBaseImage; baseImage.SetTexture(argBaseImage.GetTexture());
composite.SetImageTextures(templateImages); composite.SetImageTextures(templateImages);
} }
@@ -38,6 +38,16 @@ void BaseBarrier::CorrectSprite() {
//TODO: (0) link status to sprite //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) { int BaseBarrier::SetStatus(int k, int v) {
if (k >= 8 || k < 0) { if (k >= 8 || k < 0) {
return -1; return -1;
+2
View File
@@ -32,6 +32,8 @@ public:
virtual ~BaseBarrier(); virtual ~BaseBarrier();
void CorrectSprite(); void CorrectSprite();
void Update();
void DrawTo(SDL_Renderer* const, int camX, int camY);
int SetStatus(int, int); int SetStatus(int, int);
int FindStatus(int); int FindStatus(int);
+4
View File
@@ -98,6 +98,7 @@ World::World(int* const argClientIndex, int* const argAccountIndex):
SDL_RenderGetLogicalSize(GetRenderer(), &camera.width, &camera.height); SDL_RenderGetLogicalSize(GetRenderer(), &camera.width, &camera.height);
//debug //debug
barrierMgr.LoadBaseImage(GetRenderer(), config["dir.sprites"] + "/barrier/base.png");
barrierMgr.LoadTemplateImages(GetRenderer(), barrierMgr.LoadTemplateImages(GetRenderer(),
std::list<std::string>{ std::list<std::string>{
config["dir.sprites"] + "/barrier/slot 1 green.png", 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" config["dir.sprites"] + "/barrier/slot 8 green.png"
} }
); );
std::cout << "Templates loaded: " << barrierMgr.GetTemplateContainer()->size() << std::endl;
} }
World::~World() { World::~World() {
@@ -221,6 +224,7 @@ void World::RenderFrame(SDL_Renderer* renderer) {
for (auto& it : creatureMap) { for (auto& it : creatureMap) {
it.second.DrawTo(renderer, camera.x, camera.y); it.second.DrawTo(renderer, camera.x, camera.y);
} }
barrierMgr.DrawTo(renderer, camera.x, camera.y);
//draw UI //draw UI
disconnectButton.DrawTo(renderer); disconnectButton.DrawTo(renderer);
+1 -1
View File
@@ -161,7 +161,7 @@ SDL_Texture* Image::SetTexture(SDL_Texture* ptr) {
clip.y = 0; clip.y = 0;
if (SDL_QueryTexture(texture, nullptr, nullptr, &clip.w, &clip.h)) { if (SDL_QueryTexture(texture, nullptr, nullptr, &clip.w, &clip.h)) {
std::ostringstream msg; 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(); msg << "; " << SDL_GetError();
throw(std::runtime_error(msg.str())); throw(std::runtime_error(msg.str()));
} }