Barriers are being drawn
This commit is contained in:
@@ -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<int, BaseBarrier>* BarrierManager::GetContainer() {
|
||||
return &barrierMap;
|
||||
}
|
||||
|
||||
std::map<std::string, Image>* BarrierManager::GetTemplateContainer() {
|
||||
return &templateImages;
|
||||
}
|
||||
@@ -47,6 +47,7 @@ public:
|
||||
|
||||
BaseBarrier* Find(int i);
|
||||
std::map<int, BaseBarrier>* GetContainer();
|
||||
std::map<std::string, Image>* GetTemplateContainer();
|
||||
|
||||
private:
|
||||
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) {
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <cstring>
|
||||
|
||||
BaseBarrier::BaseBarrier(Image& argBaseImage, std::map<std::string, Image>& 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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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<std::string>{
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user