diff --git a/src/MoreVideoOptionsLayer.cpp b/src/MoreVideoOptionsLayer.cpp new file mode 100644 index 0000000..49815c1 --- /dev/null +++ b/src/MoreVideoOptionsLayer.cpp @@ -0,0 +1,65 @@ +#include +#include +#include +#include + +using namespace geode::prelude; +using namespace geode::node_ids; + +$register_ids(MoreVideoOptionsLayer) { + auto mainLayer = static_cast(this->getChildren()->objectAtIndex(0)); + mainLayer->setID("main-layer"); + + setIDSafe(mainLayer, 0, "title"); + setIDSafe(mainLayer, 1, "fps-label"); + + auto buttonMenu = mainLayer->getChildByType(0); + buttonMenu->setID("buttons-menu"); + + setIDSafe(buttonMenu, 0, "vsync-toggle"); + setIDSafe(buttonMenu, 1, "smoothfix-toggle"); + setIDSafe(buttonMenu, 2, "showfps-toggle"); + setIDSafe(buttonMenu, 3, "unlockfps-toggle"); + + setIDSafe(buttonMenu, 0, "info-vsync"); + setIDSafe(buttonMenu, 1, "info-smoothfix"); + setIDSafe(buttonMenu, 2, "info-showfps"); + setIDSafe(buttonMenu, 3, "info-unlockfps"); + // setIDSafe(buttonMenu, 4, "fps-bypass-apply"); + setIDSafe(buttonMenu, 5, "close"); + + // APPLY BUTTON + auto applyButton = buttonMenu->getChildByType(4); + auto applyButtonSpr = applyButton->getChildByType(0); + applyButton->setID("apply-button"); + applyButtonSpr->setID("button-sprite"); + + setIDSafe(applyButton, 0, "button-sprite"); + setIDSafe(applyButtonSpr, 0, "apply-label"); + + + + auto labelLayer = mainLayer->getChildByType(1); + labelLayer->setID("label-layer"); + + setIDSafe(labelLayer, 0, "vsync-label"); + setIDSafe(labelLayer, 1, "smoothfix-label"); + setIDSafe(labelLayer, 2, "showfps-label"); + setIDSafe(labelLayer, 3, "unlockfps-label"); + +} + +struct MoreVideoOptionsLayerIDs : Modify { + static void onModify(auto& self) { + if (!self.setHookPriority("MoreVideoOptionsLayer::init", GEODE_ID_PRIORITY)) { + log::warn("Failed to set MoreVideoOptionsLayer::init hook priority, node IDs may not work properly"); + } + } + + bool init() { + if (!MoreVideoOptionsLayer::init()) return false; + + NodeIDs::get()->provide(this); + return true; + } +}; diff --git a/src/VideoOptionsLayer.cpp b/src/VideoOptionsLayer.cpp new file mode 100644 index 0000000..bfac79a --- /dev/null +++ b/src/VideoOptionsLayer.cpp @@ -0,0 +1,88 @@ +#include +#include +#include +#include + +using namespace geode::prelude; +using namespace geode::node_ids; + +$register_ids(VideoOptionsLayer) { + auto mainLayer = static_cast(this->getChildren()->objectAtIndex(0)); + mainLayer->setID("main-layer"); + + setIDSafe(mainLayer, 0, "prev-resolution-button"); + setIDSafe(mainLayer, 1, "next-resolution-button"); + + setIDSafe(mainLayer, 0, "title"); + setIDSafe(mainLayer, 1, "fullscreen-label"); + setIDSafe(mainLayer, 2, "borderless-label"); + setIDSafe(mainLayer, 3, "fix-label"); + setIDSafe(mainLayer, 4, "res-quality"); + setIDSafe(mainLayer, 5, "texture-quality"); + setIDSafe(mainLayer, 6, "texture-label"); + setIDSafe(mainLayer, 7, "res-label"); + + auto buttonMenu = mainLayer->getChildByType(0); + buttonMenu->setID("buttons-menu"); + + setIDSafe(buttonMenu, 0, "fullscreen-toggle"); + setIDSafe(buttonMenu, 1, "borderless-toggle"); + setIDSafe(buttonMenu, 2, "fix-toggle"); + + setIDSafe(buttonMenu, 0, "resolution-left-button"); + setIDSafe(buttonMenu, 1, "resolution-right-button"); + + setIDSafe(buttonMenu, 2, "texture-left-button"); + setIDSafe(buttonMenu, 3, "texture-right-button"); + + //setIDSafe(buttonMenu, 4, "back-button"); + //setIDSafe(buttonMenu, 5, "apply-button"); + + setIDSafe(buttonMenu, 6, "close-button"); + + // setIDSafe(buttonMenu, 7,"advanced-button"); + + // BACK BUTTON + auto backButton = buttonMenu->getChildByType(4); + auto backButtonSpr = backButton->getChildByType(0); + backButton->setID("back-button"); + backButtonSpr->setID("button-sprite"); + + setIDSafe(backButton, 0, "button-sprite"); + setIDSafe(backButtonSpr, 0, "back-label"); + + // APPLY BUTTON + auto applyButton = buttonMenu->getChildByType(5); + auto applyButtonSpr = applyButton->getChildByType(0); + applyButton->setID("apply-button"); + applyButtonSpr->setID("button-sprite"); + + setIDSafe(applyButton, 0, "button-sprite"); + setIDSafe(applyButtonSpr, 0, "apply-label"); + + // ADVANCED BUTTON + + auto advancedButton = buttonMenu->getChildByType(7); + auto advancedButtonSpr = advancedButton->getChildByType(0); + advancedButton->setID("advanced-button"); + advancedButtonSpr->setID("button-sprite"); + + setIDSafe(advancedButton, 0, "button-sprite"); + setIDSafe(advancedButtonSpr, 0, "advanced-label"); + +} + +struct VideoOptionsLayerIDs : Modify { + static void onModify(auto& self) { + if (!self.setHookPriority("VideoOptionsLayer::init", GEODE_ID_PRIORITY)) { + log::warn("Failed to set VideoOptionsLayer::init hook priority, node IDs may not work properly"); + } + } + + bool init() { + if (!VideoOptionsLayer::init()) return false; + + NodeIDs::get()->provide(this); + return true; + } +};