removing object from map after adding to inventory

This commit is contained in:
maka70vv committed 2025-03-02 03:10:01 +06:00
1 parent eb0bae44aa
commit 1e3be66495
4 files changed
+7 -14

No files matched your search

+5 -2
View File
@@ -121,10 +121,13 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
switch_room(1);
}
else if (event.type == SDL_MOUSEBUTTONDOWN) {
for (auto& ao : activeObjects) {
for (size_t i = 0; i < activeObjects.size(); ++i) {
auto& ao = activeObjects[i];
if (ao.highlighted) {
AddItemToInventory(ao.name, ao.activeObjectTexturePtr);
PrintInventory();
activeObjects.erase(activeObjects.begin() + i);
// Можно выйти из цикла, если объект удален, чтобы избежать ошибок индексации.
break;
}
}
// bx.Interpolate(animationCounter);
-9
View File
@@ -32,15 +32,6 @@ namespace ZL
}
}
bool HasObject(const std::string& name){
for (const auto& item : gInventory) {
if (item.name == name) {
return true;
}
}
return false;
}
const std::vector<InventoryItem>& ReturnInventory()
{
return gInventory;
-3
View File
@@ -24,9 +24,6 @@ namespace ZL
// Удалить предмет из инвентаря
void RemoveItemFromInventory(const std::string& name);
// todo check if object exists
bool HasObject(const std::string name);
// Вывести все предметы в инвентаре
void PrintInventory();
+2
View File
@@ -94,6 +94,7 @@ void RenderSystem::drawUI(const GameObjectManager& gameObjects) {
// Draw highlighted objects UI
for (const auto& ao : gameObjects.activeObjects) {
if (ao.highlighted) {
if (ao.activeObjectScreenTexturePtr){
int screenX, screenY;
worldToScreenCoordinates(ao.objectPos, currentProjectionModelView,
Environment::width, Environment::height, screenX, screenY);
@@ -102,6 +103,7 @@ void RenderSystem::drawUI(const GameObjectManager& gameObjects) {
glBindTexture(GL_TEXTURE_2D, ao.activeObjectScreenTexturePtr->getTexID());
renderer.DrawVertexRenderStruct(ao.activeObjectScreenMeshMutable);
renderer.PopMatrix();
} else {}
}
}