From 3038e5140a8eb51aeedf75c74549583eb5e9797d Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Fri, 1 Nov 2024 19:02:51 +0100 Subject: [PATCH] add color frames; remove scrollbar --- .../stackWindow/bonus-effects-noscroll.png | Bin 0 -> 35463 bytes client/windows/CCreatureWindow.cpp | 37 +++++++++++++++--- client/windows/CCreatureWindow.h | 5 ++- 3 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 Mods/vcmi/Data/stackWindow/bonus-effects-noscroll.png diff --git a/Mods/vcmi/Data/stackWindow/bonus-effects-noscroll.png b/Mods/vcmi/Data/stackWindow/bonus-effects-noscroll.png new file mode 100644 index 0000000000000000000000000000000000000000..67fe2ce82f477afb855ddce32baf5db3f4db0c62 GIT binary patch literal 35463 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
v7=T$@uH5Lx(DpA& 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.imagePath, position.x, position.y); name[leftRight] = std::make_shared(position.x + 60, position.y + 2, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, bi.name); description[leftRight] = std::make_shared(Rect(position.x + 60, position.y + 17, 137, 30), FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, bi.description); + + std::map bonusColors = { + {BonusSource::ARTIFACT, ColorRGBA(255, 0, 0)}, + {BonusSource::ARTIFACT_INSTANCE, ColorRGBA(255, 0, 0)}, + {BonusSource::OBJECT_TYPE, ColorRGBA(255, 0, 0)}, + {BonusSource::OBJECT_INSTANCE, ColorRGBA(255, 0, 0)}, + {BonusSource::CREATURE_ABILITY, ColorRGBA(255, 0, 0)}, + {BonusSource::TERRAIN_NATIVE, ColorRGBA(255, 0, 0)}, + {BonusSource::TERRAIN_OVERLAY, ColorRGBA(255, 0, 0)}, + {BonusSource::SPELL_EFFECT, ColorRGBA(255, 0, 0)}, + {BonusSource::TOWN_STRUCTURE, ColorRGBA(255, 0, 0)}, + {BonusSource::HERO_BASE_SKILL, ColorRGBA(255, 0, 0)}, + {BonusSource::SECONDARY_SKILL, ColorRGBA(0, 0, 255)}, + {BonusSource::HERO_SPECIAL, ColorRGBA(0, 0, 255)}, + {BonusSource::ARMY, ColorRGBA(0, 255, 0)}, + {BonusSource::CAMPAIGN_BONUS, ColorRGBA(255, 0, 0)}, + {BonusSource::STACK_EXPERIENCE, ColorRGBA(255, 0, 0)}, + {BonusSource::COMMANDER, ColorRGBA(255, 0, 0)}, + {BonusSource::GLOBAL, ColorRGBA(255, 0, 0)}, + {BonusSource::OTHER, ColorRGBA(255, 0, 0)} + }; + + frame[leftRight] = std::make_shared(Rect(position.x, position.y, 50, 50)); + if(bonusColors.count(bi.bonus->source)) + frame[leftRight]->addRectangle(Point(0, 0), Point(50, 50), bonusColors[bi.bonus->source]); } } } @@ -281,10 +307,10 @@ CStackWindow::BonusesSection::BonusesSection(CStackWindow * owner, int yOffset, auto onCreate = [=](size_t index) -> std::shared_ptr { - return std::make_shared(owner, index); + return std::make_shared(owner, index, totalSize <= 3); }; - lines = std::make_shared(onCreate, Point(0, 0), Point(0, itemHeight), visibleSize, totalSize, 0, 1, Rect(pos.w - 15, 0, pos.h, pos.h)); + lines = std::make_shared(onCreate, Point(0, 0), Point(0, itemHeight), visibleSize, totalSize, 0, totalSize > 3 ? 1 : 0, Rect(pos.w - 15, 0, pos.h, pos.h)); } CStackWindow::ButtonsSection::ButtonsSection(CStackWindow * owner, int yOffset) @@ -533,7 +559,7 @@ CStackWindow::MainSection::MainSection(CStackWindow * owner, int yOffset, bool s animation->setAmount(parent->info->creatureCount); } - name = std::make_shared(215, 12, FONT_SMALL, ETextAlignment::CENTER, Colors::YELLOW, parent->info->getName()); + name = std::make_shared(215, 13, FONT_SMALL, ETextAlignment::CENTER, Colors::YELLOW, parent->info->getName()); const BattleInterface* battleInterface = LOCPLINT->battleInt.get(); const CStack* battleStack = parent->info->stack; @@ -801,6 +827,7 @@ void CStackWindow::initBonusesList() bonusInfo.name = info->stackNode->bonusToString(b, false); bonusInfo.description = info->stackNode->bonusToString(b, true); bonusInfo.imagePath = info->stackNode->bonusToGraphics(b); + bonusInfo.bonus = b; //if it's possible to give any description or image for this kind of bonus //TODO: figure out why half of bonuses don't have proper description diff --git a/client/windows/CCreatureWindow.h b/client/windows/CCreatureWindow.h index 62ed20a74..bfa2468b0 100644 --- a/client/windows/CCreatureWindow.h +++ b/client/windows/CCreatureWindow.h @@ -31,6 +31,7 @@ class CListBox; class CArtPlace; class CCommanderArtPlace; class LRClickableArea; +class GraphicalPrimitiveCanvas; class CCommanderSkillIcon : public LRClickableAreaWText //TODO: maybe bring commander skill button initialization logic inside? { @@ -58,6 +59,7 @@ class CStackWindow : public CWindowObject std::string name; std::string description; ImagePath imagePath; + std::shared_ptr bonus; }; class CWindowSection : public CIntObject @@ -84,8 +86,9 @@ class CStackWindow : public CWindowObject std::array, 2> icon; std::array, 2> name; std::array, 2> description; + std::array, 2> frame; public: - BonusLineSection(CStackWindow * owner, size_t lineIndex); + BonusLineSection(CStackWindow * owner, size_t lineIndex, bool noScroll); }; class BonusesSection : public CWindowSection