Commit graph

1442 commits

Author SHA1 Message Date
Christoph Oelckers
cc3b7967a1 - Fixed: The Dehacked parser could read past the end of the file if the last
element was improperly defined.


SVN r2035 (trunk)
2009-12-20 19:14:10 +00:00
Randy Heit
00447b8f44 - Extended MF3_SKYEXPLODE to apply to horizon walls as well.
SVN r2034 (trunk)
2009-12-20 05:11:30 +00:00
Christoph Oelckers
bdd1203aca - Fixed: It was not possible to set the ammo type of a weapon explicitly to
'none'.


SVN r2033 (trunk)
2009-12-19 07:44:04 +00:00
Randy Heit
d8a2387c39 - 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.


SVN r2032 (trunk)
2009-12-19 04:54:04 +00:00
Christoph Oelckers
51e158d7dc - 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)


SVN r2031 (trunk)
2009-12-18 08:19:34 +00:00
Randy Heit
0a4d860ec7 - Fixed: Using Transfer_Heights with the SECF_UNDERWATER and
SECF_FAKEFLOORONLY flags applied the water effect to the ceiling and not
  just the floor.


SVN r2030 (trunk)
2009-12-18 05:38:14 +00:00
Randy Heit
f6428e1cbb - Replaced sprite sorting with a stable sort. Performance at the start of
nuts.wad seems the same.


SVN r2028 (trunk)
2009-12-18 03:05:38 +00:00
Christoph Oelckers
1c5103c9b1 - Fixed: Morphed players tried endlessly to switch to a weapon they picked up.
SVN r2027 (trunk)
2009-12-16 22:42:15 +00:00
Christoph Oelckers
fdec06ff9b - 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.


SVN r2026 (trunk)
2009-12-16 16:09:48 +00:00
Christoph Oelckers
ba106c28c4 - fixed: old-style DECORATE definitions with non-alphanumeric characters in
the name produced an error.


SVN r2025 (trunk)
2009-12-13 22:22:25 +00:00
Randy Heit
28c23edb2f - Added a DMG_NO_FACTOR flag for P_DamageMobj(). A_KillChildren, A_KillMaster,
and A_KillSiblings now use it.


SVN r2024 (trunk)
2009-12-13 05:04:12 +00:00
Randy Heit
b3d2a1f074 - Added a damage type parameter to A_KillChildren, A_KillMaster, and
A_KillSiblings. 


SVN r2023 (trunk)
2009-12-13 04:59:19 +00:00
Christoph Oelckers
2fb2c79887 - fixed: Auto-COMPAT_SHORTTEX for IWADs must be set per IWAD, not in general
for Doom.
- added autodetection of Harmony's IWAD.


SVN r2022 (trunk)
2009-12-11 09:21:08 +00:00
Christoph Oelckers
c7ae1b585d - Added SnailMan's updated language.ita file.
SVN r2021 (trunk)
2009-12-11 07:45:46 +00:00
Randy Heit
20e265f8fb - Fixed: You should still be able to pick up ammo that has a max amount set at 0.
- Added a few NULL screen checks.


SVN r2019 (trunk)
2009-12-11 06:20:35 +00:00
Christoph Oelckers
ee4b9ed09b - 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.  


SVN r2018 (trunk)
2009-12-06 22:10:25 +00:00
Randy Heit
d924575b1e - Fixed: After the previous screenwipe changes, the melt type no longer worked
properly in letterboxed modes.
- Added another surface to receive a copy of the top back buffer immediately
  before it is presented. This effectively produces a copy of the front
  buffer without the performance penalty of GetFrontBufferData, so fullscreen
  wipe preparation and screenshots are faster now. At lower resolutions,
  always copying the backbuffer does incur a slight FPS hit, but it's
  practically free at higher resolutions.


SVN r2013 (trunk)
2009-12-02 05:02:40 +00:00
Randy Heit
80034135ef - The initial wipe screen is now kept in video memory. I had previously
assumed that since the wipes only run at 35 FPS, the time spent DMA'ing
  it from system to video memory would be acceptable. Apparently I was wrong.
  In particular, updating the same surface several times probably has to
  synchronize between each one, making melt particularly slower than it
  needs to be.


SVN r2012 (trunk)
2009-12-01 03:15:00 +00:00
Christoph Oelckers
17553cfbf6 - 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.


SVN r2010 (trunk)
2009-11-29 11:24:01 +00:00
Randy Heit
26f14f439b - 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.


SVN r2009 (trunk)
2009-11-29 02:57:09 +00:00
Randy Heit
a5c8b33f10 - Initialize TempRenderTexture and the back buffer to black upon creation.
SVN r2008 (trunk)
2009-11-29 02:42:20 +00:00
Randy Heit
cdb26a9b28 - Fixed: Windowed mode always needs to draw to the temporary surface, even
when not gamma correcting, so that D3DFB::GetCurrentScreen() can read from
  it.


SVN r2007 (trunk)
2009-11-29 02:33:52 +00:00
Randy Heit
4edd51eb09 - Use the spawned class's scale as default for ScriptedMarine instead of
DoomPlayer.


SVN r2006 (trunk)
2009-11-29 01:56:22 +00:00
Christoph Oelckers
d14faa5f98 - 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.


SVN r2005 (trunk)
2009-11-28 07:46:30 +00:00
Christoph Oelckers
f3b19fcca2 - fixed an uninitialized variable in p_xlat.cpp .
SVN r2004 (trunk)
2009-11-27 21:45:17 +00:00
Christoph Oelckers
53a6ffee15 - 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.


SVN r2003 (trunk)
2009-11-27 13:23:02 +00:00
Randy Heit
787f00abf9 - Make the palette indexes used by FRemapTable subject to the global remap
table, just as the images they translate are.


SVN r2002 (trunk)
2009-11-26 03:16:54 +00:00
Christoph Oelckers
5d7670acc4 - Added MF4_ALLOWPARTICLES checks to blood spawning code.
SVN r2001 (trunk)
2009-11-24 22:28:38 +00:00
Christoph Oelckers
233e662a92 - Fixed: EV_DoDonut, EV_DoElevator and EV_StartWaggle did not to any 0-tag checks.
SVN r2000 (trunk)
2009-11-24 07:38:11 +00:00
Christoph Oelckers
32d9946f30 - 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.


SVN r1998 (trunk)
2009-11-24 07:02:30 +00:00
Christoph Oelckers
f94c9ce81d - Fixed: Not all places checking for player start spots above 4 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 unlike Skulltag's original
  implementation.


SVN r1997 (trunk)
2009-11-24 06:55:38 +00:00
Randy Heit
53b1b7efab - Added Windows 7 (aka Windows NT 6.1) and Server 2008 identification to
I_DetectOS().


SVN r1996 (trunk)
2009-11-24 04:29:36 +00:00
Randy Heit
754fe70a79 - Fixed: ArtiPork did not use all its sprite frames.
SVN r1995 (trunk)
2009-11-24 03:14:21 +00:00
Randy Heit
f305b2f70c - 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.


SVN r1994 (trunk)
2009-11-24 02:26:01 +00:00
Christoph Oelckers
9357ed82ed - extended Doom map format linedef translator so that it also handles the flags.
SVN r1992 (trunk)
2009-11-21 23:11:12 +00:00
Randy Heit
344dda4a1a - 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.)
- Changed atan2f to atan2. Using floats is not a win, because the result is
  returned as a double on the x87 stack, which the caller then needs to cast
  down to a float using fst/fld.

SVN r1990 (trunk)
2009-11-20 05:34:20 +00:00
Randy Heit
2b5f765982 - Added padding around packed textures to compensate for apparent NVidia
texture coordinate imprecision.


SVN r1988 (trunk)
2009-11-19 01:49:19 +00:00
Randy Heit
51eb6465a2 - 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.


SVN r1987 (trunk)
2009-11-18 04:45:20 +00:00
Christoph Oelckers
424c6e8963 - fixed: P_NowayTraverse was called with a trace distance of 128 instead of
the 64 that should have been used.


SVN r1986 (trunk)
2009-11-17 23:09:21 +00:00
Christoph Oelckers
23d0d70ea6 - 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.)


SVN r1985 (trunk)
2009-11-17 13:50:46 +00:00
Christoph Oelckers
53a717673f - 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.


SVN r1984 (trunk)
2009-11-17 07:18:19 +00:00
Christoph Oelckers
3a198a29dc - 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.


SVN r1983 (trunk)
2009-11-15 14:33:35 +00:00
Christoph Oelckers
6161702703 - fixed: The sky baseline position needs to take texture scaling into account.
SVN r1982 (trunk)
2009-11-15 08:11:14 +00:00
Randy Heit
6310f32843 - Do not squash skies taller than 200 into square pixels.
SVN r1981 (trunk)
2009-11-15 01:04:58 +00:00
Christoph Oelckers
d01c402755 - Added skillinfo fix by Gez.
SVN r1980 (trunk)
2009-11-14 08:50:23 +00:00
Christoph Oelckers
b57ac1aed8 - added a r_scaletallskies CVAR so that sky positioning can be checked
more easily.
- fixed: Skies with a height of exactly 200 pixels should not be stretched.

SVN r1979 (trunk)
2009-11-14 07:52:14 +00:00
Randy Heit
84fda053ba - More sky changes: Textures taller than 200 pixels but shorter than 241
are scaled to the height of a 200 pixel tall sky. Skies taller than 240
  use the same scale as a 240 tall sky but are shifted down to make the
  top of the texture align with the top of the screen when looking fully up.
  Thus, by using a sky texture with a height of 240 or more pixels, the sky
  will be drawn with square pixels instead of the vertically elongated ones
  imposed by Doom's native 320x200 resolution.


SVN r1978 (trunk)
2009-11-14 03:08:35 +00:00
Randy Heit
363dfcffbd November 12, 2009
- Improved sky stretching a bit: It now only stretches the sky as tall as it
  needs to be: 228 pixels, not 256. It no longer stretches horizontally,
  either.
  
  The reason it stretches to 228 and not 200 pixels is because Doom shifted
  its sky texture down 28 pixels. By stretching to 228 pixels, we can keep
  the sky tiled at the same height on the horizon. Skies 200 pixels tall
  (or more) will continue to tile at the center of the screen when looking
  directly ahead.


SVN r1976 (trunk)
2009-11-13 04:38:03 +00:00
Randy Heit
a0e7cdb73d - Cleaned up win32/i_system.cpp.
- Put back the previous event-driven ticker, except now the timer isn't
  started until the first time it is needed.


SVN r1975 (trunk)
2009-11-13 03:55:23 +00:00
Randy Heit
f09420fce7 - 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.)


SVN r1974 (trunk)
2009-11-12 03:45:51 +00:00