not worked version of inventory choosing

This commit is contained in:
maka70vv 2025-03-02 16:48:31 +06:00
parent d79a684868
commit 70f30b8b3a
4 changed files with 33 additions and 3 deletions

View File

@ -13,6 +13,7 @@ const float GameObjectManager::INVENTORY_MARGIN = 10.0f;
void GameObjectManager::initialize() {
current_room_index = 0;
objects_in_inventory = 0;
coneTexturePtr = std::make_shared<Texture>(CreateTextureDataFromBmp24("./conus.bmp"));
@ -145,7 +146,8 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
continue;
}
AddItemToInventory(ao->name, ao->activeObjectTexturePtr);
AddItemToInventory(ao->name, ao->activeObjectTexturePtr, objects_in_inventory+1);
objects_in_inventory++;
aoMgr.removeByName(ao->name);
}
@ -234,6 +236,30 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
Environment::violaLastWalkFrame = -1;
}
break;
case SDLK_1:
{
int hot_key = 1;
std::string keyStr = std::to_string(hot_key);
auto it = gInventory.find(keyStr);
if (it != gInventory.end()) {
it->second.isSelected = true;
}
std::cout << keyStr << std::endl;
} break;
case SDLK_2:
{
int hot_key = 2;
std::string keyStr = std::to_string(hot_key);
auto it = gInventory.find(keyStr);
if (it != gInventory.end()) {
it->second.isSelected = true;
}
} break;
// ...handle other keys...
}
}

View File

@ -55,6 +55,7 @@ public:
static const float INVENTORY_ICON_SIZE;
static const float INVENTORY_MARGIN;
ActiveObjectManager aoMgr;
int objects_in_inventory;
private:
//int animationCounter = 0;

View File

@ -5,11 +5,12 @@ namespace ZL
// Определяем глобальную переменную
std::unordered_map<std::string, InventoryItem> gInventoryMap;
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex)
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex, int hot_key)
{
InventoryItem item;
item.name = name;
item.texture = tex;
item.hot_key = hot_key;
// Вставляем или перезаписываем (operator[] так сделает).
gInventoryMap[name] = item;

View File

@ -12,13 +12,15 @@ namespace ZL
{
std::string name;
std::shared_ptr<Texture> texture;
bool isSelected = false;
int hot_key;
};
// Глобальное хранилище предметов
extern std::unordered_map<std::string, InventoryItem> gInventory;
// Добавить предмет в инвентарь
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex);
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex, int hot_key);
// Удалить предмет из инвентаря
void RemoveItemFromInventory(const std::string& name);