jtrfp / terminal-recall

Engine remake for Terminal Velocity and Fury3
Eclipse Public License 1.0
56 stars 2 forks source link

Null pointer exception at core.lvl's planet briefing #261

Closed gdm413229 closed 2 years ago

gdm413229 commented 2 years ago

When you enter Terminal Velocity's core.lvl with the current build, the part after the turret's briefing throws a null pointer exception when it tries to find one of the level's drone transport ships for it's briefing entry. mcore.lvl plays fine (no briefing screen on that, you fly through the trench, enter the tunnel, blow the supercomputer's central node to smithereens and leave through the exit tunnel), and unlike the original DOS executable, after the supercomputer planet (core.lvl then mcore.lvl) is destroyed, you fly to the scary Gigeresque planet (geiger.lvl, which in the original DOS .exe, you have to enter your name as "Terminal" and your callsign as "Reality" in order to take down the bio-mechanical abominations that lurk on the skies of the Gigeresque planet).

The JVM used is the AdoptOpenJDK JVM version 11.0.12 2021-07-20

The exception details are provided below:

Exception in thread "Transient Thread" java.lang.NullPointerException
        at org.jtrfp.trcl.BriefingScreen$1$3.propertyChange(BriefingScreen.java:309)
        at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341)
        at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:334)
        at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266)
        at org.jtrfp.trcl.prop.ThreadSafePropertyChangeSupport.firePropertyChange(ThreadSafePropertyChangeSupport.java:66)
        at org.jtrfp.trcl.core.TRFactory$TR.setRunState(TRFactory.java:531)
        at org.jtrfp.trcl.BriefingScreen$1$3$2.run(BriefingScreen.java:355)
        at org.jtrfp.trcl.core.DefaultKeyedExecutor.executeAllFromThisThread(DefaultKeyedExecutor.java:64)
        at org.jtrfp.trcl.flow.TransientExecutor$TransientThread.run(TransientExecutor.java:43)
cjritola commented 2 years ago

Thank you for filing this bug. I think I fixed it.

The name/callsign easter egg will probably never be implemented because of the upfront nature of the Skip To Level feature exposing all of these levels. End-of-game handling in TV should now work properly and not overflow into GEIGER.