add winning conditions and ability to mark them in the graph
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
#include <immintrin.h>
|
||||
#include <raylib.h>
|
||||
#include <raymath.h>
|
||||
#include <unordered_set>
|
||||
|
||||
#include "config.hpp"
|
||||
#include "klotski.hpp"
|
||||
@ -26,12 +27,12 @@ private:
|
||||
public:
|
||||
OrbitCamera3D(Vector3 target, float distance)
|
||||
: camera({0}), target(target), distance(distance), angle_x(0.0),
|
||||
angle_y(0.3), last_mouse(Vector2Zero()), dragging(false),
|
||||
angle_y(0.0), last_mouse(Vector2Zero()), dragging(false),
|
||||
panning(false), target_lock(true) {
|
||||
camera.position = Vector3(0, 0, -1.0 * distance);
|
||||
camera.target = target;
|
||||
camera.up = Vector3(0, 1.0, 0);
|
||||
camera.fovy = 90.0;
|
||||
camera.fovy = CAMERA_FOV;
|
||||
camera.projection = CAMERA_PERSPECTIVE;
|
||||
}
|
||||
|
||||
@ -47,9 +48,16 @@ private:
|
||||
RenderTexture render_target;
|
||||
RenderTexture klotski_target;
|
||||
RenderTexture menu_target;
|
||||
std::unordered_set<State> winning_states;
|
||||
|
||||
public:
|
||||
Renderer() : camera(OrbitCamera3D(Vector3(0, 0, 0), CAMERA_DISTANCE)) {
|
||||
bool mark_solutions;
|
||||
bool connect_solutions;
|
||||
|
||||
public:
|
||||
Renderer()
|
||||
: camera(OrbitCamera3D(Vector3(0, 0, 0), CAMERA_DISTANCE)),
|
||||
mark_solutions(false), connect_solutions(false) {
|
||||
render_target = LoadRenderTexture(WIDTH, HEIGHT);
|
||||
klotski_target = LoadRenderTexture(WIDTH, HEIGHT);
|
||||
menu_target = LoadRenderTexture(WIDTH * 2, MENU_HEIGHT);
|
||||
@ -67,6 +75,12 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
auto UpdateWinningStates(const MassSpringSystem &masssprings,
|
||||
const WinCondition win_condition) -> void;
|
||||
|
||||
auto AddWinningState(const State &state, const WinCondition win_condition)
|
||||
-> void;
|
||||
|
||||
auto UpdateCamera(const MassSpringSystem &masssprings, const State ¤t)
|
||||
-> void;
|
||||
|
||||
@ -76,7 +90,8 @@ public:
|
||||
auto DrawKlotski(const State &state, int hov_x, int hov_y, int sel_x,
|
||||
int sel_y) -> void;
|
||||
|
||||
auto DrawMenu(const MassSpringSystem &masssprings) -> void;
|
||||
auto DrawMenu(const MassSpringSystem &masssprings, int current_preset)
|
||||
-> void;
|
||||
|
||||
auto DrawTextures() -> void;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user