Commit graph

1760 commits

Author SHA1 Message Date
Randy Heit
4ebfdac887 - 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).


SVN r1955 (trunk)
2009-11-01 01:27:33 +00:00
Christoph Oelckers
a4f4994e18 - re-fixed polyobject CheckSwitchRange so that it doesn't have to alter the polyobject's linedefs.
SVN r1954 (trunk)
2009-10-30 07:03:26 +00:00
Randy Heit
da3daa0721 - Fix incorrect fix from previous commit.
SVN r1953 (trunk)
2009-10-30 03:53:00 +00:00
Randy Heit
4252cd52ad - Fixed: Sprites and decals that are drawn with addition must fade to black.
SVN r1952 (trunk)
2009-10-30 03:46:51 +00:00
Randy Heit
321ab2f686 - Make TranslateToStartSpot() set the new sector references for a polyobj's
walls so that P_CheckSwitchRange() will work with them.


SVN r1951 (trunk)
2009-10-30 03:29:15 +00:00
Randy Heit
0f96ec4a32 - 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.)


SVN r1950 (trunk)
2009-10-30 02:42:40 +00:00
Randy Heit
50b0340a56 - 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.


SVN r1949 (trunk)
2009-10-30 02:18:07 +00:00
Randy Heit
0e5f48adb4 - Quoth Gez:
* when a logical condition was rewritten and inverted, one of the boolean test wasn't inverted along the rest. So the "monster must not be a player" was accidentally changed into "monster must be a player", which is usually going to be false... There's another minor, but related issue.

SVN r1948 (trunk)
2009-10-30 00:59:34 +00:00
Christoph Oelckers
aea4e38241 - GCC compile fix.
SVN r1947 (trunk)
2009-10-29 06:32:50 +00:00
Randy Heit
d082266365 - Added Gez's patch for IWAD detection of Blasphemer and Action Doom 2.
SVN r1946 (trunk)
2009-10-29 05:51:20 +00:00
Randy Heit
059be338b4 - Guess we don't need this FORCEPAIN check in PIT_CheckThing() anymore.
SVN r1945 (trunk)
2009-10-28 23:28:09 +00:00
Randy Heit
e5d6256c2d - Fixed: 0 damage projectiles did not call P_DamageMobj.
SVN r1944 (trunk)
2009-10-28 23:25:27 +00:00
Randy Heit
df317801bf - 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.


SVN r1943 (trunk)
2009-10-28 23:14:20 +00:00
Randy Heit
1c3de33585 - Make A_MonsterRail() and A_CustomRailgun() aim at the target anyway even
if P_AimLineAttack() decides it has no chance of hitting.

SVN r1942 (trunk)
2009-10-27 04:16:55 +00:00
Randy Heit
efaa26959e - Changes to both A_MonsterRail() and A_CustomRailgun(): Save actor's pitch,
use a larger aiming range, and ignore non-targets in P_AimLineAttack().
- 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.


SVN r1941 (trunk)
2009-10-27 03:59:29 +00:00
Randy Heit
750659a82e - 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.


SVN r1939 (trunk)
2009-10-27 02:43:00 +00:00
Randy Heit
be3bb0093a - 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.)


SVN r1938 (trunk)
2009-10-27 01:53:47 +00:00
Christoph Oelckers
5ab4159e76 - fixed damage calculation for OLDRADIUSDMG case of P_RadiusAttack.
SVN r1937 (trunk)
2009-10-25 23:12:00 +00:00
Christoph Oelckers
7e2e62fd5c - fixed: sector_t::GetHeightSec checked the wrong MoreFlags.
SVN r1936 (trunk)
2009-10-25 19:39:43 +00:00
Christoph Oelckers
cc2b0b0dcf - made max. view pitch a property of the renderer so that it's overridable without
changing game code.
- made SpawningMapThing an argument of AActor::StaticSpawn instead of a global
  variable.
- added a stub to the DECORATE parser for defining dynamic lights directly
  in DECORATE. This is needed so that ZDoom remains compatible with any DECORATE 
  which uses this GZDoom feature in the future.


SVN r1935 (trunk)
2009-10-25 15:26:19 +00:00
Randy Heit
19b23f2cf3 - 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.


SVN r1933 (trunk)
2009-10-25 02:19:51 +00:00
Randy Heit
f40462dfb4 - 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.


SVN r1932 (trunk)
2009-10-24 23:42:58 +00:00
Randy Heit
1a6d7b6eca - Fixed: When giving completely new ammo, the backpack did not clamp the
amount given to the ammo's max amount.


SVN r1931 (trunk)
2009-10-24 05:02:49 +00:00
Randy Heit
1c9b693087 - Fixed drawing of wide high resolution skies. (At least for the samples I
received. I'm not convinced that it's yet fixed for the general case.)


SVN r1930 (trunk)
2009-10-24 04:39:36 +00:00
Christoph Oelckers
788f17323c - fixed: Setting the first state's duration of a fast projectile to 0 caused
an underflow and blocked all further state changes.


SVN r1929 (trunk)
2009-10-19 17:17:06 +00:00
Christoph Oelckers
8390184839 - fixed: FMultiPatchTexture::MakeTexture was missing a range check for the
special colormap index.


SVN r1928 (trunk)
2009-10-18 14:08:32 +00:00
Christoph Oelckers
dcd4c7fe7a - Fixed: 3DMidtex checks were treating the Null texture as a valid texture.
SVN r1927 (trunk)
2009-10-17 15:12:18 +00:00
Christoph Oelckers
0c39b5c66a - Fixed: The rail sound used the shooter's position for calculating the sound origin
but should use the camera position instead to get the correct position for
  the closest point along the trail.
- Fixed: Explosions no longer caused splashes.
- Fixed: Copying translations to lower decals had the shade color check wrong.
- Fixed: Waggling floors did not move attached geometry.
- Cleaned up p_floor.cpp so that related parts of the code are grouped together.

SVN r1926 (trunk)
2009-10-17 11:30:44 +00:00
Christoph Oelckers
bbcd6ed5f9 - fixed: The desaturation translation addition broke parsing of palette index based translations.
SVN r1925 (trunk)
2009-10-17 07:05:34 +00:00
Christoph Oelckers
8b27bd1434 - 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.


SVN r1921 (trunk)
2009-10-16 16:04:19 +00:00
Christoph Oelckers
34a4738b74 - forgot damagefactor setting in Actor class.
SVN r1916 (trunk)
2009-10-15 21:12:31 +00:00
Christoph Oelckers
ce2e85c7b2 - added ACS CheckActprClass 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.


SVN r1915 (trunk)
2009-10-15 20:09:22 +00:00
Christoph Oelckers
efd3e7f94e - added better earthquake functions for ACS and DECORATE.
SVN r1912 (trunk)
2009-10-15 08:25:07 +00:00
Christoph Oelckers
9dfef79702 - fixed: puff checks for MF6_NOTRIGGER need to resolve actor replacements.
SVN r1909 (trunk)
2009-10-11 17:44:50 +00:00
Christoph Oelckers
4529108b8f - Added MF6_NOTRIGGER flag that disables all line actions for an actor.
SVN r1907 (trunk)
2009-10-10 12:42:57 +00:00
Christoph Oelckers
4a81f55fb0 - Added Gez's seeker missile submission.
SVN r1905 (trunk)
2009-10-09 20:54:28 +00:00
Christoph Oelckers
819158a8fe - Added Gez's thing activation submission.
SVN r1904 (trunk)
2009-10-09 20:35:07 +00:00
Christoph Oelckers
19ef8399a8 - 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 previous commit.


SVN r1903 (trunk)
2009-10-09 20:18:31 +00:00
Christoph Oelckers
18c1b2685f - fixed: AAmbientSound::Serialize was adjusting its timer value for savegames
even when it was set to a 'don't check' value.


SVN r1902 (trunk)
2009-10-09 06:38:56 +00:00
Randy Heit
09866b2cff - Reinstated the off-by-one check in D3DFB from r399. I thought I could get by
at just fixing it at a specific value, since the supply of SM14 cards isn't
  all that diverse and all from ATI, but apparently Radeon 8500s and 9000s
  have different precision levels in their pixel shaders. See bug report
  <http://forum.zdoom.org/viewtopic.php?p=444523>
- Removed unused variables FBFormat and PalFormat.

SVN r1901 (trunk)
2009-10-08 23:44:50 +00:00
Christoph Oelckers
0c2288a010 - Added a PainThreshold actor property.
SVN r1900 (trunk)
2009-10-08 17:43:50 +00:00
Christoph Oelckers
3900381565 - fixed: Teleport_EndGame did not set the end sequence name properly.
SVN r1899 (trunk)
2009-10-08 07:30:20 +00:00
Randy Heit
da31d9f8a3 - Since I am currently without a primary video card and stuck with this
Mobility Radeon 9000 (on a PCI card, no less!), I have decided to give the
  PS14 support some loving: D3D windowed gamma now works on these cards using
  a texture lookup for the gamma table. Sadly, this halves my framerate, so
  setting gamma to 1 will skip the gamma correction, as it was before, for
  full speed. (On my 8800 GT, the gamma correction was free.)


SVN r1898 (trunk)
2009-10-08 04:03:32 +00:00
Christoph Oelckers
a6c387ecef - Deleted a_magewand.cpp because it only contained unused code.
SVN r1897 (trunk)
2009-10-04 22:48:01 +00:00
Christoph Oelckers
0006013531 - 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.


SVN r1896 (trunk)
2009-10-04 11:46:51 +00:00
Christoph Oelckers
5c105c0cad - forgot something.
SVN r1895 (trunk)
2009-10-03 17:52:49 +00:00
Christoph Oelckers
3d8d176087 - 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'.


SVN r1894 (trunk)
2009-10-03 17:07:11 +00:00
Christoph Oelckers
4add2809a3 - fixed: Savegames stored the global fixed light levels when saving a player.
SVN r1893 (trunk)
2009-10-02 09:21:37 +00:00
Christoph Oelckers
59d932b972 - 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.)

SVN r1891 (trunk)
2009-10-01 14:54:29 +00:00
Christoph Oelckers
7e4504f9d6 - 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.


SVN r1889 (trunk)
2009-09-30 10:41:24 +00:00