mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-26 07:35:40 +00:00
Tweak scroll fog logic again .. should fix missing 2d fogging in Spikeout.
This commit is contained in:
parent
45741b24d2
commit
1193069709
|
@ -104,6 +104,7 @@ void CNew3D::DrawScrollFog()
|
|||
// daytona - doesn't seem to use scroll fog at all. Will set scroll values for the first viewports, the end ones contain no scroll values
|
||||
// vf3 - first viewport only has it set. But set with highest select value ?? Rest of the viewports in priority layer contain a lower select value
|
||||
// sega bassfishing - first viewport in priority 1 sets scroll value. The rest all contain the wrong value + a higher select value ..
|
||||
// spikeout final - 2nd viewport has scroll values set, none of the others do. It also uses the highest select value
|
||||
|
||||
// known bug (vf3) - if you complete the game on a stage that has fogging, that fogging gets carried over into the credits. I did a binary diff on the viewport, it's never updated from the previous stage, neither is the data it's pointing at. Either a game or emulation bug.
|
||||
|
||||
|
@ -114,7 +115,10 @@ void CNew3D::DrawScrollFog()
|
|||
for (auto &n : m_nodes) {
|
||||
|
||||
if (n.viewport.priority == i) {
|
||||
if (!vp || n.viewport.select == vp->select) {
|
||||
if (!vp && n.viewport.scrollFog) {
|
||||
vp = &n.viewport; // only start grabbing viewports if there is a scroll value
|
||||
}
|
||||
else if(vp && n.viewport.select == vp->select) {
|
||||
vp = &n.viewport; // grab the last viewport with the same select value ??
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue