86 lines
2.0 KiB
C++
86 lines
2.0 KiB
C++
#include "Item.hpp"
|
|
|
|
void Item::set_text_property(const std::string& value, std::string& property, const std::string& property_name)
|
|
{
|
|
if (property == "")
|
|
{
|
|
if (value != "")
|
|
{
|
|
property = value;
|
|
SDL_Log("set %s to %s in %s", property_name.c_str(), property.c_str(), get_full_name().c_str());
|
|
}
|
|
else
|
|
{
|
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "empty string passed, not setting %s in %s",
|
|
property_name.c_str(), get_full_name().c_str());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "%s already set to %s in %s, not setting",
|
|
property_name.c_str(), property.c_str(), get_full_name().c_str());
|
|
}
|
|
}
|
|
|
|
void Item::destroy_texture(SDL_Texture* texture)
|
|
{
|
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "destroying texture %p", texture);
|
|
SDL_DestroyTexture(texture);
|
|
}
|
|
|
|
void Item::add_image_texture(SDL_Texture* texture)
|
|
{
|
|
image_textures.push_back(std::shared_ptr<SDL_Texture>(texture, Item::destroy_texture));
|
|
}
|
|
|
|
const std::vector<std::shared_ptr<SDL_Texture>>& Item::get_image_textures() const
|
|
{
|
|
return image_textures;
|
|
}
|
|
|
|
void Item::set_brand_name(const std::string& name)
|
|
{
|
|
set_text_property(name, brand_name, "brand name");
|
|
}
|
|
|
|
const std::string& Item::get_brand_name() const
|
|
{
|
|
return brand_name;
|
|
}
|
|
|
|
void Item::set_product_name(const std::string& name)
|
|
{
|
|
set_text_property(name, product_name, "product name");
|
|
}
|
|
|
|
const std::string& Item::get_product_name() const
|
|
{
|
|
return product_name;
|
|
}
|
|
|
|
void Item::set_upc(const std::string& upc)
|
|
{
|
|
set_text_property(upc, this->upc, "UPC");
|
|
}
|
|
|
|
const std::string& Item::get_upc() const
|
|
{
|
|
return upc;
|
|
}
|
|
|
|
std::string Item::get_full_name() const
|
|
{
|
|
std::string name = get_brand_name();
|
|
if (name != "")
|
|
{
|
|
name += " ";
|
|
}
|
|
name += get_product_name();
|
|
return name;
|
|
}
|
|
|
|
Item::~Item()
|
|
{
|
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "destroying item %p", this);
|
|
}
|