because it exposed a design flaw in the thinker system:
Having every single actor default to the highest available statnum means that
nothing can be placed in a slot where it is guaranteed to be run after all actors
have ticked. But this is required for any thinker that moves an actor
(i.e. AActorMover and DSectorEffect.) With DSectorEffect it just went unnoticed
because they were added at the end of the list so almost nothing they moved was
behind them in a thinker list. However, when an actor was spawned on a moving
floor it did not move smoothly. The default statnum is now 100 so that there's
sufficient slots above where such thinkers can be placed.
SVN r2060 (trunk)
it happened outside the moved actor's Tick function. This got particularly
obvious with moving skybox viewpoints (See Daedalus's MAP21 intro for a good
example.)
SVN r2059 (trunk)
broken. I don't know what I thinking when I plugged in 2*finesine[pitch]
for Hexen's lookdir, because that's totally wrong. Not only is the
magnitude far too low, but it also aims in the opposite direction you
are looking. The new code only attempts to be close to Hexen's original
while looking straight ahead and extrapolates that to other angles using
proper 3D math.
SVN r2057 (trunk)
a mild performance increase it's not what I hoped it would do...
- Moved portal initialization for the portal things to P_SpawnSpecials
instead of having the things self-initialize in PostBeginPlay. This was
done to ensure that the portals are fully set up when the game begins.
Otherwise there is no decent way to let the renderer post-process this
information during setup.
- Changed: For 800x600 the default scaling handling of the options menu
makes it become too small so for any resolution with a width between
800 and 959 it has been reverted to the regular clean scaling factor.
SVN r2055 (trunk)
were flagged not to have decals.
- Fixed: DBaseDecal/DImpactDecal::CloneSelf never checked the return value
from their StickToWall call and left unplaced decals behind if that happened.
SVN r2046 (trunk)
player does not immediately activate switches. oldbuttons was not usable
for this. This also required that CopyPlayer preserves this info.
- Fixed: When restarting the music there was a NULL pointer check missing
so it crashed when the game was started wi
- Fixed: If the Use key is used to respawn the player it must be cleared
so that it doesn't trigger any subsequent actions after respawning.
- Fixed: Resurrecting a monster did not restore flags5 and flags6.
- Fixed: Projectiles which killed a non-monster were unable to determine
what precisely they hit because MF_CORPSE is only valid for monsters.
A new flag, MF6_KILLED that gets set for all objects that die, was added
for this case.
- Added a generic A_Weave function that exposes all possible options of
A_BishopMissileWeave and A_CStaffMissileSlither. These 2 functions are
no longer needed from DECORATE and therefore deprecated.
SVN r2045 (trunk)
onscreen. In addition, it now uses the whole height available to it. Also,
at lower resolutions, items on the compatibility options menu now cut off
the beginning of the option label rather than the option setting, making
this menu useable where previously it was not.
SVN r2044 (trunk)
flag now restarts the song so that the new looping setting can be applied.
(This was easier than modifying every music handler to support modifying
loop changes on the fly, which seems like overkill.)
SVN r2041 (trunk)
- In mus2midi.cpp, added range checking to MUS_SYSEVENT and MUS_CTRLCHANGE,
and masking for note-off keys, note-on velocities, and program changes.
SVN r2032 (trunk)
- added compatibility option to invert sprite sorting. Apparently Doom.exe
originally sorted them differently than most source port and on some maps
which depends on this it doesn't look right (e.g. Strain MAP13)
SVN r2031 (trunk)
But that's insufficient because it doesn't factor in any subsequent velocity
change that happens between the damaging and the next call to A_FreezeDeathChunks.
- fixed: The TimeFreezer did not freeze other players' controls in a
multiplayer game.
- fixed: DECORATE's 'gravity' property incorrectly messed around with the
NOGRAVITY flag.
- fixed: Hitscan attacks didn't check the puff's replacement for damage types.
SVN r2026 (trunk)
each other. PIT_CheckThing will return true under the following contitions
now:
* It was called from P_Move
* The actor that is blocking the move already overlaps with the monster
that is being moved.
* the move will take the 2 actors further apart.
SVN r2018 (trunk)
properly in letterboxed modes.
- Added another surface to receive a copy of the top back buffer immediately
before it is presented. This effectively produces a copy of the front
buffer without the performance penalty of GetFrontBufferData, so fullscreen
wipe preparation and screenshots are faster now. At lower resolutions,
always copying the backbuffer does incur a slight FPS hit, but it's
practically free at higher resolutions.
SVN r2013 (trunk)
assumed that since the wipes only run at 35 FPS, the time spent DMA'ing
it from system to video memory would be acceptable. Apparently I was wrong.
In particular, updating the same surface several times probably has to
synchronize between each one, making melt particularly slower than it
needs to be.
SVN r2012 (trunk)
The editor number for player start spot 5 is now stored in the game info
so that there's only one place where this check needs to be done.
- Fixed: WIF_NOAUTOAIM only worked for projectiles unlike Skulltag's original
implementation.
SVN r1997 (trunk)