Buggy code:
private int waitTimer = 0 ; private List < Pantext > helps = null ; private final long startTime ; private MapPlayer ( final PlayerContext pc ) { } private final Panput getMenuInput ( final ControlScheme ctrl ) { } private final Pantext addHelp ( final String s , final int x , final int y ) { } private final void clearHelp ( ) { } @ Override protected void onStill ( ) { if ( disabled ) { return ; } else if ( ( stillTimer ) >= 0 ) { if ( ( stillTimer ) == 0 ) { changeView ( pc . mapSouth ) ; } ( stillTimer ) -- ; } ( waitTimer ) ++ ; final Pangine engine = Pangine . getEngine ( ) ; if ( engine . isTouchSupported ( ) ) { final int lim = ( ( pc . profile . stats . defeatedLevels ) == 0 ) ? 60 : 240 ; if ( ( waitTimer ) == lim ) { final int r = PlayerScreen . getTouchButtonRadius ( ) ; if ( Map . isOpen ( Map . getIndex ( ) ) ) { addHelp ( "Left" , r , ( ( r * 2 ) - 4 ) ) ; addHelp ( "Down" , ( r * 2 ) , ( r - 4 ) ) ; addHelp ( "Up" , ( r * 2 ) , ( ( r * 3 ) - 4 ) ) ; addHelp ( "Right" , ( r * 3 ) , ( ( r * 2 ) - 4 ) ) ; } else { addHelp ( "Play" , ( ( engine . getEffectiveWidth ( ) ) - r ) , ( r - 4 ) ) ; } } else if ( ( waitTimer ) == ( lim * 2 ) ) { final String s = "Change<seq2seq4repair_space>appearance,<seq2seq4repair_space>options" ; final String s2 = "Goals" ; final Panple menuSize = menu . getSize ( ) ; final int w = engine . getEffectiveWidth ( ) ; final int h = engine . getEffectiveHeight ( ) ; final int mh = ( ( int ) ( menuSize . getY ( ) ) ) ; addHelp ( s , ( w - ( ( s . length ( ) ) * 4 ) ) , ( ( h - mh ) - 9 ) ) ; addHelp ( s2 , ( ( w - ( ( int ) ( menuSize . getX ( ) ) ) ) - ( ( s2 . length ( ) ) * 4 ) ) , ( h - 28 ) ) ; } } final Panteraction interaction = engine . getInteraction ( ) ; final ControlScheme ctrl = pc . ctrl ; if ( ctrl == null ) { return ; } final boolean endListener = engine . isTouchSupported ( ) ; if ( Panput . isActive ( ctrl . getDown ( ) , endListener ) ) { go ( South ) ; } else if ( Panput . isActive ( ctrl . getUp ( ) , endListener ) ) { go ( North ) ; } else if ( Panput . isActive ( ctrl . getLeft ( ) , endListener ) ) { go ( West ) ; } else if ( Panput . isActive ( ctrl . getRight ( ) , endListener ) ) { go ( East ) ; } else if ( Panput . isActive ( ctrl . get1 ( ) , endListener ) ) { if ( ( ( engine . getClock ( ) ) <= ( startTime ) ) || ( FadeController . isFadingIn ( ) ) ) { ctrl . get1 ( ) . inactivate ( ) ; return ; } clearHelp ( ) ; final int t = Map . getIndex ( ) ; if ( Map . isOpen ( t ) ) { return ; } changeView ( pc . mapPose ) ; Map . setPlayerPosition ( t ) ; final Panscreen screen ; final Map . Building b = Map . getBuilding ( t ) ; <START_BUG> Level . initTheme ( ) ; <END_BUG> Level . seed = ( Map . seed ) + t ; if ( Map . isCabin ( b ) ) { screen = new Cabin . CabinScreen ( ) ; } else if ( Map . isCastle ( b ) ) { screen = new Castle . ThroneIntroScreen ( ) ; Level . setTheme ( Chaos ) ; } else { if ( Map . isBridge ( t ) ) { Level . setTheme ( Bridge ) ; } else if ( ( Map . tm . getRow ( t ) ) == ( Map . ROW_CLIFF_LEVEL ) ) { Level . setTheme ( Minecart ) ; } else if ( ( Map . tm . getColumn ( t ) ) == ( ( Map . tm . getWidth ( ) ) - 5 ) ) { Level . setTheme ( Night ) ; } screen = new FurGuardiansGame . PlatformScreen ( ) ; } Level . clear ( ) ; fadeOut ( screen ) ; FurGuardiansGame . playTransition ( musicLevelStart ) ; } else if ( interaction . KEY_TAB . isActive ( ) ) { interaction . KEY_TAB . inactivate ( ) ; Map . modeMove = ( ( short ) ( ( ( Map . modeMove ) + 1 ) % 3 ) ) ; } else if ( interaction . KEY_F1 . isActive ( ) ) { engine . captureScreen ( ) ; } else if ( Panput . isActive ( getMenuInput ( ctrl ) , endListener ) ) { clearHelp ( ) ; goMenu ( getMenuInput ( ctrl ) , pc ) ; } } @ Override protected final void onWalking ( ) { } private final void goMenu ( final Panput input , final PlayerContext pc ) { }

Fix:
Level . initThemeForNonSpecialMarker ( ) ;