control_menu: Add rules related updates

This commit is contained in:
2026-01-12 20:43:50 +01:00
parent 9e2e7b562d
commit 24d8a092e4
3 changed files with 19 additions and 16 deletions

View File

@@ -2,7 +2,7 @@
* File name: main.cpp
* Author: lejulien
* Date created: 10-01-2026 21:59:32
// Date modified: 10-01-2026 22:55:11
// Date modified: 12-01-2026 20:34:37
* ------
*/
@@ -101,7 +101,7 @@ int main(int ac, char **av) {
// Initialize objects
context.world = std::make_shared<World>(context);
Rules rules = Rules();
context.rules = std::make_shared<Rules>();
Render render(context.config_json["cell_size"]);
// Imgui control menu
@@ -122,7 +122,7 @@ int main(int ac, char **av) {
std::string sel_txt_input_hint("patern name");
// Setups
rules.setup(&(*context.world));
context.rules->setup(&(*context.world));
// Diplay generations
while (!WindowShouldClose()) {
// Frames shinenigans
@@ -171,15 +171,6 @@ int main(int ac, char **av) {
if (!sel_ctrl) {
patern_name[0] = '\0';
}
if (control_menu.step_ctrl_) {
context.world->saveCompressed();
rules.update();
control_menu.step_ctrl_ = false;
}
if (control_menu.step_back_ctrl_) {
context.world->stepBack();
control_menu.step_back_ctrl_ = false;
}
if (control_menu.apply_ctrl_) {
bool resize_needed = false;
@@ -198,7 +189,7 @@ int main(int ac, char **av) {
context.world->resize(context.config_json["screen_width"].get<int>() / control_menu.cell_size_ctrl_,
context.config_json["screen_height"].get<int>() / control_menu.cell_size_ctrl_);
render.updateCellSize(control_menu.cell_size_ctrl_);
rules.newWorld(&(*context.world));
context.rules->newWorld(&(*context.world));
context.config_json["cell_size"] = control_menu.cell_size_ctrl_;
}
if (control_menu.dark_theme_ctrl_ != context.config_json["dark_theme"]) {
@@ -218,7 +209,7 @@ int main(int ac, char **av) {
deltaTimeAccumulator -= timePerUpdate;
if (control_menu.menu_state_ == MenuState::PLAY) {
context.world->saveCompressed();
rules.update();
context.rules->update();
}
}
BeginDrawing();