corrected text and GUI rectangle removal

This commit is contained in:
devZoGok
2023-12-30 12:33:37 +02:00
parent 7be01b1f3b
commit 07b46207a6
+11 -5
View File
@@ -207,18 +207,20 @@ namespace vb01Gui{
for (int i = 0; i < guiRectangles.size(); i++) {
if (r == guiRectangles[i]) {
guiRectangles.erase(guiRectangles.begin() + i);
Root::getSingleton()->getGuiNode()->dettachChild(r);
delete r;
break;
}
}
}
//TODO delete node too
void AbstractGuiManager::removeText(Text* t) {
for (int i = 0; i < texts.size(); i++) {
if (t == texts[i]) {
texts.erase(texts.begin() + i);
delete t;
Node *textNode = t->getNode();
Root::getSingleton()->getGuiNode()->dettachChild(textNode);
delete textNode;
break;
}
}
@@ -311,8 +313,10 @@ namespace vb01Gui{
while(targetId != guiRectangles.size()) {
if(find(exceptions.begin(), exceptions.end(), guiRectangles[targetId]) == exceptions.end()){
delete guiRectangles[guiRectangles.size() - 1];
Node *guiRect = guiRectangles[guiRectangles.size() - 1];
guiRectangles.pop_back();
Root::getSingleton()->getGuiNode()->dettachChild(guiRect);
delete guiRect;
}
else
targetId++;
@@ -322,10 +326,12 @@ namespace vb01Gui{
void AbstractGuiManager::removeAllTexts(vector<Text*> exceptions) {
int targetId = 0;
while(targetId != textboxes.size()) {
while(targetId != texts.size()) {
if(find(exceptions.begin(), exceptions.end(), texts[targetId]) == exceptions.end()){
delete texts[texts.size() - 1];
Node *textNode = texts[texts.size() - 1]->getNode();
texts.pop_back();
Root::getSingleton()->getGuiNode()->dettachChild(textNode);
delete textNode;
}
else
targetId++;