@@ -411,35 +411,32 @@ static IEnumerable<CodeInstruction> ShipConstruct_LoadShip_Transpiler(IEnumerabl
411411 }
412412 else
413413 {
414- try
414+ for ( int i = 0 ; i < code . Count - 5 ; i ++ )
415415 {
416- for ( int i = 0 ; i < code . Count - 5 ; i ++ )
416+ //// part.LoadModule(configNode2, ref moduleIndex);
417+ // ldloc.s 6
418+ // ldloc.3
419+ // ldloca.s 39
420+ // callvirt instance class PartModule Part::LoadModule(class ConfigNode, int32&)
421+ // pop
422+ // br
423+ if ( code [ i ] . opcode == OpCodes . Ldloc_S
424+ && code [ i + 1 ] . opcode == OpCodes . Ldloc_3
425+ && code [ i + 2 ] . opcode == OpCodes . Ldloca_S
426+ && code [ i + 3 ] . opcode == OpCodes . Callvirt && ReferenceEquals ( code [ i + 3 ] . operand , Part_LoadModule )
427+ && code [ i + 4 ] . opcode == OpCodes . Pop
428+ && code [ i + 5 ] . opcode == OpCodes . Br )
417429 {
418- //// part.LoadModule(configNode2, ref moduleIndex);
419- // ldloc.s 6
420- // ldloc.3
421- // ldloca.s 39
422- // callvirt instance class PartModule Part::LoadModule(class ConfigNode, int32&)
423- // pop
424- // br
425- if ( code [ i ] . opcode == OpCodes . Ldloc_S
426- && code [ i + 1 ] . opcode == OpCodes . Ldloc_3
427- && code [ i + 2 ] . opcode == OpCodes . Ldloca_S
428- && code [ i + 3 ] . opcode == OpCodes . Callvirt && ReferenceEquals ( code [ i + 3 ] . operand , Part_LoadModule )
429- && code [ i + 4 ] . opcode == OpCodes . Pop
430- && code [ i + 4 ] . opcode == OpCodes . Br )
430+ originalFound = true ;
431+ for ( int j = i ; j < i + 6 ; j ++ )
431432 {
432- originalFound = true ;
433- for ( int j = i ; j < i + 6 ; j ++ )
434- {
435- code [ j ] . opcode = OpCodes . Nop ;
436- code [ j ] . operand = null ;
437- }
438- break ;
433+ code [ j ] . opcode = OpCodes . Nop ;
434+ code [ j ] . operand = null ;
439435 }
436+ break ;
440437 }
441438 }
442- catch
439+ if ( ! originalFound )
443440 {
444441 code = new List < CodeInstruction > ( instructions ) ;
445442 for ( int i = 0 ; i < code . Count - 5 ; i ++ )
0 commit comments