|
|
@@ -168,35 +168,37 @@ void Game::api(char* data)
|
|
|
char* uiml = new char[uimlLen + 1];
|
|
|
memcpy(uiml, data + 7 + len, uimlLen);
|
|
|
uiml[uimlLen] = 0;
|
|
|
- UIMLDialog* dialog
|
|
|
- = new UIMLDialog(uiml, [this](UIMLDialog* dialog) {
|
|
|
- window->zScreen()->postAction([this, dialog]() {
|
|
|
- int index = 0;
|
|
|
- dialogLock.lockWrite();
|
|
|
- for (UIMLDialog* d : dialogs)
|
|
|
- {
|
|
|
- if (d == dialog)
|
|
|
+ window->zScreen()->postAction([this, uiml]() {
|
|
|
+ UIMLDialog* dialog
|
|
|
+ = new UIMLDialog(uiml, [this](UIMLDialog* dialog) {
|
|
|
+ window->zScreen()->postAction([this, dialog]() {
|
|
|
+ int index = 0;
|
|
|
+ dialogLock.lockWrite();
|
|
|
+ for (UIMLDialog* d : dialogs)
|
|
|
{
|
|
|
- window->zScreen()->removeMember(d);
|
|
|
- dialogs.remove(index);
|
|
|
- World::INSTANCE->zKamera()
|
|
|
- ->setControlEnabled(
|
|
|
- dialogs.getEntryCount() == 0);
|
|
|
- updateRecipieVisibility();
|
|
|
- break;
|
|
|
+ if (d == dialog)
|
|
|
+ {
|
|
|
+ window->zScreen()->removeMember(d);
|
|
|
+ dialogs.remove(index);
|
|
|
+ World::INSTANCE->zKamera()
|
|
|
+ ->setControlEnabled(
|
|
|
+ dialogs.getEntryCount() == 0);
|
|
|
+ updateRecipieVisibility();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ index++;
|
|
|
}
|
|
|
- index++;
|
|
|
- }
|
|
|
- dialogLock.unlockWrite();
|
|
|
+ dialogLock.unlockWrite();
|
|
|
+ });
|
|
|
});
|
|
|
- });
|
|
|
- dialogLock.lockWrite();
|
|
|
- dialogs.add(dialog);
|
|
|
- dialogLock.unlockWrite();
|
|
|
- updateRecipieVisibility();
|
|
|
- World::INSTANCE->zKamera()->setControlEnabled(0);
|
|
|
- window->zScreen()->addMember(dialog);
|
|
|
- delete[] uiml;
|
|
|
+ dialogLock.lockWrite();
|
|
|
+ dialogs.add(dialog);
|
|
|
+ dialogLock.unlockWrite();
|
|
|
+ updateRecipieVisibility();
|
|
|
+ World::INSTANCE->zKamera()->setControlEnabled(0);
|
|
|
+ window->zScreen()->addMember(dialog);
|
|
|
+ delete[] uiml;
|
|
|
+ });
|
|
|
}
|
|
|
break;
|
|
|
}
|