Skip to content

Commit 6fa91ef

Browse files
committed
бебебебе
1 parent a1ccd5e commit 6fa91ef

7 files changed

Lines changed: 57 additions & 42 deletions

File tree

CMakeSettings.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@
1010
"buildCommandArgs": "",
1111
"ctestCommandArgs": "",
1212
"inheritEnvironments": [ "clang_cl_x64" ]
13+
},
14+
{
15+
"name": "x64-Release",
16+
"generator": "Ninja",
17+
"configurationType": "RelWithDebInfo",
18+
"buildRoot": "${projectDir}\\out\\build\\${name}",
19+
"installRoot": "${projectDir}\\out\\install\\${name}",
20+
"cmakeCommandArgs": "",
21+
"buildCommandArgs": "",
22+
"ctestCommandArgs": "",
23+
"inheritEnvironments": [ "msvc_x64_x64" ],
24+
"variables": []
1325
}
1426
]
1527
}

changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# v8.0.0-beta.29
2+
- Migrated from Geode v4.x to v5.3
3+
14
# v8.0.0-beta.28
25
- Fix char filter in listing settings (allow minus)
36
- Add IDs Listing editor

include/level.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ namespace level {
160160
json.set("listPosition", level->m_listPosition); //["listPosition"] = level->m_listPosition;
161161
json.set("songIDs", std::string_view(level->m_songIDs.c_str())); //["songIDs"] = std::string_view(level->m_songIDs.c_str());
162162
json.set("sfxIDs", std::string_view(level->m_sfxIDs.c_str())); //["sfxIDs"] = std::string_view(level->m_sfxIDs.c_str());"sfxIDs"] = std::string_view(level->m_sfxIDs.c_str());
163-
json.set("field_54", level->m_54); //["field_54"] = level->m_54;
163+
json.set("songSize", level->m_songSize); //["field_54"] = level->m_54;
164+
json.set("field_54", level->m_songSize); //["field_54"] = level->m_54; //BACKWARD COMPATIBILITY
164165
json.set("bestTime", level->m_bestTime); //["bestTime"] = level->m_bestTime;
165166
json.set("bestPoints", level->m_bestPoints); //["bestPoints"] = level->m_bestPoints;
166167
json.set("platformerSeed", level->m_platformerSeed); //["platformerSeed"] = level->m_platformerSeed;
@@ -289,7 +290,8 @@ namespace level {
289290
asInt(listPosition);// = json["listPosition"].asInt().unwrapOr();
290291
asString(songIDs);// = json["songIDs"].asString().unwrapOr().c_str();
291292
asString(sfxIDs);// = json["sfxIDs"].asString().unwrapOr().c_str();
292-
//asInt(54);// = json["field_54"].asInt().unwrapOr();
293+
asInt(songSize);// = json["field_54"].asInt().unwrapOr();
294+
level->m_songSize = (json.get("field_54").unwrapOr(json).as<int>().unwrapOr(static_cast<int>(level->m_songSize)));;// = json["field_54"].asInt().unwrapOr();
293295
asInt(bestTime);// = json["bestTime"].asInt().unwrapOr();
294296
asInt(bestPoints);// = json["bestPoints"].asInt().unwrapOr();
295297
asInt(platformerSeed);// = json["platformerSeed"].asInt().unwrapOr();

mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"id": "lr70.main-levels-editor",
1313
"name": "Main Levels Editor",
1414
"developers": [ "lil2kki" ],
15-
"description": "customizable thing to change main levels uknowya",
15+
"description": "Main Levels editor at runtime based on config",
1616

1717
"links": {
1818
"community": "https://discord.gg/6SxAbk3bTA",

src/InterfaceFixAndExt.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ class $modify(MLE_LevelSelectExt, LevelSelectLayer) {
1111

1212
// shared static vars for all LevelSelectLayer objects (same as in namespace declaration).
1313
inline static int LastPlayedPage, LastPlayedPageLevelID, ForceNextTo;
14-
$override void keyDown(cocos2d::enumKeyCodes p0) {
15-
LevelSelectLayer::keyDown(p0);
14+
$override void keyDown(cocos2d::enumKeyCodes p0, double p1) {
15+
LevelSelectLayer::keyDown(p0, p1);
1616
if (auto scroll = typeinfo_cast<BoomScrollLayer*>(this->m_scrollLayer)) {
1717
MLE_LevelSelectExt::ForceNextTo = scroll->m_page;
1818
}
@@ -374,13 +374,14 @@ class $modify(MLE_EditorUI, EditorUI) {
374374
}
375375
);
376376
//difficulty sprite selector
377-
class DiffcltySelector : public Popup<LevelEditorLayer*, std::filesystem::path> {
377+
class DiffcltySelector : public Popup {
378378
void scrollWheel(float x, float y) override {
379379
if (std::fabs(x) > 5.f) if (auto a = m_buttonMenu) if (auto item = a->getChildByType<CCMenuItem>(
380380
1 + (x < 0.f)
381381
)) item->activate();
382382
}
383-
bool setup(LevelEditorLayer* editor, std::filesystem::path related_File) override {
383+
bool init(LevelEditorLayer* editor, std::filesystem::path related_File) {
384+
Popup::init(266.6f, 169.000f);
384385
this->setTitle("Select Difficulty Sprite");
385386
this->setMouseEnabled(true);
386387

@@ -437,7 +438,7 @@ class $modify(MLE_EditorUI, EditorUI) {
437438
public:
438439
static DiffcltySelector* create(LevelEditorLayer* m_editorLayer, std::filesystem::path related_File) {
439440
auto ret = new DiffcltySelector();
440-
if (ret->initAnchored(266.6f, 169.000f, m_editorLayer, related_File)) {
441+
if (ret->init(m_editorLayer, related_File)) {
441442
ret->autorelease();
442443
return ret;
443444
}

src/_Main.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ class ConfigureLevelFileDataPopup : public geode::Popup {
186186
auto bgSprite = keyValInput->getBGSprite();
187187
auto bgSize = bgSprite->getContentSize();
188188
if (auto* tex = CCTextureCache::get()->addImage("groundSquare_18_001.png", false)) {
189-
bgSprite->setTexture(tex);
189+
//bgSprite->getInsets(tex);//err
190190
}
191191
bgSprite->setContentSize(bgSize);
192192

@@ -200,6 +200,8 @@ class ConfigureLevelFileDataPopup : public geode::Popup {
200200
->setGrowCrossAxis(1)
201201
->setAxisReverse(1)
202202
);
203+
((ColumnLayout*)scroll->m_contentLayer->getLayout())->ignoreInvisibleChildren(false);
204+
scroll->m_contentLayer->updateLayout();
203205
scroll->scrollToTop();
204206

205207
auto bottomMenuPaddingX = 6.f;

src/_MainLevelsEditorMenu.hpp

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#pragma once
22

3-
class MLE_MainMenu : public geode::Popup<> {
3+
class MLE_MainMenu : public geode::Popup {
44
protected:
5-
using FileEvent = Task<Result<std::filesystem::path>>;
6-
EventListener<FileEvent> m_listener;
5+
//using FileEvent = Task<Result<std::filesystem::path>>;
6+
//EventListener<FileEvent> m_listener;
77
static auto resolveListEntry(Ref<TextInput> textinput, Ref<GJGameLevel> level) {
88
// parse input
99
std::string input = textinput->getString();
@@ -170,7 +170,8 @@ class MLE_MainMenu : public geode::Popup<> {
170170
menu->addChildAtPosition(item, Anchor::Left, { 4.f, -0.f }, !"nopls");
171171
}
172172
}
173-
bool setup() override {
173+
bool init() override {
174+
Popup::init(258.000f, 284.000f);
174175
this->setTitle("");
175176

176177
//menu
@@ -377,10 +378,11 @@ class MLE_MainMenu : public geode::Popup<> {
377378
auto IMPORT_PICK_OPTIONS = file::FilePickOptions{
378379
std::nullopt, {{ "Extended Shared Level File", { "*.level" } }}
379380
};
380-
__this->m_listener.bind([](FileEvent::Event* e) {
381-
if (e->getValue()) {
382-
if (e->getValue()->isOk()) {
383-
auto path = e->getValue()->unwrap();
381+
async::spawn(
382+
file::pick(file::PickMode::OpenFile, IMPORT_PICK_OPTIONS),
383+
[](Result<std::optional<std::filesystem::path>> e) {
384+
if (e.isOk()) {
385+
auto path = e.unwrapOrDefault().value_or("");
384386
auto exist = CCFileUtils::get()->isFileExist(string::pathToString(path).c_str());
385387
if (!string::endsWith(string::pathToString(path), ".level") and !exist) {
386388
path = std::filesystem::path(string::pathToString(path) + ".level");
@@ -419,11 +421,9 @@ class MLE_MainMenu : public geode::Popup<> {
419421
MDPopup::create("Failed to load level!", level_import.err().value_or("UNK ERROR"), "OK")->show();
420422
}
421423
}
422-
else log::error("Something went wrong when picking files: {}", e->getValue()->err());
424+
else log::error("Something went wrong when picking files: {}", e.err());
423425
}
424-
else log::error("Something went wrong when picking files: Value is empty.");
425-
});
426-
__this->m_listener.setFilter(file::pick(file::PickMode::OpenFile, IMPORT_PICK_OPTIONS));
426+
);
427427
}
428428
);
429429
if (menu and load_level) {
@@ -438,10 +438,11 @@ class MLE_MainMenu : public geode::Popup<> {
438438
auto IMPORT_PICK_OPTIONS = file::FilePickOptions{
439439
std::nullopt, {{ "Extended Shared Level File", { "*.level" } }}
440440
};
441-
__this->m_listener.bind([](FileEvent::Event* e) {
442-
if (e->getValue()) {
443-
if (e->getValue()->isOk()) {
444-
auto path = e->getValue()->unwrap();
441+
async::spawn(
442+
file::pick(file::PickMode::OpenFile, IMPORT_PICK_OPTIONS),
443+
[](Result<std::optional<std::filesystem::path>> e) {
444+
if (e.isOk()) {
445+
auto path = e.unwrapOrDefault().value_or("");
445446
auto exist = CCFileUtils::get()->isFileExist(string::pathToString(path).c_str());
446447
if (!string::endsWith(string::pathToString(path), ".level") and !exist) {
447448
path = std::filesystem::path(string::pathToString(path) + ".level");
@@ -456,11 +457,9 @@ class MLE_MainMenu : public geode::Popup<> {
456457
MDPopup::create("Failed to load level!", level_import.err().value_or("UNK ERROR"), "OK")->show();
457458
}
458459
}
459-
else log::error("Something went wrong when picking files: {}", e->getValue()->err());
460+
else log::error("Something went wrong when picking files: {}", e.err());
460461
}
461-
else log::error("Something went wrong when picking files: Value is empty.");
462-
});
463-
__this->m_listener.setFilter(file::pick(file::PickMode::OpenFile, IMPORT_PICK_OPTIONS));
462+
);
464463
}
465464
);
466465
if (menu and edit_level) {
@@ -537,11 +536,11 @@ class MLE_MainMenu : public geode::Popup<> {
537536
getMod()->getConfigDir() / fmt::format("{}.level", level->m_levelID.value()),
538537
{{ "Extended Shared Level File", { "*.level" } }}
539538
};
540-
__this->m_listener.bind([level](FileEvent::Event* e) {
541-
if (e->getValue()) {
542-
if (e->getValue()->isOk()) {
543-
//path
544-
auto path = e->getValue()->unwrap();
539+
async::spawn(
540+
file::pick(file::PickMode::SaveFile, IMPORT_PICK_OPTIONS),
541+
[level](Result<std::optional<std::filesystem::path>> e) {
542+
if (e.isOk()) {
543+
auto path = e.unwrapOrDefault().value_or("");
545544
path = string::endsWith(string::pathToString(path), ".level"
546545
) ? string::pathToString(path) : (string::pathToString(path) + ".level");
547546
//dir
@@ -595,14 +594,10 @@ class MLE_MainMenu : public geode::Popup<> {
595594
}
596595
}
597596
else {
598-
log::error("Something went wrong when picking files: {}", e->getValue()->err());
597+
log::error("Something went wrong when picking files: {}", e.err());
599598
}
600599
}
601-
else {
602-
log::error("Something went wrong when picking files: Value is empty.");
603-
}
604-
});
605-
__this->m_listener.setFilter(file::pick(file::PickMode::SaveFile, IMPORT_PICK_OPTIONS));
600+
);
606601
}
607602
);
608603
if (menu and export_level) {
@@ -989,7 +984,7 @@ class MLE_MainMenu : public geode::Popup<> {
989984
->setGrowCrossAxis(true)
990985
->setCrossAxisOverflow(false)
991986
);
992-
menu->getLayout()->ignoreInvisibleChildren(true); //lol
987+
((ColumnLayout*)menu->getLayout())->ignoreInvisibleChildren(true); //lol
993988
menu->updateLayout(); //xd ^^^
994989
limitNodeWidth(menu, this->m_mainLayer->getContentWidth() - 16.f, 1.f, 0.1f);
995990

@@ -998,7 +993,7 @@ class MLE_MainMenu : public geode::Popup<> {
998993
public:
999994
static MLE_MainMenu* create() {
1000995
auto ret = new MLE_MainMenu();
1001-
if (ret->initAnchored(258.000f, 284.000f)) {
996+
if (ret->init()) {
1002997
ret->autorelease();
1003998
return ret;
1004999
}

0 commit comments

Comments
 (0)