scp-fs2open / fs2open.github.com

Origin Repository for SCP FreeSpace 2 Open
https://www.hard-light.net/
Other
400 stars 161 forks source link

Doubled armor on crystal in Shivan Comm Node after 88c1d8a02a9062c394262aca3888e2debb15c22a commit #4089

Open tomimaki opened 2 years ago

tomimaki commented 2 years ago

After commit (part of #2992):

88c1d8a02a9062c394262aca3888e2debb15c22a is the first bad commit
commit 88c1d8a02a9062c394262aca3888e2debb15c22a
Author: Goober5000 <ipw47@mailbox.org>
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.

z64555 commented 2 years ago

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.

Goober5000 commented 2 years ago

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.

Goober5000 commented 2 years ago

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.

Goober5000 commented 1 year ago

Unfortunately, #5203 did not affect this.