diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-24 22:55:06 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-24 22:55:06 +0200 |
commit | 9076ef2ee672877bbf339d5ca8db182445f127f7 (patch) | |
tree | b1c2c8a379e864867f8ad3878fc81d9f06fa1bda /editor | |
parent | 27a04888cfeca3d3db127744dde60b67fe497b94 (diff) |
a
Diffstat (limited to 'editor')
-rw-r--r-- | editor/app.cpp | 49 | ||||
-rw-r--r-- | editor/app.hpp | 7 | ||||
-rw-r--r-- | editor/camera.cpp | 1 | ||||
-rw-r--r-- | editor/update.cpp | 9 |
4 files changed, 38 insertions, 28 deletions
diff --git a/editor/app.cpp b/editor/app.cpp index da3678d7..1906e3f5 100644 --- a/editor/app.cpp +++ b/editor/app.cpp @@ -3,17 +3,21 @@ #include "main/floormat-main.hpp" #include "main/floormat.hpp" #include "src/loader.hpp" +#include "world.hpp" #include <Corrade/Utility/Arguments.h> namespace floormat { -app::app() : - M{floormat_main::create(*this, {})}, +app::app(fm_settings&& opts) : + M{floormat_main::create(*this, std::move(opts))}, _floor1{loader.tile_atlas("floor-tiles", {44, 4})}, _floor2{loader.tile_atlas("metal1", {2, 2})}, _wall1{loader.tile_atlas("wood2", {1, 1})}, _wall2{loader.tile_atlas("wood1", {1, 1})} { + world& w = M->world(); + chunk_coords coord{0 ,0}; + maybe_initialize_chunk_(coord, w[coord]); } app::~app() // NOLINT(modernize-use-equals-default) @@ -61,33 +65,32 @@ static bool parse_bool(StringView name, StringView str, bool def) int app::run_from_argv(const int argc, const char* const* const argv) { fm_settings opts; + Corrade::Utility::Arguments args{}; + args.addOption("vsync", "m") + .addOption("gpu-validation", "m") + .addOption("msaa", "1") + .parse(argc, argv); + opts.vsync = parse_tristate("--vsync", args.value<StringView>("vsync"), opts.vsync); + opts.msaa = parse_bool("--msaa", args.value<StringView>("msaa"), opts.msaa); { - Corrade::Utility::Arguments args{}; - args.addOption("vsync", "m") - .addOption("gpu-validation", "m") - .addOption("msaa", "1") - .parse(argc, argv); - opts.vsync = parse_tristate("--vsync", args.value<StringView>("vsync"), opts.vsync); - opts.msaa = parse_bool("--msaa", args.value<StringView>("msaa"), opts.msaa); - { - auto str = args.value<StringView>("gpu-validation"); - if (str == "no-error" || str == "NO-ERROR") - opts.gpu_debug = fm_gpu_debug::no_error; - else if (str == "robust" || str == "robust") - opts.gpu_debug = fm_gpu_debug::robust; - else switch (parse_tristate("--gpu-validation", args.value<StringView>("gpu-validation"), fm_tristate::maybe)) - { - default: - case fm_tristate::on: opts.gpu_debug = fm_gpu_debug::on; break; - case fm_tristate::off: opts.gpu_debug = fm_gpu_debug::off; break; - } - } + auto str = args.value<StringView>("gpu-validation"); + if (str == "no-error" || str == "NO-ERROR") + opts.gpu_debug = fm_gpu_debug::no_error; + else if (str == "robust" || str == "robust") + opts.gpu_debug = fm_gpu_debug::robust; + else switch (parse_tristate("--gpu-validation", args.value<StringView>("gpu-validation"), fm_tristate::maybe)) + { + default: + case fm_tristate::on: opts.gpu_debug = fm_gpu_debug::on; break; + case fm_tristate::off: opts.gpu_debug = fm_gpu_debug::off; break; + } } + opts.vsync = parse_tristate("--vsync", args.value<StringView>("vsync"), opts.vsync); int ret; Pointer<floormat_main> ptr; { - app application; + app application{std::move(opts)}; ret = application.exec(); ptr = std::move(application.M); } diff --git a/editor/app.hpp b/editor/app.hpp index b2fcf480..663b4923 100644 --- a/editor/app.hpp +++ b/editor/app.hpp @@ -20,6 +20,7 @@ struct chunk; struct floormat_main; struct tile_atlas; struct tile_editor; +struct fm_settings; struct cursor_state final { std::optional<Vector2i> pixel; @@ -29,14 +30,14 @@ struct cursor_state final { struct app final : floormat_app { - app(); + app(fm_settings&& opts); ~app() override; fm_DECLARE_DELETED_COPY_ASSIGNMENT(app); fm_DECLARE_DEPRECATED_MOVE_ASSIGNMENT(app); void update(float dt) override; - void maybe_init_chunk(const chunk_coords& pos, chunk& c) override; + void maybe_initialize_chunk(const chunk_coords& pos, chunk& c) override; void draw_msaa() override; void draw() override; @@ -67,6 +68,8 @@ private: MAX = quit, COUNT }; + void maybe_initialize_chunk_(const chunk_coords& pos, chunk& c); + void do_mouse_click(global_coords pos, int button); void do_mouse_release(int button); void do_mouse_move(global_coords pos); diff --git a/editor/camera.cpp b/editor/camera.cpp index 7e9d4870..529f55e9 100644 --- a/editor/camera.cpp +++ b/editor/camera.cpp @@ -37,7 +37,6 @@ void app::do_camera(float dt) camera_offset[0] = std::clamp(camera_offset[0], -max_camera_offset[0], max_camera_offset[0]); camera_offset[1] = std::clamp(camera_offset[1], -max_camera_offset[1], max_camera_offset[1]); - Debug{} << "camera" << camera_offset; shader.set_camera_offset(camera_offset); } else diff --git a/editor/update.cpp b/editor/update.cpp index bed45c94..734ed7b5 100644 --- a/editor/update.cpp +++ b/editor/update.cpp @@ -7,9 +7,9 @@ namespace floormat { //#define FM_NO_BINDINGS -void app::maybe_init_chunk(const chunk_coords& pos, chunk& c) +void app::maybe_initialize_chunk_(const chunk_coords& pos, chunk& c) { - (void)pos; + (void)pos; (void)c; constexpr auto N = TILE_MAX_DIM; for (auto [x, k, pt] : c) { @@ -30,6 +30,11 @@ void app::maybe_init_chunk(const chunk_coords& pos, chunk& c) c[{K+1, K }].wall_west = { _wall2, 0 }; } +void app::maybe_initialize_chunk(const chunk_coords& pos, chunk& c) +{ + //maybe_initialize_chunk(pos, c); +} + void app::do_mouse_click(const global_coords pos, int button) { if (button == mouse_button_left) |