Doubled armor on crystal in Shivan Comm Node after 88c1d8a02a9062c394262aca3888e2debb15c22a commit
After commit (part of #2992):
88c1d8a02a9062c394262aca3888e2debb15c22a is the first bad commit
commit 88c1d8a02a9062c394262aca3888e2debb15c22a
Author: Goober5000 <[email protected]>
Date: Sat Dec 12 02:04:02 2020 -0500
consolidate model instance code
code/ai/aibig.cpp | 3 +-
code/ai/aicode.cpp | 5 +-
code/ai/aiturret.cpp | 13 +-
code/decals/decals.cpp | 11 +-
code/hud/hudtarget.cpp | 1 -
code/menuui/techmenu.cpp | 21 +-
code/mission/missionparse.cpp | 2 +-
code/missionui/redalert.cpp | 2 +-
code/model/model.h | 53 ++---
code/model/modelanim.cpp | 54 ++---
code/model/modelcollide.cpp | 13 +-
code/model/modelread.cpp | 381 ++++++++++++----------------------
code/model/modelrender.cpp | 35 +---
code/network/multi_obj.cpp | 24 ++-
code/network/multimsgs.cpp | 16 +-
code/object/collideshipship.cpp | 10 +-
code/parse/sexp.cpp | 40 ++--
code/scripting/api/objs/subsystem.cpp | 10 +-
code/ship/ship.cpp | 61 +++---
code/ship/ship.h | 4 +-
code/ship/shipfx.cpp | 31 +--
code/ship/shiphit.cpp | 6 +-
22 files changed, 352 insertions(+), 444 deletions(-)
crystal in Shivan Comm Node looks weird in mission or lab, like it have doubled armor. Before: https://user-images.githubusercontent.com/18072803/159471258-0983ea96-02dd-4278-94e3-6599c342d713.mp4 After: https://user-images.githubusercontent.com/18072803/159473353-dda672ae-c97e-47db-ae4a-f692a463dcc5.mp4 Similar in mission.
Of course it's possible that commit uncovered some bug in model.
Ok, it looks like the crystal has a LOD or a copy of a LOD that's static in addition to the crystal that's rotating properly.
I can reproduce the bug, but I don't know what caused it yet. There was a previous bug which manifested in a similar way, but I fixed that one. I can't think of a way for the comm node error to happen that would not have been fixed by the previous fix.
The previous bug was lower-level LODs not rotating along with higher-level ones. For example, you could see the Faustus panel rotating, but when you flew far enough away, it would stop rotating.
I suppose the comm node bug could happen if a lower-level, non-rotating LOD was being displayed along with the rotating LOD0.
Further investigation indicates that this is much deeper problem than a simple bug. Its root cause goes back to a model hack that was introduced in 2013 to link a subsystem with a different destroyed submodel. The fix will require changes to both the code and the model.
Unfortunately, #5203 did not affect this.