From f03ca5702a4618e5e2e1349ee638344a26c8cbf2 Mon Sep 17 00:00:00 2001 From: TechStudent10 <76978184+TechStudent10@users.noreply.github.com> Date: Sat, 27 Jul 2024 20:03:06 -0600 Subject: [PATCH] Initial Commit --- .github/workflows/multi-platform.yml | 55 +++ .gitignore | 64 ++++ CMakeLists.txt | 26 ++ README.md | 15 + about.md | 12 + about.md.old | 74 ++++ changelog.md | 2 + logo.png | Bin 0 -> 95088 bytes mod.json | 24 ++ script.py | 14 + script2.py | 156 ++++++++ script3.py | 74 ++++ src/SettingsLayer.cpp | 516 +++++++++++++++++++++++++++ src/SettingsLayer.hpp | 70 ++++ src/main.cpp | 12 + 15 files changed, 1114 insertions(+) create mode 100644 .github/workflows/multi-platform.yml create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 README.md create mode 100644 about.md create mode 100644 about.md.old create mode 100644 changelog.md create mode 100644 logo.png create mode 100644 mod.json create mode 100644 script.py create mode 100644 script2.py create mode 100644 script3.py create mode 100644 src/SettingsLayer.cpp create mode 100644 src/SettingsLayer.hpp create mode 100644 src/main.cpp diff --git a/.github/workflows/multi-platform.yml b/.github/workflows/multi-platform.yml new file mode 100644 index 0000000..1cbfbca --- /dev/null +++ b/.github/workflows/multi-platform.yml @@ -0,0 +1,55 @@ +name: Build Geode Mod + +on: + workflow_dispatch: + push: + branches: + - "**" + +jobs: + build: + strategy: + fail-fast: false + matrix: + config: + - name: Windows + os: windows-latest + + - name: macOS + os: macos-latest + + - name: Android32 + os: ubuntu-latest + target: Android32 + + - name: Android64 + os: ubuntu-latest + target: Android64 + + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Build the mod + uses: geode-sdk/build-geode-mod@main + with: + bindings: geode-sdk/bindings + bindings-ref: main + combine: true + target: ${{ matrix.config.target }} + + package: + name: Package builds + runs-on: ubuntu-latest + needs: ['build'] + + steps: + - uses: geode-sdk/build-geode-mod/combine@main + id: build + + - uses: actions/upload-artifact@v4 + with: + name: Build Output + path: ${{ steps.build.outputs.build-output }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2604c20 --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# Macos be like +**/.DS_Store + +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Ignore build folders +**/build +# Ignore platform specific build folders +build-*/ + +# Workspace files are user-specific +*.sublime-workspace + +# ILY vscode +**/.vscode + +# Local History for Visual Studio Code +.history/ + +# clangd +.cache/ + +# Visual Studio +.vs/ + +# CLion +.idea/ +/cmake-build-*/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..fb92d2f --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.21) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64") +set(CMAKE_CXX_VISIBILITY_PRESET hidden) + +project(SettingsPlus VERSION 1.0.0) + +add_library(${PROJECT_NAME} SHARED + src/main.cpp + src/SettingsLayer.cpp + # Add any extra C++ source files here +) + +if (NOT DEFINED ENV{GEODE_SDK}) + message(FATAL_ERROR "Unable to find Geode SDK! Please define GEODE_SDK environment variable to point to Geode") +else() + message(STATUS "Found Geode: $ENV{GEODE_SDK}") +endif() + +add_subdirectory($ENV{GEODE_SDK} ${CMAKE_CURRENT_BINARY_DIR}/geode) + +CPMAddPackage("gh:camila314/uibuilder#c662f54") +target_link_libraries(${PROJECT_NAME} UIBuilder) + +setup_geode_mod(${PROJECT_NAME}) diff --git a/README.md b/README.md new file mode 100644 index 0000000..df8fb37 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Settings+ + +An enhanced settings experience + +the mod's logo + +## Build instructions +For more info, see [The Geode docs](https://docs.geode-sdk.org/getting-started/create-mod#build) +```sh +# Assuming you have the Geode CLI set up already +geode build +``` + +# Credits +* [WylieMaster's GD Docs page on Game Variables](https://wyliemaster.github.io/gddocs/#/resources/client/gamesave/gv) \ No newline at end of file diff --git a/about.md b/about.md new file mode 100644 index 0000000..1955b17 --- /dev/null +++ b/about.md @@ -0,0 +1,12 @@ +# Settings+ + +An enhanced options modal for Geometry Dash. + +### Features +- Easily selectable categories +- Searching +- Options that aren't available in the base GD settings + +HUGE thank you and shoutout to the [GD Docs](https://wyliemaster.github.io/gddocs/#), specifically the page about [game variables](https://wyliemaster.github.io/gddocs/#/resources/client/gamesave/gv). This mod would've been absolute pain to program without these resources. + +And a quick thank you to hiimjustin000, for help in reverse engineering. diff --git a/about.md.old b/about.md.old new file mode 100644 index 0000000..370ff0f --- /dev/null +++ b/about.md.old @@ -0,0 +1,74 @@ +# Template Mod + +Edit about.md to change this + +- Gameplay + - gv_0010 Flip 2P controls + - gv_0011 Always Limit Controls + - gv_0024 Show Cursor In-Game + - gv_0026 Auto Retry + - gv_0028 Disable Thumbstick + - gv_0040 Show Percent + - gv_0026 Default Mini Icon + - gv_0052 Fast Reset + - gv_0074 Restart Button + - gv_0109 Extra Info (?) + - gv_0113 Flip Plat. Controls + - gv_0126 Decimal Percent + - gv_0130 Orb Labels + - gv_0134 Hide Attempts + - gv_0153 Explode Player on Death + - gv_0163 Quick Keys + - gv_0167 Confirm Exit + - gv_0174 Hide Playtest Text +- Practice + - gv_0027 Auto Checkpoints + - gv_0067 High Start Position Accuracy + - gv_0068 Quick Checkpoint Mode + - gv_0071 Hide Practice Button + - gv_0100 Practice Death Effect + - gv_0135 Hide Attempts in Practice +- Perf + - gv_0014 Disable Explosion Shake + - gv_0023 Smooth Fix + - gv_0042 Increase Max Levels + - gv_0056 Disable Object Alert + - gv_0065 Move Optimization + - gv_0066 High Capacity Mode + - gv_0081 Disable Shake Effect + - gv_0082 Disable High Object Alert + - gv_0093 Increase Local Levels Per Page + - gv_0101 Force Smooth Fix + - gv_0102 Smooth Fix in the Editor + - gv_0108 Auto LDM + - gv_0126 Save Gauntlet Levels + - gv_0128 Lock Cursor In-Game + - gv_0136 Extra LDM + - gv_0140 Disable Orb Scale + - gv_0141 Disable Trigger Orb Scale + - gv_0155 Disable Shader Anti-Aliasing +- Audio + - gv_0010 Load Songs into Memory + - gv_0022 Higher Audio Quality + - gv_0033 Change Song Path + - gv_0018 No Song Limit + - gv_0125 Normal Music in Editor + - gv_0142 Reduce Audio Quality + - gv_0159 Audio Fix 01 +- Misc + - gv_0095 Do Not... + - gv_0015 Flip Pause Button + - gv_0061 Switch Spider Teleport Color + - gv_0062 Switch Dash Fire Color + - gv_0096 Switch Wave Trail Color + - gv_0072 Disable Gravity Effect + - gv_0073 New Completed Filter + - gv_0075 Disable Comments + - gv_0076 Disable Account Comments + - gv_0077 Featured Levels Only + - gv_0083 Disable Song Alert + - gv_0084 Manual Level Order + - gv_0090 Autoload Comments + - gv_0094 More Comments Mode + - gv_0099 Show Leaderboard Percent + - gv_0168 Fast Menu diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..2f16a49 --- /dev/null +++ b/changelog.md @@ -0,0 +1,2 @@ +# 1.0.0 +- Initial Release diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ca45110f18d2bfb2bb4f5f8433cad8aab5b828 GIT binary patch literal 95088 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.f, 180.f, callback)) { + ret->autorelease(); + return ret; + } + delete ret; + return nullptr; +} + +bool SearchPopup::setup(SearchCB callback) { + m_callback = callback; + + this->setTitle("Search"); + + m_input = TextInput::create(150.f, "Query here"); + m_mainLayer->addChildAtPosition(m_input, Anchor::Center); + + auto btn = CCMenuItemSpriteExtra::create( + ButtonSprite::create("Search"), this, menu_selector(SearchPopup::onSearch) + ); + auto menu = CCMenu::create(); + menu->addChild(btn); + + m_mainLayer->addChildAtPosition(menu, Anchor::Bottom); + + return true; +} + +void SearchPopup::onSearch(CCObject* sender) { + m_callback( + m_input->getString() + ); + m_closeBtn->activate(); +} + +SettingCell* SettingCell::create(std::string name, std::string gv, SettingCellType type) { + auto ret = new SettingCell(); + if (ret && ret->init(name, gv, type)) { + ret->autorelease(); + return ret; + } + delete ret; + return nullptr; +} + +bool SettingCell::init(std::string name, std::string gv, SettingCellType type) { + m_name = name; + m_gameVariable = gv; + m_type = type; + + auto nameLabel = CCLabelBMFont::create( + name.c_str(), "bigFont.fnt" + ); + // nameLabel->setScale(0.9f); + nameLabel->limitLabelWidth(15.f, 0.9f, 0.5f); + + auto menu = CCMenu::create(); + + // needed so that the switch statement isn't fussy about variables + CCSprite* spr; + CCMenuItemSpriteExtra* btn; + TextInput* input; + CCLabelBMFont* text; + + auto fmodEngine = FMODAudioEngine::sharedEngine(); + + switch (type) { + case Default: + m_toggler = CCMenuItemToggler::createWithStandardSprites( + this, + menu_selector(SettingCell::onCheckboxToggled), + 1.f + ); + m_toggler->toggle( + GameManager::get()->getGameVariable(gv.c_str()) + ); + + spr = CCSprite::createWithSpriteFrameName("GJ_infoIcon_001.png"); + spr->setScale(0.75f); + btn = CCMenuItemSpriteExtra::create( + spr, this, menu_selector(SettingCell::onInfo) + ); + btn->setPositionX(-35.f); + + menu->addChild(btn); + menu->addChild(m_toggler); + break; + case FMODDebug: + spr = ButtonSprite::create("Debug", "goldFont.fnt", "GJ_button_05.png"); + spr->setScale(0.7f); + btn = CCMenuItemSpriteExtra::create( + spr, this, menu_selector(SettingCell::onFMODDebug) + ); + btn->setPositionX(-20.f); + menu->addChild(btn); + break; + case SongSelect: + spr = CCSprite::createWithSpriteFrameName("GJ_savedSongsBtn_001.png"); + spr->setScale(0.7f); + menu->addChild(CCMenuItemSpriteExtra::create( + spr, this, menu_selector(SettingCell::onSongSelect) + )); + break; + case SongOffset: + input = TextInput::create(100.f, "Offset"); + input->getInputNode()->setAllowedChars("0123456789"); + if (fmodEngine->m_musicOffset != 0) { + input->setString(std::to_string(fmodEngine->m_musicOffset)); + } + input->setCallback([this, fmodEngine](std::string offset) { + fmodEngine->m_musicOffset = std::stoi(offset); + }); + input->setPositionX(-35.f); + menu->addChild(input); + break; + case Separator: + nameLabel->setOpacity(0.f); + text = CCLabelBMFont::create( + name.c_str(), + "goldFont.fnt" + ); + text->limitLabelWidth(300.f, 1.f, 0.1); + this->addChildAtPosition(text, Anchor::Center); + break; + } + + this->addChildAtPosition(nameLabel, Anchor::Left, ccp(10.f, 0.f)); + this->addChildAtPosition(menu, Anchor::Right, ccp(-25.f, 0.f)); + + nameLabel->setAnchorPoint({ 0.f, 0.5f }); + + this->setContentSize({ + 365.f, + 50.f + }); + + return true; +} + +void SettingCell::onFMODDebug(CCObject* sender) { + auto mol = MoreOptionsLayer::create(); + mol->onFMODDebug(sender); +} + +void SettingCell::onSongSelect(CCObject* sender) { + auto mol = MoreOptionsLayer::create(); + mol->onSongBrowser(sender); +} + +void SettingCell::onCheckboxToggled(CCObject* sender) { + GameManager::get()->setGameVariable(m_gameVariable.c_str(), !m_toggler->isOn()); + log::debug("set gv_{} to {}", m_gameVariable, !m_toggler->isOn()); +} + +std::string descForGV(std::string gv) { + std::map descriptions = { + {"0026", "Restarts level upon death automatically."}, + {"0052", "Restarts in 0.5 s instead of 1.0 s upon death."}, + {"0128", "Locks and hides cursor during gameplay."}, + {"0010", "Flips which side controls which player during 2-player mode."}, + {"0011", "Limits player 1 controls to one side even when dual mode is inactive."}, + {"0028", "Disables mouse movement when using a controller thumbstick."}, + {"0163", "Enables some quick temporary bindings until full customization later. Use 'R' for reset, 'CTRL + R' for full reset, and 'P' to toggle hitboxes in Practice mode."}, + {"0024", "Shows cursor and pause button during gameplay."}, + {"0135", "Hides the attempt counter when playing levels."}, + {"0015", "Flips the location of the pause button."}, + {"0129", "Disables extra indicators on portals."}, + {"0130", "Enables extra indicators on orbs."}, + {"0140", "Disables the scaling effect on all orbs."}, + {"0141", "Disables the scaling effect on only trigger orbs."}, + {"0172", "Disables shake effects."}, + {"0014", "Disables the shake effect that happens upon death."}, + {"0072", "Disables the effect that happens upon changing gravity."}, + {"0060", "Sets player icon in mini mode to default."}, + {"0061", "Toggles between main and secondary color for the teleport effect in spider mode."}, + {"0062", "Toggles between main and secondary color for the fire effect from dash orbs."}, + {"0096", "Toggles between main and secondary color for the trail in wave mode."}, + {"0174", "Hides text in the top left when using start positions or ignore damage."}, + {"0071", "Hides the checkpoint buttons shown in practice mode."}, + {"0134", "Hides the attempt counter when playing levels in practice mode."}, + {"0027", "Places checkpoints automatically in practice mode."}, + {"0068", "Tries to place checkpoints more often in practice mode."}, + {"0100", "Shows death effects in practice mode."}, + {"0125", "Plays normal music in sync to editor levels in practice mode."}, + {"0166", "Shows hitboxes while in practice mode."}, + {"0171", "Disables the player's hitbox in practice mode (if hitboxes are shown)."}, + {"0066", "Increases draw capacity for batch nodes at level start. Can improve performance on some levels, but may cause issues on low-end devices."}, + {"0108", "Enables low detail mode on levels that support it automatically."}, + {"0082", "Removes the alert shown when starting levels with a high object count."}, + {"0136", "Removes glow and enter effects while in low detail mode. Levels without LDM show LDM Lite."}, + {"0042", "Increases maximum locally saved levels from 10 to 100. This refers to level data, not statistics. Enabling this can make your save file considerably larger, so keeping the option off is recommended for quicker saving."}, + {"0119", "Saves level statistics as usual, but levels need to be redownloaded every time you restart the game. Makes saving and loading faster."}, + {"0127", "Saves gauntlet levels locally so they do not have to be redownloaded. Increases save time but helpful if you have poor connection."}, + {"0155", "Disables anti-aliasing on shader effects."}, + {"0033", "Saves custom songs in a different directory. May fix custom songs not working."}, + {"0083", "Removes the alert shown when starting levels without the song downloaded."}, + {"0018", "Stops automatic deletion of custom songs. This is done by default to save space."}, + {"0142", "Lowers audio sampling rate from 44100 Hz to 24000 Hz. Requires restarting to take effect."}, + {"0159", "Increases the audio buffer size, which may fix certain issues. Do not enable if audio is working fine. Causes a slight more audio delay. Requires restarting to take effect."}, + {"0094", "Shows more comments per page. Why not?"}, + {"0090", "Loads comments automatically."}, + {"0073", "Makes completed levels filter based only on percentage from update 2.1. Useful to rebeat levels for Mana Orbs."}, + {"0093", "Increases created and saved levels per page from 10 to 20."}, + {"0084", "Places new levels last in the saved levels list. Useful if you want to manually move levels to the top."}, + {"0126", "Shows decimals in level progress."}, + {"0099", "Toggles viewing the leaderboard percentage you have on levels. To upload your level progress to the level leaderboard, you need to replay levels completed before 2.11."}, + {"0095", "Does not do anything... Well, nothing useful."}, + {"0167", "Adds an extra confirmation window when exiting levels."}, + {"0168", "Makes transitions between menu pages faster."}, + {"0040", "Toggles the percent label in game"}, + {"0074", "Toggles the restart button on the pause menu"}, + {"0109", "Toggles the extra info/debug label in game"}, + {"0113", "Flips the platformer controls"}, + {"0153", "Whether the player should explode on death"}, + {"0022", "Whether the game should use higher audio quality"}, + {"0075", "(Parental Controls) Disables comments (known to be buggy)"}, + {"0076", "(Parental Controls) Disables account posts"}, + {"0077", "(Parental Controls) Removes the search button in the creator menu"}, + {"0023", "Toggles smooth fix"}, + {"0065", "Toggles move optimization"}, + {"0101", "Forces smooth fix to be on"}, + {"0102", "Toggles smooth fix in the editor"}, + {"0056", "Disables the high object alert"}, + {"0081", "Disables the shake effect in levels"}, + {"0067", "Increases the accuracy of start positions"}, + }; + + return descriptions.at(gv); +} + +void SettingCell::onInfo(CCObject* sender) { + FLAlertLayer::create( + m_name.c_str(), + descForGV(m_gameVariable).c_str(), + "OK" + )->show(); +} + +SettingsLayer* SettingsLayer::create() { + auto ret = new SettingsLayer(); + if (ret && ret->initAnchored(500.f, 280.f)) { + ret->autorelease(); + return ret; + } + delete ret; + return nullptr; +} + +CCSprite* createCategoryBtnSprite(std::string name, bool isSelected = false) { + auto sprite = CCSprite::createWithSpriteFrameName( + isSelected ? "GJ_longBtn02_001.png" : "GJ_longBtn01_001.png" + ); + auto text = CCLabelBMFont::create(name.c_str(), "bigFont.fnt"); + text->limitLabelWidth(75.f, 0.7f, 0.1f); + sprite->setScale(0.8f); + sprite->addChildAtPosition(text, Anchor::Center); + return sprite; +} + +CCMenuItemSpriteExtra* createCategoryBtn(std::string name, CCObject* target, SettingPage page, SEL_MenuHandler callback) { + auto btn = CCMenuItemSpriteExtra::create( + createCategoryBtnSprite(name), target, callback + ); + btn->setUserObject(CCInteger::create(page)); + btn->setID(name); + return btn; +} + +bool SettingsLayer::setup() { + m_noElasticity = true; + auto bg = CCScale9Sprite::create("square02b_001.png"); + bg->setContentSize({ + 100.f, 245.f + }); + bg->setColor(ccc3(0,0,0)); + bg->setOpacity(75); + + auto menu = CCMenu::create(); + + #define CATEGORY_BTN(name, page) menu->addChild( \ + createCategoryBtn(name, this, page, menu_selector(SettingsLayer::onCategoryBtn)) \ + ); + + // auto sprite = CCSprite::createWithSpriteFrameName("GJ_longBtn01_001.png"); + // auto text = CCLabelBMFont::create("test", "bigFont.fnt"); + // text->setScale(0.7f); + // sprite->setScale(0.8f); + // sprite->addChildAtPosition(text, Anchor::Center); + // auto btn = CCMenuItemSpriteExtra::create( + // sprite, this, nullptr + // ); + + CATEGORY_BTN("Gameplay", SettingPage::Gameplay) + CATEGORY_BTN("Practice", SettingPage::Practice) + CATEGORY_BTN("Perf.", SettingPage::Performance) + CATEGORY_BTN("Audio", SettingPage::Audio) + CATEGORY_BTN("Misc", SettingPage::Misc) + CATEGORY_BTN("Keys", SettingPage::Keybinds) + + menu->setLayout( + ColumnLayout::create() + ->setAxisAlignment(AxisAlignment::Even) + ->setAxisReverse(true) + ); + menu->setContentSize(bg->getContentSize()); + menu->setPosition(bg->getPosition()); + menu->setAnchorPoint({ 0.f, 0.f }); + menu->updateLayout(); + menu->setPositionX( + bg->getContentWidth() / 2 - menu->getContentWidth() / 2 + ); + bg->addChild(menu); + + m_mainLayer->addChildAtPosition(bg, Anchor::Left, ccp(65.f, 0.f)); + + switchPage(SettingPage::Gameplay, true, typeinfo_cast(this->getChildByIDRecursive("Gameplay"))); + + auto searchBtnSpr = CCSprite::createWithSpriteFrameName("gj_findBtn_001.png"); + auto searchBtn = CCMenuItemSpriteExtra::create( + searchBtnSpr, this, menu_selector(SettingsLayer::onSearchBtn) + ); + auto searchMenu = CCMenu::create(); + searchMenu->addChild(searchBtn); + m_mainLayer->addChildAtPosition(searchMenu, Anchor::TopRight); + + return true; +} + +void SettingsLayer::onSearchBtn(CCObject* sender) { + SearchPopup::create([this](std::string query) { + auto newList = CCArray::create(); + + using namespace geode::utils::string; + + // lazily getting the original list back + // lazy as in I am being lazy + + auto page = static_cast(static_cast( + m_currentBtn->getUserObject() + )->getValue()); + + switchPage(page, false, m_currentBtn); + + if (query == "") return; + + for (auto cell : CCArrayExt(m_listItems)) { + if (toLower(cell->m_name).find(toLower(query)) != std::string::npos) { + if (cell->m_type == SettingCellType::Separator) continue; + newList->addObject( + SettingCell::create(cell->m_name, cell->m_gameVariable, cell->m_type) + ); + } + } + + m_listItems = newList; + m_listView->removeFromParent(); + this->refreshList(); + })->show(); +} + +void SettingsLayer::onCategoryBtn(CCObject* sender) { + auto node = static_cast(sender); + int page = static_cast( + node->getUserObject() + )->getValue(); + + switchPage(static_cast(page), false, node); +} + +void SettingsLayer::switchPage(SettingPage page, bool isFirstRun, CCMenuItemSpriteExtra* btn) { + m_listItems = CCArray::create(); + + #define SETTING(name, gv) m_listItems->addObject( \ + SettingCell::create(name, gv) \ + ); + #define SETTING_WITH_TYPE(name, type) m_listItems->addObject( \ + SettingCell::create(name, "", type) \ + ); + #define SEPARATOR(text) m_listItems->addObject( \ + SettingCell::create(text, "", SettingCellType::Separator) \ + ); + + switch (page) { + case Gameplay: + SETTING("Auto Retry", "0026") + SETTING("Flip 2P controls", "0010") + SETTING("Always Limit Controls", "0011") + SETTING("Show Cursor In-Game", "0024") + SETTING("Disable Thumbstick", "0028") + SETTING("Show Percent", "0040") + SETTING("Fast Reset", "0052") + SETTING("Restart Button", "0074") + SETTING("Extra Info", "0109") + SETTING("Flip Plat. Controls", "0113") + SETTING("Decimal Percent", "0126") + SETTING("Orb Labels", "0130") + SETTING("Hide Attempts", "0134") + SETTING("Quick Keys", "0163") + SETTING("Confirm Exit", "0167") + SETTING("Hide Playtest Text", "0174") + SETTING("Flip Pause Button", "0015") + SEPARATOR("Icon Options") + SETTING("Explode Player on Death", "0153") + SETTING("Default Mini Icon", "0026") + SETTING("Switch Spider Teleport Color", "0061") + SETTING("Switch Dash Fire Color", "0062") + SETTING("Switch Wave Trail Color", "0096") + break; + case Audio: + SETTING("Load Songs into Memory", "0010") + SETTING("Higher Audio Quality", "0022") + SETTING("Change Song Path", "0033") + SETTING("No Song Limit", "0018") + SETTING("Normal Music in Editor", "0125") + SETTING("Reduce Audio Quality", "0142") + SETTING("Audio Fix 01", "0159") + SETTING_WITH_TYPE("FMOD Debug", SettingCellType::FMODDebug) + SETTING_WITH_TYPE("Local Songs", SettingCellType::SongSelect) + SETTING_WITH_TYPE("Song Offset (MS)", SettingCellType::SongOffset) + break; + case Misc: + SETTING("Do Not...", "0095") + SETTING("Disable Gravity Effect", "0072") + SETTING("New Completed Filter", "0073") + SETTING("Disable Song Alert", "0083") + SETTING("Manual Level Order", "0084") + SETTING("Show Leaderboard Percent", "0099") + SETTING("Fast Menu", "0168") + SEPARATOR("Comments") + SETTING("Autoload Comments", "0090") + SETTING("More Comments Mode", "0094") + SEPARATOR("Parent Controls") + SETTING("Disable Comments", "0075") + SETTING("Disable Account Comments", "0076") + SETTING("Featured Levels Only", "0077") + break; + case Performance: + SETTING("Smooth Fix", "0023") + SETTING("Move Optimization", "0065") + SETTING("Force Smooth Fix", "0101") + SETTING("Smooth Fix in the Editor", "0102") + SETTING("Lock Cursor In-Game", "0128") + SEPARATOR("LDM") + SETTING("Auto LDM", "0108") + SETTING("Extra LDM", "0136") + SEPARATOR("Improvements (may cause issues on low end devices)") + SETTING("Increase Max Levels", "0042") + SETTING("Disable Object Alert", "0056") + SETTING("Save Gauntlet Levels", "0126") + SETTING("Increase Local Levels Per Page", "0093") + SETTING("High Capacity Mode", "0066") + SEPARATOR("Disable Toggles") + SETTING("Disable Explosion Shake", "0014") + SETTING("Disable Orb Scale", "0140") + SETTING("Disable Shake Effect", "0081") + SETTING("Disable High Object Alert", "0082") + SETTING("Disable Shader Anti-Aliasing", "0155") + SETTING("Disable Trigger Orb Scale", "0141") + break; + case Practice: + SETTING("Auto Checkpoints", "0027") + SETTING("High Start Position Accuracy", "0067") + SETTING("Quick Checkpoint Mode", "0068") + SETTING("Hide Practice Button", "0071") + SETTING("Practice Death Effect", "0100") + SETTING("Hide Attempts in Practice", "0135") + break; + case Keybinds: + // I need to manually create (but not show) the original + // MoreOptionsLayer in order to do this so that I don't + // accidently cause incompats with Custom Keybinds + auto mol = MoreOptionsLayer::create(); + mol->onKeybindings(btn); + + // auto dummyNode = CCNode::create(); + // auto text = CCLabelBMFont::create("There's nothing here!", "goldFont.fnt"); + // dummyNode->addChildAtPosition(text, Anchor::Center); + + // m_listItems->addObject(dummyNode); + SEPARATOR("There's nothing here!") + + break; + } + if (!isFirstRun) { + m_listView->removeFromParent(); + } + + this->refreshList(); + + if (m_currentBtn) { + m_currentBtn->setSprite( + createCategoryBtnSprite(m_currentBtn->getID()) + ); + } + btn->setSprite( + createCategoryBtnSprite(btn->getID(), true) + ); + m_currentBtn = btn; +} + +void SettingsLayer::refreshList() { + m_listView = ListView::create(m_listItems, 50.f, 365.f, 245.f); + m_listView->ignoreAnchorPointForPosition(false); + for (auto cell : CCArrayExt(m_listItems)) { + cell->setContentSize({ + 365.f, + 50.f + }); + cell->updateLayout(); + } + + m_mainLayer->addChildAtPosition(m_listView, Anchor::Right, ccp(-195.f, 0.f)); +} diff --git a/src/SettingsLayer.hpp b/src/SettingsLayer.hpp new file mode 100644 index 0000000..3b77397 --- /dev/null +++ b/src/SettingsLayer.hpp @@ -0,0 +1,70 @@ +#pragma once + +#include + +using namespace geode::prelude; + +enum SettingPage { + Gameplay, + Practice, + Performance, + Audio, + Misc, + Keybinds +}; + +enum SettingCellType { + Default, + FMODDebug, + SongSelect, + SongOffset, + Separator +}; + +using SearchCB = std::function; +class SearchPopup : public geode::Popup { +protected: + TextInput* m_input; + SearchCB m_callback; + bool setup(SearchCB) override; + void onSearch(CCObject*); +public: + static SearchPopup* create(SearchCB callback); +}; + +class SettingCell : public CCNode { +protected: + CCMenuItemToggler* m_toggler; + + bool init(std::string name, std::string gv, SettingCellType type); + void onCheckboxToggled(CCObject* sender); + void onFMODDebug(CCObject*); + void onSongSelect(CCObject*); + void onInfo(CCObject*); +public: + std::string m_name; + std::string m_gameVariable; + SettingCellType m_type; + static SettingCell* create(std::string name, std::string gv, SettingCellType type = SettingCellType::Default); +}; + +class SettingsLayer : public geode::Popup<> { +protected: + CCArray* m_listItems; + ListView* m_listView; + CCMenuItemSpriteExtra* m_currentBtn; + + bool setup() override; + void createSettingCheckbox( + std::string name, + std::string gv + ); + void switchPage(SettingPage, bool, CCMenuItemSpriteExtra*); + void onCategoryBtn(CCObject*); + void onSearchBtn(CCObject*); + + void refreshList(); +public: + static SettingsLayer* create(); +}; + diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..77af524 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,12 @@ +#include +#include + +#include "./SettingsLayer.hpp" + +using namespace geode::prelude; + +class $modify(OptionsLayer) { + void onOptions(CCObject* sender) { + SettingsLayer::create()->show(); + } +};