Commit graph

1257 commits

Author SHA1 Message Date
Randy Heit
a3b11af15a - More GCC warning removal, the most egregious of which was the potential
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.



SVN r1373 (trunk)
2009-01-28 05:29:41 +00:00
Christoph Oelckers
9346b5d686 - added UDMF 1.0 spec
- clarified some ambiguities in UDMF spec.


SVN r1372 (trunk)
2009-01-27 22:21:41 +00:00
Randy Heit
8f26956310 - 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.


SVN r1371 (trunk)
2009-01-27 05:25:16 +00:00
Christoph Oelckers
f269af052c - 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.


SVN r1369 (trunk)
2009-01-25 21:59:38 +00:00
Randy Heit
7f35a95942 - 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.


SVN r1368 (trunk)
2009-01-25 04:22:19 +00:00
Randy Heit
6ebbc920fb - Removed the SoundChans bitfield from AActor, since it seems there are race
conditions I don't fully understand where it simply doesn't work.


SVN r1367 (trunk)
2009-01-25 01:52:38 +00:00
Randy Heit
b6528a604e SVN r1366 (trunk) 2009-01-25 01:16:00 +00:00
Christoph Oelckers
ca80217b39 - made 3D floor constants available even when 3D floor code is defined out.
SVN r1365 (trunk)
2009-01-24 09:07:14 +00:00
Randy Heit
b5a5204911 - Set packet server as the default for four or more player games, and also the
default for three player games where the other players are not in the same
  private IP range.




SVN r1364 (trunk)
2009-01-24 04:47:07 +00:00
Christoph Oelckers
c5ca865a7f - Fixed: The sight checking code didn't initialize the myseethrough variable.
SVN r1363 (trunk)
2009-01-24 00:21:12 +00:00
Christoph Oelckers
036deb1ae6 - Fixed: With COMPAT_TRACE switched on linedef actions on lines having
the same sector on both sides were not triggered.


SVN r1362 (trunk)
2009-01-24 00:04:58 +00:00
Christoph Oelckers
bbda4622e7 - 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.
- Fixed the autoaim fix from Jan 10.


SVN r1358 (trunk)
2009-01-18 09:31:49 +00:00
Christoph Oelckers
51391f889c - Added option to specify the amount of ammo to be given by a WeaponGiver.
SVN r1357 (trunk)
2009-01-18 08:20:29 +00:00
Christoph Oelckers
b4b76ed4e6 - 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.


SVN r1356 (trunk)
2009-01-10 09:40:47 +00:00
Christoph Oelckers
35cc39f094 - copied some 3D floor fixes from GZDoom.
- fixed: Crushing polyobject did incomplete checks for blocked moves.


SVN r1355 (trunk)
2009-01-07 18:45:39 +00:00
Christoph Oelckers
bf63041585 - 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.



SVN r1354 (trunk)
2009-01-06 00:03:18 +00:00
Christoph Oelckers
6eb32dc0c2 - moved #ifdef in p_3dfloors.cpp below the #includes.
SVN r1353 (trunk)
2009-01-04 17:31:59 +00:00
Christoph Oelckers
a73b008255 - 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.


SVN r1352 (trunk)
2009-01-04 15:51:00 +00:00
Christoph Oelckers
78933df10d - added GZDoom's 3D floor physics code. This is not active yet so anything compiled from this code won't have any support for it!
SVN r1351 (trunk)
2009-01-04 15:00:29 +00:00
Christoph Oelckers
f7148b6b40 - 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.


SVN r1350 (trunk)
2009-01-04 12:25:22 +00:00
Christoph Oelckers
3fe5db901c - fixed: x64 compile used debug updaterevision for release target.
SVN r1349 (trunk)
2009-01-03 21:43:08 +00:00
Christoph Oelckers
bbdb2b10a8 - Made spawning of floor- and ceiling huggers a little more intelligent.
SVN r1348 (trunk)
2009-01-03 18:09:33 +00:00
Christoph Oelckers
fdfee91b9f - Fixed: 'None' was no longer recognized as a NULL class name by the
DECORATE parser.


SVN r1347 (trunk)
2009-01-03 14:44:41 +00:00
Christoph Oelckers
35edd15386 - 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.

SVN r1346 (trunk)
2009-01-02 17:49:48 +00:00
Christoph Oelckers
aa5bdd0884 - fixed r1342 changes
SVN r1345 (trunk)
2009-01-01 22:35:29 +00:00
Christoph Oelckers
7fde758e26 - Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types.
- Added a few missing NULL pointer checks to SBARINFO code.


SVN r1344 (trunk)
2009-01-01 16:46:05 +00:00
Christoph Oelckers
6a321fd8f5 - 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.

SVN r1343 (trunk)
2009-01-01 15:09:49 +00:00
Christoph Oelckers
ee8ce6c1e1 - Changed Linux's I_MSTime to work the same as Windows's.
SVN r1342 (trunk)
2009-01-01 12:05:02 +00:00
Christoph Oelckers
9098bc1a46 - 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.

SVN r1338 (trunk)
2008-12-31 12:02:08 +00:00
Christoph Oelckers
987c878a9a - 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.


SVN r1336 (trunk)
2008-12-30 23:27:27 +00:00
Christoph Oelckers
aeaf94c1c4 - disabled debug messages.
SVN r1335 (trunk)
2008-12-30 14:24:55 +00:00
Christoph Oelckers
f8c38e5f54 - 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.


SVN r1334 (trunk)
2008-12-29 23:03:38 +00:00
Christoph Oelckers
8f686a5e02 - Added Karate Chris's new DMFlags submission.
SVN r1333 (trunk)
2008-12-28 09:49:15 +00:00
Christoph Oelckers
37d056c041 - 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.


SVN r1332 (trunk)
2008-12-27 20:18:31 +00:00
Christoph Oelckers
a66eb7f8c3 - Fixed: The Boss Brain could crash when it tried to shoot a cube but having no spawn spots placed.
SVN r1331 (trunk)
2008-12-26 08:53:12 +00:00
Randy Heit
120233eebd - 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.


SVN r1327 (trunk)
2008-12-21 04:14:16 +00:00
Randy Heit
97de7897de - 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.


SVN r1326 (trunk)
2008-12-20 04:17:10 +00:00
Randy Heit
835ed26370 - 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?)


SVN r1325 (trunk)
2008-12-19 03:57:24 +00:00
Randy Heit
48be3f7022 - 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.


SVN r1324 (trunk)
2008-12-18 06:22:18 +00:00
Randy Heit
45fc728f2e - Fixed: Autoloading a game (e.g. respawning after dying in single player)
during demo playback prematurely ended demo control of the player.


SVN r1321 (trunk)
2008-12-16 04:56:25 +00:00
Randy Heit
86c04f6b82 - Fixed: Loading a multiplayer save with only one player crashed.
SVN r1319 (trunk)
2008-12-16 03:59:28 +00:00
Randy Heit
4c14c197f8 - Changed the co-op intermission screen to draw the stats with the small font.
SVN r1318 (trunk)
2008-12-16 03:15:03 +00:00
Randy Heit
49120f59d4 - 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.


SVN r1317 (trunk)
2008-12-16 01:23:44 +00:00
Randy Heit
f435576f1d - 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.


SVN r1316 (trunk)
2008-12-16 00:59:20 +00:00
Christoph Oelckers
bd9e318863 - 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.


SVN r1315 (trunk)
2008-12-14 19:12:41 +00:00
Christoph Oelckers
34ab6ba862 - Fixed: The DECORATE parser was missing some 'break's.
SVN r1314 (trunk)
2008-12-07 21:35:56 +00:00
Christoph Oelckers
11d1c41873 - Added a strbin1 function that does the same as strbin but creates a copy
instead of overwriting the original string. ACS performing this operation
  in place caused crashes with RTC-3057.
- fixed: FScriptPosition::Message did not print the message if it was not 
  a fatal error.


SVN r1313 (trunk)
2008-12-07 17:50:03 +00:00
Christoph Oelckers
081658d3d5 - 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.

SVN r1312 (trunk)
2008-12-07 12:11:59 +00:00
Randy Heit
238de9cda1 - 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.


SVN r1310 (trunk)
2008-12-07 03:55:49 +00:00
Randy Heit
b90a04f3be How could I have forgotten about fputs?
SVN r1308 (trunk)
2008-12-07 01:50:12 +00:00