11#include < _Main.hpp>
22
3+ static auto updateMainLevel (
4+ Ref<GJGameLevel> level, int levelID, bool dontGetLevelString
5+ ) {
6+ if (!level) level = GJGameLevel::create ();
7+
8+ if (MLE_LevelsInJSON::get ()->contains (levelID)) {
9+ /* log::debug(
10+ "MLE_LocalLevelManager::m_mainLevelsInJSON[{}]->{}",
11+ levelID, MLE_LocalLevelManager::m_mainLevelsInJSON[levelID].dump()
12+ );*/
13+ auto loadedLevel = GJGameLevel::create ();
14+ level::updateLevelByJson (MLE_LevelsInJSON::get ()->at (levelID), loadedLevel);
15+ if (auto aw = level::isImported (loadedLevel)) level::isImported (level, aw->getID ());
16+ // xd
17+ level->m_levelString = loadedLevel->m_levelString .c_str ();
18+ level->m_stars = (loadedLevel->m_stars .value ());
19+ level->m_requiredCoins = loadedLevel->m_requiredCoins ;
20+ level->m_levelName = loadedLevel->m_levelName ;
21+ level->m_audioTrack = loadedLevel->m_audioTrack ;
22+ level->m_songID = loadedLevel->m_songID ;
23+ level->m_songIDs = loadedLevel->m_songIDs ;
24+ level->m_sfxIDs = loadedLevel->m_sfxIDs ;
25+ level->m_demon = (loadedLevel->m_demon .value ());
26+ level->m_twoPlayerMode = loadedLevel->m_twoPlayerMode ;
27+ level->m_difficulty = loadedLevel->m_difficulty ;
28+ level->m_capacityString = loadedLevel->m_capacityString ;
29+ level->m_levelID = (levelID);
30+ level->m_timestamp = loadedLevel->m_timestamp ;
31+ level->m_levelLength = loadedLevel->m_levelLength ;
32+ };
33+
34+ level->m_levelID = levelID; // -1, -2 for listing exists. no default id pls
35+ level->m_songID = !level->m_audioTrack ? level->m_songID : 0 ; // what the fuck why its ever was saved
36+ level->m_levelType = GJLevelType::Main;
37+ level->m_levelString = dontGetLevelString ? " " : level->m_levelString .c_str ();
38+
39+ if (levelID == -1 ) level->m_levelName = " {Coming Soon Page}" ;
40+ if (levelID == -2 ) level->m_levelName = " {The Tower Page}" ;
41+
42+ return level.data ();
43+ }
44+
345/*
446
547level getting update hook
@@ -10,40 +52,10 @@ level getting update hook
1052class $modify(MLE_GameLevelManager, GameLevelManager) {
1153
1254 $override GJGameLevel* getMainLevel (int levelID, bool dontGetLevelString) {
13- Ref level = GameLevelManager::getMainLevel (levelID, dontGetLevelString);
14-
15- if (MLE_LevelsInJSON::get ()->contains (levelID)) {
16- /* log::debug(
17- "MLE_LocalLevelManager::m_mainLevelsInJSON[{}]->{}",
18- levelID, MLE_LocalLevelManager::m_mainLevelsInJSON[levelID].dump()
19- );*/
20- auto loadedLevel = GJGameLevel::create ();
21- level::updateLevelByJson (MLE_LevelsInJSON::get ()->at (levelID), loadedLevel);
22- if (auto aw = level::isImported (loadedLevel)) level::isImported (level, aw->getID ());
23- // xd
24- level->m_levelString = loadedLevel->m_levelString .c_str ();
25- level->m_stars = (loadedLevel->m_stars .value ());
26- level->m_requiredCoins = loadedLevel->m_requiredCoins ;
27- level->m_levelName = loadedLevel->m_levelName ;
28- level->m_audioTrack = loadedLevel->m_audioTrack ;
29- level->m_songID = loadedLevel->m_songID ;
30- level->m_songIDs = loadedLevel->m_songIDs ;
31- level->m_sfxIDs = loadedLevel->m_sfxIDs ;
32- level->m_demon = (loadedLevel->m_demon .value ());
33- level->m_twoPlayerMode = loadedLevel->m_twoPlayerMode ;
34- level->m_difficulty = loadedLevel->m_difficulty ;
35- level->m_capacityString = loadedLevel->m_capacityString ;
36- level->m_levelID = (levelID);
37- level->m_timestamp = loadedLevel->m_timestamp ;
38- level->m_levelLength = loadedLevel->m_levelLength ;
39- };
40-
41- level->m_levelID = levelID; // -1, -2 for listing exists. no default id pls
42- level->m_songID = !level->m_audioTrack ? level->m_songID : 0 ; // what the fuck why its ever was saved
43- level->m_levelType = GJLevelType::Main;
44- level->m_levelString = dontGetLevelString ? " " : level->m_levelString .c_str ();
45-
46- return level;
55+ return updateMainLevel (
56+ GameLevelManager::getMainLevel (levelID, dontGetLevelString),
57+ levelID, dontGetLevelString
58+ );
4759 };
4860
4961};
@@ -114,6 +126,8 @@ class $modify(MLE_LevelTools, LevelTools) {
114126 if (auto a = audio (p0); a.isOk ())
115127 if (a.unwrap ().contains (" title" ))
116128 return a.unwrapOr (" " ).get (" title" ).unwrap ().asString ().unwrapOr (" " ).c_str ();
129+ if (p0 == " empty" _h) return " " ;
130+ if (p0 == " space" _h) return " " ;
117131 return LevelTools::getAudioTitle (p0).c_str ();
118132 };
119133 $override static gd::string urlForAudio (int p0) {
@@ -168,39 +182,10 @@ class $modify(MLE_LevelTools, LevelTools) {
168182
169183 // paranoic hook
170184 $override static GJGameLevel* getLevel (int levelID, bool dontGetLevelString) {
171- Ref level = LevelTools::getLevel (levelID, dontGetLevelString);
172-
173- if (MLE_LevelsInJSON::get ()->contains (levelID)) {
174- /* log::debug(
175- "MLE_LocalLevelManager::m_mainLevelsInJSON[{}]->{}",
176- levelID, MLE_LocalLevelManager::m_mainLevelsInJSON[levelID].dump()
177- );*/
178- auto loadedLevel = GJGameLevel::create ();
179- level::updateLevelByJson (MLE_LevelsInJSON::get ()->at (levelID), loadedLevel);
180- // xd
181- level->m_levelString = loadedLevel->m_levelString .c_str ();
182- level->m_stars = (loadedLevel->m_stars .value ());
183- level->m_requiredCoins = loadedLevel->m_requiredCoins ;
184- level->m_levelName = loadedLevel->m_levelName ;
185- level->m_audioTrack = loadedLevel->m_audioTrack ;
186- level->m_songID = loadedLevel->m_songID ;
187- level->m_songIDs = loadedLevel->m_songIDs ;
188- level->m_sfxIDs = loadedLevel->m_sfxIDs ;
189- level->m_demon = (loadedLevel->m_demon .value ());
190- level->m_twoPlayerMode = loadedLevel->m_twoPlayerMode ;
191- level->m_difficulty = loadedLevel->m_difficulty ;
192- level->m_capacityString = loadedLevel->m_capacityString ;
193- level->m_levelID = (levelID);
194- level->m_timestamp = loadedLevel->m_timestamp ;
195- level->m_levelLength = loadedLevel->m_levelLength ;
196- };
197-
198- level->m_levelID = levelID; // -1, -2 for listing exists. no default id pls
199- level->m_songID = !level->m_audioTrack ? level->m_songID : 0 ; // what the fuck why its ever was saved
200- level->m_levelType = GJLevelType::Main;
201- level->m_levelString = dontGetLevelString ? " " : level->m_levelString .c_str ();
202-
203- return level;
185+ return updateMainLevel (
186+ LevelTools::getLevel (levelID, dontGetLevelString),
187+ levelID, dontGetLevelString
188+ );
204189 };
205190
206191 $override static bool verifyLevelIntegrity (gd::string p0, int p1) {
0 commit comments