Open ghost opened 1 year ago
A models/players/level3/level3
shader is defined for our Unvanquished dragoon model. The basepak is loaded first and the map last, so the Unvanquished one wins. As it should be: the alternative bug of having the map override Unvanquished assets would be much worse!
As it should be
Not really, as models are baked into bsp files and can't be modified without resorting to ugly hacks like I did.
the alternative bug of having the map override Unvanquished assets would be much worse!
I would argue that the problem comes from unvanquished using the same names for models, in addition of models not embedding their textures. If unvanquished used a "namespace" or a prefix (let's say, randomly, "unv_" then there would not be any collision.
I don't get it. Why is only the dragoon texture flipped/rotated, but not the other ones?
I don't get it. Why is only the dragoon texture flipped/rotated, but not the other ones?
It depends on whether there are name conflicts with Unvanquished assets
This is because Tremulous name model textures like this:
models/level0/level0
models/mgturret/mgturret
And Unvanquished name model textures like this:
models/level0/level0
models/mgturret/mgturret
It would have been better if that was done instead:
models/tremulous/level0/level0
models/tremulous/mgturret/mgturret
models/unvanquished/level0/level0
models/unvanquished/mgturret/mgturret
The res-tremulous
package moved Tremulous conflicting model textures to model/tremulous
to avoid breaking the game models: choice was made to break legacy Tremulous model textures instead of letting legacy Tremulous maps break the game.
I would like to move specific unvanquished things to models/unvanquished
and I may have a branch for that but that's a lot of work.
The alternative was that every time you loaded a legacy Tremulous map relying on res-tremulous
packages you would have stock Unvanquished players, buildables and weapons models as broken as this.
I don't get it. Why is only the dragoon texture flipped/rotated, but not the other ones?
It happens that sometime, new models/textures are using some other name for various reasons, for example the previous lucifer canon was named pulse because it was initially modeled to be a pulse rifle, and tremulous never had models/weapons/lcannon/pulse
texture so there could have been no conflicts.
Should we just rename the unv textures to something else so they don't conflict with legacy textures?
Yes but it's better if we do this the reliable way, like adding a prefix folder.
Adding a prefix folder is a kind of renaming, but with an agreed convention.
While I do not know what this should look like, the behavior is very close to what can be seen in @cu-kai 's station12-b5 map, which should look like this:
but really looks like that:
I could hackily "fix" that map ported by @sweet235 by modifying the bsp with an hexadecimal editor. Can you see the change in this screenshot? You should, it's rather obvious.
I also renamed files in the dpk:
and modified "random" files:
The problem appears on other maps, such as AMP's "example" map where flame files are "missing" (not in the correct place, really) and probably several other ones that I don't remember right now. Any map using baked-in model of stuff from tremulous or textures from tremulous is likely to be affected in various unpredictable ways.