Skip to content
This repository was archived by the owner on Oct 7, 2024. It is now read-only.

Commit 5ce5e17

Browse files
committed
add "Hide Pause Menu"
1 parent 3a683ba commit 5ce5e17

File tree

9 files changed

+110
-2
lines changed

9 files changed

+110
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* Added "Auto Save"
77
* Added "Custom Wave Trail"
88
* Added "Fullscreen"/"Borderless" toggles
9+
* Added "Hide Pause Menu"
910
* Added "Objects Scale Bypass"
1011

1112
**Fixes**:

resources/hacks/cosmetic.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,10 @@
294294
{
295295
"type": "embedded",
296296
"hack": "custom_wave_trail"
297+
},
298+
{
299+
"type": "embedded",
300+
"hack": "hide_pause"
297301
}
298302
]
299303
}

src/geode/hooks/PauseLayer.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#include "../pch.hpp"
2+
3+
#include "../../shared/hacks/hide-pause/hide-pause.hpp"
4+
5+
#include <Geode/modify/PauseLayer.hpp>
6+
7+
namespace openhack::hooks {
8+
struct PauseLayerHook : geode::Modify<PauseLayerHook, PauseLayer> {
9+
void customSetup() {
10+
hacks::HidePause::pauseInit(reinterpret_cast<gd::PauseLayer*>(this));
11+
PauseLayer::customSetup();
12+
}
13+
};
14+
}

src/shared/hacks/hack-list.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "hide-triggers/hide-triggers.hpp"
2626
#include "accurate-percentage/accurate-percentage.hpp"
2727
#include "custom-wave-trail/custom-wave-trail.hpp"
28+
#include "hide-pause/hide-pause.hpp"
2829

2930
#include <vector>
3031
#include <memory>
@@ -57,7 +58,8 @@ namespace openhack::hacks {
5758
new AutoSave(),
5859
new HideTriggers(),
5960
new AccuratePercentage(),
60-
new CustomWaveTrail()
61+
new CustomWaveTrail(),
62+
new HidePause()
6163
};
6264

6365
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#include "hide-pause.hpp"
2+
#include "../../menu/menu.hpp"
3+
4+
namespace openhack::hacks {
5+
6+
gd::PauseLayer* g_pauseLayer = nullptr;
7+
8+
void updatePauseVisibility() {
9+
if (!g_pauseLayer) return;
10+
__try {
11+
bool enabled = config::get<bool>("hack.hide_pause.enabled", false);
12+
g_pauseLayer->setVisible(!enabled);
13+
} __except (EXCEPTION_EXECUTE_HANDLER) {
14+
g_pauseLayer = nullptr;
15+
}
16+
}
17+
18+
void HidePause::onInit() {
19+
// Set the default value
20+
config::setIfEmpty("hack.hide_pause.enabled", false);
21+
22+
// Initialize keybind
23+
menu::keybinds::setKeybindCallback("hide_pause.enabled", []() {
24+
bool enabled = !config::get<bool>("hack.hide_pause.enabled");
25+
config::set("hack.hide_pause.enabled", enabled);
26+
updatePauseVisibility();
27+
});
28+
}
29+
30+
void HidePause::onDraw() {
31+
if (gui::checkbox("Hide Pause Menu", "hack.hide_pause.enabled")) {
32+
updatePauseVisibility();
33+
}
34+
gui::tooltip("Makes the pause menu invisible.");
35+
menu::keybinds::addMenuKeybind("hide_pause.enabled", "Hide Pause Menu", []() {
36+
bool enabled = !config::get<bool>("hack.hide_pause.enabled", false);
37+
config::set("hack.hide_pause.enabled", enabled);
38+
updatePauseVisibility();
39+
});
40+
}
41+
42+
void HidePause::pauseInit(gd::PauseLayer *self) {
43+
g_pauseLayer = self;
44+
updatePauseVisibility();
45+
}
46+
47+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#pragma once
2+
3+
#include "../hacks.hpp"
4+
5+
namespace openhack::hacks {
6+
7+
/// @brief Makes the pause menu invisible
8+
class HidePause : public EmbeddedHack {
9+
public:
10+
HidePause() : EmbeddedHack("Hide Pause Menu", "hide_pause") {}
11+
12+
void onInit() override;
13+
void onDraw() override;
14+
void update() override {}
15+
bool isCheating() override { return false; }
16+
17+
public:
18+
/// @brief PauseLayer::updateVisibility hook
19+
static void pauseInit(gd::PauseLayer *self);
20+
21+
};
22+
23+
}

src/standalone/hooks/PauseLayer.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#include "hooks.hpp"
2+
#include <dash/hook/PauseLayer.hpp>
3+
4+
#include "../../shared/hacks/hide-pause/hide-pause.hpp"
5+
6+
namespace openhack::hooks::HardStreak {
7+
void customSetup(gd::PauseLayer* self) {
8+
hacks::HidePause::customSetup(self);
9+
gd::hook::HardStreak::customSetup(self);
10+
}
11+
12+
void installHooks() {
13+
LOG_HOOK(PauseLayer, customSetup);
14+
}
15+
}

src/standalone/hooks/hooks.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ namespace openhack::hooks {
3030
INSTALL_NAMESPACE(EditorUI)
3131
INSTALL_NAMESPACE(LevelEditorLayer)
3232
INSTALL_NAMESPACE(HardStreak)
33+
INSTALL_NAMESPACE(PauseLayer)
3334

3435
inline void installHooks() {
3536
L_TRACE("Installing hooks...");
@@ -48,6 +49,7 @@ namespace openhack::hooks {
4849
EditorUI::installHooks();
4950
LevelEditorLayer::installHooks();
5051
HardStreak::installHooks();
52+
PauseLayer::installHooks();
5153

5254
MH_EnableHook(MH_ALL_HOOKS);
5355
L_TRACE("All hooks installed.");

0 commit comments

Comments
 (0)