diff --git a/changelog.md b/changelog.md index abcf304..a10da02 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,8 @@ - Added full options menu - Added no respawn blink - Added level uncomplete +- Added show hitboxes and show hitboxes on death +- Added no static camera - Removed fps bypass since it was VERY broken, replaces with full options menu - Fixed Spider and Robot with icon effects - Added Gradient Pages integration diff --git a/src/Client/ClientSetup.h b/src/Client/ClientSetup.h index 5d8edf1..731a23e 100644 --- a/src/Client/ClientSetup.h +++ b/src/Client/ClientSetup.h @@ -67,6 +67,11 @@ class ClientUtils level->modules.push_back(new Module("No Reverse Portal", "no-reverse", "Disables reverse portals, only use if your a pussy jk")); level->modules.push_back(new Module("Instant Restart", "instant-restart", "Restarts the level instantly upon death")); + level->modules.push_back(new Module("Show Hitboxes", "show-hitboxes", "Shows object hitboxes")); + level->modules.push_back(new Module("Show Hitboxes On Death", "show-hitboxes-on-death", "Shows object hitboxes on death")); + + level->modules.push_back(new Module("No Static Camera", "no-static", "Disables static camera")); + //level->modules.push_back(new Module("No Hitboxes", "no-hitboxes", "Disables Object Hitboxes")); //level->modules.push_back(new Module("Force Show Player", "show-player", "Force the player to be visible all the time")); diff --git a/src/Client/Replay.cpp b/src/Client/Replay.cpp index 287f71f..aff6986 100644 --- a/src/Client/Replay.cpp +++ b/src/Client/Replay.cpp @@ -55,7 +55,7 @@ class $modify (PlayLayer) { bool started = false; - void startGameDelayed() + TodoReturn startGameDelayed() { PlayLayer::startGameDelayed(); diff --git a/src/Hacks/NoCamera.cpp b/src/Hacks/NoCamera.cpp index 872a345..20a4423 100644 --- a/src/Hacks/NoCamera.cpp +++ b/src/Hacks/NoCamera.cpp @@ -12,10 +12,11 @@ class $modify (GJBaseGameLayer) GJBaseGameLayer::applyShake(p0); } - /*TodoReturn updateStaticCameraPos(cocos2d::CCPoint p0, bool p1, bool p2, bool p3, float p4, int p5, float p6) + TodoReturn updateStaticCameraPos(cocos2d::CCPoint p0, bool p1, bool p2, bool p3, float p4, int p5, float p6) { - - }*/ + if (!Client::GetModuleEnabled("no-static")) + GJBaseGameLayer::updateStaticCameraPos(p0, p1, p2, p3, p4, p5, p6); + } /*TodoReturn updateCamera(float p0) // delta probably ? { diff --git a/src/Hacks/ShowHitboxes.cpp b/src/Hacks/ShowHitboxes.cpp new file mode 100644 index 0000000..fb4630b --- /dev/null +++ b/src/Hacks/ShowHitboxes.cpp @@ -0,0 +1,34 @@ +#include +#include +#include +#include "../Client/Client.h" + +using namespace geode::prelude; + +class $modify (PlayLayer) +{ + Module* mod = nullptr; + Module* mod2 = nullptr; + + void updateVisibility(float p0) { + PlayLayer::updateVisibility(p0); + + bool shouldVis = m_isDebugDrawEnabled && m_isPracticeMode; + + if (!m_fields->mod) + m_fields->mod = Client::GetModule("show-hitboxes"); + + if (!m_fields->mod2) + m_fields->mod2 = Client::GetModule("show-hitboxes-on-death"); + + if (m_fields->mod->enabled) + shouldVis = true; + + if (m_fields->mod2->enabled && m_player1->m_isDead) + shouldVis = true; + + PlayLayer::updateDebugDraw(); + m_debugDrawNode->setVisible(shouldVis); + } + +}; \ No newline at end of file diff --git a/src/Hacks/ShowLayout.cpp b/src/Hacks/ShowLayout.cpp index c99f29e..81b7ee5 100644 --- a/src/Hacks/ShowLayout.cpp +++ b/src/Hacks/ShowLayout.cpp @@ -9,22 +9,39 @@ class $modify (GameObject) { virtual void setVisible(bool p0) { - if (m_objectType == GameObjectType::Decoration && m_objectID != 44) // thanks firee (in the hole) for the practice checkpoint id - GameObject::setVisible(false); + if (PlayLayer::get()) + { + if (m_objectType == GameObjectType::Decoration && m_objectID != 44) // thanks firee (in the hole) for the practice checkpoint id + GameObject::setVisible(false); + else + GameObject::setVisible(true); + } else - GameObject::setVisible(true); + GameObject::setVisible(p0); } virtual void setOpacity(unsigned char p0) { GameObject::setOpacity(255); } -}; -class $modify (GJBaseGameLayer) -{ - virtual TodoReturn updateColor(cocos2d::ccColor3B& p0, float p1, int p2, bool p3, float p4, cocos2d::ccHSVValue& p5, int p6, bool p7, EffectGameObject* p8, int p9, int p10) + virtual void setChildColor(cocos2d::ccColor3B const& p0) { } +};*/ + +/* +class $modify(GameObject) { + void setVisible(bool v) { + if (!Hacks::isHackEnabled("Layout Mode")) return GameObject::setVisible(v); + //m_hasGroupParent == 0 + std::vector outerPortal = {}; + //i really dont want to have to check every single object id + if (m_objectType == GameObjectType::Decoration && m_objectID != 44) { // 44 being practice mode checkpoint, because thats a "decoration" + GameObject::setVisible(false); + } else { + GameObject::setVisible(v); + } + } };*/ \ No newline at end of file