EDuke32 Changelog Unofficial archive

Build 2257

14 January 2012 · 2 commits by 1 author · SVN

Builds by month 112 builds

Original log file · 20120114-2257.txt
------------------------------------------------------------------------
r2257 | helixhorned | 2012-01-14 06:48:45 -0800 (Sat, 14 Jan 2012) | 1 line

Fix parallaxed sector display in Mapster32 on Polymer.
------------------------------------------------------------------------
r2256 | helixhorned | 2012-01-14 06:48:30 -0800 (Sat, 14 Jan 2012) | 16 lines

Fix the Polymer hitches first encountered with Parkade.

The cause was a combination of many factors. First, Polymer requires the
start-drawing position to be inside the sector to draw (deviations lead to
incorrect drawing).  This was violated by the game, because it interpolated
the current and next tic position without updating the sectnum, leading to
inconsistencies especially when passing through narrow sectors.  Polymer
worked around it by doing an updatesector() each frame, however this works
poorly for maps with overlapping geometry such as SoS or RoR.

The solution to this is to add a new engine function,
updatesector_onlynextwalls(), which searches the sectors (via nextsector)
in breadth-first fashion instead of from 0 to numsectors-1, like updatesector
does when it fails for the *immediate* nextwall neighbors.

Internally, the breadt-first search helpers are moved into the engine.
------------------------------------------------------------------------
r2255 | helixhorned | 2012-01-12 12:49:50 -0800 (Thu, 12 Jan 2012) | 4 lines

winlayer.c: in WM_PALETTECHANGED handling code ("someone stole the palette
so try and steal it back"), prevent calling IDirectDrawSurface_SetPalette()
with NULL arguments, causing a crash.  It's happened for me on Vista, when
initially changing from 8-bit to 32-bit mode.
------------------------------------------------------------------------
FixEngine

Fix the Polymer hitches first encountered with Parkade.

Philipp Kutin (Helixhorned) 14 Jan 2012, 06:48 UTC−8 r2256

The cause was a combination of many factors. First, Polymer requires the start-drawing position to be inside the sector to draw (deviations lead to incorrect drawing). This was violated by the game, because it interpolated the current and next tic position without updating the sectnum, leading to inconsistencies especially when passing through narrow sectors. Polymer worked around it by doing an updatesector() each frame, however this works poorly for maps with overlapping geometry such as SoS or RoR. The solution to this is to add a new engine function, updatesector_onlynextwalls(), which searches the sectors (via nextsector) in breadth-first fashion instead of from 0 to numsectors-1, like updatesector does when it fails for the *immediate* nextwall neighbors. Internally, the breadt-first search helpers are moved into the engine.

Fix
Already listed in build 2255

winlayer.c: in WM_PALETTECHANGED handling code ("someone stole the palette

Philipp Kutin (Helixhorned) 12 Jan 2012, 12:49 UTC−8 r2255

so try and steal it back"), prevent calling IDirectDrawSurface_SetPalette() with NULL arguments, causing a crash. It's happened for me on Vista, when initially changing from 8-bit to 32-bit mode.