Files
FluidSimCpp/include/FluidSim/ScenarioCatalog.hpp
max bf8621ad39 Load engines from TOML and improve scenario audio and carb tuning
Migrate 32 engine definitions into validated startup-loaded TOML files and separate configuration and snapshots from scenario assembly. Add camera-based stereo propagation from shared pipe geometry, preserve exhaust character, tune carburetor mixtures and idle, use ignition cuts for carb engines, and support returning to the scenario menu.

Validation: full Windows build and all 14 CTest checks passed.
2026-10-24 03:24:35 +02:00

29 lines
1.0 KiB
C++

#pragma once
#include "FluidSim/EngineConfig.hpp"
#include "FluidSim/Silencer.hpp"
#include "FluidSim/TwoStrokeConfig.hpp"
#include <filesystem>
#include <string>
#include <vector>
namespace fluidsim::port {
struct ScenarioExample {
std::string id,title,description;
ScenarioKind kind{ScenarioKind::Twin};
TwoStrokeConfig two{};
ExhaustConfig exhaust{};
JunctionConfig junctions{};
EngineConfig engine{};
std::string category;
int order{};
};
ScenarioExample load_engine_file(const std::filesystem::path& path);
std::vector<ScenarioExample> load_engine_directory(const std::filesystem::path& directory);
// FLUIDSIM_ENGINE_DIR overrides discovery. Otherwise search the working directory,
// beside the executable, then the source tree for developer tools.
std::filesystem::path engine_directory();
const std::vector<ScenarioExample>& scenario_examples();
const ScenarioExample& scenario_example(const std::string& id);
const ScenarioExample& preset_engine_definition(FourStrokePreset preset);
}