the SAS Hangar > The Lounge

A suddenly appearing Java problem

(1/1)

WxTech:
Just now has this reared its head...

While adding a gun sight to a plane and doing some testing, upon hitting with my guns a large caliber AAA gun on the ground the game goes into 'ULTRA slide show mode' (as bad as 2-4 seconds per frame!) and puts this group of errors in log.lst:


--- Code: ---[6:32:22 AM] null
[6:32:22 AM] java.lang.NullPointerException
[6:32:22 AM] at com.maddox.il2.engine.ActorHMesh.collisionR(ActorHMesh.java:21)
[6:32:22 AM] at com.maddox.il2.engine.CollideEnvXY.removeStatic(CollideEnvXY.java:1418)
[6:32:22 AM] at com.maddox.il2.engine.ActorPosStatic.clearEnvs(ActorPosStatic.java:283)
[6:32:22 AM] at com.maddox.il2.engine.ActorPosStatic.destroy(ActorPosStatic.java:308)
[6:32:22 AM] at com.maddox.il2.engine.Actor.destroy(Actor.java:758)
[6:32:22 AM] at com.maddox.il2.engine.ActorMesh.destroy(ActorMesh.java:49)
[6:32:22 AM] at com.maddox.il2.engine.ActorHMesh.destroy(ActorHMesh.java:66)
[6:32:22 AM] at com.maddox.il2.objects.vehicles.artillery.ArtilleryGeneric.destroy(ArtilleryGeneric.java:549)
[6:32:22 AM] at com.maddox.il2.engine.Engine.destroyListGameActors(Engine.java:152)
[6:32:22 AM] at com.maddox.il2.engine.Engine.resetGameClear(Engine.java:197)
[6:32:22 AM] at com.maddox.il2.game.Main.resetGameClear(Main.java:131)
[6:32:22 AM] at com.maddox.il2.game.Main3D.resetGameClear(Main3D.java:1999)
[6:32:22 AM] at com.maddox.il2.game.Main.resetGame(Main.java:144)
[6:32:22 AM] at com.maddox.il2.game.Mission.clear(Mission.java:701)
[6:32:22 AM] at com.maddox.il2.game.Mission.destroy(Mission.java:662)
[6:32:22 AM] at com.maddox.il2.gui.GUISingleStat.doNext(GUISingleStat.java:47)
[6:32:22 AM] at com.maddox.il2.gui.GUIStat$DialogClient.notify(GUIStat.java:331)
[6:32:22 AM] at com.maddox.gwindow.GWindow.notify(GWindow.java:144)
[6:32:22 AM] at com.maddox.gwindow.GWindowDialogControl._notify(GWindowDialogControl.java:51)
[6:32:22 AM] at com.maddox.il2.gui.GUIButton._notify(GUIButton.java:18)
[6:32:22 AM] at com.maddox.gwindow.GWindowDialogControl.mouseClick(GWindowDialogControl.java:86)
[6:32:22 AM] at com.maddox.il2.gui.GUIButton.mouseClick(GUIButton.java:22)
[6:32:22 AM] at com.maddox.gwindow.GWindow._mouseButton(GWindow.java:556)
[6:32:22 AM] at com.maddox.gwindow.GWindowRoot.doMouseButton(GWindowRoot.java:251)
[6:32:22 AM] at com.maddox.gwindow.GWindowManager.doMouseButton(GWindowManager.java:69)
[6:32:22 AM] at com.maddox.il2.engine.GUIWindowManager.msgMouseButton(GUIWindowManager.java:126)
[6:32:22 AM] at com.maddox.rts.MsgMouse.invokeListener(MsgMouse.java:98)
[6:32:22 AM] at com.maddox.rts.Message._send(Message.java:1217)
[6:32:22 AM] at com.maddox.rts.Message.sendToObject(Message.java:1191)
[6:32:22 AM] at com.maddox.rts.Message.sendToArray(Message.java:1147)
[6:32:22 AM] at com.maddox.rts.Message.sendTo(Message.java:1128)
[6:32:22 AM] at com.maddox.rts.Message.trySend(Message.java:1115)
[6:32:22 AM] at com.maddox.rts.Time.loopMessages(Time.java:180)
[6:32:22 AM] at com.maddox.rts.RTSConf.loopMsgs(RTSConf.java:101)
[6:32:22 AM] at com.maddox.il2.game.MainWin3D.loopApp(MainWin3D.java:131)
[6:32:22 AM] at com.maddox.il2.game.Main.exec(Main.java:449)
[6:32:22 AM] at com.maddox.il2.game.GameWin3D.main(GameWin3D.java:235)

--- End code ---

This does not occur for smaller calibre guns or other objects/planes that I've tried so far.

Even more weirdly, it seems that if I'm in range of one of those large AAA guns, but I strike *other* ground objects that otherwise cause no issue, the same problem occurs.

I have done no recent modding of any guns at all.

I'm running 4.12.2 modact 5.3.

Any clues as to what's suddenly happened?

SAS~Storebror:
The relevant line of code reads:

--- Code: ---return mesh().collisionR();
--- End code ---
The NullPointerException means that mesh() equals null.
Wild guess: Do the objects which you hit there miss a valid dead mesh?
You might find a hint of the cause of this issue earlier in the same log.

]cheers[
Mike

WxTech:
Mike,
You were right about looking farther up in the log. Of course!

So. Got round to another test, on the Moscow winter map. First instance of the problem as reported, with the first group of various associated Java errors:


--- Code: ---[5:56:12 AM] INTERNAL ERROR: Can't open file '3do/Artillery/Germany/Flak18_88mm_W/Dead_256.tga'
[5:56:12 AM] WARNING: object '3do/Artillery/Germany/Flak18_88mm_W/Dead_256.tga' of class 'TTexture2D' not loaded
[5:56:12 AM] INTERNAL ERROR: Texture required
[5:56:12 AM] WARNING: object '3do/Artillery/Germany/Flak18_88mm_W/dead_mip_1.mat' of class 'TMaterial' not loaded
[5:56:12 AM] INTERNAL ERROR: Material: Can't load 'dead_mip_1.mat'
[5:56:12 AM] com.maddox.il2.engine.GObjException: Mesh 3do/Artillery/Germany/Flak18_88mm_W/Dead.sim not created
[5:56:12 AM] at com.maddox.il2.engine.Mesh.<init>(Mesh.java:419)
[5:56:12 AM] at com.maddox.il2.engine.ActorMesh.setMesh(ActorMesh.java:72)
[5:56:12 AM] at com.maddox.il2.engine.ActorHMesh.setMesh(ActorHMesh.java:86)
[5:56:12 AM] at com.maddox.il2.objects.vehicles.artillery.ArtilleryGeneric.setMesh(ArtilleryGeneric.java:586)
[5:56:12 AM] at com.maddox.il2.objects.vehicles.artillery.ArtilleryGeneric.Die(ArtilleryGeneric.java:481)
[5:56:12 AM] at com.maddox.il2.objects.vehicles.artillery.ArtilleryGeneric.msgShot(ArtilleryGeneric.java:336)
[5:56:12 AM] at com.maddox.il2.ai.MsgShot.invokeListener(MsgShot.java:57)
[5:56:12 AM] at com.maddox.rts.Message._send(Message.java:1217)
[5:56:12 AM] at com.maddox.rts.Message.sendToObject(Message.java:1158)
[5:56:12 AM] at com.maddox.rts.Message.sendTo(Message.java:1134)
[5:56:12 AM] at com.maddox.rts.Message.trySend(Message.java:1115)
[5:56:12 AM] at com.maddox.rts.Message.send(Message.java:1079)
[5:56:12 AM] at com.maddox.il2.ai.MsgShot.send(MsgShot.java:46)
[5:56:12 AM] at com.maddox.il2.objects.weapons.Bullet.collided(Bullet.java:152)
[5:56:12 AM] at com.maddox.il2.engine.MsgBulletCollision.invokeListener(MsgBulletCollision.java:39)
[5:56:12 AM] at com.maddox.rts.Message._send(Message.java:1217)
[5:56:12 AM] at com.maddox.rts.Message.sendToObject(Message.java:1191)
[5:56:12 AM] at com.maddox.rts.Message.sendTo(Message.java:1134)
[5:56:12 AM] at com.maddox.rts.Message.trySend(Message.java:1115)
[5:56:12 AM] at com.maddox.rts.Time.loopMessages(Time.java:252)
[5:56:12 AM] at com.maddox.rts.RTSConf.loopMsgs(RTSConf.java:101)
[5:56:12 AM] at com.maddox.il2.game.MainWin3D.loopApp(MainWin3D.java:131)
[5:56:12 AM] at com.maddox.il2.game.Main.exec(Main.java:449)
[5:56:12 AM] at com.maddox.il2.game.GameWin3D.main(GameWin3D.java:235)

--- End code ---

Looked in Static.ini, and found this in the Winter Destroyed section, curiously already REM'd out:

//[buildings.House$Flak_18_88mm_winter_dead]
//Title           Flak_18_88mm_winter_dead
//MeshLive        3do/Artillery/Germany/Flak18_88mm_W/Dead.sim   //No dead_mip_1.mat Fix Me
//MeshDead        3do/Artillery/Germany/Flak18_88mm_W/Dead.sim
//AlignToLand     1
//Body            fuelSmall
//Panzer          0.030

I guess I've got to extract that folder and address this mip_1.mat.

Or maybe I should just remove the "//" characters and see what results. If that fails, a quick temporary fix would be to insert the summer destroyed text. To the entry in Technics.ini as well, of course.

Funny how I've never had this happen before, and I *think* I'm sure I've blasted more than a few of these winter 88s.

WxTech:
Made the temporary renaming of the dead meshes from winter to summer versions, in both static.ini and technics.ini. That works, and it looks OK, too (damaged stuff is generally a 'mess' anyway ;)  ). I might just keep things as they are, unless something comes over me and demands I straighten matters out properly.

I guess that I mustn't have actually blasted a winter 88 since upgrading to 4.12.2; summer ones, certainly.

Navigation

[0] Message Index

Go to full version