------------------------------------------------------------------------
r711 | graf | 2010-01-05 10:00:23 +0100 (Di, 05. Jan 2010) | 1 line

- Fixed: The player setup menu still drew the cursor at the original Y positions.
------------------------------------------------------------------------
r704 | graf | 2010-01-04 10:06:34 +0100 (Mo, 04. Jan 2010) | 2 lines

- added trimming of transparent sprite borders because having too many such sprites can have
  a significant performance impact, especially on older machines.
------------------------------------------------------------------------
r703 | graf | 2010-01-03 13:42:13 +0100 (So, 03. Jan 2010) | 10 lines

- Update to ZDoom r2096:

- fixed: The player setup menu used the main menu's line spacing which
  for all non-Doom games was too wide.
- fixed: Strife's dialogues cannot use the new options menu code to draw
  themselves so now they use a stripped down version of the old code.
- Replaced I_MSTime with I_FPSTime in node builder timing because basetime
  will not be initialized yet if a map is started directly from the commandline.
- precision fixes in node builder.

------------------------------------------------------------------------
r702 | graf | 2010-01-03 00:15:59 +0100 (So, 03. Jan 2010) | 2 lines

- When doing 2D rendering with camera textures the alpha channel needs to be disabled.

------------------------------------------------------------------------
r701 | graf | 2010-01-02 14:21:07 +0100 (Sa, 02. Jan 2010) | 24 lines

- fixed: Even with precise rendering polyobject lines must be excluded from being split.

Update to ZDoom r2081:
- fixed: Polyobjects could contain segs that weren't flagged as such.
- fixed: The ACS thinker needs its own statnum above all actors. Otherwise
  order of execution is not guaranteed.
- fixed: Only ActorMovers should go into STAT_ACTORMOVER, not all PathFollowers.
- fixed: The floor waggle code used FloatBobOffsets as sine table but this
  only has 64 entries and is not precise enough. It now uses finesine instead.
- fixed: When compositing a multipatch texture any patch that is a multpatch
  texture itself and contains rotations may not be composited directly into
  the destination buffer. This must be done with an intermediate buffer.
- Fixed: Drawing a slider in the options menu did not scale the x-coordinate.
- Fixed: If the alt HUD had to draw negative numbers the minus sign was misplaced
  due to incorrect texture coordinate calculations.
- changed option menu scaling for widescreen modes so that it doesn't scale down
  so quickly. 
- made some error messages in DECORATE that don't affect the parsing non-fatal
  so that the parser can continue to find more problems.

------------------------------------------------------------------------
r700 | graf | 2010-01-02 01:18:03 +0100 (Sa, 02. Jan 2010) | 2 lines

- fixed: Models were sorted into the wrong draw list.

------------------------------------------------------------------------
r699 | graf | 2010-01-01 20:46:15 +0100 (Fr, 01. Jan 2010) | 2 lines

- missed sbarinfo files.

------------------------------------------------------------------------
r698 | graf | 2010-01-01 17:43:08 +0100 (Fr, 01. Jan 2010) | 26 lines

Update to ZDoom r2073:

- Added Blzut3's Solaris patch.
- Fixed: Heretic's Weredragon (Beast) should not have a melee state.

------------------------------------------------------------------------
r696 | graf | 2010-01-01 08:20:23 +0100 (Fr, 01. Jan 2010) | 3 lines

- Version bump to 1.4.0.
- Fixed: Heretic's Weredragon (Beast) should not have a melee state.

------------------------------------------------------------------------
r695 | graf | 2009-12-31 21:50:47 +0100 (Do, 31. Dez 2009) | 1 line


------------------------------------------------------------------------
r694 | graf | 2009-12-31 10:03:02 +0100 (Do, 31. Dez 2009) | 3 lines

- fixed: FastProjectile was missing all sky checks when the projectile's move
  was blocked.

------------------------------------------------------------------------
r693 | graf | 2009-12-31 09:13:58 +0100 (Do, 31. Dez 2009) | 5 lines

- Update to ZDoom r2062:

- Fixed: A_ThrowGrenade used the same code as the old fighter flechette, so
  it was just as broken at aiming up and down.

------------------------------------------------------------------------
r692 | graf | 2009-12-30 20:17:26 +0100 (Mi, 30. Dez 2009) | 2 lines

- needed one more change.

------------------------------------------------------------------------
r691 | graf | 2009-12-30 20:02:20 +0100 (Mi, 30. Dez 2009) | 10 lines

- Fixed 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.

------------------------------------------------------------------------
r690 | graf | 2009-12-30 18:19:22 +0100 (Mi, 30. Dez 2009) | 3 lines

- added some code to discard lines that could block a view into a portal area.
  With this code I can run the Eternity map rf_kerkr.wad without visual glitches.

------------------------------------------------------------------------
r689 | graf | 2009-12-30 13:24:00 +0100 (Mi, 30. Dez 2009) | 6 lines

Update to ZDoom r2059:
- fixed: Movement performed by actor movers was not interpolated because
  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.)

------------------------------------------------------------------------
r688 | graf | 2009-12-30 09:34:06 +0100 (Mi, 30. Dez 2009) | 4 lines

- fixed: Vavoom skyboxes created new textures for their faces instead of using the texture manager.
- fixed: Texture binding didn't check if the texture was still containing valid data.
- fixed: XY-billboarding did not work with the chasecam.

------------------------------------------------------------------------
r687 | graf | 2009-12-30 00:20:51 +0100 (Mi, 30. Dez 2009) | 5 lines

- Added Hexen Flechette pitch fix.
- Added new SetGlobalFogParameters action special to modify the global fog settings at run time:
  SetGlobalFogParameters(FOGP_DENSITY, value);
  SetGlobalFogParameters(FOGP_OUTSIDEDENSITY, value);
  SetGlobalFogParameters(FOGP_SKYFOG, value);
------------------------------------------------------------------------
r686 | graf | 2009-12-29 23:37:48 +0100 (Di, 29. Dez 2009) | 3 lines

- started adding some portal analysis code for better visibility clipping.
  Done so far: Calculate the smallest convex outline of each portal.

------------------------------------------------------------------------
r685 | graf | 2009-12-28 23:42:42 +0100 (Mo, 28. Dez 2009) | 4 lines

- Added full sound definitions for Heretic's ChickenPlayer and Hexen's
  PigPlayer (submitted by NeuralStunner.)
- Added unmorph fix by Gez.

------------------------------------------------------------------------
r684 | graf | 2009-12-28 18:16:58 +0100 (Mo, 28. Dez 2009) | 13 lines

Update to ZDoom r2055:

- merged all portals with the same displacement together. While this provides
  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.

------------------------------------------------------------------------
r683 | graf | 2009-12-28 09:40:53 +0100 (Mo, 28. Dez 2009) | 3 lines

- fixed: hqNx may not be applied to textures with translucency (e.g. shaded alpha textures.)


------------------------------------------------------------------------
r682 | graf | 2009-12-28 09:02:46 +0100 (Mo, 28. Dez 2009) | 5 lines

- fixed: redirected textures did not check their 'masked' bit properly.
  To avoid future problems with complex materials where this information does not
  necessarily match the texture's own setting this is now retrieved via an
  inline method in FMaterial.

------------------------------------------------------------------------
r681 | graf | 2009-12-28 08:14:43 +0100 (Mo, 28. Dez 2009) | 5 lines

Update to ZDoom r2054:

- added Hirogen2's Backpack fix for sv_unlimited_pickup.
- added 'copy portal' line special.

------------------------------------------------------------------------
r680 | graf | 2009-12-28 00:16:47 +0100 (Mo, 28. Dez 2009) | 3 lines

- Added hqnx texture resizing. Due to some inline assembly this will only be
  used by MSVC builds.

------------------------------------------------------------------------
r679 | graf | 2009-12-27 23:43:03 +0100 (So, 27. Dez 2009) | 3 lines

- fixed: Slope things must be processed before creating 3D floors. Otherwise
  the 3D floors are not properly set up if the control sector is affected by a slope thing.

------------------------------------------------------------------------
r678 | graf | 2009-12-27 17:00:21 +0100 (So, 27. Dez 2009) | 3 lines

- added a linedef based method to define portals. Portals defined this way
  still have the same limitations as those defines with the portal things.

------------------------------------------------------------------------
r677 | graf | 2009-12-27 12:45:46 +0100 (So, 27. Dez 2009) | 2 lines

- Minor cleanup.

------------------------------------------------------------------------
r676 | graf | 2009-12-26 08:29:59 +0100 (Sa, 26. Dez 2009) | 2 lines

- crash fix for real this time.

------------------------------------------------------------------------
r675 | graf | 2009-12-26 00:32:40 +0100 (Sa, 26. Dez 2009) | 2 lines

- ZDoom r2050 MF_CORPSE fix.

------------------------------------------------------------------------
r674 | graf | 2009-12-25 17:23:26 +0100 (Fr, 25. Dez 2009) | 2 lines

- fixed usedown code from this morning.

------------------------------------------------------------------------
r673 | graf | 2009-12-25 17:12:57 +0100 (Fr, 25. Dez 2009) | 2 lines

- stuff I forgot last commit.

------------------------------------------------------------------------
r672 | graf | 2009-12-25 13:10:12 +0100 (Fr, 25. Dez 2009) | 38 lines

Update to ZDoom r2047:

- Fixed: Decals could spread to walls which had a decal-less texture or
  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.
- Reintroduced Doom.exe's player_t::usedown variable so that respawning a
  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.
- The options menu no longer scales up so quickly, so it can fit wider text
  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.
- Added a channel parameter to the sector overload of SN_StopSequence() so
  it can be properly paired with calls to SN_StartSequence().
- Fixed: P_CheckPlayerSprites() ignored the MF4_NOSKIN flag.  It now also sets
  the X scale, so switching skins while morphed does not produce weird
  stretching upon unmorphing.
- Fixed: Calling S_ChangeMusic() with the same song but a different looping
  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.)
- Fixed: savepatchsize was declared incorrectly in d_dehacked.cpp:DoInclude().
- Changed AFastProjectile::Effect() so that it sets the spawned trail to face
  same direction as the projectile.
------------------------------------------------------------------------
r671 | graf | 2009-12-25 00:34:10 +0100 (Fr, 25. Dez 2009) | 7 lines

Update to ZDoom r2037:

- fixed: The UDMF blockfloaters flag was misnamed. Changed to match the spec.
- made the initial weave index for A_BishopMissileWeave and A_CStaffMissileSlither
  a configurable actor property.
- added a menu item for snd_channels.
- Extended MF3_SKYEXPLODE to apply to horizon walls as well.
------------------------------------------------------------------------
r670 | graf | 2009-12-25 00:22:25 +0100 (Fr, 25. Dez 2009) | 3 lines

- fixed: Brightmaps were not added to the texture manager.
- fixed: The fog boundary shader was not adjusted for the recent change to fog density handling.

------------------------------------------------------------------------
r669 | graf | 2009-12-23 11:58:17 +0100 (Mi, 23. Dez 2009) | 2 lines

- when using pseudo angles for the clipper any real angle values passed to it need to be converted first.

------------------------------------------------------------------------
r668 | graf | 2009-12-23 09:30:37 +0100 (Mi, 23. Dez 2009) | 5 lines

- changed the clipper to use pseudo angles instead of real ones. These can be calculated much faster.
  The speed of the new code is about the same as the fixed point only R_PointToAngle2 but without any
  of the precision issues associated with this function. This should resolve some of the existing
  automap issues with lines being drawn the player has not seen yet.

------------------------------------------------------------------------
r667 | graf | 2009-12-21 23:01:56 +0100 (Mo, 21. Dez 2009) | 2 lines

- fixed yet another GCC-only bug in GL nodes code.
- fixed: Drawing walls with textures containing translucent parts did not reenable the alpha test afterward.
------------------------------------------------------------------------
r666 | graf | 2009-12-21 17:00:48 +0100 (Mo, 21. Dez 2009) | 8 lines

- removed some hackery that was supposed to circumvent some problems with drawing
  sprites in the non-translucent pass. With the last change it's no longer needed.
- fixed: Sprite sorting with 'smooth sprite edges off' was not properly defined.
- fixed: The fog attribute cannot be cached per shader. It's global so it
  should be cached globally or not at all. Since it makes no speed difference 
  it's not cached at all right now.
- fixed: Application of depth fading and texture glow was in the wrong order.

------------------------------------------------------------------------
r665 | graf | 2009-12-20 00:23:18 +0100 (So, 20. Dez 2009) | 2 lines

- fixed: Weapons were not drawn with special colormap effects.

------------------------------------------------------------------------
r664 | graf | 2009-12-19 11:11:43 +0100 (Sa, 19. Dez 2009) | 12 lines

- make some shader parameters that were uniforms before vertex attributes.
- CopyPlaneIfValid was redundantly redefined in gl_fakeflat.cpp so now
  the GL code uses the original version of this function.

Update to ZDoom r 2033:

- Fixed: It was not possible to set the ammo type of a weapon explicitly to
  'none'.
- A_FreezeDeath() now removes fuzz effects.
- In mus2midi.cpp, added range checking to MUS_SYSEVENT and MUS_CTRLCHANGE,
  and masking for note-off keys, note-on velocities, and program changes.

------------------------------------------------------------------------
r663 | graf | 2009-12-18 21:45:44 +0100 (Fr, 18. Dez 2009) | 2 lines

- switched to the software renderer's formula for sprite depth sorting because it 
  seems to be more stable than the floating point method I used before.
------------------------------------------------------------------------
r662 | graf | 2009-12-18 10:11:54 +0100 (Fr, 18. Dez 2009) | 16 lines

- fixed sprite sorting in GL renderer. It was converting a float to integer
  in the compare function without properly taking care of values <1 which 
  got truncated to 0.

- Update to ZDoom r2031:

- added all known maps requiring inverted sprite sorting to compatibility.txt.
- 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)
- Fixed: Using Transfer_Heights with the SECF_UNDERWATER and
  SECF_FAKEFLOORONLY flags applied the water effect to the ceiling and not
  just the floor.
- Replaced sprite sorting with a stable sort. Performance at the start of
  nuts.wad seems the same.

------------------------------------------------------------------------
r661 | graf | 2009-12-17 15:16:00 +0100 (Do, 17. Dez 2009) | 12 lines

Update to ZDoom r2027:

- Fixed: Morphed players tried endlessly to switch to a weapon they picked up.
- fixed: P_DamageMobj just set an ice corpse's velocity to 0 to make it shatter.
  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.

------------------------------------------------------------------------
r660 | graf | 2009-12-15 21:27:57 +0100 (Di, 15. Dez 2009) | 3 lines

- fixed: The GL renderer didn't advertise its hardware rendering capabilities for some checks.
- fixed: The closed subsector check was outside the loop it was supposed to be in.

------------------------------------------------------------------------
r659 | graf | 2009-12-13 23:26:27 +0100 (So, 13. Dez 2009) | 9 lines

- fixed: old-style DECORATE definitions with non-alphanumeric characters in
  the name produced an error.
- added an additional check to the GL nodes loader to ensure that each subsector is closed.
  If not the nodes will be rebuilt.
- fixed a memory leak in GL nodes code.
- added node caching. The engine will now save nodes it creates if the build takes longer
  than 0.6 seconds so that it doesn't have to recreate them each time the level is started.
  This can be controlled with the 'gl_cachenodes' CVAR.

------------------------------------------------------------------------
r658 | graf | 2009-12-13 10:47:09 +0100 (So, 13. Dez 2009) | 7 lines

Update to ZDoom r2024:

- Added a DMG_NO_FACTOR flag for P_DamageMobj(). A_KillChildren, A_KillMaster,
  and A_KillSiblings now use it.
- Added a damage type parameter to A_KillChildren, A_KillMaster, and
  A_KillSiblings. 

------------------------------------------------------------------------
r657 | graf | 2009-12-13 10:13:29 +0100 (So, 13. Dez 2009) | 5 lines

- changed: Fullbright 3D geometry is now rendered with the default shader. It was still using the fixed function code.
- enabled radial fog and Doom lighting mode for SM3. This will be done by recompiling the shader because the SM4 shader
  uses dynamic branching for this which is too expensive on SM3.
  On SM4 cards recompiling doesn't increase performance so shaders are not recompiled there.

------------------------------------------------------------------------
r656 | graf | 2009-12-13 08:40:55 +0100 (So, 13. Dez 2009) | 1 line


------------------------------------------------------------------------
r655 | graf | 2009-12-11 23:57:34 +0100 (Fr, 11. Dez 2009) | 10 lines

Update to ZDoom r2022:

- fixed: Auto-COMPAT_SHORTTEX for IWADs must be set per IWAD, not in general
  for Doom.
- added autodetection of Harmony's IWAD.
- Added SnailMan's updated language.ita file.
- Fixed: You should still be able to pick up ammo that has a max amount set
  at 0.
- Added a few NULL screen checks.

------------------------------------------------------------------------
r654 | graf | 2009-12-11 23:43:27 +0100 (Fr, 11. Dez 2009) | 1 line

- fixed: For hires replacements on redirected textures the composite texture must be checked, not the patch.
------------------------------------------------------------------------
r653 | graf | 2009-12-09 14:54:41 +0100 (Mi, 09. Dez 2009) | 2 lines

- fixed: Texture gap detection no longer worked because the wall drawing code got the info from the wrong texture.

------------------------------------------------------------------------
r652 | graf | 2009-12-08 18:05:55 +0100 (Di, 08. Dez 2009) | 2 lines

- fixed: Calculating the light level from dynamic lights could overflow to 256 and then truncated to 0.

------------------------------------------------------------------------
r651 | graf | 2009-12-06 23:12:34 +0100 (So, 06. Dez 2009) | 8 lines

- added some code that prevents overlapping monsters from getting stuck in
  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.  

------------------------------------------------------------------------
r650 | graf | 2009-12-06 16:50:46 +0100 (So, 06. Dez 2009) | 3 lines

- fixed: Brightmaps weren't disabled when rendering with a fixed colormap (like Doom's Lite Amp Visor.)
- changed: Warped textures now check the redirect of their source pic. This is useful when the base
  is a single patch MultipatchTexture.
------------------------------------------------------------------------
r649 | graf | 2009-11-29 22:54:47 +0100 (So, 29. Nov 2009) | 2 lines

- version bump.

------------------------------------------------------------------------
r648 | graf | 2009-11-29 18:58:54 +0100 (So, 29. Nov 2009) | 10 lines

- fixed: The ambient light level clamping was accidentally removed.
  Due to this I noticed another glitch: An ambient light level of 0 creates 
  problems in Doom light mode. Since this problem is directly related to 
  the light level being 0 this value is now clamped to a minimum of 1.
- fixed: If the light level after processing is 0 the code that calculates
  the fog parameters divided by 0. Since in floating point this only 
  produces an INF as result instead of an exception it resulted in
  rendering objects fullbright in totally dark areas.


------------------------------------------------------------------------
r647 | graf | 2009-11-29 17:26:11 +0100 (So, 29. Nov 2009) | 2 lines

- preemptive version bump because the broken 1.3.15 was already uploaded.

------------------------------------------------------------------------
r646 | graf | 2009-11-29 17:25:21 +0100 (So, 29. Nov 2009) | 3 lines

- fixed: The code that was supposed to deactivate Doom-mode lighting in the other modes
  never worked. It only became apparent after a recent change to the calculations.

------------------------------------------------------------------------
r645 | graf | 2009-11-29 16:09:57 +0100 (So, 29. Nov 2009) | 2 lines

- fixed: Changing the refresh rate from the console crashed.

------------------------------------------------------------------------
r644 | graf | 2009-11-29 15:36:17 +0100 (So, 29. Nov 2009) | 5 lines

- fixed the sprite lighting bug for real: It was mixing map light levels with OpenGL light levels
  which are different value ranges. To get it right it has to re-convert the GL light level after
  application of dynamic lights to map light level space and use that for all subsequent fog
  calculations.

------------------------------------------------------------------------
r643 | graf | 2009-11-29 13:34:09 +0100 (So, 29. Nov 2009) | 4 lines

- fixed some low level lighting calculaions with Doom lighting mode. They created
  values that are far too large and needed to be clamped to more reasonable values.
- changed: Light level 0 will now be truly light-less. 
- bumped version number.
------------------------------------------------------------------------
r642 | graf | 2009-11-29 12:24:52 +0100 (So, 29. Nov 2009) | 4 lines

- fixed: Line_SetBlocking and Line_SetTextureScale were not in the list
  of action specials used by DECORATE or MAPINFO.
- fixed: Teleport_NoStop was not in the line special function table.

------------------------------------------------------------------------
r641 | graf | 2009-11-29 09:54:38 +0100 (So, 29. Nov 2009) | 4 lines

- fixed: When rendering decals on mirrors the texture mode could get stuck at TM_MASK
  resulting in untextured geometry being rendered. After drawing the decals the calling
  function needs to reset it to TM_MODULATE.

------------------------------------------------------------------------
r640 | graf | 2009-11-29 09:07:25 +0100 (So, 29. Nov 2009) | 11 lines

- cleaned GL system interface code.
- The frame buffer now calls the system's gamma ramp functions directly instead of going through
  the GL interface layer.
- fixed: The dummy window class that is being used to test OpenGL was not properly unregistered.
- GZDoom now requires OpenGL 1.2. 1.1 is lacking some functionality that is required to even start
  the engine. This was causing crashes instead of meaningful error messages when Windows fell back
  to the software implementation that's only 1.1.
- delayed checking of GL extensions in Windows until the actual rendering context is active. 
  I got some reports where the initial dummy context was not the same as the later one and 
  several checks failed as a result.
- WGL extensions are no longer collected because they aren't used anywhere
------------------------------------------------------------------------
r639 | graf | 2009-11-29 07:56:05 +0100 (So, 29. Nov 2009) | 10 lines

- Fixed: The FPS meter cannot use I_MSTime(), because if the game is started
  with +vid_fps 1, it can need the time before the timer is ready to start.
- Initialize TempRenderTexture and the back buffer to black upon creation.
- Fixed: Windowed mode always needs to draw to the temporary surface, even
  when not gamma correcting, so that D3DFB::GetCurrentScreen() can read from
  it.
- Use the spawned class's scale as default for ScriptedMarine instead of
  DoomPlayer.


------------------------------------------------------------------------
r638 | graf | 2009-11-28 08:49:53 +0100 (Sa, 28. Nov 2009) | 6 lines

Update to ZDoom r2005:

- fixed: Morph weapons weren't destroyed because the code checked for 
  them in the unmorphed player class.
- fixed: With padding the largest texture to fit into a page is 254x254.

------------------------------------------------------------------------
r637 | graf | 2009-11-27 14:23:22 +0100 (Fr, 27. Nov 2009) | 4 lines

- fixed: The charge attack of Heretic's imp is not precisely the same
  as A_SkullAttack with a different speed so A_ImpMsAttack has been
  reinstated.

------------------------------------------------------------------------
r636 | graf | 2009-11-27 00:03:27 +0100 (Fr, 27. Nov 2009) | 21 lines

- Update to ZDoom r2002:

- Make the palette indexes used by FRemapTable subject to the global remap
  table, just as the images they translate are.
- Added MF4_ALLOWPARTICLES checks to blood spawning code.
- Fixed: EV_DoDonut, EV_DoElevator and EV_StartWaggle did not to any 0-tag
  checks.
- Fixed: Doom line type 44 (lower ceiling to 8 above floor) must halt
  movement if blocked which essentially means it acts like a Hexen-style
  crusher.
- Fixed: Not all places checking for player start spots did it correctly.
  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.
- Added Windows 7 (aka Windows NT 6.1) and Server 2008 identification to
  I_DetectOS().
- Fixed: ArtiPork did not use all its sprite frames.
- Fixed: FWadCollection::AddFile() did not call FixPathSeperator(), so
  savegames would hold the full file path for wads that had been specified
  with backslash characters, because GetWadName() would not trim off the
  path.
------------------------------------------------------------------------
r635 | graf | 2009-11-25 23:29:06 +0100 (Mi, 25. Nov 2009) | 3 lines

- fixed: Sprites from a fullbright frame with a brightmap disabling fullbright did not Process
  dynamic lights touching them.

------------------------------------------------------------------------
r634 | graf | 2009-11-22 00:00:41 +0100 (So, 22. Nov 2009) | 2 lines

- extended Doom map format linedef translator so that it also handles the flags.

------------------------------------------------------------------------
r633 | graf | 2009-11-20 22:22:25 +0100 (Fr, 20. Nov 2009) | 3 lines

- missed one toint occurence.
- optimized texture positioning code for walls with new float conversion routines.

------------------------------------------------------------------------
r632 | graf | 2009-11-20 10:47:15 +0100 (Fr, 20. Nov 2009) | 14 lines

- got rid of several redundant conversion macros in the GL code. It uses the defaults from the main engine now.
- Update to ZDoom r1991:

- Replaced toint/quickertoint with the portable routines from xs_Float.h. The
  former used fistp, which is not portable across platforms, so cannot be
  used in the play simulation. They were only suitable for the renderer.
  xs_Float.h also has a very fast float->fixed conversion, so FLOAT2FIXED
  uses that now.
  (And I also learned that the FPU's round to nearest is not the rounding I
  learned in grade school but actually Banker's Rounding. I had no idea.)
  (Also, also, the only thing that could have made quickertoint faster than
  toint was that it stored a 32-bit int. I never timed them, and I doubt in
  practice there was any real difference between the two.)

------------------------------------------------------------------------
r631 | graf | 2009-11-19 08:22:12 +0100 (Do, 19. Nov 2009) | 2 lines

- R_PointToAngle was still not correct.

------------------------------------------------------------------------
r630 | graf | 2009-11-18 18:29:35 +0100 (Mi, 18. Nov 2009) | 2 lines

- fixed: Conversion to floating point for FraggleScript variables truncated the value to an integer before making it a float.

------------------------------------------------------------------------
r629 | graf | 2009-11-18 18:21:27 +0100 (Mi, 18. Nov 2009) | 2 lines

- version bump.

------------------------------------------------------------------------
r628 | graf | 2009-11-18 07:52:36 +0100 (Mi, 18. Nov 2009) | 13 lines

- Update to ZDoom r1987:

- Fixed two bugs in FMODSoundRenderer::HandleChannelDelay():
  * Looping sounds that have been playing for a very long time, were evicted,
    and then were restarted need to have their positions clamped to lie
    within the bounds of the sounds. If we try to set a start position very
    far beyond the end, it will overflow inside FMOD and not work.
  * A start time of 0 is not actually valid and means the sound was never
    assigned a start time.
- The latter bug also reveals a problem with starting looped sounds evicted:
  They need to be assigned a start time so if they should have the opportunity
  to start later, they will be properly synchronized.

------------------------------------------------------------------------
r627 | graf | 2009-11-18 00:24:59 +0100 (Mi, 18. Nov 2009) | 8 lines

Update to ZDoom r1986:

- fixed: P_NowayTraverse was called with a trace distance of 128 instead of
  the 64 that should have been used.
- reverted the change that makes 0-damage projectiles call P_DamageMobj.
  Both Hexen and Heretic depend on such projectiles not doing it as do many
  mods that create snow/rain effects plus any terrain splash mod.

------------------------------------------------------------------------
r626 | graf | 2009-11-17 14:53:33 +0100 (Di, 17. Nov 2009) | 5 lines

- fixed: R_PointToAngle could overflow with very long vectors passed to 
  it. This caused rendering bugs on some maps. (Interestingly the only
  other port having a safeguard for this in place was PrBoom.)
- fixed: The spheremap shader had an incorrect vector assignment and didn't compile.

------------------------------------------------------------------------
r625 | graf | 2009-11-15 15:34:36 +0100 (So, 15. Nov 2009) | 4 lines

- fixed: fullscreen images with texture scaling used the unscaled size for
  positioning. To avoid future problems with them I added a new DTA_Fullscreen
  option for DrawTexture.

------------------------------------------------------------------------
r624 | graf | 2009-11-15 10:47:42 +0100 (So, 15. Nov 2009) | 4 lines

- fixed: The shader compile code passed the #defines only to the fragment shader but not to the vertex shader.
- fixed: The sky offset for textures needs to be initialized to 0.
- update to ZDoom r1982

------------------------------------------------------------------------
r623 | graf | 2009-11-13 22:22:08 +0100 (Fr, 13. Nov 2009) | 2 lines

- added a 'skyoffset' option in ANIMDEFS that allows to adjust the y-position of a sky.

------------------------------------------------------------------------
r622 | graf | 2009-11-13 18:09:50 +0100 (Fr, 13. Nov 2009) | 5 lines

- complete overhaul of sky positioning code to make it work for all sizes >= 200.
- added skyrotatevector2.
- Update to ZDoom r1976


------------------------------------------------------------------------
r621 | graf | 2009-11-12 12:44:04 +0100 (Do, 12. Nov 2009) | 2 lines

- reverted timer code because it doesn't work.

------------------------------------------------------------------------
r620 | graf | 2009-11-12 10:57:50 +0100 (Do, 12. Nov 2009) | 16 lines

- Update to ZDoom r1974:

- Modified the event-driven ticks to use the same code for calculating the
  time as the polled timer so that the timer does not start running until the
  first time it is used.
- Removed the srand() call from D_DoomMain(), because it started the game
  timer running prematurely, and we never call rand() anywhere. (Not to
  mention, even if we did use rand(), always seeding it with 0 is rather
  pointless.)
- Fixed: The framerate was not capped before starting a game.
- Removed the one embedded DeHackEd lump restriction.
- Fixed: nofreeaim in P_SpawnPlayerMissile() was broken.
- Fixed: MBF sky Y offsets were ignored. X offsets should also be applied to
  the sky cylinder, not the screen like Hexen scrolling skies.


------------------------------------------------------------------------
r619 | graf | 2009-11-12 00:20:35 +0100 (Do, 12. Nov 2009) | 2 lines

- fixed: The mirror flag of MBF skies was not used.

------------------------------------------------------------------------
r618 | graf | 2009-11-11 16:11:53 +0100 (Mi, 11. Nov 2009) | 4 lines

- disabled sky stretching in GL renderer because it's not necessary and creates more problems than it solves.
- Update to ZDoom r1969.


------------------------------------------------------------------------
r617 | graf | 2009-11-09 16:04:27 +0100 (Mo, 09. Nov 2009) | 3 lines

- fixed: GLRenderer::DrawTexture aborted with non-standard DTA_WindowWidth/DTA_WindowHeight values.
  This has never been implemented since the ZDoomGL days but the recent change to floating point caused
  this check to abort for valid textures.
------------------------------------------------------------------------
r616 | graf | 2009-11-09 12:52:40 +0100 (Mo, 09. Nov 2009) | 8 lines

- added a menu option for setting vertex buffer use.
- removed a large number of performance timer calls. Much can be done by subtracting timer B's value 
  from timer A's if B always gets called when A is active. Previously A was stopped each time for this.
- Reinstated the original R_PointToAngle function and renamed the former one to R_PointToAnglePrecise
  which is only used when precise angles are needed for view clipping. Many things, in particular
  clipping of nodes' bounding boxes can also be done with the less precise but much faster version
  originally implemented in Doom. 

------------------------------------------------------------------------
r615 | graf | 2009-11-08 07:53:15 +0100 (So, 08. Nov 2009) | 9 lines

- Update to ZDoom r1966:

- Fixed: R_GetOneSkyColumn() and R_GetTwoSkyColumns are mulscaling an
  unsigned integer that can use all 32 bits. They must therefore use
  the unsigned mul instruction rather than the signed imul instruction.
- Fixed several signed/unsigned comparison and possibly uninitialized
  variable warnings flagged by GCC.


------------------------------------------------------------------------
r614 | graf | 2009-11-07 12:43:22 +0100 (Sa, 07. Nov 2009) | 3 lines

- version bump.
- removed some dead code.

------------------------------------------------------------------------
r613 | graf | 2009-11-07 12:25:41 +0100 (Sa, 07. Nov 2009) | 2 lines

- Undid SetWallCoordinates change because it didn't work with some slope constructs. Possibly precision errors.

------------------------------------------------------------------------
r612 | graf | 2009-11-07 10:43:50 +0100 (Sa, 07. Nov 2009) | 6 lines

- found a nice #pragma for MSVC that makes the FraggleScript initialization code 8kb shorter.
- fixed: Sorting of the draw lists by texture did not take clamping into account. Changing
  this gave another mild performance gain.
- Made GLWall::SetWallCoordinates floating point only.
- fixed: FGLRenderer::DrawBlend was missing a NULL pointer check for the player actor.

------------------------------------------------------------------------
r611 | graf | 2009-11-05 12:14:40 +0100 (Do, 05. Nov 2009) | 3 lines

- fixed 'stat rendertimes'.
- version bump.

------------------------------------------------------------------------
r609 | graf | 2009-11-05 09:04:08 +0100 (Do, 05. Nov 2009) | 2 lines

- added a bench CCMD so performance testing can be done without screenshots.

------------------------------------------------------------------------
r608 | graf | 2009-11-05 00:57:37 +0100 (Do, 05. Nov 2009) | 1 line


------------------------------------------------------------------------
r607 | graf | 2009-11-04 23:54:21 +0100 (Mi, 04. Nov 2009) | 2 lines

- fixed: #version still wasn't the first thing in the shader source.

------------------------------------------------------------------------
r606 | graf | 2009-11-04 23:44:47 +0100 (Mi, 04. Nov 2009) | 1 line


------------------------------------------------------------------------
r605 | graf | 2009-11-04 23:44:31 +0100 (Mi, 04. Nov 2009) | 4 lines

- fixed: After drawing the first sky layer the rotation matrix needs to be reset.
- disabled selective use of texture matrix for ATI because it doesn't work there. Looks like a driver bug...
- added exception handler to framebuffer setup as recommended by entryway.

------------------------------------------------------------------------
r604 | graf | 2009-11-04 08:29:25 +0100 (Mi, 04. Nov 2009) | 13 lines

- added a few glMatrixMode(GL_MODELVIEW) commands to the flat rotation code
  to ensure that the matrix mode does not get stuck at GL_TEXTURE.

Update to ZDoom e1962:

- Fixed: S_RestartSound() cleared the evicted flag even if the sound
  was not restarted because it was too close to too many other identical
  sounds that were already playing.
- Added virtual status and audibility to the noise debug display.
- Added a command line option -warpwipe to perform the screen wipe if you
  start with -warp or +map.


------------------------------------------------------------------------
r603 | graf | 2009-11-03 22:40:16 +0100 (Di, 03. Nov 2009) | 1 line

- version bump
------------------------------------------------------------------------
r602 | graf | 2009-11-03 22:38:51 +0100 (Di, 03. Nov 2009) | 2 lines

- added brightmaps for Arch-vile

------------------------------------------------------------------------
r601 | graf | 2009-11-03 22:32:27 +0100 (Di, 03. Nov 2009) | 6 lines

- fixed: The texture matrix was updated for each plane, not just when it was needed.
- disabled use of vertex buffer on ATI cards. Test results show that mixing VBO and
  immediate mode does not work well on ATI.
- Moved a few GL settings into the render state so that they can be set only when
  changed.

------------------------------------------------------------------------
r599 | graf | 2009-11-02 08:53:09 +0100 (Mo, 02. Nov 2009) | 2 lines

- added external declaration for vid_vsync to gl_framebuffer.cpp.

------------------------------------------------------------------------
r597 | graf | 2009-11-01 19:16:19 +0100 (So, 01. Nov 2009) | 2 lines

- version bump

------------------------------------------------------------------------
r596 | graf | 2009-11-01 15:31:19 +0100 (So, 01. Nov 2009) | 2 lines

- fixed: The VSync setting was not applied after creating the screen buffer.

------------------------------------------------------------------------
r595 | graf | 2009-11-01 11:59:52 +0100 (So, 01. Nov 2009) | 2 lines

- fixed: Software texture warping recreated the texture each time it was used, not just each frame.

------------------------------------------------------------------------
r594 | graf | 2009-11-01 08:23:43 +0100 (So, 01. Nov 2009) | 22 lines

Update to ZDoom r 1957:

- Changed all coordinates for DrawTexture() to floating point so that the
  player sprites will retain the same precision they had when they were
  rendered as part of the 3D view. (needed for propery alignment of flashes
  on top of weapon sprites) It worked just fine for D3D, but software
  rendering was another matter. I consequently did battle with imprecisions
  in the whole masked texture drawing routines that had previously been
  partially masked by only drawing on whole pixel boundaries. Particularly,
  the tops of posts are calculated by multiplying by spryscale, and the
  texture mapping coordinates are calculated by multiplying by dc_iscale
  (where dc_iscale = 1 / spryscale). Since these are both 16.16 fixed point
  values, there is a significant variance. For best results, the drawing
  routines should only use one of these values, but that would mean
  introducing division into the inner loop. If the division removed the
  necessity for the fudge code in R_DrawMaskedColumn(), would it be worth it?
  Or would the divide be slower than the fudging? Or would I be better off
  doing it like Build and using transparent pixel checks instead, not
  bothering with skipping transparent areas? For now, I chop off the
  fractional part of the top coordinate for software drawing, since it was
  the easiest thing to do (even if it wasn't the most correct thing to do).

------------------------------------------------------------------------
r593 | graf | 2009-10-31 23:55:36 +0100 (Sa, 31. Okt 2009) | 2 lines

- disabled VBO updating for some older ATI cards. They seem to have problems with how it is done.

------------------------------------------------------------------------
r592 | graf | 2009-10-31 16:58:08 +0100 (Sa, 31. Okt 2009) | 3 lines

- fixed a logic bug in the portal code. There is a threshold of 2 portals above which
  occlusion query is used. But the code counted some separating NULL pointers so
  the occlusion query was triggered far too often. 
------------------------------------------------------------------------
r591 | graf | 2009-10-31 10:10:29 +0100 (Sa, 31. Okt 2009) | 6 lines

- Found out that just omitting the glFinish call is not working glitch-free. I reorganized the code so that the
  glFinish/SwapBuffers call is delayed until the latest possible moment which is after scene processing for the
  next frame is complete and right before actual rendering starts. This does not show any obvious problems but 
  it still gives almost the same performance gains as omitting glFinish.


------------------------------------------------------------------------
r590 | graf | 2009-10-31 09:00:40 +0100 (Sa, 31. Okt 2009) | 2 lines

- VBO test code.

------------------------------------------------------------------------
r589 | graf | 2009-10-31 00:13:58 +0100 (Sa, 31. Okt 2009) | 2 lines

- fixed: gl cleanup code needs a NULL pointer check for vertex array.

------------------------------------------------------------------------
r587 | graf | 2009-10-30 23:44:31 +0100 (Fr, 30. Okt 2009) | 2 lines

- disabled VBO when GL_ARB_map_buffer_range not present.

------------------------------------------------------------------------
r586 | graf | 2009-10-30 12:18:39 +0100 (Fr, 30. Okt 2009) | 15 lines

- Update to ZDoom r1954:

- Fixed: Sprites and decals that are drawn with addition must fade to black.
- Make TranslateToStartSpot() set the new sector references for a polyobj's
  walls so that P_CheckSwitchRange() will work with them.
- Fixed: An unspecified save_dir will now save to the program directory on
  Windows. (Other operating systems already use the user's home directory
  instead.)
- Fixed: S_EvictAllChannels() must replace the channel's start time with its
  position when evicting sounds, because restarting the sound system causes
  the DSP clock to restart at 0, so start times that were recorded before
  the reset are no longer applicable after the reset.
- Fixed: S_StopChannel() always set the channel's actor to NULL, eliminating
  origin information when resetting the sound system.

------------------------------------------------------------------------
r585 | graf | 2009-10-30 12:13:29 +0100 (Fr, 30. Okt 2009) | 4 lines

- removed glFinish call from OpenGLFrameBuffer::Update. This caused the CPU to wait for
  all graphics to be rendered which isn't necessary. Instead we can let the GPU run in
  parallel to the next frame's setup and increase performance this way.

------------------------------------------------------------------------
r584 | graf | 2009-10-29 07:57:21 +0100 (Do, 29. Okt 2009) | 3 lines

- took #version directive out of the shader source. It now gets prepended by the compiling code
  because ATI does not accept it inside #ifdefs.

------------------------------------------------------------------------
r583 | graf | 2009-10-29 07:43:20 +0100 (Do, 29. Okt 2009) | 8 lines

Update to ZDoom r1947:

- Added Gez's patch for IWAD detection of Blasphemer and Action Doom 2.
- Fixed: 0 damage projectiles did not call P_DamageMobj.
- Fixed: Do not exit P_DamageMobj early if damage is 0, so we can still get
  the side effects from it. PainThreshold also needs to be inclusive, as
  the docs already state.

------------------------------------------------------------------------
r581 | graf | 2009-10-28 21:14:24 +0100 (Mi, 28. Okt 2009) | 30 lines

- fixed: Calculating sector heights with transparent door hacks was wrong.
- fixed: Sector height was wrong for sectors that have a slope transfer for
  a horizontal plane.
- better error reporting for shader compile errors.


Update to ZDoom r1942:

- Changes to both A_MonsterRail() and A_CustomRailgun(): Save actor's pitch,
  use a larger aiming range, ignore non-targets in P_AimLineAttack(), and
  aim at the target anyway even if P_AimLineAttack() decides it has no
  chance of hitting.
- Added another parameter to P_AimLineAttack(): A target to be aimed at. If
  this is non-NULL, then all actors between the shooter and the target will
  be ignored.
- Added new sound sequence ACS functions:
    SoundSequenceOnActor(int tid, string seqname);
    SoundSequenceOnSector(int tag, string seqname, int location);
    SoundSequenceOnPolyobj(int polynum, string seqname);
  SoundSequenceOnSector takes an extra parameter that specifies where in the
  sector the sound comes from (floor, ceiling, interior, or all of it). See
  the SECSEQ defines in zdefs.acs.
- Fixed: R_RenderDecal() must save various Wall globals, because the originals
  may still be needed. In particular, when drawing a seg with a midtexture is
  split by foreground geometry, the first drawseg generated from it will have
  the correct WallSZ1,2 values, but subsequent ones will have whatever
  R_RenderDecal() left behind. These values are used to calculate the upper
  and lower bounds of the midtexture. (Ironically, my work to Build-ify things
  had done away with these globals, but that's gone now.)

------------------------------------------------------------------------
r580 | graf | 2009-10-26 00:12:49 +0100 (Mo, 26. Okt 2009) | 2 lines

- fixed damage calculation for OLDRADIUSDMG case of P_RadiusAttack.

------------------------------------------------------------------------
r579 | graf | 2009-10-25 20:40:34 +0100 (So, 25. Okt 2009) | 2 lines

- fixed: sector_t::GetHeightSec checked the wrong MoreFlags.

------------------------------------------------------------------------
r578 | graf | 2009-10-25 16:36:52 +0100 (So, 25. Okt 2009) | 2 lines

- version bump to 1.3.05

------------------------------------------------------------------------
r577 | graf | 2009-10-25 16:31:09 +0100 (So, 25. Okt 2009) | 15 lines

- added: DECORATE now allows definitions of dynamic light attachments per state.
  These are fully inheritable by subclasses unlike lights defined in GLDEFS.
  The light itself still needs to defined the old way in GLDEFS though. It's only the 
  attachment that can now be done in DECORATE.

Update to ZDoom r1935:

- Removed the Actor uservar array and replaced it with user-defined variables.
  A_SetUserVar/SetUserVariable/GetUserVariable now take a variable name
  instead of an array index. A_SetUserArray/SetUserArray/GetUserArray
  have been added to access elements in user-defined arrays.
- Rewrote wide sky texture scaling again. This time, it should work for any
  size textures at any scale. I also tried doing sky scrolling on the sky
  cylinder, but that didn't look so good, so I left it in screen space.

------------------------------------------------------------------------
r576 | graf | 2009-10-24 09:57:30 +0200 (Sa, 24. Okt 2009) | 2 lines

- made some changes to the lighting calculations for weapons so that the chaingun's fullbright flash state looks better.

------------------------------------------------------------------------
r575 | graf | 2009-10-24 09:45:12 +0200 (Sa, 24. Okt 2009) | 2 lines

- forgot one file.

------------------------------------------------------------------------
r574 | graf | 2009-10-24 09:37:26 +0200 (Sa, 24. Okt 2009) | 3 lines

- fixed: Translucent planes need to keep their z-position for sorting translucent geometry.
- fixed: The z-offset for floors of transparent door hacks was not used.

------------------------------------------------------------------------
r573 | graf | 2009-10-24 08:56:15 +0200 (Sa, 24. Okt 2009) | 5 lines

Update to ZDoom r1931:

- Fixed: When giving completely new ammo, the backpack did not clamp the
  amount given to the ammo's max amount.

------------------------------------------------------------------------
r572 | graf | 2009-10-23 18:31:22 +0200 (Fr, 23. Okt 2009) | 2 lines

- Seems I missed one...

------------------------------------------------------------------------
r571 | graf | 2009-10-23 18:16:10 +0200 (Fr, 23. Okt 2009) | 2 lines

- fixed a few incorrect Heretic light definitions.

------------------------------------------------------------------------
r569 | graf | 2009-10-22 00:17:36 +0200 (Do, 22. Okt 2009) | 4 lines

- found one major opportunity for optimization: Changing clamping settings for textures is extremely expensive.
  As a consequence there will now be multiple hardware textures for the same game texture in different clamping modes.
  Depending on the current view this can boost performance by more than 10%.

------------------------------------------------------------------------
r568 | graf | 2009-10-20 23:35:53 +0200 (Di, 20. Okt 2009) | 3 lines

- fixed: FGLRenderer::FlatFill didn't set the light color to white.
- fixed: Texture composition was not functionally identical between FBitmap and FGLBitmap classes.

------------------------------------------------------------------------
r567 | graf | 2009-10-20 18:53:38 +0200 (Di, 20. Okt 2009) | 2 lines

- fixed: The light amp effect did not blink when the powerup expired.

------------------------------------------------------------------------
r566 | graf | 2009-10-19 22:20:45 +0200 (Mo, 19. Okt 2009) | 2 lines

- version bump

------------------------------------------------------------------------
r565 | graf | 2009-10-19 22:15:13 +0200 (Mo, 19. Okt 2009) | 2 lines

- fixed: When merging planes for sector stacks the code must check for Transfer_Heights.

------------------------------------------------------------------------
r564 | graf | 2009-10-19 10:34:21 +0200 (Mo, 19. Okt 2009) | 3 lines

- Improvements to sky positioning.
- added a few NULL pointer checks to level deinit code.

------------------------------------------------------------------------
r563 | graf | 2009-10-18 22:41:55 +0200 (So, 18. Okt 2009) | 2 lines

- Fixed weapon sprite positioning with unscaled status bars.

------------------------------------------------------------------------
r561 | graf | 2009-10-18 19:44:53 +0200 (So, 18. Okt 2009) | 4 lines

- fixed: The alpha channel of translucent textures must be disabled on one-sided walls.
- fixed: Camera textures never initialized their translucency status.
- fixed: The GL texture classes set up incorrect references to the owning texture.

------------------------------------------------------------------------
r560 | graf | 2009-10-18 16:09:37 +0200 (So, 18. Okt 2009) | 6 lines

- Update to ZDoom r1928:

- fixed: FMultiPatchTexture::MakeTexture was missing a range check for the
  special colormap index.


------------------------------------------------------------------------
r559 | graf | 2009-10-18 13:01:08 +0200 (So, 18. Okt 2009) | 2 lines

- fixed: Portals that get rendered without depth buffer need to set the portal's depth 
  information in the stencil pass because it's the only pass that's done for them.
------------------------------------------------------------------------
r558 | graf | 2009-10-18 11:11:32 +0200 (So, 18. Okt 2009) | 4 lines

- fixed fog application for particles.
- added gl_sort_textures CVAR for performance testing.
- fixed: Weapon sprites with translucent parts need to disable alpha testing.

------------------------------------------------------------------------
r557 | graf | 2009-10-17 23:58:32 +0200 (Sa, 17. Okt 2009) | 5 lines

- Converted most of the texture coordinate calculations to floating point to avoid overflows
  with scrolling textures on walls.
- fixed: Decals with additive translucency need to be drawn without fog color.
- Added texture coordinate clamping to wall code so that all coordinates are always greater than 0.

------------------------------------------------------------------------
r555 | graf | 2009-10-17 19:16:34 +0200 (Sa, 17. Okt 2009) | 3 lines

- fixed: Automatic brightmap textures should not have names.
- fixed: Setting a glow color switched the green and blue component of the color.

------------------------------------------------------------------------
r554 | graf | 2009-10-17 18:33:44 +0200 (Sa, 17. Okt 2009) | 12 lines

Update to ZDoom r1927:

- Fixed: 3DMidtex checks were treating the Null texture as a valid texture.
- Fixed: The rail sound's position was not clamped to the actual range between
  the trail's start and end point.
- Fixed: Explosions no longer caused splashes.
- Fixed: Copying translations to lower decals had the shade color check wrong.
- Fixed: Waggling floors did not moved attached geometry.
- Cleaned up p_floor.cpp so that related parts of the code are grouped together.
- fixed: The translation addition broke parsing of palette index based translations.


------------------------------------------------------------------------
r553 | graf | 2009-10-17 09:44:31 +0200 (Sa, 17. Okt 2009) | 3 lines

- improved underwater lighting for sprites.
- fixed: The translation addition broke parsing of palette index based translations.
- fixed: Fullbright application for weapons did not clear the light color.
------------------------------------------------------------------------
r551 | graf | 2009-10-16 23:59:10 +0200 (Fr, 16. Okt 2009) | 2 lines

- version bump.

------------------------------------------------------------------------
r550 | graf | 2009-10-16 23:49:06 +0200 (Fr, 16. Okt 2009) | 3 lines

- fixed: Additive translucency was not disabled for sloped 3D floors.
- fixed: Texture scaling must be tracked by the material class, not the texture container as it was before.

------------------------------------------------------------------------
r549 | graf | 2009-10-16 18:17:24 +0200 (Fr, 16. Okt 2009) | 15 lines

Update to ZDoom r1921:

- added 'defaultterrain' option to terrain parser for mods that want to have
  a different default terrain than a generic solid surface.
- added format char processing to A_Print(Bold) and all printable messages
  that can be defined in DECORATE.
- Fixed: The railgun code ignored MF3_ALWAYSPUFF.
- added desaturated translations.
- added optional state parameters to A_ReFire and A_GunFlash and A_CountdownArg.
- added ACS CheckActorClass function
- fixed: When a blasted actor collided with another one this other actor's
  DONTBLAST flag was not checked.
- added a global DamageFactor actor property. All damage this actor takes is multiplied
  by this factor in addition to damage type specific damage factors.
- added better earthquake functions for ACS and DECORATE.
------------------------------------------------------------------------
r548 | graf | 2009-10-16 00:58:36 +0200 (Fr, 16. Okt 2009) | 2 lines

- fixed some uninitialized variables in the texture data.

------------------------------------------------------------------------
r547 | graf | 2009-10-14 21:59:37 +0200 (Mi, 14. Okt 2009) | 2 lines

- removed some non-functional test code.

------------------------------------------------------------------------
r546 | graf | 2009-10-14 18:45:34 +0200 (Mi, 14. Okt 2009) | 1 line

- debug stuff
------------------------------------------------------------------------
r545 | graf | 2009-10-13 22:48:26 +0200 (Di, 13. Okt 2009) | 2 lines

- CMakeLists update.

------------------------------------------------------------------------
r544 | graf | 2009-10-13 22:47:08 +0200 (Di, 13. Okt 2009) | 11 lines

- added GLDEFS support for additional hardware shaders. They have to follow the same design as the warping functions.
  I added an additional shader function, called func_wavex.fp for demonstration purposes.
  Hardware shaders have to be desjgned as follows:

hardwareshader floor4_8 
{
	shader "shaders/glsl/func_wavex.fp"
	speed 1.4
}


------------------------------------------------------------------------
r543 | graf | 2009-10-12 23:17:34 +0200 (Mo, 12. Okt 2009) | 6 lines

- merged vertex shader sources into one file.
- Started work on supporting ZDoomGL's texture shaders.
- fixed support check for shader based dynamic lights.
- brightmaps are now managed by the texture manager to avoid creating redundant textures for ones that are used multiple times.
- The GL texture manager now can resolve texture redirects.

------------------------------------------------------------------------
r542 | graf | 2009-10-11 23:00:50 +0200 (So, 11. Okt 2009) | 3 lines

- disabled forced additive dynamic lights when shader light is on.
  The shader can easily handle proper light and fog simultaneously and 
  it looks much better like this,
------------------------------------------------------------------------
r541 | graf | 2009-10-11 22:05:18 +0200 (So, 11. Okt 2009) | 6 lines

Update to ZDoom r1909:

- Added MF6_NOTRIGGER flag that disables all line actions for an actor.

Also added the missing wadsrc files for last update.

------------------------------------------------------------------------
r540 | graf | 2009-10-10 15:11:13 +0200 (Sa, 10. Okt 2009) | 2 lines

- Added MF6_NOTRIGGER flag that disables all line actions for an actor.

------------------------------------------------------------------------
r539 | graf | 2009-10-10 13:37:36 +0200 (Sa, 10. Okt 2009) | 9 lines

Update to ZDoom r1905:

- Added Gez's seeker missile submission.
- Added Gez's thing activation submission.
- added a NULL pointer check to fog spawning in unmorphing code.
- fixed: frozen corpses need to be treated as solid by z-movement code.
- fixed: AAmbientSound::Serialize was adjusting its timer value for savegames
  even when it was set to a 'don't check' value.

------------------------------------------------------------------------
r538 | graf | 2009-10-10 13:20:50 +0200 (Sa, 10. Okt 2009) | 7 lines

- changed the screen wipe code to use the global render state instead of disabling it and doing its own thing.
- fixed: When a hardware texture gets deleted it must unbind itself from all texture units. Otherwise the
  code may assume that a deleted texture is still bound. This was most obvious with the burn wiper if
  it was called twice in a row with no textures being created in between.
- fixed: The render state must be applied for a sky dome's cap and the actual walls separately.
- fixed: Light on side calculation for shader based dynamic lights on 3D floors was wrong.

------------------------------------------------------------------------
r537 | graf | 2009-10-08 22:27:18 +0200 (Do, 08. Okt 2009) | 3 lines

- Added a PainThreshold actor property.
- fixed: Teleport_EndGame did not set the end sequence name properly.

------------------------------------------------------------------------
r536 | graf | 2009-10-08 22:22:20 +0200 (Do, 08. Okt 2009) | 2 lines

- fixed: sorting for translucent models did not work because they never set their screen depth.

------------------------------------------------------------------------
r535 | graf | 2009-10-08 09:31:40 +0200 (Do, 08. Okt 2009) | 3 lines

- fixed: Teleport_EndGame did not set the end sequence name properly.
- fixed: The light amplification colormap value must not be passed to the texture manager.

------------------------------------------------------------------------
r534 | graf | 2009-10-07 23:55:04 +0200 (Mi, 07. Okt 2009) | 2 lines

- added new menu option for shader lights and cleaned up the OpenGL menu a bit.

------------------------------------------------------------------------
r533 | graf | 2009-10-07 23:43:31 +0200 (Mi, 07. Okt 2009) | 2 lines

- there were still references to an undefined variable.

------------------------------------------------------------------------
r532 | graf | 2009-10-07 23:29:19 +0200 (Mi, 07. Okt 2009) | 2 lines

- fixed: fixed colormaps did not work anymore. Apparently OpenGL cannot load a 3 element value into a 4 element vector.

------------------------------------------------------------------------
r531 | graf | 2009-10-07 20:01:45 +0200 (Mi, 07. Okt 2009) | 2 lines

- first version of dynamic light shader working.

------------------------------------------------------------------------
r530 | graf | 2009-10-07 14:45:34 +0200 (Mi, 07. Okt 2009) | 2 lines

- Cleanup of shader maintenance code.

------------------------------------------------------------------------
r529 | graf | 2009-10-06 23:14:59 +0200 (Di, 06. Okt 2009) | 1 line

- added a shader for the sphere map effect on mirrors.
------------------------------------------------------------------------
r528 | graf | 2009-10-06 19:57:36 +0200 (Di, 06. Okt 2009) | 2 lines

- Fixed: The crossfade wiper left a few states with non-default values.

------------------------------------------------------------------------
r527 | graf | 2009-10-06 19:08:08 +0200 (Di, 06. Okt 2009) | 2 lines

- added a shader for drawing fog boundaries.

------------------------------------------------------------------------
r526 | graf | 2009-10-06 00:14:08 +0200 (Di, 06. Okt 2009) | 3 lines

- fixed: having 3D floors in a sector cancelled any transfer-light-to-wall effects, 
even in the uppermost section that was using the sector's original light.

------------------------------------------------------------------------
r525 | graf | 2009-10-05 23:23:58 +0200 (Mo, 05. Okt 2009) | 2 lines

- added clipping plane support to vertex shaders.

------------------------------------------------------------------------
r524 | graf | 2009-10-05 12:30:19 +0200 (Mo, 05. Okt 2009) | 2 lines

- moved fog state into render state class and optimized parameter passing for shader based fog.

------------------------------------------------------------------------
r523 | graf | 2009-10-05 10:10:57 +0200 (Mo, 05. Okt 2009) | 2 lines

- moved shader setup into render state class and eliminated several intermediate functions used previously here.

------------------------------------------------------------------------
r522 | graf | 2009-10-04 22:50:40 +0200 (So, 04. Okt 2009) | 6 lines

- removed a_magewand.cpp because it didn't contain anything that was still in use.
- more render state cleanup and optimization. Caching the camera position and sending it to the shader only when needed
  even managed to give a minor speedup.
- Fixed: The conversation code tried to get the player's tag instead of the
  NPC's he is talking to when it had no given name.

------------------------------------------------------------------------
r521 | graf | 2009-10-04 10:43:46 +0200 (So, 04. Okt 2009) | 4 lines

- Fixed: gl_texture_filter did not properly check its value.
- added gl_mask_sprite threshold for setting the alpha test vslue for sprite drawing.
- Use gl_mask_threshold for translucent geometry, too.
- project file was not committed.
------------------------------------------------------------------------
r520 | graf | 2009-10-04 01:06:46 +0200 (So, 04. Okt 2009) | 2 lines

- needed a little adjustment.

------------------------------------------------------------------------
r519 | graf | 2009-10-04 00:58:23 +0200 (So, 04. Okt 2009) | 2 lines

- Moved some loose state variables into the new render state structure.

------------------------------------------------------------------------
r518 | graf | 2009-10-03 20:05:13 +0200 (Sa, 03. Okt 2009) | 3 lines

- started adding a render state class so that I can better keep track of some information that's
  currently stored in loose variables or not well maintained at all.

------------------------------------------------------------------------
r517 | graf | 2009-10-03 19:08:39 +0200 (Sa, 03. Okt 2009) | 12 lines

- changed dynamic light parser for the GetReplacement fix.
- fixed GL textures menu.

Update to ZDoom r1894:

- Added Gez's MageWandMissile customization patch but moved the new functionality
  into the FastProjectile base class and removed the native MageWandMissile
  class, using the generic functionality instead.
- Fixed: GetReplacement and GetReplacee always checked the skill definitions,
  even if they weren't supposed to be used. It was also missing a range check
  for 'gameskill'.

------------------------------------------------------------------------
r516 | graf | 2009-10-03 13:14:00 +0200 (Sa, 03. Okt 2009) | 2 lines

- added GL_NEAREST_MIPMAP_LINEAT texture filtering mode.

------------------------------------------------------------------------
r515 | graf | 2009-10-03 10:35:53 +0200 (Sa, 03. Okt 2009) | 5 lines

Update to ZDoom r1893:

- fixed: Savegames stored the global fixed light levels when saving a player.


------------------------------------------------------------------------
r514 | graf | 2009-10-03 10:34:06 +0200 (Sa, 03. Okt 2009) | 3 lines

- disabled texture buffer code because it seems to have quite broken driver support. Nothing I try works as expected.
- commented-out test code for TBO testing.
- fixed: The brightness of dynamic lights was not taken into account when calculating light fading for a sprite.
------------------------------------------------------------------------
r513 | graf | 2009-10-03 02:00:20 +0200 (Sa, 03. Okt 2009) | 6 lines

- fixed: Decals need to be treated like sprites for texture generation, even if they are of type
  TEX_MiscPatch. This required creating clones of these textures for use as decals.
. fixed: Walls with fog boundaries may not be subject to precise rendering because the way
  fog boundaries are done is not compatible with it.


------------------------------------------------------------------------
r512 | graf | 2009-10-02 18:22:03 +0200 (Fr, 02. Okt 2009) | 1 line


------------------------------------------------------------------------
r511 | graf | 2009-10-02 16:38:45 +0200 (Fr, 02. Okt 2009) | 2 lines

- more work on dynamic light code.

------------------------------------------------------------------------
r510 | graf | 2009-10-02 14:01:35 +0200 (Fr, 02. Okt 2009) | 2 lines

- dynamic light shaders compile (but aren't working yet.)

------------------------------------------------------------------------
r509 | graf | 2009-10-02 13:08:59 +0200 (Fr, 02. Okt 2009) | 2 lines

- optimized the wall splitting code a little.

------------------------------------------------------------------------
r508 | graf | 2009-10-02 10:54:08 +0200 (Fr, 02. Okt 2009) | 4 lines

- fixed: Seg sorting was skipped for the first sidedef.
- restored light counting code which I accidentally deleted yesterday.
- minor changes to profiling code.

------------------------------------------------------------------------
r507 | graf | 2009-10-01 23:04:23 +0200 (Do, 01. Okt 2009) | 15 lines

- Update to ZDoom r1991:

- Fixed some GCC warnings.
- fixed: The BossCube could be blocked by floors and ceiling resulting
  in incorrect movement. I changed it so that A_BrainSpit now sets the
  MF5_NOINTERACTION flag for anything it spawns that has the MF_NOCLIP
  flag. For travelling cubes active collision detection makes no sense
  and only causes problems. This should also make the boss brain
  work in the other games which previously were excluded by a game mode
  check in the movement code.
- fixed: ACS's GetUserVariable did not work for the script activator.
- fixed: Moving floors could be blocked by 2 actors without MF2_PASSMOBJ
  overlapping each other (common mapping bug, check Herian 2 MAP30.)


------------------------------------------------------------------------
r506 | graf | 2009-10-01 22:58:30 +0200 (Do, 01. Okt 2009) | 4 lines

- more work on new dynamic light code. Split light buffer into a light and index buffer to reduce data site.
- Fixed: gl_lights_size was used twice in the size calculation of dynamic lights.
- deleted GlobalDrawInfo. It may as well be taken from the DrawInfo stack like everything else.

------------------------------------------------------------------------
r505 | graf | 2009-09-30 19:58:45 +0200 (Mi, 30. Sep 2009) | 2 lines

- more work on dynamic light code.

------------------------------------------------------------------------
r504 | graf | 2009-09-30 12:44:41 +0200 (Mi, 30. Sep 2009) | 7 lines

Update to ZDoom r1889:

- Fixed: Coordinate handling for multipatch texture compositing was not correct
  for true color. Instead of using a clipping rectangle on the destination it
  tried to alter the source offsets which produced incorrect results for
  mirrored or rotated patches.
- Fixed: Alt+F4 no longer quit the program.
------------------------------------------------------------------------
r503 | graf | 2009-09-30 00:17:37 +0200 (Mi, 30. Sep 2009) | 2 lines

- started work on shader based dynamic light rendering.

------------------------------------------------------------------------
r502 | graf | 2009-09-29 19:24:14 +0200 (Di, 29. Sep 2009) | 2 lines

- Linux patch

------------------------------------------------------------------------
r501 | graf | 2009-09-29 15:46:42 +0200 (Di, 29. Sep 2009) | 6 lines

- removed support for GL_NV_occlusion_query. I don't think that there's any driver out there
  which doesn't support the ARB version that can be used without hacks.
- changed GLSL to use GL 2.0 API instead of the ARB extensions. There is no need for
  support of older hardware as it's incapable of handling the shaders anyway.
- removed some unused code from the GL interface.

------------------------------------------------------------------------
r500 | graf | 2009-09-29 09:17:32 +0200 (Di, 29. Sep 2009) | 2 lines

- fixed: Brightmap shader ignored the light color.

------------------------------------------------------------------------
r499 | graf | 2009-09-29 00:53:23 +0200 (Di, 29. Sep 2009) | 2 lines

- Update to ZDoom r1887.

------------------------------------------------------------------------
r498 | graf | 2009-09-29 00:11:38 +0200 (Di, 29. Sep 2009) | 3 lines

-Fixed: The flat render VBO must be reinitialized after a screen resolution change.
- Added support for creating camera textures with framebuffer objects. However, this turned out to be slower than copying from the screen buffer so it's off by default unless a texture is used that is larger than the screen and can't be rendered that way.

------------------------------------------------------------------------
r497 | graf | 2009-09-27 09:18:10 +0200 (So, 27. Sep 2009) | 2 lines

- Fixed: G_QueueBody was not notifying the translation that it was changed.

------------------------------------------------------------------------
r496 | graf | 2009-09-27 09:11:21 +0200 (So, 27. Sep 2009) | 4 lines

- fixed: color based blending for projectiles must be disabled when a special colormap is active.
- fixed: Binding a brightmap texture disabled all translation information.
- Update zo ZDoom r 1883.

------------------------------------------------------------------------
r495 | graf | 2009-09-27 01:38:33 +0200 (So, 27. Sep 2009) | 3 lines

- update to lazest ZDoom code.
- fixed translucency calculations for screen blends.

------------------------------------------------------------------------
r494 | graf | 2009-09-26 01:09:24 +0200 (Sa, 26. Sep 2009) | 2 lines

- all done. Now please someone fix the Linux version...? ;)

------------------------------------------------------------------------
r493 | graf | 2009-09-26 00:21:48 +0200 (Sa, 26. Sep 2009) | 2 lines

- compiles again.

------------------------------------------------------------------------
r492 | graf | 2009-09-25 23:57:47 +0200 (Fr, 25. Sep 2009) | 2 lines

- prevent-SVN-from-screwing-up commit. This will not compile!

------------------------------------------------------------------------
r491 | graf | 2009-09-25 23:22:45 +0200 (Fr, 25. Sep 2009) | 1 line

....
------------------------------------------------------------------------
r490 | graf | 2009-09-25 23:01:58 +0200 (Fr, 25. Sep 2009) | 2 lines

...

------------------------------------------------------------------------
r489 | graf | 2009-09-25 22:42:15 +0200 (Fr, 25. Sep 2009) | 2 lines

- grouped all external entry points of the GL renderer in gl_functions.h so that non-GL files don't need to include anything else.

------------------------------------------------------------------------
r488 | graf | 2009-09-25 22:15:00 +0200 (Fr, 25. Sep 2009) | 2 lines

- seems like moving some files reverted them to an older revision...

------------------------------------------------------------------------
r487 | graf | 2009-09-25 20:10:15 +0200 (Fr, 25. Sep 2009) | 1 line

- getting closer...
------------------------------------------------------------------------
r486 | graf | 2009-09-25 19:42:07 +0200 (Fr, 25. Sep 2009) | 2 lines

- does it ever end?

------------------------------------------------------------------------
r485 | graf | 2009-09-25 18:47:07 +0200 (Fr, 25. Sep 2009) | 2 lines

- reorganized more files.

------------------------------------------------------------------------
r484 | graf | 2009-09-25 15:05:17 +0200 (Fr, 25. Sep 2009) | 2 lines

- cleanup of gl_scene.cpp.

------------------------------------------------------------------------
r483 | graf | 2009-09-25 10:43:53 +0200 (Fr, 25. Sep 2009) | 2 lines

- reorganized more files.

------------------------------------------------------------------------
r482 | graf | 2009-09-25 01:19:54 +0200 (Fr, 25. Sep 2009) | 2 lines

- reorganized more files.

------------------------------------------------------------------------
r481 | graf | 2009-09-25 00:31:33 +0200 (Fr, 25. Sep 2009) | 2 lines

- reorganized a few files.

------------------------------------------------------------------------
r480 | graf | 2009-09-24 23:43:27 +0200 (Do, 24. Sep 2009) | 1 line

Grrr...
------------------------------------------------------------------------
r479 | graf | 2009-09-24 23:39:00 +0200 (Do, 24. Sep 2009) | 4 lines

- fixed a typo in the shader code.
- some minor shader optimizations.
- imported GL framebuffer interface for future use.

------------------------------------------------------------------------
r478 | graf | 2009-09-24 20:30:45 +0200 (Do, 24. Sep 2009) | 3 lines

- Fixed: Camera textures precached a software framebuffer and never freed it.
- removed some debug code.

------------------------------------------------------------------------
r477 | graf | 2009-09-24 20:09:41 +0200 (Do, 24. Sep 2009) | 13 lines

- fixed a few memory leaks.
- fixed: checking for colored fog in the fragment shader was wrong and could cause problems with black radial fog.

- added shader capabilities detection. With this I can now set the shader support to something adequate for most hardware:
  * old NVidia cards (GF 6xxx) won't get any shader support at all except for special colormaps on camera textures.
    The shaders don't run properly on this hardware and on top of that are too slow. Fixing this would block future improvements so it's all off now.
  * GF 7xxx and older ATI cards get the shader menu as before.
  * GF 8xxx and newer and comparable ATI cards (everything that can run OpenGL 3.0) will always use shaders. There is no more option to disable them
    as proper support is a given on this hardware and disabling them won't improve performance.

!!Latest drivers are required. Older drivers that don't report proper identification won't get full support!!


------------------------------------------------------------------------
r476 | graf | 2009-09-24 02:07:46 +0200 (Do, 24. Sep 2009) | 2 lines

- fixed memoty allocation problems.

------------------------------------------------------------------------
r475 | graf | 2009-09-23 23:26:40 +0200 (Mi, 23. Sep 2009) | 2 lines

- removed GLRendererOld namespace so I can do some real reorganization of the GL code.

------------------------------------------------------------------------
r474 | graf | 2009-09-23 23:14:13 +0200 (Mi, 23. Sep 2009) | 6 lines

- cleaned up texture code and split the FGLTexture class in 2: The lower level FGLTexture class and the higher level FMaterial class. 
- rewrote the entire GLSL shader code for more flexibility.
- fixed: The height for a horizon plane was calculated wrong.
- fixed: Map based texture scaling was not done properly for vertical scaling factors.
- removed all code from the renderer rewrite. Most of it is no longer of use. All work I did on the texture management code is now available in the old code and the only other remaining thing that's still worth backporting is the vertexbuffer implementation for skies which will be done later once the GL code has been properly cleaned up.

------------------------------------------------------------------------
r473 | graf | 2009-09-22 16:48:12 +0200 (Di, 22. Sep 2009) | 2 lines

- renamed low level texture class.

------------------------------------------------------------------------
r472 | graf | 2009-09-22 14:51:23 +0200 (Di, 22. Sep 2009) | 2 lines

- Update to ZD00m r1869: 
* ported recent colormap changes to GL renderer
------------------------------------------------------------------------
r471 | graf | 2009-09-21 22:54:52 +0200 (Mo, 21. Sep 2009) | 2 lines

- added custom colormap support for DECORATE items.

------------------------------------------------------------------------
r470 | graf | 2009-09-21 00:09:01 +0200 (Mo, 21. Sep 2009) | 2 lines

- fixed weapon sprite.

------------------------------------------------------------------------
r469 | graf | 2009-09-20 22:58:12 +0200 (So, 20. Sep 2009) | 1 line


------------------------------------------------------------------------
r468 | graf | 2009-09-20 22:57:32 +0200 (So, 20. Sep 2009) | 1 line


------------------------------------------------------------------------
r467 | graf | 2009-09-20 22:51:32 +0200 (So, 20. Sep 2009) | 2 lines

- Update to ZDoom r1859 including adjustments for all the changes that were only made for the software renderer.

------------------------------------------------------------------------
r466 | graf | 2009-09-19 01:49:46 +0200 (Sa, 19. Sep 2009) | 2 lines

- removed debug code.

------------------------------------------------------------------------
r465 | graf | 2009-09-18 22:33:33 +0200 (Fr, 18. Sep 2009) | 3 lines

- Implemented VBO updating for changed sector planes. The VBO will only be updated if the sector no longer moves.  
  Moving sectors are drawn without using the VBO for efficiency.

------------------------------------------------------------------------
r464 | graf | 2009-09-18 15:16:41 +0200 (Fr, 18. Sep 2009) | 2 lines

- Cleaned up VBO code.

------------------------------------------------------------------------
r463 | graf | 2009-09-17 23:51:33 +0200 (Do, 17. Sep 2009) | 2 lines

- Update to ZDoom r1855.

------------------------------------------------------------------------
r462 | graf | 2009-09-17 22:12:34 +0200 (Do, 17. Sep 2009) | 1 line


------------------------------------------------------------------------
r461 | graf | 2009-09-17 20:18:06 +0200 (Do, 17. Sep 2009) | 6 lines

- deleted the unfinished new flat rendering code because it offered no advantages over the old version.

- Renamed plane flags from SECF_* to PLANEF_*.
- Changed Heretic's plat raise type to use a flag to block further sector movement
  instead of keeping the dead thinker around to block the sector.

------------------------------------------------------------------------
r460 | graf | 2009-09-17 01:14:22 +0200 (Do, 17. Sep 2009) | 1 line

- fixed a typo in the precise rendering code for glowing coordinates.
------------------------------------------------------------------------
r459 | graf | 2009-09-16 23:39:52 +0200 (Mi, 16. Sep 2009) | 2 lines

- made custom dimming operational for GL renderer.

------------------------------------------------------------------------
r458 | graf | 2009-09-16 23:17:17 +0200 (Mi, 16. Sep 2009) | 24 lines

Update to ZDoom r1848:

- Fixed: The deprecated flag handler for the old bounce flags needs to clear
  BOUNCE_MBF and BOUNCE_UseSeeSound, too, when clearing one of these flags.
- Fixed: When adding the AVOIDMELEE code the code was accidentally changed so that
  friendly monsters could no longer acquire targets by themselves.
- Renamed WIF_BOT_MELEE to WIF_MELEEWEAPON because it's no longer a bot only flag.
- Added MBF's monster_backing feature as an actor flag: AVOIDMELEE.
- Gez's misc. bugs patch:
* Moves the dog sound out of the Doom-specific sounds in SNDINFO to address this,
* Renames the dog actor to MBFHelperDog to prevent name conflicts,
* Adds APROP_Score to CheckActorProperty,
* Completes the randomspawner update (the reason I moved the recursion counter out of 
  special1 was that I found some projectiles had this set to them, for example in 
  A_LichAttack, but I forgot to add transfer for them),
* Provides centered sprites for beta plasma balls if this is deemed deserving correction.
- Added some pieces of MBF's friendly AI.
- Cleaned up A_LookEx code and merged most of it with the base functions.
  The major difference was a common piece of code that was repeated 5 times
  throughout the code so I moved it into a subfunction.
- Changed P_BlockmapSearch to pass a user parameter to its callback so that
  A_LookEx does not need to store its info inside the actor itself.
- fixed: The linetarget CCMD duplicated all of the info CCMD. 
- fixed: PrintActorInfo crashed due to some incomplete implementation.
------------------------------------------------------------------------
r457 | graf | 2009-09-16 00:09:18 +0200 (Mi, 16. Sep 2009) | 9 lines

- Update to ZDoom r1837:

- added PinkSilver's A_Respawn enhancement patch.
- added RandomSpawner update from Gez's experimental build.
- added thing activation types for BUMPSPECIAL and USESPECIAL. Also added
  a new ClearSpecial flag to the activation type.
- added MBF's code for dogs jumping down, controlled by the MF6_JUMPDOWN
  flag.

------------------------------------------------------------------------
r456 | graf | 2009-09-15 23:47:49 +0200 (Di, 15. Sep 2009) | 2 lines

- VBO implementation for flats working except updating after change.

------------------------------------------------------------------------
r455 | graf | 2009-09-15 15:02:46 +0200 (Di, 15. Sep 2009) | 3 lines

- changed VBO code to use the ARB extension instead of requiring GL 2.1.
- create VBO only once, not each level.

------------------------------------------------------------------------
r454 | graf | 2009-09-15 09:22:26 +0200 (Di, 15. Sep 2009) | 2 lines

- added some test code to render flats using a VBO. This gives a noticable, albeit small speed improvement.
  Now I have to find an efficient way to keep the buffer up to date...
------------------------------------------------------------------------
r453 | graf | 2009-09-15 08:39:32 +0200 (Di, 15. Sep 2009) | 1 line

- ZDoom r1833.
------------------------------------------------------------------------
r452 | graf | 2009-09-15 08:19:39 +0200 (Di, 15. Sep 2009) | 37 lines

Update to ZDoom r1831:

 fixed: The Dehacked flags parser fix from May 31 (r1624) was undone by
  yesterday's additions. Changed it so that the parser first checks for 
  the presence of a '-' sign before deciding whether to use strtol or
  strtoul to convert the string into a number.
- Added PinkSilver's A_LookEx fix.
- added resources needed for MBF support.
- removed unused score items from DECORATE file.
- Fixed: Argument count for UsePuzzleItem was wrong.
- Added a few things from Gez's experimental build:
  * MBF Dehacked emulation but removed the COMPATF_MBFDEHACKED flag because
    it wouldn't work and is more or less useless anyway.
  * MBF's dog (definition only, no sprites yet.)
  * User variables. There's an array of 10. They can be set and checked in
    both DECORATE and ACS.
  * Made the tag name changeable but eliminated the redundancy of having
    both the meta property and the individual actor's one. Having one is
	fully sufficient. TO BE FIXED: Names are case insensitive but this
	should better be case sensitive. Unfortunately there's currently nothing
	better than FName to store a string inside an actor without severely
	complicating matters. Also bumped savegame version to avoid problems
	with this change.
  * MBF grenade and bouncing code.
  * several compatibility options.
  * info CCMD to print extended actor information (not fully implemented yet)
  * summonmbf CCMD.
  * Beta BFG code pointer (but not the related missiles yet.)
  * PowerInvisibility enhancements.
  * ScoreItem with one significant change: Added a score variable that can be
    checked through ACS and DECORATE. The engine itself will do nothing with it.
  * Nailgun option for A_Explode.
  * A_PrintBold and A_Log.
  * A_SetSpecial.
  * Beta Lost Soul (added DoomEdNum 9037 to it)
  * A_Mushroom extensions
  * Vavoom compatible MAPINFO keynames.
------------------------------------------------------------------------
r451 | graf | 2009-09-14 09:26:58 +0200 (Mo, 14. Sep 2009) | 11 lines

- Update to ZDoom r1817:

- Fixed: If a damaged actor has negative mass, it needs to have its damage
  thrust set to maximum instead of 0. See Action Doom's broken glass
  "CommanderKeens".
- Changed the SCROLLTYPE define so that any extra bits set cause it to default
  to 7. This effects action.wad, MAP02, lines 12054 and 12059, which had them
  at 128, so they no longer scrolled in r832+.

- added support for Vavoom skyboxes from Gez's experimental build.

------------------------------------------------------------------------
r450 | graf | 2009-09-11 00:20:46 +0200 (Fr, 11. Sep 2009) | 23 lines

Update to ZDoom r1814:

- Look for files in Mac-like places on Macs.
- Fixed: The non-Windows CreatePath can fail if part of the path already
  exists, because mkdir will return an error code for trying to recreate
  an existing directory.
- Because entryway timed it, here is a new version of R_PointToAngle2 that is
  closer to the original. The old code was shorter but a little slower. The
  new code is a bit faster than the original with VC++ and about the same
  with GCC. Interestingly, GCC produces code for Killough's version that
  performs about the same as the original, but when compiled with VC++,
  Killough's is notably worse.
- moved ENDOOM lump name definition into gameinfo.
- moved default item drop style into gameinfo.
- moved default respawn time into gameinfo.
- moved default inventory max amount into gameinfo.
- turned Heretic's blocking of the sector for LS_Plat_RaiseAndStayTx0 into
  a parameter instead of having the game mode decide. 
- Applied vertical SBARINFO inventory bar patch.
- moved definition of games' default armor icons into gameinfo definition.
- fixed: The PNG loader for true color textures overwrote the IDAT size with
  the IDAT id when reading the image.

------------------------------------------------------------------------
r449 | graf | 2009-09-10 00:28:11 +0200 (Do, 10. Sep 2009) | 2 lines

- minor cleanup.

------------------------------------------------------------------------
r448 | graf | 2009-09-10 00:17:53 +0200 (Do, 10. Sep 2009) | 8 lines

- disabled VBO use for new renderer's view renderer.
  Even though VBO's are supposed to be the future they did nothing good here:
  * the code got a lot more complex because I needed 3-pass processing to get everything to the screen. With immediate mode there's only 2 passes.
  * I had to drag a lot of redundant data along with each single vertex due to the inflexible nature of VBOs. All this data had to be transferred to the GPU RAM.
  With immediate mode there's a lot more control over the data that gets sent to the GFX card making the whole thing a lot faster.

The already finished 2D code will remain as it is though as it's working and for the skies the VBOs are static so they may actually have an advantage there.

------------------------------------------------------------------------
r447 | graf | 2009-09-06 23:37:38 +0200 (So, 06. Sep 2009) | 2 lines

- fixed: Trying to pick up an object of the Ammo base class caused a crash.

------------------------------------------------------------------------
r446 | graf | 2009-09-06 23:20:07 +0200 (So, 06. Sep 2009) | 3 lines

- fixed: Floor and ceiling hugger projectiles should not be spawned with ONFLOORZ or ONCEILINGZ 
because that will make them ignore the actual floor height if it differs from the sector's floor.
- fixed: Floor and ceiling huggers spawned by a player did not get their vertical velocity set to 0.
------------------------------------------------------------------------
r445 | graf | 2009-09-06 23:11:24 +0200 (So, 06. Sep 2009) | 2 lines

- changed line_t's sidenum into sidedef pointers.

------------------------------------------------------------------------
r444 | graf | 2009-09-06 20:30:07 +0200 (So, 06. Sep 2009) | 4 lines

- changed side_t's linenum into a linedef pointer.
- renamed gl2_gepm.cpp to gl2_flats.cpp
- started adding rendering structs for walls.

------------------------------------------------------------------------
r443 | graf | 2009-09-06 18:58:38 +0200 (So, 06. Sep 2009) | 27 lines

Update to ZDoom r1799:

- Added PinkSilver's SetActorVelocity code submission (with optimizations.)
- Added the frandom decorate function, which is exactly like random except
  that it works with floating point instead of integers.
- Split the bounce types completely into separate flags and consolidated
  the various bounce-related flags spread across the different Actor flags
  field into a single BounceFlags field.
- Fixed: P_BounceWall() should calculate the XY velocity using a real
  square root and not P_AproxDistance(), because the latter can cause
  them to speed up or slow down.
- made menu dimming a mapping option but kept the CVARS as user override.
- Fixed: R_CreatePlayerTranslation() only initialized the first truecolor
  palette entry.
- Fixed: D3DPal::Update() used BorderColor == 0 as the condition for skipping
  an entry. It should be SM14 as in UploadPalette().
- Fixed: The aliasing of CPUInfo was still wrong. (Yarr! The things I do
  for you, GCC!) The AMD feature flags weren't stored anywhere, either; not
  that it really matters.
- Add an alternate PIC-compliant __cpuid macro in x86.cpp.
- Fixed: S_LoadSound() did not byte-swap the frequency and length it reads
  from DMX sounds.
- Fixed: PNGTexture must not use the FArchive >> operator as a short hand
  for reading 4-byte integers, because that operator works with little
  endian numbers--a no-op on Intel processors, but bad joojoo on PowerPCs.
- fixed: Weapons must first check if they can be switched and afterwards
  if they can be fired. These checks were reversed.
------------------------------------------------------------------------
r442 | graf | 2009-09-06 14:16:08 +0200 (So, 06. Sep 2009) | 2 lines

- tested shader and fixed fog formula.

------------------------------------------------------------------------
r441 | graf | 2009-09-06 12:12:55 +0200 (So, 06. Sep 2009) | 2 lines

- flat rendering logic working (3D floors not tested yet.)

------------------------------------------------------------------------
r440 | graf | 2009-09-06 01:23:05 +0200 (So, 06. Sep 2009) | 2 lines

- first flats are visible. Still very buggy.

------------------------------------------------------------------------
r439 | graf | 2009-09-04 21:54:57 +0200 (Fr, 04. Sep 2009) | 2 lines

- added rudimentary rendering loop (not tested yet.)

------------------------------------------------------------------------
r438 | graf | 2009-09-04 07:59:15 +0200 (Fr, 04. Sep 2009) | 2 lines

- disabled precise rendering for translucent walls because it interferes with proper sorting of polygons.

------------------------------------------------------------------------
r437 | graf | 2009-09-03 21:59:02 +0200 (Do, 03. Sep 2009) | 5 lines

Update to ZDoom r1789:

- fixed: Weapons must first check if they can be switched and afterwards
  if they can be fired. These checks were reversed.

------------------------------------------------------------------------
r436 | graf | 2009-09-03 21:14:28 +0200 (Do, 03. Sep 2009) | 2 lines

- Started work on rendering loop for new renderer.

------------------------------------------------------------------------
r435 | graf | 2009-09-02 22:30:20 +0200 (Mi, 02. Sep 2009) | 2 lines

- fixed: The newly altered WAD code could not load embedded WADs anymore.

------------------------------------------------------------------------
r434 | graf | 2009-09-02 22:16:33 +0200 (Mi, 02. Sep 2009) | 2 lines

- more work on flat rendering - started 3D render buffer structures (mostly a copy of the 2D versions with identical code but different variable types.)

------------------------------------------------------------------------
r433 | graf | 2009-09-02 08:19:49 +0200 (Mi, 02. Sep 2009) | 18 lines

Update to ZDoom r1784:

- Added directory detection to the -file parameter. This obsoletes -dir, so
  that parameter is now gone.
- Removed automatic ".wad" appending from FWadCollection::InitMultipleFiles()
  since it isn't needed and prevented files without extensions from being
  loaded. D_AddFile() already takes care of adding the extension if the
  name as-given does not exist.
- Fixed: Loading single files did not print a newline in the startup text.
- Fixed: A_JumpIf(InTarget)Inventory jumped if the check amount was greater
  than the item's max amount and the item was maxed.
- Fixed: Some dmadds wads used zero-length sprites as placeholders. When you
  ran dmadds to combine it with the IWAD's sprites, they would be replaced by
  the IWAD's sprites, so when loading such wads, we should ignore those as
  valid sprites. (Thanks to entryway for finding this.) See 22ventry's
  22sprite.wad for an example.
- Replaced the use of autoconf's WORDS_BIGENDIAN with __BIG_ENDIAN__, since
  latter comes predefined by GCC.
------------------------------------------------------------------------
r432 | graf | 2009-09-02 00:21:49 +0200 (Mi, 02. Sep 2009) | 2 lines

- split glc_data.cpp in two.

------------------------------------------------------------------------
r431 | graf | 2009-09-01 23:12:43 +0200 (Di, 01. Sep 2009) | 2 lines

- no debug output, please.

------------------------------------------------------------------------
r430 | graf | 2009-09-01 23:12:14 +0200 (Di, 01. Sep 2009) | 1 line

- implemented tracking of geometry changes to keep data structures as long as they are still valid instead of recreating them each frame.
------------------------------------------------------------------------
r429 | graf | 2009-09-01 01:46:16 +0200 (Di, 01. Sep 2009) | 3 lines

- added a seg list to the sidedefs. This will be needed by the new renderer.
  Tested by using it as an alternative for precise render mode. The result: The speed difference between speed and precise mode has decreased significantly compared to rendering each seg as a separate primitive.

------------------------------------------------------------------------
r428 | graf | 2009-08-30 22:47:04 +0200 (So, 30. Aug 2009) | 2 lines

- fixed: R_InitColormaps was broken since the resource file code rewrite.

------------------------------------------------------------------------
r427 | graf | 2009-08-30 21:31:59 +0200 (So, 30. Aug 2009) | 29 lines

- Update to ZDoom r1777:

- fixed: WIF_STAFF2_KICKBACK did not work anymore because it depended on conditions
  that were changed some time ago.
- fixed: The damage inflictor for a rail attack was the shooter, not the puff.
- Fixed: Floor and ceiling huggers may not change their z-velocity when seeking.
- Fixed: UDMF set the secret sector flag before parsing the sector's properties,
  resulting in it always being false.
- Renamed sector's oldspecial variable to secretsector to better reflect its
  only use.
- Fixed: A_BrainSpit stored as the SpawnShot's target the intended BossTarget, 
  not itself contrarily to other projectile spawning functions. 
  A_SpawnFly then used the target for CopyFriendliness, thinking it'll be the 
  BossEye when in fact it wasn't.
- Added Gez's submission for a DEHACKED hack introduced by Boom.
  (using code pointers of the form 'Pointer 0 (x statenumber)'.
- fixed: Attaching 3DMidtex lines by sector tag did not work because lines
  were marked by index in the sector's line list but needed to be marked by
  line index in the global array.
- fixed: On Linux ZDoom was creating a directory called "~.zdoom" for 
  save files because of a missing slash.
- fixed: UDMF was unable to read floating point values in exponential format
  because the C Mode scanner was missing a definition for them.
- fixed: The recent changes for removing pointer aliasing got the end sequence
  info from an incorrect variable. To make this more robust the sequence index
  is now stored as a hexadecimal string to avoid storing binary data in a string.
  Also moved end sequence lookup from f_finale.cpp to the calling code so that
  the proper end sequences can be retrieved for secret exits, too.

------------------------------------------------------------------------
r426 | graf | 2009-08-30 21:23:52 +0200 (So, 30. Aug 2009) | 2 lines

- some work on sector rendering code for new renderer.

------------------------------------------------------------------------
r425 | graf | 2009-08-29 20:16:02 +0200 (Sa, 29. Aug 2009) | 30 lines

- Update to ZDoom r1776:

- Fixed: The first lighting plane added to a light stack had the bOverlaps
  flag set, causing it to be ignored during rendering. Why this didn't cause
  more trouble, I don't know.
- Fixed: The UDMF parser passed the wrong value for "default alpha" for
  TranslucentLine to P_FinishLoadingLineDef().
- Fixed: genStringEnter mode acted on key up events rather than key repeat
  events.
- Fixed: paletted texture composition with part translucent patches
  did not work.
- Fixed: A_SorcOffense2 depended on args being bytes and overflowing.
- Fixed: Even though P_DamageMobj checked an attack's originator
  for MF2_NODMGTHRUST the same check was missing from P_RadiusAttack.
- Fixed: A_MinotaurRoam should not assume without check that it was
  called by a MinotaurFriend.
- Fixed: The Minotaur declared A_MntrFloorFire which it did not use.
- Fixed: All Spawnspot functions did not check for a spot tid of 0 as
  the script's activator.
- Fixed: Friendly monsters ignored team association of their owning
  players.
- Fixed: The pause sprite was not centered correctly when it was a scaled
  graphic.
- Fixed: P_TestMobjZ() needs THRUSPECIES and THRUACTORS checks, too.
- Fixed: The UDMF loader did not initialize the sectors' sectornum property.
- Fixed: The true color texture compositing code did not clip the edges
  of multipatch textures used as patches on other multipatch textures.



------------------------------------------------------------------------
r424 | graf | 2009-08-10 23:22:17 +0200 (Mo, 10. Aug 2009) | 1 line

- Texture scaling interface for C code.
------------------------------------------------------------------------
r423 | graf | 2009-08-10 23:02:26 +0200 (Mo, 10. Aug 2009) | 2 lines

- Fixed flat texture coordinate calculation.

------------------------------------------------------------------------
r422 | graf | 2009-08-10 22:54:59 +0200 (Mo, 10. Aug 2009) | 1 line

- Changed shaders so that texture coordinates in the 3D scene can be specified in texels instead of normalized texture coordinates. This should make handling of some things considerably easier.
------------------------------------------------------------------------
r421 | graf | 2009-08-10 22:34:53 +0200 (Mo, 10. Aug 2009) | 2 lines

- more work on geometry maintenance.

------------------------------------------------------------------------
r420 | graf | 2009-08-10 20:32:54 +0200 (Mo, 10. Aug 2009) | 3 lines

- Fixed: The true color texture compositing code did not clip the edges
  of multipatch textures used as patches on other multipatch textures.

------------------------------------------------------------------------
r419 | graf | 2009-08-09 21:14:21 +0200 (So, 09. Aug 2009) | 5 lines

Update to ZDoom r1765:

- Fixed: A_EntityAttack did not spawn the correct missiles.
- Changed the return value of SetActivatorToTarget to match the description
  in the wiki.
------------------------------------------------------------------------
r418 | graf | 2009-08-09 21:08:47 +0200 (So, 09. Aug 2009) | 2 lines

- fixed: shaded sprites need to disable the alpha test.

------------------------------------------------------------------------
r417 | graf | 2009-08-09 20:50:00 +0200 (So, 09. Aug 2009) | 2 lines

- flat creation code done, not tested yet.

------------------------------------------------------------------------
r416 | graf | 2009-08-09 18:52:09 +0200 (So, 09. Aug 2009) | 2 lines

- started with geometry code. Flat handling ca. 20% done.

------------------------------------------------------------------------
r415 | graf | 2009-08-08 22:54:45 +0200 (Sa, 08. Aug 2009) | 2 lines

- fixed XY billboarding,

------------------------------------------------------------------------
r414 | graf | 2009-08-08 21:56:45 +0200 (Sa, 08. Aug 2009) | 5 lines

- fixed: The texture matrix for flats must place the panning between the scaling for the texture size and the scaling for scaling factors to give correct results.
- the BFGExtra's light definition was incorrect.
- did some optimizations to flat rendering code. Using a pure floating point ZatPoint almost costs no time so some special handling for non-sloped sectors could be removed without and negative side effects.
- converted all places that change a sector's light level to a setter function.

------------------------------------------------------------------------
r413 | graf | 2009-08-08 07:55:54 +0200 (Sa, 08. Aug 2009) | 21 lines

Upsate to ZDoom r1760:

- If SetActivatorToTarget is used for a player-run script, and the player is
  alive, it now sets the activator to the actor the player is aiming at. I
  also noticed that this looked like it was a quick copy'n'paste job from
  SetActivator. It returns false if the activator at the end of the function
  was the world, but it never sets the activator to the world. I'm not sure
  that's the best use of the return value.
- Added support for per-SpawnShot spawn lists. (Also fixed a potential
  infinite loop, though I'm not sure the parser allowed this condition to
  happen.)
- Changed the DWORDs in dobject.h into uint32s, since they were preventing
  edit-and-continue from working for the Windows source files.
- When a WM_KEYDOWN message is received with VK_PROCESSKEY, the scan key is
  now used to retrieve the real virtual key for the message. This fixes the
  previous issue that caused me to completely disable the IME.
- Removed the code that disables the IME, since it also disables the ability
  to switch between keyboard layouts that do not use an IME.
- TranslateMessage() is no longer called if GUI capture mode is off, so no
  dead key processing is performed until it might be useful.

------------------------------------------------------------------------
r412 | graf | 2009-08-07 21:34:42 +0200 (Fr, 07. Aug 2009) | 28 lines

Update to ZDoom r1757:

- Added player MugShotMaxHealth property. Negative values use the player's
  max health as the mug shot max health, zero uses 100 as the mug shot max
  health, and positive values used directly as the mug shot max health.
- Added buddha cheat.
- Added TELEFRAG_DAMAGE constant, and changed the two places that still used
  1000 as the threshold for god mode damage to use it instead. (Players with
  MF2_INVULNERABLE set already used 1000000 as their threshold.)
- Added MF6_NOTELEFRAG flag.
- Fixed: M_QuitResponse() tried to play a sound even when none was specified
  in the gameinfo.
- Added Yes/No selections for Y/N messages so that you can answer them
  entirely with a joystick.
- Fixed: Starting the menu at the title screen with a key other than Escape
  left the top level menu out of the menu stack.
- Changed the save menu so that cancelling input of a new save name only
  deactivates that control and does not completely close the menus.
- Fixed "any key" messages to override input to menus hidden beneath them and
  to work with joysticks.
- Removed the input parameter from M_StartMessage and the corresponding
  messageNeedsInput global, because it was redundant. Any messages that want
  a Y/N response also supply a callback, and messages that don't care which
  key you press don't supply a callback.
- Changed MKEY_Back so that it cancels out of text entry fields before
  backing to the previous menu, which it already did for the keyboard.
- Changed the menu responder so that key downs always produce results,
  regardless of whether or not an equivalent key is already down.
------------------------------------------------------------------------
r411 | graf | 2009-08-06 21:57:53 +0200 (Do, 06. Aug 2009) | 2 lines

- fixed some overzealous Linux warning removal resulting in broken code.

------------------------------------------------------------------------
r410 | graf | 2009-08-06 21:41:11 +0200 (Do, 06. Aug 2009) | 13 lines

- Update to ZDoom r1762:

- Added the MF6_STEPMISSILE flag so that the Whirlwind can "walk" up steps.
- Changed the dword definition of PalEntry to uint32 so that it has one
  consistent definition across all source files.
- Swapped the order of floor and ceiling moves in DElevator::Tick() so that
  if an elevator contains an actor exactly the same height as it, it will not
  be blocked.
- Fixed: FWeaponSlot::PickWeapon() wrapped around improperly when the starting
  value for i was 0.
- Added kgsws's SummonActor enhancement and bumped netgame and demo versions
  because this submission changes an existing command.

------------------------------------------------------------------------
r409 | graf | 2009-08-04 00:05:44 +0200 (Di, 04. Aug 2009) | 2 lines

- forgot to update one file from ZDoom.

------------------------------------------------------------------------
r408 | graf | 2009-08-03 00:01:24 +0200 (Mo, 03. Aug 2009) | 2 lines

- fixed namespace assignment for gl_vertices array.

------------------------------------------------------------------------
r407 | graf | 2009-08-02 20:24:40 +0200 (So, 02. Aug 2009) | 5 lines

- Changed: DEHACKED parsing is disabled now when a user supplied DEHSUPP lump
  is found. This mimics the old behavior which also disabled DEHACKED when
  the DEHSUPP lump was incompatible with the current engine. This behavior is
  needed to ensure that WADs that contain a ZDaemon-exclusive DEHSUPP lump
  continue to work as intended.
------------------------------------------------------------------------
r406 | graf | 2009-08-02 19:00:19 +0200 (So, 02. Aug 2009) | 49 lines

Update to ZDoom r1747:

- Added A_Mushroom compatibility option for Dehacked.
- Added Gez's submission for interhubamount DECORATE property.
- Fixed: The big endian version of PalEntry did not add the DWORD d field.
- Fixed: TObjPtr did not use a union to map its 2 pointers together.
- Added a compatibility mode for A_Mushroom. For DECORATE it is an additional
  parameter but to force it for Dehacked mods some minor hacks using the
  Misc1 variable were needed.
- Moved the terget->velz assignment to the end of A_VileAttack to remove the
  influence of vertical thrust from the radius attack, since ZDoom does
  explosions in three dimensions, but Doom only did it in two.
- Fixed: The last three parameters to A_VileAttack had their references off
  by one. Most notably as a result, the blast radius was used as the thrust,
  so it sent you flying far faster than it should have.
- Restored the reactiontime countdown for A_SpawnFly, since some Dehacked
  mod could conceivable rely on it. The deadline is now kept in special2
  and used in preference as long as it is non-zero.
- Removed -fno-strict-aliasing from the GCC flags for ZDoom and fixed the
  issues that caused its inclusion. Is an optimized GCC build any faster
  for being able to use strict aliasing rules? I dunno. It's still slower
  than a VC++ build.
  
  I did run into two cases where TAutoSegIterator caused intractable problems
  with breaking strict aliasing rules, so I removed the templating from it,
  and the caller is now responsible for casting the probe value from void *.

- Removed #include "autosegs.h" from several files that did not need it
  (in particular, dobject.h when not compiling with VC++).
- gdtoa now performs all type aliasing through unions. -Wall has been added
  to the GCC flags for the library to help verify this.
- Changed A_SpawnFly to do nothing if reactiontime is 0. Reactiontime was
  originally a counter, so if it started at 0, A_SpawnFly would effectively 
  never spawn anything. Fixes Dehacked patches that use A_SpawnSound to
  play a sound without shooting boss cubes, since it also calls A_SpawnFly.
- Joystick devices now send key up events for any buttons that are held
  down when they are destroyed.
- Changed the joystick enable-y menu items to be nonrepeatable so that you
  can't create several device scans per second. Changing them with a
  controller is also disabled so that you can't, for example, toggle XInput
  support using an XInput controller and have things go haywire when the
  game receives an infinite number of key down events when the controller
  is reinitialized with the other input system.
- Changed menu input to use a consolidated set of buttons, so most menus
  can be navigated with a controller as well as a keyboard.
- Changed the way that X/Y analog axes are converted to digital axes.
  Previously, this was done by checking if each axis was outside its deadzone.
  Now they are checked together based on their angle, so straight up/down/
  left/right are much easier to achieve.
------------------------------------------------------------------------
r405 | graf | 2009-07-25 11:16:27 +0200 (Sa, 25. Jul 2009) | 5 lines

- Fixed: The composer for complex multipatch textures did not clear the palette
  buffer before filling it.
- fixed some slope overflows in the GL renderer.
- fixed: The FreeList template did not properly construct and destruct its elements.

------------------------------------------------------------------------
r404 | graf | 2009-07-24 22:25:47 +0200 (Fr, 24. Jul 2009) | 2 lines

- Fixed: using custom automap backgrounds crashed.

------------------------------------------------------------------------
r403 | graf | 2009-07-24 20:04:53 +0200 (Fr, 24. Jul 2009) | 1 line

- implemented Q2-styled skybox rendering.
------------------------------------------------------------------------
r402 | graf | 2009-07-24 15:47:25 +0200 (Fr, 24. Jul 2009) | 57 lines

Update to ZDoom r1735:

- Added extra states to dehsupp for the MBF additions.
- Removed specific Button_Speed handling from the controllers' AddAxes()
  methods. Analog axes now respond to Button_Speed and cl_run in exactly the
  same way as digital buttons do.
- Changed rounding slightly for analog axis -> integer in G_BuildTiccmd().
- Fixed: FXInputController::ProcessThumbstick() was slightly off when it
  converted to the range [-1.0,+1.0].
- Added default bindings for the Xbox 360 controller buttons.
- Fixed: Redefining an existing skill would set that skills ACSReturn to be
  the same as the next new skill defined, if neither definition explicitly set
  the value for ACSReturn.
- Added a DefaultSkill property. Adding it to a skill will cause that skill
  to be the default one selected in the menu. If none is specified as the
  default, then the middle skill is the default.
- Slider controls in the options menu now display their values
  numerically next to the slider.
- The minimum value for m_yaw, m_pitch, m_forward, and m_side from the
  menu has been dropped from 0.5 to 0, so those particular mouse motions can
  be disabled entirely without using the console.
- added compat_anybossdeath to MAPINFO.
- fixed blue colormap
- Added parameters to A_VileAttack.
- Removed redundant definition of use_joystick from SDL/i_input.cpp.
- Turned net decompression into a non fatal error. It now drops the packet
  and waits for the sender to send a new, hopefully good, packet.
- Reduced potential for overflow in R_ProjectSprite().
- Moved the IF_ADDITIVETIME check earlier in APowerup::HandlePickup so
  that additive time powerups can be activated before the existing
  power has entered its blink threshold.
- Added a "BlueMap" for powerup colors.
- Added a NULL screen check when detaching HUD messages.
- Added HotWax's A_SetArg.
- Gez's patch for more A_WeaponReady flags:
  * WRF_NOBOB (1): Weapon won't bob
  * WRF_NOFIRE (12): Weapon won't fire at all
  * WRF_NOSWITCH (2): Weapon can't be switched off
  * WRF_NOPRIMARY (4): Weapon will not fire its main attack
  * WRF_NOSECONDARY (8): Weapon will not fire its alt attack
- Attempt to add support for Microsoft's SideWinder Strategic Commander.
- Split the joystick menu into two parts: A top level with general options
  and a list of all attached controllers, and a second level for configuring
  an individual controller.
- Fixed: Pressing Up at the top of a menu with more lines than fit on screen
  would find an incorrect bottom position if the menu had a custom top height.
- Added the cvars joy_dinput, joy_ps2raw, and joy_xinput to enable/disable
  specific game controller input systems independant of each other.
- Device change broadcasts are now sent to the Doom event queue, so
  device scanning can be handled in one common place.
- Added a fast version of IsXInputDevice that uses the Raw Input device
  list, because querying WMI for this information is painfully slow.
- Added support for compiling with FMOD Ex 4.26+ and running the game
  with an older DLL. This combination will now produce sound.
- added submission for raising master/children/siblings.
- added submission for no decals on wall option.
- removed some useless code from SpawnMissile function.
------------------------------------------------------------------------
r401 | graf | 2009-07-22 21:15:27 +0200 (Mi, 22. Jul 2009) | 2 lines

- applied Linux patch by GuntherDW.

------------------------------------------------------------------------
r400 | graf | 2009-07-21 23:05:59 +0200 (Di, 21. Jul 2009) | 3 lines

- fixed a bug in the fragment shader that destroyed the alpha value.
- more work on sky rendering. Sky domes mostly work now. Sky boxes are not operational yet.

------------------------------------------------------------------------
r399 | graf | 2009-07-20 00:21:35 +0200 (Mo, 20. Jul 2009) | 2 lines

- continued code reorganization so that some of the frame setup code can be shared between renderers.

------------------------------------------------------------------------
r398 | graf | 2009-07-19 19:43:11 +0200 (So, 19. Jul 2009) | 2 lines

- code reorganization so that some of the frame setup code can be shared between renderers.

------------------------------------------------------------------------
r397 | graf | 2009-07-19 12:50:21 +0200 (So, 19. Jul 2009) | 3 lines

- started adding sky rendering code to new renderer.
- fixed: XY billboarding did not use the proper viewactor for its calculations.

------------------------------------------------------------------------
r396 | graf | 2009-07-18 17:44:20 +0200 (Sa, 18. Jul 2009) | 2 lines

- Rewrote the rest of the 2D drawing routines.

------------------------------------------------------------------------
r395 | graf | 2009-07-18 13:39:04 +0200 (Sa, 18. Jul 2009) | 2 lines

- Implemented line drawing routines for new renderer.

------------------------------------------------------------------------
r394 | graf | 2009-07-18 10:06:34 +0200 (Sa, 18. Jul 2009) | 2 lines

- 2D texture drawing is working in new renderer.

------------------------------------------------------------------------
r393 | graf | 2009-07-13 22:46:53 +0200 (Mo, 13. Jul 2009) | 13 lines

Update to ZDoom r1715:

- Backported 2 fixes from Skulltag:
  * A_SentinelAttack must check for a NULL target
  * Monsters with CANTLEAVEFLOORPIC could not move because their floor
    texture was not initialized.
- Fixed: The 'idclev' cheat set the player's health to 0 which caused the
  level to end when in a sector of type 'end level when health below 10'.
- Fixed: The 'kill' cheat set the player to nonshootable even if it did not
  succeed.
- Added joystick config loading and saving support; moved generic joystick
  interfaces to m_joy.h.
- Added Raw Input PS2 adapter support.
------------------------------------------------------------------------
r392 | graf | 2009-07-13 22:38:47 +0200 (Mo, 13. Jul 2009) | 2 lines

- forgot to delete one obsolete variable when moving some stuff between classes.

------------------------------------------------------------------------
r391 | graf | 2009-07-13 14:14:56 +0200 (Mo, 13. Jul 2009) | 1 line


------------------------------------------------------------------------
r390 | graf | 2009-07-13 07:31:46 +0200 (Mo, 13. Jul 2009) | 1 line


------------------------------------------------------------------------
r389 | graf | 2009-07-12 23:48:28 +0200 (So, 12. Jul 2009) | 3 lines

- moved some of the texture buffer processing code from the GLTexture class into FTexture class so that it can be shared between renderers.
- implemented 2D drawing for new renderer. Not tested yet!

------------------------------------------------------------------------
r388 | graf | 2009-07-12 14:06:20 +0200 (So, 12. Jul 2009) | 3 lines

- Added vertex buffer base class.
- fixed attribute names in shader code.

------------------------------------------------------------------------
r387 | graf | 2009-07-12 11:24:39 +0200 (So, 12. Jul 2009) | 2 lines

- Worked on texture system initialization.

------------------------------------------------------------------------
r386 | graf | 2009-07-11 23:00:54 +0200 (Sa, 11. Jul 2009) | 5 lines

- All new shaders compile without syntax errors.
- Syntax fixes in shader sources. 
- fixed shader compile code.
- added an 'ignore' key to the FS header

------------------------------------------------------------------------
r385 | graf | 2009-07-11 17:07:03 +0200 (Sa, 11. Jul 2009) | 1 line


------------------------------------------------------------------------
r384 | graf | 2009-07-11 16:56:47 +0200 (Sa, 11. Jul 2009) | 5 lines

- added shaders for new renderer
- changed transformation order for flat scaling and offsetting,
- changed shader path in source code.
- Fixed: kill CCMD on end of level floors.

------------------------------------------------------------------------
r383 | graf | 2009-07-11 16:54:01 +0200 (Sa, 11. Jul 2009) | 2 lines

- renamed old shaders folder

------------------------------------------------------------------------
r381 | graf | 2009-07-11 12:15:24 +0200 (Sa, 11. Jul 2009) | 2 lines

- removed some bogus code in portal rendering.

------------------------------------------------------------------------
r380 | graf | 2009-07-11 09:17:20 +0200 (Sa, 11. Jul 2009) | 5 lines

Update to ZDoom r1713:

- Added joystick config loading and saving support; moved generic joystick
  interfaces to m_joy.h.
- Added Raw Input PS2 adapter support.
------------------------------------------------------------------------
r379 | graf | 2009-07-11 09:06:31 +0200 (Sa, 11. Jul 2009) | 2 lines

- Prepared the basic interface for switching between GL renderers.

------------------------------------------------------------------------
r378 | graf | 2009-07-07 19:30:39 +0200 (Di, 07. Jul 2009) | 2 lines

- Integrated texture code for new renderer into trunk.

------------------------------------------------------------------------
r377 | graf | 2009-07-06 19:28:49 +0200 (Mo, 06. Jul 2009) | 6 lines

Update to ZDoom r1711:

- Added Gez's A_WeaponReady enhancement submission.
- Added Gez's CheckActorProperty submission.
- Added code submissions for non-piercing railguns and new skill options.

------------------------------------------------------------------------
r376 | graf | 2009-07-04 10:28:50 +0200 (Sa, 04. Jul 2009) | 39 lines

Update to ZDoom r1705:

- ZDoom now disables the input method editor, since it has no east-Asian
  support, and having it open a composition window when you're only expecting
  a single keypress is not so good.
- Fixed: Setting intermissioncounter to false in gameinfo drew all the stats
  at once, instead of revealing them one line at a time.
- Fixed: The border definition in MAPINFO's gameinfo block used extra braces.
- Added A_SetCrosshair.
- Added A_WeaponBob.
- Dropped the Hexen player classes' JumpZ down to 9, since the original value
  now works as it originally did.
- MF2_NODMGTHRUST now works with players, too. (Previously, it was only for
  missiles.) Also added PPF_NOTHRUSTWHILEINVUL to prevent invulnerable players
  from being thrusted while taking damage. (Non-players were already
  unthrusted.)
- A_ZoomFactor now scales turning with the FOV by default. ZOOM_NOSCALETURNING
  will leave it unaltered.
- Added Gez's PowerInvisibility changes.
- Fixed: clearflags did not clear flags6.
- Added A_SetAngle, A_SetPitch, A_ScaleVelocity, and A_ChangeVelocity.
- Enough with this "momentum" garbage. What Doom calls "momentum" is really
  velocity, and now it's known as such. The actor variables momx/momy/momz
  are now known as velx/vely/velz, and the ACS functions GetActorMomX/Y/Z
  are now known as GetActorVelX/Y/Z. For compatibility, momx/momy/momz will
  continue to work as aliases from DECORATE. The ACS functions, however,
  require you to use the new name, since they never saw an official release
  yet.
- Added A_ZoomFactor. This lets weapons scale their player's FOV. Each weapon
  maintains its own FOV scale independent from any other weapons the player
  may have.
- Fixed: When parsing DECORATE functions that were not exported, the parser
  crashed after giving you the warning.
- Fixed some improper preprocessor lines in autostart/autozend.cpp.
- Added XInput support. For the benefit of people compiling with MinGW,
  the CMakeLists.txt checks for xinput.h and disables it if it cannot
  be found. (And much to my surprise, I accidentally discovered that if you
  have the DirectX SDK installed, those headers actually do work with GCC,
  though they add a few extra warnings.)
------------------------------------------------------------------------
r375 | graf | 2009-06-27 23:02:41 +0200 (Sa, 27. Jun 2009) | 11 lines

Update to ZDoom r1685:

- Added Gez's submissions for A_M_Saw customization, area damage and 
  pitch for A_FireCustomMissile.
- Attaching and detaching joysticks once again updates the joystick menu.
- Added joystick axis -> button mapping.
- Added Gez's actor replacement per skill submission.
- Joystick axes can be configured in the menu again. TODO: Config saving
  and loading, XInput, allow axes to be used as buttons (for the Xbox
  controller's trigger buttons), allow the joystick to move through the
  menus, and my PS2 adapter which has no Vista x64 drivers.
------------------------------------------------------------------------
r374 | graf | 2009-06-26 14:37:47 +0200 (Fr, 26. Jun 2009) | 2 lines

 - restructuring complete.

------------------------------------------------------------------------
r373 | graf | 2009-06-26 11:19:25 +0200 (Fr, 26. Jun 2009) | 2 lines

- more files...

------------------------------------------------------------------------
r372 | graf | 2009-06-26 11:00:31 +0200 (Fr, 26. Jun 2009) | 2 lines

- Yet another file moved.

------------------------------------------------------------------------
r371 | graf | 2009-06-25 23:27:36 +0200 (Do, 25. Jun 2009) | 2 lines

- moved some drawing code out of OpenGLFrameBuffer class.

------------------------------------------------------------------------
r370 | graf | 2009-06-25 16:31:12 +0200 (Do, 25. Jun 2009) | 1 line

- headers
------------------------------------------------------------------------
r369 | graf | 2009-06-25 16:22:44 +0200 (Do, 25. Jun 2009) | 2 lines

- Removed some system-code dependent parts from glc_renderhacks.cpp that are better done elsewhere.

------------------------------------------------------------------------
r368 | graf | 2009-06-25 16:17:03 +0200 (Do, 25. Jun 2009) | 2 lines

- restructured the renderhack code into a renderer specific and a pure-logic part.

------------------------------------------------------------------------
r367 | graf | 2009-06-25 00:26:27 +0200 (Do, 25. Jun 2009) | 2 lines

- oh, joy...

------------------------------------------------------------------------
r366 | graf | 2009-06-25 00:19:34 +0200 (Do, 25. Jun 2009) | 27 lines

Update to ZDoom r1679:

- Changed the definition of SBarInfoCoordinate to use bitfields to pack its
  members into 32 bits so that it can be stored in a plain old int without
  any transformations. The transformation coord -> int -> coord was
  destructive if the coordinate value was negative, causing the final
  coordinate to be centered even if the original was not.
- SBARINFO patch: Enable forcescaled with fullscreenoffsets.
- Fixed: Since UDMF allows for fractional vertex coordinates, it is no longer
  safe for P_AlignPlane() to truncate coordinates when searching for the
  furthest vertex from the line.
- The reorganized DirectInput game controller code finally compiles. (Ugh! It
  took far too long to reach this point.) Manual axis configuration is
  currently disabled, since I need to rewrite that, too. The eventual point of
  this is that the code will be modular enough that I can just plop in
  routines for XInput controllers and driver-less PlayStation 2 adapters
  without much fuss, since the old joystick code was very much DirectInput-
  centric.
- Changed AWeaponGiver to keep the weapon actor around instead of respawning a new
  one for each call.
- Fixed: AWeaponGiver::TryPickup checked the wrong item for ammo to give.
- fixed: FRandom::Random2(int mask) must return the difference between 2 byte values
  for compatibility.
- fixed: The sound name world/volcano/shoot was accidentally destroyed in the source.
- Reintroduced damage thrust clamping but with a higher threshold. The clamping
  is now also done in floating point before any fixed point overflows can occur.

------------------------------------------------------------------------
r365 | graf | 2009-06-24 23:57:58 +0200 (Mi, 24. Jun 2009) | 2 lines

- last for today.

------------------------------------------------------------------------
r364 | graf | 2009-06-24 23:39:56 +0200 (Mi, 24. Jun 2009) | 2 lines

- more

------------------------------------------------------------------------
r363 | graf | 2009-06-24 22:55:24 +0200 (Mi, 24. Jun 2009) | 3 lines

- next round of reorganization.


------------------------------------------------------------------------
r362 | graf | 2009-06-24 01:15:20 +0200 (Mi, 24. Jun 2009) | 3 lines

- next round of reorganization.


------------------------------------------------------------------------
r361 | graf | 2009-06-23 22:07:47 +0200 (Di, 23. Jun 2009) | 2 lines

- moved a few more files.

------------------------------------------------------------------------
r360 | graf | 2009-06-23 21:37:11 +0200 (Di, 23. Jun 2009) | 2 lines

- more reorganization of GL code.

------------------------------------------------------------------------
r359 | graf | 2009-06-23 16:10:27 +0200 (Di, 23. Jun 2009) | 2 lines

- started virtualizing the entry points for the GL renderer.

------------------------------------------------------------------------
r358 | graf | 2009-06-23 15:01:28 +0200 (Di, 23. Jun 2009) | 3 lines

- deleted obsolete gl_swshaders files.
- fixed: A check for hacked transparent doors was not correct and affected some sectors it shouldn't have.

------------------------------------------------------------------------
r357 | graf | 2009-06-23 01:05:33 +0200 (Di, 23. Jun 2009) | 2 lines

- more file movement.

------------------------------------------------------------------------
r356 | graf | 2009-06-23 00:44:37 +0200 (Di, 23. Jun 2009) | 2 lines

- started reorganizing GL files. Moved some code which will be exclusive to the current renderer into a subdirectory.

------------------------------------------------------------------------
r355 | graf | 2009-06-23 00:19:50 +0200 (Di, 23. Jun 2009) | 2 lines

- started putting the GL rendering code into a namespace.

------------------------------------------------------------------------
r354 | graf | 2009-06-22 10:10:39 +0200 (Mo, 22. Jun 2009) | 1 line


------------------------------------------------------------------------
r353 | graf | 2009-06-22 10:05:53 +0200 (Mo, 22. Jun 2009) | 2 lines

- Linux fix.

------------------------------------------------------------------------
r345 | graf | 2009-06-17 00:05:47 +0200 (Mi, 17. Jun 2009) | 4 lines

- Reintroduced damage thrust clamping but with a higher threshold. The clamping
  is now also done in floating point before any fixed point overflows can occur.
- fixed: Dynamic lights affected sprites in fullbright mode.

------------------------------------------------------------------------
r344 | graf | 2009-06-14 20:05:00 +0200 (So, 14. Jun 2009) | 50 lines

Update to ZDoom r1669:

- added a compatibility option to restore the original Heretic bug where
  a Minotaur couldn't spawn floor flames when standing in water having its
  feet clipped.
- added vid_vsync to display options.
- fixed: Animations of type 'Range' must be disabled if the textures don't
  come from the same definition unit (i.e both containing file and use type
  are identical.)
- changed: Item pushing is now only done once per P_XYMovement call.
- Increased the push factor of Heretic's pod to 0.5 so that its behavior
  more closely matches the original which depended on several bugs in the engine.
- Removed damage thrust clamping in P_DamageMobj and changed the thrust calculation
  to use floats to prevent overflows. The prevention of the overflows was the
  only reason the clamping was done.
- Added Raven's dagger-like vector sprite for the player to the automap code.
- Changed wad namespacing so that wads with a missing end marker will be
  loaded as if they had one more lump with that end marker. This matches the
  behaviour of previously released ZDooms. (The warning is still present, so
  there's no excuse to release more wads like this.)
- Moved Raw Input processing into a seperate method of FInputDevice so that
  all the devices can share the same setup code.
- Removed F16 mapping for SDL, because I guess it's not present in SDL 1.2.
- Added Gez's Skulltag feature patch, including:
    * BUMPSPECIAL flag: actors with this flag will run their special if collided on by a player
    * WEAPON.NOAUTOAIM flag, though it is restricted to attacks that spawn a missile (it will 
	  not affect autoaim settings for a hitscan or railgun, and that's deliberate)
    * A_FireSTGrenade codepointer, extended to be parameterizable
    * The grenade (as the default actor for A_FireSTGrenade)
    * Protective armors  la RedArmor: they work with a DamageFactor; for example to 
	  recreate the RedArmor from Skulltag, copy its code from skulltag.pk3 but remove 
	  the "native" keyword and add DamageFactor "Fire" 0.1 to its properties.
- Fixed: I_ShutdownInput must NULL all pointers because it can be called twice
  if an ENDOOM screen is displayed.
- Fixed: R_DrawSkyStriped used frontyScale without initializing it first.
- Fixed: P_LineAttack may not check the puff actor for MF6_FORCEPAIN because
  it's not necessarily spawned yet. 
- Fixed: FWeaponSlots::PickNext/PrevWeapon must be limited to one iteration
  through the weapon slots. Otherwise they will hang if there's no weapons
  in a player's inventory.
- Added Line_SetTextureScale.
- Fixed: sv_smartaim 3 treated the player like a shootable decoration.
- Added A_CheckIfInTargetLOS
- Removed redundant A_CheckIfTargetInSight.
- Fixed: The initial play of a GME song always started track 0.
- Fixed: The RAWINPUT buffer that GetRawInputData() fills in is 40 bytes on
  Win32 but 48 bytes on Win64, so Raw Mouse on x64 builds was getting random
  data off the stack because I also interpreted the error return incorrectly.
- added parameter to A_FadeOut so that removing the actor can be made an option.

------------------------------------------------------------------------
r343 | graf | 2009-06-07 22:15:36 +0200 (So, 07. Jun 2009) | 2 lines

- added PERSISTENTPOWER and TRANSFERPOINTERS submissions by Gez.

------------------------------------------------------------------------
r342 | graf | 2009-06-07 19:06:30 +0200 (So, 07. Jun 2009) | 2 lines

- fixed FORCEPAIN logic.

------------------------------------------------------------------------
r341 | graf | 2009-06-07 18:49:30 +0200 (So, 07. Jun 2009) | 2 lines

- Added missing declaration for APowerInfiniteAmmo.

------------------------------------------------------------------------
r340 | graf | 2009-06-07 18:43:13 +0200 (So, 07. Jun 2009) | 19 lines

- implemented per-sidedef texture scaling for GL renderer.

Update to ZDoom r1648:

- added Gez's infinite ammo powerup and random spawner fix patches.
- reduced size of Hexen's flames to fix bug in Deathkings MAP01.
- added checks for sidedef scaling values 
- Added Karate Chris's poison cloud fix.
- Added per-tier texture scaling with these new UDMF sidedef properties:
  * scalex_top
  * scaley_top
  * scalex_mid
  * scaley_mid
  * scalex_bottom
  * scalex_bottom
- Added sidedef versions of the linedef flags wrapmidtex and clipmidtex (via
  UDMF; names are the same). If the flag is set on the line, it applies to
  both sides. Otherwise, each side can control them individually.

------------------------------------------------------------------------
r339 | graf | 2009-06-06 17:24:18 +0200 (Sa, 06. Jun 2009) | 26 lines

Update to ZDoom r1643

- Added Hirogen2's unlimited pickup patch.
- Added railgun performance customization CVARs by Spleen.
- Added aspect ratio override submission by SoulPriestess.
- Added a 'resetinventory' MAPINFO option.
- Added MF6_NOFEAR flag.
- Added A_MonsterRefire(probability, jumptarget).
- Added A_JumpIfTargetInSight(state) action function.
- Changed: Puffs set their angle to face the originator of the attack.
- Strife's burning hands originally make the level view fullbright.
  changed in ZDoom to do partial brightening.
- Added support for horizontal mouse wheels, and set invprev/invnext as
  default bindings for it. This is Vista only. DirectInput mouse (in_mouse 2)
  does not support it, because the DirectInput mouse device does not expose
  this control.
- Added a label for the F16 key and mapped the kp= key on a Mac keyboard to
  the PC98 equivalent so it will be identified as kp=. (Interestingly, F13-
  F16 and kp= only generate events when using Raw Input, not when using
  DirectInput.
- Added MF6_FORCEPAIN flag that forces the target to go into the pain state
  regardless of pain chance.
- Changed screenblocks CVAR to be settable per game.
- Added SpawnSpotForced and SpawnSpotFacingForced ACS functions.
- Added pushfactor actor property.
- Added Gez's GetArmorType submission
------------------------------------------------------------------------
r338 | graf | 2009-06-04 15:59:08 +0200 (Do, 04. Jun 2009) | 27 lines

- Update to ZDoom r1532:

- Swapped snes_spc out for the full Game Music Emu library.
- Fixed: The Hexen status bar still uses MAX_MANA for some calculations instead
  of MaxAmount.
- Added Blzut3's submission for displaying underwater stats in SBARINFO.
- Added Gez's AMMO_CHECKBOTH submission.
- Added Gez's THRUSPECIES submission.
- Added loading directories into the lump directory.
- fixed: The Dehacked parser could not parse flag values with the highest bit
  set because it used atoi to convert the string into a number.
- fixed: bouncing sounds were limited to inventory items.
- Rewrote IWAD detection code to use the ResourceFile classes instead of
  reading the WAD directory directly. As a side effect it should now be
  possible to use Zip and 7z for IWADs, too.
- Added 'EndTitle' nextmap option which goes to the regular title loop after
  the game has finished.
- Added NOBOSSRIP flag. Note: we are now at flags6!
- Added SetSkyScrollSpeed(int skyplane, fixed speed) ACS function.
- Added THRUACTORS flag that disables all actor<->actor collision detection.
- Added DONTSEEKINVISIBLE flag for missiles that can't home in on invisible
  targets.
- Added SFX_TRANSFERPITCH flag to A_SpawnItemEx.
- Added Ultimate Freedoom IWAD detection.
- Added GetAirSupply and SetAirSupply functions to ACS.
- Fixed: The *surface sound was not played when drowning was switched off
  by setting the level's air supply to 0.
------------------------------------------------------------------------
r337 | graf | 2009-06-04 15:57:26 +0200 (Do, 04. Jun 2009) | 1 line


------------------------------------------------------------------------
r336 | graf | 2009-06-02 19:41:17 +0200 (Di, 02. Jun 2009) | 2 lines

- fixed: warped sprites should not have their sizes adjusted which is done for removing some texture filtering artifacts.

------------------------------------------------------------------------
r335 | graf | 2009-05-28 08:40:58 +0200 (Do, 28. Mai 2009) | 1 line


------------------------------------------------------------------------
r334 | graf | 2009-05-28 01:41:58 +0200 (Do, 28. Mai 2009) | 10 lines

- Fixed: The mouse wheel generated no events in GUI mode if you weren't
  fullscreen. (e.g. You could no longer scroll the console with the mouse
  buffer.)
- Fixed: Wheeling down was seen as wheeling up with the Win32 mouse.
- EV_GUI_Key(Down|Up|Repeat) events no longer provide shifted key codes
  in data2. This was just unnecessary overhead that wasn't really needed
  anywhere.
- Moved GUI-mode input into a separate function to make the code easier to
  read.

------------------------------------------------------------------------
r333 | graf | 2009-05-28 00:16:34 +0200 (Do, 28. Mai 2009) | 31 lines

Update to ZDoom r1616:

- Removed HaveFocus variable in preference of using GetForegroundWindow().
- Added Raw Input keyboard handling.
- Split DirectInput keyboard handling into a separate file and class. I also
  switched it to buffered input, and the pause key seems to be properly
  cooked, so I don't need to look for it with WM_KEYDOWN/UP. Tab doesn't
  need to be special-cased either, because buffered input never passes on
  the Tab key when you press Alt+Tab. I have no idea why I special-cased
  Num Lock, but it seems to be working fine. By setting the exclusive mode
  to background, I can also avoid special code for releasing all keys when
  the window loses focus, because I'll still receive those events while the
  window is in the background.
- Fixed: The Heretic "take weapons" cheat did not remove all the weapons at
  once. This is because destroying one weapon has a potential to destroy a
  sister weapon as well. If the sister weapon is the next one in line (as it
  typically is), it would process that one, not realizing it was no longer
  part of the inventory, and stop because its Inventory link was NULL.
- Recoverable errors that are caught during the demo loop no longer shut off
  the menu.
- Specifying non-existent directories with -savedir or the save_dir cvar now
  attempts to create them.
- I_CheckNativeMouse() now checks the foreground window to determine if the
  mouse should be grabbed. This fixes the case where you start the game in
  the background and it grabs the mouse anyway.
- Changed raw mouse grabbing to call ShowCursor() directly instead of through
  SetCursorState(), since changing the pointer isn't working with it
  (probably due to the lack of legacy mouse messages), and the others work
  fine by setting an invisible cursor.
- Fixed: Raw mouse input passes wheel movements in an unsigned field, but the
  value is signed, so it requires a cast to use it.
------------------------------------------------------------------------
r332 | graf | 2009-05-25 23:39:05 +0200 (Mo, 25. Mai 2009) | 2 lines

- fixed: The glowing textures definition did not read a glow height resulting in an invalid value of 0.

------------------------------------------------------------------------
r331 | graf | 2009-05-24 10:59:32 +0200 (So, 24. Mai 2009) | 1 line

- added #define _WIN32_WINNT 0x0501 to i_mouse.cpp so that the file compiles with the Windows 2003 Server SDK.
------------------------------------------------------------------------
r330 | graf | 2009-05-24 10:16:12 +0200 (So, 24. Mai 2009) | 13 lines

Update zo ZDoom r1602:

- SetCursorState() now calls ShowCursor() again, because capturing the mouse
  with RIDEV_NOLEGACY apparently prevents SetCursor() from doing anything.
- Split mouse code off from i_input.cpp into i_mouse.cpp and added raw mouse
  handling. (WM_INPUT obsoleted most of DirectInput for XP.)
- Fixed: Similar to the Win32 mouse, using the DirectInput mouse in windowed
  mode, if you alt-tabbed away and then clicked on the window's title bar,
  mouse input would be frozen until the mouse was ungrabbed again.
- Fixed: Textures with dimensions <= 0 are invalid and should be treated as NULL 
  textures. They also must be set to dimensions other than (0,0) to avoid division
  by zero errors.
- Fixed: Random spawners did not handle the MF_DROPPED flag.
------------------------------------------------------------------------
r329 | graf | 2009-05-23 12:25:00 +0200 (Sa, 23. Mai 2009) | 2 lines

- didn't save project file.

------------------------------------------------------------------------
r328 | graf | 2009-05-23 12:24:33 +0200 (Sa, 23. Mai 2009) | 30 lines

Update to ZDoom r1600:

- Fixed: When setting up a deep water sector with Transfer_Heights the floorclip
  information of all actors in the sector needs to be updated.
- Fixed: A_CountdownArg and A_Die must ensure a certain kill.
- Fixed: When using Win32 mouse, windowed mode, alt-tabbing away and then
  clicking on the window's title bar moved it practically off the screen.
- Beginnings of i_input.cpp rewrite: Win32 and DirectInput mouse handling has
  been moved into classes.
- Changed bounce flags into a property and added real bouncing sound properties.
  Compatibility modes to preserve use of the SeeSound are present and the old
  flags map to these.
- Fixed: The SBARINFO parser compared an FString in the GAMEINFO with a NULL
  pointer and tried to load a lump with an empty name as statusbar script
  for non-Doom games.
- Fixed: SetSoundPaused() still needs to call S_PauseSound() to pause music
  that isn't piped through the digital sound system. (Was removed in r1004.)
- Added input buffering to the Implode and Shrink routines for a marked
  speedup.
- Replaced the Shanno-Fano/Huffman reading routines from FZipExploder with
  ones of my own devising, based solely on the specs in the APPNOTE.
- Found a copy of PKZIP 1.1 and verified that Implode support works with
  files that use a literal table and 8k dictionary, and that the just-added
  Shrink support works at all.
- Replaced the bit-at-a-time Shannon-Fano decoder from GunZip.c64 with the
  word-at-a-time one from 7-Zip for a slight speedup when working with
  Imploded files.
- Fixed: Monsters should not check the inventory for damage absorbtion when
  they have the MF5_NODAMAGE flag set.
- Added patch for saving automap zoom.
------------------------------------------------------------------------
r327 | graf | 2009-05-15 22:28:36 +0200 (Fr, 15. Mai 2009) | 2 lines

- light definition fix for Heretic.

------------------------------------------------------------------------
r326 | graf | 2009-05-15 22:22:56 +0200 (Fr, 15. Mai 2009) | 1 line

- added missing files
------------------------------------------------------------------------
r325 | graf | 2009-05-15 20:02:01 +0200 (Fr, 15. Mai 2009) | 73 lines

Update to ZDoom r1585:

- Added ACS GetChar function.
- Added Gez's submission for polyobjects being able to crush corpses but made
  it an explicit MAPINFO option only.
- Changed APlayerPawn::DamageFade to a PalEntry from 3 floats.
- Removed #pragma warnings from cmdlib.h and fixed the places where they were 
  still triggered.
  These #pragmas were responsible for >90% of the GCC warnings that were not
  listed in VC++.
- Fixed one bug in the process: DSeqNode::m_Atten was never adjusted when the
  parameter handling of the sound functions for attenuation was changed.
  Changed m_Atten to a float and fixed the SNDSEQ parser to set proper values. 
  Also added the option to specify attenuation with direct values in addition 
  to the predefined names.
- fixed a few Heretic actors:
  * The pod generator's attacksound was wrong
  * The teleglitter generators need different flags if they are supposed to work 
    with z-aware spawning of the glitter.
  * The knight's axes need the THRUGHOST flag.
- Fixed non-POD passing in G_BuildSaveName() and other things GCC warned
  about.
- Added support for imploded zips.
- Fixed: Some missile spawning functions ignored the FastSpeed setting.
- Fixed: P_CheckSwitchRange tried to access a line's backsector without
  checking if it is valid.
- Fixed: Fast projectile could not be frozen by the Time freezer.
- Added several new ACS functions: GetActorMomX/Y/Z, GetActorViewHeight,
  SetActivator, SetActivatorToTarget.
- Added Species property for actors and separated Hexen's Demon1 and Demon2
  into different species.
- Added handling for UDMF user keys.
- Added support for ACS functions that can be defined without recompiling ACC.
- Fixed: The short lump name for embedded files must be cleared so that they
  are not found by a normal lump search.
- Added AProp_Notarget actor property.
- Fixed: TraceBleed was missing a NULL pointer check,
- Fixed: P_RandomChaseDir could crash for friendly monsters that belong to
  a player which left the game.
- Changed A_PodGrow so that it plays the generator's attack sound instead of
  "misc/podgrow".
- Added transference of a select few flags from PowerProtection to its owner.
- Added actor type parameters to A_PodPain() and A_MakePod().
- The savegame path is now passed through NicePath(), since it's user-
  specifiable.
- Added save_dir cvar. When non-empty, it controls where savegames go.
- SBARINFO update:
  * Added the ability to center things with fullscreenoffsets enabled.  Due
    to some limitations the syntax is [-]<integer> [+ center].
  * Fixed: the translucent flag on drawinventorybar didn't work quite right.
  * Fixed: Extremely minor inaccuracy in the Doom SBarInfo code.  The
    fullscreen inventory bar wasn't scaled correctly.
- fixed: The CHECKSWITCHRANGE line flag was ignored for one sided lines.
- Added more compatibility settings, submitted by Gez.
- Fixed: Doom's fullscreen HUD was limited to 6 keys.
- Made 'next endgame' work again for cases where it is supposed to be
  the same as 'next endgame4'.
- GCC nitpick fix: Classes being used as template parameters may not be
  defined locally in a function. Fixed FWadFile::SetNamespace for that.
- Improved error reporting for incorrect textures in maps.
- Fixed: When music was stopped this was not set in the global music state.
- Fixed: Friendly monsters did not target enemy players in deathmatch.
- Fixed: Completely empty patches (8 0-bytes) could not be handled by the
  texture manager. They now get assigned a new FEmptyTexture object
  that is just a 1x1 pixel transparent texture.
- Fixed: Multiple namespace markers of the same type were no longer detected.
- Fixed sprite renaming.
- Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
  order.
- Fixed: FWadCollection::CheckNumForName() read the lump each iteration before
  checking for the end marker. On 32-bit systems, this is -1, but on 64-bit
  systems, it is a very large integer that is highly unlikely to be in mapped
  memory.
------------------------------------------------------------------------
r324 | graf | 2009-04-28 23:31:02 +0200 (Di, 28. Apr 2009) | 20 lines

Update to ZDoom r1662:

- Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking.
- Fixed handling of embedded WADs.
- Added Gez's A_CheckCeiling submission.
- Fixed: AM_NewResolution crashed when called from outside a level.
- Added support for Quake PAK files.
- Improved warning messages for WAD files with incorrect marker usage.
- complete restructuring of resource file handling for more flexibility and future
  extensions.
- Removed merging of special namespaces. For the texture manager this has
  become totally useless so there is no need to do this anymore. Not merging
  the namespaces also allows a much more reliable detection of lumps belonging
  to special namespaces so the ScanForFlatHack function is no longer needed.
  Instead, any lump up to F_END with a length of 4096 will be marked for 
  inclusion as a flat texture if no F_START marker is found.
- fixed MustConfirm parsing in MAPINFO
- Made the counting of intermission stats in Doom a GAMEINFO option so that
  it can be activated in all games.

------------------------------------------------------------------------
r323 | graf | 2009-04-19 16:32:59 +0200 (So, 19. Apr 2009) | 1 line


------------------------------------------------------------------------
r322 | graf | 2009-04-19 08:46:53 +0200 (So, 19. Apr 2009) | 46 lines

Update to ZDoom r1552:

- Gave the intermission screen sounds their own SNDINFO entries.
- Removed obsolete snd_surround cvar.
- Changing screen resolution now adjusts the automap scale to be constant
  relative to screen resolution.
- Fixed: When FMultiPatchTexture::MakeTexture() needed to work in RGB
  colorspace, it didn't zero out the temporary buffer.
- Fixed memory leak from leftover code for 7z loading and added the
  LUMPF_ZIPFILE flag to their contents so they have the same semantics
  as zips.
- Added support for 7z archives.
- Added -noautoload option.
- Added default Raven automap colors set. Needs to be tested because I can't
  compare against the DOS version myself.
- Extened A_PlaySound and A_StopSound to be able to set all parameters of the
  internal sound code.
- Changed gravity doubling so that it only happens when you run off a ledge.
- Fixed: World panning was ignored for the X offset of masked midtextures.
- Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground
  of a moving floor, regardless of movement speed. For NOBLOCKMAP items this
  is necessary because otherwise they can be left in the air and it also adds 
  some options for other things.
- Changed A_FreezeDeathChunks() so that instead of directly destroying an
  actor, it sets it to the "Null" state, which will make it invisible and
  destroy it one tic later.
- Added a NULL pointer check to A_Fire() and copied the target to a local
  variable inside A_VileAttack() so that if P_DamageMobj() destroys the
  target, the function will still have a valid pointer to it (since reading
  it from the actor's instance data invokes the read barrier, which would
  return NULL).
- Added NOBLOCKMAP/MOVEWITHSECTOR combination to a few items that had their
  NOBLOCKMAP flag taken away previously to make them move with a sector.
  This should fix the performance problem Claustrophobia had with recent
  ZDoom versions.
- Added MF5_MOVEWITHSECTOR flag, so you can have the benefits of MF_NOBLOCKMAP
  but still have actors that will move up and down with the floor. IceChunk
  now uses both of these flags.
- Performance optimization for FBlockThingsIterator::Next(): Actors that
  exist in only one block don't need to be added to the CheckArray or
  scanned for in it. Also changed the array used to keep track of visited
  actors into a hash table.
- added some default definitions for constants that may miss in some headers.
- replaced __va_copy with va_copy per Chris's suggestion.
- replaced #include <malloc.h> with #include <stdlib.h> where possible.

------------------------------------------------------------------------
r321 | graf | 2009-04-06 19:27:59 +0200 (Mo, 06. Apr 2009) | 23 lines

- fixed: Map wads with less than 4 lumps caused an endless loop in the gl nodes checking code.
  This condition is true for all UDMF maps with only a TEXTMAP lump.

Update to ZDoom r1523:

- Fixed: The UDMF textmap readbuffer was never freed.
- Fixed: GetPlayerInput() died if you tried to get the input of the activator
  and the activator was the world.
- fixed: Any player class inheriting directly from PlayerPawn was left with
  empty weapon slots due to the recent rewrite of the weapon slot assignment
  code. To handle such classes each game now defines a default weapon slot
  setting in its gameinfo. This will be used when a player class without any
  weapon slot settings is used.
- added 'damage' to the actor variables exported to DECORATE's expression
  evaluator.
- fixed: solid corpses could block ripper missile that originally killed them.
- Fixed: Doom's status bar was lacking its default face.
- Fixed: Custom skin face graphics were not added to the texture manager.
- Fixed: UseHealthItems() gave you health equal to the number of items in
  the stack of health items, rather than the item's proper amount.
- Fixed: SBARINFO's "usessecondaryammo" considered a weapon to not use
  secondaryammo if ammo2's type was the same as ammo1's, but only if you
  didn't use the "not" keyword with it.
------------------------------------------------------------------------
r320 | graf | 2009-04-01 08:53:43 +0200 (Mi, 01. Apr 2009) | 2 lines

- fixed GCC bug.

------------------------------------------------------------------------
r319 | graf | 2009-03-29 22:51:33 +0200 (So, 29. Mrz 2009) | 3 lines

- fixed: Non-translucent 3D-fog caused crashes.
- project file was not up to date.

------------------------------------------------------------------------
r318 | graf | 2009-03-29 13:21:36 +0200 (So, 29. Mrz 2009) | 55 lines

Update to ZDoom r1514:

- Fixed: Altering a link type with Sector_SetLink did not work.
- Fixed: player.crouchsprite had no proper means of unsetting the crouch
  sprite which is needed by the ChexPlayer.
- Fixed: A_ChangeFlags must unlink the actor from the world before changing
  the NOBLOCKMAP and NOSECTOR flags.
- Fixed: Dehacked string replacement did not check the clusters' finaleflats.
- Changed the definition of several typedef'd structs so that they are
  properly named.
- Limited DEHSUPP lump lookup to search zdoom.pk3 only. It will no longer
  be possible to load DEHSUPP lumps from user WADs.
- Brought back the text-based DEHSUPP parser and changed it to be able to 
  reference states by label. Also changed label names of 
  DoomUnusedStates and added proper labels to all states that were
  previously forced to be the first state of an actor so that the old
  (limited) method could access them. This was done to address the following
  bug:
- Fixed: The player's death states calling A_PlayerSkinCheck should not be
  part of the state set that is accessible by Dehacked. These will produce
  error messages when mapped to non-players.
- Fixed: Reading the RNG states from a savegame calculated the amounts of
  RNGs in the savegame wrong.
- Changed random seed initialization so that it uses the system's
  cryptographically secure random number generator, if available, instead
  of the current time.
- Changed the random number generator from Lee Killough's algorithm to the
  SFMT607 variant of the Mersenne Twister.
  <http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html>
- Made fmodex.dll delay-loaded so the game should be runnable on Windows 95
  again, though without sound.
- Changed gameinfo_t and gameborder_t to be named structs instead of
  typedef'ed anonymous structs.
- Fixed: P_AutoUseHealth() used autousemodes 0 and 1 instead of 1 and 2.
- Fixed: SBARINFO did not recognize 5:4 aspect ratio.
- Fixed: screenshot_dir was ignored.
- Removed some obsolete code from G_InitLevelLocals that was causing problems
  with maps that have no name.
- Fixed: The inner loop in AWeaponSlot::PickWeapon could endlessly loop when
  the counter variable became negative.
- Fixed: Implicitly defined clusters were not initialized when being created.
- Fixed: Item tossing did not work anymore.
- Changed: Making the gameinfo customizable by MAPINFO requires different
  checks for map specific border flats.
- removed gamemission variable because it wasn't used anywhere.
- removed gamemode variable. All it was used for were some checks that
  really should depend on GI_MAPxx.
- Externalized all internal gameinfo definitions.
- added include to MAPINFO parser.
- split IWAD detection code off from d_main.cpp into its own file.
- disabled gamemission based switch filtering because it is not useful.
- added GAMEINFO submission by Blzut3 with significant modifications. There
  is no GAMEINFO lump. Instead all information is placed in MAPINFO, except
  the data that is needed to decide which WADs to autoload.

------------------------------------------------------------------------
r317 | graf | 2009-03-23 23:54:28 +0100 (Mo, 23. Mrz 2009) | 2 lines

- fixed Linux build

------------------------------------------------------------------------
r316 | graf | 2009-03-21 22:16:03 +0100 (Sa, 21. Mrz 2009) | 2 lines

- fixed spawning on 3D floors.

------------------------------------------------------------------------
r315 | graf | 2009-03-21 09:08:18 +0100 (Sa, 21. Mrz 2009) | 24 lines

Update to ZDoom r1493:

- Added the current value of the string buffer to the state saved when
  making a function call in ACS. Now you can print inside functions and
  also return values from them for the caller to plug directly into
  another string without having to save it to a temporary variable.
- Added an OutputVolume() call after the MusicVolumeChanged() call in
  MIDIStreamer::Play(). Since the state isn't playing yet when
  MusicVolumeChanged() is called, it doesn't do this itself.
- Fixed: P_RailAttack() passed the wrong angle variable to P_TraceBleed().
- Fixed: S_StopSound may not assume that after stopping a sound channel
  its link to the next item in the list is still valid.
- Fixed typo in src/CMakeLists.txt.
- Fixed: Armor only worked for players.
- Fixed: P_FindFloorCeiling may not call P_PointInSector if called from
  P_SpawnMapThing. It must use the values the actor has been initialized to
  by LinkToWorldForMapThing.
- Added the -norun parameter to quit the game just before video
  initialization. To be used to check for errors in scripts without actually
  running the game.
- Added the -stdout parameter to the Windows version to send all output to
  a console, like the Linux version has done all along.
- Added support for loading ZGL2 nodes. (Only useful with UDMF and maps with
  more than 65534 lines.)
------------------------------------------------------------------------
r312 | graf | 2009-03-15 09:30:22 +0100 (So, 15. Mrz 2009) | 1 line

- Updated CMakeLists.txt
------------------------------------------------------------------------
r311 | graf | 2009-03-15 09:18:47 +0100 (So, 15. Mrz 2009) | 11 lines

Update to ZDoom r1481:

- Fixed: AWeapon::PickupForAmmo accessed ammo type 1 when checking ammo type2.
- Changed Linux default for fullscreen to false.
- Removed CVAR_SERVERINFO flag from compatmode. Since it writes to
  compatflags, that should be enough. Having that flag set for both of
  them leads to problems with e.g. loading a savegame, where compatflags is
  restored, then compatmode is restored and it completely undoes whatever
  compatflags was restored to.
- Fixed: Trying to start a map for some single file that isn't really a map
  caused a crash.
------------------------------------------------------------------------
r310 | graf | 2009-03-13 21:35:58 +0100 (Fr, 13. Mrz 2009) | 2 lines

- fixed some dependencies.

------------------------------------------------------------------------
r309 | graf | 2009-03-13 17:07:08 +0100 (Fr, 13. Mrz 2009) | 3 lines

- Fixed: After loading a savegame or unmorphing, a player's weapon slots
  were empty.

------------------------------------------------------------------------
r308 | graf | 2009-03-13 01:02:10 +0100 (Fr, 13. Mrz 2009) | 2 lines

-Add missing stuff.

------------------------------------------------------------------------
r307 | graf | 2009-03-12 21:59:09 +0100 (Do, 12. Mrz 2009) | 22 lines

Update to ZDoom r1476:


- Moved weapon slot initialization into APlayerPawn::PostBeginPlay() so that
  they can be initialized when players respawn in multiplayer.
- Added a Check for the Vavoom namespace to the UDMF parser. Functionally
  it's 100% identical with ZDoom's own but needs to be checked for in
  case Vavoom compatible UDMF maps are released.
- Added an SDL output plugin, so FMOD can produce sound using SDL's audio
  support instead of its own OSS/ALSA/ESD support. This is selectable by
  setting snd_output to "sdl".
- Fixed: On Linux systems with ALSA but no OSS support, trying to start
  the sound system with snd_output "default" would fail instead of trying
  to use ALSA.
- Added sdl_nokeyrepeat to disable key repeating in the menus and console
  on Linux.
- Added support for zip/pk3 files with LZMA and bzip2 compression to ZDoom.
- Added more output to zipdir and a -q option to turn it off.
- Added -u option to zipdir to only recompress those files in a zip that have
  changed. 
- Added -d and -f options to zipdir. -d forces deflate compression, and -f
  forces a write of the zip, even if it's newer than all the files it contains.
------------------------------------------------------------------------
r306 | graf | 2009-03-10 01:28:44 +0100 (Di, 10. Mrz 2009) | 3 lines

- fixed slope fix.


------------------------------------------------------------------------
r305 | graf | 2009-03-09 22:19:56 +0100 (Mo, 09. Mrz 2009) | 33 lines

- Fixed: Planes that got their z-position changed by slope things but did not
  actually get sloped were not rendered at the proper position.


Update to ZDoom r1465
- Fixed: P_CompleteWeaponSetup was missing a NULL pointer check for the player.
- Adjusted some gravity related thresholds for the fix from Feb 28. Also removed
  some unnecessary floating point math from this code.
- Added Hirogen2's patch for unlimited ammo CVAR.
- Fixed: You couldn't easily play with the compatibility options menu during
  the title screen, because the demo loop reset the server cvars after each
  attempt to play a demo, even though the demos never actually played. The
  proper long-term solution would be to make shadow copies of all cvars
  touched by demos and use those for the demo and the real things for
  everything else, but this should do for now and is a lot easier.
- Fixed: When using BOOM-style sector flags and specials together, the
  special was ignored unless it was "secret".
- Fixed: One byte is too short for DUMB_IT_SIGRENDERER to store song tempo.
  Changed it to a word.
- Went back to using RDTSC for timing on Win32. Ironically,
  QueryPerformanceCounter() is obviously using the TSC for its timing on my
  machine, yet the overhead it has to do to keep the timer sane is apparently
  noticeable on a few maps. I suppose I should at some time check
  clock_gettime() and see if it has similar issues on Linux.
- changed: If a monster with the BOSSDEATH flag is crushed A_BossDeath will
  be called now.
- fixed: D'Sparil's second form was missing the BOSSDEATH flag.
- fixed: D'Sparil's first form requires the DONTGIB flag.
- fixed: Heretic doesn't crush monsters. To handle this in a more generic
  fashion this depends on the presence of a gib sprite now.
- Changed burn and Acolyte death sequences so that they leave corpses that
  don't vanish.

------------------------------------------------------------------------
r303 | graf | 2009-03-01 11:19:26 +0100 (So, 01. Mrz 2009) | 71 lines

- version bump to 1.2.0.
- fixed: Some of the dynamic light definitions for Hexen's switchable items were not correct.
- fixed: Weapon sprites were all drawn fullbright if only one of the layers was set to bright.


Update to ZDoom r1456 (2.3.0 plus one additional fix):

- Fixed: AActor::SetOrigin must call P_FindFloorCeiling to get the true
  floor and ceiling heights. Otherwise the actor will fall right through
  3DMidtex textures (and 3D-floors.)

- Fixed: The TeleporterBeacon tried to enter its See state rather than its
  Drop state. Also changed it to fade out when it's done rather than
  disappearing abruptly.
- Fixed: Strife's quest based line actions also work in Deathmatch.
- Fixed: Gravity application was not correct. For actors with no vertical 
  momentum the initial pull is supposed to be twice as strong as when 
  vertical movement already takes place.
- added invquery CCMD like in Strife. Also removed all underscores from the
  tag strings so that they can be printed properly.
- Fixed: Skill baby was missing 'autousehealth' for all games.
- Added a new CVAR: sv_disableautohealth
- Autouse of health items is no longer hardwired to the default item classes. 
  There's a new property HealthPickup.Autouse. 0 means no autouse, 1 a small 
  Raven health item, 2 a large Raven health item and 3 a Strife item.
- Removed an early-out in wallscan_striped() that is invalid when drawing a
  skybox.
- fixed: nextmap and nextsecret CCMDs set skill to 0.
- fixed: level.flags2 was not stored in savegames. Also bumped min. savegame
  version and removed old compatibility handlings.
- The SFX Reverb unit is now moved so that it serves as an input to the water
  effect rather than as an input to the ChannelGroup Target Unit. This means
  the water effect is now applied after any room reverb, rather than in
  parallel with it.
- Fixed: UI sounds should not have reverb applied to them.
- Removed the delay for starting all sounds from one tic at exactly the same
  DSP position. Without also synchronizing the stopping of sounds, it can
  cause problems with things like the chainsaw where the sound is stopped and
  immediately restarted, causing occassional gaps between the stopping of the
  sound and the starting of the new one. (I added the start synchronization to
  combat flanging of paired moving polyobjects when moving around, but I think
  just removing velocity from the player for sound calculations takes care of
  that well enough.)
- Added GCC headers for intptr_t to tarray.h.
- Added MF5_PAINLESS flag for projectiles that don't make the target go into
  the pain state.
- Changed DEM_ADDSLOTDEFAULT, DEM_ADDSLOT, and DEM_SETSLOT to be more space-
  efficient.
- Fixed: player->oldbuttons was copied from the current button set at the end
  of P_PlayerThink(), well before ACS could ever get at it with GetPlayerInput.
- Fixed: The map name display on the automap was incomplete.
- Added FakeInventory.Respawns DECORATe property
- Fixed: Unsetting the MF5_INCONVERSATION flag did not work when quitting the
  conversation by pressing Escape.
- added ML_BLOCKPROJECTILE flag to lines.
- Fixed: With opl_onechip set the second OPL chip was never set to anything valid
  so it contained an invalid pointer. There were also a few other places that
  simply assumed that the second chip is set to something valid.
- Fixed: NPCs which are engaged in a conversation should not move.
- Fixed: Player movement animation was not stopped when starting a conversation.
- Added selective compression of network packets. Interestingly, most packets
  don't actually compress all that well, even the ones that aren't too short
  to possibly compress. (Maybe make the whole thing one long, never-ending
  zlib data stream with Z_SYNC_FLUSH used to chunk things at packet
  boundaries? That would probably help the compression ratio, but it would
  require changing the way the netcode determines sequence, which would be
  a much more invasive change.)
- Fixed: Heretic's fullscreen HUD crashed when the player had armor without
  a valid icon.
- Fixed: The StrifePlayer was missing a RunHealth setting.

------------------------------------------------------------------------
r302 | graf | 2009-02-21 18:07:32 +0100 (Sa, 21. Feb 2009) | 30 lines

Update to ZDoom r1433:

- Fixed: Untranslated colors in fonts had an alpha value of 0 but need 255.
- Fixed: The Doom status bar's ammo display may not use the INDEXFONT for 
  the alternative HUD. Instead it has to create a separate one out of the
  STYSNUM characters.
- Fixed: skins can not be sorted for binary search because the player class
  code depends on the original indices.
- Fixed: P_StartConversation set the global dialog node variable for all
  players, not just the consoleplayer.
- Fixed: AWeapon::PickupForAmmo assumed that any weapon having a secondary
  ammo type also has a primary one.
- Bumped netgame, demo and min demo version for the weapon slot changes.
- changed weapon slots to be stored per player. Information is now transmitted
  across the network so that all machines know each player's current weapon
  configuration so that it can be used by cheats or HUD display routines.
- fixed: level_info_t::mapbg was not initialized
- Fixed: Player names and chat macros that end with incomplete \c escapes now
  have those escapes stripped before printing so that they do not merge with
  subsequent text.
- Fixed: The CHARFORMAT structure that is used to set the color in a Windows
  Rich Edit control was not fully initialized resulting in incorrect colors
  being set.
- Moved default weapon slot assignments into the player classes.
  Weapon.SlotNumber is now used solely for mods that want to add new weapons
  without completely redoing the player's arsenal. Restored some config-based
  weapon slot customization, though slots are no longer automatically saved
  to the config and section names have changed slightly. However, unlike
  before, config slots are now the definitive word on slot assignments and
  cannot be overridden by any other files loaded.
------------------------------------------------------------------------
r301 | graf | 2009-02-20 10:24:51 +0100 (Fr, 20. Feb 2009) | 29 lines

Update to ZDoom r1425:

- Added MF5_CANTSEEK flag to prevent seeker missiles from homing in on
  certain actors and added an option to APowerInvisibility to set this
  flag when active.
- Added map specific automap backgrounds.
- Fixed: Voodoo dolls did not play a sound when dying.
- Added colorized error messages to DECORATE and made a few more error
  conditions that do not block further parsing not immediately abort.
- Made all errors in CreateNewActor not immediately fatal so that the
  rest of the DECORATE lump can be parsed normally to look for more errors.
- Fixed: Defining classes with the same name as their immediate base class
  was legal. It should not be allowed that a class has another one with the
  same name in its ancestry.
- Fixed: Formatting of the intermission screen on Heretic, Hexen and Strife
  was broken. Changed it to use WI_Drawpercent which does it properly and
  also allows showing percentage in these games now.
- Fixed: The MAPINFO parser ignored missing terminating braces of the last
  block in the file.
- Moved the V_InitFontColors() call earlier in the startup sequence so that
  colored error messages appear colored in the startup window. Also lightened
  up the "Flat" red to contrast better on the startup background.
- Changed I_InitInput() to acquire the IDirectInput8A interface by using
  DirectInput8Create() instead of CoCreateInstance(). This allows the Steam
  GameOverlayRenderer.dll to properly hook it.
- Stopped sending double the number of wheel events as appropriate to the
  console under Linux.
- Added middle mouse button selection pasting for X systems.

------------------------------------------------------------------------
r300 | graf | 2009-02-11 00:12:01 +0100 (Mi, 11. Feb 2009) | 2 lines

- fixed incomplete update of g_level.cpp.

------------------------------------------------------------------------
r299 | graf | 2009-02-09 01:11:41 +0100 (Mo, 09. Feb 2009) | 2 lines

- fixed parsing of cluster keyword when MAPINFO format is not yet known.

------------------------------------------------------------------------
r298 | graf | 2009-02-09 00:01:13 +0100 (Mo, 09. Feb 2009) | 52 lines

Update to ZDoom r1418:

- Fixed parsing for MustConfirm key in skill parser.
- Converted internal MAPINFOs to new syntax.
- Added a range parameter to SNDINFO's $limit.
- Restored Dehacked music name replacement.
- Added GUICapture mouse events for Win32.
- Changed I_GetFromClipboard() to return an FString.
- Added GTK+-based clipboard support for Linux.
- Fixed: Most Linux filesystems do not fill in d_type for scandir(), so we
  cannot rely on it to detect directories.
- Added NicePath() function to perform shell-style ~ substitution on path
  names.
- Changed the default screenshot directory on Unix to ~/.zdoom/screenshots/.
- Added -shotdir command line option to temporarily override the
  screenshot_dir cvar.
- Fixed: G_SerializeLevel must use the TEXMAN_ReturnFirst flag for getting
  the sky textures so that it still works when the first texture in a TEXTURE1
  lump is used as sky.
- Restored the old drawseg/sprite distance check from 2.0.63. The code that
  replaced it did the check at the center of the area intersected by the
  sprite and the drawseg, whereas 2.0.63 only did the check at the location
  of the sprite on the map.
- Commented out the CALL_ACTION(A_Look, actor) for targetless friendly
  monsters in A_DoChase(). They can still find new targets without this,
  and with it, they got stuck on the first frame of their see state.
- Fixed: Keys bound in a custom key section would unbind the key in the
  main game section.
- Fixed scrolling of the automap background on a rotated automap.
- Changed singleplayer allowrespawn to act like a co-op game when you
  change levels while dead by immediately respawning you before the switch
  so that you get to keep all your inventory.
- Fixed: G_InitLevelLocals() did not set flags2.
- fixed: The compatibility parser applied the last map's settings to all
  maps in the compatibility list.
- Added compatibility settings for a few more levels in some classic WADs.
- Added spechit overflow workaround for Strain MAP07. This is highly map
  specific because the original behavior cannot be restored.
- Added a check for Doom's IWAD levels that forces COMPAT_SHORTTEX for them.
  MD5 cannot be used well here because there's many different IWADs with 
  slightly different levels. This is only done for Doom format levels to
  ensure that custom IWADs for ZDoom are not affected.
- fixed: level.flags2 was not reset at level start.
- Fixed: Morph powerups can change the actor picking up the item so 
  AInventory::CallTryPickup must be able to return the new actor.
- Fixed: ACS's GiveInventory may not assume that a PlayerPawn is still
  attached to the player data after an item has been given.
- Added a missing NULL pointer check to DBaseStatusBar::Blendview.
- Added a compatibility lump because I think it's a shame that Void doesn't
  work properly on new ZDooms after all the collaboration I had with Cyb on
  that map. (Works with other maps, too.)

------------------------------------------------------------------------
r297 | graf | 2009-02-05 01:06:30 +0100 (Do, 05. Feb 2009) | 54 lines

- Update to ZDoom r1401:

- Made improvements so that the FOptionalMapinfoData class is easier to use.
- Moved the MF_INCHASE recursion check from A_Look() into A_Chase(). This
  lets A_Look() always put the actor into its see state. This problem could
  be heard by an Archvile's resurrectee playing its see sound but failing to
  enter its see state because it was called from A_Chase().
- Fixed: SBARINFO used different rounding modes for the background and
  foreground of the DrawBar command.
- Bumped MINSAVEVER to coincide with the new MAPINFO merge.
- Added a fflush() call after the logfile write in I_FatalError so that the
  error text is visible in the file while the error dialog is displayed.
- moved all code related to global ACS variables to p_acs.cpp where it belongs.
- fixed: The nextmap and nextsecret CCMDs need to call G_DeferedInitNew instead of G_InitNew.
- rewrote the MAPINFO parser:
  * split level_info_t::flags into 2 DWORDS so that I don't have to deal with 64 bit values later.
  * split off skill code into its own file
  * created a parser class for MAPINFO
  * replaced all uses of ReplaceString in level_info_t with FStrings and made the specialaction 
    data a TArray so that levelinfos can be handled without error prone maintenance functions.
  * split of parser code from g_level.cpp
  * const-ified parameters to F_StartFinale.
  * Changed how G_MaybeLookupLevelName works and made it return an FString.
  * removed 64 character limit on level names.
- Changed DECORATE replacements so that they aren't overridden by Dehacked.
- Fixed: The damage factor for 'normal' damage is supposed to be applied to
  all damage types that don't have a specific damage factor.
- Changed FMOD init() to allocate some virtual channels.
- Fixed clipping in D3DFB::DrawTextureV() for good by using a scissor test.
- Fixed: D3DFB::DrawTextureV() did not properly adjust the texture coordinate
  for lclip and rclip.
- Added weapdrop ccmd.
- Centered the compatibility mode option in the comptibility options menu.
- Added button mappings for 8 mouse buttons on SDL. It works with my system,
  but Linux being Linux, there are no guarantees that it's appropriate for
  other systems.
- Fixed: SDL input code did not generate GUI events for the mousewheel, so it
  could not be used to scroll the console buffer.
- Added Blzut3's statusbar maintenance patch.
- fixed sound origin of the Mage Wand's missile.
- Added APROP_Dropped actor property.
- Fixed: The compatmode CVAR needs CVAR_NOINITCALL so that the compatibility 
  flags don't get reset each start.
- Fixed: compatmode Doom(strict) was missing COMPAT_CROSSDROPOFF
- More GCC warning removal, the most egregious of which was the security
  vulnerability "format not a string literal and no format arguments".
- Changed the CMake script to search for fmod libraries by full name instead
  of assuming a symbolic link has been placed for the latest version. It can
  also find a non-installed copy of FMOD if it is placed local to the ZDoom
  source tree.
- Fixed: Some OPL state needs to be restored before calculating rhythm. Also,
  since only the rhythm section uses the RNG, it doesn't need to be advanced
  for the normal voice processing.

------------------------------------------------------------------------
r296 | graf | 2009-01-25 23:03:47 +0100 (So, 25. Jan 2009) | 24 lines

Update to ZDoom r1369:

- fixed some issues with P_FindFloorCeiling's coordinate processing.
- added a new compatmode CVAR which allows setting some generic compatibility 
  flag combinations:
  Doom: sets the options needed to make most Doom.exe compatible map play without
  errors.
  Doom (strict): Same as above but sets a few more options. Please note that this
  does not mean full Doom.exe behavior emulation.
  Boom: Sets all options that consider differences between ZDoom and Boom.
  ZDoom 2.0.63: Sets only the COMPATF_SOUNDTARGET option which is needed for
  many older ZDoom maps.
- added new COMPAT_CROSSDROPOFF option to block monsters from being pushed over
  dropoffs by damage kickback.
- fixed: AFastProjectile::Tick must call Effect only 8 times per tic, regardless
  of the amount of steps taken.
- fixed: momentum checks in AFastProjectile did not use absolute values.
- Restored the rhythm section to fmopl.cpp and made some slight updates from
  version 0.72 of MAME's fmopl.c. Also refactored CalcVoice so that the
  original MAME structure is more visible.
- Removed the SoundChans bitfield from AActor, since it seems there are race
  conditions I don't fully understand where it simply doesn't work.
- Removed BaseTime initialization from sdl/i_system.cpp as per Chris's
  recommendation.
------------------------------------------------------------------------
r295 | graf | 2009-01-24 01:21:58 +0100 (Sa, 24. Jan 2009) | 4 lines

- Fixed: The sight checking code didn't initialize the myseethrough variable.
- Fixed: With COMPAT_TRACE switched on linedef actions on lines having
  the same sector on both sides were not triggered.

------------------------------------------------------------------------
r294 | graf | 2009-01-18 10:42:37 +0100 (So, 18. Jan 2009) | 14 lines

Update to ZDoom r1358:

- Added a CopyInfo function to FTexture that contains all code required to 
  clone a texture. Used for creating warping textures.
- Fixed: P_FindFloorCeiling should not be called before setting the actor's z-
  coordinate. For testing 3D Midtex lines and 3D floors the proper position
  needs to be set first.
- Added option to specify the amount of ammo to be given by a WeaponGiver.
- fixed: Identification of Doom1 Freedoom IWAD did not work.
- fixed: UDMF did not initialize a sector's light colors.
- fixed implementation of DF2_NOAUTOAIM flag.
- fixed: Parsing of color strings with 6 characters and spaces did not work.
- fixed: State labels must be evaluated for the state's owner, not the calling actor.

------------------------------------------------------------------------
r293 | graf | 2009-01-14 00:45:24 +0100 (Mi, 14. Jan 2009) | 2 lines

- forgot to initialize the fliptop variable for skyboxes.

------------------------------------------------------------------------
r292 | graf | 2009-01-14 00:16:15 +0100 (Mi, 14. Jan 2009) | 2 lines

- added option to flip top face of skyboxes so that Q2 and other similarly formatted ones can be used directly.

------------------------------------------------------------------------
r291 | graf | 2009-01-13 20:55:48 +0100 (Di, 13. Jan 2009) | 3 lines

- fixed: forcenoskystretch had no effect
- fixed: P_LineOpening did not check a monster's step height when crossing lines bordering on 3D floors.

------------------------------------------------------------------------
r290 | graf | 2009-01-07 19:47:46 +0100 (Mi, 07. Jan 2009) | 5 lines

- fixed: interpolated sector movement did not update the 3d floor light lists for each step.
- fixed: Crushing polyobject did incomplete checks for blocked moves.
- renamed dummy window class used to retrieve OpenGL extensions because the name OpenGL was too generic.
- reordered IWAD checks.

------------------------------------------------------------------------
r289 | graf | 2009-01-04 20:33:06 +0100 (So, 04. Jan 2009) | 2 lines

- changed floor coordinate check for 3D floors. Now the actor's origin is checked, not its center.

------------------------------------------------------------------------
r288 | graf | 2009-01-04 18:06:46 +0100 (So, 04. Jan 2009) | 2 lines

- fixed: #includes in p_3dfloor.cpp should be outside the #ifdef.

------------------------------------------------------------------------
r287 | graf | 2009-01-04 16:56:30 +0100 (So, 04. Jan 2009) | 6 lines

- Fixed: For map spawns any change to an actor's floor z-coordinate must be 
  delayed until after its z-coordinate has been set. That means that for 
  map spawns AActor::StaticSpawn may not call P_FindFloorCeiling for such
  actors.
- Changes resulting from integrating 3D floor code into ZDoom.

------------------------------------------------------------------------
r286 | graf | 2009-01-04 13:52:41 +0100 (So, 04. Jan 2009) | 17 lines

- fixed: Decals on 3D floors were not displayed.

Update to ZDoom r1350:
- Used new functionality to avoid moving the puff around in SpawnDeepSplash.
- Fixed: P_RailAttack used the shooting actor or a default puff for some splash
  related actions. It should use the puff type passed to it as a parameter instead.
- Changed splash handling in P_LineAttack to use the actual hit position to
  spawn the splash and not the puff's spawn position which is offset a little.
- made some precision related changes to P_HitWater. The precise hit coordinate
  can now be passed as parameters.
- Made spawning of floor- and ceiling huggers a little more intelligent.
- Fixed: 'None' was no longer recognized as a NULL class name by the 
  DECORATE parser.
- Added 'ininventory item, amount' option to SBARINFO to check for a minimum 
  amount instead of mere presence in the inventory.
- Fixed: Door lock messages were overwritten by remote messages.

------------------------------------------------------------------------
r285 | graf | 2009-01-03 16:46:14 +0100 (Sa, 03. Jan 2009) | 7 lines

- replaced a few occurences of ONFLOORZ to work with 3D floors and 3DMidtex textures.
- fixed skyrotate option.
- fixed: 3D floors need to be spawned before the things. This was the reason why checking
  for the floor height did not work and which required a hack in P_ZMovement to prevent 
  actors from falling through 3D floors. Now that this is working I could also fix some
  other things, most importantly floor and ceiling huggers which until now ignored 3D floors.

------------------------------------------------------------------------
r284 | graf | 2009-01-03 14:00:40 +0100 (Sa, 03. Jan 2009) | 4 lines

- implemented Vavoom's seethrough and shootthrough options for 3D floors.
- Fixed: For Vavoom-type 3D floors the additive translucency flag was not checked.


------------------------------------------------------------------------
r283 | graf | 2009-01-03 09:52:56 +0100 (Sa, 03. Jan 2009) | 2 lines

- fixed rotating models

------------------------------------------------------------------------
r282 | graf | 2009-01-01 17:47:46 +0100 (Do, 01. Jan 2009) | 33 lines

Update to ZDoom r1344:

- Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types.
- Added a few missing NULL pointer checks to SBARINFO code.
- Changed pickup sounds of local player to unpaused to resolve problems with 
  the time freezer and make them behave better.
- Fixed: When sounds are paused not all newly started sounds should actually
  be played.
- Fixed: SBARINFO had no means to check if a weapon uses any ammo at all and
  as a result the inventory icon was misplaced if a no-ammo weapon was selected.
- Fixed: P_CheckMissileSpawn and AFastProjectile didn't adjust their
  calculations for missiles with small radii.
- Added a new aiming mode to A_CustomRailgun to aim directly at the target
  from the actual point the shot originates from.
- Added a constant name for Skulltag's 128 flag for A_SpawnItemEx. For 
  compatibility ZDoom needs to define this name, too, even though it doesn't 
  use it.
- Fixed: The nodebuilder could hang on badly set up polyobjects. Now it aborts 
  when the loop iterates NumberOfSegs times.
- Fixed: FMOD calls for setting the water reverb must check the return code
  for errors.
- Fixed: Hexen's dual attack weapons must check distance to targets in 3D,
  not 2D.
- Made several DECORATE errors which do not involve parsing non-fatal.
- Added a static error counter to FScriptPosition class.
- Changed initialization of actor class type properties: fuglyname is gone as
  is the postprocessing in FinishThingdef. Instead an empty placeholder class
  is now created when a class is first referenced and this placeholder is later
  filled in. 
- Added option to replace backslash with '^' in state frame definitions because
  the backslash is just causing too many problems because it's also an escape
  character.

------------------------------------------------------------------------
r281 | graf | 2008-12-31 13:01:30 +0100 (Mi, 31. Dez 2008) | 3 lines

- Fixed: The code to check seg coverage compared fixed point values with floats.
- Added a rotation vector for skyboxes. 

------------------------------------------------------------------------
r279 | graf | 2008-12-28 14:27:13 +0100 (So, 28. Dez 2008) | 14 lines

- Added Skulltag's HQ resite feature
- removed special handling for old ZSBSPs that threw out overlapping linedefs.
  If such nodes are encountered now a rebuild is forced instead of trying to
  work with the broken data.

- Update to ZDoom r1333:

- Added Karate Chris's new DMFlags submission.
- Fixed: The correct player class was not remembered when the menu had both
  a player class selection menu and an episode menu.
- Fixed: AddToConsole could write outside its working buffer.
- Fixed: 0 was no longer recognized as placeholder for 'no state' in A_Chase.
- Fixed: When picking up weapons the code did not check if it should switch away
  from weak weapons.
------------------------------------------------------------------------
r278 | graf | 2008-12-22 09:45:48 +0100 (Mo, 22. Dez 2008) | 2 lines

Linux fixes.

------------------------------------------------------------------------
r277 | graf | 2008-12-21 21:18:33 +0100 (So, 21. Dez 2008) | 2 lines

- fixed project file.

------------------------------------------------------------------------
r276 | graf | 2008-12-21 18:23:10 +0100 (So, 21. Dez 2008) | 3 lines

- fixes


------------------------------------------------------------------------
r275 | graf | 2008-12-21 13:40:15 +0100 (So, 21. Dez 2008) | 3 lines

- Added caching of vertex view angles per frame because recalculating this value is quite expensive and almost all vertices are processed at least twice.
- Preparations for caching visibility info per linedef.

------------------------------------------------------------------------
r274 | graf | 2008-12-21 11:17:32 +0100 (So, 21. Dez 2008) | 1 line

- Reimplemented the RDTSC based timer so that I can do profiling of the GL code again.
------------------------------------------------------------------------
r273 | graf | 2008-12-21 09:31:23 +0100 (So, 21. Dez 2008) | 42 lines

Update to ZDoom r1327:

- OggMod improperly decodes the right channel of stereo samples when sending
  them to OggEnc, so I have no choice but to convert them to mono by chopping
  off the right channel and only using the left channel information.
- Fixed: OggMod passes the raw sample data to OggEnc for stereo samples, so
  the resultant Vorbis stream is not actually stereo but mono with the right
  channel after the left. The two need to be interleaved just like
  uncompressed samples are.
- Removed the pattern length limit in the XM reader.
- Decal changes as per Xaser's suggestions: Smaller decal for PhoenixFX2,
  CrossbowFX2 and MaceFX4 were missing decals, and HornRodFX2 gets a whole
  new decal.
- Fixed: bfgscrc2.png had some holes in the middle that did not look so good.
  (From previously being handled through WinTex, maybe?)
- Fixed: Thing_ProjectileIntercept broke slightly when converted to the new
  vector math routines (almost two years ago!) because the original code
  multiplied down columns of the rotation matrix, but the new code multiplies
  across rows of the matrix instead. This is remedied by flipping the matrix
  across the x=y axis by reversing the sign of the sine value passed to the
  matrix constructor.
- Fixed: Autoloading a game (e.g. respawning after dying in single player)
  during demo playback prematurely ended demo control of the player.
- Fixed: Loading a multiplayer save with only one player crashed.
- Changed the co-op intermission screen to draw the stats with the small font.
- Added Karate Chris's patch to optionally specify an angle offset for
  summoning.
- Added Karate Chris's fix for Serpent Staff vampirism on teammates.
- Locks and teleporters now take precedence over one-sidedness for automap
  coloring.
- Increased maximum number of per-pattern rows for the XM loader from
  256 to 1024 to deal with a module that otherwise would not load.
- Removed the artificial restriction on not supporting Vorbis-compressed
  samples in XMs if they are stereo, since it turns out that OggMod does
  support them.
- Added a SECF_NORESPAWN flag for sectors that prevents players from being respawned
  in such a sector. As a workaround for current map formats a new actor
  (DoomEdNum 9041) was added that can set the extended sector flags without the
  use of ACS and sector tags. The new flag can also be set with Sector_ChangeFlags.
- Fixed: Players ignored MF2_TELESTOMP and always telefragged what was in the way.
- Fixed: Actors with MF5_NOINTERACTION were not affected by the time freezer.

------------------------------------------------------------------------
r272 | graf | 2008-12-20 16:21:58 +0100 (Sa, 20. Dez 2008) | 2 lines

- forgot to save the project file.

------------------------------------------------------------------------
r271 | graf | 2008-12-20 15:59:16 +0100 (Sa, 20. Dez 2008) | 4 lines

- fixed: GL renderer specific MAPINFO data was no longer parsed.
- removed old debug code
- added new structures to group segs and subsectors into continuous sections. This is for future feature enhancements.

------------------------------------------------------------------------
r263 | graf | 2008-12-12 19:36:17 +0100 (Fr, 12. Dez 2008) | 2 lines

- Restored a line of code that got accidentally deleted yesterday. 

------------------------------------------------------------------------
r262 | graf | 2008-12-12 01:50:32 +0100 (Fr, 12. Dez 2008) | 5 lines

- fixed: Before restoring the depth buffer after drawing a portal it must be ensured
  that the current alpha value is 1.0.
- Removed some dynamic light hack code that was no longer needed.
- Made dynamic light subclasses fully external.

------------------------------------------------------------------------
r260 | graf | 2008-12-08 22:56:39 +0100 (Mo, 08. Dez 2008) | 2 lines

- DECORATE parser fix for old style decorations.

------------------------------------------------------------------------
r259 | graf | 2008-12-07 18:48:36 +0100 (So, 07. Dez 2008) | 2 lines

- restored some code that got accidentally deleted by the last ZDoom update.

------------------------------------------------------------------------
r258 | graf | 2008-12-07 18:25:38 +0100 (So, 07. Dez 2008) | 2 lines

- fixed: FScriptPosition::Message did not print the message if it was not a fatal error.

------------------------------------------------------------------------
r255 | graf | 2008-12-07 17:47:12 +0100 (So, 07. Dez 2008) | 2 lines

- missing fixes

------------------------------------------------------------------------
r254 | graf | 2008-12-07 17:38:02 +0100 (So, 07. Dez 2008) | 34 lines

Update to ZDoom r1312:

- Fixed: The save percentage for Doom's green armor was slightly too low
  which caused roundoff errors that made it less than 1/3 effective.
- Added support for "RRGGBB" strings to V_GetColor.
- Fixed: Desaturation maps for the TEXTURES lump were calculated incorrectly.
- Changed GetSpriteIndex to cache the last used sprite name so that the code
  using this function doesn't have to do it itself.
- Moved some more code for the state parser into p_states.cpp.
- Fixed: TDeletingArray should not try to delete NULL pointers.
- Added binary (b) and hexadecimal (x) cast types for ACS's various print
  statements.
- Added ClassifyActor(tid) ACS builtin function. This takes a TID and returns
  a set of bits describing the actor. If TID is 0, it returns information
  about the activator. If there is more than one actor with the given TID,
  only the first one is considered. Currently defined bits are:
    ACTOR_NONE         No actors with this TID exist (only when TID is not 0).
    ACTOR_WORLD        Activator is the world (only when TID is 0).
    ACTOR_PLAYER       Actor is a player (includes bots and voodoo dolls).
    ACTOR_BOT          Actor is a bot.
    ACTOR_VOODOODOLL   Actor is a voodoo doll.
    ACTOR_MONSTER      Actor is a monster.
    ACTOR_ALIVE        Actor is alive (players/monsters only).
    ACTOR_DEAD         Actor is dead (players/monsters only).
    ACTOR_MISSILE      Actor is a missile.
    ACTOR_GENERIC      Actor exists, but no further information is available.
- Moved ExpandEnvVars() from d_main.cpp to cmdlib.cpp.
- AutoExec paths now support the same variable expansion as the search paths.
  Additionally, on Windows, the default autoexec path is now relative to
  $PROGDIR, rather than using a fixed path to the executable's current
  directory.
- All usable Autoload and AutoExec sections are now created at the top of
  the config file along with some brief explanatory notes so they are
  readily visible to anyone who wants to edit them.
------------------------------------------------------------------------
r253 | graf | 2008-12-07 00:37:13 +0100 (So, 07. Dez 2008) | 21 lines

- added an option to disable reflective planes because they can cause
  major slowdowns when used improperly.

Update to ZDoom r1306:

- Fixed: G_DoPlayDemo did not free the demobuffer or the CVAR backups when it
  failed to start the demo.
- Added a MF5_BRIGHT flag to always render an actor fullbright.
- Fixed: Calling Door_Animated with a non-zero tag created a new thinker
  for each two-sided line of the sector.
- Added Karate Chris's submission for making 'spray' a cheat.
- Added CO2's default parameter additions for several Doom code pointers
  submission.
- Added CO2's A_RemoveMaster/A_RemoveChildren submission.
- Added Blzut3's SBARINFO replacement for the Doom statusbar.
- Fixed: SBarInfo still displayed the wrong bar for height 0
- Added A_KillSiblings and A_DamageSiblings code pointers.
- added MaxAbsorb and MaxFullAbsorb properties for Armor.
- Restored the multiplayer scoreboard's former centering so that it doesn't
  look awful on widescreen intermissions.
- Fixed horizontal positioning of 'finished' on the Raven games when scaled.
------------------------------------------------------------------------
r250 | graf | 2008-12-06 00:45:13 +0100 (Sa, 06. Dez 2008) | 2 lines

- fixed 2 memory leaks

------------------------------------------------------------------------
r248 | graf | 2008-11-30 18:58:16 +0100 (So, 30. Nov 2008) | 3 lines

- Fixed: 'finished' wasn't drawn on the intermission because the space 
  check compared scaled with unscaled coordinates.

------------------------------------------------------------------------
r247 | graf | 2008-11-30 14:46:04 +0100 (So, 30. Nov 2008) | 31 lines

- Changed: Model skins are now maintained by the texture manager so that
  2 models can share the same skin now.

Update to ZDoom r1301:

- Changed: Textures without a name no longer get added to the texture manager's 
  hash chains.
- Fixed: specifying texture patches or font characters by full lump name instead
  of texture name didn't work. To do this properly the texture manager needs
  an option to look for a texture by lump number so that such textures can
  be maintained without interfering with regular operation.
- added 'skystretch' and 'autosequences' keywords for MAPINFO so that the effects
  of 'noautosequences' and 'forcenoskystretch' can be cancelled.
- Added a 'gamedefaults' section to MAPINFO after discovering that 'defaultmap'
  gets reset for each MAPINFO. A global section is needed to define a game's
  default setting in zdoom.pk3. The gamedefaults should normally not be changed 
  by PWADs but it can be done if some mod intends to change gameplay settings 
  but wants to allow custom add-ons on its own.
- Fixed alignment of "finished" line in WI_drawLF() when the level name is a
  graphic and scaled.
- It is now possible to replace the game's SmallFont with a single lump font
  called SMALLFNT.
- Reduced the width of the second column in wi_percents false mode from 3 to
  2 characters.
- Added a WISLASH graphic for Doom's intermission screen when wi_percents is
  false.
- Added: inventorybarnotvisible to check to see if the inventory bar is up.
- Added the following flags to drawselectedinventory center, centerbottom, and
  drawshadow.
- Fixed: The translucent flag for drawinventorybar should only have affected
  the artibox image.
------------------------------------------------------------------------
r246 | graf | 2008-11-28 00:35:19 +0100 (Fr, 28. Nov 2008) | 2 lines

- gzdoom.pk3 changes.

------------------------------------------------------------------------
r245 | graf | 2008-11-28 00:28:48 +0100 (Fr, 28. Nov 2008) | 12 lines

Update to ZDoom r1297:
- WI_drawLF() now draws the level name at the top of the screen, always.
- Fixed: disabling lowerHealthCap didn't affect interpolateHealth.
- The co-op summary screen now has a totals row at the bottom (if it fits).
- Changed WI_drawPercent() when wi_percents is false so that the total
  display is optional, and it formats it like Heretic's intermission, with
  a slash and a fixed-width right column.
- Font is no longer a property of the screen object. Pass the font to
  DrawText and DrawChar directly instead.
- Doom's intermission characters are now collected together as a font
  so they can be colorized.
- Fixed: compatf_limitpain must check for 21 Lost Souls, not 20.
------------------------------------------------------------------------
r239 | graf | 2008-11-16 23:50:22 +0100 (So, 16. Nov 2008) | 3 lines

- version bump to 1.1.06


------------------------------------------------------------------------
r238 | graf | 2008-11-16 23:48:12 +0100 (So, 16. Nov 2008) | 3 lines

- Changed gl_fog_shader into a master switch for shader based fog effects so that it is easier to disable use of shaders.
- fixed: The mage wand's projectile was not properly updated for the addition of the FastProjectile class.

------------------------------------------------------------------------
r235 | graf | 2008-11-15 11:01:46 +0100 (Sa, 15. Nov 2008) | 3 lines

- moved common code of Raven's fast projectiles into a base class
  called FastProjectile. This base class doesn't have any effects attached
  so that it can be used for user defined fast projectiles.
------------------------------------------------------------------------
r234 | graf | 2008-11-15 10:16:06 +0100 (Sa, 15. Nov 2008) | 20 lines

- Fixed: The environment map for mirrors no longer displayed properly when shaders 
  were used for fog.
- deleted obsolete g_hexen/a_weaponpieces.cpp file


Update to ZDoom r1189:

- Fixed: S_RelinkSounds() did not move the SoundChans bitfield to the new
  actor.
- Fixed: Stolen channels could be kept around by the high-level channels
  indefinitely.
- Fixed: AMageStaffFX2::IsOkayToAttack() / A_MStaffAttack aimed at friendlies.
- Added kill count awareness to A_ChangeFlag.
- P_NightmareRespawn() now clears the MTF_AMBUSH flag, so respawned monsters
  aren't dormant (since there would be no way to activate them, and they
  were certainly not dormant when they died).
- Made sdl/i_system.cpp:I_GetTimePolled() functionally equivalent to the
  Win32 version.
- Updated fmod_wrap.h and fmodsound.cpp for FMOD 4.20.
- GCC warning removal.
------------------------------------------------------------------------
r233 | graf | 2008-11-11 00:32:39 +0100 (Di, 11. Nov 2008) | 2 lines

- after experiencing several crashes in RTC-3057 in the hudmessage code I replaced strbin with a version that creates a copy for the modified string.

------------------------------------------------------------------------
r228 | graf | 2008-11-09 10:19:23 +0100 (So, 09. Nov 2008) | 3 lines

- fixed: Light mode 2 must force use of shaders.
- fixed: At the start of a scene textures must be enabled.

------------------------------------------------------------------------
r227 | graf | 2008-11-09 09:25:20 +0100 (So, 09. Nov 2008) | 4 lines

- Updated fmod_wrap.h and fmodsound.cpp for FMOD 4.20.
- GCC warning removal.
- SBARINFO update

------------------------------------------------------------------------
r225 | graf | 2008-11-08 17:27:44 +0100 (Sa, 08. Nov 2008) | 2 lines

- Reverted recent change to angle conversion macros because it didn't work.

------------------------------------------------------------------------
r220 | graf | 2008-11-08 10:54:40 +0100 (Sa, 08. Nov 2008) | 1 line

- Removed some unused code.
------------------------------------------------------------------------
r219 | graf | 2008-11-07 23:15:39 +0100 (Fr, 07. Nov 2008) | 2 lines

- Removed some debug code.

------------------------------------------------------------------------
r218 | graf | 2008-11-07 21:55:36 +0100 (Fr, 07. Nov 2008) | 1 line

- fixed: Radial fog didn't work with models and XY-billboarded sprites.
------------------------------------------------------------------------
r216 | graf | 2008-11-04 08:58:22 +0100 (Di, 04. Nov 2008) | 3 lines

- updated CMakeLists.txt
- replaced use of min/max with ZDoom's MIN/MAX in gl_walls.cpp.

------------------------------------------------------------------------
r215 | graf | 2008-11-04 00:06:02 +0100 (Di, 04. Nov 2008) | 1 line


------------------------------------------------------------------------
r214 | graf | 2008-11-03 20:36:22 +0100 (Mo, 03. Nov 2008) | 1 line

- fixed: The new shader code didn't properly check for colormaps
------------------------------------------------------------------------
r213 | graf | 2008-11-03 19:42:24 +0100 (Mo, 03. Nov 2008) | 2 lines

- removed glsl_renderer option because it wasn't going to work.

------------------------------------------------------------------------
r212 | graf | 2008-11-03 19:33:40 +0100 (Mo, 03. Nov 2008) | 5 lines

- Fixed: Shaders didn't work on untextured surfaces. Unfortunately this required a totally
  different approach to shader handling because I can no longer assume that shaders are used only
  when textures are active.


------------------------------------------------------------------------
r211 | graf | 2008-11-03 00:48:39 +0100 (Mo, 03. Nov 2008) | 5 lines

- replaced old glowing code with a new shader based implementation. I made no attempts to preserve the old code because it was fundamentally broken and beyond repair.
  The advantage of this is much simpler code that trivially handles slopes.
  The downside is that this doesn't work on old hardware anymore.
- fixed: Screenshots on fake widescreen ratios retrieved the wrong part of the render buffer.

------------------------------------------------------------------------
r210 | graf | 2008-11-02 13:27:18 +0100 (So, 02. Nov 2008) | 5 lines

- cleaned up gl_functions.h.
- changed parameters for gl_SetFog.
- fixed: Missing state labels should result in a warning, not an error.
- renamed GL coordinate conversion macros.

------------------------------------------------------------------------
r209 | graf | 2008-11-02 10:18:03 +0100 (So, 02. Nov 2008) | 3 lines

- fixed: lightmode 2 must set its parameters with fog, not light.
- fixed: lightmode 2 must force use of shaders.

------------------------------------------------------------------------
r208 | graf | 2008-11-02 00:56:10 +0100 (So, 02. Nov 2008) | 2 lines

- fixed light mode menu item.

------------------------------------------------------------------------
r207 | graf | 2008-11-02 00:16:37 +0100 (So, 02. Nov 2008) | 2 lines

- gl_shader.cpp was accidentally deleted.

------------------------------------------------------------------------
r206 | graf | 2008-11-02 00:13:58 +0100 (So, 02. Nov 2008) | 3 lines

-fixed: The brightmap flag for textures was not initialized.
-fixed: The shader multiplied all color channels with the light factor, including alpha.

------------------------------------------------------------------------
r205 | graf | 2008-11-02 00:00:41 +0100 (So, 02. Nov 2008) | 2 lines

- fixed: Texture render mode was not reset after the decal pass.

------------------------------------------------------------------------
r204 | graf | 2008-11-01 21:28:39 +0100 (Sa, 01. Nov 2008) | 4 lines

- applied GuntherDW's Linux patch
- fixed check for transparent doors
- fixed light factor calculations for very low light levels.

------------------------------------------------------------------------
r202 | graf | 2008-11-01 18:36:19 +0100 (Sa, 01. Nov 2008) | 4 lines

- Version bump to 1.1.5.
- Cleaned up the OpenGL options menu.
- Fixed: Shader-based options need to be disabled when no shader support is found.

------------------------------------------------------------------------
r201 | graf | 2008-11-01 17:04:24 +0100 (Sa, 01. Nov 2008) | 2 lines

- added a new shader-based lighting mode that's a bit closer to Doom's software renderer than the existing modes.

------------------------------------------------------------------------
r200 | graf | 2008-11-01 12:34:06 +0100 (Sa, 01. Nov 2008) | 5 lines

- Changed creation for colormap-based brightmaps. Textures will only be created after verifying that they are needed now.
- merged FTexture's gl_info and bm_info into one and cleaned up its use.
- changed GL texture handling so that it doesn't have to rely on ZDoom's GetNative method to avoid deletion of the GL texture data.
- fixed: Binding a brightmap for a wall or flat texture called the wrong overloaded version of GFLTexture::Bind.
- fixed: The brightmap check for Strife used incorrect logic and flagged all palettes as having brightmaps,
------------------------------------------------------------------------
r199 | graf | 2008-10-31 22:50:25 +0100 (Fr, 31. Okt 2008) | 2 lines

- fixed: blood decals didn't work with gl_fog_shader

------------------------------------------------------------------------
r198 | graf | 2008-10-31 19:50:35 +0100 (Fr, 31. Okt 2008) | 3 lines

- fixed shader based fog for sprites.
- added radial fog. This only works if shader fog is on.

------------------------------------------------------------------------
r197 | graf | 2008-10-31 17:52:55 +0100 (Fr, 31. Okt 2008) | 2 lines

- added gl_fog_shader CVAR to draw all polygons with fog using GLSL shaders. This should eliminate the annoying ATI fog bug if enabled.

------------------------------------------------------------------------
r196 | graf | 2008-10-29 17:14:34 +0100 (Mi, 29. Okt 2008) | 3 lines

- Fixed: FxClassTypeCast::Resolve didn't work for NULL classes because a variable
  was not initialized.

------------------------------------------------------------------------
r195 | graf | 2008-10-28 23:56:10 +0100 (Di, 28. Okt 2008) | 6 lines

- Fixed: The railgun attack functions still read their puff parameters as names
  even though they are now passed as class pointers.
- Fixed: The state parser counted one parameter too many for a varargs function.
- Fixed: FStateExpressions could copy unresolved default parameter expressions.
  When these were resolved and changed later all copied pointers pointed to
  invalid data.
------------------------------------------------------------------------
r194 | graf | 2008-10-26 20:50:53 +0100 (So, 26. Okt 2008) | 3 lines

- fixed: Strife's palette based brightmaps didn't work anymore.
- forgot to copy the weapon state jump fix from ZDoom.

------------------------------------------------------------------------
r193 | graf | 2008-10-26 18:06:41 +0100 (So, 26. Okt 2008) | 4 lines

- Fixed: Items which should stay but had an IF_ALWAYSPICKUP flag were removed.
- Fixed: The pickup flash must only play when an item is picked up so the 
  correct place to spawn it is in AInventory::Touch, not in AInventory::GoAway.

------------------------------------------------------------------------
r192 | graf | 2008-10-26 17:18:03 +0100 (So, 26. Okt 2008) | 2 lines

- added write barriers to sound code's actor pointer.

------------------------------------------------------------------------
r191 | graf | 2008-10-26 16:00:57 +0100 (So, 26. Okt 2008) | 2 lines

- added proper GC handling for the actor pointer in the sound channel.

------------------------------------------------------------------------
r190 | graf | 2008-10-26 09:39:39 +0100 (So, 26. Okt 2008) | 2 lines

Sound crash test.

------------------------------------------------------------------------
r189 | graf | 2008-10-25 23:48:56 +0200 (Sa, 25. Okt 2008) | 19 lines

Update to ZDoom r1276:

- Added NULL checks to all places where class names are passed as DECORATE
  parameters.
- All DECORATE parameters are passed as expressions now. This change allows
  for compile time checks of all class names being used in DECORATE so many
  incorrect definitions may output warnings now.
- Changed: S_StopChannel now resets the actor's sound flags. The previous bug
  made me think that delaying this until FMod calls the end of sound callback 
  may simply be too late.
- Changed DECORATE sound and color parameters to use expressions.
- Added a proper function parser to the expression evaluator and converted
  sin/cos and action specials to use it. The old evaluator is gone now.
- fixed some GCC problems with autosegs.
- Game time is now frozen during screen wipes. This obsoletes the DEM_WIPEON
  and DEM_WIPEOFF commands. Fixes multimap demos desyncing when played back
  or recorded with wipes enabled, and prevents multiplayer games from
  starting until all players' wipes have finished.

------------------------------------------------------------------------
r188 | graf | 2008-10-24 16:49:50 +0200 (Fr, 24. Okt 2008) | 3 lines

- Fixed: The high level sound code must not rely on FMod immediately returning 
  the sound channel data when a sound is being stopped. This caused
  an endless loop when changing levels with Strife's Flamethrower active.
------------------------------------------------------------------------
r187 | graf | 2008-10-20 00:24:34 +0200 (Mo, 20. Okt 2008) | 48 lines

- Fixed: The trace code could pass a temporary sector struct with its result.

Update to ZDoom r1271:
- Added native variables to expression evaluator and replaced the previous
  handling of actor variables in expressions with it.
- Added support for floating point constants to DECORATE expression evaluator.
- Rewrote the SeePastShootableLines check in P_SightCheckLine() to be
  more readable.
- Commented out the MugShot state nulling in DSBarInfo::AttachToPlayer() so
  that fiddling with player options does not reset the mug shot.
- Fixed: SetMugShotState ACS command did not pop the stack.
- Added a global symbol table and changed DECORATE parser to put its global 
  symbols there instead of into AActor.
- Changed the expression evaluator's floating point precision to double.
- Started rewriting the DECORATE expression evaluator to allow more flexibility.
  All the operators use the new functionality but functions, variables and
  constants are yet to be redone.
  While doing this rewrite I noticed that random2 was always evaluated as const.
  This got fixed automatically.
- This may or may not be a problem, but GCC warned that FStateDefinitions::
  AddStateDefines() does not initialize def.FStateDefine::DefineFlags, so
  I fixed that.
- Fixed: The three-argument version of AActor::FindState() initialized a
  two-entry array for passing to the main FindState() routine, but did
  not actually pass it, passing the original primary label instead.
- Fixed: SDL builds did not shutdown the sound system at exit.
- Fixed: ThingCountSector and ThingCountNameSector did not remove enough
  entries from the stack, and did not put the result in the right slot.
- Fixed: Teleport lines were prioritized over secret lines when deciding what
  color to draw them on the automap.
- Fixed: Death-reverting morphs did not remove the morph item from the
  player's inventory when death caused the morph to revert.
- Updated fmod_wrap.h for FMOD Ex 4.18.
- Fixed: The TEXTURES parser could copy beyond the end of a string when parsing
  a 'define' definition.
- Fixed: Cheats in demos must not access the weapon slots.
- Fixed: S_ChannelEnded didn't check for a NULL SfxInfo.
- Fixed: R_InitTables did a typecast to angle_t instead of fixed_t.
- Fixed: PowerProtection and PowerDamage applied their defaults incorrectly.
- Fixed: The damage type property didn't properly read its factor.
- Finally has the right idea how to restore Doom's original clipping of projectiles
  against decorations without breaking anything newer:
  Added a new 'projectilepassheight' property that defines an alternative height
  that is only used when checking a projectile's movement against this actor.
  If the value is positive it is used regardless of other settings, if it is
  negative, its absolute will be used if a new compatibility option is enabled
  and if it is 0 the normal height will be used.

------------------------------------------------------------------------
r186 | graf | 2008-10-05 11:11:36 +0200 (So, 05. Okt 2008) | 7 lines

- Fixed: Powerup.Color's handler contained an unnecessary 'else' which resulted
  in opaque powerup blends.
- Fixed: Resurrecting a player didn't unset the RF_INVISIBLE flag which is
  set when the player is crushed to gibs under a door.
- Fixed: Dropitem gave incorrect amounts to the item if a probability was set.
- Fixed: weapon.ammogive2 always gave 2 amounts of ammo.
- Fixed: The translation string parser printed a broken error message.
------------------------------------------------------------------------
r185 | graf | 2008-09-30 00:59:15 +0200 (Di, 30. Sep 2008) | 2 lines

- Bug test for Enjay.

------------------------------------------------------------------------
r184 | graf | 2008-09-29 00:18:50 +0200 (Mo, 29. Sep 2008) | 4 lines

- Fixed: Dropitem gave incorrect amounts to the item if a probability was set.
- Fixed: weapon.ammogive2 always gave 2 amounts of ammo.
- Fixed: The translation string parser printed a broken error message.

------------------------------------------------------------------------
r183 | graf | 2008-09-26 00:57:02 +0200 (Fr, 26. Sep 2008) | 3 lines

- Fixed: player.colorrange didn't read the parameters correctly.
- Reverted an 'optimization' in d_dehacked.cpp that didn't work.

------------------------------------------------------------------------
r182 | graf | 2008-09-26 00:14:26 +0200 (Fr, 26. Sep 2008) | 2 lines

- Fixed: UDMF maps didn't get their sectors fully initialized for GL rendering.

------------------------------------------------------------------------
r181 | graf | 2008-09-23 23:41:49 +0200 (Di, 23. Sep 2008) | 53 lines

Update to ZDoom r1246:

- Used the one unused byte in the state structure as a flag to tell what type
  the NextState parameter is. The code did some rather unsafe checks with it
  to determine its type.
- moved all state related code into a new file: p_states.cpp.
- merged all FindState functions. All the different variations are now inlined
  and call the same function to do the real work.
- did some code cleanup and reorganization in thingdef.cpp.
- Replaced the translation parser for TEXTURES with FRemapTable::AddToTranslation.
- To get the game name the screenshot code might as well use the globally
  available GameNames array instead of creating its own list.
- Moved backpack names for cheat into gameinfo.
- Fixed: SNDINFO must be loaded before the textures. However, this required
  some changes to the MAPINFO parser which tried to access the texture manager
  to check if the level name patches exist. That check had to be moved to
  where the intermission screen is set up.
- Fixed: 'bloodcolor' ignored the first parameter value when given a list
  of integers.
  Please note that this creates an incompatibility between old and new 
  versions so if you want to create something that works with both 2.2.0
  and current versions better use the string format version for the color
  parameter!
- Rewrote the DECORATE property parser so that the parser is completely
  separated from the property handlers. This should allow reuse of all 
  the handler code for a new format if Doomscript requires one.
- Fixed: PClass::InitializeActorInfo copied too many bytes if a subclass's
  defaults were larger than the parent's.
- Moved A_ChangeFlag to thingdef_codeptr.cpp.
- Moved translation related code from thingdef_properties.cpp to r_translate.cpp
  and rewrote the translation parser to use FScanner instead of strtol.
- replaced DECORATE's 'alpha default' by 'defaultalpha' for consistency.
  Since this was never used outside zdoom.pk3 it's not critical.
- Removed support for game specific pickup messages because the only thing
  this was ever used for - Raven's invulnerability item - has already been
  split up into a Heretic and Hexen version.
- Fixed: The Timidity config parser always tried to process the note number,
  even if it wasn't specified.
- Fixed: When UpdateJoystickMenu() modifies the menu items for different
  controllers, the joystick axis selectors need to NULL the d.graycheck
  field, since this is shared by the axis sensitivity sliders' step values.
- Fixed: The crosshair must be initialized after the texture manager because
  on the fly texture creation for graphics patches is no longer supported.
- Fixed a few Linux compile errors.
- Changed: Replaced weapons should not be given by generic cheats, only
  when explicitly giving them.
- Changed 'give weapon' cheat so that in single player it only gives weapons
  belonging to the current game or are placed in a weapon slot to avoid
  giving the Chex Quest weapons in Doom and vice versa.
- Fixed: The texture manager must be the first thing to be initialized
  because MAPINFO and DECORATE both can reference textures and letting them
  create their own textures is not safe.

------------------------------------------------------------------------
r180 | graf | 2008-09-17 00:35:23 +0200 (Mi, 17. Sep 2008) | 1 line

- added 3 missing files.
------------------------------------------------------------------------
r179 | graf | 2008-09-16 01:47:00 +0200 (Di, 16. Sep 2008) | 15 lines

Update to ZDoom r1229:

- Separated low level sound code from all high level dependencies.
- Separated low level sound channel class from high level class which now
  is just a subclass of the low level class.
- Moved some more high level sound logic out of FMODSoundRenderer:
  The rolloff and channel ended callbacks now call functions in s_sound.cpp
  instead of working on the data itself and GSnd->StopSound has been replaced
  with S_StopChannel.
- Changed compilation for g_doom, g_heretic, g_hexen and g_strife folders so 
  that all files are included by a central one instead of compiling each one 
  separately. This speeds up the compilation process by 25% when doing a 
  complete rebuild in Visual C.
- Cleaned up some include dependencies.

------------------------------------------------------------------------
r178 | graf | 2008-09-15 09:28:57 +0200 (Mo, 15. Sep 2008) | 1 line

- added dependency fix for generated PK3 files
------------------------------------------------------------------------
r177 | graf | 2008-09-14 12:50:36 +0200 (So, 14. Sep 2008) | 2 lines

- fixed: For Chex Quest some CVars were initialized to Heretic's default.

------------------------------------------------------------------------
r175 | graf | 2008-09-14 09:03:28 +0200 (So, 14. Sep 2008) | 55 lines

Update to ZDoom r1222

- Moved IF_ALWAYSPICKUP and GiveQuest into CallTryPickup so that they are
  automatically used by all inventory classes.
- The previous change made it necessary to replace all TryPickup calls with
  another function that just calls TryPickup.
- Fixed: AInventory::TryPickup can change the toucher so this must be reported
  to subclasses calling the super function. Changed TryPickup to pass the
  toucher pointer by reference.
- Prefixed all names of CQ decorations with Chex after seeing some conflicts
  with PWADs.
- Removed Chex Quest actors that were just unaltered duplicates of Doom's.
- Added detection for Chex Quest 3 IWAD.
- Cleaned up M_QuitGame because the code was almost incomprehensible and I
  wanted to add CQ3's new quit messages.
- Added Chex Quest obituaries and a few other messages from CQ3.
- Fixed: drawbar improperly clipped images when not in the top left quadrant.
- Fixed: Crouching no longer worked due to a bug introduced by the
  player input code.
- Added GetPlayerInput() for examining a player's inputs from ACS. Most
  buttons are now passed across the network, and there are four new user
  buttons specifically for use with this command. Also defined +zoom
  and +reload for future implementation.
- Fixed: Hexen's fourth weapon pieces did not play the correct pickup sound,
  and when they were fully assembled, they did not play the sound across the
  entire level.
- Antialiasing of lines is now controlled solely by the vid_hwaalines cvar,
  ignoring what the driver reports, since ATI is apparently just as bad as
  NVidia.
- Added a check for D3DLINECAPS_ANTIALIAS, but this is complicated by the
  fact that NVidia's don't report it, even though they support it. If there
  are any cards that no longer have antialised lines on the automap, please
  let me know.
- Added vid_hwaalines cvar to force antialiased lines off for the
  Direct3D renderer, in case it doesn't really support them.
- Fixed: The new rolloff values being stored in FSoundChan need to be serialized
  for savegames.
- Since loading of the sound lump is now done in S_LoadSound I added an IsNull
  method to the SoundRenderer class so that this function doesn't need to 
  load the sound for the NullSoundRenderer.
- Took some more non-FMOD related code out of fmodsound.cpp, including the
  code that checks for raw and Doom sounds. This means that sfxinfo_t is no
  longer needed in the SoundRenderer class so I took out all references to it.
- Fixed: FMODSoundRenderer::StartSound3D must set the static variable pointing
  to the rolloff information back to NULL when starting the sound fails.
- Fixed: Rolloff information was taken from the sfxinfo that contained the
  actual sound data, not the one that was used for starting the sound.
- Fixed: Chex Quest's Super Bootspork was missing the pickup message.
- Added missing Strife automap colors for items and non-monsters.
- Fixed: GetMSLength didn't resolve random and player sounds.
- Moved sound aliasing code out of fmodsound.cpp into S_LoadSound.
- Fixed: The tagged version of TranslucentLine took the information for additive
  translucency from the tagged linedef, not the control linedef.
- Added check for additive translucency to TRANMAP checking.

------------------------------------------------------------------------
r174 | graf | 2008-09-06 19:07:27 +0200 (Sa, 06. Sep 2008) | 3 lines

- Changed listener structure to directly contain the sound environment instead
  of getting it from the zone in the low level code.

------------------------------------------------------------------------
r171 | graf | 2008-09-06 13:49:09 +0200 (Sa, 06. Sep 2008) | 5 lines

- Changed sound interface so that all references to game data like actors
  and sectors are done in s_sound.cpp and not in fmodsound.cpp. Also removed
  several 'sector' parameters because they were never used inside the sound code.
- Last ZDoom update was incomplete.

------------------------------------------------------------------------
r170 | graf | 2008-09-06 10:22:12 +0200 (Sa, 06. Sep 2008) | 24 lines

- Added the "extended" keyword for episode definitions to define episodes
  that are only available in the extended version of Heretic.
Update to ZDoom r1199:

- Added hexendemo.wad and hexdemo.wad as aliases for the demo Hexen IWAD.
- Added IWAD checks for freedoom1.wad and freedm.wad.
- The garbage collector now has an opportunity to step each time individual
  thinkers tick, not just once every game tick. This more closely follows
  the original Lua behavior. This change was made because, in cases of
  extremely large and frequent memory allocations, the collector may not run
  fast enough if it only has a chance to execute once per tick.
- Fixed: The "same level" dmflag did not work.
- Changed the nextlevel global var to an FString.
- Implemented some more controllers for the OPL player:
  * RPN select (controllers 100 and 101)
  *  RPN 0 (pitch bend sensitivity)
  * NPRN select (controllers 98 and 99)
  * Data entry (controllers 6 and 38)
  * All notes off (controller 123)
  * All sounds off (controller 120)
  * Reset controllers (controller 121)
- Added pixel doubling and quadrupling for fullscreen DirectDraw modes.
  The command line options -2 and -4 can be used to force them.

------------------------------------------------------------------------
r169 | graf | 2008-09-04 16:15:27 +0200 (Do, 04. Sep 2008) | 6 lines

- Fixed: Red blood particles used too dark colors.
- Fixed: The smoothlighting code in side_t::GetLightLevel relied on 
  the global 'linedef' variable for automatic fake contrast although
  this issue had already been fixed for the original code here.
- Replaced static string buffers with FString in FONTDEFS parser.

------------------------------------------------------------------------
r168 | graf | 2008-09-01 22:02:17 +0200 (Mo, 01. Sep 2008) | 8 lines

Update to ZDoom r1192:

- Added an 'allcheats' CVAR. This will enable all cheats from all
  supported games in any game being played.
- Changed Chex Quest DoomEdNum initilization so that all empty slots 
  are filled with Doom actors if they exist.
- Added missing spawn filters to Chex Quest items.

------------------------------------------------------------------------
r167 | graf | 2008-09-01 21:17:45 +0200 (Mo, 01. Sep 2008) | 4 lines

- added missing files for Chex Quest.
- fixed naming conflict for GCC.
- Updated CMakeLists.txt for /src.

------------------------------------------------------------------------
r166 | graf | 2008-09-01 21:08:19 +0200 (Mo, 01. Sep 2008) | 43 lines

- Fixed: player.damagescreencolor was not implemented for the GL renderer.

Update to ZDoom r1190:

- Gave the PlayerPawn base class a default damage fade color instead of
  hacking it into the actor when actually used.
- Fixed: The DamageFade color was not saved in savegames.
- Added Blzut3's patch for a real Chex Quest game mode.
- Fixed: SKIP_SUPER doesn't work for inventory items so it must be
  disabled for them
- Fixed: Chex Quest doesn't have a HELP2 screen so it must not be used
  in the gameinfo.
- Fixed: Default blood color is no longer red so P_DrawSplash2 must
  get it from the gameinfo instead.
- Added new French language texts by DoomKn1ght_.
- Blood default color is set in the gameinfo now so that Chex Quest
  can default to green instead of red.
- Fixed: The version of CheckNumForFullName that checks for a specific
  WAD did not work.
- Moved MAPINFO names into gameinfo structure.
- Added Chex Quest support. Credits go to fraggle for creating a 
  Dehacked patch that does most of the work. The rest includes a new
  MAPINFO and removal of the drop items from the monsters being used.
- Added Win64 support to the crash report generator. (Pity that Win32
  cannot be as informative.)
- Added and fixed Boss death submission for random spawner.
- Added functions to FActorInfo that can set the damage factors and
  pain chances to reduce the chance of new errors when working with
  these features.
- Fixed: The handling of the deprecated FIRERESIST flag didn't work.
  There were 3 problems:
  * Actor defaults have no class information so HandleDeprecatedFlags
    needs to be passed a pointer to the ActorInfo.
  * The DamageFactors list is only created when needed so the code needs to
    check if it already exists.
  * damage factors are stored as fixed_t but this set a float.
- Fixed: Timidity::Renderer::reset_voices() must completely zero the
  voices. Because this wasn't done, note_on() could try to access
  the sample for a voice that had never been played yet and access
  random memory. There may be other places where it's a problem, but
  this is where I noticed it, by chance.
- Added a traditional Strife color set for the automap.

------------------------------------------------------------------------
r165 | graf | 2008-08-24 20:06:04 +0200 (So, 24. Aug 2008) | 3 lines

- More GLSL related work. Added framework for a render state that is maintained outside OpenGL.
- Re-fixed my decal lighting fix from last month.

------------------------------------------------------------------------
r164 | graf | 2008-08-23 23:48:24 +0200 (Sa, 23. Aug 2008) | 22 lines

- started adding a GLSL state structure

Update to ZDoom r1183:

- Added and fixed Boss death submission for random spawner.
- Added functions to FActorInfo that can set the damage factors and
  pain chances to reduce the chance of new errors when working with
  these features.
- Fixed: The handling of the deprecated FIRERESIST flag didn't work.
  There were 3 problems:
  * Actor defaults have no class information so HandleDeprecatedFlags
    needs to be passed a pointer to the ActorInfo.
  * The DamageFactors list is only created when needed so the code needs to
    check if it already exists.
  * damage factors are stored as fixed_t but this set a float.
- Fixed: Timidity::Renderer::reset_voices() must completely zero the
  voices. Because this wasn't done, note_on() could try to access
  the sample for a voice that had never been played yet and access
  random memory. There may be other places where it's a problem, but
  this is where I noticed it, by chance.
- Added a traditional Strife color set for the automap.

------------------------------------------------------------------------
r163 | graf | 2008-08-23 20:33:26 +0200 (Sa, 23. Aug 2008) | 2 lines

Started work on GLSL renderer - split off the main rendering loop.

------------------------------------------------------------------------
r162 | graf | 2008-08-23 18:52:43 +0200 (Sa, 23. Aug 2008) | 3 lines

- Changed storage of glow and sky color information. They are now part of the texture
  instead of being stored in separate arrays.

------------------------------------------------------------------------
r161 | graf | 2008-08-22 09:36:50 +0200 (Fr, 22. Aug 2008) | 23 lines

Update to ZDoom r 1181:

- Fixed: The conversion of the strings in wbstartstruct_t to FStrings
  caused crashes when reloading the hub data.
- Replaced WALLF_AUTOCONTRAST with WALLF_NOFAKECONTRAST so that the 
  default setting for the flags is 0.
- Added: doom2day's smoothlighting
- Added: dontincrement argument to A_CheckForReload.
- Fixed: The UDMF parser wrote class filter bits into SkillFilter.
- Fixed: (SBARINFO patch) DrawInventoryBar has a missing argument in 
  one of its drawgraphic calls.
- Added Gez's patch for Heretic's GIMME cheat.
- Externalized some cheat strings.
- Added Gez's patch for removing MF4_FIRERESIST.

(SBARINFO patch)
- Fixed: DrawBar would not show.
- Fixed: IsSelected took string constants instead of identifiers.

- Put more floor/ceiling properties in sector_t into a substructure and
  added wrapper functions.
- Fixed: A_Explode wants the distance parameter as an int, not a fixed_t.
- some minor DECORATE fixes.
------------------------------------------------------------------------
r160 | graf | 2008-08-15 00:58:26 +0200 (Fr, 15. Aug 2008) | 2 lines

- Fixed: The count parameter of A_Jump is a constant, not an expression.

------------------------------------------------------------------------
r159 | graf | 2008-08-14 21:10:59 +0200 (Do, 14. Aug 2008) | 8 lines

- Changed creation of warped GL textures so that it is done after the buffer has been
  processed by the GL code.
- Fixed: A_Jump used a wrong index into the jump address table.
- Fixed: The recent changes in the DECORATE parser require the special parameter
  to A_CallSpecial to be an expression, not a constant.
- Removed game filters from old style decorations. No WAD in existence ever 
  used them and removing them allows to make the parser more robust.

------------------------------------------------------------------------
r158 | graf | 2008-08-14 13:28:02 +0200 (Do, 14. Aug 2008) | 12 lines

Update to ZDoom r1169:

- Added a few more macros so that the action function code doesn't have
  to reference its arguments directly, except 'self'. This may be helpful if it 
  becomes necessary to restructure this code once DoomScript becomes real.
- Removed the last remaining global variable related to action functions:
  pStateCall. Everything is passed properly as function arguments now.
- fixed: PlayerChunk was missing the NOSKIN flag.
- Macro-fied access to action function parameters.
- Deactivated debug output code in d_Dehacked.cpp.
- fixed: A_FreezeDeathChunks crashed when a player's head got spawned.

------------------------------------------------------------------------
r157 | graf | 2008-08-13 18:22:03 +0200 (Mi, 13. Aug 2008) | 8 lines

- fixed: A_CallSpecial must be declared in DECORATE so that a symbol table
  entry can be generated for it.
- fixed: Dehacked replaced pickups multiple times for changing its states.
- fixed: Dehacked must copy AInventory's state to any item it hacks to be a 
  pickup.
- fixed a few more DECORATE bugs.
- fixed: Restored accidentally deleted call to set dynamic lights after state change.

------------------------------------------------------------------------
r156 | graf | 2008-08-13 01:22:08 +0200 (Mi, 13. Aug 2008) | 12 lines

Update to ZDoom r1165:

- Fixed: The chat sound for Strife was misnamed in the gameinfo structure.
- fixed a few DECORATE bugs.
- Changed the action function declaration parser so that optional parameters
  can be given a default value. The 'optional' keyword is no longer needed
  and was removed, as well as 'evalnot'.
- Restructured the action function interface to remove the dependence on
  the global CallingState variable.
- Changed handling of AUTOPAGE texture so that it is properly inserted into
  the texture manager even if it is from Raven's IWADs.
- Removed code related to internal ActorInfo definitions from dobjtype.cpp.
------------------------------------------------------------------------
r155 | graf | 2008-08-13 01:07:50 +0200 (Mi, 13. Aug 2008) | 2 lines

- committed ASM files.

------------------------------------------------------------------------
r154 | graf | 2008-08-12 11:01:33 +0200 (Di, 12. Aug 2008) | 1 line

- updated project dependencies.
------------------------------------------------------------------------
r153 | graf | 2008-08-12 10:52:57 +0200 (Di, 12. Aug 2008) | 2 lines

- disabled profiling in the GL renderer because ZDoom's new method is a performance killer.

------------------------------------------------------------------------
r152 | graf | 2008-08-12 10:00:28 +0200 (Di, 12. Aug 2008) | 16 lines

Update to ZDoom r1161:

- Ported asm_x86_64/tmap3.nas to AT&T syntax so it can be compiled with gas.
  After finding out that gas does have directives to describe the .eh_frame
  metadata, I figured that would be significantly easier and quicker than
  trying to locate all the scattered docs needed to construct it by hand.
  Unfortunately, this now means I have to maintain two versions of exactly
  the same code. :(
- Removed 'eval' modifier from DECORATE. All int, float and bool parameters are
  'eval' now by default.
- Did a thorough check of all DECORATE conversions and fixed the errors I found.
- Macro-fied all access to action functions.
- Changed action function definition so that they have to be defined with a
  DEFINE_ACTION_FUNCTION macro. This should make it easier to improve the
  whole system.

------------------------------------------------------------------------
r151 | graf | 2008-08-10 17:12:58 +0200 (So, 10. Aug 2008) | 175 lines

Update to ZDoom r1146 (warning: massive changes ahead!)

- Removed DECORATE's ParseClass because it was only used to add data to fully
  internal actor classes which no longer exist.
- Changed the state structure so that the Tics value doesn't need to be hacked
  into misc1 with SF_BIGTIC anymore. 
- Changed sprite processing so that sprite names are converted to indices 
  during parsing so that an additional postprocessing step is no longer needed.
- Fixed: Sprite names in DECORATE were case sensitive.
- Exported AActor's defaults to DECORATE and removed all code for the 
  internal property parser which is no longer needed.
- Converted the Heresiarch to DECORATE.
- Added an Active and Inactive state for monsters.
- Made the speed a parameter to A_RaiseMobj and A_SinkMobj and deleted
  GetRaiseSpeed and GetSinkSpeed.
- Added some remaining DECORATE conversions for Hexen by Karate Chris.
- Changed Windows to use the performance counter instead of rdtsc.
- Changed Linux to use clock_gettime for profiling instead of rdtsc. This
  avoids potential erroneous results on multicore and variable speed
  processors.
- Converted the last of Hexen's inventory items to DECORATE so that I could
  export AInventory.
- Removed AT_GAME_SET because it's no longer used anywhere.
- Converted the last remaining global classes to DECORATE.
- Fixed: Inventory.PickupFlash requires an class name as parameter not an
  integer. Some Hexen definitions got it wrong.
- Converted Hexen's Pig to DECORATE.
- Replaced the ActorInfo definitions of all internal inventory classes with 
  DECORATE definitions.
- Added option to specify a powerup's duration in second by using a negative
  number.
- Added Gez's Freedoom detection patch.
- SBARINFO update:
  * Added: The ability to have drawkeybar auto detect spacing.
  * Added: Offset parameter to drawkeybar to allow two key bars with
    different keys.
  * Added: Multi-row/column keybar parameters.  Spacing can also be auto.
    These  defualt to left to right/top to bottom but can be switched.
  * Added: Drawshadow flag to drawnumber.  This will draw a solid color and
    translucent number under the normal number.
  * Added: hexenarmor to drawimage.  This takes a parameter for a hexen
    armor type and will fade the image like the hexen status bar.
  * Added: centerbottom offset to draw(switchable)image.
  * Added: translucent flag to drawinventorybar.
  * Fixed: Accidentally removed flag from DrawTexture that allowed negative
    coordinates to work with fullscreenoffsets.  Hopefully this is the last
    major bug in the fullscreenoffsets system.
- Ported vlinetallasm4 to AMD64 assembly. Even with the increased number of
  registers AMD64 provides, this routine still needs to be written as self-
  modifying code for maximum performance. The additional registers do allow
  for further optimization over the x86 version by allowing all four pixels
  to be in flight at the same time. The end result is that AMD64 ASM is about
  2.18 times faster than AMD64 C and about 1.06 times faster than x86 ASM.
  (For further comparison, AMD64 C and x86 C are practically the same for
  this function.) Should I port any more assembly to AMD64, mvlineasm4 is the
  most likely candidate, but it's not used enough at this point to bother.
  Also, this may or may not work with Linux at the moment, since it doesn't
  have the eh_handler metadata. Win64 is easier, since I just need to
  structure the function prologue and epilogue properly and use some
  assembler directives/macros to automatically generate the metadata. And
  that brings up another point: You need YASM to assemble the AMD64 code,
  because NASM doesn't support the Win64 metadata directives.
- Replaced the ActorInfo definitions of several internal classes with DECORATE definitions
- Converted teleport fog and destinations to DECORATE.
- AActor::PreExplode is gone now that the last item that was using it has been converted.
- Converted the Sigil and the remaining things in a_strifeitems.cpp to DECORATE.
- Exported Point pushers, CustomSprite and AmbientSound to DECORATE.
- Changed increased lightning damage for Centaurs into a damage factor.
- Changed PoisonCloud and Lightning special treatment in P_DamageMobj to use damage
  types instead to keep dependencies on specific actor types out of the main engine code.
- Added Korax DECORATE conversion by Gez and a few others by Karate Chris.
- Removed FourthWeaponClass and based Hexen's fourth weapons on the generic weapon
  pieces.
- Added DECORATE conversions for Hexen's Fighter weapons by Karate Chris.
- Added aWeaponGiver class to generalize the standing AssaultGun.
- converted a_Strifeweapons.cpp to DECORATE, except for the Sigil.
- Added an SSE version of DoBlending. This is strictly C intrinsics.
  VC++ still throws around unneccessary register moves. GCC seems to be
  pretty close to optimal, requiring only about 2 cycles/color. They're
  both faster than my hand-written MMX routine, so I don't need to feel
  bad about not hand-optimizing this for x64 builds.
- Removed an extra instruction from DoBlending_MMX, transposed two
  instructions, and unrolled it once, shaving off about 80 cycles from the
  time required to blend 256 palette entries. Why? Because I tried writing
  a C version of the routine using compiler intrinsics and was appalled by
  all the extra movq's VC++ added to the code. GCC was better, but still
  generated extra instructions. I only wanted a C version because I can't
  use inline assembly with VC++'s x64 compiler, and x64 assembly is a bit
  of a pain. (It's a pain because Linux and Windows have different calling
  conventions, and you need to maintain extra metadata for functions.) So,
  the assembly version stays and the C version stays out.
- Converted the rest of a_strifestuff.cpp to DECORATE.
- Fixed: AStalker::CheckMeleeRange did not perform all checks of AActor::CheckMeleeRange.
  I replaced this virtual override with a new flag MF5_NOVERTICALMELEERANGE so that
  this feature can also be used by other actors.
- Converted Strife's Stalker to DECORATE.
- Converted ArtiTeleport to DECORATE.
- Removed the NoBlockingSet method from AActor because everything using it has been
  converted to DECORATE using DropItem instead.
- Changed: Macil doesn't need the StrifeHumanoid's special death states so he might
  as well inherit directly from AActor.
- Converted Strife's Coin, Oracle, Macil and StrifeHumanoid to DECORATE. Also moved
  the burning hand states to StrifePlayer where they really belong.
- Added Gez's dropammofactor submission with some necessary changes. Also merged
  redundant ammo multiplication code from P_DropItem and ADehackedPickup::TryPickup.
- Restricted native action function definitions to zdoom.pk3.
- Fixed. The Firedemon was missing a game filter.
- Added: disablegrin, disableouch, disablepain, and disablerampage flags to
  drawmugshot.
- Fixed: LowerHealthCap did not work properly.
- Fixed: Various bugs I noticed in the fullscreenoffsets code.
- Removed all the pixel doubling r_detail modes, since the one platform they
  were intended to assist (486) actually sees very little benefit from them.
- Rewrote CheckMMX in C and renamed it to CheckCPU.
- Fixed: CPUID function 0x80000005 is specified to return detailed L1 cache
  only for AMD processors, so we must not use it on other architectures, or
  we end up overwriting the L1 cache line size with 0 or some other number
  we don't actually understand.
- The x87 precision control is now explicitly set for double precision, since
  GCC defaults to extended precision instead, unlike Visual C++.
- Converted Strife's Programmer, Loremaster and Thingstoblowup to DECORATE.
- Fixed: Attacking a merchant in Strife didn't alert the enemies.
- Removed AT_GAME_SET(PowerInvulnerable) due to the problems it caused. The two
  occurences in the code that depended on it were changed accordingly.
  Invulnerability colormaps are now being set by the items exclusively.
- Changed many checks for the friendly Minotaur to a new flag MF5_SUMMONEDMONSTER
  so that it can hopefully be generalized to be usable elsewhere later.
- Added Gez's submission for converting the Minotaur to DECORATE.
- Fixed a few minor DECORATE bugs.
- Changed coordinate storage for EntityBoss so that it works properly even
  when the pod is not used to spawn it.
- Converted Strife's Spectres and Entity to DECORATE.
- Added: fullscreenoffsets flag for status bars.  This changes the coordinate
  system to be relative to the top left corner of the screen.  This is useful
  for full screen status bars.
- Changed: drawinventorybar will use the width of artibox or invcurs (strife)
  to determine the spacing.  Let me know if this breaks any released mods.
- Fixed: If a status bar height of 0 was specified in SBarInfo the wrong bar
  would be shown.
- Fixed: If a static inventory bar was used the user still had to press invuse
  in order to get rid of the "overlay".
- Fixed: forcescaled would not work if the height of the bar was 0.
- Added: keyslot to drawswitchableimage.
- Fixed: The transition effects for the log and keys popups were switched.
- Converted Strife's Crusader, Inquisitor and spectral missiles to
  DECORATE.
- Converted Strife's Acolytes, Rebels, Sentinel, Reaver and Templar to
  DECORATE.
- Added DECORATE conversions for Hexen's Cleric weapons by Karate Chris.
- Added a check to Zipdir that excludes files with a .orig extension. These
  can be left behind by patch.exe and create problems.
- fixed: Unmorphing from chicken caused a crash when reading non-existent
  meta-data strings.
- Converted the ScriptedMarines to DECORATE.
- Fixed: DLightTransfer and DWallLightTransfer were declared as actors.
- Converted the PhoenixRod and associated classes to DECORATE to make
  the Heretic conversion complete.
- Converted the Minotaur's projectiles to DECORATE so that I can get
  rid of the AT_SPEED_SET code.
- Converted Heretic's Blaster and SkullRod to DECORATE.
- Converted the mace and all related actors to DECORATE and generalized
  the spawn function that only spawns one mace per level.
- Moved Mace respawning code into AInventory so that it works properly
  for replacement actors.
- Added more DECORATE conversions by Karate Chris.
- Cleaned up the new bridge code and exported all related actors to
  DECORATE so that the exported code pointers can be used.
- Separated Heretic's and Hexen's invulnerability items for stability 
  reasons.
- Fixed spurious warnings on 32-bit VC++ debug builds.
- Made the subsong (order) number a proper parameter to MusInfo::Play()
  instead of requiring a separate SetPosition() call to do it.
- Added Gez's submission for custom bridge things.
- Fixed: ASpecialSpot must check the array's size before dividing by it.

------------------------------------------------------------------------
r150 | graf | 2008-08-07 01:13:07 +0200 (Do, 07. Aug 2008) | 1 line


------------------------------------------------------------------------
r149 | graf | 2008-08-04 21:54:09 +0200 (Mo, 04. Aug 2008) | 1 line


------------------------------------------------------------------------
r148 | graf | 2008-08-04 21:46:35 +0200 (Mo, 04. Aug 2008) | 22 lines

- fixed some broken brightmaps.

Update to ZDoom r1109:

- Converted the Minotaur's projectiles to DECORATE so that I can get
  rid of the AT_SPEED_SET code.
- Converted Heretic's Blaster and SkullRod to DECORATE.
- Converted the mace and all related actors to DECORATE and generalized
  the spawn function that only spawns one mace per level.
- Moved Mace respawning code into AInventory so that it works properly
  for replacement actors.
- Added more DECORATE conversions by Karate Chris.
- Cleaned up the new bridge code and exported all related actors to
  DECORATE so that the exported code pointers can be used.
- Separated Heretic's and Hexen's invulnerability items for stability 
  reasons.
- Fixed spurious warnings on 32-bit VC++ debug builds.
- Made the subsong (order) number a proper parameter to MusInfo::Play()
  instead of requiring a separate SetPosition() call to do it.
- Added Gez's submission for custom bridge things.
- Fixed: ASpecialSpot must check the array's size before dividing by it.

------------------------------------------------------------------------
r147 | graf | 2008-08-03 10:02:09 +0200 (So, 03. Aug 2008) | 1 line

Linux patch
------------------------------------------------------------------------
r146 | graf | 2008-08-03 00:23:16 +0200 (So, 03. Aug 2008) | 2 lines

added missing DECORATE files.

------------------------------------------------------------------------
r145 | graf | 2008-08-02 12:52:21 +0200 (Sa, 02. Aug 2008) | 25 lines

Update to ZDoom r1102:

- Fixed: The mugshot drawe ignored the accuracy parameter.
- Fixed: The Alt HUD's weapon drawer didn't check properly for invalid icons.
- Added DECORATE conversions for Hexen's Cleric Mace, Firedemon and fog by
  Karate Chris.
- Fixed: Attempting to load 0-length sounds caused a crash.
- Removed filename-lowercasing from zipdir.
- Fixed: The ouch face fix was lost when SBARINFO mugshot became the only
  mugshot present.
- Fixed: Mace SpawnID was assigned to the MacePowered actor instead.
- Fixed: Sorcerer2FX1's SpawnID was not restricted to Heretic.
- Added several type checks to the weapon slot code.
- Changed: Players no longer respawn in instant death sectors with 
  the 'Respawn where died' flag on.
- Applied Blzut3's 5:4 SBARINFO patch. (At least I think that's what it's
  for.)
- Corrected the revision_check target so that it always checks the revision,
  not just when src/svnrevision.h is not present.
- Added Linux support for the CMakeLists. This meant downgrading them for
  CMake 2.4, since the distros don't seem to consider 2.6 stable yet.
  As a bonus, GTK+ is no longer a required dependency; now it's optional.
- Made dehsupp ignore CR characters, so it doesn't spew warnings on Linux.
- Fixed: The sounds of Strife's intro need CHAN_UI.
- Changed all instances of playing the chat sounds to use CHAN_UI.
------------------------------------------------------------------------
r144 | graf | 2008-07-23 23:54:02 +0200 (Mi, 23. Jul 2008) | 2 lines

- fixed typos.

------------------------------------------------------------------------
r143 | graf | 2008-07-23 21:29:18 +0200 (Mi, 23. Jul 2008) | 2 lines

I hope now it's finally complete...

------------------------------------------------------------------------
r142 | graf | 2008-07-23 21:26:41 +0200 (Mi, 23. Jul 2008) | 1 line


------------------------------------------------------------------------
r141 | graf | 2008-07-23 21:26:26 +0200 (Mi, 23. Jul 2008) | 1 line


------------------------------------------------------------------------
r140 | graf | 2008-07-23 21:26:00 +0200 (Mi, 23. Jul 2008) | 3 lines

- replaced all sprintf uses in GZDoom specific code with mysnprintf.
- finished update to ZDoom r1083.

------------------------------------------------------------------------
r139 | graf | 2008-07-23 20:40:52 +0200 (Mi, 23. Jul 2008) | 2 lines

- added wadsrc/static directory.

------------------------------------------------------------------------
r138 | graf | 2008-07-23 20:35:55 +0200 (Mi, 23. Jul 2008) | 43 lines

Update to ZDoom r1083. Not fully tested yet!

- Converted most sprintf (and all wsprintf) calls to either mysnprintf or
  FStrings, depending on the situation.
- Changed the strings in the wbstartstruct to be FStrings.
- Changed myvsnprintf() to output nothing if count is greater than INT_MAX.
  This is so that I can use a series of mysnprintf() calls and advance the
  pointer for each one. Once the pointer goes beyond the end of the buffer,
  the count will go negative, but since it's an unsigned type it will be
  seen as excessively huge instead. This should not be a problem, as there's
  no reason for ZDoom to be using text buffers larger than 2 GB anywhere.
- Ripped out the disabled bit from FGameConfigFile::MigrateOldConfig().
- Changed CalcMapName() to return an FString instead of a pointer to a static
  buffer.
- Changed startmap in d_main.cpp into an FString.
- Changed CheckWarpTransMap() to take an FString& as the first argument.
- Changed d_mapname in g_level.cpp into an FString.
- Changed DoSubstitution() in ct_chat.cpp to place the substitutions in an
  FString.
- Fixed: The MAPINFO parser wrote into the string buffer to construct a map
  name when given a Hexen map number. This was fine with the old scanner
  code, but only a happy coincidence prevents it from crashing with the new
  code.
- Added the 'B' conversion specifier to StringFormat::VWorker() for printing
  binary numbers.
- Added CMake support for building with MinGW, MSYS, and NMake. Linux support
  is probably broken until I get around to booting into Linux again. Niceties
  provided over the existing Makefiles they're replacing:
  * All command-line builds can use the same build system, rather than having
    a separate one for MinGW and another for Linux.
  * Microsoft's NMake tool is supported as a target.
  * Progress meters.
  * Parallel makes work from a fresh checkout without needing to be primed
    first with a single-threaded make.
  * Porting to other architectures should be simplified, whenever that day
    comes.
- Replaced the makewad tool with zipdir. This handles the dependency tracking
  itself instead of generating an external makefile to do it, since I couldn't
  figure out how to generate a makefile with an external tool and include it
  with a CMake-generated makefile. Where makewad used a master list of files
  to generate the package file, zipdir just zips the entire contents of one or
  more directories.

------------------------------------------------------------------------
r137 | graf | 2008-07-21 16:43:47 +0200 (Mo, 21. Jul 2008) | 2 lines

- fixed: For non-shaded decals the light information was ignored.

------------------------------------------------------------------------
r136 | graf | 2008-07-21 16:31:47 +0200 (Mo, 21. Jul 2008) | 1 line

- fixed: dynamic lights didn't activate until one was spawned after map start.
------------------------------------------------------------------------
r135 | graf | 2008-07-21 09:00:43 +0200 (Mo, 21. Jul 2008) | 2 lines

- added changed project file.

------------------------------------------------------------------------
r134 | graf | 2008-07-20 19:50:34 +0200 (So, 20. Jul 2008) | 5 lines

- converted the boss brain to DECORATE.
- added an abstract base class for special map spots that are maintained in 
  lists and rewrote the boss brain, the mace and DSparil to use it.
- fixed: RandomSpawners didn't destroy themselves after finishing their work.

------------------------------------------------------------------------
r133 | graf | 2008-07-20 10:37:47 +0200 (So, 20. Jul 2008) | 5 lines

Update to ZDoom r1075:

- fixed: Textures marked as complex must not redirect to the base patch.
- fixed: Alpha for composite textures was not applied.
- fixed: The CentaurMash didn't inherit from the Centaur.
------------------------------------------------------------------------
r132 | graf | 2008-07-20 01:52:06 +0200 (So, 20. Jul 2008) | 34 lines

Update to ZDoom r1073:

- Fixed: When Heretic's Mace was replaced by a non-child class A_SpawnMace still 
  treated it as a mace and wrote into some undefined memory.
- Fixed: A_BishopMissileWeave didn't initialize special2 for proper movement.
- Added a speed parameter to A_SkullAttack.
- Fixed: Black as first or only blood color didn't work.
- Fixed: Sounds played in wi_stuff.cpp and f_finale.cpp need the CHAN_UI flag.
- Fixed: Spawning a player could play the *gasp sound.
- Fixed: SBARINFO's health display didn't scale to the proper maximum.
- Added const char &operator[] (unsigned int index) to FString class.
- Added Skulltag's Teleport_NoStop action special.
- Fixed: Strife's EntityBoss didn't copy friendliness information to the
  sub-entities.
- Fixed: Friendly spectral monsters should be able to hurt unfriendly ones
  and vice versa.
- Fixed: In deathmatch specral missiles spawned by players should hurt other
  players.
- Fixed: SpectralLightningBigBall didn't set the proper owner for the lightning
  projectiles it spawned.
- Changed the EntityBoss's attack function to call the equivalent spectre
  functions instead of duplicating their code.
- Gave many of Strife's code pointers that only had a number as name more
  meaningful names. 
- Fixed: All spectral attacks must set 'health' first before P_CheckMissileSpawn
  is called.
- Added a compatibility option to play sector sounds from the precalculated
  center because some maps apparently abuse the behavior to make the sound
  play somewhere where it can't be heard by the player to fake silent movement.
- Fixed: The S_Sound variant taking an actor must check if the actor is not
  NULL.
- Fixed: ACS's ActivatorSound must check if the activator is valid.
- Changed stats drawing so that multi-line strings can be used.

------------------------------------------------------------------------
r131 | graf | 2008-07-06 19:32:31 +0200 (So, 06. Jul 2008) | 30 lines

Update to ZDoom r1069:

- Added a check to G_DoSaveGame() to prevent saving when you're not actually
  in a level.
- Fixed: Serialized player data must always be loaded, even if it's simply to
  be discarded, so that anything serialized after the players will load from
  the correct position in the file when revisiting a hub map.
- Changed: AInventory::Tick now only calls the super method if the item is not
  owned. Having owned inventory items interact with the world is not supposed
  to happen.
- Fixed: case PCD_SECTORDAMAGE in p_acs.cpp was missing a terminating 'break'.
- Fixed: When a weapon is destroyed, its sister weapon must also be destroyed.
- Added a check for PUFFGETSOWNER to A_BFGSpray.
- Moved the PUFFGETSOWNER check into P_SpawnPuff and removed the limitation
  to players only.
- Fixed: P_SpawnMapThing still checked FMapThing::flags for the class bits 
  instead of FMapThing::ClassFilter.
- Fixed: A_CustomMissile must not let P_SpawnMissile call P_CheckMissileSpawn.
  It must do this itself after setting the proper owner.
- Fixed: CCMD(give) increased the total item count.
- Fixed: A_Stop didn't set the player specific variables to 0.
- Fixed: Screenwipes now pause sounds, since there can be sounds playing
  during them.
- UI sounds are now omitted from savegames.
- Fixed: Menu sounds had been restricted to one at a time again.
- Moved the P_SerializeSounds() call to the end of G_SerializeLevel() so that
  it will occur after the players are loaded.
- Added fixes from FreeBSD for 0-length and very large string buffers
  passed to myvsnprintf.

------------------------------------------------------------------------
r130 | graf | 2008-07-04 18:54:29 +0200 (Fr, 04. Jul 2008) | 30 lines

Update to ZDoom r1062:

- Rewrote myvsnprintf to use the StringFormat routines directly so that no
  additional memory needs to be allocated from the heap.
- Polyobject sounds now play from their lines, similar to the way sector
  sounds are handled.
- Why do polyobjects have a 3D start spot? Flattened it to 2D.
- Moved the sector sound origin calculation out of fmodsound.cpp and into
  s_sound.cpp so that the near sound limiting will use the correct sound
  location for deciding on neighbors.
- Removed the S_Sound() variant that allows for pointing the origin at an
  arbitrary point. It has been replaced with a variant that takes a polyobject
  as a source, since that was the only use that couldn't be rewritten with the
  other variants. This also fixes the bug that polyobject sounds were not
  successfully saved and caused a crash when reloading the game. Note that
  this is a significant change to how equality of sound sources is determined,
  so some things may not behave quite the same as before. (Which would be a
  bug, but hopefully everything still sounds the same.)
- Adjusted the noise debug table so that fractional volume levels do not
  run into the adjacent columns.
- Added a NullSoundRenderer so that most of the checks against a NULL GSnd
  can be removed.
- Fixed: Looping sounds must always successfully allocate a channel, even if
  it's only a pre-evicted channel.
- Added A_ClearReFire code pointer for weapons. Preferably A_WeaponReady should
  reset this counter but that can't be done due to unwanted side effects with
  existing weapons.
- Changed the 'scale' variable in CVAR(turbo) to double because the calculations
  depended on the current floating point precision setting and only worked properly
  when set to 'precise' in VC++.
------------------------------------------------------------------------
r129 | graf | 2008-06-29 12:27:22 +0200 (So, 29. Jun 2008) | 1 line

- fixed a typo in new license clause.
------------------------------------------------------------------------
r128 | graf | 2008-06-29 12:08:16 +0200 (So, 29. Jun 2008) | 37 lines

- Added the following clause to all GL renderer related files (Skulltag devlopers, beware!):
  Full disclosure of the entire project's source code, except for third party libraries is mandartory. 
  (NOTE: This clause is non-negotiable!)
- Fixed: The alpha for 3D floors was always set to 0.

Update to ZDoom r1056:

- Changed: I_Error and I_FatalError now use ZDoom's internal string formatting
  code to process their messages. This was necessary to handle the %zu format
  option used in some memory allocation failure messages.
- Fixed: The flat texture scaling action specials were completely broken.
- The sound code now handles restarting looping sounds itself. As far as
  the rest of the game is concerned, these sounds will never stop once they
  have been started until they are explicitly stopped. If they are evicted
  from their channels, the sound code will restart them as soon as possible.
  This means that instead of this:
	if (!S_IsActorPlayingSomething(actor, CHAN_WEAPON, -1))
	{
		S_Sound(actor, CHAN_WEAPON|CHAN_LOOP, soundid, 1, ATTN_NORM);
	}
  The following is now just as effective:
	S_Sound(actor, CHAN_WEAPON|CHAN_LOOP, soundid, 1, ATTN_NORM);
  There are also a couple of other ramifications presented by this change:
    * The full state of the sound system (sans music) is now stored in save
      games. Any sounds that were playing when you saved will still be
      playing when you load. (Try saving while Korax is making a speech in
      Hexen to hear it.)
    * Using snd_reset will also preserve any playing sounds.
    * Movie playback is disabled, probably forever. I did not want to 
      update the MovieDisable/ResumeSound stuff for the new eviction
      tracking code. A properly updated movie player will use the VMR,
      which doesn't need these functions, since it would pipe the sound
      straight through the sound system like everything else, so I decided
      to dump them now, which leaves the movie player in a totally unworkable
      state.
- Removed some unused constant definitions from sc_man.cpp.

------------------------------------------------------------------------
r127 | graf | 2008-06-29 00:18:05 +0200 (So, 29. Jun 2008) | 4 lines

- Redid loading of internal GL textures so that they aren't inserted into the texture manager.
- Fixed: A_FireBlasterPL2 played the weapon sound with the missile as origin
  instead of the shooting player.

------------------------------------------------------------------------
r126 | graf | 2008-06-28 19:11:54 +0200 (Sa, 28. Jun 2008) | 1 line


------------------------------------------------------------------------
r125 | graf | 2008-06-28 17:56:29 +0200 (Sa, 28. Jun 2008) | 2 lines

- added missing textures.h file.

------------------------------------------------------------------------
r124 | graf | 2008-06-28 15:29:59 +0200 (Sa, 28. Jun 2008) | 50 lines

Update to ZDoom r1052:

- Fixed: Dead players didn't get the MF_CORPSE flag set.
- Fixed: The internal definition of Floor_LowerToNearest had incorrect parameter
  settings.
- Fixed: Heretic's ActivatedTimeBomb had the same spawn ID as the inventory item.
- fixed: Heretic's mace did not have its spawn ID set.
- For controls that are not bound, the customize controls menu now displays
  a black --- instead of ???.
- Applied Gez's BossBrainPatch3.
- Fixed: P_BulletSlope() did not return the linetarget. This effected
  the Sigil, A_JumpIfCloser, and A_JumpIfTargetInLOS.
- Fixed all the new warnings tossed out by GCC 4.3.
- Fixed: PickNext/PrevWeapon() did not check for NULL player actors.
- Fixed compilation issues with GCC.
- Removed special case for nobotnodes in MAPINFO.
- Added support for ST's QUARTERGRAVITY flag.
- Added a generalized version of Skulltag's A_CheckRailReload function.
- Fixed: DrawImage didn't take 0 as a valid image index.
- Added Gez's RandomSpawner submission with significant changes.
- Added optional blocks for MAPINFO map definitions. ZDoom doesn't use
  this feature itself but it allows other ports based on ZDoom
  to implement their own sets of options without making such a MAPINFO 
  unreadable by ZDoom.
- Fixed: The mugshot would not reset on re-spawn.
- Fixed: Picking up a weapon would sometimes not activate the grin.
- Changed: Line_SetIdentification will ignore extended parameters when
  used in maps defined Hexen style in MAPINFO.
- Fixed: Ambient sounds didn't pass their point of origin to S_StartSound.
- Fixed: UseType was not properly set for textures defined in TEXTURES.
- Fixed: You couldn't set an offset for sprites defined in TEXTURES.
- Added read barriers to all actor pointers within player_t except for
  mo, ReadyWeapon and PendingWeapon.
- Added a read barrier to player_t::PrewmorphWeapon.
- Fixed: After spawning a deathmatch player P_PlayerStartStomp must
  be called.
- Fixed: SpawnThings must check if the players were spawned before
  calling P_PlayerStartStomp.
- Fixed typo in flat scroll interpolation.
- Changed FImageCollection to return translated texture indices so
  that animated icons can be done with it.
- Changed FImageCollection to use a TArray to hold its data.
- Fixed: SetChanHeadSettings did an assignment instead of comparing
  the channel ID witg CHAN_CEILING.
- Changed sound sequence names for animated doors to FNames.
- Automatically fixed: DCeiling didn't properly serialize its texture id.
- Replaced integers as texture ID representation with a specific new type
  to track down all potentially incorrect uses and remaining WORDs used
  for texture IDs so that more than 32767 or 65535 textures can be defined.

------------------------------------------------------------------------
r123 | graf | 2008-06-15 19:17:31 +0200 (So, 15. Jun 2008) | 15 lines

- Increased the duration of respawn invulnerability by one second.
- DF2_YES_RESPAWN_INVUL and DF_FORCE_RESPAWN now apply to all multiplayer 
  games, not just deathmatch, without the need for turning on
  alwaysapplydmflags.
- Fixed: DF2_YES_RESPAWN_INVUL only worked in deathmatch, even with
  alwaysapplydmflags turned on.
- Fixed: DF_COOP_LOSE_ARMOR did not empty the starting armor items.
- Replaced the naive area sound implementation with one that takes into
  consideration the size and shape of the sector producing the sound. See
  the lifts on Doom 2 MAP30 and compare with previous versions.
- Fixed: The stop sound for sector-based sound sequences was not played with
  the CHAN_AREA flag.
- Removed the distinction between S_Sound() and S_SoundID() functions. Use
  S_Sound() for both names and IDs from now on.

------------------------------------------------------------------------
r122 | graf | 2008-06-14 19:59:14 +0200 (Sa, 14. Jun 2008) | 2 lines

- Fixed sprite lighting which got broken when I tried to fix blood colors with invulnerability on.

------------------------------------------------------------------------
r121 | graf | 2008-06-14 17:37:17 +0200 (Sa, 14. Jun 2008) | 44 lines

Update to ZDoom r1033:

- Fixed: The UDMF parser stored plane rotation angles as fixed_t, not angle_t.
- Grouped the sector plane texture transformation values into a separate
  structure and replaced all access to them with wrapper functions.
- Add environment 255, 255 as a way to get the software underwater effect in
  any zone you want.
- Using a too-recent version of FMOD now gives an error, since there may be
  breaking changes to the API from one version to the next (excluding
  revisions in stable branches, which only represent bug fixes).
- Updated fmod_wrap.h for FMOD 4.16 and corrected a bug that had gone
  unnoticed before: The delayhi and delaylo parameters for Channel::setDelay()
  and getDelay() were swapped.
- Fixed: P_ChangeSector could incorrectly block movement when checking for
  mid textures linked to a moving floor.
- Fixed AActor's bouncefactor definitions which I accidentally changed when
  adding wallbouncefactor.
- Fixed: A_SpawnItemEx added the floorclip offset to the z coordinate instead 
  of subtracting it.
- Fixed: SBARINFO's popup code used 1-based indices to address a C++ array.
- Fixed: ACS's ChangeSky command didn't clean up the stack.
- Fixed: Wall scrolling interpolations incremented their reference count twice.
- Fixed: Before a level's thinkers are loaded all previous interpolations must
  be cleared.
- Fixed: deleted interpolations didn't NULL the pointer in the interpolated
  object. Also added all interpolation pointers to DSectorMarker to ensure
  that they are properyl processed by the garbage collector.
- Added scaling to double size for idmypos display.
- Changed: Players don't telefrag when they are spawned now but after all
  actors have been spawned to avoid accidental voodoo doll telefragging.
- Fixed: ACS scripts for non-existent maps were started on the current one.
- Added a 'wallbouncefactor' property to AActor.
- Reverted forceunderwater change from r1026 and fixed the problem for real:
  SECF_FORCEDUNDERWATER only has meaning when coming from the heightsec.
  So the initial check of the current sector in AActor::UpdateWaterLevel
  must only check for SECF_UNDERWATER, not SECF_UNDERWATERMASK.
- Dehacked fix discovered by entryway: Dehacked only changes the blue armor's
  armortype. It does not touch the armor given by the megasphere.
- Changed forcewater handling so that only control sectors created by one-
  sided lines become swimmable, since there's a good chance that a two-sided
  line is creating the control sector out of a normal, accessible portion of
  the map. (See e.g. linedef 29242 of zdoomcmp1.)
- Added self-modifying code notifications for Valgrind.
  Build with make VALGRIND=1 to turn them on.
------------------------------------------------------------------------
r120 | graf | 2008-06-12 10:00:59 +0200 (Do, 12. Jun 2008) | 1 line

- Added Doombuilder configurations.
------------------------------------------------------------------------
r119 | graf | 2008-06-09 21:45:13 +0200 (Mo, 09. Jun 2008) | 1 line

- Last commit was incomplete.
------------------------------------------------------------------------
r118 | graf | 2008-06-09 20:35:31 +0200 (Mo, 09. Jun 2008) | 7 lines

- fixed: splashes on 3D floors must not check the precise z coordinate but instead
  allow for some variation because puffs are not spawned directly on the floor.
- fixed: Moving 3D floors could incorrectly cause things to block movement.
- fixed: The setting of the trigger actor for FS's running scripts did not work.
- fixed: FS label strings were one character too long and included the ':'.
- fixed: FraggleScript's operator evaluation was evaluating operands in the wrong order.

------------------------------------------------------------------------
r117 | graf | 2008-06-08 11:24:55 +0200 (So, 08. Jun 2008) | 27 lines

- Added Skulltag's texture compression feature.

Update to ZDoom r1024:

- Fixed: There was still an inventory bar check in FMugShot::GetFace() after
  separating it from DDoomStatusBar.
- Fixed: When following links in S_StartSound(), the function used sfx
  instead of S_Sfx as the array base for getting the NearLimit.
- Repositioned the declaration of the file string in D_DoomMain() so that it
  won't be left on the stack at exit.
- Fixed: PSymbol needs a virtual destructor so that PSymbolActionFunction can
  free its Arguments.
- Symbols for native classes are now freed on exit.
- Removed the 8-character limit on endpic names from the parser. (Though it
  might still be present in the texture manager; I don't remember.)
- Fixed: EndSequence needs a proper constructor.
- Fixed: The EndSequence structure was not fully initialized.
- While doing the interpolation rewrite I noticed that DScroller and DPolyAction
  were doing some things in their destructor that needed to be done in the
  Destroy method.
- Rewrote the interpolation code. Interpolations are no longer some objects
  that are separate from the rest of the engine. Instead, they are owned by
  the thinkers starting them. Also, polyobjects only spawn a single interpolation
  for each polyobject instead of a single one for each vertex.
  Also, different types of interpolation objects are used for different types
  of interpolation so that they can do some additional work if eventually needed.

------------------------------------------------------------------------
r116 | graf | 2008-06-04 09:23:08 +0200 (Mi, 04. Jun 2008) | 1 line

Linux patch
------------------------------------------------------------------------
r115 | graf | 2008-06-04 01:05:34 +0200 (Mi, 04. Jun 2008) | 1 line


------------------------------------------------------------------------
r114 | graf | 2008-06-04 00:48:27 +0200 (Mi, 04. Jun 2008) | 1 line

- Added DUMB.
------------------------------------------------------------------------
r113 | graf | 2008-06-03 23:48:49 +0200 (Di, 03. Jun 2008) | 71 lines

Update to ZDoom r1017:

- Fixed: MAPINFO's 'lookup' option should only work for actual strings but
  not for lump and file names.
- Added a few 'activator == NULL' checks to some ACS functions.
- Added line and vertex lists to polyobjects so that I can do some 
  changes that won't work with only a seg list being maintained.

(SBarInfo update #23)
- Fixed: Drawing the amount of an inventory item in the player's inventory did
  not work
- Added: PowerupTime to drawnumber and drawbar.  You must specify a
  powerupgiver.  Although drawnumber goes in seconds the powerup has left
  drawbar will use ticks for extra accuracy.
- I have increased cross-port compatibility with Skulltag.  If an unknown
  game mode is provided for sbarinfo's gamemode command it will ignore it and
  continue.
  
- Added an option to consider intermission screens gameplay for purposes of
  capturing the mouse.
- Changed: Telefragging should not thrust the victim if it isn't in precisely the
  same position as the killer.
- fixed: A_SpawnItemEx must call P_TeleportMove before checking the spawned
  object's position.
- Fixed: Ouch state was far to easy to achieve.
- Made all the basic texture classes local to their implementation.
  They are not needed anywhere else.
- Changed the HackHack hack for corrupt 256 pixel high textures that
  FMultiPatchTexture only calls a virtual function instead of doing any
  type checks of the patch itself.
- Cleaned up the constant definitions in doomdata.h.
- Moved the TEXTUREx structures from doomdata.h to multipatchtexture.cpp
  because they are used only in this one file.
- Removed some more typedefs from r_defs.h and doomdata.h
- Moved local polyobject data definitions from p_local.h to po_man.cpp.
- Renamed player_s to player_t globally to get rid of the duplicate names 
  for this class.
- Added coordinate range checking to DCanvas::ParseDrawTextureTags() to avoid
  potential crashes in the situation that con_scaletext is 2 and somebody
  uses a hud message as if a hud size was specified, but forgot to actually
  set the hud size.
- Consolidated the mug shot code shared by DSBarInfo and DDoomStatusBar
  into a single place.
- Fixed: Setting an invalid mug shot state crashed the game.
- Fixed my attempts to be clever with strings yesterday.
- If an actor's current target temporarily goes unshootable, its threshold
  is now reset to 0, so it will more readily switch back to it.
- Fixed: Deactivating the game no longer allows reverb effects to continue
  playing while the sound is paused.
- Fixed: S_StartNamedSound() looked for SECF_SILENT in MoreFlags instead of
  Flags.
- Fixed: DSBarInfo::updateState() and DDoomStatusBar::UpdateState() sprung
  leaks and didn't allocate enough space for the fullStateName string.
- Disabled DUMB's mono destination mixers. It's not like I'm ever going to
  target an original SoundBlaster, so they're a waste of space to have around.
  This trims resample.obj down to ~60k now.
- Fixed: PrtScn/SysRq key did not work on Linux.
- Added an alternate module replay engine that uses foo_dumb's replayer, a
  heavily customized version of DUMB (Dynamic Universal Music Bibliotheque).
  It has been slightly modified by me:
  * Added support for Ogg Vorbis-compressed samples in XM files ala FMOD.
  * Removed excessive mallocs from the replay core.
  * Rerolled the loops in resample.c. Unrolling them made the object file
    ~250k large while providing little benefit. Even at ~100k, I think it's
    still larger than it ought to be, but I'll live with it for now.
  Other than that, it's essentially the same thing you'd hear in foobar2000,
  minus some subsong detection features. Release builds of the library look
  like they might even be slightly faster than FMOD, which is a plus.
- Fixed: Timidity::font_add() did not release the file reader it created.
- Fixed: The SF2 loader did not free the sample headers in its destructor.

------------------------------------------------------------------------
r112 | graf | 2008-06-02 20:14:35 +0200 (Mo, 02. Jun 2008) | 1 line


------------------------------------------------------------------------
r111 | graf | 2008-06-02 19:20:22 +0200 (Mo, 02. Jun 2008) | 25 lines

- Added patch for Linux fixes.

- Added new ZDoom specific UDMF sector properties to map parser.
- Added class definitions for new interpolators that are better 
  equipped to interact with the interpolated objects.
- Separated interpolation code into its own file r_interpolate.cpp.
- Added some simple customization options to the end game screens.
- Fixed: Polyobject detection in the internal node builder did not work 
  anymore due to some code rearrangement for UDMF map loading. To keep
  it compatible between all map formats the THINGS lump of binary format
  maps must be loaded before building the nodes. This also means that
  the spawning itself can be done in the same function for all map types
  (except Build) now.
- Changed 'Smooth mouse movement' menu option from m_filter to smooth_mouse
  which is more what would be expected from this option.
- Fixed: Weapons and ammo items that were modified by Dehacked gave full
  ammo when being dropped by monsters. To properly handle this the
  handling of spawning Dehacked modified pickups was changed to use
  the DECORATE replacement feature instead of hacking the spawn state
  of the original item and calling a spawn function from there.
- Fixed: The compatibility searches for teleport destinations did not work
  properly when the teleporter had both a tid and a tag. Now, if a teleporter
  has a tag these are skipped because they are only present for Hexen
  compatibility.

------------------------------------------------------------------------
r110 | graf | 2008-05-23 22:32:20 +0200 (Fr, 23. Mai 2008) | 1 line

Version bump
------------------------------------------------------------------------
r109 | graf | 2008-05-23 22:31:37 +0200 (Fr, 23. Mai 2008) | 2 lines

- Last ZDoom update was incomplete. I forgot to copy one line of code in P_ChangeSector.

------------------------------------------------------------------------
r107 | graf | 2008-05-23 19:58:17 +0200 (Fr, 23. Mai 2008) | 108 lines

- Fixed: When walking on sloped 3D-floors, P_TryMove got the floor position from the 
  sector's actual floor instead from the 3D-floor.
- Fixed: Brightmaps were not disabled when fog was defined with a fadetable command in
  MAPINFO.

Update to ZDoom r994:

- Fixed: The compatibility searches for teleport destinations did not work
  properly when the teleporter had both a tid and a tag. Now, if a teleporter
  has a tag these are skipped because they are only present for Hexen
  compatibility.
- Fixed: The first texture in a TEXTURE1 lump, although invalid when used
  elsewhere, must be usable as sky (see Requiem.wad's SKY3.)
- Fixed: side_t::GetLightLevel relied on the global 'linedef' variable for
  automatic fake contrast.
- Changed: Fake contrast now uses the WALLF_AUTOCONTRAST globally instead
  of manipulating the sides' light values individually. This allows changing
  the fake contrast at run time and also allows adding individual relative
  lighting on top of it which is a planned UDMF feature.
- Fixed: ActorStencilColor() did not set the palette part of the actor's
  fill color, so it would always produce black for STYLE_Shaded.
- Added volume reduction for stereo sounds played in 3D to obtain levels
  closer to FMOD 3, which downmixed all stereo sounds to mono before
  playing them in 3D. Also added experimental 3D spread for stereo sounds
  so that you can actually hear them in stereo.
- Reworked a few options that previously depended on LEVEL_HEXENFORMAT
  (actors being forced to the ground by instantly moving sectors, strife
  railing handling and shooting lines with a non-zero but unassigned tag.)
  With UDMF such semantics have to be handled diffently. 
- finalized UDMF 1.0 implementation.
- Added Martin Howe's latest morph update.
- Fixed: When R_DrawTiltedPlane() calculates the p vector, it can overflow
  if the view is near the bounds of the fixed point coordinate system. This
  happens because it rotates the view position around (0,0) according to
  the current viewangle, so the resultant coordinate may be outside the
  bounds of fixed point. All important math in this function is now done
  entirely in floating point.
- Fixed: Slopes didn't draw right on 64-bit platforms.
- Fixed: With hardware 2D, the console and menu need not reimplement palette
  flashes to ensure their visibility.
- Fixed: DFlashFader::Destroy() did not call its super method.
- Fixed: If a player was morphed into a class with a taller view height,
  their perceived view height would not change until they walked up a step.
- Since KDIZD is the only mapset I know of that used reverb, and it didn't
  define any new ones of its own, I'm pre-emptively renaming the SNDEAX lump
  to REVERBS to remove any possible misunderstanding that this is something
  that requires EAX hardware support. (Ideally, it would have been REVERBDEF,
  but that's 10 characters long.) The eaxedit console command has also been
  renamed to reverbedit for the same reason.
- Fixed: The Palette part of FRemapTable was not initialized with alpha values
  other than 0. I'm not sure if it would be better to fix this in the game
  palette that it copies from or not, but right now, they get set
  unconditionally to 255.
- Fixed: M_DrawSave() and M_DrawLoad() need to use GetScaledWidth(), in case
  the texture is high-res.
- Replaced all instances of "flags +=" in sbarinfo_parser.cpp with "flags |="
  so that using the same flag multiple times will not have unexpected results.

(sbarinfo update #21)
- Added: sigil image type to correctly draw the sigil's icon.
- Added: Strife inventory bar style.  This is the only style that is radically
  different from the others.  First of all it changes the SELECTBO to be
  INVCURS and draws it before the icons.  Each box is changed to have a width
  of 35 pixels instead of 31 pixels.  And the INVCURS graphic is drawn at
  (x-6, y-2).
- Added: whennnotzero flag to drawnumber which will cause it to draw nothing if
  the value is 0.
- Fixed: New mugshot code would not leave the god state when it was supposed to
  enter the rampage state.
- Fixed: The ouch state was mostly broken.

(SBarInfo Update #20)
- Added: hasweaponpiece command to check for custom weapon pieces.
- Added: usessecondaryammo command to check if the current weapon has a second
  ammo type.
- Most of SBarInfo's mugshot scripting can be used with the default Doom status
  bar.
- Fixed: By default drawmugshot would never come out of normal god mode state.
  In addition the state change to and from god mode was not quite as responsive
  as the original code.

- Fixed: When FTextureManager::CheckForTexture finds a matching NULL texture
  it should always return 0, not the actual texture's index.
- Fixed coordinate checks for objects on 3DMidtex lines.
- Fixed: All translucent blending operations for CopyColors must treat an 
  alpha of 0 so that the pixel is not modified or texture composition as 
  intended will not work.
- Fixed: 3D hardware texture filling did not copy pixels with 0 alpha,
  preserving whatever was underneath in the texture box previously.
- Fixed: s_sound.cpp had its own idea of whether or not sounds were paused
  and did not entirely keep it in sync with the sound system's. This meant
  that when starting a new game from the menu, all sounds were played as
  menu sounds until you did something to pause the game, because s_sound.cpp
  thought sounds were unpaused, while the FMOD system thought they were.
- I finally managed to test the translucency options for composite texture
  definitions in HIRESTEX. The feature should be complete now.
- Fixed: A_CheckTargetInLOS used BAM angles instead of degrees which is the
  DECORATE convention.
- Added Snowkate709's A_CheckTargetInLOS addition.
- Added listmaps CCMD.
- Revised underwater effect now uses a lowpass filter in combination with an
  optional freeverb unit.
- Removed ResetEnvironment hack, since with software reverb, losing the
  existing reverb when focus is lost isn't a problem.
- Commented out the TiMidity FIXME messages.
- Fixed: FBarShader::GetColumn() passed incorrect information to the software
  renderer for horizontal bars.

------------------------------------------------------------------------
r106 | graf | 2008-05-17 10:47:26 +0200 (Sa, 17. Mai 2008) | 30 lines

- fixed drawing of Strife's targeter sprites when HUD models are active.
- removed redundant P_FindLine function from FraggleScript source.
- updated model rendering code to latest Skulltag version.

Update to ZDoom r977:

- Fixed: All translucent blending operations for CopyColors must treat an 
  alpha of 0 so that the pixel is not modified or texture composition as 
  intended will not work.
- Fixed: 3D hardware texture filling did not copy pixels with 0 alpha,
  preserving whatever was underneath in the texture box previously.
- Fixed: s_sound.cpp had its own idea of whether or not sounds were paused
  and did not entirely keep it in sync with the sound system's. This meant
  that when starting a new game from the menu, all sounds were played as
  menu sounds until you did something to pause the game, because s_sound.cpp
  thought sounds were unpaused, while the FMOD system thought they were.
- I finally managed to test the translucency options for composite texture
  definitions in HIRESTEX. The feature should be complete now.
- Fixed: A_CheckTargetInLOS used BAM angles instead of degrees which is the
  DECORATE convention.
- Added Snowkate709's A_CheckTargetInLOS addition.
- Added listmaps CCMD.
- Revised underwater effect now uses a lowpass filter in combination with an
  optional freeverb unit.
- Removed ResetEnvironment hack, since with software reverb, losing the
  existing reverb when focus is lost isn't a problem.
- Commented out the TiMidity FIXME messages.
- Fixed: FBarShader::GetColumn() passed incorrect information to the software
  renderer for horizontal bars.

------------------------------------------------------------------------
r105 | graf | 2008-05-14 19:49:11 +0200 (Mi, 14. Mai 2008) | 23 lines

- Fixed dynamic light crash with respawning players.

Update to ZDoom r971:

- Changed: For actors not being spawned on the floor P_FindFloorCeiling should
  be used to prevent them from dropping through 3DMIDTEX textures.
- Fixed: AMageStaffFX2::IsOkayToAttack overwrote the projectile's angle variable.
- Changed the types of object hash indices in FArchive from size_t to DWORD.
  This seems to fix crashes on GCC 64-bit builds when saving games. Not sure
  if it was a GCC bug or my bug, since it worked fine with VC++, but since the
  code that calculates the index only returns a DWORD, storing it as a size_t
  was rather pointless.
- Added the C99 printf size specifiers 't' (ptrdiff_t) and 'z' (size_t) to
  FString::Format() so that I can fix all the problem printf strings that a
  64-bit GCC compile finds.
- Added Skulltag's PUFFGETSOWNER flag.
- Fixed: Parsing sector special bit masks must be done backwards so that later
  definitions take precedence.
- Added base translation tables for UDMF compatibility maps which only should
  handle the native line and sector types of each game.
- Turned the inactive SILENT_INSTANT_FLOORS define into a compatibility option
  so that it can be (un)set in a map definition and the menu.

------------------------------------------------------------------------
r104 | graf | 2008-05-12 12:00:05 +0200 (Mo, 12. Mai 2008) | 2 lines

- fixed a typo.

------------------------------------------------------------------------
r103 | graf | 2008-05-12 11:58:47 +0200 (Mo, 12. Mai 2008) | 46 lines

- Fixed: The hitscan tracer had the current sector point to a temporary variable
  when 3D floors were involved.

Update to ZDoom r965:
- Fixed: SPAC_AnyCross didn't work.
- Fixed: Pushable doors must also check for SPAC_MPush.
- Fixed: P_LoadThings2 did not adjust the byte order for the thingid field.
- Changed: HIRESTEX 'define' textures now replace existing textures
  of type MiscPatch with the same name.
- Added UDMF line trigger types MonsterUse and MonsterPush.
- Separated skill and class filter bits from FMapThing::flags so that
  UDMF can define up to 16 of each. Also separated easy/baby and
  hard/nightmare and changed default MAPINFO definitions.
- Fixed: FWadCollection::MergeLumps() did not initialize the flags for any
  marker lumps it inserted.
- Fixed: Need write barriers when modifying SequenceListHead.
- Added a new cvar: midi_timiditylike. This re-enables TiMidity handling of
  GUS patch flags, envelopes, and volume levels, while trying to be closer
  to TiMidity++ than original TiMidity.
- Renamed timidity_config and timidity_voices to midi_config and midi_voices
  respectively.
- Changed: Crosshair drawing uses the current player class's default health instead
  of 100 to calculate the color for the crosshair.
- Added SECF_NOFALLINGDAMAGE flag plus Sector_ChangeFlags to set it. Also separated
  all user settable flags from MoreFlags into their own Flags variable.
- Reduced volume, expression, and panning controllers back to 7 bits.
- Added very basic Soundfont support to the internal TiMidity. Things missing:
  filter, LFOs, modulation envelope, chorus, reverb, and modulators. May or
  may not be compatible with TiMidity++'s soundfont extensions.
- Changed all thing coordinates that were stored as shorts into fixed_t.
- Separated mapthing2_t into mapthinghexen_t and the internal FMapThing so
  that it is easier to add new features in the UDMF map format.
- Added some initial code to read UDMF maps.
- Added support for quoted strings to the TiMidity config parser.
- Split off the slope creation code from p_Setup.cpp into its own file.
- Separated the linedef activation types into a bit mask that allows combination
  of all types on the same linedef. Also added a 'first side only' flag. This
  is not usable from Hexen or Doom format maps though but in preparation of
  the UDMF format discussed here:
  http://www.doomworld.com/vb/source-ports/43145-udmf-v0-99-specification-draft-aka-textmap/
- Changed linedef's alpha property from a byte to fixed point after seeing that
  255 wasn't handled to be fully opaque.
- fixed a GCC warning in fmodsound.cpp
- Fixed: Warped textures didn't work anymore because the default speed was 0.
- Fixed: I had instrument vibrato setting the tremolo_sweep_increment value
  in the instrument loader, effectively disabling vibrato. 
------------------------------------------------------------------------
r102 | graf | 2008-05-01 23:49:47 +0200 (Do, 01. Mai 2008) | 2 lines

- added Strife dynamic light definitions from Skulltag.

------------------------------------------------------------------------
r101 | graf | 2008-05-01 23:45:22 +0200 (Do, 01. Mai 2008) | 38 lines

- Fixed: Warped textures didn't work anymore because the default speed was 0.
- Fixed: When a suspended FraggleScript script was restarted all its variables were
  destroyed.

Update to ZDoom r952:

- Fixed: FString::StripRight() stripped the final character of the string if
  there were no designated characters to strip at the end of it.
- Added support for Shoutcast/Icecast playlists.
- Added an error message when a playlist could not be opened.
- Added support for PLS format playlists, in addition to M3U.
- Changed FPlayList to use an array of FStrings.
- Fixed: Playlists required every song to be specified by an absolute path.
- Fixed a copy-and-paste error in win32/i_main.cpp for 64-bit mode.
- Tweaked OPL centering a little.
- Added dynamic recentering for the OPL synth. The chip has four basic
  waveforms, and three of them are non-negative. This can cause a tendency
  for the resulting output waveform to go into very high ranges depending on
  the timbres used, and Heretic's exemplify this problem.
- Reduced the OPL volume level slightly.
- Fixed: The waveform view from snd_drawoutput was upside-down.
- Various fixes for compiling working 64-bit binaries with Visual C++. The
  number of changes was pleasantly small, and a cursory check seems to show
  everything working alright.
- Separated the skin scale values into separate X and Y values so that skins
  automatically generated for different player classes can use both the
  scaling values that can be set for the actor.
- Fixed: Any MIDI ticks that contain only events that are interpreted by
  the MIDI parser and not passed on to the MIDI device would mess up timing
  for future events.
- Changed EMIDI controller 110-113 handling to more accurately match the
  EMIDI specs: Track designations and exclusions should be ignored past
  the initial beat, and EMIDI program change and volume events should be
  ignored unless they were used in the initial beat.
- Fixed: When FMOD::System::init() returns FMOD_ERR_OUTPUT_CREATEBUFFER, it
  could also be because the user selected PCM-Float output, but the driver
  doesn't support it (even if it claims to *cough*Audigy XP drivers*cough*).

------------------------------------------------------------------------
r100 | graf | 2008-04-26 11:03:15 +0200 (Sa, 26. Apr 2008) | 2 lines

- Added speed factors for texture warp commands.
- Added damage type parameter to A_Die. 
------------------------------------------------------------------------
r99 | graf | 2008-04-25 20:34:45 +0200 (Fr, 25. Apr 2008) | 2 lines

- fixed: The alpha channel for shaded textues was not set properly.

------------------------------------------------------------------------
r98 | graf | 2008-04-25 12:00:54 +0200 (Fr, 25. Apr 2008) | 58 lines

- Fixed: Fog for flooding floor textures into gaps created by missing wall textures
  didn't work since a parameter changes necessitated by ZDoom's render style 'enhancement'.

Update to ZDoom r940:

  SBarInfo Update #18:
- Simplified the DrawGraphic function in sbarinfo_display.cpp
- Added xOffset, yOffset, and alpha to every drawing function in
  sbarinfo_display.cpp.  So Strife popups can be handeled better and allow for
  other effects (translucent bars?).  I'm thinking about making a struct for
  these five (also x and y) arguments so that the argument lists don't become a
  mess.
- Changed DRAWIMAGE in sbarinfo_display.cpp to not use so many calls to
  DrawGraphic.
- DrawKeyBar wasn't using screen->DrawTexture.
- Added a Fade transition for popups.  It takes two args fade in rate and fade
  out rate.  Both are floats (1.0 = 1 tic to complete 0.5 = 2 tics to complete
  and so on).
- Added a translucency arg to statusbars.  1.0 = opaque and 0.0 = invisible.

- Fixed: When an instrument's envelope runs out, it does not immediately ramp
  to zero. Rather, it lets the remainder of the sample finish playing.
- Fixed: When playing a MIDI file with EMIDI track designations to turn a
  track off, any ticks that had only events on the disabled track would cause
  the delay for that track to be thrown away, and the following notes on
  enabled tracks would play too soon. This could be heard quite clearly in
  xplasma.mid, where track 4 (FMGlass Drone 1) would interfere with the timing
  of tracks 13 and 14 (EP1 Melody and EP1 Echo).
- Fixed: DFlashFader did some operations in its destructor that had to be moved
  to its Destroy method.
- Fixed: Dropped weapons from dying players should not double ammo.
- Fixed: When note_on() is called and another copy of the same note is
  already playing on the channel, it should stop it with finish_note(), not
  kill_note(). This can be clearly heard in the final cymbal crashes of
  D_DM2TTL where TiMidity cuts them off because the final cymbals are played
  with a velocity of 1 before the preceding cymbals have finished. (I wonder
  if I should be setting the self_nonexclusive flag for GUS patches to
  disable even this behavior, though, since gf1note.c doesn't turn off
  duplicate notes.)
- Changed envelope handling to hopefully match the GUS player's. The most
  egregious mistake TiMidity makes is to treat bit 6 as an envelope enable
  bit. This is not what it does; every sample has an envelope. Rather, this
  is a "no sampled release" flag. Also, despite fiddling with the
  PATCH_SUSTAIN flag during instrument loading, TiMidity never actually
  used it. Nor did it do anything at all with the PATCH_FAST_REL flag.
- Fixed: wbstartstruct's lump name fields were only 8 characters long
  and not properly zero-terminated when all 8 characters were used.
- Fixed: Local sound sequence definitions caused a crash because a proper
  NULL check was missing.
- Added translucent blending modes to FMultipatchTexture (not tested yet!)
- Also changed all true color texture creation functions to use proper alpha
  values instead of inverted ones.
- Changed FRemapTable so that all palette entries must contain proper alpha
  values. 
- Fixed: The F1 screen check in m_menu.cpp was missing a NULL pointer check.
- Changed: The boss brain's explosions play weapons/rocklx which is an 
  unlimited sound. This can become extremely loud. Replaced with a new
  sound which is just an alias to weapons/rocklx but has a limit of 4. 
------------------------------------------------------------------------
r97 | graf | 2008-04-20 12:26:25 +0200 (So, 20. Apr 2008) | 37 lines

- Fixed: Using sprites as wall textures used incorrect texture offsets because
  sprites are being offset by one pixel to make texture filtering look better.
  Now two sets of coordinates are maintained for native GL textures, one
  for sprites, one for textures.

Update to ZDoom r930:

- Fixed: MugShotFrame::getTexture() allocated space for the sprite name that
  it never freed. I'm not sure it's a good assumption that 9 characters is
  always long enough, either, since you can have longer file names than that
  inside a zip.
- Fixed: DSBarInfo::DrawGem() crashed if chain or gem was NULL.
- Fixed: Sound sequences are not thinkers, therefore they must be explicitly
  marked as roots for the GC.
- Reduced the range that area sounds require to interpolate between 2D and
  3D panning.
- The listener's velocity is now set at 0 for the sound engine. The player
  moves so fast that you can hear the doppler shift just by running around,
  otherwise.
- Changed the sound code so that all sounds that start playing on a single
  tic actually start playing at the exact same sample position.
- Added the writewave command to write the internal TiMidity's output to a
  wave file.
- Changed the default channel velocity for MUS files from 64 to 100 to
  better match apparent MIDI practice. (Would like to know what this is
  supposed to be.)
- Changed the mus2midi channel assignments to match the internal player's.
- Fixed: apply_envelope_to_amp() should clamp the mix levels to 0.
- Made the maximum number of TiMidity voices configurable through the
  timidity_voices cvar.
- Added stats lines for the OPL and Timidity MIDI devices.
- Completely changed the way TiMidity volume calculations are done. It
  should now be extremely close to the output a real GUS would produce with
  its official MIDI player (excepting where TiMidity normalizes sample
  volumes). The new equations more closely match what is specified by the DLS
  and SF2 specs (but not quite), so I presume it's also more musically
  correct than what TiMidity (and TiMidity++) do. 
------------------------------------------------------------------------
r96 | graf | 2008-04-19 02:59:34 +0200 (Sa, 19. Apr 2008) | 10 lines

- Update to ZDoom r924:

- Fixed: FBlockThingsIterator didn't set the current block coordinates if
  they were outside the blockmap. This could cause extreme delays if an
  iteration started outside the valid boundaries.
- Fixed: The music stream needs to zero the FMOD_REVERB_CHANNELPROPERTIES
  before sending it to Channel::getReverbProperties().
- Fixed: The earthquake effect did not play its sound as an actual looping
  sound. I'm a bit surprised this only recently started causing problems.
 
------------------------------------------------------------------------
r95 | graf | 2008-04-18 09:17:07 +0200 (Fr, 18. Apr 2008) | 1 line


------------------------------------------------------------------------
r94 | graf | 2008-04-17 22:58:50 +0200 (Do, 17. Apr 2008) | 36 lines

Update to ZDoom r922:

- Added Martin Howe's fixes for morphing and DECORATE function prototypes.
- Minor fixes in texture code.
- Fixed: The FMOD::System object was never released, only closed, so
  snd_reset would eventually run into the hard limit on the total number
  of FMOD::System objects that can be created concurrently (currently 15).
- Added proper error checks to the FMOD initialization process.
- Updated fmod_wrap.h for FMOD 4.14.
- Set note velocity back to using a linear sounding volume curve, although
  it's now used to scale channel volume and expression, so recompute_amp()
  is still only doing one volume curve lookup.
- Fixed: TimidityMIDIDevice caused a crash at the end of a non-looping song.
- Made translation support for multipatch textures operational.
- Added support for the GUS patch format's scale_frequency and scale_factor
  parameters. These seem to be used primarily to restrict percussion
  instruments to specific notes.
- Changed note velocity to not use the volume curve in recompute_amp(), since
  this sounds closer to TiMidity++, although I don't believe it's correct
  MIDI behavior. Also changed expression so that it scales the channel volume
  before going through the curve.
- Reworked load_instrument() to be less opaque.
- Went through the TiMidity code and removed pretty much all of the SDL_mixer
  extensions. The only exception would be kill_others(), which I reworked
  into a kill_key_group() function, which should be useful for DLS
  instruments in the future.
- Added translation support to multipatch textures. Not tested yet!
- Added Martin Howe's morph weapon update.
- Changed true color texture creation to use a newly defined Bitmap class
  instead of having the copy functions in the frame buffer class.
- Fixed: The WolfSS didn't have its obituary defined.
- Added submission for ACS CheckPlayerCamera ACS function.
- Removed FRadiusThingsIterator after discovering that VC++ misoptimized
  it in P_CheckPosition. Now FBlockThingsIterator is used with the distance
  check being done manually.

------------------------------------------------------------------------
r93 | graf | 2008-04-14 21:24:40 +0200 (Mo, 14. Apr 2008) | 26 lines

- Added Skulltag's HUD model code.

Update to ZDoom r912:

- Added rotation 90 angles only) and mirroring to the Multipatch texture 
  composition code.
- Fixed: The game crashed when a level was ended while a player was morphed
  by a powerup.
- Fixed: A_VileAttack positioned the fire on the wrong side of the target.
- Reorganized the HackHack code so that the image creation was moved into
  MakeTexture. This was necessary because Unload deleted the pixel data
  and broke the whole thing.
- Fixed: FPatchTexture::HackHack and FDoomStatusbarTexture::DrawToBar used the
  obsolete and uninitialized variable Near255. 
- Removed the span creation code specific to FPatchTexture. It only has an
  advantage when the lump has already been loaded in memory but since that
  is no longer the case now the generic version in FTexture is actually better.
- Changed: FTexture::CopyToBlock no longer uses the spans but the pixel buffer
  directly. Since most patches in multipatch textures are non transparent
  the added overhead from creating the spans far outweighs any savings they
  might provide. It is also simpler to handle for mirrored or rotated patches now.
- Changed: Textures only create the spans when really needed. Flats and native
  textures, for example, do not and it only created needless overhead that they
  were always created along with the pixel buffer.
- Made use of player and actor variables consistent in a_hereticweaps.cpp.
- Fixed: A few calls to P_SpawnPlayerMissile passed 0 as angle 
------------------------------------------------------------------------
r92 | graf | 2008-04-13 16:36:49 +0200 (So, 13. Apr 2008) | 1 line

- Added Timidity source to repository
------------------------------------------------------------------------
r91 | graf | 2008-04-13 16:34:31 +0200 (So, 13. Apr 2008) | 26 lines

Update to ZDoom r910:
- Fixed a few bugs in the parser for composite textures.
- Changed: When loading Zips all patches in the patches/ directory should
  be loaded, not only those used by a texture in TEXTUREx. 
- Changed FMOD_INIT_ENABLE_DSPNET use to its replacement from 4.14.00,
  FMOD_INIT_ENABLE_PROFILE. Renamed the corresponding cvar to snd_profile.
- Removed the normalize parameter from SoundStream::Play().
- Disabled the chorus and reverb effects added to SDL_mixer's Timidity,
  because they were probably never tested well, either. Thanks to the bug
  in vc_alloc(), they were never even activated.
- Restored the exact frequency range search that was missing from SDL_mixer's
  verion of select_sample().
- Fixed: vc_alloc(), kill_others(), and note_on() treated Voice::status as a
  bit mask, when it's not. These were changes made to SDL_mixer's Timidity.
- Restored the original Timidity volume equation. The other louder one was
  put in when I didn't realize all channels were mono and many notes sounded
  too quiet because they never completed their attack phase.
- Fixed: FileReader::Gets() acted as if fgets() always read the maximum
  number of characters.
- Fixed: FileReader::Open() did not set FilePos and StartPos to 0.
- Replaced use of stdio in Timidity with FileReader and added the option to read
  from the lump directory. If the main config file is inside the lump directory
  it will assume that everything else is as well. If it is a real file it will be
  assumed that the rest is real files as well.
- Fixed: None of the error returns in read_config_file closed the file being read. 

------------------------------------------------------------------------
r90 | graf | 2008-04-12 20:59:23 +0200 (Sa, 12. Apr 2008) | 53 lines

Update to ZDoom r905:

- Added Martin Howe's morph system update.
- Added support for defining composite textures in HIRESTEX. It is not fully tested
  and right now can't do much more than the old TEXTUREx method.
- Added a few NULL pointer checks to the texture code.
- Made duplicate class names in DECORATE non-fatal. There is really no stability
  concern here and the worst that can happen is that the wrong actor is spawned.
  This was a constant hassle when testing with WADs that contain duplicate resources.
- Removed some GCC warnings.
- Fixed: MinGW doesn't have _get_pgmptr(), so it couldn't compile i_main.cpp.
- Fixed: MOD_WAVETABLE and MOD_SWSYNTH are not defined by w32api, so MinGW
  failed compiling the new MIDI code.
- Fixed: LocalSndInfo and LocalSndSeq in S_Start() need to be const char
  pointers, since "" is a constant.
- Fixed: parsecontext.h was missing a newline at the end of the file.
- Fixed: Timidity::Channel::mono, rpn, and nrpn were not initialized. In
  particular, this meant that every channel was almost certainly in mono mode,
  which can sound pretty bad if the song isn't meant to be played that way.
- Added bank numbers to the MIDI precaching for Timidity, since I guess I do
  need to care about banks, if even the Duke MIDIs use various banks.
- Fixed: snd_midiprecache only exists in Win32 builds, so gameconfigfile.cpp
  shouldn't unconditionally link against it.
- Fixed: pre_resample() was still disabled, and it left two samples at the end
  of the new wave data uninitialized.
- Moved the xmap table from timidity/tables.cpp to playmidi.cpp. Now I can get
  rid of timidity/tables.cpp, which conflicts in name with the main Doom
  tables.cpp. (And interestingly, VC++ automatically renamed the object file,
  so I wasn't aware of the problem with GCC.)
- Added a Gets function to the FileReader class which I planned to use
  to enable Timidity to read its config and sound patches from Zips. 
  I put this on hold though after finding out that the sound quality 
  isn't even near that of Timidity++.
- GCC-Fixes (FString::GetChars() for Printf calls)
- Added a dummy Weapon.NOLMS flag so that Skulltag weapons using this flag
  can be loaded
- Changed the MIDIStreamer to send the all notes off controller to each
  channel when restarting the song, rather than emitting a single note off
  event which only has 1 in 127 chance of being for a note that's playing
  on that channel. Then I decided it would probably be a good idea to reset
  all the controllers as well.
- Increasing the size of the internal Timidity stream buffer from 1/14 sec
  (copied from the OPL player) improved its sound dramatically, so apparently
  Timidity has issues with short stream buffers. It's now at 1/2 sec in
  length. However, there seems to be something weird going on with
  corazonazul_ff6boss.mid near the beginning where it stops and immediately
  restarts a guitar on the exact same note.
- Added a new sound debugging cvar: snd_drawoutput, which can show various
  oscilloscopes and spectrums.
- Eliminated some more global variables (onmobj, DoRipping, LastRipped,
  MissileActor, bulletpitch and linetarget.)
- Internal TiMidity now plays music. Unfortunately, it doesn't sound right. :(
- Changed the progdir global variable into an FString.
------------------------------------------------------------------------
r89 | graf | 2008-04-10 10:09:21 +0200 (Do, 10. Apr 2008) | 23 lines

Update to ZDoom r898:

- Replaced P_PathTraverse with an FPathTraverse class, rewrote all code using
  P_PathTraverse and got rid of a lot of global variables in the process.
- Simplified the use of the checkarray in FBlockThingsIterator: Since the entire
  game runs single threaded there is no need for multiple check arrays if 
  recursive use occurs. Using the same array with a higher start index is 
  sufficient if the size is reset after finishing using the iterator.

April 9, 2008 (SBarInfo Update #17)
- Fixed: SBarInfo tried to calculate scaled offsets on unscaled status bars.
- Added: createpopup to SBarInfo.  No we don't have custom popups yet.  It only
  defines the transition effect.  Currently none or slideinbottom.
- Made the first argument of DrawMugShot optional (think of it as an overloaded
  function).  The use of the first argument is deprecated due to the event of
  per player class faces.
- More changes from DrawImage to screen->DrawTexture().  I guess I didn't get
  them all just yet.

- Added the FCriticalSection class in critsec.h to make it easier to
  use critical sections in other places besides the OPL player.
- Reimplemented snd_midiprecache, now for MIDI as well as MUS, and
  defaulting to false. 
------------------------------------------------------------------------
r88 | graf | 2008-04-09 00:32:52 +0200 (Mi, 09. Apr 2008) | 59 lines

Update to ZDoom r894:
- Eliminated all use of global variables used as output for P_CheckPosition
  and P_TryMove. Moved BlockingLine and BlockingMobj into AActor because 
  the global variables can be easily overwritten with certain DECORATE 
  constructs.
- Removed some unnecessary morphing code.
- Fixed some bugs in the HIRESTEX parser.
- Added floating point support and #include and #define tokens to 
  FParseContext  Not used yet.
- replaced the value scanning code in FParseContext::GetToken with
  calls to strtol.
- Changed XlatParseContext::FindToken to do a binary search over the
  valid token names.
- Fixed: The check arrays for BlockThingsIterators were not properly
  freed and each iterator allocated a new one as a result.
- Split the Xlat parser context class into a generic part that can be 
  used for other Lemon-based parsers in the future and a smaller
  Xlat-specific part.
- Changed: P_TeleportMove now always sets BlockingLine to NULL and
  P_FindFloorCeiling doesn't set it at all. The way it was set in 
  PIT_FindFloorCeiling didn't look correct. (Note: It's amazing how
  easy it is to break P_TryMove et.al. with DECORATE if you just know
  which combinations of code pointers will cause problems. This definitely
  needs to be addressed.)
- Changed P_FindFloorCeiling so that it doesn't need global variables 
  anymore. I also moved the code to set the calling actor's information
  into this function because that's all it is used for. This also fixes
  another bug:
- AInventory::BecomePickup called P_FindFloorCeiling to get
  proper position values for the item but never set the item's information
  to the return value of this call.
- Removed the check for Heretic when playing *evillaugh when using the 
  Chaos Device. This sound is not defined by the other games so it won't
  play by default.
- Added MORPH_UNDOMORPHBYTOMEOFPOWER and MORPH_UNDOMORPHBYCHAOSDEVICE flags
  for the morph style so that the special behavior of these two items
  can be switched on and off.
- Added Martin Howe's morph system enhancement.
- Removed PT_EARLYOUT from P_PathTraverse because it wasn't used anywhere.
- Rewrote BlockThingsIterator code not to use callbacks anymore.
- Fixed: PIT_FindFloorCeiling required tmx and tmy to be set but 
  P_FindFloorCeiling never did that.
- Merged Check_Sides and PIT_CrossLine into A_PainShootSkull.
- Replaced P_BlockLinesIterator with FBlockLinesIterator in all places it was
  used. This also allowed to remove all the global variable saving in
  P_CreateSecNodeList.
- Added a new FBlockLinesIterator class that doesn't need a callback
  function because debugging the previous bug proved to be a bit annoying
  because it involved a P_BlockLinesIterator loop.
- Fixed: The MBF code to move monsters away from dropoffs did not work as 
  intended due to some random decisions in P_DoNewChaseDir. When in the
  avoiding dropoff mode these are ignored now. This should cure the problem
  that monsters hanging over a dropoff tended to drop down.
- Added a NOTIMEFREEZE flag that excludes actors from being affected by
  the time freezer powerup.
- Changed: Empty pickup messages are no longer printed.
- Changed secret sector drawing in automap so that lines with the ML_SECRET
  flag are only drawn as part of a secret sector if that secret has already
  been found, even if the option is set to always show secret sectors. 
------------------------------------------------------------------------
r87 | graf | 2008-04-05 18:46:26 +0200 (Sa, 05. Apr 2008) | 1 line

- Added a missing NULL pointer check to S_Start.
------------------------------------------------------------------------
r86 | graf | 2008-04-05 15:28:48 +0200 (Sa, 05. Apr 2008) | 104 lines

- Fixed: The players were not added to FS's list of spawned things.

- Update to ZDoom r882
- Added the option to use $ as a prefix to a string table name everywhere in
  MAPINFO where 'lookup' could be specified so that there is one consistent
  way to do it.
- Externalized all default episode definitions. Added an 'optional' keyword
  to handle M4 and 5 in Doom and Heretic.
- Added P_CheckMapData function and replaced all calls to P_OpenMapData that
  only checked for a map's presence with it.
- Added Martin Howe's player statusbar face submission.
- Added an 'adddefaultmap' option for MAPINFO. This is the same as 'defaultmap'
  but keeps all existing information in the default and just adds to it. This
  is needed because Hexen and Strife set some information in their base
  MAPINFO and using 'defaultmap' in a PWAD would override that.
- Fixed: Using MAPINFO's f1 option could cause memory leaks.
- Added option to load lumps by full name to several places:
  * Finale texts loaded from a text lump
  * Demos
  * Local SNDINFOs
  * Local SNDSEQs
  * Image names in FONTDEFS
  * intermission script names
- Changed the STCFN121 handling. The character is not an 'I' but a '|' so
  instead of discarding it it should be inserted at position 124.
- Renamed indexfont.fon to indexfont so that I could remove a special case
  from V_GetFont that was just added for this one font.
- Added a 'dumpspawnedthings' CVAR that enables a listing of all things in 
  the map and the actor type they spawned.

SBarInfo Update #16
- Added: fillzeros flag for drawnumber.  When set the string will always have
  a length of the specified size and zeros will fill in for the missing places.
  If the number is negative the negative sign will take the place of the last
  digit.
- Added: globalarray type to drawnumber which will display the value in a
  global array with the index set to the player's number.  Untested.
- Added: isselected command to SBarInfo.
- Fixed: Bi and Tri colored numbers didn't work.
- Fixed: Crash when using nullimage as the last image in drawswitchableimage.
- Applied Graf suggestion to include the y coord when calulating heights to fix
  most of the gaps caused by round off errors.  At least for now anyways and it
  is only applied for drawimage.
- SBarInfo inventory bars have been converted to use screen->DrawTexture()
- Increased limit for demon/melee to 4.
- Fixed: P_CheckSwitchRange accessed invalid memory when testing a one-sided
  line.
- Fixed: P_SpawnPuff assumed that all melee attacks have the same range
  (MELEERANGE) and didn't set the puff to its melee state if the range
  was different. Even worse, it checked a global variable for this so
  the behavior was undefined when P_SpawnPuff was called from anywhere
  else but P_LineAttack. To reduce the amount of parameters I combined
  this information with the hitthing and temporary parameters into one
  flags parameter. Also changed P_LineAttack so that it gets passed
  an additional parameter that specifies whether the attack is a melee
  attack or not and set this to true in all calls that are to be considered
  melee attacks. I couldn't use the damage type because A_CustomPunch
  and A_CustomMeleeAttack allow passing any damage type they want.
- Added a sprite option as an alternative of particles for FX_ROCKET 
  and FX_GRENADE.
- Fixed: The minimum parameter count for ACS_Execute and ACS_ExecuteAlways for
  DECORATE was wrong (2 instead of 1.)
- Changed: Hexen set every cluster to be a hub if it hadn't been defined before
  a level using this cluster. Now it will only do that if HexenHack is true, 
  i.e. when original Hexen format MAPINFOs are parsed. For ZDoom format 
  MAPINFOs it will now be the same as for the other games which means that 
  'hub' has to be declared explicitly.
- Added an Idle state that is entered in place of the spawn state if a monster
  has to return to its inactive state if it can't find any more targets.
- Added MF5_NOINTERACTION flag which completely disables all physics related
  code for any actor with this flag. Mostly useful for particle effects where
  the actors just move a certain distance and then disappear.
- Removed the last remains of the antialias precalculation code from
  am_map.cpp because it was no longer used.
- Fixed: Two-sided lines bordering a secret sector were not drawn in the
  proper color
- Fixed: The automap didn't check ACS_LockedExecuteDoor for its lock color.
- Switched sounds local to the listener from head-relative 3D sounds to 2D
  sounds so stereo sounds have full separation. I tried using set3DSpread,
  but that still caused some blending of the channels.
- Changed FScanner so that opening a lump gives the complete wad+lump name
  rather than a generic one, so identifying errors among files that all have
  the same lump name no longer involves any degree of guesswork in
  determining exactly which file the error occurred in.
- Added a check to S_ParseSndSeq() for SNDSEQ lumps with unterminated final
  sequences.
- Fixed: Parts of s_sndseq.cpp that scan the Sequences array need NULL
  pointer checks, in case an improper sequence was encountered during
  parsing but not early enough to avoid creating a slot for it in the array.
- Added support for dumping from RAW/DRO/IMF files, so now anything that
  can be played as OPL can also be dumped.
- Removed the opl_enable cvar, since OPL playback is now selectable as just
  another MIDI device.
- Added support for DRO playback and dual-chip RAW playback.
- Removed MUS support from OPLMUSSong, since using the OPLMIDIDevice with
  MUSSong2 works just as well. There are still lots of leftover bits in
  the class that should probably be removed at some point, too.
- Added dual-chip dumping support for the RAW format.
- Added DosBox Raw OPL (.DRO) dumping support. For whatever reason,
  in_adlib calculates the song length for this format wrong, even though
  the exact length is stored right in the header. (But in_adlib seems buggy
  in general; too bad it's the only Windows version of Adplug that seems to
  exist.)
- Rewrote the OPL dumper to work with MIDI as well as MUS. 
------------------------------------------------------------------------
r85 | graf | 2008-04-01 00:49:14 +0200 (Di, 01. Apr 2008) | 6 lines

- removed Modplug option for MOD playback after discovering some critical problems
  with it. But since the latest FMOD almost completely fixes the problems that
  made me add Modplug in the first place there is no real point in investing time 
  in fixing this code and maintaining it further.
- Update to ZDoom r871.

------------------------------------------------------------------------
r84 | graf | 2008-03-30 10:34:44 +0200 (So, 30. Mrz 2008) | 12 lines

- Update to ZDoom r869

- OPL stuff
- Fixed: The HIRESTEX parser didn't check if a graphic specified in a remap
  command actually existed.
- Fixed: My $Limit fix from yesterday didn't work because NearLimit was
  an unsigned byte and the comparisons with -1 didn't work. Made it a
  signed word instead.
- Made sfxinfo_t::Link an unsigned int because it limited the amount of 
  usable sounds to 65535.
 

------------------------------------------------------------------------
r83 | graf | 2008-03-29 09:20:02 +0100 (Sa, 29. Mrz 2008) | 2 lines

- Update to ZDoom r864 (changes in OPL implementation.)

------------------------------------------------------------------------
r82 | graf | 2008-03-28 15:01:10 +0100 (Fr, 28. Mrz 2008) | 1 line

- Wadsrc cleanup
------------------------------------------------------------------------
r81 | graf | 2008-03-28 10:56:50 +0100 (Fr, 28. Mrz 2008) | 2 lines

- Update to ZDoom r862

------------------------------------------------------------------------
r80 | graf | 2008-03-28 00:36:32 +0100 (Fr, 28. Mrz 2008) | 2 lines

- Update to ZDoom r860

------------------------------------------------------------------------
r79 | graf | 2008-03-27 19:31:46 +0100 (Do, 27. Mrz 2008) | 56 lines

- Update to ZDoom r858:
- Added FMOD_OPENONLY to the callback version of CreateStream() to prevent it
  from doing prebuffering of the song. This was causing the Linux version to
  hang while waiting for input from the pipe, since Timidity hadn't been
  started yet. I tried using a select call in the FillStream() method, but it
  always seems to return the pipe as having nothing available. Unfortunately,
  the game still falls all over itself if Timidity isn't available. Instead
  of execvp failing nicely, X errors kill the game. I don't know why it's
  doing that. My advice for Linux music: Skip Timidity++ and get a DLS patch
  set (/WINDOWS/system32/drivers/gm.dls is probably the most common by far)
  and set the snd_midipatchset cvar to point to it. It's faster and also
  sounds a whole lot better than the crappy freepats Ubuntu wants to install
  with Timidity++ (thank goodness I have the official patches from a real
  GUS so I don't need to use them).
- GCC fixes.
- Fixed: After starting new music the music volume has to be reset so that
  the song's relative volume takes effect.
- Removed the arbitrary 1024 bytes limit when the file being played is a MIDI
  file. I had a D_DM2TTL that's only 990 bytes.
- Restructured I_RegisterSong so that $mididevice works again and also supports
  selecting FMOD.
- Added Jim' Linux fix.
- Added MartinHowe's fix for mugshot display in status bars.
- The garbage collector is now run one last time just before exiting the game.
- Removed movie volume from the sound menu and renamed some of the other
  options to give the MIDI device name more room to display itself.
- Moved the midi device selection into the main sound menu.
- Added FMOD as MIDI device -1, to replace the MIDI mapper. This is still the
  default device. By default, it uses exactly the same DLS instruments as the
  Microsoft GS Wavetable Synth. If you have another set DLS level 1 patch set
  you want to use, set the snd_midipatchset cvar to specify where it should
  load the instruments from.
- Changed the ProduceMIDI function to store its output into a TArray<BYTE>.
  An overloaded version wraps around it to continue to supply file-writing
  support for external Timidity++ usage.
- Added an FMOD credits banner to comply with their non-commercial license.
- Reimplemented the snd_buffersize cvar for the FMOD Ex sound system. Rather
  than a time in ms, this is now the length in samples of the DSP buffer.
  Also added the snd_buffercount cvar to offer complete control over the
  call to FMOD::System::setDSPBufferSize(). Note that with any snd_samplerate
  below about 44kHz, you will need to set snd_buffersize to avoid long
  latencies.
- Reimplemented the snd_output cvar for the FMOD Ex sound system.
- Changed snd_samplerate default to 0. This now means to use the default
  sample rate.
- Made snd_output, snd_output_format, snd_speakermode, snd_resampler, and
  snd_hrtf available through the menu.
- Split the HRTF effect selection into its own cvar: snd_hrtf.
- Removed 96000 Hz option from the menu. It's still available through the
  cvar, if desired.
- Fixed: If Windows sound init failed, retry with DirectSound. (Apparently,
  WASAPI doesn't work with more than two speakers and PCM-Float output at the
  same time.)
- Fixed: Area sounds only played from the front speakers once you got within
  the 2D panning area.

------------------------------------------------------------------------
r78 | graf | 2008-03-25 17:19:31 +0100 (Di, 25. Mrz 2008) | 46 lines

- Added ZDoom's new sound code now that $limit is working again

Update to ZDoom r853
- Increased the limit for 'imp/active' to 6. This sound definitely benefits  
  from a higher limit.
- Fixed: $limit should not apply to sounds played from the menu.
- Fixed: The SNDSEQ parser tried to set bDoorSound before actually creating
  the sound sequence data.
- Changed Lemon so that it always writes the header. It still kept recompiling
  the grammar over and over again once it had been changed locally.
- Fixed: ANIMATED allowed animations between different texture types.
- Added a debuganimated CCMD that can be used to output some information
  if a WAD shows broken animations.
- Removed xlat_parser.h from the repository. Lemon was always being run on
  xlat_parser.y because both files had the same time stamp after an update,
  and Lemon only rewrites the header file if it's changed.
- Added $volume SNDINFO command. This is multiplied with the volume the sound
  is played at to arrive at the final volume (before distance attenuation).
- Added the CHAN_AREA flag to disable 3D panning within the min distance of a
  sound. Sector sound sequences (except doors) use this flag.
- Added the CHAN_LOOP flag to replace the S_Looped* sound functions.
- Fixed: THe handling for enum values in Xlat was incorrect. The rule with 
  value assignment must set the counter one higher than the current value.
- Fixed: The definition of enums in the Xlat grammar was right-recursive
  which could create stack overflows in the parser. Made it left-recursive as
  recommended in Lemon's docs. 
- Added Thomas's submissions for decal assignment to puffs and NOINFIGHTING flag.
- Reverted changes of r715 in v_collection.cpp because they broke loading
  of status bar face graphics belonging to skins.
SBARINFO update #15
- Fixed: Monospacing fonts wasn't quite correct.
- Fixed: The new mug shot code forgot to use the first arg of drawmugshot (the
  one that picks the default sprite prefix).
- Added: lowerHealthCap variable to SBarInfo, which is set to true by default.
- Added: ininventory event to SBarInfo to detect if one or two items are in (or
  not in) the player's inventory.
- Added: The ability to print global vars using drawnumber.  I need someone to
  test it though.
- Added: aspectratio command to detect what the user's aspect ratio is.
- Added: missing spacing argument to drawstring.
- Changed the sbarinfo display routine for drawnumber to not use cmd.value to
  store what it is about to display.  Now it uses a new variable.
- More conversions from DrawImage to screen->DrawTexture.  I think only the
  inventory bar drawing functions have to be changed now.


------------------------------------------------------------------------
r76 | graf | 2008-03-24 09:33:17 +0100 (Mo, 24. Mrz 2008) | 1 line

- Fixed project dependencies.
------------------------------------------------------------------------
r75 | graf | 2008-03-24 09:22:09 +0100 (Mo, 24. Mrz 2008) | 3 lines

- Version bump to 1.1.02.
- Fixed: Heretic's and Hexen's SNDCURVE data was incompletely processed.

------------------------------------------------------------------------
r73 | graf | 2008-03-23 23:20:53 +0100 (So, 23. Mrz 2008) | 3 lines

- Fixed: The Sequence pointer in ASoundSequenceSlot was not declared as
  a pointer and it was missing both read and write barriers.

------------------------------------------------------------------------
r72 | graf | 2008-03-23 22:26:04 +0100 (So, 23. Mrz 2008) | 1 line

- Version bump to 1.1.1
------------------------------------------------------------------------
r71 | graf | 2008-03-23 22:23:26 +0100 (So, 23. Mrz 2008) | 19 lines

- Removed the sound priority setting because it proved rather disruptive when
  lots of sounds were played.
- Moved the Legacy line type patch from p_xlat.cpp into the FraggleScript code 
  where it belongs.
- finally removed some very old and obsolete hacks from p_xlat.cpp.
Update to ZDoom r844:
- Fixed: The sector translators must clear unused bits because they might
  render a sector's special inoperable.
- Expanded the args for MAPINFO special actions to 32 bit integers as in
  the rest of the game.
- Fixed: The specialaction list was not copied properly when transferred
  from the defaultinfo.
- Fixed: The defaultinfo for MAPINFO wasn't cleared fully after MAPINFO
  parsing was completed.
- Made Doom-format linedef translators a map property so that it's easier
  to define replacements or extensions.
- Added sector type translation to xlat_parser and removed the old sectorx
  lump.

------------------------------------------------------------------------
r70 | graf | 2008-03-22 22:31:14 +0100 (Sa, 22. Mrz 2008) | 8 lines

Update to ZDoom r840:
- Changed DEHSUPP loader so that it reads the text file directly. As a result
  the DEHSUPP compiler is gone now. Unlike XLATCC I'm using FScanner though.
  A fully featured parser seems like overkill for this simple text file.
- Added Line_SetTextureOffset special.
- Added 'allowprotection' keyword to terrain definitions to allow damaging
  flats that don't damage players with a radiation suit.

------------------------------------------------------------------------
r69 | graf | 2008-03-22 15:50:30 +0100 (Sa, 22. Mrz 2008) | 33 lines

- Added more options to Light_ForceLightning: Setting the first arg to 0
  will behave as before, setting it to 1 will create exactly one lighting
  and setting it to 2 will terminate lightning for the current level
  completely. And it will also work on maps that don't have lightning set
  in MAPINFO now.
- Added: Sector movement that causes deep water to change its height now
  will trigger associated sector actions and adjust the actor's water level.
- Fixed: The serializer for side_t::part never read the texture information
  from a savegame.
- Fixed: side_t::StopInterpolation called setinterpolation instead of
  stopinterpolation. Also moved the clearinterpolation call in 
  P_SetupLevel after the P_FreeLevelData to make absolutely sure that
  nothing in there can leave an interpolator behind by accident.
- Applied Linux fixes by Jim.
SBARINFO update by Blzut3:
- Fixed: the playerclass command needed a null pointer check to prevent
  crashing on respawn.
- Fixed: Mug Shot states were not reset on respawn.
- Removed keepoffsets flag since apparently it was keeping the offsets by
  default.  The means that the only thing not affected by the offsets was using
  nullimage as a background.  Since I wasn't able to get a result I liked I'm
  going to say that if you want a black background with high res positioning
  you will have to create your own bar image.  Maybe I'll fix it some other
  time.
- Added: monospacefonts variable which allows for all of the fonts to be
  monospaced by a specified character (from their fontset of corse).
- Made SBarInfo recognize the bar names for the Strife popups but they don't
  do anything beyond that.  The names are: popuplog, popupkeys, and popupstatus.
- Started converting the drawing routine to be more flexable towards high
  resolution status bars.  (Only did one call so far.)

NOTE: ZDoom's new sound code is not in yet because it's still too broken for serious use.

------------------------------------------------------------------------
r68 | graf | 2008-03-21 23:22:06 +0100 (Fr, 21. Mrz 2008) | 3 lines

- Fixed: When starting a map with rendering quality mode on the engine crashed
  because some data was read from an invalid sector.

------------------------------------------------------------------------
r67 | graf | 2008-03-21 22:15:56 +0100 (Fr, 21. Mrz 2008) | 25 lines

- Removed precompiled header option for GL code because it caused more problems than
  the minimal amount of saved time was worth.
Update to ZDoom r833:
- Disabled scrolling of 3DMIDTEX textures. Due to the special needs this 
  cannot work properly.
- Added new Scroll_Wall special to allow more control over wall scrolling.
  Since it uses fixed point parameters it can only be used in scripts though.
- Added flags parameters to all wall scroller specials that didn't use
  all 5 args.
- Separated scrolling of the 3 different texture parts of a sidedef.
  While doing this I did some more restructuring of the sidedef structure
  and changed it so that all state changes to sidedefs that affect rendering 
  have to be made with access functions. This is not of much use to the
  software renderer but it allows far easier caching of rendering data
  for OpenGL because the only place I need to check is in the access functions.
- Added Karate Chris's ThingCountSector submission.
- Made texture indices in FSwitchDef full integers. Since that required
  some data restructuring I also eliminated the MAX_FRAMES limit of 128
  per switch.
- Removed some debug output from SBarInfo::ParseSBarInfo().
- Fixed: Heretic linetype translations included the wrong file.
- Removed ATTN_SURROUND, since FMOD Ex doesn't exactly support it, and it
  only worked as intended on stereo speakers anyway.
- Cleaned out ancient crud from i_sound.cpp.

------------------------------------------------------------------------
r66 | graf | 2008-03-21 09:41:51 +0100 (Fr, 21. Mrz 2008) | 4 lines

- added FS_Execute to actionspecials.h
- Fixed rendering of additive sprites with alpha channel
- added missing file p_linkedsectors.cpp.

------------------------------------------------------------------------
r65 | graf | 2008-03-20 22:19:20 +0100 (Do, 20. Mrz 2008) | 13 lines

- Update to ZDoom r825:
- Fixed: A_CustomMissile with aimmode 2 ignored spawnofs_xy.
- Changed savegame versioning so that the written version is never lower
  than the minmum one reported as compatible. 
- Added mirrored movement modes for linked sectors.
- Added Eternity-style initialization for linked sectors as a new subtype
  of Static_Init.
- Added linked sectors. The control sector determines how they move but if
  any one of the linked sectors is blocked, movement for all linked sectors
  will be affected. This will allow lifts consisting out of more than one
  sector without the risk of breaking them if only one of the sectors is
  blocked.
- Fixed: A_Mushroom created an actor on the stack.
------------------------------------------------------------------------
r64 | graf | 2008-03-20 11:44:31 +0100 (Do, 20. Mrz 2008) | 5 lines

- committed missing actionspecials.h file
- I finally decided to officially document the FS_Execute special for Hexen format maps.
  It's line special 158:
  FS_Execute(scriptnum [, firstsideonly [, locknum [, lockedmessagetype]]])
  lockedmessagetype is 0 for 'door' messages and 1 for 'remote' messages.
------------------------------------------------------------------------
r63 | graf | 2008-03-20 11:39:44 +0100 (Do, 20. Mrz 2008) | 16 lines

Update to ZDoom r822 including:

- Fixed: lempar.c needs to specify the __cdecl calling convention for malloc
  and free under VC++.
- Added a new parameter to all crushing action specials that selects
  which crushing mode is used: 0 uses the game's default for compatibility,
  1 uses Doom's mode (crushers continue to move while damaging any actors ) and
  2 uses Hexen's mode (crushers stay at blocking actor's top until they die).
  Since Generic_Crusher already used all 5 args I created a second version for
  Hexen crushing mode.
- Added PICKUP flag to DECORATE.
- Integrated xlatcc into ZDoom.exe so that the linedef translation files
  don't need to be compiled and can be stored as text in zdoom.pk3.
- Removed thingdef_specials.h and thingdef_specials.gperf and replaced
  line special definition with something that automatically gets updated
  if new specials are added.
------------------------------------------------------------------------
r62 | graf | 2008-03-19 12:19:03 +0100 (Mi, 19. Mrz 2008) | 53 lines

Update to ZDoom r813, including:

- Added copyright/license headers to a few files.
- Fixed: ACS SetMugShotState needs to check the StatusBar pointer for the
  proper object type.
- Move SBarInfo loading code in d_main.cpp into a static method of DSBarInfo.
- Removed dobject.err from the repository. It only contained a list of compiler
  errors for some very old version of dobject.cpp.
- Fixed: A_JumpIfCloser was missing a z-check.
- Added Blzut3's SBARINFO update #13:
- Split sbarinfo.cpp into two files sbarinfo_display.cpp and sbarinfo_parser.cpp
- Rewrote the mug shot system for SBarInfo to allow for scripting and custom
  states for different means of death.
- SBarInfo now loads all SBarInfo lumps instead of just the last one.  Clashing
  status bar definitions will now be cleared before the bar is read.
- Fixed: When using transparency with bars the new drawing method (bg over fg)
  didn't work.  In the case that the border value is set to 0 it will revert to
  the old method (fg over bg).
- Fixed: drawbar lost any high res information it was given.
- Added: ACS command SetMugShotState(str state) which sets the mug shot state
  for the activating player.
- Added: keepoffsets flag to drawbar.  When set the offsets in the fg image will
  also be applied when displaying the bar.

- Fixed the TArray serializer declaration.
  (Thank you for your warnings, GCC! ;-)
- Changed root sector marking so that it can happen incrementally.
- Fixed: The TArray serializer needs to be declared as a friend of TArray
  in order to be able to access its fields.
- Since there are no backwards compatibility issues due to savegame version
  bumping I closed all gaps in the level flag set.
- Bumped min. Savegame version and Netgame version for 3dMidtex related
  changes.
- Changed Jump and Crouch DMFlags into 3-way switches:
  0: map default, 1: off, 2: on. Since I needed new bits the rest of
  the DMFlag bit values had to be changed as a result.
- fixed: PTR_SlideTraverse didn't check ML_BLOCKMONSTERS for sliding
  actors without MF3_NOBLOCKMONST.
- Added MAPINFO commands 'checkswitchrange' and 'nocheckswitchrange'
  that can enable or disable switch range checking globally per map.
- Changed ML_3DMIDTEX to force ML_CHECKSWITCHRANGE.
- Added a ML_CHECKSWITCHRANGE flag which allows checking whether the 
  player can actually reach the switch he wants to use.
- Made DActiveButton::EWhere global so that I can use it outside thr
  DActiveButton class.
- Changed P_LineOpening to pass its result in a struct instead of global
  variables.
- Added Eternity's 3DMIDTEX feature (no Eternity code used though.)
  It should be feature complete with the exception of the ML_BLOCKMONSTERS
  flag handling. That particular part of Eternity's implementation is
  sub-optimal because it hijacks an existing flag and doesn't seem to make
  much sense to me. Maybe I'll implement it as a separate flag later.

------------------------------------------------------------------------
r61 | graf | 2008-03-16 17:23:08 +0100 (So, 16. Mrz 2008) | 3 lines

- Update to ZDoom r807.
- removed the FLAC subproject because it isn't used anymore.

------------------------------------------------------------------------
r60 | graf | 2008-03-14 11:45:16 +0100 (Fr, 14. Mrz 2008) | 3 lines

- fixed: The GL renderer must end fullscreen mode before shutting down OpenGL.
  Otherwise Vista can get stuck in it on the ENDOOM screen.
- updated to ZDoom r804
------------------------------------------------------------------------
r59 | graf | 2008-03-14 09:27:37 +0100 (Fr, 14. Mrz 2008) | 1 line

- updated to ZDoom r803
------------------------------------------------------------------------
r58 | graf | 2008-03-13 23:48:13 +0100 (Do, 13. Mrz 2008) | 2 lines

- fixed project dependencies.

------------------------------------------------------------------------
r57 | graf | 2008-03-13 19:27:27 +0100 (Do, 13. Mrz 2008) | 4 lines

- Improved validation for MOD music files.
- simplified MOD loading code because due to the removal of the rare formats
  some checks weren't necessary anymore.

------------------------------------------------------------------------
r56 | graf | 2008-03-13 11:21:13 +0100 (Do, 13. Mrz 2008) | 3 lines

- added a few more write barriers to the FS code.
- merged code to create FS's running scripts into common functions.
- updated to ZDoom r802
------------------------------------------------------------------------
r55 | graf | 2008-03-12 17:45:43 +0100 (Mi, 12. Mrz 2008) | 5 lines

- Added pointer substitution to FS's SpawnedThings array.
- Changed DObject's pointer substitution so that the pointers inside an
  object are handled by a virtual function. This allows subclasses to
  implement their own handling if they need it.

------------------------------------------------------------------------
r54 | graf | 2008-03-12 16:21:17 +0100 (Mi, 12. Mrz 2008) | 10 lines

- implemented Vavoom's vertex height things (1505, 1506). These are not tested yet!
- added Updaterevision tool to print proper revision information in the console.
- removed support for specialty file formats from ModPlug loader. Having the 4 basic
  module formats (MOD, XM, S3M and IT) plus UMX should be enough.
- added new brightmaps by phi108 (Player and Baron attack)
- fixed a few brightmap definition errors
- fixed: DFraggleThinker::Destroy still treated the SpawnedThings array as DActorPointers 
  although that helper class has been removed.
- merged the GC branch into the trunk
- updated to ZDoom r796
------------------------------------------------------------------------
r53 | graf | 2008-03-09 17:01:55 +0100 (So, 09. Mrz 2008) | 3 lines

- updated to ZDoom r791
- fixed: Mod playback through ModPlug only worked for music that was stored within Zips.

------------------------------------------------------------------------
r52 | graf | 2008-03-02 14:48:19 +0100 (So, 02. Mrz 2008) | 6 lines

- Update to ZDoom r781.
- fixed dynamic lighing on brightmapped walls/flats.
- added 'dontlightself' option to dynamic light definitions so that 
  lights can be defined that don't affect their owning actor.
- fixed list file for brightmaps.pk3.

------------------------------------------------------------------------
r51 | graf | 2008-03-01 19:54:31 +0100 (Sa, 01. Mrz 2008) | 3 lines

- Update to ZDoom r780.


------------------------------------------------------------------------
r50 | graf | 2008-03-01 12:13:07 +0100 (Sa, 01. Mrz 2008) | 5 lines

- Got rid of DActorPoointer. With garbage collection fully implemented it is
  no longer needed.
- Added GC handling code for FS's global_script.
- merged latest changes from trunk into GC branch.
- Update to ZDoom r777
------------------------------------------------------------------------
r49 | graf | 2008-03-01 10:53:54 +0100 (Sa, 01. Mrz 2008) | 3 lines

- Update to ZDoom r776
- Made FS's global_script a pointer.
- Committed newly added brightmap images for yesterday's update.
------------------------------------------------------------------------
r48 | graf | 2008-02-29 23:33:07 +0100 (Fr, 29. Feb 2008) | 1 line

Added new brightmaps by phi108.
------------------------------------------------------------------------
r47 | graf | 2008-02-28 11:40:46 +0100 (Do, 28. Feb 2008) | 1 line

- Optimized Fragglescript code.
------------------------------------------------------------------------
r45 | graf | 2008-02-27 12:51:25 +0100 (Mi, 27. Feb 2008) | 2 lines

- Update to ZDoom r771.

------------------------------------------------------------------------
r44 | graf | 2008-02-25 21:09:22 +0100 (Mo, 25. Feb 2008) | 1 line

- removed STACK_ARGS from FS_Close.
------------------------------------------------------------------------
r43 | graf | 2008-02-25 19:07:13 +0100 (Mo, 25. Feb 2008) | 1 line

- fixed project files
------------------------------------------------------------------------
r42 | graf | 2008-02-25 17:17:19 +0100 (Mo, 25. Feb 2008) | 2 lines

- fixed serialization of FS variables and implemented proper error message output.

------------------------------------------------------------------------
r41 | graf | 2008-02-25 16:54:41 +0100 (Mo, 25. Feb 2008) | 3 lines

- Fixed: The DECORATE expression evaluator's random function could produce
  incorrect results for ranges > 255. Changed so that FRandom's default
  implementation is used instead.
------------------------------------------------------------------------
r39 | graf | 2008-02-25 13:00:00 +0100 (Mo, 25. Feb 2008) | 1 line

- forgot to save one file.
------------------------------------------------------------------------
r38 | graf | 2008-02-25 12:47:19 +0100 (Mo, 25. Feb 2008) | 4 lines

- fixed a few memory leaks.
- removed FS's nullvar. Now there's only 2 global FS variables left and that's as good as it gets. :)


------------------------------------------------------------------------
r37 | graf | 2008-02-25 09:44:31 +0100 (Mo, 25. Feb 2008) | 2 lines

- 'GCC sucks' time again.

------------------------------------------------------------------------
r36 | graf | 2008-02-25 00:36:07 +0100 (Mo, 25. Feb 2008) | 1 line

- Complete restructuring of FraggleScript code. Object deletion doesn't work properly yet!
------------------------------------------------------------------------
r35 | graf | 2008-02-24 00:13:02 +0100 (So, 24. Feb 2008) | 2 lines

- reorganized some FS code.

------------------------------------------------------------------------
r34 | graf | 2008-02-23 22:12:27 +0100 (Sa, 23. Feb 2008) | 3 lines

- Changed FS string handling to use FStrings to remove some memory leaks in the FS code.
- Reverted FS code to r29.

------------------------------------------------------------------------
r33 | graf | 2008-02-23 12:33:44 +0100 (Sa, 23. Feb 2008) | 1 line

- Update to ZDoom r767
------------------------------------------------------------------------
r32 | graf | 2008-02-23 12:25:27 +0100 (Sa, 23. Feb 2008) | 4 lines

- moved FS's SpawnedThings array into the DFraggleThinker class.
- added a static variable holding the global thinker to DFraggleThinker.


------------------------------------------------------------------------
r31 | graf | 2008-02-22 10:00:45 +0100 (Fr, 22. Feb 2008) | 2 lines

- Update to ZDoom r763

------------------------------------------------------------------------
r29 | graf | 2008-02-21 23:28:42 +0100 (Do, 21. Feb 2008) | 2 lines

- moved all Fragglescript code and global variables into the DFraggleThinker class.

------------------------------------------------------------------------
r27 | graf | 2008-02-20 19:02:04 +0100 (Mi, 20. Feb 2008) | 1 line


------------------------------------------------------------------------
r24 | graf | 2008-02-20 17:51:40 +0100 (Mi, 20. Feb 2008) | 3 lines

- added branches folder
- updated to ZDoom r755.

------------------------------------------------------------------------
r21 | graf | 2008-02-15 19:40:06 +0100 (Fr, 15. Feb 2008) | 2 lines

- Version bump to 1.1.0
- Update to ZDoom 2.2.0
------------------------------------------------------------------------
r20 | graf | 2008-02-15 00:05:19 +0100 (Fr, 15. Feb 2008) | 1 line

- fixed function used to light models and xy-billboarded sprites in sectors with 3D floors
------------------------------------------------------------------------
r19 | graf | 2008-02-14 18:15:51 +0100 (Do, 14. Feb 2008) | 1 line

- fixed offset handling for dynamic lights again.
------------------------------------------------------------------------
r18 | graf | 2008-02-14 16:47:59 +0100 (Do, 14. Feb 2008) | 7 lines

- Added Karate Chris's patch for 0-tid == activator in action specials
  Thing_SetSpecial and Thing_SetTranslation.
- moved BUG_FORUM_URL to version.h
- fixed: Sprite alpha was not set properly for STYLEF_Alpha1.
- fixed: Dynamic light offsets were absolute, not relative to the owner.
- fixed: Presence of a full alpha channel in sprites was only checked when the actor's alpha was 1.0.

------------------------------------------------------------------------
r17 | graf | 2008-02-14 14:07:19 +0100 (Do, 14. Feb 2008) | 6 lines

- Updated to ZDoom r744
- fixed: Fog didn't work with Line_Horizon
- fixed: Using ExtraFloor_LightOnly in a skybox with non-black fog caused rendering
- fixed: Apparently it is possible that AActor::Tick is called after the 3D floor data has been deleted.
- fixed: The desaturation shader must first desaturate and then light. It did it in reverse order.
- fixed: gl_billboard_mode used an incorrect default value.
------------------------------------------------------------------------
r16 | graf | 2008-01-31 23:47:14 +0100 (Do, 31. Jan 2008) | 1 line


------------------------------------------------------------------------
r15 | graf | 2008-01-31 23:09:13 +0100 (Do, 31. Jan 2008) | 4 lines

- Fixed: The STYLEF_Alpha1 flag intended for STYLE_Normal was set for STYLE_Fuzzy.
- Fixed: The sprite drawing code needs to check for fuzziness before adding the 
  sprite to the draw lists.

------------------------------------------------------------------------
r14 | graf | 2008-01-31 22:08:15 +0100 (Do, 31. Jan 2008) | 5 lines

- fixed DEHSUPP values for render styles.
- Fixed: The render style table for old decorations was missing STYLE_Stencil so
  STYLE_Translucent was mapped incorrectly.
- Fixed: Translucent textures on two sided walls were not rendered properly

------------------------------------------------------------------------
r13 | graf | 2008-01-31 09:41:28 +0100 (Do, 31. Jan 2008) | 1 line

- Fixed crash with placed dynamic lights
------------------------------------------------------------------------
r12 | graf | 2008-01-30 20:00:45 +0100 (Mi, 30. Jan 2008) | 4 lines

- Added support for AttackZOffset to P_RailAttack.
- Fixed: ParseDrawTextureTags read DTA_RenderStyle as ERenderStyle, not FRenderStyle.
- Fixed: attached dynamic lights must not be reassigned by DObject::PointerSubstitution.

------------------------------------------------------------------------
r11 | graf | 2008-01-29 19:53:47 +0100 (Di, 29. Jan 2008) | 3 lines

- fixed backface culling for models
- fixed fog settings for wall rendering

------------------------------------------------------------------------
r10 | graf | 2008-01-28 12:24:32 +0100 (Mo, 28. Jan 2008) | 10 lines

- Fixed: During the texture code rewrites the call to gl_ParseDefs was deleted.
- Fixed texture precaching .
- Fixed: The stencil texture mode was not set properly.
- Added latest Linux compile patch.

Updated to ZDoom r723:
- Added a PrecacheTexture virtual function to DFrameBuffer because it's the
  renderer which should decide how to precache a texture.
- Added SnowKate709's APROP_MaxHealth submission.

------------------------------------------------------------------------
r9 | graf | 2008-01-28 00:11:51 +0100 (Mo, 28. Jan 2008) | 4 lines

- Fixed several GCC warnings
- Fixed rounding error in texture scaling.
- Fixed: RenderStyle Stencil was always opaque

------------------------------------------------------------------------
r8 | graf | 2008-01-27 17:49:48 +0100 (So, 27. Jan 2008) | 1 line

Added most of phi108's enhanced brightmaps.
------------------------------------------------------------------------
r7 | graf | 2008-01-27 17:38:47 +0100 (So, 27. Jan 2008) | 2 lines

Changed references from zdoom.pk3 to gzdoom.pk3 in wadsrc.vcproj.

------------------------------------------------------------------------
r6 | graf | 2008-01-27 17:26:59 +0100 (So, 27. Jan 2008) | 2 lines

Added a project for making lights.pk3.

------------------------------------------------------------------------
r5 | graf | 2008-01-27 17:15:53 +0100 (So, 27. Jan 2008) | 2 lines

Added a project for making brightmaps.pk3.

------------------------------------------------------------------------
r4 | graf | 2008-01-27 16:34:47 +0100 (So, 27. Jan 2008) | 3 lines

- Update to ZDoom r718
- Added ModPlug as an option to play MOD music because FMOD is not that good for it.

------------------------------------------------------------------------
r3 | graf | 2008-01-27 14:38:55 +0100 (So, 27. Jan 2008) | 1 line


------------------------------------------------------------------------
r2 | graf | 2008-01-27 14:24:58 +0100 (So, 27. Jan 2008) | 1 line

Added strfhelp.o and updated xlat/defines.i in wadsrc.
------------------------------------------------------------------------
r1 | graf | 2008-01-27 12:25:03 +0100 (So, 27. Jan 2008) | 1 line

Initial import - version 1.0.32
------------------------------------------------------------------------
