diff --git a/flake.nix b/flake.nix index e699b30..d36501d 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,7 @@ rec { config = "x86_64-w64-mingw32"; }; config.allowUnfree = true; + overlays = []; }; # =========================================================================================== @@ -190,7 +191,15 @@ rec { raylib raygui thread-pool - boost + + # Disable stacktrace since that's platform dependant and won't cross compile to windows + # https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/boost/generic.nix#L43 + (boost.override { + enableShared = false; + extraB2Args = [ + "--without-stacktrace" + ]; + }) ]; cmakeFlags = [ @@ -371,4 +380,4 @@ rec { }; } ); -} +} \ No newline at end of file diff --git a/include/config.hpp b/include/config.hpp index 95f793e..47897e6 100644 --- a/include/config.hpp +++ b/include/config.hpp @@ -11,6 +11,7 @@ #define NOUSER // All USER defines and routines #endif #define BS_THREAD_POOL_NATIVE_EXTENSIONS +// ReSharper disable once CppUnusedIncludeDirective #include #if defined(_WIN32) // raylib uses these names as function parameters #undef near diff --git a/src/main.cpp b/src/main.cpp index 6298a7a..de41a0c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,25 +14,21 @@ #include #endif -// TODO: Manual movement is now completely broken - // TODO: Add state space generation time to debug overlay -// TODO: Improve solver -// - Implement state discovery/enumeration -// - Find all possible initial board states (single one for each -// possible statespace). Currently wer're just finding all states -// given the initial state -// - Would allow to generate random puzzles with a certain move count +// TODO: Implement state discovery/enumeration +// - Find all possible initial board states (single one for each possible statespace). +// Currently wer're just finding all states given the initial state +// - Would allow to generate random puzzles with a certain move count -// TODO: Move selection accordingly when undoing moves (need to diff two states -// and get the moved blocks) +// TODO: Move selection accordingly when undoing moves (need to diff two states and get the moved blocks) // TODO: Click states in the graph to display them in the board // For profiling explore_state_space auto main2(int argc, char* argv[]) -> int { + // Supercompo const puzzle p = puzzle( "S:[4x5] G:[1,3] M:[F] B:[{_ 2X2 _ _} {1x1 _ _ 1x1} {1x2 2x1 _ 1x2} {_ 2x1 _ _} {1x1 2x1 _ 1x1}]"); diff --git a/src/mass_spring_system.cpp b/src/mass_spring_system.cpp index b927067..5849c02 100644 --- a/src/mass_spring_system.cpp +++ b/src/mass_spring_system.cpp @@ -21,7 +21,7 @@ auto mass_spring_system::calculate_spring_force(const size_t s) -> void const Vector3 delta_vel = a_vel - b_vel; const float sq_len = Vector3DotProduct(delta_pos, delta_pos); - const float inv_len = rsqrt(sq_len); + const float inv_len = 1.0f / sqrt(sq_len); const float len = sq_len * inv_len; const float hooke = SPRING_CONSTANT * (len - REST_LENGTH);