Barriers are being drawn
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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()));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user