@@ -295,7 +295,8 @@ LookList* RMFT2::LookListLoader(OPCODE op1, OPCODE op2, OPCODE op3) {
295295 VPIN id=operand;
296296 int addr=getOperand (progCounter,1 );
297297 byte subAddr=getOperand (progCounter,2 );
298- setTurnoutHiddenState (DCCTurnout::create (id,addr,subAddr));
298+ Turnout *t = DCCTurnout::create (id,addr,subAddr);
299+ if (t) setTurnoutHiddenState (t);
299300 break ;
300301 }
301302
@@ -305,24 +306,28 @@ LookList* RMFT2::LookListLoader(OPCODE op1, OPCODE op2, OPCODE op3) {
305306 int activeAngle=getOperand (progCounter,2 );
306307 int inactiveAngle=getOperand (progCounter,3 );
307308 int profile=getOperand (progCounter,4 );
308- setTurnoutHiddenState (ServoTurnout::create (id,pin,activeAngle,inactiveAngle,profile));
309+ Turnout *t = ServoTurnout::create (id,pin,activeAngle,inactiveAngle,profile);
310+ if (t) setTurnoutHiddenState (t);
309311 break ;
310312 }
311313
312314 case OPCODE_PINTURNOUT: {
313315 VPIN id=operand;
314316 VPIN pin=getOperand (progCounter,1 );
315- setTurnoutHiddenState (VpinTurnout::create (id,pin));
317+ Turnout *t = VpinTurnout::create (id,pin);
318+ if (t) setTurnoutHiddenState (t);
316319 break ;
317320 }
318321
319322#ifndef IO_NO_HAL
320323 case OPCODE_DCCTURNTABLE: {
321324 VPIN id=operand;
322325 int home=getOperand (progCounter,1 );
323- setTurntableHiddenState (DCCTurntable::create (id));
324- Turntable *tto=Turntable::get (id);
325- tto->addPosition (0 ,0 ,home);
326+ Turntable *tto = DCCTurntable::create (id);
327+ if (tto) {
328+ setTurntableHiddenState (tto);
329+ tto->addPosition (0 ,0 ,home);
330+ }
326331 break ;
327332 }
328333
0 commit comments