2022-06-26 15:13:06 +02:00
|
|
|
#ifndef EDITOR_MAIN_HPP
|
|
|
|
|
#define EDITOR_MAIN_HPP
|
|
|
|
|
|
|
|
|
|
#include "../../sdlpp/sdlpp_scene.hpp"
|
2022-07-21 19:26:50 +02:00
|
|
|
#include "../gui/gui.hpp"
|
2022-06-26 15:13:06 +02:00
|
|
|
#include <functional>
|
|
|
|
|
|
|
|
|
|
struct SceneStruct {
|
|
|
|
|
std::shared_ptr<SDLPP::Scene> scene;
|
2022-07-21 20:17:24 +02:00
|
|
|
std::function<void(std::shared_ptr<SDLPP::Scene> &)> doInput;
|
|
|
|
|
std::function<void(std::shared_ptr<SDLPP::Scene> &)> additionalRender;
|
2022-06-26 15:13:06 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern std::mutex render_mutex;
|
|
|
|
|
extern std::vector<SceneStruct> game_scenes;
|
|
|
|
|
|
2022-07-21 19:26:50 +02:00
|
|
|
void saveMapCallback(void *input, Button *caller);
|
2022-07-24 20:22:45 +02:00
|
|
|
void loadMapDialogCallback(const std::string &level_name);
|
2022-07-21 19:26:50 +02:00
|
|
|
|
2022-06-26 15:13:06 +02:00
|
|
|
SceneStruct createEditorScene(std::shared_ptr<SDLPP::Renderer> &renderer);
|
2022-07-21 20:17:24 +02:00
|
|
|
SceneStruct
|
|
|
|
|
createEditorMainMenuScene(std::shared_ptr<SDLPP::Renderer> &renderer);
|
|
|
|
|
SceneStruct
|
|
|
|
|
createEditorFileChoiceScene(std::shared_ptr<SDLPP::Renderer> &renderer);
|
2022-07-22 12:23:16 +02:00
|
|
|
// TODO move to a shared header
|
|
|
|
|
SceneStruct createYesNoScene(std::shared_ptr<SDLPP::Renderer> renderer,
|
|
|
|
|
const std::string &text,
|
|
|
|
|
std::function<void(bool)> finalizer);
|
2022-07-22 12:55:09 +02:00
|
|
|
SceneStruct createOkScene(std::shared_ptr<SDLPP::Renderer> renderer,
|
|
|
|
|
const std::string &text,
|
|
|
|
|
std::function<void()> finalizer);
|
2022-07-24 20:22:45 +02:00
|
|
|
SceneStruct createLoadScene(std::shared_ptr<SDLPP::Renderer> renderer,
|
|
|
|
|
const std::string &path,
|
|
|
|
|
std::function<void(const std::string &)> finalizer);
|
2022-06-26 15:13:06 +02:00
|
|
|
|
|
|
|
|
#endif
|