From 9fba3d97f19ec6f881f29cf59e3cb0613a6806ab Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Fri, 9 Aug 2024 15:30:04 +0000 Subject: [PATCH] Renamed & unified OBJECT_CONSTRUCTION macro set --- client/adventureMap/AdventureMapInterface.cpp | 4 +- client/adventureMap/AdventureMapWidget.cpp | 2 +- client/adventureMap/AdventureOptions.cpp | 2 +- client/adventureMap/CInfoBar.cpp | 32 ++++++------- client/adventureMap/CList.cpp | 10 ++-- client/adventureMap/CMinimap.cpp | 4 +- client/adventureMap/CResDataBar.cpp | 2 +- client/adventureMap/TurnTimerWidget.cpp | 2 +- client/battle/BattleFieldController.cpp | 4 +- client/battle/BattleInterfaceClasses.cpp | 24 +++++----- client/battle/BattleWindow.cpp | 12 ++--- .../globalLobby/GlobalLobbyInviteWindow.cpp | 4 +- client/globalLobby/GlobalLobbyLoginWindow.cpp | 2 +- client/globalLobby/GlobalLobbyRoomWindow.cpp | 6 +-- client/globalLobby/GlobalLobbyServerSetup.cpp | 2 +- client/globalLobby/GlobalLobbyWidget.cpp | 10 ++-- client/globalLobby/GlobalLobbyWindow.cpp | 2 +- client/gui/CGuiHandler.cpp | 15 +----- client/gui/CIntObject.h | 22 +++------ client/gui/InterfaceObjectConfigurable.cpp | 4 +- client/lobby/CBonusSelection.cpp | 6 +-- client/lobby/CCampaignInfoScreen.cpp | 2 +- client/lobby/CLobbyScreen.cpp | 2 +- client/lobby/CSavingScreen.cpp | 2 +- client/lobby/CScenarioInfoScreen.cpp | 2 +- client/lobby/CSelectionBase.cpp | 20 ++++---- client/lobby/OptionsTab.cpp | 12 ++--- client/lobby/RandomMapTab.cpp | 8 ++-- client/lobby/SelectionTab.cpp | 4 +- client/mainmenu/CCampaignScreen.cpp | 6 +-- client/mainmenu/CHighScoreScreen.cpp | 14 +++--- client/mainmenu/CMainMenu.cpp | 14 +++--- client/mainmenu/CPrologEpilogVideo.cpp | 2 +- client/mainmenu/CreditsScreen.cpp | 2 +- client/mapView/MapView.cpp | 4 +- client/widgets/Buttons.cpp | 8 ++-- client/widgets/CArtPlace.cpp | 2 +- client/widgets/CArtifactsOfHeroBackpack.cpp | 2 +- client/widgets/CArtifactsOfHeroBase.cpp | 4 +- client/widgets/CComponent.cpp | 6 +-- client/widgets/CGarrisonInt.cpp | 4 +- client/widgets/CTextInput.cpp | 6 +-- client/widgets/CreatureCostBox.cpp | 4 +- client/widgets/MiscWidgets.cpp | 28 +++++------ client/widgets/ObjectLists.cpp | 4 +- client/widgets/RadialMenu.cpp | 4 +- client/widgets/Slider.cpp | 2 +- client/widgets/TextControls.cpp | 8 ++-- client/widgets/markets/CAltarArtifacts.cpp | 2 +- client/widgets/markets/CAltarCreatures.cpp | 2 +- client/widgets/markets/CArtifactsBuying.cpp | 2 +- client/widgets/markets/CArtifactsSelling.cpp | 2 +- client/widgets/markets/CFreelancerGuild.cpp | 2 +- client/widgets/markets/CMarketBase.cpp | 12 ++--- client/widgets/markets/CMarketResources.cpp | 2 +- client/widgets/markets/CTransferResources.cpp | 2 +- client/widgets/markets/TradePanels.cpp | 16 +++---- client/windows/CCastleInterface.cpp | 40 ++++++++-------- client/windows/CCreatureWindow.cpp | 20 ++++---- client/windows/CExchangeWindow.cpp | 2 +- client/windows/CHeroBackpackWindow.cpp | 4 +- client/windows/CHeroOverview.cpp | 2 +- client/windows/CHeroWindow.cpp | 6 +-- client/windows/CKingdomInterface.cpp | 16 +++---- client/windows/CMapOverview.cpp | 2 +- client/windows/CMarketWindow.cpp | 16 +++---- client/windows/CPuzzleWindow.cpp | 2 +- client/windows/CQuestLog.cpp | 8 ++-- client/windows/CSpellWindow.cpp | 6 +-- client/windows/CTutorialWindow.cpp | 4 +- client/windows/CWindowObject.cpp | 6 +-- client/windows/CreaturePurchaseCard.cpp | 2 +- client/windows/GUIClasses.cpp | 46 +++++++++---------- client/windows/InfoWindows.cpp | 12 ++--- client/windows/QuickRecruitmentWindow.cpp | 2 +- .../windows/settings/AdventureOptionsTab.cpp | 2 +- client/windows/settings/BattleOptionsTab.cpp | 2 +- client/windows/settings/GeneralOptionsTab.cpp | 2 +- client/windows/settings/OtherOptionsTab.cpp | 2 +- .../windows/settings/SettingsMainWindow.cpp | 2 +- 80 files changed, 287 insertions(+), 308 deletions(-) diff --git a/client/adventureMap/AdventureMapInterface.cpp b/client/adventureMap/AdventureMapInterface.cpp index e602365fe..ef26a877b 100644 --- a/client/adventureMap/AdventureMapInterface.cpp +++ b/client/adventureMap/AdventureMapInterface.cpp @@ -58,7 +58,7 @@ AdventureMapInterface::AdventureMapInterface(): scrollingWasBlocked(false), backgroundDimLevel(settings["adventure"]["backgroundDimLevel"].Integer()) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.x = pos.y = 0; pos.w = GH.screenDimensions().x; pos.h = GH.screenDimensions().y; @@ -898,7 +898,7 @@ void AdventureMapInterface::hotkeyZoom(int delta, bool useDeadZone) void AdventureMapInterface::onScreenResize() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; // remember our activation state and reactive after reconstruction // since othervice activate() calls for created elements will bypass virtual dispatch diff --git a/client/adventureMap/AdventureMapWidget.cpp b/client/adventureMap/AdventureMapWidget.cpp index 80b6399fc..0d6ccb14e 100644 --- a/client/adventureMap/AdventureMapWidget.cpp +++ b/client/adventureMap/AdventureMapWidget.cpp @@ -381,7 +381,7 @@ CAdventureMapIcon::CAdventureMapIcon(const Point & position, const AnimationPath : index(index) , iconsPerPlayer(iconsPerPlayer) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos += position; image = std::make_shared(animation, index); } diff --git a/client/adventureMap/AdventureOptions.cpp b/client/adventureMap/AdventureOptions.cpp index a0acb6ead..2de6371bc 100644 --- a/client/adventureMap/AdventureOptions.cpp +++ b/client/adventureMap/AdventureOptions.cpp @@ -28,7 +28,7 @@ AdventureOptions::AdventureOptions() : CWindowObject(PLAYER_COLORED, ImagePath::builtin("ADVOPTS")) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; viewWorld = std::make_shared(Point(24, 23), AnimationPath::builtin("ADVVIEW.DEF"), CButton::tooltip(), [&](){ close(); }, EShortcut::ADVENTURE_VIEW_WORLD); viewWorld->addCallback([] { LOCPLINT->viewWorldMap(); }); diff --git a/client/adventureMap/CInfoBar.cpp b/client/adventureMap/CInfoBar.cpp index deadd6fc6..b319bf250 100644 --- a/client/adventureMap/CInfoBar.cpp +++ b/client/adventureMap/CInfoBar.cpp @@ -51,7 +51,7 @@ CInfoBar::EmptyVisibleInfo::EmptyVisibleInfo() CInfoBar::VisibleHeroInfo::VisibleHeroInfo(const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("ADSTATHR")); if(settings["gameTweaks"]["infoBarCreatureManagement"].Bool()) @@ -62,7 +62,7 @@ CInfoBar::VisibleHeroInfo::VisibleHeroInfo(const CGHeroInstance * hero) CInfoBar::VisibleTownInfo::VisibleTownInfo(const CGTownInstance * town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("ADSTATCS")); if(settings["gameTweaks"]["infoBarCreatureManagement"].Bool()) @@ -73,7 +73,7 @@ CInfoBar::VisibleTownInfo::VisibleTownInfo(const CGTownInstance * town) CInfoBar::VisibleDateInfo::VisibleDateInfo() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; animation = std::make_shared(1, 0, getNewDayName(), CShowableAnim::PLAY_ONCE, 180);// H3 uses around 175-180 ms per frame animation->setDuration(1500); @@ -114,7 +114,7 @@ AnimationPath CInfoBar::VisibleDateInfo::getNewDayName() CInfoBar::VisibleEnemyTurnInfo::VisibleEnemyTurnInfo(PlayerColor player) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("ADSTATNX")); banner = std::make_shared(AnimationPath::builtin("CREST58"), player.getNum(), 0, 20, 51); sand = std::make_shared(99, 51, AnimationPath::builtin("HOURSAND"), 0, 100); // H3 uses around 100 ms per frame @@ -123,7 +123,7 @@ CInfoBar::VisibleEnemyTurnInfo::VisibleEnemyTurnInfo(PlayerColor player) CInfoBar::VisibleGameStatusInfo::VisibleGameStatusInfo() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; //get amount of halls of each level std::vector halls(4, 0); for(auto town : LOCPLINT->localState->getOwnedTowns()) @@ -180,7 +180,7 @@ CInfoBar::VisibleGameStatusInfo::VisibleGameStatusInfo() CInfoBar::VisibleComponentInfo::VisibleComponentInfo(const std::vector & compsToDisplay, std::string message, int textH, bool tiny) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("ADSTATOT"), 1, 0); auto fullRect = Rect(CInfoBar::offset, CInfoBar::offset, data_width - 2 * CInfoBar::offset, data_height - 2 * CInfoBar::offset); @@ -250,14 +250,14 @@ void CInfoBar::playNewDaySound() void CInfoBar::reset() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; state = EMPTY; visibleInfo = std::make_shared(); } void CInfoBar::showSelection() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(LOCPLINT->localState->getCurrentHero()) { showHeroSelection(LOCPLINT->localState->getCurrentHero()); @@ -325,7 +325,7 @@ CInfoBar::CInfoBar(const Rect & position) state(EMPTY), listener(settings.listen["gameTweaks"]["infoBarCreatureManagement"]) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.w = position.w; pos.h = position.h; listener(std::bind(&CInfoBar::OnInfoBarCreatureManagementChanged, this)); @@ -349,7 +349,7 @@ void CInfoBar::setTimer(uint32_t msToTrigger) void CInfoBar::showDate() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; playNewDaySound(); state = DATE; visibleInfo = std::make_shared(); @@ -475,7 +475,7 @@ void CInfoBar::popAll() void CInfoBar::popComponents(bool remove) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(remove && !componentsQueue.empty()) componentsQueue.pop(); if(!componentsQueue.empty()) @@ -492,7 +492,7 @@ void CInfoBar::popComponents(bool remove) void CInfoBar::pushComponents(const std::vector & comps, std::string message, int textH, bool tiny, int timer) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; componentsQueue.emplace(VisibleComponentInfo::Cache(comps, message, textH, tiny), timer); } @@ -503,7 +503,7 @@ bool CInfoBar::showingComponents() void CInfoBar::startEnemyTurn(PlayerColor color) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; state = AITURN; visibleInfo = std::make_shared(color); redraw(); @@ -511,7 +511,7 @@ void CInfoBar::startEnemyTurn(PlayerColor color) void CInfoBar::showHeroSelection(const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(!hero) { reset(); @@ -526,7 +526,7 @@ void CInfoBar::showHeroSelection(const CGHeroInstance * hero) void CInfoBar::showTownSelection(const CGTownInstance * town) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(!town) { reset(); @@ -541,7 +541,7 @@ void CInfoBar::showTownSelection(const CGTownInstance * town) void CInfoBar::showGameStatus() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; state = GAME; visibleInfo = std::make_shared(); setTimer(3000); diff --git a/client/adventureMap/CList.cpp b/client/adventureMap/CList.cpp index 759201f56..9e3b4f011 100644 --- a/client/adventureMap/CList.cpp +++ b/client/adventureMap/CList.cpp @@ -70,7 +70,7 @@ void CList::CListItem::hover(bool on) void CList::CListItem::onSelect(bool on) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; selection.reset(); if(on) selection = genSelection(); @@ -95,7 +95,7 @@ void CList::showAll(Canvas & to) void CList::createList(Point firstItemPosition, Point itemPositionDelta, size_t listAmount) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; listBox = std::make_shared(std::bind(&CList::createItem, this, _1), firstItemPosition, itemPositionDelta, size, listAmount); } @@ -206,7 +206,7 @@ void CList::selectPrev() CHeroList::CEmptyHeroItem::CEmptyHeroItem() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; movement = std::make_shared(AnimationPath::builtin("IMOBIL"), 0, 0, 0, 1); portrait = std::make_shared(ImagePath::builtin("HPSXXX"), movement->pos.w + 1, 0); mana = std::make_shared(AnimationPath::builtin("IMANA"), 0, 0, movement->pos.w + portrait->pos.w + 2, 1 ); @@ -219,7 +219,7 @@ CHeroList::CHeroItem::CHeroItem(CHeroList *parent, const CGHeroInstance * Hero) : CListItem(parent), hero(Hero) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; movement = std::make_shared(AnimationPath::builtin("IMOBIL"), 0, 0, 0, 1); portrait = std::make_shared(AnimationPath::builtin("PortraitsSmall"), hero->getIconIndex(), 0, movement->pos.w + 1); mana = std::make_shared(AnimationPath::builtin("IMANA"), 0, 0, movement->pos.w + portrait->pos.w + 2, 1); @@ -364,7 +364,7 @@ CTownList::CTownItem::CTownItem(CTownList *parent, const CGTownInstance *Town): CListItem(parent), town(Town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; picture = std::make_shared(AnimationPath::builtin("ITPA"), 0); pos = picture->pos; update(); diff --git a/client/adventureMap/CMinimap.cpp b/client/adventureMap/CMinimap.cpp index 50c89d884..a40b31d93 100644 --- a/client/adventureMap/CMinimap.cpp +++ b/client/adventureMap/CMinimap.cpp @@ -90,7 +90,7 @@ CMinimap::CMinimap(const Rect & position) : CIntObject(LCLICK | SHOW_POPUP | DRAG | MOVE | GESTURE, position.topLeft()), level(0) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; double maxSideLengthSrc = std::max(LOCPLINT->cb->getMapSize().x, LOCPLINT->cb->getMapSize().y); double maxSideLengthDst = std::max(position.w, position.h); @@ -202,7 +202,7 @@ void CMinimap::update() if(aiShield->recActions & UPDATE) //AI turn is going on. There is no need to update minimap return; - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; minimap = std::make_shared(this, level); redraw(); } diff --git a/client/adventureMap/CResDataBar.cpp b/client/adventureMap/CResDataBar.cpp index 675aac23b..c26f41d65 100644 --- a/client/adventureMap/CResDataBar.cpp +++ b/client/adventureMap/CResDataBar.cpp @@ -29,7 +29,7 @@ CResDataBar::CResDataBar(const ImagePath & imageName, const Point & position) pos.x += position.x; pos.y += position.y; - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(imageName, 0, 0); background->setPlayerColor(LOCPLINT->playerID); diff --git a/client/adventureMap/TurnTimerWidget.cpp b/client/adventureMap/TurnTimerWidget.cpp index ac7cb7602..aea34c066 100644 --- a/client/adventureMap/TurnTimerWidget.cpp +++ b/client/adventureMap/TurnTimerWidget.cpp @@ -35,7 +35,7 @@ TurnTimerWidget::TurnTimerWidget(const Point & position, PlayerColor player) , lastSoundCheckSeconds(0) , isBattleMode(player.isValidPlayer()) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos += position; pos.w = 0; diff --git a/client/battle/BattleFieldController.cpp b/client/battle/BattleFieldController.cpp index ee25131e0..8237cdaf3 100644 --- a/client/battle/BattleFieldController.cpp +++ b/client/battle/BattleFieldController.cpp @@ -110,7 +110,7 @@ static const std::map hexEdgeMaskToFrameIndex = BattleFieldController::BattleFieldController(BattleInterface & owner): owner(owner) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; //preparing cells and hexes cellBorder = GH.renderHandler().loadImage(ImagePath::builtin("CCELLGRD.BMP"), EImageBlitMode::COLORKEY); @@ -156,7 +156,7 @@ void BattleFieldController::activate() void BattleFieldController::createHeroes() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; // create heroes as part of our constructor for correct positioning inside battlefield if(owner.attackingHeroInstance) diff --git a/client/battle/BattleInterfaceClasses.cpp b/client/battle/BattleInterfaceClasses.cpp index 4d43dd452..7a2035fc5 100644 --- a/client/battle/BattleInterfaceClasses.cpp +++ b/client/battle/BattleInterfaceClasses.cpp @@ -158,7 +158,7 @@ BattleConsole::BattleConsole(const BattleInterface & owner, std::shared_ptr> QuickSpellPanel::getSpells() void QuickSpellPanel::create() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; const JsonNode config = JsonUtils::assembleFromFiles("config/shortcutsConfig"); @@ -542,7 +542,7 @@ void QuickSpellPanel::inputModeChanged(InputMode modi) HeroInfoBasicPanel::HeroInfoBasicPanel(const InfoAboutHero & hero, Point * position, bool initializeBackground) : CIntObject(0) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if (position != nullptr) moveTo(*position); @@ -557,7 +557,7 @@ HeroInfoBasicPanel::HeroInfoBasicPanel(const InfoAboutHero & hero, Point * posit void HeroInfoBasicPanel::initializeData(const InfoAboutHero & hero) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; auto attack = hero.details->primskills[0]; auto defense = hero.details->primskills[1]; auto power = hero.details->primskills[2]; @@ -610,7 +610,7 @@ void HeroInfoBasicPanel::show(Canvas & to) StackInfoBasicPanel::StackInfoBasicPanel(const CStack * stack, bool initializeBackground) : CIntObject(0) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(initializeBackground) { @@ -626,7 +626,7 @@ StackInfoBasicPanel::StackInfoBasicPanel(const CStack * stack, bool initializeBa void StackInfoBasicPanel::initializeData(const CStack * stack) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; icons.push_back(std::make_shared(AnimationPath::builtin("TWCRPORT"), stack->creatureId() + 2, 0, 10, 6)); labels.push_back(std::make_shared(10 + 58, 6 + 64, FONT_MEDIUM, ETextAlignment::BOTTOMRIGHT, Colors::WHITE, TextOperations::formatMetric(stack->getCount(), 4))); @@ -718,7 +718,7 @@ void StackInfoBasicPanel::show(Canvas & to) HeroInfoWindow::HeroInfoWindow(const InfoAboutHero & hero, Point * position) : CWindowObject(RCLICK_POPUP | SHADOW_DISABLED, ImagePath::builtin("CHRPOP")) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if (position != nullptr) moveTo(*position); @@ -730,7 +730,7 @@ HeroInfoWindow::HeroInfoWindow(const InfoAboutHero & hero, Point * position) BattleResultWindow::BattleResultWindow(const BattleResult & br, CPlayerInterface & _owner, bool allowReplay) : owner(_owner) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("CPRESULT")); background->setPlayerColor(owner.playerID); @@ -961,7 +961,7 @@ StackQueue::StackQueue(bool Embedded, BattleInterface & owner) : embedded(Embedded), owner(owner) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; uint32_t queueSize = QUEUE_SIZE_BIG; @@ -1045,7 +1045,7 @@ std::optional StackQueue::getHoveredUnitIdIfAny() const StackQueue::StackBox::StackBox(StackQueue * owner): CIntObject(SHOW_POPUP | HOVER), owner(owner) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin(owner->embedded ? "StackQueueSmall" : "StackQueueLarge")); pos.w = background->pos.w; diff --git a/client/battle/BattleWindow.cpp b/client/battle/BattleWindow.cpp index cba351e3a..d6e162486 100644 --- a/client/battle/BattleWindow.cpp +++ b/client/battle/BattleWindow.cpp @@ -49,7 +49,7 @@ BattleWindow::BattleWindow(BattleInterface & Owner): owner(Owner), lastAlternativeAction(PossiblePlayerBattleAction::INVALID) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 800; pos.h = 600; pos = center(); @@ -123,7 +123,7 @@ BattleWindow::BattleWindow(BattleInterface & Owner): void BattleWindow::createQueue() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; //create stack queue and adjust our own position bool embedQueue; @@ -150,7 +150,7 @@ void BattleWindow::createQueue() void BattleWindow::createStickyHeroInfoWindows() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; if(owner.defendingHeroInstance) { @@ -181,7 +181,7 @@ void BattleWindow::createStickyHeroInfoWindows() void BattleWindow::createQuickSpellWindow() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; quickSpellWindow = std::make_shared(owner); quickSpellWindow->moveTo(Point(pos.x - 67, pos.y)); @@ -238,7 +238,7 @@ void BattleWindow::showStickyQuickSpellWindow() void BattleWindow::createTimerInfoWindows() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; int xOffsetAttacker = quickSpellWindow->isEnabled ? -53 : 0; @@ -416,7 +416,7 @@ void BattleWindow::updateHeroInfoWindow(uint8_t side, const InfoAboutHero & hero void BattleWindow::updateStackInfoWindow(const CStack * stack) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; bool showInfoWindows = settings["battle"]["stickyHeroInfoWindows"].Bool(); diff --git a/client/globalLobby/GlobalLobbyInviteWindow.cpp b/client/globalLobby/GlobalLobbyInviteWindow.cpp index d954f3268..02d37d3af 100644 --- a/client/globalLobby/GlobalLobbyInviteWindow.cpp +++ b/client/globalLobby/GlobalLobbyInviteWindow.cpp @@ -47,7 +47,7 @@ GlobalLobbyInviteAccountCard::GlobalLobbyInviteAccountCard(const GlobalLobbyAcco } } - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; if (thisAccountInvited) backgroundOverlay = std::make_shared(Rect(0, 0, pos.w, pos.h), ColorRGBA(0, 0, 0, 128), Colors::WHITE, 1); else @@ -73,7 +73,7 @@ void GlobalLobbyInviteAccountCard::clickPressed(const Point & cursorPosition) GlobalLobbyInviteWindow::GlobalLobbyInviteWindow() : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 236; pos.h = 420; diff --git a/client/globalLobby/GlobalLobbyLoginWindow.cpp b/client/globalLobby/GlobalLobbyLoginWindow.cpp index ce32268e3..bac945351 100644 --- a/client/globalLobby/GlobalLobbyLoginWindow.cpp +++ b/client/globalLobby/GlobalLobbyLoginWindow.cpp @@ -31,7 +31,7 @@ GlobalLobbyLoginWindow::GlobalLobbyLoginWindow() : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 284; pos.h = 220; diff --git a/client/globalLobby/GlobalLobbyRoomWindow.cpp b/client/globalLobby/GlobalLobbyRoomWindow.cpp index cfeb07fae..42f6597f9 100644 --- a/client/globalLobby/GlobalLobbyRoomWindow.cpp +++ b/client/globalLobby/GlobalLobbyRoomWindow.cpp @@ -33,7 +33,7 @@ GlobalLobbyRoomAccountCard::GlobalLobbyRoomAccountCard(const GlobalLobbyAccount & accountDescription) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 130; pos.h = 40; backgroundOverlay = std::make_shared(Rect(0, 0, pos.w, pos.h), ColorRGBA(0, 0, 0, 128), ColorRGBA(64, 64, 64, 64), 1); @@ -51,7 +51,7 @@ GlobalLobbyRoomModCard::GlobalLobbyRoomModCard(const GlobalLobbyRoomModInfo & mo { ModVerificationStatus::FULL_MATCH, "compatible" } }; - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 200; pos.h = 40; backgroundOverlay = std::make_shared(Rect(0, 0, pos.w, pos.h), ColorRGBA(0, 0, 0, 128), ColorRGBA(64, 64, 64, 64), 1); @@ -117,7 +117,7 @@ GlobalLobbyRoomWindow::GlobalLobbyRoomWindow(GlobalLobbyWindow * window, const s , window(window) , roomUUID(roomUUID) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 400; pos.h = 400; diff --git a/client/globalLobby/GlobalLobbyServerSetup.cpp b/client/globalLobby/GlobalLobbyServerSetup.cpp index 084a1cfef..5549fe2b3 100644 --- a/client/globalLobby/GlobalLobbyServerSetup.cpp +++ b/client/globalLobby/GlobalLobbyServerSetup.cpp @@ -29,7 +29,7 @@ GlobalLobbyServerSetup::GlobalLobbyServerSetup() : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 284; pos.h = 340; diff --git a/client/globalLobby/GlobalLobbyWidget.cpp b/client/globalLobby/GlobalLobbyWidget.cpp index 75f8f789b..fd64b9867 100644 --- a/client/globalLobby/GlobalLobbyWidget.cpp +++ b/client/globalLobby/GlobalLobbyWidget.cpp @@ -187,7 +187,7 @@ GlobalLobbyChannelCardBase::GlobalLobbyChannelCardBase(GlobalLobbyWindow * windo pos.h = dimensions.y; addUsedEvents(LCLICK); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; if (window->isChannelOpen(channelType, channelName)) backgroundOverlay = std::make_shared(Rect(0, 0, pos.w, pos.h), ColorRGBA(0, 0, 0, 128), Colors::YELLOW, 2); @@ -206,7 +206,7 @@ void GlobalLobbyChannelCardBase::clickPressed(const Point & cursorPosition) GlobalLobbyAccountCard::GlobalLobbyAccountCard(GlobalLobbyWindow * window, const GlobalLobbyAccount & accountDescription) : GlobalLobbyChannelCardBase(window, Point(130, 40), "player", accountDescription.accountID, accountDescription.displayName) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; labelName = std::make_shared(5, 10, FONT_SMALL, ETextAlignment::CENTERLEFT, Colors::WHITE, accountDescription.displayName, 120); labelStatus = std::make_shared(5, 30, FONT_SMALL, ETextAlignment::CENTERLEFT, Colors::YELLOW, accountDescription.status); } @@ -215,7 +215,7 @@ GlobalLobbyRoomCard::GlobalLobbyRoomCard(GlobalLobbyWindow * window, const Globa : window(window) , roomUUID(roomDescription.gameRoomID) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; addUsedEvents(LCLICK); bool hasInvite = CSH->getGlobalLobby().isInvitedToRoom(roomDescription.gameRoomID); @@ -253,14 +253,14 @@ void GlobalLobbyRoomCard::clickPressed(const Point & cursorPosition) GlobalLobbyChannelCard::GlobalLobbyChannelCard(GlobalLobbyWindow * window, const std::string & channelName) : GlobalLobbyChannelCardBase(window, Point(146, 40), "global", channelName, Languages::getLanguageOptions(channelName).nameNative) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; labelName = std::make_shared(5, 20, FONT_SMALL, ETextAlignment::CENTERLEFT, Colors::WHITE, Languages::getLanguageOptions(channelName).nameNative); } GlobalLobbyMatchCard::GlobalLobbyMatchCard(GlobalLobbyWindow * window, const GlobalLobbyRoom & matchDescription) : GlobalLobbyChannelCardBase(window, Point(130, 40), "match", matchDescription.gameRoomID, matchDescription.startDateFormatted) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; labelMatchDate = std::make_shared(5, 10, FONT_SMALL, ETextAlignment::CENTERLEFT, Colors::WHITE, matchDescription.startDateFormatted); MetaString opponentDescription; diff --git a/client/globalLobby/GlobalLobbyWindow.cpp b/client/globalLobby/GlobalLobbyWindow.cpp index a3a2b8185..03d9798de 100644 --- a/client/globalLobby/GlobalLobbyWindow.cpp +++ b/client/globalLobby/GlobalLobbyWindow.cpp @@ -30,7 +30,7 @@ GlobalLobbyWindow::GlobalLobbyWindow() : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; widget = std::make_shared(this); pos = widget->pos; center(); diff --git a/client/gui/CGuiHandler.cpp b/client/gui/CGuiHandler.cpp index e1e35c695..93d960265 100644 --- a/client/gui/CGuiHandler.cpp +++ b/client/gui/CGuiHandler.cpp @@ -39,14 +39,14 @@ CGuiHandler GH; static thread_local bool inGuiThread = false; -SObjectConstruction::SObjectConstruction(CIntObject *obj) +ObjectConstruction::ObjectConstruction(CIntObject *obj) :myObj(obj) { GH.createdObj.push_front(obj); GH.captureChildren = true; } -SObjectConstruction::~SObjectConstruction() +ObjectConstruction::~ObjectConstruction() { assert(GH.createdObj.size()); assert(GH.createdObj.front() == myObj); @@ -54,17 +54,6 @@ SObjectConstruction::~SObjectConstruction() GH.captureChildren = GH.createdObj.size(); } -SSetCaptureState::SSetCaptureState(bool allow, ui8 actions) -{ - previousCapture = GH.captureChildren; - GH.captureChildren = false; -} - -SSetCaptureState::~SSetCaptureState() -{ - GH.captureChildren = previousCapture; -} - void CGuiHandler::init() { inGuiThread = true; diff --git a/client/gui/CIntObject.h b/client/gui/CIntObject.h index 9a21c4e6f..59db2b597 100644 --- a/client/gui/CIntObject.h +++ b/client/gui/CIntObject.h @@ -212,23 +212,13 @@ class EmptyStatusBar : public IStatusBar virtual void setEnteredText(const std::string & text){}; }; -struct SObjectConstruction +class ObjectConstruction { CIntObject *myObj; - SObjectConstruction(CIntObject *obj); - ~SObjectConstruction(); +public: + ObjectConstruction(CIntObject *obj); + ~ObjectConstruction(); }; -struct SSetCaptureState -{ - bool previousCapture; - SSetCaptureState(bool allow, ui8 actions); - ~SSetCaptureState(); -}; - -#define OBJ_CONSTRUCTION SObjectConstruction obj__i(this) -#define OBJ_CONSTRUCTION_TARGETED(obj) SObjectConstruction obj__i(obj) -#define OBJECT_CONSTRUCTION_CAPTURING(actions) SSetCaptureState obj__i1(true, actions); SObjectConstruction obj__i(this) -#define OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(actions) SSetCaptureState obj__i1(true, actions); SObjectConstruction obj__i(this) - -#define OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE SSetCaptureState obj__i1(true, ALL_ACTIONS); SObjectConstruction obj__i(this) +#define OBJECT_CONSTRUCTION ObjectConstruction obj__i(this) +#define OBJECT_CONSTRUCTION_TARGETED(obj) ObjectConstruction obj__i(obj) diff --git a/client/gui/InterfaceObjectConfigurable.cpp b/client/gui/InterfaceObjectConfigurable.cpp index c290cac81..6b758851b 100644 --- a/client/gui/InterfaceObjectConfigurable.cpp +++ b/client/gui/InterfaceObjectConfigurable.cpp @@ -106,7 +106,7 @@ void InterfaceObjectConfigurable::loadCustomBuilders(const JsonNode & config) void InterfaceObjectConfigurable::build(const JsonNode &config) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; logGlobal->debug("Building configurable interface object"); auto * items = &config; @@ -371,7 +371,7 @@ std::shared_ptr InterfaceObjectConfigurable::buildToggleGroup(cons group->pos += position; if(!config["items"].isNull()) { - OBJ_CONSTRUCTION_TARGETED(group.get()); + OBJECT_CONSTRUCTION_TARGETED(group.get()); int itemIdx = -1; for(const auto & item : config["items"].Vector()) { diff --git a/client/lobby/CBonusSelection.cpp b/client/lobby/CBonusSelection.cpp index 5bb583c0a..0331df3da 100644 --- a/client/lobby/CBonusSelection.cpp +++ b/client/lobby/CBonusSelection.cpp @@ -66,7 +66,7 @@ std::shared_ptr CBonusSelection::getCampaign() CBonusSelection::CBonusSelection() : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; setBackground(getCampaign()->getRegions().getBackgroundName()); @@ -145,7 +145,7 @@ CBonusSelection::CBonusSelection() void CBonusSelection::createBonusesIcons() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; const CampaignScenario & scenario = getCampaign()->scenario(CSH->campaignMap); const std::vector & bonDescs = scenario.travelOptions.bonusesToChoose; groupBonuses = std::make_shared(std::bind(&IServerAPI::setCampaignBonus, CSH, _1)); @@ -474,7 +474,7 @@ void CBonusSelection::decreaseDifficulty() CBonusSelection::CRegion::CRegion(CampaignScenarioID id, bool accessible, bool selectable, const CampaignRegions & campDsc) : CIntObject(LCLICK | SHOW_POPUP), idOfMapAndRegion(id), accessible(accessible), selectable(selectable) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; pos += campDsc.getPosition(id); diff --git a/client/lobby/CCampaignInfoScreen.cpp b/client/lobby/CCampaignInfoScreen.cpp index 4218b818f..1d0bcad6e 100644 --- a/client/lobby/CCampaignInfoScreen.cpp +++ b/client/lobby/CCampaignInfoScreen.cpp @@ -22,7 +22,7 @@ CCampaignInfoScreen::CCampaignInfoScreen() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; localSi = new StartInfo(*LOCPLINT->cb->getStartInfo()); localMi = new CMapInfo(); localMi->mapHeader = std::unique_ptr(new CMapHeader(*LOCPLINT->cb->getMapHeader())); diff --git a/client/lobby/CLobbyScreen.cpp b/client/lobby/CLobbyScreen.cpp index b8ccb8871..fbf0dfce7 100644 --- a/client/lobby/CLobbyScreen.cpp +++ b/client/lobby/CLobbyScreen.cpp @@ -38,7 +38,7 @@ CLobbyScreen::CLobbyScreen(ESelectionScreen screenType) : CSelectionBase(screenType), bonusSel(nullptr) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; tabSel = std::make_shared(screenType); curTab = tabSel; diff --git a/client/lobby/CSavingScreen.cpp b/client/lobby/CSavingScreen.cpp index a60ae033e..c8629fe20 100644 --- a/client/lobby/CSavingScreen.cpp +++ b/client/lobby/CSavingScreen.cpp @@ -30,7 +30,7 @@ CSavingScreen::CSavingScreen() : CSelectionBase(ESelectionScreen::saveGame) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; center(pos); localMi = std::make_shared(); localMi->mapHeader = std::unique_ptr(new CMapHeader(*LOCPLINT->cb->getMapHeader())); diff --git a/client/lobby/CScenarioInfoScreen.cpp b/client/lobby/CScenarioInfoScreen.cpp index 69463157a..8e8dfcaad 100644 --- a/client/lobby/CScenarioInfoScreen.cpp +++ b/client/lobby/CScenarioInfoScreen.cpp @@ -27,7 +27,7 @@ CScenarioInfoScreen::CScenarioInfoScreen() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 800; pos.h = 600; pos = center(); diff --git a/client/lobby/CSelectionBase.cpp b/client/lobby/CSelectionBase.cpp index 47573cdcc..7184f094a 100644 --- a/client/lobby/CSelectionBase.cpp +++ b/client/lobby/CSelectionBase.cpp @@ -81,7 +81,7 @@ PlayerInfo ISelectionScreenInfo::getPlayerInfo(PlayerColor color) CSelectionBase::CSelectionBase(ESelectionScreen type) : CWindowObject(BORDERED | SHADOW_DISABLED), ISelectionScreenInfo(type) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.w = 762; pos.h = 584; if(screenType == ESelectionScreen::campaignList) @@ -130,7 +130,7 @@ void CSelectionBase::toggleTab(std::shared_ptr tab) InfoCard::InfoCard() : showChat(true) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; setRedrawParent(true); pos.x += 393; pos.y += 6; @@ -252,7 +252,7 @@ void InfoCard::changeSelection() const std::array difficultyPercent = {"80%", "100%", "130%", "160%", "200%"}; labelDifficultyPercent->setText(difficultyPercent[SEL->getCurrentDifficulty()]); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; // FIXME: We recreate them each time because CLabelGroup don't use smart pointers labelGroupPlayers = std::make_shared(FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE); if(!showChat) @@ -356,7 +356,7 @@ void InfoCard::setChat(bool activateChat) CChatBox::CChatBox(const Rect & rect) : CIntObject(KEYBOARD | TEXTINPUT) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; pos += rect.topLeft(); setRedrawParent(true); @@ -397,7 +397,7 @@ void CChatBox::addNewMessage(const std::string & text) PvPBox::PvPBox(const Rect & rect) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; pos += rect.topLeft(); setRedrawParent(true); @@ -448,7 +448,7 @@ PvPBox::PvPBox(const Rect & rect) TownSelector::TownSelector(const Point & loc) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; pos += loc; setRedrawParent(true); @@ -473,7 +473,7 @@ TownSelector::TownSelector(const Point & loc) void TownSelector::updateListItems() { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; int line = slider ? slider->getValue() : 0; int x_offset = slider ? 0 : 8; @@ -519,7 +519,7 @@ CFlagBox::CFlagBox(const Rect & rect) pos += rect.topLeft(); pos.w = rect.w; pos.h = rect.h; - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; labelAllies = std::make_shared(0, 0, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, CGI->generaltexth->allTexts[390] + ":"); labelEnemies = std::make_shared(133, 0, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, CGI->generaltexth->allTexts[391] + ":"); @@ -529,7 +529,7 @@ void CFlagBox::recreate() { flagsAllies.clear(); flagsEnemies.clear(); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; const int alliesX = 5 + (int)labelAllies->getWidth(); const int enemiesX = 5 + 133 + (int)labelEnemies->getWidth(); for(auto i = CSH->si->playerInfos.cbegin(); i != CSH->si->playerInfos.cend(); i++) @@ -557,7 +557,7 @@ void CFlagBox::showPopupWindow(const Point & cursorPosition) CFlagBox::CFlagBoxTooltipBox::CFlagBoxTooltipBox() : CWindowObject(BORDERED | RCLICK_POPUP | SHADOW_DISABLED, ImagePath::builtin("DIBOXBCK")) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; labelTeamAlignment = std::make_shared(128, 30, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[657]); labelGroupTeams = std::make_shared(FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE); diff --git a/client/lobby/OptionsTab.cpp b/client/lobby/OptionsTab.cpp index 221629212..049d9d53d 100644 --- a/client/lobby/OptionsTab.cpp +++ b/client/lobby/OptionsTab.cpp @@ -71,7 +71,7 @@ void OptionsTab::recreate() selectionWindow->reopen(); } - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; for(auto & pInfo : SEL->getStartInfo()->playerInfos) { if(pInfo.second.isControlledByHuman()) @@ -333,7 +333,7 @@ std::string OptionsTab::CPlayerSettingsHelper::getDescription() OptionsTab::CPlayerOptionTooltipBox::CPlayerOptionTooltipBox(CPlayerSettingsHelper & helper) : CWindowObject(BORDERED | RCLICK_POPUP), CPlayerSettingsHelper(helper) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; switch(selectionType) { @@ -503,7 +503,7 @@ void OptionsTab::SelectionWindow::reopen() void OptionsTab::SelectionWindow::recreate(int sliderPos) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; int amountLines = 1; if(type == SelType::BONUS) @@ -797,7 +797,7 @@ void OptionsTab::SelectionWindow::showPopupWindow(const Point & cursorPosition) OptionsTab::HandicapWindow::HandicapWindow() : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; addUsedEvents(LCLICK); @@ -911,7 +911,7 @@ OptionsTab::SelectedBox::SelectedBox(Point position, PlayerSettings & playerSett : Scrollable(LCLICK | SHOW_POPUP, position, Orientation::HORIZONTAL) , CPlayerSettingsHelper(playerSettings, type) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; image = std::make_shared(getImageName(), getImageIndex()); subtitle = std::make_shared(24, 39, FONT_TINY, ETextAlignment::CENTER, Colors::WHITE, getName(), 71); @@ -992,7 +992,7 @@ OptionsTab::PlayerOptionsEntry::PlayerOptionsEntry(const PlayerSettings & S, con , parentTab(parent) , name(S.name) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; int serial = 0; for(PlayerColor g = PlayerColor(0); g < s->color; ++g) diff --git a/client/lobby/RandomMapTab.cpp b/client/lobby/RandomMapTab.cpp index f1674ce79..c990dc041 100644 --- a/client/lobby/RandomMapTab.cpp +++ b/client/lobby/RandomMapTab.cpp @@ -447,7 +447,7 @@ void TeamAlignmentsWidget::checkTeamCount() TeamAlignments::TeamAlignments(RandomMapTab & randomMapTab) : CWindowObject(BORDERED) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; widget = std::make_shared(randomMapTab); pos = widget->pos; @@ -501,7 +501,7 @@ TeamAlignmentsWidget::TeamAlignmentsWidget(RandomMapTab & randomMapTab): center(pos); - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; // Window should have X * X columns, where X is max players allowed for current settings // For random player count, X is 8 @@ -529,7 +529,7 @@ TeamAlignmentsWidget::TeamAlignmentsWidget(RandomMapTab & randomMapTab): players.push_back(std::make_shared([&, totalPlayers, plId](int sel) { variables["player_id"].Integer() = plId; - OBJ_CONSTRUCTION_TARGETED(players[plId].get()); + OBJECT_CONSTRUCTION_TARGETED(players[plId].get()); for(int teamId = 0; teamId < totalPlayers; ++teamId) { auto button = std::dynamic_pointer_cast(players[plId]->buttons[teamId]); @@ -549,7 +549,7 @@ TeamAlignmentsWidget::TeamAlignmentsWidget(RandomMapTab & randomMapTab): } })); - OBJ_CONSTRUCTION_TARGETED(players.back().get()); + OBJECT_CONSTRUCTION_TARGETED(players.back().get()); for(int teamId = 0; teamId < totalPlayers; ++teamId) { diff --git a/client/lobby/SelectionTab.cpp b/client/lobby/SelectionTab.cpp index 33276ea1b..63ea32a24 100644 --- a/client/lobby/SelectionTab.cpp +++ b/client/lobby/SelectionTab.cpp @@ -154,7 +154,7 @@ static ESortBy getSortBySelectionScreen(ESelectionScreen Type) SelectionTab::SelectionTab(ESelectionScreen Type) : CIntObject(LCLICK | SHOW_POPUP | KEYBOARD | DOUBLECLICK), callOnSelect(nullptr), tabType(Type), selectionPos(0), sortModeAscending(true), inputNameRect{32, 539, 350, 20}, curFolder(""), currentMapSizeFilter(0), showRandom(false) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; generalSortingBy = getSortBySelectionScreen(tabType); sortingBy = _format; @@ -883,7 +883,7 @@ std::unordered_set SelectionTab::getFiles(std::string dirURI, ERes SelectionTab::ListItem::ListItem(Point position) : CIntObject(LCLICK, position) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pictureEmptyLine = std::make_shared(ImagePath::builtin("camcust"), Rect(25, 121, 349, 26), -8, -14); labelName = std::make_shared(184, 0, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, "", 185); labelName->setAutoRedraw(false); diff --git a/client/mainmenu/CCampaignScreen.cpp b/client/mainmenu/CCampaignScreen.cpp index 933c3a71a..4644ba18d 100644 --- a/client/mainmenu/CCampaignScreen.cpp +++ b/client/mainmenu/CCampaignScreen.cpp @@ -48,7 +48,7 @@ CCampaignScreen::CCampaignScreen(const JsonNode & config, std::string name) : CWindowObject(BORDERED), campaignSet(name) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; for(const JsonNode & node : config[name]["images"].Vector()) images.push_back(CMainMenu::createPicture(node)); @@ -90,7 +90,7 @@ std::shared_ptr CCampaignScreen::createExitButton(const JsonNode & butt CCampaignScreen::CCampaignButton::CCampaignButton(const JsonNode & config, const JsonNode & parentConfig, std::string campaignSet) : campaignSet(campaignSet) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos.x += static_cast(config["x"].Float()); pos.y += static_cast(config["y"].Float()); @@ -140,7 +140,7 @@ void CCampaignScreen::CCampaignButton::clickReleased(const Point & cursorPositio void CCampaignScreen::CCampaignButton::hover(bool on) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; if (on && !videoPath.empty()) videoPlayer = std::make_shared(Point(), videoPath, false); diff --git a/client/mainmenu/CHighScoreScreen.cpp b/client/mainmenu/CHighScoreScreen.cpp index fdf59d2a9..129ca4032 100644 --- a/client/mainmenu/CHighScoreScreen.cpp +++ b/client/mainmenu/CHighScoreScreen.cpp @@ -107,7 +107,7 @@ CHighScoreScreen::CHighScoreScreen(HighScorePage highscorepage, int highlighted) { addUsedEvents(SHOW_POPUP); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos = center(Rect(0, 0, 800, 600)); backgroundAroundMenu = std::make_shared(ImagePath::builtin("DIBOXBCK"), Rect(-pos.x, -pos.y, GH.screenDimensions().x, GH.screenDimensions().y)); @@ -134,7 +134,7 @@ void CHighScoreScreen::showPopupWindow(const Point & cursorPosition) void CHighScoreScreen::addButtons() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; buttons.clear(); @@ -146,7 +146,7 @@ void CHighScoreScreen::addButtons() void CHighScoreScreen::addHighScores() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin(highscorepage == HighScorePage::SCENARIO ? "HISCORE" : "HISCORE2")); @@ -209,7 +209,7 @@ void CHighScoreScreen::buttonCampaignClick() void CHighScoreScreen::buttonScenarioClick() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; highscorepage = HighScorePage::SCENARIO; addHighScores(); addButtons(); @@ -243,7 +243,7 @@ CHighScoreInputScreen::CHighScoreInputScreen(bool won, HighScoreCalculation calc { addUsedEvents(LCLICK | KEYBOARD); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos = center(Rect(0, 0, 800, 600)); backgroundAroundMenu = std::make_shared(ImagePath::builtin("DIBOXBCK"), Rect(-pos.x, -pos.y, GH.screenDimensions().x, GH.screenDimensions().y)); @@ -321,7 +321,7 @@ void CHighScoreInputScreen::show(Canvas & to) void CHighScoreInputScreen::clickPressed(const Point & cursorPosition) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; if(!won) { @@ -354,7 +354,7 @@ void CHighScoreInputScreen::keyPressed(EShortcut key) CHighScoreInput::CHighScoreInput(std::string playerName, std::function readyCB) : CWindowObject(NEEDS_ANIMATED_BACKGROUND, ImagePath::builtin("HIGHNAME")), ready(readyCB) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos = center(Rect(0, 0, 232, 212)); updateShadow(); diff --git a/client/mainmenu/CMainMenu.cpp b/client/mainmenu/CMainMenu.cpp index b3983232d..daf5685fc 100644 --- a/client/mainmenu/CMainMenu.cpp +++ b/client/mainmenu/CMainMenu.cpp @@ -73,7 +73,7 @@ static void do_quit() CMenuScreen::CMenuScreen(const JsonNode & configNode) : CWindowObject(BORDERED), config(configNode) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::fromJson(config["background"])); if(config["scalable"].Bool()) @@ -245,7 +245,7 @@ std::shared_ptr CMenuEntry::createButton(CMenuScreen * parent, const Js CMenuEntry::CMenuEntry(CMenuScreen * parent, const JsonNode & config) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; setRedrawParent(true); pos = parent->pos; @@ -290,7 +290,7 @@ CMainMenu::CMainMenu() pos.h = GH.screenDimensions().y; menu = std::make_shared(CMainMenuConfig::get().getConfig()["window"]); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; backgroundAroundMenu = std::make_shared(ImagePath::builtin("DIBOXBCK"), pos); } @@ -434,7 +434,7 @@ std::shared_ptr CMainMenu::createPicture(const JsonNode & config) CMultiMode::CMultiMode(ESelectionScreen ScreenType) : screenType(ScreenType) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("MUPOPUP.bmp")); pos = background->center(); //center, window has size of bg graphic @@ -505,7 +505,7 @@ void CMultiMode::onNameChange(std::string newText) CMultiPlayers::CMultiPlayers(const std::vector & playerNames, ESelectionScreen ScreenType, bool Host, ELoadMode LoadMode) : loadMode(LoadMode), screenType(ScreenType), host(Host) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("MUHOTSEA.bmp")); pos = background->center(); //center, window has size of bg graphic @@ -570,7 +570,7 @@ void CMultiPlayers::enterSelectionScreen() CSimpleJoinScreen::CSimpleJoinScreen(bool host) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; background = std::make_shared(ImagePath::builtin("MUDIALOG.bmp")); // address background pos = background->center(); //center, window has size of bg graphic (x,y = 396,278 w=232 h=212) @@ -631,7 +631,7 @@ void CSimpleJoinScreen::startConnection(const std::string & addr, ui16 port) CLoadingScreen::CLoadingScreen() : CWindowObject(BORDERED, getBackground()) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; addUsedEvents(TIME); diff --git a/client/mainmenu/CPrologEpilogVideo.cpp b/client/mainmenu/CPrologEpilogVideo.cpp index d1c65dfe9..3b68e5536 100644 --- a/client/mainmenu/CPrologEpilogVideo.cpp +++ b/client/mainmenu/CPrologEpilogVideo.cpp @@ -25,7 +25,7 @@ CPrologEpilogVideo::CPrologEpilogVideo(CampaignScenarioPrologEpilog _spe, std::function callback) : CWindowObject(BORDERED), spe(_spe), positionCounter(0), voiceSoundHandle(-1), videoSoundHandle(-1), exitCb(callback), elapsedTimeMilliseconds(0) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; addUsedEvents(LCLICK | TIME); pos = center(Rect(0, 0, 800, 600)); diff --git a/client/mainmenu/CreditsScreen.cpp b/client/mainmenu/CreditsScreen.cpp index 5811b7621..a83093ef6 100644 --- a/client/mainmenu/CreditsScreen.cpp +++ b/client/mainmenu/CreditsScreen.cpp @@ -27,7 +27,7 @@ CreditsScreen::CreditsScreen(Rect rect) pos.w = rect.w; pos.h = rect.h; setRedrawParent(true); - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; addUsedEvents(TIME); diff --git a/client/mapView/MapView.cpp b/client/mapView/MapView.cpp index 30c652ad2..301aa0344 100644 --- a/client/mapView/MapView.cpp +++ b/client/mapView/MapView.cpp @@ -52,7 +52,7 @@ BasicMapView::BasicMapView(const Point & offset, const Point & dimensions) , tilesCache(new MapViewCache(model)) , controller(new MapViewController(model, tilesCache)) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos += offset; pos.w = dimensions.x; pos.h = dimensions.y; @@ -141,7 +141,7 @@ void MapView::show(Canvas & to) MapView::MapView(const Point & offset, const Point & dimensions) : BasicMapView(offset, dimensions) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; actions = std::make_shared(*this, model); actions->setContext(controller->getContext()); diff --git a/client/widgets/Buttons.cpp b/client/widgets/Buttons.cpp index c2af1f329..00063a770 100644 --- a/client/widgets/Buttons.cpp +++ b/client/widgets/Buttons.cpp @@ -73,7 +73,7 @@ void CButton::addPopupCallback(const std::function & callback) void ButtonBase::setTextOverlay(const std::string & Text, EFonts font, ColorRGBA color) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; setOverlay(std::make_shared(pos.w/2, pos.h/2, font, ETextAlignment::CENTER, color, Text)); update(); } @@ -92,7 +92,7 @@ void ButtonBase::setOverlay(const std::shared_ptr& newOverlay) void ButtonBase::setImage(const AnimationPath & defName, bool playerColoredButton) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; configurable.reset(); image = std::make_shared(defName, vstd::to_underlying(getState())); @@ -125,7 +125,7 @@ const JsonNode & ButtonBase::getCurrentConfig() const void ButtonBase::setConfigurable(const JsonPath & jsonName, bool playerColoredButton) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; config = std::make_unique(jsonName); @@ -162,7 +162,7 @@ void ButtonBase::setStateImpl(EButtonState newState) if (configurable) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; configurable = std::make_shared(getCurrentConfig()); pos = configurable->pos; diff --git a/client/widgets/CArtPlace.cpp b/client/widgets/CArtPlace.cpp index bd0a39cc3..dbae173a2 100644 --- a/client/widgets/CArtPlace.cpp +++ b/client/widgets/CArtPlace.cpp @@ -80,7 +80,7 @@ CArtPlace::CArtPlace(Point position, const CArtifactInstance * art) , ourArt(art) , locked(false) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; imageIndex = 0; if(locked) diff --git a/client/widgets/CArtifactsOfHeroBackpack.cpp b/client/widgets/CArtifactsOfHeroBackpack.cpp index 06e926d97..1b6326874 100644 --- a/client/widgets/CArtifactsOfHeroBackpack.cpp +++ b/client/widgets/CArtifactsOfHeroBackpack.cpp @@ -73,7 +73,7 @@ size_t CArtifactsOfHeroBackpack::getSlotsNum() void CArtifactsOfHeroBackpack::initAOHbackpack(size_t slots, bool slider) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; backpack.resize(slots); size_t artPlaceIdx = 0; diff --git a/client/widgets/CArtifactsOfHeroBase.cpp b/client/widgets/CArtifactsOfHeroBase.cpp index a5c5ecfd3..c44e3d01f 100644 --- a/client/widgets/CArtifactsOfHeroBase.cpp +++ b/client/widgets/CArtifactsOfHeroBase.cpp @@ -50,8 +50,8 @@ void CArtifactsOfHeroBase::init( const Point & position, const BpackScrollFunctor & scrollCallback) { - // CArtifactsOfHeroBase::init may be transform to CArtifactsOfHeroBase::CArtifactsOfHeroBase if OBJECT_CONSTRUCTION_CAPTURING is removed - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + // CArtifactsOfHeroBase::init may be transform to CArtifactsOfHeroBase::CArtifactsOfHeroBase if OBJECT_CONSTRUCTION is removed + OBJECT_CONSTRUCTION; pos += position; for(int g = 0; g < ArtifactPosition::BACKPACK_START; g++) { diff --git a/client/widgets/CComponent.cpp b/client/widgets/CComponent.cpp index eebef169b..0f324335d 100644 --- a/client/widgets/CComponent.cpp +++ b/client/widgets/CComponent.cpp @@ -58,7 +58,7 @@ CComponent::CComponent(const Component & c, ESize imageSize, EFonts font) void CComponent::init(ComponentType Type, ComponentSubType Subtype, std::optional Val, ESize imageSize, EFonts fnt, const std::string & ValText) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; addUsedEvents(SHOW_POPUP); @@ -323,7 +323,7 @@ std::string CComponent::getSubtitle() const void CComponent::setSurface(const AnimationPath & defName, int imgPos) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; image = std::make_shared(defName, imgPos); } @@ -434,7 +434,7 @@ int CComponentBox::getDistance(CComponent *left, CComponent *right) void CComponentBox::placeComponents(bool selectable) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if (components.empty()) return; diff --git a/client/widgets/CGarrisonInt.cpp b/client/widgets/CGarrisonInt.cpp index deda14514..371aafa6e 100644 --- a/client/widgets/CGarrisonInt.cpp +++ b/client/widgets/CGarrisonInt.cpp @@ -429,7 +429,7 @@ CGarrisonSlot::CGarrisonSlot(CGarrisonInt * Owner, int x, int y, SlotID IID, EGa creature(creature_ ? creature_->type : nullptr), upg(Upg) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x += x; pos.y += y; @@ -715,7 +715,7 @@ CGarrisonInt::CGarrisonInt(const Point & position, int inx, const Point & garsOf , removableUnits(_removableUnits) , layout(_layout) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; setArmy(s1, EGarrisonType::UPPER); setArmy(s2, EGarrisonType::LOWER); diff --git a/client/widgets/CTextInput.cpp b/client/widgets/CTextInput.cpp index e4fc6fa5e..c138b6505 100644 --- a/client/widgets/CTextInput.cpp +++ b/client/widgets/CTextInput.cpp @@ -35,7 +35,7 @@ CTextInput::CTextInput(const Rect & Pos) void CTextInput::createLabel(bool giveFocusToInput) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; label = std::make_shared(); label->pos = pos; label->alignment = originalAlignment; @@ -59,7 +59,7 @@ CTextInput::CTextInput(const Rect & Pos, EFonts font, ETextAlignment alignment, CTextInput::CTextInput(const Rect & Pos, const Point & bgOffset, const ImagePath & bgName) : CTextInput(Pos) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; if (!bgName.empty()) background = std::make_shared(bgName, bgOffset.x, bgOffset.y); else @@ -71,7 +71,7 @@ CTextInput::CTextInput(const Rect & Pos, const Point & bgOffset, const ImagePath CTextInput::CTextInput(const Rect & Pos, std::shared_ptr srf) : CTextInput(Pos) { - OBJ_CONSTRUCTION; + OBJECT_CONSTRUCTION; background = std::make_shared(srf, Pos); pos.w = background->pos.w; pos.h = background->pos.h; diff --git a/client/widgets/CreatureCostBox.cpp b/client/widgets/CreatureCostBox.cpp index 813b38b7e..c6429192c 100644 --- a/client/widgets/CreatureCostBox.cpp +++ b/client/widgets/CreatureCostBox.cpp @@ -15,7 +15,7 @@ CreatureCostBox::CreatureCostBox(Rect position, std::string titleText) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; setRedrawParent(true); pos = position + pos.topLeft(); @@ -33,7 +33,7 @@ void CreatureCostBox::createItems(TResources res) { resources.clear(); - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; TResources::nziterator iter(res); while(iter.valid()) diff --git a/client/widgets/MiscWidgets.cpp b/client/widgets/MiscWidgets.cpp index 32c338c88..e77b9a9b4 100644 --- a/client/widgets/MiscWidgets.cpp +++ b/client/widgets/MiscWidgets.cpp @@ -128,7 +128,7 @@ CHeroArea::CHeroArea(int x, int y, const CGHeroInstance * hero) clickFunctor(nullptr), clickRFunctor(nullptr) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x += x; pos.w = 58; @@ -243,7 +243,7 @@ void CMinorResDataBar::showAll(Canvas & to) CMinorResDataBar::CMinorResDataBar() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x = 7; pos.y = 575; @@ -259,7 +259,7 @@ CMinorResDataBar::~CMinorResDataBar() = default; void CArmyTooltip::init(const InfoAboutArmy &army) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; title = std::make_shared(66, 2, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, army.name); @@ -322,7 +322,7 @@ CArmyTooltip::CArmyTooltip(Point pos, const CArmedInstance * army): void CHeroTooltip::init(const InfoAboutHero & hero) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; portrait = std::make_shared(AnimationPath::builtin("PortraitsLarge"), hero.getIconIndex(), 0, 3, 2); if(hero.details) @@ -354,13 +354,13 @@ CInteractableHeroTooltip::CInteractableHeroTooltip(Point pos, const CGHeroInstan { init(InfoAboutHero(hero, InfoAboutHero::EInfoLevel::DETAILED)); - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; garrison = std::make_shared(pos + Point(0, 73), 4, Point(0, 0), hero, nullptr, true, true, CGarrisonInt::ESlotsLayout::REVERSED_TWO_ROWS); } void CInteractableHeroTooltip::init(const InfoAboutHero & hero) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; portrait = std::make_shared(AnimationPath::builtin("PortraitsLarge"), hero.getIconIndex(), 0, 3, 2); title = std::make_shared(66, 2, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, hero.name); @@ -379,7 +379,7 @@ void CInteractableHeroTooltip::init(const InfoAboutHero & hero) void CTownTooltip::init(const InfoAboutTown & town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; //order of icons in def: fort, citadel, castle, no fort size_t fortIndex = town.fortLevel ? town.fortLevel - 1 : 3; @@ -435,13 +435,13 @@ CInteractableTownTooltip::CInteractableTownTooltip(Point pos, const CGTownInstan { init(town); - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; garrison = std::make_shared(pos + Point(0, 73), 4, Point(0, 0), town->getUpperArmy(), nullptr, true, true, CGarrisonInt::ESlotsLayout::REVERSED_TWO_ROWS); } void CInteractableTownTooltip::init(const CGTownInstance * town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; const InfoAboutTown townInfo = InfoAboutTown(town, true); int townId = town->id; @@ -530,7 +530,7 @@ void CInteractableTownTooltip::init(const CGTownInstance * town) CreatureTooltip::CreatureTooltip(Point pos, const CGCreature * creature) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; auto creatureID = creature->getCreature(); int32_t creatureIconIndex = CGI->creatures()->getById(creatureID)->getIconIndex(); @@ -553,7 +553,7 @@ CreatureTooltip::CreatureTooltip(Point pos, const CGCreature * creature) void MoraleLuckBox::set(const AFactionMember * node) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; const std::array textId = {62, 88}; //eg %s \n\n\n {Current Luck Modifiers:} const int noneTxtId = 108; //Russian version uses same text for neutral morale\luck @@ -629,7 +629,7 @@ MoraleLuckBox::MoraleLuckBox(bool Morale, const Rect &r, bool Small) CCreaturePic::CCreaturePic(int x, int y, const CCreature * cre, bool Big, bool Animated) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x+=x; pos.y+=y; @@ -680,7 +680,7 @@ SelectableSlot::SelectableSlot(Rect area, Point oversize, const int width) : LRClickableAreaWTextComp(area) , selected(false) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; selection = std::make_shared( Rect(-oversize, area.dimensions() + oversize * 2), Colors::TRANSPARENCY, Colors::YELLOW, width); selectSlot(false); @@ -709,7 +709,7 @@ bool SelectableSlot::isSelected() const void SelectableSlot::setSelectionWidth(int width) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; selection = std::make_shared( selection->pos - pos.topLeft(), Colors::TRANSPARENCY, Colors::YELLOW, width); selectSlot(selected); } diff --git a/client/widgets/ObjectLists.cpp b/client/widgets/ObjectLists.cpp index 12a636c06..d2ad5c1ae 100644 --- a/client/widgets/ObjectLists.cpp +++ b/client/widgets/ObjectLists.cpp @@ -28,7 +28,7 @@ void CObjectList::deleteItem(std::shared_ptr item) std::shared_ptr CObjectList::createItem(size_t index) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; std::shared_ptr item = createObject(index); if(!item) item = std::make_shared(); @@ -90,7 +90,7 @@ CListBox::CListBox(CreateFunc create, Point Pos, Point ItemOffset, size_t Visibl if(Slider & 1) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; slider = std::make_shared( SliderPos.topLeft(), SliderPos.w, diff --git a/client/widgets/RadialMenu.cpp b/client/widgets/RadialMenu.cpp index b4242cbf7..7e20c92c3 100644 --- a/client/widgets/RadialMenu.cpp +++ b/client/widgets/RadialMenu.cpp @@ -25,7 +25,7 @@ RadialMenuItem::RadialMenuItem(const std::string & imageName, const std::string : callback(callback) , hoverText(hoverText) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; inactiveImage = std::make_shared(ImagePath::builtin(alternativeLayout ? "radialMenu/itemInactiveAlt" : "radialMenu/itemInactive"), Point(0, 0)); selectedImage = std::make_shared(ImagePath::builtin(alternativeLayout ? "radialMenu/itemEmptyAlt" : "radialMenu/itemEmpty"), Point(0, 0)); @@ -45,7 +45,7 @@ void RadialMenuItem::setSelected(bool selected) RadialMenu::RadialMenu(const Point & positionToCenter, const std::vector & menuConfig, bool alternativeLayout): centerPosition(positionToCenter), alternativeLayout(alternativeLayout) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos += positionToCenter; Point itemSize = alternativeLayout ? Point(80, 70) : Point(70, 80); diff --git a/client/widgets/Slider.cpp b/client/widgets/Slider.cpp index e51896cdc..d5c19ebac 100644 --- a/client/widgets/Slider.cpp +++ b/client/widgets/Slider.cpp @@ -183,7 +183,7 @@ CSlider::CSlider(Point position, int totalw, const SliderMovingFunctor & Moved, value(Value), moved(Moved) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; setAmount(amount); vstd::amax(value, 0); vstd::amin(value, positions); diff --git a/client/widgets/TextControls.cpp b/client/widgets/TextControls.cpp index 8a743b69f..191ede0f5 100644 --- a/client/widgets/TextControls.cpp +++ b/client/widgets/TextControls.cpp @@ -343,7 +343,7 @@ CLabelGroup::CLabelGroup(EFonts Font, ETextAlignment Align, const ColorRGBA & Co void CLabelGroup::add(int x, int y, const std::string & text) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; labels.push_back(std::make_shared(x, y, font, align, color, text)); } @@ -356,7 +356,7 @@ CTextBox::CTextBox(std::string Text, const Rect & rect, int SliderStyle, EFonts sliderStyle(SliderStyle), slider(nullptr) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; label = std::make_shared(rect, Font, Align, Color); setRedrawParent(true); @@ -421,7 +421,7 @@ void CTextBox::setText(const std::string & text) assert(label->pos.w > 0); label->setText(text); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; slider = std::make_shared(Point(pos.w - 16, 0), pos.h, std::bind(&CTextBox::sliderMoved, this, _1), label->pos.h, label->textSize.y, 0, Orientation::VERTICAL, CSlider::EStyle(sliderStyle)); slider->setScrollStep((int)graphics->fonts[label->font]->getLineHeight()); @@ -504,7 +504,7 @@ CGStatusBar::CGStatusBar(int x, int y, const ImagePath & name, int maxw) { addUsedEvents(LCLICK); - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; auto backgroundImage = std::make_shared(name); background = backgroundImage; diff --git a/client/widgets/markets/CAltarArtifacts.cpp b/client/widgets/markets/CAltarArtifacts.cpp index 5d169c2bc..0c61c1073 100644 --- a/client/widgets/markets/CAltarArtifacts.cpp +++ b/client/widgets/markets/CAltarArtifacts.cpp @@ -29,7 +29,7 @@ CAltarArtifacts::CAltarArtifacts(const IMarket * market, const CGHeroInstance * hero) : CMarketBase(market, hero) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; assert(dynamic_cast(market)); auto altarObj = dynamic_cast(market); diff --git a/client/widgets/markets/CAltarCreatures.cpp b/client/widgets/markets/CAltarCreatures.cpp index a6d808937..e168335d0 100644 --- a/client/widgets/markets/CAltarCreatures.cpp +++ b/client/widgets/markets/CAltarCreatures.cpp @@ -30,7 +30,7 @@ CAltarCreatures::CAltarCreatures(const IMarket * market, const CGHeroInstance * , CMarketSlider(std::bind(&CAltarCreatures::onOfferSliderMoved, this, _1)) , CMarketTraderText(Point(28, 31), FONT_MEDIUM, Colors::YELLOW) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; deal = std::make_shared(dealButtonPosWithSlider, AnimationPath::builtin("ALTSACR.DEF"), CGI->generaltexth->zelp[584], [this]() {CAltarCreatures::makeDeal();}, EShortcut::MARKET_DEAL); diff --git a/client/widgets/markets/CArtifactsBuying.cpp b/client/widgets/markets/CArtifactsBuying.cpp index 625745d88..576c4f55d 100644 --- a/client/widgets/markets/CArtifactsBuying.cpp +++ b/client/widgets/markets/CArtifactsBuying.cpp @@ -32,7 +32,7 @@ CArtifactsBuying::CArtifactsBuying(const IMarket * market, const CGHeroInstance : CMarketBase(market, hero) , CResourcesSelling([this](const std::shared_ptr & heroSlot){CArtifactsBuying::onSlotClickPressed(heroSlot, bidTradePanel);}) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; std::string title; if(auto townMarket = dynamic_cast(market)) diff --git a/client/widgets/markets/CArtifactsSelling.cpp b/client/widgets/markets/CArtifactsSelling.cpp index ab5f54157..a79708556 100644 --- a/client/widgets/markets/CArtifactsSelling.cpp +++ b/client/widgets/markets/CArtifactsSelling.cpp @@ -35,7 +35,7 @@ CArtifactsSelling::CArtifactsSelling(const IMarket * market, const CGHeroInstanc [this](const std::shared_ptr & resSlot){CArtifactsSelling::onSlotClickPressed(resSlot, offerTradePanel);}, [this](){CArtifactsSelling::updateSubtitles();}) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; std::string title; if(const auto townMarket = dynamic_cast(market)) diff --git a/client/widgets/markets/CFreelancerGuild.cpp b/client/widgets/markets/CFreelancerGuild.cpp index e3544968b..1a2ab31b7 100644 --- a/client/widgets/markets/CFreelancerGuild.cpp +++ b/client/widgets/markets/CFreelancerGuild.cpp @@ -32,7 +32,7 @@ CFreelancerGuild::CFreelancerGuild(const IMarket * market, const CGHeroInstance [this](){CMarketBase::updateSubtitlesForBid(EMarketMode::CREATURE_RESOURCE, bidTradePanel->getSelectedItemId());}) , CMarketSlider([this](int newVal){CMarketSlider::onOfferSliderMoved(newVal);}) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; labels.emplace_back(std::make_shared(titlePos.x, titlePos.y, FONT_BIG, ETextAlignment::CENTER, Colors::YELLOW, VLC->generaltexth->translate("object.core.freelancersGuild.name"))); diff --git a/client/widgets/markets/CMarketBase.cpp b/client/widgets/markets/CMarketBase.cpp index d18021d61..02574dc67 100644 --- a/client/widgets/markets/CMarketBase.cpp +++ b/client/widgets/markets/CMarketBase.cpp @@ -122,7 +122,7 @@ void CMarketBase::highlightingChanged() CExperienceAltar::CExperienceAltar() { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; // Experience needed to reach next level texts.emplace_back(std::make_shared(CGI->generaltexth->allTexts[475], Rect(15, 415, 125, 50), 0, FONT_SMALL, ETextAlignment::CENTER, Colors::YELLOW)); @@ -144,7 +144,7 @@ void CExperienceAltar::update() CCreaturesSelling::CCreaturesSelling() { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; assert(hero); CreaturesPanel::slotsData slots; @@ -171,7 +171,7 @@ void CCreaturesSelling::updateSubtitles() const CResourcesBuying::CResourcesBuying(const CTradeableItem::ClickPressedFunctor & clickPressedCallback, const TradePanelBase::UpdateSlotsFunctor & updSlotsCallback) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; offerTradePanel = std::make_shared(clickPressedCallback, updSlotsCallback); offerTradePanel->moveTo(pos.topLeft() + Point(327, 182)); @@ -180,7 +180,7 @@ CResourcesBuying::CResourcesBuying(const CTradeableItem::ClickPressedFunctor & c CResourcesSelling::CResourcesSelling(const CTradeableItem::ClickPressedFunctor & clickPressedCallback) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; bidTradePanel = std::make_shared(clickPressedCallback, std::bind(&CResourcesSelling::updateSubtitles, this)); labels.emplace_back(std::make_shared(156, 148, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, CGI->generaltexth->allTexts[270])); @@ -194,7 +194,7 @@ void CResourcesSelling::updateSubtitles() const CMarketSlider::CMarketSlider(const CSlider::SliderMovingFunctor & movingCallback) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; offerSlider = std::make_shared(Point(230, 489), 137, movingCallback, 0, 0, 0, Orientation::HORIZONTAL); maxAmount = std::make_shared(Point(228, 520), AnimationPath::builtin("IRCBTNS.DEF"), CGI->generaltexth->zelp[596], @@ -224,7 +224,7 @@ void CMarketSlider::onOfferSliderMoved(int newVal) CMarketTraderText::CMarketTraderText(const Point & pos, const EFonts & font, const ColorRGBA & color) : madeTransaction(false) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; traderText = std::make_shared("", Rect(pos, traderTextDimensions), 0, font, ETextAlignment::CENTER, color); } diff --git a/client/widgets/markets/CMarketResources.cpp b/client/widgets/markets/CMarketResources.cpp index 9b3696ca8..be8e2a92a 100644 --- a/client/widgets/markets/CMarketResources.cpp +++ b/client/widgets/markets/CMarketResources.cpp @@ -32,7 +32,7 @@ CMarketResources::CMarketResources(const IMarket * market, const CGHeroInstance [this](){CMarketResources::updateSubtitles();}) , CMarketSlider([this](int newVal){CMarketSlider::onOfferSliderMoved(newVal);}) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; labels.emplace_back(std::make_shared(titlePos.x, titlePos.y, FONT_BIG, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[158])); deal = std::make_shared(dealButtonPosWithSlider, AnimationPath::builtin("TPMRKB.DEF"), diff --git a/client/widgets/markets/CTransferResources.cpp b/client/widgets/markets/CTransferResources.cpp index f8dbe8ae5..04e3cf545 100644 --- a/client/widgets/markets/CTransferResources.cpp +++ b/client/widgets/markets/CTransferResources.cpp @@ -30,7 +30,7 @@ CTransferResources::CTransferResources(const IMarket * market, const CGHeroInsta , CMarketSlider([this](int newVal){CMarketSlider::onOfferSliderMoved(newVal);}) , CMarketTraderText(Point(28, 48)) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; labels.emplace_back(std::make_shared(titlePos.x, titlePos.y, FONT_BIG, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[158])); labels.emplace_back(std::make_shared(445, 56, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, CGI->generaltexth->allTexts[169])); diff --git a/client/widgets/markets/TradePanels.cpp b/client/widgets/markets/TradePanels.cpp index 64ce3d172..cfea07353 100644 --- a/client/widgets/markets/TradePanels.cpp +++ b/client/widgets/markets/TradePanels.cpp @@ -29,7 +29,7 @@ CTradeableItem::CTradeableItem(const Rect & area, EType Type, int ID, int Serial , id(ID) , serial(Serial) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; addUsedEvents(LCLICK); addUsedEvents(HOVER); @@ -46,7 +46,7 @@ void CTradeableItem::setType(EType newType) { if(type != newType) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; type = newType; if(getIndex() < 0) @@ -270,7 +270,7 @@ ResourcesPanel::ResourcesPanel(const CTradeableItem::ClickPressedFunctor & click const UpdateSlotsFunctor & updateSubtitles) { assert(resourcesForTrade.size() == slotsPos.size()); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; for(const auto & res : resourcesForTrade) { @@ -287,7 +287,7 @@ ArtifactsPanel::ArtifactsPanel(const CTradeableItem::ClickPressedFunctor & click { assert(slotsForTrade == slotsPos.size()); assert(slotsForTrade == arts.size()); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; for(auto slotIdx = 0; slotIdx < slotsForTrade; slotIdx++) { @@ -308,7 +308,7 @@ ArtifactsPanel::ArtifactsPanel(const CTradeableItem::ClickPressedFunctor & click PlayersPanel::PlayersPanel(const CTradeableItem::ClickPressedFunctor & clickPressedCallback) { assert(PlayerColor::PLAYER_LIMIT_I <= slotsPos.size() + 1); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; std::vector players; for(auto player = PlayerColor(0); player < PlayerColor::PLAYER_LIMIT_I; player++) @@ -334,7 +334,7 @@ CreaturesPanel::CreaturesPanel(const CTradeableItem::ClickPressedFunctor & click { assert(initialSlots.size() <= GameConstants::ARMY_SIZE); assert(slotsPos.size() <= GameConstants::ARMY_SIZE); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; for(const auto & [creatureId, slotId, creaturesNum] : initialSlots) { @@ -352,7 +352,7 @@ CreaturesPanel::CreaturesPanel(const CTradeableItem::ClickPressedFunctor & click const std::vector> & srcSlots, bool emptySlots) { assert(slots.size() <= GameConstants::ARMY_SIZE); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; for(const auto & srcSlot : srcSlots) { @@ -367,7 +367,7 @@ CreaturesPanel::CreaturesPanel(const CTradeableItem::ClickPressedFunctor & click ArtifactsAltarPanel::ArtifactsAltarPanel(const CTradeableItem::ClickPressedFunctor & clickPressedCallback) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; int slotNum = 0; for(auto & altarSlotPos : slotsPos) diff --git a/client/windows/CCastleInterface.cpp b/client/windows/CCastleInterface.cpp index 3edd38533..6501e6ae7 100644 --- a/client/windows/CCastleInterface.cpp +++ b/client/windows/CCastleInterface.cpp @@ -270,7 +270,7 @@ bool CBuildingRect::receiveEvent(const Point & position, int eventType) const CDwellingInfoBox::CDwellingInfoBox(int centerX, int centerY, const CGTownInstance * Town, int level) : CWindowObject(RCLICK_POPUP, ImagePath::builtin("CRTOINFO"), Point(centerX, centerY)) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background->setPlayerColor(Town->tempOwner); const CCreature * creature = Town->creatures.at(level).second.back().toCreature(); @@ -306,7 +306,7 @@ CDwellingInfoBox::~CDwellingInfoBox() = default; CHeroGSlot::CHeroGSlot(int x, int y, int updown, const CGHeroInstance * h, HeroSlots * Owner) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; owner = Owner; pos.x += x; @@ -482,7 +482,7 @@ void CHeroGSlot::setHighlight(bool on) void CHeroGSlot::set(const CGHeroInstance * newHero) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; hero = newHero; @@ -507,7 +507,7 @@ HeroSlots::HeroSlots(const CGTownInstance * Town, Point garrPos, Point visitPos, town(Town), garr(Garrison) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; garrisonedHero = std::make_shared(garrPos.x, garrPos.y, 0, town->garrisonHero, this); visitingHero = std::make_shared(visitPos.x, visitPos.y, 1, town->visitingHero, this); } @@ -563,7 +563,7 @@ CCastleBuildings::CCastleBuildings(const CGTownInstance* Town): town(Town), selectedBuilding(nullptr) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(town->town->clientInfo.townBackground); background->needRefresh = true; @@ -579,7 +579,7 @@ CCastleBuildings::~CCastleBuildings() = default; void CCastleBuildings::recreate() { selectedBuilding = nullptr; - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; buildings.clear(); groups.clear(); @@ -1079,7 +1079,7 @@ CCreaInfo::CCreaInfo(Point position, const CGTownInstance * Town, int Level, boo level(Level), showAvailable(_showAvailable) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos += position; if(town->creatures.size() <= level || town->creatures[level].second.empty()) @@ -1189,7 +1189,7 @@ CTownInfo::CTownInfo(int posX, int posY, const CGTownInstance * Town, bool townH : town(Town), building(nullptr) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; addUsedEvents(SHOW_POPUP | HOVER); pos.x += posX; pos.y += posY; @@ -1237,7 +1237,7 @@ CCastleInterface::CCastleInterface(const CGTownInstance * Town, const CGTownInst CWindowObject(PLAYER_COLORED | BORDERED), town(Town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; LOCPLINT->castleInt = this; addUsedEvents(KEYBOARD); @@ -1362,7 +1362,7 @@ void CCastleInterface::removeBuilding(BuildingID bid) void CCastleInterface::recreateIcons() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; size_t iconIndex = town->town->clientInfo.icons[town->hasFort()][town->built >= CGI->settings()->getInteger(EGameSettings::TOWNS_BUILDINGS_PER_TURN_CAP)]; icon->setFrame(iconIndex); @@ -1469,7 +1469,7 @@ CHallInterface::CBuildingBox::CBuildingBox(int x, int y, const CGTownInstance * town(Town), building(Building) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; addUsedEvents(LCLICK | SHOW_POPUP | HOVER); pos.x += x; pos.y += y; @@ -1532,7 +1532,7 @@ CHallInterface::CHallInterface(const CGTownInstance * Town): CWindowObject(PLAYER_COLORED | BORDERED, Town->town->clientInfo.hallBackground), town(Town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; resdatabar = std::make_shared(); resdatabar->moveBy(pos.topLeft(), true); @@ -1587,7 +1587,7 @@ CBuildWindow::CBuildWindow(const CGTownInstance *Town, const CBuilding * Buildin town(Town), building(Building) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; icon = std::make_shared(town->town->clientInfo.buildingsIcons, building->bid, 0, 125, 50); auto statusbarBackground = std::make_shared(background->getSurface(), Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26); @@ -1690,7 +1690,7 @@ std::string CBuildWindow::getTextForState(EBuildingState state) LabeledValue::LabeledValue(Rect size, std::string name, std::string descr, int min, int max) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x+=size.x; pos.y+=size.y; pos.w = size.w; @@ -1700,7 +1700,7 @@ LabeledValue::LabeledValue(Rect size, std::string name, std::string descr, int m LabeledValue::LabeledValue(Rect size, std::string name, std::string descr, int val) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x+=size.x; pos.y+=size.y; pos.w = size.w; @@ -1738,7 +1738,7 @@ void LabeledValue::hover(bool on) CFortScreen::CFortScreen(const CGTownInstance * town): CWindowObject(PLAYER_COLORED | BORDERED, getBgName(town)) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; ui32 fortSize = static_cast(town->creatures.size()); if(fortSize > GameConstants::CREATURES_PER_TOWN && town->creatures.back().second.empty()) fortSize--; @@ -1820,7 +1820,7 @@ CFortScreen::RecruitArea::RecruitArea(int posX, int posY, const CGTownInstance * level(Level), availableCount(nullptr) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x +=posX; pos.y +=posY; pos.w = 386; @@ -1927,7 +1927,7 @@ void CFortScreen::RecruitArea::showPopupWindow(const Point & cursorPosition) CMageGuildScreen::CMageGuildScreen(CCastleInterface * owner, const ImagePath & imagename) : CWindowObject(BORDERED, imagename) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; window = std::make_shared(owner->town->town->clientInfo.guildWindow, 332, 76); @@ -1966,7 +1966,7 @@ CMageGuildScreen::CMageGuildScreen(CCastleInterface * owner, const ImagePath & i CMageGuildScreen::Scroll::Scroll(Point position, const CSpell *Spell) : spell(Spell) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; addUsedEvents(LCLICK | SHOW_POPUP | HOVER); pos += position; @@ -1996,7 +1996,7 @@ void CMageGuildScreen::Scroll::hover(bool on) CBlacksmithDialog::CBlacksmithDialog(bool possible, CreatureID creMachineID, ArtifactID aid, ObjectInstanceID hid): CWindowObject(PLAYER_COLORED, ImagePath::builtin("TPSMITH")) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; Rect barRect(8, pos.h - 26, pos.w - 16, 19); diff --git a/client/windows/CCreatureWindow.cpp b/client/windows/CCreatureWindow.cpp index e33503ab3..b1f76f002 100644 --- a/client/windows/CCreatureWindow.cpp +++ b/client/windows/CCreatureWindow.cpp @@ -187,7 +187,7 @@ CStackWindow::CWindowSection::CWindowSection(CStackWindow * parent, const ImageP : parent(parent) { pos.y += yOffset; - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(!backgroundPath.empty()) { background = std::make_shared(backgroundPath); @@ -202,7 +202,7 @@ CStackWindow::ActiveSpellsSection::ActiveSpellsSection(CStackWindow * owner, int static const Point firstPos(6, 2); // position of 1st spell box static const Point offset(54, 0); // offset of each spell box from previous - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; const CStack * battleStack = parent->info->stack; @@ -241,7 +241,7 @@ CStackWindow::ActiveSpellsSection::ActiveSpellsSection(CStackWindow * owner, int CStackWindow::BonusLineSection::BonusLineSection(CStackWindow * owner, size_t lineIndex) : CWindowSection(owner, ImagePath::builtin("stackWindow/bonus-effects"), 0) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; static const std::array offset = { @@ -267,7 +267,7 @@ CStackWindow::BonusLineSection::BonusLineSection(CStackWindow * owner, size_t li CStackWindow::BonusesSection::BonusesSection(CStackWindow * owner, int yOffset, std::optional preferredSize): CWindowSection(owner, {}, yOffset) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; // size of single image for an item static const int itemHeight = 59; @@ -289,7 +289,7 @@ CStackWindow::BonusesSection::BonusesSection(CStackWindow * owner, int yOffset, CStackWindow::ButtonsSection::ButtonsSection(CStackWindow * owner, int yOffset) : CWindowSection(owner, ImagePath::builtin("stackWindow/button-panel"), yOffset) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(parent->info->dismissInfo && parent->info->dismissInfo->callback) { @@ -378,7 +378,7 @@ CStackWindow::ButtonsSection::ButtonsSection(CStackWindow * owner, int yOffset) CStackWindow::CommanderMainSection::CommanderMainSection(CStackWindow * owner, int yOffset) : CWindowSection(owner, ImagePath::builtin("stackWindow/commander-bg"), yOffset) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; auto getSkillPos = [](int index) { @@ -489,7 +489,7 @@ CStackWindow::CommanderMainSection::CommanderMainSection(CStackWindow * owner, i CStackWindow::MainSection::MainSection(CStackWindow * owner, int yOffset, bool showExp, bool showArt) : CWindowSection(owner, getBackgroundName(showExp, showArt), yOffset) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; statNames = { @@ -752,7 +752,7 @@ CStackWindow::~CStackWindow() void CStackWindow::init() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(!info->stackNode) info->stackNode = new CStackInstance(info->creature, 1, true);// FIXME: free data @@ -798,7 +798,7 @@ void CStackWindow::initBonusesList() void CStackWindow::initSections() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; bool showArt = CGI->settings()->getBoolean(EGameSettings::MODULE_STACK_ARTIFACT) && info->commander == nullptr && info->stackNode; bool showExp = (CGI->settings()->getBoolean(EGameSettings::MODULE_STACK_EXPERIENCE) || info->commander != nullptr) && info->stackNode; @@ -920,7 +920,7 @@ void CStackWindow::setSelection(si32 newSkill, std::shared_ptrcommander->secondarySkills[skillIndex], selected); }; - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; int oldSelection = selectedSkill; // update selection selectedSkill = newSkill; diff --git a/client/windows/CExchangeWindow.cpp b/client/windows/CExchangeWindow.cpp index deb147983..4ddd045d9 100644 --- a/client/windows/CExchangeWindow.cpp +++ b/client/windows/CExchangeWindow.cpp @@ -49,7 +49,7 @@ CExchangeWindow::CExchangeWindow(ObjectInstanceID hero1, ObjectInstanceID hero2, { const bool qeLayout = isQuickExchangeLayoutAvailable(); - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; addUsedEvents(KEYBOARD); heroInst[0] = LOCPLINT->cb->getHero(hero1); diff --git a/client/windows/CHeroBackpackWindow.cpp b/client/windows/CHeroBackpackWindow.cpp index 94fd4510b..9f8147c86 100644 --- a/client/windows/CHeroBackpackWindow.cpp +++ b/client/windows/CHeroBackpackWindow.cpp @@ -26,7 +26,7 @@ CHeroBackpackWindow::CHeroBackpackWindow(const CGHeroInstance * hero, const std::vector & artsSets) : CWindowWithArtifacts(&artsSets) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; stretchedBackground = std::make_shared(ImagePath::builtin("DIBOXBCK"), Rect(0, 0, 0, 0)); arts = std::make_shared(); @@ -60,7 +60,7 @@ void CHeroBackpackWindow::showAll(Canvas & to) CHeroQuickBackpackWindow::CHeroQuickBackpackWindow(const CGHeroInstance * hero, ArtifactPosition targetSlot) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; stretchedBackground = std::make_shared(ImagePath::builtin("DIBOXBCK"), Rect(0, 0, 0, 0)); arts = std::make_shared(targetSlot); diff --git a/client/windows/CHeroOverview.cpp b/client/windows/CHeroOverview.cpp index d76b3b926..e19b53bad 100644 --- a/client/windows/CHeroOverview.cpp +++ b/client/windows/CHeroOverview.cpp @@ -31,7 +31,7 @@ CHeroOverview::CHeroOverview(const HeroTypeID & h) : CWindowObject(BORDERED | RCLICK_POPUP), hero { h } { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; heroIdx = hero.getNum(); diff --git a/client/windows/CHeroWindow.cpp b/client/windows/CHeroWindow.cpp index 16b08af5d..36dd52d80 100644 --- a/client/windows/CHeroWindow.cpp +++ b/client/windows/CHeroWindow.cpp @@ -61,7 +61,7 @@ CHeroSwitcher::CHeroSwitcher(CHeroWindow * owner_, Point pos_, const CGHeroInsta owner(owner_), hero(hero_) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos += pos_; image = std::make_shared(AnimationPath::builtin("PortraitsSmall"), hero->getIconIndex()); @@ -74,7 +74,7 @@ CHeroWindow::CHeroWindow(const CGHeroInstance * hero) { auto & heroscrn = CGI->generaltexth->heroscrn; - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; curHero = hero; banner = std::make_shared(AnimationPath::builtin("CREST58"), LOCPLINT->playerID.getNum(), 0, 606, 8); @@ -197,7 +197,7 @@ void CHeroWindow::update() portraitImage->setFrame(curHero->getIconIndex()); { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(!garr) { std::string helpBox = heroscrn[32]; diff --git a/client/windows/CKingdomInterface.cpp b/client/windows/CKingdomInterface.cpp index f9b4eed66..42da761bb 100644 --- a/client/windows/CKingdomInterface.cpp +++ b/client/windows/CKingdomInterface.cpp @@ -56,7 +56,7 @@ InfoBox::InfoBox(Point position, InfoPos Pos, InfoSize Size, std::shared_ptr(data->getImageName(size), data->getImageIndex()); @@ -462,7 +462,7 @@ void InfoBoxCustom::prepareMessage(std::string & text, std::shared_ptr(std::bind(&CKingdomInterface::createMainTab, this, _1), Point(4,4)); @@ -691,7 +691,7 @@ bool CKingdomInterface::holdsGarrison(const CArmedInstance * army) CKingdHeroList::CKingdHeroList(size_t maxSize, const CreateHeroItemFunctor & onCreateHeroItemCallback) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; title = std::make_shared(ImagePath::builtin("OVTITLE"),16,0); title->setPlayerColor(LOCPLINT->playerID); heroLabel = std::make_shared(150, 10, FONT_MEDIUM, ETextAlignment::CENTER, Colors::WHITE, CGI->generaltexth->overview[0]); @@ -735,7 +735,7 @@ bool CKingdHeroList::holdsGarrison(const CArmedInstance * army) CKingdTownList::CKingdTownList(size_t maxSize) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; title = std::make_shared(ImagePath::builtin("OVTITLE"), 16, 0); title->setPlayerColor(LOCPLINT->playerID); townLabel = std::make_shared(146, 10,FONT_MEDIUM, ETextAlignment::CENTER, Colors::WHITE, CGI->generaltexth->overview[3]); @@ -791,7 +791,7 @@ std::shared_ptr CKingdTownList::createTownItem(size_t index) CTownItem::CTownItem(const CGTownInstance * Town) : town(Town) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(AnimationPath::builtin("OVSLOT"), 6); name = std::make_shared(74, 8, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, town->getNameTranslated()); @@ -883,7 +883,7 @@ public: ArtSlotsTab() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(AnimationPath::builtin("OVSLOT"), 4); pos = background->pos; for(int i=0; i<9; i++) @@ -901,7 +901,7 @@ public: BackpackTab() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = std::make_shared(AnimationPath::builtin("OVSLOT"), 5); pos = background->pos; btnLeft = std::make_shared(Point(269, 66), AnimationPath::builtin("HSBTNS3"), CButton::tooltip(), 0); @@ -914,7 +914,7 @@ public: CHeroItem::CHeroItem(const CGHeroInstance * Hero) : hero(Hero) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; artTabs.resize(3); auto arts1 = std::make_shared(); diff --git a/client/windows/CMapOverview.cpp b/client/windows/CMapOverview.cpp index d205a7eab..4c122a78d 100644 --- a/client/windows/CMapOverview.cpp +++ b/client/windows/CMapOverview.cpp @@ -45,7 +45,7 @@ CMapOverview::CMapOverview(std::string mapName, std::string fileName, std::strin : CWindowObject(BORDERED | RCLICK_POPUP), resource(resource), mapName(mapName), fileName(fileName), date(date), author(author), version(version), tabType(tabType) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; widget = std::make_shared(*this); diff --git a/client/windows/CMarketWindow.cpp b/client/windows/CMarketWindow.cpp index 8568a0536..6a8e2e2ce 100644 --- a/client/windows/CMarketWindow.cpp +++ b/client/windows/CMarketWindow.cpp @@ -40,7 +40,7 @@ CMarketWindow::CMarketWindow(const IMarket * market, const CGHeroInstance * hero mode == EMarketMode::RESOURCE_ARTIFACT || mode == EMarketMode::ARTIFACT_RESOURCE || mode == EMarketMode::ARTIFACT_EXP || mode == EMarketMode::CREATURE_EXP); - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; if(mode == EMarketMode::RESOURCE_RESOURCE) createMarketResources(market, hero); @@ -177,7 +177,7 @@ void CMarketWindow::initWidgetInternals(const EMarketMode mode, const std::pair< void CMarketWindow::createArtifactsBuying(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("TPMRKABS.bmp"), PLAYER_COLORED); marketWidget = std::make_shared(market, hero); @@ -186,7 +186,7 @@ void CMarketWindow::createArtifactsBuying(const IMarket * market, const CGHeroIn void CMarketWindow::createArtifactsSelling(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("TPMRKASS.bmp"), PLAYER_COLORED); // Create image that copies part of background containing slot MISC_1 into position of slot MISC_5 @@ -203,7 +203,7 @@ void CMarketWindow::createArtifactsSelling(const IMarket * market, const CGHeroI void CMarketWindow::createMarketResources(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("TPMRKRES.bmp"), PLAYER_COLORED); marketWidget = std::make_shared(market, hero); @@ -212,7 +212,7 @@ void CMarketWindow::createMarketResources(const IMarket * market, const CGHeroIn void CMarketWindow::createFreelancersGuild(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("TPMRKCRS.bmp"), PLAYER_COLORED); marketWidget = std::make_shared(market, hero); @@ -221,7 +221,7 @@ void CMarketWindow::createFreelancersGuild(const IMarket * market, const CGHeroI void CMarketWindow::createTransferResources(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("TPMRKPTS.bmp"), PLAYER_COLORED); marketWidget = std::make_shared(market, hero); @@ -230,7 +230,7 @@ void CMarketWindow::createTransferResources(const IMarket * market, const CGHero void CMarketWindow::createAltarArtifacts(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("ALTRART2.bmp"), PLAYER_COLORED); auto altarArtifacts = std::make_shared(market, hero); @@ -257,7 +257,7 @@ void CMarketWindow::createAltarArtifacts(const IMarket * market, const CGHeroIns void CMarketWindow::createAltarCreatures(const IMarket * market, const CGHeroInstance * hero) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(ImagePath::builtin("ALTARMON.bmp"), PLAYER_COLORED); marketWidget = std::make_shared(market, hero); diff --git a/client/windows/CPuzzleWindow.cpp b/client/windows/CPuzzleWindow.cpp index 2489c3afc..3a39c52f1 100644 --- a/client/windows/CPuzzleWindow.cpp +++ b/client/windows/CPuzzleWindow.cpp @@ -33,7 +33,7 @@ CPuzzleWindow::CPuzzleWindow(const int3 & GrailPos, double discoveredRatio) grailPos(GrailPos), currentAlpha(ColorRGBA::ALPHA_OPAQUE) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; CCS->soundh->playSound(soundBase::OBELISK); diff --git a/client/windows/CQuestLog.cpp b/client/windows/CQuestLog.cpp index ede1e71be..2e18ef424 100644 --- a/client/windows/CQuestLog.cpp +++ b/client/windows/CQuestLog.cpp @@ -73,7 +73,7 @@ CQuestMinimap::CQuestMinimap(const Rect & position) void CQuestMinimap::addQuestMarks (const QuestInfo * q) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; icons.clear(); int3 tile; @@ -122,7 +122,7 @@ CQuestLog::CQuestLog (const std::vector & Quests) hideComplete(false), quests(Quests) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; minimap = std::make_shared(Rect(12, 12, 169, 169)); // TextBox have it's own 4 pixel padding from top at least for English. To achieve 10px from both left and top only add 6px margin @@ -140,7 +140,7 @@ CQuestLog::CQuestLog (const std::vector & Quests) void CQuestLog::recreateLabelList() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; labels.clear(); bool completeMissing = true; @@ -292,7 +292,7 @@ void CQuestLog::selectQuest(int which, int labelId) break; }*/ - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; std::vector> comps; for(auto & component : components) diff --git a/client/windows/CSpellWindow.cpp b/client/windows/CSpellWindow.cpp index ad2f4e4bb..e1371c8e2 100644 --- a/client/windows/CSpellWindow.cpp +++ b/client/windows/CSpellWindow.cpp @@ -115,7 +115,7 @@ CSpellWindow::CSpellWindow(const CGHeroInstance * _myHero, CPlayerInterface * _m offT(-37), offB(56) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(isBigSpellbook) { @@ -594,7 +594,7 @@ CSpellWindow::SpellArea::SpellArea(Rect pos, CSpellWindow * owner) schoolLevel = -1; mySpell = nullptr; - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; image = std::make_shared(AnimationPath::builtin("Spells"), 0, 0); image->visible = false; @@ -744,7 +744,7 @@ void CSpellWindow::SpellArea::setSpell(const CSpell * spell) image->visible = true; { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; static const std::array schoolBorders = { AnimationPath::builtin("SplevA.def"), diff --git a/client/windows/CTutorialWindow.cpp b/client/windows/CTutorialWindow.cpp index c3926f918..59d1ca451 100644 --- a/client/windows/CTutorialWindow.cpp +++ b/client/windows/CTutorialWindow.cpp @@ -29,7 +29,7 @@ CTutorialWindow::CTutorialWindow(const TutorialMode & m) : CWindowObject(BORDERED, ImagePath::builtin("DIBOXBCK")), mode { m }, page { 0 } { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos = Rect(pos.x, pos.y, 380, 400); //video: 320x240 background = std::make_shared(ImagePath::builtin("DIBOXBCK"), Rect(0, 0, pos.w, pos.h)); @@ -54,7 +54,7 @@ CTutorialWindow::CTutorialWindow(const TutorialMode & m) void CTutorialWindow::setContent() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; auto video = VideoPath::builtin("tutorial/" + videos[page]); videoPlayer = std::make_shared(Point(30, 120), video, false); diff --git a/client/windows/CWindowObject.cpp b/client/windows/CWindowObject.cpp index d26fdd438..2b88f6064 100644 --- a/client/windows/CWindowObject.cpp +++ b/client/windows/CWindowObject.cpp @@ -81,7 +81,7 @@ CWindowObject::~CWindowObject() std::shared_ptr CWindowObject::createBg(const ImagePath & imageName, bool playerColored) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(imageName.empty()) return nullptr; @@ -95,7 +95,7 @@ std::shared_ptr CWindowObject::createBg(const ImagePath & imageName, b void CWindowObject::setBackground(const ImagePath & filename) { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; background = createBg(filename, options & PLAYER_COLORED); @@ -206,7 +206,7 @@ void CWindowObject::setShadow(bool on) //generate "shadow" object with these 3 pieces in it { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; shadowParts.push_back(std::make_shared( GH.renderHandler().createImage(shadowCorner), Point(shadowPos.x, shadowPos.y))); shadowParts.push_back(std::make_shared( GH.renderHandler().createImage(shadowRight ), Point(shadowPos.x, shadowStart.y))); diff --git a/client/windows/CreaturePurchaseCard.cpp b/client/windows/CreaturePurchaseCard.cpp index 5592f5e44..b61adf9f1 100644 --- a/client/windows/CreaturePurchaseCard.cpp +++ b/client/windows/CreaturePurchaseCard.cpp @@ -50,7 +50,7 @@ void CreaturePurchaseCard::initCreatureSwitcherButton() void CreaturePurchaseCard::switchCreatureLevel() { - OBJECT_CONSTRUCTION_CAPTURING(ACTIVATE + DEACTIVATE + UPDATE + SHOWALL + SHARE_POS); + OBJECT_CONSTRUCTION; auto index = vstd::find_pos(upgradesID, creatureOnTheCard->getId()); auto nextCreatureId = vstd::circularAt(upgradesID, ++index); creatureOnTheCard = nextCreatureId.toCreature(); diff --git a/client/windows/GUIClasses.cpp b/client/windows/GUIClasses.cpp index 9dc0fedef..391c32966 100644 --- a/client/windows/GUIClasses.cpp +++ b/client/windows/GUIClasses.cpp @@ -66,7 +66,7 @@ CRecruitmentWindow::CCreatureCard::CCreatureCard(CRecruitmentWindow * window, co creature(crea), amount(totalAmount) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; animation = std::make_shared(1, 1, creature, true, true); // 1 + 1 px for borders pos.w = animation->pos.w + 2; @@ -213,7 +213,7 @@ CRecruitmentWindow::CRecruitmentWindow(const CGDwelling * Dwelling, int Level, c { moveBy(Point(0, y_offset)); - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; statusbar = CGStatusBar::create(std::make_shared(background->getSurface(), Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26)); @@ -238,7 +238,7 @@ CRecruitmentWindow::CRecruitmentWindow(const CGDwelling * Dwelling, int Level, c void CRecruitmentWindow::availableCreaturesChanged() { - OBJECT_CONSTRUCTION_CUSTOM_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; size_t selectedIndex = 0; @@ -316,7 +316,7 @@ CSplitWindow::CSplitWindow(const CCreature * creature, std::functionshowingDialog->setBusy(); @@ -453,7 +453,7 @@ CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj, const std::func tavernObj(TavernObj), heroToInvite(nullptr) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; std::vector h = LOCPLINT->cb->getAvailableHeroes(TavernObj); if(h.size() < 2) @@ -532,7 +532,7 @@ CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj, const std::func void CTavernWindow::addInvite() { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(!VLC->settings()->getBoolean(EGameSettings::HEROES_TAVERN_INVITE)) return; @@ -630,7 +630,7 @@ CTavernWindow::HeroPortrait::HeroPortrait(int & sel, int id, int x, int y, const : CIntObject(LCLICK | DOUBLECLICK | SHOW_POPUP | HOVER), h(H), _sel(&sel), _id(id), onChoose(OnChoose) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; h = H; pos.x += x; pos.y += y; @@ -669,7 +669,7 @@ void CTavernWindow::HeroPortrait::hover(bool on) CTavernWindow::HeroSelector::HeroSelector(std::map InviteableHeroes, std::function OnChoose) : CWindowObject(BORDERED), inviteableHeroes(InviteableHeroes), onChoose(OnChoose) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; pos = Rect( pos.x, @@ -701,7 +701,7 @@ void CTavernWindow::HeroSelector::sliderMove(int slidPos) void CTavernWindow::HeroSelector::recreate() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; int sliderLine = slider ? slider->getValue() : 0; int x = 0; @@ -729,7 +729,7 @@ void CTavernWindow::HeroSelector::recreate() CShipyardWindow::CShipyardWindow(const TResources & cost, int state, BoatId boatType, const std::function & onBuy) : CWindowObject(PLAYER_COLORED, ImagePath::builtin("TPSHIP")) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; bgWater = std::make_shared(ImagePath::builtin("TPSHIPBK"), 100, 69); @@ -803,7 +803,7 @@ CTransformerWindow::CItem::CItem(CTransformerWindow * parent_, int size_, int id size(size_), parent(parent_) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; left = true; pos.w = 58; pos.h = 64; @@ -850,7 +850,7 @@ CTransformerWindow::CTransformerWindow(const IMarket * _market, const CGHeroInst onWindowClosed(onWindowClosed), market(_market) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(hero) army = hero; else @@ -889,7 +889,7 @@ CUniversityWindow::CItem::CItem(CUniversityWindow * _parent, int _ID, int X, int ID(_ID), parent(_parent) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; pos.x += X; pos.y += Y; @@ -929,7 +929,7 @@ void CUniversityWindow::CItem::update() else image = ImagePath::builtin("UNIVRED"); - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; topBar = std::make_shared(image, Point(-28, -22)); bottomBar = std::make_shared(image, Point(-28, 48)); @@ -952,7 +952,7 @@ CUniversityWindow::CUniversityWindow(const CGHeroInstance * _hero, const IMarket onWindowClosed(onWindowClosed), market(_market) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; std::string titleStr = CGI->generaltexth->allTexts[602]; @@ -1012,7 +1012,7 @@ CUnivConfirmWindow::CUnivConfirmWindow(CUniversityWindow * owner_, SecondarySkil : CWindowObject(PLAYER_COLORED, ImagePath::builtin("UNIVERS2.PCX")), owner(owner_) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; std::string text = CGI->generaltexth->allTexts[608]; boost::replace_first(text, "%s", CGI->generaltexth->levels[0]); @@ -1052,7 +1052,7 @@ void CUnivConfirmWindow::makeDeal(SecondarySkill skill) CGarrisonWindow::CGarrisonWindow(const CArmedInstance * up, const CGHeroInstance * down, bool removableUnits) : CWindowObject(PLAYER_COLORED, ImagePath::builtin("GARRISON")) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; garr = std::make_shared(Point(92, 127), 4, Point(0,96), up, down, removableUnits); { @@ -1100,7 +1100,7 @@ CHillFortWindow::CHillFortWindow(const CGHeroInstance * visitor, const CGObjectI fort(object), hero(visitor) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; title = std::make_shared(325, 32, FONT_BIG, ETextAlignment::CENTER, Colors::YELLOW, fort->getObjectName()); @@ -1303,7 +1303,7 @@ CThievesGuildWindow::CThievesGuildWindow(const CGObjectInstance * _owner): CWindowObject(PLAYER_COLORED | BORDERED, ImagePath::builtin("TpRank")), owner(_owner) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; SThievesGuildInfo tgi; //info to be displayed LOCPLINT->cb->getThievesGuildInfo(tgi, owner); @@ -1431,7 +1431,7 @@ CObjectListWindow::CItem::CItem(CObjectListWindow * _parent, size_t _id, std::st parent(_parent), index(_id) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; if(parent->images.size() > index) icon = std::make_shared(parent->images[index], Point(1, 1)); border = std::make_shared(ImagePath::builtin("TPGATES")); @@ -1484,7 +1484,7 @@ CObjectListWindow::CObjectListWindow(const std::vector & _items, std::share selected(initialSelection), images(images) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; items.reserve(_items.size()); for(int id : _items) @@ -1501,7 +1501,7 @@ CObjectListWindow::CObjectListWindow(const std::vector & _items, st selected(initialSelection), images(images) { - OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); + OBJECT_CONSTRUCTION; items.reserve(_items.size()); for(size_t i=0; i<_items.size(); i++) diff --git a/client/windows/InfoWindows.cpp b/client/windows/InfoWindows.cpp index 3aa6826c6..4eaa690be 100644 --- a/client/windows/InfoWindows.cpp +++ b/client/windows/InfoWindows.cpp @@ -38,7 +38,7 @@ CSelWindow::CSelWindow( const std::string & Text, PlayerColor player, int charperline, const std::vector> & comps, const std::vector>> & Buttons, QueryID askID) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; backgroundTexture = std::make_shared(ImagePath::builtin("DiBoxBck"), pos); @@ -94,7 +94,7 @@ void CSelWindow::madeChoiceAndClose() CInfoWindow::CInfoWindow(const std::string & Text, PlayerColor player, const TCompsInfo & comps, const TButtonsInfo & Buttons) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; backgroundTexture = std::make_shared(ImagePath::builtin("DiBoxBck"), pos); @@ -273,7 +273,7 @@ CInfoBoxPopup::CInfoBoxPopup(Point position, const CGTownInstance * town) InfoAboutTown iah; LOCPLINT->cb->getTownInfo(town, iah, LOCPLINT->localState->getCurrentTown()); //todo: should this be nearest hero? - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; tooltip = std::make_shared(Point(9, 10), iah); } @@ -283,7 +283,7 @@ CInfoBoxPopup::CInfoBoxPopup(Point position, const CGHeroInstance * hero) InfoAboutHero iah; LOCPLINT->cb->getHeroInfo(hero, iah, LOCPLINT->localState->getCurrentHero()); //todo: should this be nearest hero? - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; tooltip = std::make_shared(Point(9, 10), iah); } @@ -293,14 +293,14 @@ CInfoBoxPopup::CInfoBoxPopup(Point position, const CGGarrison * garr) InfoAboutTown iah; LOCPLINT->cb->getTownInfo(garr, iah); - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; tooltip = std::make_shared(Point(9, 10), iah); } CInfoBoxPopup::CInfoBoxPopup(Point position, const CGCreature * creature) : CWindowObject(RCLICK_POPUP | BORDERED, ImagePath::builtin("DIBOXBCK"), toScreen(position)) { - OBJECT_CONSTRUCTION_CAPTURING(255 - DISPOSE); + OBJECT_CONSTRUCTION; tooltip = std::make_shared(Point(9, 10), creature); } diff --git a/client/windows/QuickRecruitmentWindow.cpp b/client/windows/QuickRecruitmentWindow.cpp index ae976282b..b45a7f94b 100644 --- a/client/windows/QuickRecruitmentWindow.cpp +++ b/client/windows/QuickRecruitmentWindow.cpp @@ -151,7 +151,7 @@ QuickRecruitmentWindow::QuickRecruitmentWindow(const CGTownInstance * townd, Rec : CWindowObject(PLAYER_COLORED | BORDERED), town(townd) { - OBJECT_CONSTRUCTION_CAPTURING(ACTIVATE + DEACTIVATE + UPDATE + SHOWALL); + OBJECT_CONSTRUCTION; initWindow(startupPosition); setButtons(); diff --git a/client/windows/settings/AdventureOptionsTab.cpp b/client/windows/settings/AdventureOptionsTab.cpp index f514f33f1..21e289b60 100644 --- a/client/windows/settings/AdventureOptionsTab.cpp +++ b/client/windows/settings/AdventureOptionsTab.cpp @@ -33,7 +33,7 @@ static void setIntSetting(std::string group, std::string field, int value) AdventureOptionsTab::AdventureOptionsTab() : InterfaceObjectConfigurable() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; setRedrawParent(true); #ifdef VCMI_MOBILE diff --git a/client/windows/settings/BattleOptionsTab.cpp b/client/windows/settings/BattleOptionsTab.cpp index 0da5ca4f0..adefb75c3 100644 --- a/client/windows/settings/BattleOptionsTab.cpp +++ b/client/windows/settings/BattleOptionsTab.cpp @@ -20,7 +20,7 @@ BattleOptionsTab::BattleOptionsTab(BattleInterface * owner) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; setRedrawParent(true); const JsonNode config(JsonPath::builtin("config/widgets/settings/battleOptionsTab.json")); diff --git a/client/windows/settings/GeneralOptionsTab.cpp b/client/windows/settings/GeneralOptionsTab.cpp index 09bed3cf2..b0a965414 100644 --- a/client/windows/settings/GeneralOptionsTab.cpp +++ b/client/windows/settings/GeneralOptionsTab.cpp @@ -94,7 +94,7 @@ GeneralOptionsTab::GeneralOptionsTab() : InterfaceObjectConfigurable(), onFullscreenChanged(settings.listen["video"]["fullscreen"]) { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; setRedrawParent(true); addConditional("touchscreen", GH.input().hasTouchInputDevice()); diff --git a/client/windows/settings/OtherOptionsTab.cpp b/client/windows/settings/OtherOptionsTab.cpp index c2709b6a6..bf555ff90 100644 --- a/client/windows/settings/OtherOptionsTab.cpp +++ b/client/windows/settings/OtherOptionsTab.cpp @@ -24,7 +24,7 @@ static void setBoolSetting(std::string group, std::string field, bool value) OtherOptionsTab::OtherOptionsTab() : InterfaceObjectConfigurable() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; const JsonNode config(JsonPath::builtin("config/widgets/settings/otherOptionsTab.json")); addCallback("availableCreaturesAsDwellingLabelChanged", [](bool value) diff --git a/client/windows/settings/SettingsMainWindow.cpp b/client/windows/settings/SettingsMainWindow.cpp index f9f0589c0..6b7b53a1b 100644 --- a/client/windows/settings/SettingsMainWindow.cpp +++ b/client/windows/settings/SettingsMainWindow.cpp @@ -33,7 +33,7 @@ SettingsMainWindow::SettingsMainWindow(BattleInterface * parentBattleUi) : InterfaceObjectConfigurable() { - OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; + OBJECT_CONSTRUCTION; const JsonNode config(JsonPath::builtin("config/widgets/settings/settingsMainContainer.json")); addCallback("activateSettingsTab", [this](int tabId) { openTab(tabId); });