From 70f30b6767f516b8ec46074491ea7454785df7df Mon Sep 17 00:00:00 2001 From: zvon Date: Fri, 22 Jul 2022 22:18:01 +0200 Subject: [PATCH] Mario Editor: save to filename entered in editor --- mario/editor.cpp | 3 ++- mario/scenes/editor_main.cpp | 36 +++++++++--------------------------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/mario/editor.cpp b/mario/editor.cpp index d7d1773..e3d383c 100644 --- a/mario/editor.cpp +++ b/mario/editor.cpp @@ -94,7 +94,8 @@ int main() { SDL_framerateDelay(&gFPS); SDL_PumpEvents(); std::lock_guard lock(render_mutex); - for (size_t i = 0; i < game_scenes.size(); i++) { + auto max_game_scenes = game_scenes.size(); + for (size_t i = 0; i < max_game_scenes; i++) { game_scenes[i].additionalRender(game_scenes[i].scene); // additional renderer can remove scene from game_scenes, better // check diff --git a/mario/scenes/editor_main.cpp b/mario/scenes/editor_main.cpp index 3a56014..2f58fb8 100644 --- a/mario/scenes/editor_main.cpp +++ b/mario/scenes/editor_main.cpp @@ -142,16 +142,12 @@ bool getFlag(uint64_t flag) { void saveMapCallback(void * /*UNUSED*/, Button * /*UNUSED*/) { std::cout << "SAVING" << std::endl; - // TODO filename - saveMap("test_binary2.bin", global_vars.objects); + saveMap("levels/" + level_name_text + ".marmap", global_vars.objects); } void loadMapDialogCallback(void * /*UNUSED*/, Button * /*UNUSED*/) { std::cout << "LOADING" << std::endl; setFlag(LOAD_MAP_FLAG); - // TODO filename - /* editorScene->resetScene(); - openMapEditor(editorScene, "test_binary.bin");*/ } void updateTool() { @@ -1027,27 +1023,6 @@ void populateWorldType( scene->addObject(tool_text); } -void dialogFinishedTest(bool result) { - level_name_text = result ? "YEAH, BOI!" : "Nah, boi"; - setFlag(TEXT_UPDATE_FLAG); -} - -void okDialogFinalizer() { - level_name_text = "You OK'd"; - setFlag(TEXT_UPDATE_FLAG); -} - -void testButtonFunc(void * /*UNUSED*/, Button * /*UNUSED*/) { - /* game_scenes.push_back( - createYesNoScene(game_scenes.back().scene->getRendererShared(), - "Yeah?", dialogFinishedTest));*/ - game_scenes.push_back(createOkScene( - game_scenes.back().scene->getRendererShared(), - "You cannot choose anything other than OK", okDialogFinalizer)); - /* setFlag(TEXT_INPUT_FLAG); - SDL_StartTextInput();*/ -} - void enableTextInput(void */*UNUSED*/, Button */*UNUSED*/) { setFlag(TEXT_INPUT_FLAG); SDL_StartTextInput(); @@ -1169,6 +1144,13 @@ void openMapEditor(std::shared_ptr &scene, scene->addObject(button); } + // level_name label + auto level_name_label = std::make_shared( + 0.1, 0.1, BLOCK_SIZE * 8, 0.05, renderer, "Level Name:", font_config, SDLPP_TEXT_LEFT); + level_name_label->setAlignment(SDLPP::OBJ_CENTER, SDLPP::OBJ_CENTER); + level_name_label->setPermanent(); + scene->addObject(level_name_label); + setFlag(UPDATE_FLAG); global_vars.tool.cur_page_tools = 0; global_vars.tool.cur_page_mods = 0; @@ -1329,7 +1311,7 @@ createEditorMainScene(std::shared_ptr &renderer) { // level name level_name_object = std::make_shared