11#include " MiniTreasureRoom.hpp"
2+ #include < Geode/modify/GameManager.hpp>
3+
4+ // This weird system is to stop the treasure room loop from overwriting the level's song
5+
6+ Hook* fadeHook = nullptr ;
7+
8+ class $modify(RewardGM, GameManager) {
9+ static void onModify (auto & self) {
10+ if (auto h = self.getHook (" GameManager::fadeInMusic" )) {
11+ fadeHook = h.unwrap ();
12+ fadeHook->setAutoEnable (false );
13+ auto res = fadeHook->disable ();
14+ if (res.isErr ()) {
15+ log::warn (" Failed to disable GameManager::fadeInMusic - {}" , res.unwrapErr ());
16+ }
17+ }
18+ }
19+
20+ void fadeInMusic (gd::string p0) {
21+
22+ }
23+ };
224
325bool MiniTreasureRoom::setup () {
26+ if (fadeHook) {
27+ auto res = fadeHook->enable ();
28+ if (res.isErr ()) {
29+ log::warn (" Failed to enable GameManager::fadeInMusic - {}" , res.unwrapErr ());
30+ }
31+ } else {
32+ log::warn (" Hook not found!" );
33+ }
434 m_rewardLayer = SecretRewardsLayer::create (false );
5- m_mainLayer->removeFromParent ();
35+ if (fadeHook) {
36+ auto res = fadeHook->disable ();
37+ if (res.isErr ()) {
38+ log::warn (" Failed to disable GameManager::fadeInMusic - {}" , res.unwrapErr ());
39+ }
40+ }
41+ m_mainLayer->setVisible (false );
642 addChild (m_rewardLayer);
7- m_mainLayer = m_rewardLayer;
843 setID (" MiniTreasureRoom" _spr);
944 setOpacity (0 );
1045
@@ -38,8 +73,8 @@ MiniTreasureRoom* MiniTreasureRoom::create() {
3873
3974void MiniTreasureRoom::onClose (CCObject* sender) {
4075 if (!m_rewardLayer->m_inMainLayer ) return m_rewardLayer->onBack (sender);
41- m_mainLayer ->stopAllActions ();
42- m_mainLayer ->runAction (CCSequence::createWithTwoActions (CCMoveTo::create (0.3 , {0 , CCDirector::sharedDirector ()->getWinSize ().height + 5 }), CCCallFunc::create (this , callfunc_selector (MiniTreasureRoom::transitionFinished))));
76+ m_rewardLayer ->stopAllActions ();
77+ m_rewardLayer ->runAction (CCSequence::createWithTwoActions (CCMoveTo::create (0.3 , {0 , CCDirector::sharedDirector ()->getWinSize ().height + 5 }), CCCallFunc::create (this , callfunc_selector (MiniTreasureRoom::transitionFinished))));
4378}
4479
4580void MiniTreasureRoom::transitionFinished () {
@@ -51,8 +86,9 @@ void MiniTreasureRoom::show() {
5186 auto dir = CCDirector::sharedDirector ();
5287 m_noElasticity = true ;
5388 Popup::show ();
89+ m_mainLayer->setVisible (false );
5490 m_noElasticity = false ;
55- m_mainLayer ->setPosition ({0 , dir->getWinSize ().height + 5 });
56- m_mainLayer ->stopAllActions ();
57- m_mainLayer ->runAction (CCEaseBounceOut::create (CCMoveTo::create (0.5 , {0 , 0 })));
91+ m_rewardLayer ->setPosition ({0 , dir->getWinSize ().height + 5 });
92+ m_rewardLayer ->stopAllActions ();
93+ m_rewardLayer ->runAction (CCEaseBounceOut::create (CCMoveTo::create (0.5 , {0 , 0 })));
5894}
0 commit comments