diff --git a/loader/src/ui/internal/info/DevProfilePopup.cpp b/loader/src/ui/internal/info/DevProfilePopup.cpp index 516db347..1db348f5 100644 --- a/loader/src/ui/internal/info/DevProfilePopup.cpp +++ b/loader/src/ui/internal/info/DevProfilePopup.cpp @@ -17,9 +17,11 @@ bool DevProfilePopup::setup(std::string const& developer) { // installed mods for (auto& mod : Loader::get()->getAllMods()) { if (mod->getDeveloper() == developer) { - items->addObject(ModCell::create( + auto cell = ModCell::create( mod, nullptr, ModListDisplay::Concise, { 358.f, 40.f } - )); + ); + cell->disableDeveloperButton(); + items->addObject(cell); } } @@ -28,9 +30,11 @@ bool DevProfilePopup::setup(std::string const& developer) { if (Loader::get()->isModInstalled(item->info.id())) { continue; } - items->addObject(IndexItemCell::create( + auto cell = IndexItemCell::create( item, nullptr, ModListDisplay::Concise, { 358.f, 40.f } - )); + ); + cell->disableDeveloperButton(); + items->addObject(cell); } // mods list diff --git a/loader/src/ui/internal/list/ModListCell.cpp b/loader/src/ui/internal/list/ModListCell.cpp index ad2f1ae8..03b3c34e 100644 --- a/loader/src/ui/internal/list/ModListCell.cpp +++ b/loader/src/ui/internal/list/ModListCell.cpp @@ -94,24 +94,24 @@ void ModListCell::setupInfo( auto creatorLabel = CCLabelBMFont::create(creatorStr.c_str(), "goldFont.fnt"); creatorLabel->setScale(.43f); - auto creatorBtn = CCMenuItemSpriteExtra::create( + m_developerBtn = CCMenuItemSpriteExtra::create( creatorLabel, this, menu_selector(ModListCell::onViewDev) ); - creatorBtn->setPositionX( + m_developerBtn->setPositionX( m_height / 2 + logoSize / 2 + 13.f + creatorLabel->getScaledContentSize().width / 2 - m_menu->getPositionX() ); if (hasDesc && spaceForTags) { - creatorBtn->setPositionY(+7.5f); + m_developerBtn->setPositionY(+7.5f); } else if (hasDesc || spaceForTags) { - creatorBtn->setPositionY(0.f); + m_developerBtn->setPositionY(0.f); } else { - creatorBtn->setPositionY(-7.f); + m_developerBtn->setPositionY(-7.f); } - m_menu->addChild(creatorBtn); + m_menu->addChild(m_developerBtn); if (hasDesc) { auto descBG = CCScale9Sprite::create("square02b_001.png", {0.0f, 0.0f, 80.0f, 80.0f}); @@ -150,6 +150,10 @@ bool ModListCell::init(ModListLayer* list, CCSize const& size) { return true; } +void ModListCell::disableDeveloperButton() { + m_developerBtn->setEnabled(false); +} + // ModCell ModCell* ModCell::create( diff --git a/loader/src/ui/internal/list/ModListCell.hpp b/loader/src/ui/internal/list/ModListCell.hpp index e65488fb..e4d47f22 100644 --- a/loader/src/ui/internal/list/ModListCell.hpp +++ b/loader/src/ui/internal/list/ModListCell.hpp @@ -23,6 +23,7 @@ protected: CCLabelBMFont* m_description; CCMenuItemToggler* m_enableToggle = nullptr; CCMenuItemSpriteExtra* m_unresolvedExMark; + CCMenuItemSpriteExtra* m_developerBtn; bool init(ModListLayer* list, CCSize const& size); void setupInfo(ModInfo const& info, bool spaceForTags, ModListDisplay display); @@ -35,6 +36,8 @@ public: virtual void updateState() = 0; virtual CCNode* createLogo(CCSize const& size) = 0; virtual std::string getDeveloper() const = 0; + + void disableDeveloperButton(); }; /**