Skip to content

Commit 0d24917

Browse files
committed
setComingFromGJBGL/getComingFromGJBGL
1 parent ec470d2 commit 0d24917

File tree

6 files changed

+69
-7
lines changed

6 files changed

+69
-7
lines changed

src/EditorPauseLayer.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@
55
using namespace geode::prelude;
66

77
class $modify(MenuLoopEPLHook, EditorPauseLayer) {
8-
#ifndef __APPLE__
9-
void onExitEditor(CCObject* sender) {
8+
void iHateHookingMultipleThingsToGetSomethingDone() {
9+
SongManager::get().setComingFromGJBGL(true);
1010
if (Utils::getBool("randomizeWhenExitingEditor")) SongManager::get().pickRandomSong();
1111
else SongManager::get().setShouldRestoreMenuLoopPoint(!Utils::getBool("randomizeWhenExitingEditor") && Utils::getBool("restoreWhenExitingEditor"));
12+
}
13+
#ifndef __APPLE__
14+
void onExitEditor(CCObject* sender) {
15+
MenuLoopEPLHook::iHateHookingMultipleThingsToGetSomethingDone();
1216

1317
EditorPauseLayer::onExitEditor(sender);
1418

@@ -30,8 +34,7 @@ class $modify(MenuLoopEPLHook, EditorPauseLayer) {
3034
-- raydeeux
3135
*/
3236
void onSaveAndExit(CCObject* sender) {
33-
if (Utils::getBool("randomizeWhenExitingEditor")) SongManager::get().pickRandomSong();
34-
else SongManager::get().setShouldRestoreMenuLoopPoint(!Utils::getBool("randomizeWhenExitingEditor") && Utils::getBool("restoreWhenExitingEditor"));
37+
MenuLoopEPLHook::iHateHookingMultipleThingsToGetSomethingDone();
3538

3639
EditorPauseLayer::onSaveAndExit(sender);
3740

@@ -75,8 +78,7 @@ class $modify(MenuLoopEPLHook, EditorPauseLayer) {
7578

7679
if (!shouldClose) return EditorPauseLayer::FLAlert_Clicked(p0, btnTwo);
7780

78-
if (Utils::getBool("randomizeWhenExitingEditor")) SongManager::get().pickRandomSong();
79-
else SongManager::get().setShouldRestoreMenuLoopPoint(!Utils::getBool("randomizeWhenExitingEditor") && Utils::getBool("restoreWhenExitingEditor"));
81+
MenuLoopEPLHook::iHateHookingMultipleThingsToGetSomethingDone();
8082

8183
EditorPauseLayer::FLAlert_Clicked(p0, btnTwo);
8284

src/GJBaseGameLayer.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,16 @@
33
#include <Geode/modify/GJBaseGameLayer.hpp>
44

55
class $modify(MenuLoopGJBGLHook, GJBaseGameLayer) {
6+
struct Fields {
7+
~Fields() {
8+
SongManager::get().setComingFromGJBGL(false);
9+
}
10+
};
611
bool init() {
12+
SongManager::get().setComingFromGJBGL(false);
713
if (!GJBaseGameLayer::init()) return false;
814
SongManager::get().setShouldRestoreMenuLoopPoint(false);
15+
SongManager::get().setComingFromGJBGL(true);
916
if (!Utils::getBool("playlistMode")) return true;
1017
const auto fmod = FMODAudioEngine::get();
1118
if (!fmod) return true;

src/GameManager.cpp

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,49 @@ class $modify(MenuLoopGMHook, GameManager) {
1818
const geode::Mod* colon = songManager.getColonMenuLoopStartTime();
1919
if (colon && colon->getSettingValue<bool>("enable")) return;
2020
if (!songManager.getShouldRestoreMenuLoopPoint()) return;
21-
if (oldTrack == fmod->getActiveMusic(0)) return;
21+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
22+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
23+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
24+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
25+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
26+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
27+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
28+
log::info("songManager.getComingFromGJBGL(): {}", songManager.getComingFromGJBGL());
29+
log::info("oldTrack: {}", oldTrack);
30+
log::info("oldTrack: {}", oldTrack);
31+
log::info("oldTrack: {}", oldTrack);
32+
log::info("oldTrack: {}", oldTrack);
33+
log::info("oldTrack: {}", oldTrack);
34+
log::info("fmod->getActiveMusic(0): {}", fmod->getActiveMusic(0));
35+
log::info("fmod->getActiveMusic(0): {}", fmod->getActiveMusic(0));
36+
log::info("fmod->getActiveMusic(0): {}", fmod->getActiveMusic(0));
37+
log::info("fmod->getActiveMusic(0): {}", fmod->getActiveMusic(0));
38+
log::info("fmod->getActiveMusic(0): {}", fmod->getActiveMusic(0));
39+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
40+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
41+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
42+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
43+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
44+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
45+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
46+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
47+
log::info("oldTrack == fmod->getActiveMusic(0): {}", oldTrack == fmod->getActiveMusic(0));
48+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
49+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
50+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
51+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
52+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
53+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
54+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
55+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
56+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
57+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
58+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
59+
log::info("songManager.getLastMenuLoopPosition(): {}", songManager.getLastMenuLoopPosition());
60+
if (oldTrack == fmod->getActiveMusic(0) && !songManager.getComingFromGJBGL()) return; // NOTE: THIS LINE CAN CAUSE ISSUES WHEN MENU LOOP AND LEVEL'S MOST RECENTLY PLAYED SONG ARE THE SAME
2261
songManager.restoreLastMenuLoopPosition();
2362
songManager.setShouldRestoreMenuLoopPoint(false);
63+
songManager.setComingFromGJBGL(false);
2464
}
2565
void encodeDataTo(DS_Dictionary* p0) {
2666
SongManager& songManager = SongManager::get();

src/PlayLayer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ using namespace geode::prelude;
66

77
class $modify(MenuLoopPLHook, PlayLayer) {
88
void onQuit() {
9+
SongManager::get().setComingFromGJBGL(true);
910
if (Utils::getBool("randomizeWhenExitingLevel")) SongManager::get().pickRandomSong();
1011
else SongManager::get().setShouldRestoreMenuLoopPoint(!Utils::getBool("randomizeWhenExitingLevel") && Utils::getBool("restoreWhenExitingLevel"));
1112

src/SongManager.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ void SongManager::restoreLastMenuLoopPosition() {
266266
if (!songManager.getShouldRestoreMenuLoopPoint()) return;
267267
FMODAudioEngine::get()->setMusicTimeMS(songManager.getLastMenuLoopPosition(), false, 0);
268268
songManager.setShouldRestoreMenuLoopPoint(false);
269+
songManager.setComingFromGJBGL(false);
269270
}
270271

271272
void SongManager::setShouldRestoreMenuLoopPoint(const bool value) {
@@ -300,6 +301,14 @@ bool SongManager::getVibecodedVentilla() const {
300301
return m_vibecodedVentilla;
301302
}
302303

304+
void SongManager::setComingFromGJBGL(const bool value) {
305+
m_comingFromGJBGL = value;
306+
}
307+
308+
bool SongManager::getComingFromGJBGL() const {
309+
return m_comingFromGJBGL;
310+
}
311+
303312
void SongManager::setFinishedCalculatingSongLengths(const bool value) {
304313
m_finishedCalculatingSongLengths = value;
305314
}

src/SongManager.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ class SongManager {
9292
geode::Mod* getColonMenuLoopStartTime() const;
9393
void setVibecodedVentilla(const bool);
9494
bool getVibecodedVentilla() const;
95+
void setComingFromGJBGL(const bool);
96+
bool getComingFromGJBGL() const;
9597
void setFinishedCalculatingSongLengths(const bool);
9698
bool getFinishedCalculatingSongLengths() const;
9799

@@ -117,6 +119,7 @@ class SongManager {
117119
bool m_advancedLogs = false;
118120
bool m_shouldRestoreMenuLoopPoint = false;
119121
bool m_vibecodedVentilla = false;
122+
bool m_comingFromGJBGL = false;
120123
int m_lastPosition = 0;
121124
std::vector<std::string> m_blacklist {};
122125
std::vector<std::string> m_favorites {};

0 commit comments

Comments
 (0)