From 45595651867cb44bd9ec3d2538dc72006dc76579 Mon Sep 17 00:00:00 2001 From: Jason Garner Date: Thu, 13 Oct 2022 12:35:49 -0500 Subject: [PATCH 1/2] Unexpected token --- include/transmission.h | 3 ++- scripting/include/transmission_node.h | 2 +- src/engine_sim_application.cpp | 3 ++- src/transmission.cpp | 3 +++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/transmission.h b/include/transmission.h index a9625576..be93d156 100644 --- a/include/transmission.h +++ b/include/transmission.h @@ -12,6 +12,7 @@ class Transmission { int GearCount; const double *GearRatios; double MaxClutchTorque; + bool variable; }; public: @@ -32,9 +33,9 @@ class Transmission { inline double getClutchPressure() const { return m_clutchPressure; } inline void setDiskPosition(double position) { m_diskPosition = clamp(position); } inline double getDiskPosition() const { return m_diskPosition; } - void enableSlidingDisk(); inline bool isVariable() { return maySlide; } protected: + void enableSlidingDisk(); atg_scs::ClutchConstraint m_clutchConstraint; atg_scs::RigidBody *m_rotatingMass; Vehicle *m_vehicle; diff --git a/scripting/include/transmission_node.h b/scripting/include/transmission_node.h index 36952f06..bd622803 100644 --- a/scripting/include/transmission_node.h +++ b/scripting/include/transmission_node.h @@ -29,7 +29,7 @@ namespace es_script { protected: virtual void registerInputs() { addInput("max_clutch_torque", &m_parameters.MaxClutchTorque); - + addInput("variable", &m_parameters.variable); ObjectReferenceNode::registerInputs(); } diff --git a/src/engine_sim_application.cpp b/src/engine_sim_application.cpp index 8c862b60..b8a9ef4a 100644 --- a/src/engine_sim_application.cpp +++ b/src/engine_sim_application.cpp @@ -760,7 +760,7 @@ void EngineSimApplication::processEngineInput() { fineControlInUse = true; } else if (m_engine.IsKeyDown(ysKey::Code::J)) { - (*m_transmission).enableSlidingDisk(); //todo: disable + if ((*m_transmission).isVariable()) { double diskPosition = (*m_transmission).getDiskPosition(); if (mouseWheelDelta > 0) { (*m_transmission).setDiskPosition(diskPosition + 0.01); @@ -773,6 +773,7 @@ void EngineSimApplication::processEngineInput() { m_infoCluster->setLogMessage("[J] - T Disk position currently " + std::to_string((int)((1.0-diskPosition)*100))+"%"); fineControlInUse = true; + } } const double prevTargetThrottle = m_targetSpeedSetting; diff --git a/src/transmission.cpp b/src/transmission.cpp index 7ed45768..560bd91d 100644 --- a/src/transmission.cpp +++ b/src/transmission.cpp @@ -38,6 +38,9 @@ void Transmission::initialize(const Parameters ¶ms) { m_diskMax = m_gearRatios[0]; m_diskMin = m_gearRatios[params.GearCount - 1]; } + if (params.variable) { + enableSlidingDisk(); + } } void Transmission::update(double dt) { From e55992d28c69bfc5982250e3802accf6c8e3fb3e Mon Sep 17 00:00:00 2001 From: Jason Garner Date: Thu, 20 Oct 2022 14:26:40 -0500 Subject: [PATCH 2/2] untested --- es/objects/objects.mr | 1 + 1 file changed, 1 insertion(+) diff --git a/es/objects/objects.mr b/es/objects/objects.mr index c6dade81..c5d2b4ff 100644 --- a/es/objects/objects.mr +++ b/es/objects/objects.mr @@ -604,5 +604,6 @@ public node vehicle => __engine_sim__vehicle { public node transmission => __engine_sim__transmission { input max_clutch_torque [float]: 1000 * units.lb_ft; + input variable [bool]: false; alias output __out [transmission_channel]; }