Skip to content

Commit 0814668

Browse files
committed
do not crash if plugin is loaded during initialization
1 parent 97825e1 commit 0814668

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

src/OpenCOVER/plugins/hlrs/JSBSim/JSBSim.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,8 @@ bool JSBSimPlugin::init()
571571
labelVelocityY = new ui::Label(JSBMenu, "V_y");
572572
labelVelocityZ = new ui::Label(JSBMenu, "V_z");
573573

574+
VrmlNamespace::addBuiltIn(VrmlNode::defineType<VrmlNodeThermal>());
575+
574576
bool ret = false;
575577
if (coVRMSController::instance()->isMaster())
576578
{
@@ -585,7 +587,10 @@ bool JSBSimPlugin::init()
585587
deviceVersion = 2;
586588
}
587589
std::cerr << "JSBSim config: UDP: serverHost: " << host << ", localPort: " << localPort << ", serverPort: " << serverPort << std::endl;
590+
loadAircraft("paraglider");
591+
initJSB();
588592
resetAircraftAttitude();
593+
reset();
589594
udp = new UDPComm(host.c_str(), serverPort, localPort);
590595
if (!udp->isBad())
591596
{
@@ -610,12 +615,12 @@ bool JSBSimPlugin::init()
610615

611616
coVRNavigationManager::instance()->registerNavigationProvider(this);
612617

613-
VrmlNamespace::addBuiltIn(VrmlNode::defineType<VrmlNodeThermal>());
614-
615-
loadAircraft(m_defaultAircraft);
616-
initJSB();
617-
resetAircraftAttitude();
618-
618+
if(currentAircraft == nullptr)
619+
{
620+
loadAircraft(m_defaultAircraft);
621+
initJSB();
622+
resetAircraftAttitude();
623+
}
619624
return true;
620625
}
621626

0 commit comments

Comments
 (0)