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.
This commit is contained in:
max
2026-10-24 03:24:35 +02:00
parent 5607dcf2b5
commit bf8621ad39
82 changed files with 24084 additions and 648 deletions

View File

@@ -19,7 +19,7 @@ namespace fluidsim::port {
struct TwoStrokeSnapshot {
float rpm{}, cylinder_pressure{}, crankcase_pressure{}, intake_pressure{};
float throttle{}, transfer_area{}, exhaust_area{};
bool reed_open{}, fuel_cut{};
bool reed_open{}, fuel_cut{}, ignition_cut{};
float pedal{};
OutdoorScene audio_scene{OutdoorScene::Wall};
};
@@ -28,6 +28,7 @@ struct TwoStrokeSnapshot {
// the plenum / reed / crankcase / transfer / cylinder / exhaust topology.
class TwoStrokeScenario : public MotorcycleTest {
public:
void set_listener(AudioListener listener) { audio_.set_listener(listener); }
explicit TwoStrokeScenario(int sample_rate = 44100, TwoStrokeConfig config = {});
AudioFrame process();
void set_throttle(float value);