Merge pull request #18 from mephi1984/pavel

Pavel
This commit is contained in:
Pavel Makarov authored and GitHub committed 2025-03-02 16:49:50 +06:00
commit ebc63e6663
4 files changed
+35 -5

No files matched your search

+29 -3
View File
@@ -7,12 +7,13 @@
namespace ZL {
const float GameObjectManager::INVENTORY_ICON_SIZE = 32.0f;
const float GameObjectManager::INVENTORY_ICON_SIZE = 64.0f;
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"));
@@ -104,7 +105,7 @@ void GameObjectManager::initialize() {
// Initialize inventory
inventoryIconMesh = CreateRect2D(
{0.0f, 0.0f},
{0.0f, 40.0f},
{INVENTORY_ICON_SIZE/2, INVENTORY_ICON_SIZE/2},
0.5f
);
@@ -150,7 +151,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);
}
@@ -239,6 +241,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...
}
}
+1
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;
+2 -1
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;
+3 -1
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);