Commit graph

2173 commits

Author SHA1 Message Date
Randy Heit
1263d015cb - Don't initialize GrayscaleToColor 256 times for each special colormap.
SVN r1869 (trunk)
2009-09-22 18:59:36 +00:00
Christoph Oelckers
a3c80447d4 - fixed Powerup.Colormap 6 parameter version.
SVN r1868 (trunk)
2009-09-22 10:05:27 +00:00
Christoph Oelckers
9cc67f565c - Added a check to Dehacked code which tries to set the blend color.
It must set it to 0 if the alpha is 0 to avoid problems with special
  colormap detection.
- Changed SPECIALCOLORMAP_MASK again so that it does not interfere with
  any valid setting. It must use a value with a 0-alpha because these
  are guaranteed not to be produced by the DECORATE code elsewhere.
- Fixed precision issues with AddFixedColormap's search for identical colormaps.
- Added custom colormap support to texture composition code.
- Fixed initialization of FSpecialColormap::GrayscaleToColor. This is not
  a mapping from the palette but from a [0,255] grayscale ramp and used to
  apply colormaps to true color images for texture composition.

SVN r1867 (trunk)
2009-09-22 08:06:52 +00:00
Randy Heit
d502655866 - For hardware 2D, apply fixed colormaps when copying to video memory instead
of doing it directly during the rendering, in order to improve visual
  fidelity for colormaps that aren't grayscale.


SVN r1866 (trunk)
2009-09-22 04:21:27 +00:00
Randy Heit
84a018f05a - Added support for defining the full color range of a special colormap.
SVN r1865 (trunk)
2009-09-22 02:54:19 +00:00
Randy Heit
79298285f7 - Making any blends with full red a special colormap seems like it would be far too
easy to accidentally trigger.

SVN r1864 (trunk)
2009-09-22 01:31:36 +00:00
Randy Heit
e9d61a3f46 - Fixed: In letterbox modes, the clipping window needs to be adjusted down.
SVN r1863 (trunk)
2009-09-22 01:28:13 +00:00
Randy Heit
8377927412 - Apply BHS's ThingActivation patch.
SVN r1862 (trunk)
2009-09-22 01:16:54 +00:00
Christoph Oelckers
c285f38a02 - Fixed: When drawing with a special colormap the quad's flags weren't cleared
which could cause crashes.
- Added custom special colormaps to DECORATE.
- Cleaned up special colormap code and removed lots of dependencies on the
  knowledge of the tables' contents.



SVN r1860 (trunk)
2009-09-21 13:15:36 +00:00
Christoph Oelckers
d51c0c047d - Changed call to R_DrawRemainingPlayerSprites into a virtual function
of DFrameBuffer because its implementation is specific to the software
  renderer and needs to be overridable.

SVN r1859 (trunk)
2009-09-20 06:23:10 +00:00
Randy Heit
b8eb530a0d - Fixed: Wall drawing handled fixed light levels improperly (but did not
completely ignore them, either).
- Separated light level fixing out of player_t's fixedcolormap parameter.
  Using a fixed light level (e.g. PowerTorch) will no longer wipe out
  colored lighting.
- Moved the blending rectangle drawing into a separate discrete stage, since
  doing it while copying the 3D view window to the display now blends
  underneath the weapon instead of on top of it.
- Consolidated the special colormaps into a single 2D table.
- Tweaked the special colormaps slightly to make the true color results more
  closely match the paletted approximations.
- fb_d3d9_shaders.h was getting unwieldy, so I moved the shaders out of the
  executable and into zdoom.pk3. Shaders are still precompiled so I don't need
  to pull in a dependancy on D3DX.
- Added a few more shaders to accomodate drawing weapons with all the in-game
  lighting models. These are accessed with the new DrawTexture tags
  DTA_SpecialColormap and DTA_ColormapStyle.
- Player weapon sprites are now drawn using Direct3D and receive all the
  benefits thereof.


SVN r1858 (trunk)
2009-09-20 03:50:05 +00:00
Christoph Oelckers
857002e12f - Added Gez's real morph fix.
SVN r1857 (trunk)
2009-09-18 05:46:15 +00:00
Christoph Oelckers
5613c3e14f - Fixed: Unmorphing while invulnerable was blocked.
SVN r1855 (trunk)
2009-09-17 20:58:43 +00:00
Christoph Oelckers
2fbcc13652 - Gez's latest cleanup patch.
SVN r1854 (trunk)
2009-09-17 20:54:07 +00:00
Christoph Oelckers
f3f209160e - 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.


SVN r1853 (trunk)
2009-09-17 10:40:38 +00:00
Christoph Oelckers
555f41b0ba damn
SVN r1851 (trunk)
2009-09-16 23:21:16 +00:00
Christoph Oelckers
f39c5c3b5a - Last commit did not work.
SVN r1850 (trunk)
2009-09-16 22:47:04 +00:00
Christoph Oelckers
35a4526c1d - Fixed: A_LookEx did not work for monsters having the MF_NOSECTOR flag.
SVN r1849 (trunk)
2009-09-16 22:45:28 +00:00
Christoph Oelckers
5822729943 - 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.


SVN r1848 (trunk)
2009-09-16 21:03:09 +00:00
Christoph Oelckers
a6d9a37ef7 - 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.


SVN r1847 (trunk)
2009-09-16 15:57:08 +00:00
Christoph Oelckers
dc292caaa3 - 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.


SVN r1846 (trunk)
2009-09-16 15:54:04 +00:00
Christoph Oelckers
c7a6b796f9 - fixed: The linetarget CCMD duplicated all of the info CCMD.
- fixed: PrintActorInfo crashed due to some incomplete implementation.


SVN r1845 (trunk)
2009-09-16 05:44:24 +00:00
Randy Heit
7b23effc02 - Now that I think about it, why is MBFParamStates an array of pointers, anyway?
SVN r1840 (trunk)
2009-09-15 23:31:28 +00:00
Randy Heit
f1dc490151 - Fixed: The MBFParamStates array leaked memory.
SVN r1839 (trunk)
2009-09-15 22:44:07 +00:00
Christoph Oelckers
45842e28bd - added PinkSilver's A_Respawn enhancement patch.
SVN r1837 (trunk)
2009-09-15 21:57:51 +00:00
Christoph Oelckers
e5357d1b65 - added Gez's latest bugfix patch.
SVN r1836 (trunk)
2009-09-15 17:19:30 +00:00
Christoph Oelckers
5910d90a19 - 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.


SVN r1835 (trunk)
2009-09-15 14:16:55 +00:00
Christoph Oelckers
f2a122e076 GCC compile fix.
SVN r1834 (trunk)
2009-09-15 11:53:12 +00:00
Christoph Oelckers
4d18698f43 - fixed: pr_bounce was declared statically in o_mobj.cpp and redeclared externally
in p_map.cpp resulting in a CRC conflict.


SVN r1832 (trunk)
2009-09-15 06:35:46 +00:00
Christoph Oelckers
3a6d66e230 - 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.


SVN r1831 (trunk)
2009-09-15 05:59:55 +00:00
Christoph Oelckers
923bf08cdc - Added PinkSilver's A_LookEx fix.
SVN r1828 (trunk)
2009-09-14 23:54:55 +00:00
Christoph Oelckers
4a057c1fdc - Added Gez's cleanup patch for MBF support but undid the deletion of the MF6_JUMPDOWN flag which will be implemented later.
SVN r1827 (trunk)
2009-09-14 23:50:21 +00:00
Christoph Oelckers
158fce1123 - Why wasn't this stuff committed before?
SVN r1826 (trunk)
2009-09-14 23:30:53 +00:00
Christoph Oelckers
4d55f01c3a - added resources needed for MBF support.
- removed unused score items from DECORATE file.
- added 2 MBF code pointers I forgot in the last commit.

SVN r1825 (trunk)
2009-09-14 23:28:24 +00:00
Christoph Oelckers
afab7855c4 - removed the COMPATF_MBFDEHACKED flag because it wouldn't work and is more or less useless anyway.
The range checks this protected against can be safely omitted now that the misc fields are large enough.
- added MBF Dehacked emulation.

SVN r1824 (trunk)
2009-09-14 22:12:31 +00:00
Christoph Oelckers
a59de25107 - Next round of things from Gez's experimental build:
* 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.


SVN r1823 (trunk)
2009-09-14 21:41:44 +00:00
Christoph Oelckers
ea8c94d637 - Fixed: Argument count for UsePuzzleItem was wrong.
- Added more things from Gez's experimental build:
  * MBF grenade and bouncing code.
  * Arch Vile ghosts emulation (only for compatibility.txt.)
  * Several MBF related compatibility options.



SVN r1821 (trunk)
2009-09-14 20:47:53 +00:00
Christoph Oelckers
238d4c3fac - More things from Gez's experimental build:
* 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.


SVN r1819 (trunk)
2009-09-14 19:44:14 +00:00
Christoph Oelckers
914d993aa1 - Added a few things from Gez's experimental build:
* Beta Lost Soul (added DoomEdNum 9037 to it)
  * A_Mushroom extensions
  * Vavoom compatible MAPINFO keynames.
  * Vavoom's Sector_SetContents fixes to inactive 3D floor code.


SVN r1818 (trunk)
2009-09-14 09:41:09 +00:00
Randy Heit
980b68af17 - Added warning messages when loading maps that have non-zero values in
unused line argument fields, because these maps could potentially break
  in the future if the argument is later assigned a meaning. (Hopefully
  all the argument counts in actionspecials.h are accurate. I found a
  few that were wrong.)


SVN r1817 (trunk)
2009-09-12 04:08:31 +00:00
Randy Heit
38780d2d2a - 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".


SVN r1816 (trunk)
2009-09-11 01:00:01 +00:00
Randy Heit
e6174f5259 - 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+.


SVN r1815 (trunk)
2009-09-10 22:19:21 +00:00
Randy Heit
66920536d9 - 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.



SVN r1814 (trunk)
2009-09-09 17:12:47 +00:00
Randy Heit
12576d2eb5 - 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.


SVN r1813 (trunk)
2009-09-08 23:48:34 +00:00
Christoph Oelckers
93166b86b3 - 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. 



SVN r1812 (trunk)
2009-09-08 21:01:24 +00:00
Randy Heit
173646971d - Add 'add' parameter to SetActorVelocity.
SVN r1810 (trunk)
2009-09-08 03:19:57 +00:00
Randy Heit
17a43e7753 - Applied vertical SBARINFO inventory bar patch.
SVN r1809 (trunk)
2009-09-08 03:10:50 +00:00
Randy Heit
e1683dfed3 - Fixed: Linux version no longer linked with GTK+.
SVN r1807 (trunk)
2009-09-07 22:45:07 +00:00
Christoph Oelckers
57a2e0ab73 - moved definition of games' default armor icons into gameinfo definition.
SVN r1806 (trunk)
2009-09-07 19:46:54 +00:00
Christoph Oelckers
8e4ba47c98 - fixed: The PNG loader for true color textures overwrote the IDAT size with
the IDAT id when reading the image.


SVN r1805 (trunk)
2009-09-07 05:48:34 +00:00
Christoph Oelckers
b07445d149 - fixed: Trying to pick up an object of the Ammo base class caused a crash.
SVN r1804 (trunk)
2009-09-06 21:32:57 +00:00
Christoph Oelckers
74e3502185 - oops
SVN r1803 (trunk)
2009-09-06 21:24:04 +00:00
Christoph Oelckers
5bd22ca864 - backported some changes from GZDoom:
- 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.
- some sidenum related changes in inactive 3D floor code.


SVN r1802 (trunk)
2009-09-06 21:22:07 +00:00
Christoph Oelckers
14a42bbada - changed line_t's sidenum into sidedef pointers.
SVN r1801 (trunk)
2009-09-06 20:45:56 +00:00
Christoph Oelckers
e6aadca409 - changed side_t's linenum into a linedef pointer.
SVN r1800 (trunk)
2009-09-06 18:19:28 +00:00
Christoph Oelckers
93f6f1d701 - Added PinkSilver's SetActorVelocity code submission (with optimizations.)
SVN r1799 (trunk)
2009-09-06 08:27:18 +00:00
Randy Heit
e8d1416d81 - Added the frandom decorate function, which is exactly like random except
that it works with floating point instead of integers.


SVN r1797 (trunk)
2009-09-06 02:16:55 +00:00
Randy Heit
c1a578ba08 - 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.


SVN r1796 (trunk)
2009-09-06 01:49:17 +00:00
Randy Heit
f27b7209e8 - Fixed: R_CreatePlayerTranslation() only initialized the first truecolor
palette entry.


SVN r1795 (trunk)
2009-09-05 03:55:29 +00:00
Randy Heit
7da43069d7 - 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.


SVN r1794 (trunk)
2009-09-05 03:28:58 +00:00
Randy Heit
b528b987da - Add an alternate PIC-compliant __cpuid macro in x86.cpp.
SVN r1793 (trunk)
2009-09-04 23:14:29 +00:00
Randy Heit
6214177f1f - Fixed: S_LoadSound() did not byte-swap the frequency and length it reads
from DMX sounds.



SVN r1792 (trunk)
2009-09-04 22:59:41 +00:00
Christoph Oelckers
44974ff28f - made menu dimming a mapping option but kept the CVARS as user override.
SVN r1790 (trunk)
2009-09-04 22:25:46 +00:00
Christoph Oelckers
f55d1718f2 - fixed: Weapons must first check if they can be switched and afterwards
if they can be fired. These checks were reversed.


SVN r1789 (trunk)
2009-09-03 19:51:55 +00:00
Randy Heit
41be75a49e - Fixed: Missing a slash in the path to zdoom.ini on a Mac.
SVN r1788 (trunk)
2009-09-03 04:40:13 +00:00
Randy Heit
48d78730f3 - Mac version now links. Updaterevision refuses to give me a version number.
Zipdir is not doing byte swapping like it should. zdoom.ini is stored
  in ~/Preferences, but all other file accesses are probably going to be
  like Windows and look in the same directory as the executable.



SVN r1786 (trunk)
2009-09-03 03:51:41 +00:00
Christoph Oelckers
1d582a7550 - fixed: The newly altered WAD code could not load embedded WADs anymore.
SVN r1785 (trunk)
2009-09-02 20:29:52 +00:00
Randy Heit
c24c31cc9f - 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.


SVN r1784 (trunk)
2009-09-02 03:47:48 +00:00
Randy Heit
6c6ce41b7e - Fixed: A_JumpIf(InTarget)Inventory jumped if the check amount was greater
than the item's max amount and the item was maxed.


SVN r1783 (trunk)
2009-09-02 02:35:20 +00:00
Randy Heit
78902b2009 - 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.


SVN r1782 (trunk)
2009-09-02 02:17:11 +00:00
Randy Heit
9aa35cc1b7 - Fix what broke on Windows when making it compile on a Mac.
SVN r1781 (trunk)
2009-09-01 02:14:14 +00:00
Randy Heit
33a397c04b - Basic Mac support: Everything compiles but does not yet link.
SVN r1780 (trunk)
2009-09-01 02:08:53 +00:00
Randy Heit
3f003e06db - Replaced the use of autoconf's WORDS_BIGENDIAN with __BIG_ENDIAN__, since
latter comes predefined by GCC.


SVN r1779 (trunk)
2009-08-31 21:47:29 +00:00
Christoph Oelckers
75920f2ed0 - fixed: R_InitColormaps was broken since the resource file code rewrite.
SVN r1778 (trunk)
2009-08-30 20:47:43 +00:00
Christoph Oelckers
ba28749df7 - 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.

SVN r1777 (trunk)
2009-08-30 10:43:51 +00:00
Christoph Oelckers
6e3fdbdfc8 - fixed: Switching a weapon did not reset the refire counter.
SVN r1776 (trunk)
2009-08-29 15:50:03 +00:00
Randy Heit
bdc0950e01 - 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().


SVN r1775 (trunk)
2009-08-29 03:33:36 +00:00
Randy Heit
90b4be5d28 - Add a couple of assertions.
SVN r1774 (trunk)
2009-08-29 02:22:06 +00:00
Randy Heit
7a89872b63 - Fixed: genStringEnter mode acted on key up events rather than key repeat
events.


SVN r1773 (trunk)
2009-08-29 02:19:46 +00:00
Christoph Oelckers
fe96cab254 - Fixed: paletted texture composition with part translucent patches
did not work.


SVN r1771 (trunk)
2009-08-12 22:10:53 +00:00
Christoph Oelckers
385350efae - 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.


SVN r1770 (trunk)
2009-08-12 18:57:31 +00:00
Christoph Oelckers
a5ec361715 - Fixed: The pause sprite was not centered correctly when it was a scaled
graphic.


SVN r1769 (trunk)
2009-08-11 20:40:09 +00:00
Randy Heit
2a9351fa61 - Fixed: P_TestMobjZ() needs THRUSPECIES and THRUACTORS checks, too.
SVN r1768 (trunk)
2009-08-11 01:03:58 +00:00
Randy Heit
da33f333a1 - Fixed: The UDMF loader did not initialize the sectors' sectornum property.
SVN r1767 (trunk)
2009-08-11 00:22:43 +00:00
Christoph Oelckers
74bdfe19c5 - Fixed: The true color texture compositing code did not clip the edges
of multipatch textures used as patches on other multipatch textures.


SVN r1766 (trunk)
2009-08-10 18:30:25 +00:00
Christoph Oelckers
914ccd4ea2 - Fixed: A_EntityAttack did not spawn the correct missiles.
SVN r1765 (trunk)
2009-08-09 19:12:16 +00:00
Randy Heit
ae21fa4562 - Changed the return value of SetActivatorToTarget to match the description
in the wiki.


SVN r1764 (trunk)
2009-08-08 22:52:58 +00:00
Christoph Oelckers
e49da9bba9 - forgot something,,,
SVN r1763 (trunk)
2009-08-08 21:30:23 +00:00
Christoph Oelckers
cd95473d57 - replaced all code that changed a sector's light level with a setter function.
SVN r1762 (trunk)
2009-08-08 20:03:43 +00:00
Christoph Oelckers
a47ec74eba - Fixed: The FeatureFlags array in the CPUInfo struct was not mapped to the flags properly.
SVN r1761 (trunk)
2009-08-08 13:32:58 +00:00
Randy Heit
d4c8c47796 - 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.


SVN r1760 (trunk)
2009-08-08 01:34:20 +00:00
Randy Heit
8e1ce082f4 - 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.)


SVN r1759 (trunk)
2009-08-08 01:18:15 +00:00
Randy Heit
4d4e8e89b3 - 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.


SVN r1758 (trunk)
2009-08-08 00:36:35 +00:00
Randy Heit
63e26df7b2 - 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.


SVN r1757 (trunk)
2009-08-07 04:20:28 +00:00
Randy Heit
f9088bd2cf - Added buddha cheat.
SVN r1756 (trunk)
2009-08-07 04:08:38 +00:00
Randy Heit
16846fe36d - 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.)


SVN r1755 (trunk)
2009-08-07 03:57:03 +00:00
Randy Heit
a1554799d9 - Added MF6_NOTELEPORT flag.
SVN r1754 (trunk)
2009-08-07 03:41:23 +00:00
Randy Heit
732a44b338 - 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.


SVN r1753 (trunk)
2009-08-07 03:30:51 +00:00
Randy Heit
3e388acc15 - 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.


SVN r1752 (trunk)
2009-08-05 01:13:41 +00:00
Randy Heit
9764532d8b - 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.


SVN r1751 (trunk)
2009-08-05 00:36:01 +00:00
Randy Heit
be9830f219 - Fixed: FWeaponSlot::PickWeapon() wrapped around improperly when the starting
value for i was 0.


SVN r1750 (trunk)
2009-08-04 23:19:09 +00:00
Christoph Oelckers
00f88610ac - Added kgsws's SummonActor enhancement and bumped netgame and demo versions
because this submission changes an existing command.



SVN r1749 (trunk)
2009-08-03 20:40:45 +00:00
Christoph Oelckers
54c4e26f7d - 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.

SVN r1748 (trunk)
2009-08-02 18:23:05 +00:00
Christoph Oelckers
356e4a0fcc - Added A_Mushroom compatibility option for Dehacked.
- Added Gez's submission for interhubamount DECORATE property.


SVN r1747 (trunk)
2009-08-02 15:54:34 +00:00
Christoph Oelckers
641f946e32 - 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.


SVN r1746 (trunk)
2009-08-02 10:48:58 +00:00
Randy Heit
8330a69212 - 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.


SVN r1745 (trunk)
2009-08-02 04:11:48 +00:00
Randy Heit
1e554a1fcc - 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.


SVN r1744 (trunk)
2009-08-02 03:56:03 +00:00
Randy Heit
93202a5488 - 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++).


SVN r1743 (trunk)
2009-08-02 03:38:57 +00:00
Randy Heit
99d99ce5e5 - 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, since it calls A_SpawnFly.


SVN r1741 (trunk)
2009-08-01 01:56:16 +00:00
Randy Heit
a90bde274e The menu code sucks!
- 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.


SVN r1739 (trunk)
2009-07-26 03:25:18 +00:00
Christoph Oelckers
1c8d442c32 - fixed some GCC warnings.
SVN r1738 (trunk)
2009-07-25 15:00:45 +00:00
Christoph Oelckers
d26aeb8939 - Fixed: The composer for complex multipatch textures did not clear the palette
buffer before filling it.


SVN r1737 (trunk)
2009-07-25 09:11:15 +00:00
Randy Heit
f1e6ec1fd9 - Update src/CMakelists.txt to check for FMOD Ex 4.26 and look for its include files
in a few more locations.

SVN r1736 (trunk)
2009-07-25 00:59:26 +00:00
Christoph Oelckers
25c0f679cb - Fixed: using custom automap backgrounds crashed.
SVN r1735 (trunk)
2009-07-24 20:25:19 +00:00
Randy Heit
4134bc3c64 - Added extra states to dehsupp for the MBF additions.
SVN r1734 (trunk)
2009-07-23 06:25:47 +00:00
Randy Heit
bc3448e958 - Removed specific Button_Speed handling from the controllers' AddAxes()
methods. Analog axes now respond 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].


SVN r1733 (trunk)
2009-07-23 05:37:03 +00:00
Randy Heit
6906e1b0e3 - Added default bindings for the Xbox 360 controller buttons.
(Still to do: Make the menus work with a controller.)

SVN r1732 (trunk)
2009-07-23 05:06:38 +00:00
Randy Heit
8a2e03c9cb - 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.


SVN r1731 (trunk)
2009-07-23 04:33:07 +00:00
Randy Heit
371f944262 - 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.


SVN r1729 (trunk)
2009-07-23 03:03:15 +00:00
Christoph Oelckers
55c32e0f44 - added missing MAPINFO option for compat_anybossdeath.
SVN r1728 (trunk)
2009-07-22 07:28:00 +00:00
Christoph Oelckers
2c54498d5c - fixed blue colormap
- Added parameters to A_VileAttack.
- Removed redundant definition of use_joystick from SDL/i_input.cpp.


SVN r1727 (trunk)
2009-07-17 08:08:02 +00:00
Randy Heit
72a41f0b66 - 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.


SVN r1726 (trunk)
2009-07-17 02:13:27 +00:00
Randy Heit
f39cde0486 - Reduced potential for overflow in R_ProjectSprite().
SVN r1725 (trunk)
2009-07-17 01:49:28 +00:00
Randy Heit
198ffea7ee - 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.


SVN r1724 (trunk)
2009-07-17 01:32:58 +00:00
Randy Heit
720747baef - Added a "BlueMap" for powerup colors.
- Add the missing CF_WEAPONREADYALT and CF_WEAPONSWITCHOK flags.

SVN r1723 (trunk)
2009-07-17 01:17:06 +00:00
Randy Heit
aaf19b9127 - Added a NULL screen check when detaching HUD messages.
SVN r1722 (trunk)
2009-07-16 23:07:20 +00:00
Randy Heit
9a16e4b6ea - Added HotWax's A_SetArg.
SVN r1721 (trunk)
2009-07-16 22:50:58 +00:00
Randy Heit
b1b258ec55 - 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


SVN r1720 (trunk)
2009-07-16 22:40:04 +00:00
Randy Heit
800b50ff6f - Attempt to add support for Microsoft's SideWinder Strategic Commander.
SVN r1719 (trunk)
2009-07-16 02:45:51 +00:00
Randy Heit
00a6293952 - Fixed: Trying to run with the same FMOD version you compiled with no longer produced
sound. (But compiling with 4.26.xx and using an older DLL was fine.)

SVN r1718 (trunk)
2009-07-15 22:27:38 +00:00
Randy Heit
f74f6a1659 - 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.


SVN r1717 (trunk)
2009-07-15 05:53:06 +00:00
Christoph Oelckers
8e5b7373b8 - added submission for raising master/children/siblings.
- added submission for no decals on wall option.
- removed some useless code from SpawnMissile function.


SVN r1716 (trunk)
2009-07-13 22:07:18 +00:00
Christoph Oelckers
19f8b03738 - 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.


SVN r1715 (trunk)
2009-07-12 12:19:11 +00:00
Christoph Oelckers
e7e79e27ff - 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.

SVN r1714 (trunk)
2009-07-12 07:33:24 +00:00
Randy Heit
417779440d - Added joystick config loading and saving support; moved generic joystick
interfaces to m_joy.h.
- Added Raw Input PS2 adapter support.


SVN r1713 (trunk)
2009-07-11 01:40:01 +00:00
Randy Heit
ae2c4a6dbc - Relaxed the FMOD version check. Anything from 4.20.00 through 4.26.xx should work
for both building and running now.

SVN r1712 (trunk)
2009-07-06 23:42:00 +00:00
Christoph Oelckers
23e4c47b5b - Added Gez's A_WeaponReady enhancement submission.
SVN r1711 (trunk)
2009-07-06 15:48:31 +00:00
Randy Heit
17418316ea - Added support for FMOD Ex 4.25.01+, which added a geometry parameter to getCPUUsage().
SVN r1710 (trunk)
2009-07-06 03:51:43 +00:00
Christoph Oelckers
33249ff833 - Added Gez's CheckActorProperty submission.
SVN r1709 (trunk)
2009-07-05 05:56:20 +00:00
Christoph Oelckers
635d71e660 - Added code submissions for non-piercing railguns and new skill options.
SVN r1706 (trunk)
2009-07-04 18:17:44 +00:00
Randy Heit
3786ced96e - 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.


SVN r1705 (trunk)
2009-07-04 01:47:28 +00:00
Randy Heit
201c5c5125 - Fixed: Setting intermissioncounter to false in gameinfo drew all the stats
at once, instead of revealing them one line at a time.


SVN r1704 (trunk)
2009-07-04 01:26:57 +00:00
Randy Heit
29b1864da0 - Fixed: The border definition in MAPINFO's gameinfo block used extra braces.
SVN r1703 (trunk)
2009-07-04 01:15:38 +00:00
Randy Heit
4a4dadfec6 - Oops. Removed this accidentally before previous commit.
SVN r1701 (trunk)
2009-07-01 02:01:14 +00:00
Randy Heit
fe19767ac2 - Added A_SetCrosshair.
SVN r1700 (trunk)
2009-07-01 02:00:36 +00:00
Randy Heit
9bf7c02194 - The FlagLists structure cannot be anonymous if I want to use countof with it with GCC.
- Added a stopping check to A_ChangeVelocity.

SVN r1699 (trunk)
2009-07-01 01:10:29 +00:00
Randy Heit
8554ccf2a3 - Added A_WeaponBob.
SVN r1698 (trunk)
2009-07-01 00:58:26 +00:00
Randy Heit
7d4c21b167 - Fixed: SDL/i_system.cpp should use a return type for strrchr that has the same
constness as its first parameter. (As some GCCs will actually check this, I guess.)

SVN r1696 (trunk)
2009-06-30 23:26:03 +00:00
Randy Heit
f2b7417020 - 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.)


SVN r1695 (trunk)
2009-06-30 23:23:12 +00:00
Randy Heit
37b6e547cd - A_ZoomFactor now scales turning with the FOV by default. ZOOM_NOSCALETURNING
will leave it unaltered.


SVN r1694 (trunk)
2009-06-30 22:37:40 +00:00
Randy Heit
bbebed61f5 - Added Gez's PowerInvisibility changes.
SVN r1693 (trunk)
2009-06-30 22:10:51 +00:00
Randy Heit
12b2905993 - Fixed: clearflags did not clear flags6.
SVN r1692 (trunk)
2009-06-30 21:35:14 +00:00
Randy Heit
bd4496a582 - Added A_SetAngle, A_SetPitch, A_ScaleVelocity, and A_ChangeVelocity.
SVN r1691 (trunk)
2009-06-30 21:24:29 +00:00
Randy Heit
e4af82ae96 - 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.


SVN r1689 (trunk)
2009-06-30 20:57:51 +00:00
Randy Heit
ed0d804792 - 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.


SVN r1688 (trunk)
2009-06-30 19:20:39 +00:00
Randy Heit
f32b95d3cc - Add missing i_xinput.cpp
SVN r1687 (trunk)
2009-06-28 23:44:37 +00:00
Randy Heit
49b95be4b2 - 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.)


SVN r1686 (trunk)
2009-06-28 03:09:17 +00:00
Christoph Oelckers
43a71eba31 - Added Gez's submissions for A_M_Saw customization, area damage and
pitch for A_FireCustomMissile.


SVN r1685 (trunk)
2009-06-27 19:37:53 +00:00
Randy Heit
a687a61c76 - Attaching and detaching joysticks once again updates the joystick menu.
SVN r1684 (trunk)
2009-06-27 01:36:10 +00:00
Randy Heit
5dc5a56a17 - Added joystick axis -> button mapping.
SVN r1683 (trunk)
2009-06-27 00:35:41 +00:00
Christoph Oelckers
7ccca5733f - Update for skill replacement.
SVN r1682 (trunk)
2009-06-26 21:06:49 +00:00
Christoph Oelckers
5a80938b11 - Added Gez's actor replacement per skill submission.
SVN r1681 (trunk)
2009-06-26 17:17:52 +00:00
Randy Heit
590eb5cb76 - 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.
  * I'm sure SDL is broken again. Don't bother reporting it, because I already know.

SVN r1680 (trunk)
2009-06-26 02:45:05 +00:00
Christoph Oelckers
6d1cee3398 - fixed DUMB-compile problem with gcc.
SVN r1679 (trunk)
2009-06-24 22:16:51 +00:00
Randy Heit
b0dd2409ff - 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.


SVN r1678 (trunk)
2009-06-23 03:23:18 +00:00
Randy Heit
7161de7241 - SBARINFO patch: Enable forcescaled with fullscreenoffsets.
SVN r1677 (trunk)
2009-06-23 02:48:20 +00:00
Randy Heit
861a955cef - 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.


SVN r1676 (trunk)
2009-06-23 02:33:18 +00:00
Randy Heit
0506606efc - Added I_GetAxes() stub for the SDL side.
- Added oleaut32.lib as an explicit library in the VC Proj, since the 2005 Express Edition
  doesn't include it implicitly the way the other versions do.

SVN r1673 (trunk)
2009-06-21 02:08:50 +00:00
Randy Heit
a5b118cf7c - 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.


SVN r1672 (trunk)
2009-06-20 03:16:08 +00:00
Christoph Oelckers
e11cac7e89 - 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.


SVN r1671 (trunk)
2009-06-19 21:00:18 +00:00
Christoph Oelckers
db0a924fc9 - 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.


SVN r1670 (trunk)
2009-06-16 22:04:26 +00:00
Christoph Oelckers
d8bb215e70 Oops...
SVN r1669 (trunk)
2009-06-14 14:56:34 +00:00
Christoph Oelckers
3ab370b6ee - 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.


SVN r1668 (trunk)
2009-06-14 13:47:38 +00:00
Randy Heit
e69f90076d - 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.)


SVN r1667 (trunk)
2009-06-11 22:58:06 +00:00
Randy Heit
8d83d3791d - Added tagRAWINPUT declaration to i_input.h for support of older Windows SDKs.
SVN r1666 (trunk)
2009-06-11 22:17:50 +00:00
Randy Heit
397c1eda26 - Fixed: Adding GME support accidentally removed DUMB support.
SVN r1665 (trunk)
2009-06-11 03:48:53 +00:00
Randy Heit
deff9cfb12 - Moved Raw Input processing into a seperate method of FInputDevice so that
all the devices can share the same setup code.


SVN r1664 (trunk)
2009-06-11 03:41:24 +00:00
Christoph Oelckers
870508c64a - added bugfix patch by Gez.
SVN r1663 (trunk)
2009-06-10 20:14:47 +00:00
Randy Heit
b458234c34 - Removed F16 mapping for SDL, because I guess it's not present in SDL 1.2.
SVN r1662 (trunk)
2009-06-09 21:48:22 +00:00
Christoph Oelckers
523cf6acb2 - 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.


SVN r1661 (trunk)
2009-06-09 17:13:03 +00:00
Christoph Oelckers
4fcd64d2c1 - Fixed: I_ShutdownInput must NULL all pointers because it can be called twice
if an ENDOOM screen is displayed.



SVN r1660 (trunk)
2009-06-09 07:57:21 +00:00
Christoph Oelckers
f4c9cf9c4e - 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.


SVN r1659 (trunk)
2009-06-09 07:45:04 +00:00
Christoph Oelckers
da2df2778e Added Line_SetTextureScale.
SVN r1658 (trunk)
2009-06-08 23:49:27 +00:00
Christoph Oelckers
a425214432 - fixed: sv_smartaim 3 treated the player like a shootable decoration.
- Added A_CheckIfInTargetLOS
- Removed redundant A_CheckIfTargetInSight.


SVN r1656 (trunk)
2009-06-08 23:39:08 +00:00
Randy Heit
64b7468bf4 - Fixed: The initial play of a GME song always started track 0.
SVN r1655 (trunk)
2009-06-08 23:37:39 +00:00
Randy Heit
39455bd80f - Added F16 to the SDL keymap and moved Pause back to its original location (from years ago.)
SVN r1654 (trunk)
2009-06-08 22:59:55 +00:00
Randy Heit
9493b5acdd SVN r1653 (trunk) 2009-06-08 22:55:03 +00:00
Christoph Oelckers
4b9d0c6dff - added parameter to A_FadeOut so that removing the actor can be made an option.
SVN r1652 (trunk)
2009-06-07 22:13:16 +00:00
Christoph Oelckers
6ba839a0e9 - added PERSISTENTPOWER and TRANSFERPOINTERS submissions by Gez.
SVN r1651 (trunk)
2009-06-07 20:10:05 +00:00
Christoph Oelckers
16bf1ef6d0 - fixed FORCEPAIN logic.
SVN r1650 (trunk)
2009-06-07 17:04:40 +00:00
Christoph Oelckers
28378a50aa - added missing declaration for APowerInfiniteAmmo.
SVN r1649 (trunk)
2009-06-07 16:48:42 +00:00
Christoph Oelckers
d04ffd57f8 - 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 


SVN r1648 (trunk)
2009-06-07 16:38:19 +00:00
Christoph Oelckers
93742aca31 - Added Karate Chris's poison cloud fix.
SVN r1647 (trunk)
2009-06-07 09:41:22 +00:00
Randy Heit
c66f237873 - 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.


SVN r1645 (trunk)
2009-06-07 01:14:14 +00:00
Christoph Oelckers
3366a8994d - fixed display mode menu.
SVN r1644 (trunk)
2009-06-06 21:03:49 +00:00
Christoph Oelckers
a1aba60d8d - Added Hirogen2's unlimited pickup patch.
- Added railgun performance customization CVARs by Spleen.
- Added aspect ratio override submission by SoulPriestess.



SVN r1643 (trunk)
2009-06-06 15:21:57 +00:00
Christoph Oelckers
476e0bce2a - 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.

SVN r1642 (trunk)
2009-06-06 12:46:35 +00:00
Randy Heit
bdd3188897 - Added support for horizontal mouse wheels, and set invprev/invnext as
default bindings for it. (Only works with Raw Input on XP. Vista has
  support through Win32 mouse, as well. DirectInput does not support it at
  all, because the DirectInput mouse device does not expose this control.)


SVN r1640 (trunk)
2009-06-06 02:55:58 +00:00
Randy Heit
7df2d40e8f - Added a label for the F16 key and mapped the kp= key on a Mac keyboard to
the PC98 equivalent so it would be recognized as kp=. (Interestingly, F13-
  F16 and kp= only generate events when using Raw Input, not when using
  DirectInput.


SVN r1639 (trunk)
2009-06-06 02:06:38 +00:00
Christoph Oelckers
d30e304a7f - 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.


SVN r1638 (trunk)
2009-06-05 21:44:34 +00:00
Christoph Oelckers
8c3a816428 - Added Gez's GetArmorType submission
SVN r1636 (trunk)
2009-06-05 20:23:47 +00:00
Christoph Oelckers
cc357e5178 - re-fix of Gez's MAX_MANA patch
SVN r1633 (trunk)
2009-06-04 22:05:12 +00:00
Randy Heit
5300572b88 - Moved USE_WINDOWS_DWORD definition out of music_gme.cpp and into i_musicinterns.h.
SVN r1632 (trunk)
2009-06-04 00:58:42 +00:00
Randy Heit
a8de4fc2da - Fixed compilation of i_keyboard.cpp with MinGW, because w32api still doesn't have
everything that was new for XP.
- Swapped snes_spc out for the full Game Music Emu library.

SVN r1631 (trunk)
2009-06-03 03:05:02 +00:00
Christoph Oelckers
2ab76070c0 - Fixed: The Hexen status bar still uses MAX_MANA for some calculations instead
of MaxAmount.



SVN r1630 (trunk)
2009-06-02 17:42:52 +00:00
Christoph Oelckers
5061e2e8fd - Added Blzut3's submission for displaying underwater stats in SBARINFO.
SVN r1629 (trunk)
2009-06-01 07:10:22 +00:00
Christoph Oelckers
14cdab7e39 - Applied patch for fixing directory reading on Linux.
SVN r1628 (trunk)
2009-06-01 06:43:32 +00:00
Christoph Oelckers
91e0f4d11d - Added Gez's AMMO_CHECKBOTH submission.
SVN r1627 (trunk)
2009-05-31 22:14:23 +00:00
Christoph Oelckers
fb5e392f2f - Added Gez's THRUSPECIES submission.
SVN r1626 (trunk)
2009-05-31 20:14:16 +00:00
Christoph Oelckers
4be0324dbd - added missing NULL pointer check for directory loading.
SVN r1625 (trunk)
2009-05-31 18:14:40 +00:00
Christoph Oelckers
627838f379 - 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.

SVN r1624 (trunk)
2009-05-31 10:49:47 +00:00
Christoph Oelckers
53899121bf - fixed: bouncing sounds were limited to inventory items.
SVN r1623 (trunk)
2009-05-30 23:08:29 +00:00
Christoph Oelckers
c0e398e7ac - fixed compile error in d_iwad.cpp
SVN r1622 (trunk)
2009-05-30 17:14:17 +00:00
Christoph Oelckers
2effc9b803 - 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.


SVN r1621 (trunk)
2009-05-30 09:53:38 +00:00
Christoph Oelckers
9c4cbedc26 - 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.

SVN r1619 (trunk)
2009-05-30 08:56:40 +00:00
Randy Heit
092512c44a - 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.


SVN r1618 (trunk)
2009-05-27 22:57:21 +00:00
Randy Heit
12959a1bd1 - 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.


SVN r1617 (trunk)
2009-05-27 22:17:11 +00:00
Randy Heit
a925f7eab6 - Removed HaveFocus variable in preference of using GetForegroundWindow().
SVN r1616 (trunk)
2009-05-27 21:11:06 +00:00
Randy Heit
3f3d677526 - Removed spurious WM_INPUT from the main WndProc.
SVN r1615 (trunk)
2009-05-27 21:05:19 +00:00
Randy Heit
a11073341c - Added Raw Input keyboard handling.
SVN r1614 (trunk)
2009-05-27 20:44:54 +00:00
Randy Heit
7fea07dff7 - 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.


SVN r1613 (trunk)
2009-05-27 03:16:46 +00:00
Randy Heit
0a310b9832 - Fixed compilation on MinGW.
SVN r1612 (trunk)
2009-05-26 22:33:02 +00:00
Randy Heit
4e5d5d0f2e - 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.


SVN r1610 (trunk)
2009-05-26 17:35:30 +00:00
Randy Heit
e637fe3ea7 - Recoverable errors that are caught during the demo loop no longer shut off
the menu.


SVN r1609 (trunk)
2009-05-26 01:56:35 +00:00
Randy Heit
956b7d5ea3 - Added Skulltag's PowerDoubleFiringSpeed.
SVN r1608 (trunk)
2009-05-26 01:16:39 +00:00
Randy Heit
2f7498214b - Specifying non-existent directories with -savedir or the save_dir cvar now
attempts to create them.


SVN r1607 (trunk)
2009-05-26 01:05:01 +00:00
Randy Heit
e95be7eff7 - SBARINFO fix:
- Fullscreen Doom HUD clamped the display of digits.

SVN r1606 (trunk)
2009-05-26 00:46:55 +00:00
Randy Heit
5245e8d4dd - 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.
- Reverted accidental changes to src/sdl/i_input.cpp.

SVN r1605 (trunk)
2009-05-26 00:30:51 +00:00
Christoph Oelckers
e43453b614 - added Hirogen2's patch for using the default BZip2 library under Linux.
SVN r1604 (trunk)
2009-05-25 20:58:59 +00:00
Christoph Oelckers
dbddb6403f - added #define _WIN32_WINNT 0x0501 to i_mouse.cpp so that the file compiles with the Windows 2003 Server SDK.
SVN r1603 (trunk)
2009-05-24 08:57:58 +00:00
Christoph Oelckers
8034b0558e - 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.


SVN r1602 (trunk)
2009-05-24 07:58:57 +00:00
Randy Heit
0c4c90ac89 - 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.


SVN r1601 (trunk)
2009-05-24 03:15:04 +00:00
Christoph Oelckers
273758344f - Fixed: When setting up a deep water sector with Transfer_Heights the floorclip
information of all actors in the sector needs to be updated.


SVN r1600 (trunk)
2009-05-23 10:21:33 +00:00
Christoph Oelckers
e61b4b3c76 - Fixed: A_CountdownArg and A_Die must ensure a certain kill.
- 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.


SVN r1599 (trunk)
2009-05-23 08:30:36 +00:00
Randy Heit
466b6e4535 - Moved SetSoundPaused() out of i_input.cpp and into s_sound.cpp.
SVN r1598 (trunk)
2009-05-23 03:09:50 +00:00
Randy Heit
86023c23ca - 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.


SVN r1597 (trunk)
2009-05-23 02:22:30 +00:00
Christoph Oelckers
7e69852da9 - 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.


SVN r1596 (trunk)
2009-05-20 09:06:49 +00:00
Randy Heit
749de6c156 - Fixed: SetSoundPaused() still needs to call S_PauseSound() to pause music
that isn't piped through the digital sound system. (Was removed in r1004.)


SVN r1595 (trunk)
2009-05-20 02:52:07 +00:00
Randy Heit
b7dab65754 SBARINFO patch:
- Fixed: SBarInfo's string drawing sometimes used the wrong variable.

SVN r1594 (trunk)
2009-05-20 01:42:47 +00:00
Randy Heit
2e87ebff22 - 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.


SVN r1590 (trunk)
2009-05-17 03:05:26 +00:00
Christoph Oelckers
c0d2f78b2a - fixed: FZipLump passed the uncompressed lump size to ShrinkLoop as size of the input data but this must be the compressed size.
SVN r1589 (trunk)
2009-05-16 10:06:39 +00:00
Randy Heit
cef12aac6d - 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.


SVN r1588 (trunk)
2009-05-16 03:10:37 +00:00
Christoph Oelckers
b55ca6ffaa - Fixed: Monsters should not check the inventory for damage absorbtion when
they have the MF5_NODAMAGE flag set.
- Added patch for saving automap zoom.


SVN r1587 (trunk)
2009-05-15 22:06:44 +00:00
Christoph Oelckers
eb52c9a90e - Added ACS GetChar function.
- Added Gez's submission for polyobjects being able to crush corpses but made
  it an explicit MAPINFO option only.


SVN r1585 (trunk)
2009-05-15 17:21:45 +00:00
Christoph Oelckers
a732687548 - 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.

SVN r1583 (trunk)
2009-05-15 10:39:40 +00:00
Randy Heit
b9fa7626bc - Fixed non-POD passing in G_BuildSaveName() and other things GCC warned
about.
- Added support for imploded zips.



SVN r1581 (trunk)
2009-05-15 03:11:44 +00:00
Christoph Oelckers
912abc144e - 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.


SVN r1578 (trunk)
2009-05-11 22:16:41 +00:00
Christoph Oelckers
571d28281b - 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".


SVN r1575 (trunk)
2009-05-11 21:05:40 +00:00
Randy Heit
b224765351 - Added customizable mage lightning patch.
SVN r1574 (trunk)
2009-05-11 15:24:44 +00:00
Randy Heit
1c61ef89eb - Added Species property for actors and separated Hexen's Demon1 and Demon2
into different species.


SVN r1573 (trunk)
2009-05-11 15:15:06 +00:00
Randy Heit
41a416f068 This commit is 90% contributed content:
- 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.


SVN r1571 (trunk)
2009-05-09 02:31:49 +00:00
Christoph Oelckers
a9c396a8ce - fixed: The CHECKSWITCHRANGE line flag was ignored for one sided lines.
SVN r1570 (trunk)
2009-05-03 21:12:52 +00:00
Christoph Oelckers
0d1d15eba8 - Added more compatibility settings, submitted by Gez.
SVN r1569 (trunk)
2009-05-03 07:19:21 +00:00
Christoph Oelckers
512056aeed - added EmptyTexture.cpp to CMakeLists.txt.
SVN r1568 (trunk)
2009-05-02 21:53:27 +00:00
Christoph Oelckers
4d5692bf80 - 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.

SVN r1567 (trunk)
2009-05-02 09:14:01 +00:00
Christoph Oelckers
b37d0ba2ea - 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.


SVN r1566 (trunk)
2009-04-30 11:10:38 +00:00
Randy Heit
28e9693b79 - Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
order.


SVN r1565 (trunk)
2009-04-30 03:50:52 +00:00
Randy Heit
f7d7e9faf9 - 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.


SVN r1564 (trunk)
2009-04-30 02:41:20 +00:00
Christoph Oelckers
edbeab54a0 - Fixed check for embedded WADs again.
SVN r1562 (trunk)
2009-04-28 21:26:27 +00:00
Christoph Oelckers
3bbef315f6 - Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking.
SVN r1561 (trunk)
2009-04-28 20:53:07 +00:00
Christoph Oelckers
511ddb028c - Fixed handling of embedded WADs.
SVN r1559 (trunk)
2009-04-26 18:12:40 +00:00
Christoph Oelckers
2e90519c13 -Fixes in new resource file code: Added file length checks and set lump count to 1 for single lump files.
SVN r1558 (trunk)
2009-04-24 22:31:35 +00:00
Christoph Oelckers
1ea8777572 - fixed typo in CMakeLists.txt.
SVN r1557 (trunk)
2009-04-24 06:22:30 +00:00
Christoph Oelckers
19c4e3caed - 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.


SVN r1556 (trunk)
2009-04-23 23:20:21 +00:00
Christoph Oelckers
cc066bc409 - 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.
- Made the counting of intermission stats in Doom a GAMEINFO option so that
  it can be activated in all games.


SVN r1555 (trunk)
2009-04-23 22:49:38 +00:00
Christoph Oelckers
a2a69765eb - fixed MustConfirm parsing in MAPINFO
SVN r1554 (trunk)
2009-04-21 17:34:48 +00:00
Randy Heit
1954f9ee84 - Gave the intermission screen sounds their own SNDINFO entries.
SVN r1551 (trunk)
2009-04-18 01:31:08 +00:00
Randy Heit
e865d95070 - Removed obsolete snd_surround cvar.
SVN r1550 (trunk)
2009-04-16 23:58:41 +00:00
Randy Heit
dcedad548b - Changing screen resolution now adjusts the automap scale to be constant
relative to screen resolution.


SVN r1549 (trunk)
2009-04-16 03:02:08 +00:00
Randy Heit
bdbb72e43d - Crap.
SVN r1548 (trunk)
2009-04-16 02:05:13 +00:00
Randy Heit
659be956de - Fixed: When FMultiPatchTexture::MakeTexture() needed to work in RGB
colorspace, it didn't zero out the temporary buffer.


SVN r1547 (trunk)
2009-04-16 02:02:56 +00:00
Randy Heit
c2ff8c78dd - 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.


SVN r1546 (trunk)
2009-04-15 23:33:36 +00:00
Randy Heit
7e7429e3d2 - Added support for 7z archives.
SVN r1545 (trunk)
2009-04-15 03:58:10 +00:00
Christoph Oelckers
9040710e62 - Updated UDMF spec to 1.1.
- 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.



SVN r1544 (trunk)
2009-04-14 09:06:03 +00:00
Randy Heit
81c4773b46 - Changed gravity doubling so that it only happens when you run off a ledge.
SVN r1543 (trunk)
2009-04-14 01:20:44 +00:00
Randy Heit
6a9acc2cf8 - Fixed: World panning was ignored for the X offset of masked midtextures.
SVN r1541 (trunk)
2009-04-11 04:28:06 +00:00
Christoph Oelckers
d3b6dfb0f1 - 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.


SVN r1540 (trunk)
2009-04-10 06:50:39 +00:00
Randy Heit
3ecca432a9 - 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.


SVN r1539 (trunk)
2009-04-10 04:04:17 +00:00
Randy Heit
bb9b5ebf92 - 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).


SVN r1538 (trunk)
2009-04-10 03:54:28 +00:00
Randy Heit
ac2f5aa632 - 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.


SVN r1536 (trunk)
2009-04-09 02:25:37 +00:00
Randy Heit
47a4cffb30 - And again...
SVN r1535 (trunk)
2009-04-09 02:02:55 +00:00
Randy Heit
6a75a5ac94 - Fix GCC warning.
SVN r1534 (trunk)
2009-04-09 02:00:58 +00:00
Randy Heit
c601426248 - More performance optimization for FBlockThingsIterator::Next(): Changed
the array used to keep track of visited actors into a hash table.

SVN r1533 (trunk)
2009-04-09 01:40:30 +00:00
Randy Heit
a54367a3c0 - 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.


SVN r1532 (trunk)
2009-04-08 22:59:06 +00:00
Randy Heit
3dc01e77f7 - Added gprof support. Pass -DPROFILE=1 to cmake when using a Debug or RelWithDebInfo
CMAKE_BUILD_TYPE. (It seems to like to hang when generating arith.h for gdtoa when you
  do this, but killing the make process and restarting it seems to fix that.)

SVN r1531 (trunk)
2009-04-08 22:26:09 +00:00
Randy Heit
5db6a5516b - I guess music_mus_midiout.cpp isn't Win32-only, is it?
SVN r1530 (trunk)
2009-04-08 04:58:36 +00:00
Randy Heit
993fcd233a - Fixed: MinGW needs malloc.h for alloca().
SVN r1529 (trunk)
2009-04-08 04:57:17 +00:00
Randy Heit
0060dab892 - Last was incomplete commit.
SVN r1528 (trunk)
2009-04-08 04:47:44 +00:00
Randy Heit
d3e1199c8f - Fixed: Not all control paths through DCanvas::ParseDrawTextureTags() called va_end.
- Moved the va_copy check out of the non-Win32 part of CMakeLists.txt so that it gets
  used for MinGW, too.

SVN r1527 (trunk)
2009-04-08 04:47:21 +00:00
Randy Heit
2ac649e09d - Added a va_copy/__va_copy check to CMakeLists.txt.
SVN r1526 (trunk)
2009-04-08 04:33:29 +00:00
Randy Heit
cc9efce818 - Fixed: Removing malloc.h for every system because FreeBSD doesn't like
it is wrong.


SVN r1525 (trunk)
2009-04-08 04:14:37 +00:00
Christoph Oelckers
a908834a11 - 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.


SVN r1524 (trunk)
2009-04-07 07:06:07 +00:00
Christoph Oelckers
c8e01f9f91 - Fixed: The UDMF textmap readbuffer was never freed.
SVN r1523 (trunk)
2009-04-06 17:18:29 +00:00
Randy Heit
e16fde611f - Fixed: GetPlayerInput() died if you tried to get the input of the activator
and the activator was the world.


SVN r1522 (trunk)
2009-04-05 03:22:36 +00:00
Christoph Oelckers
78fb48302c - 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.


SVN r1521 (trunk)
2009-04-04 17:46:33 +00:00
Christoph Oelckers
9d47afb304 - added 'damage' to the actor variables exported to DECORATE's expression
evaluator.
- fixed: solid corpses could block ripper missile that originally killed them.


SVN r1520 (trunk)
2009-04-04 09:28:10 +00:00
Randy Heit
4376c6b415 - Fixed: Doom's status bar was lacking its default face.
- Fixed: Custom skin face graphics were not added to the texture manager.


SVN r1519 (trunk)
2009-04-03 02:37:01 +00:00
Randy Heit
ccd3b2a6e1 - Fixed: UseHealthItems() gave you health equal to the number of items in
the stack of health items, rather than the item's proper amount.


SVN r1518 (trunk)
2009-04-03 01:25:06 +00:00
Randy Heit
08730b941b - 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.


SVN r1515 (trunk)
2009-04-02 01:48:59 +00:00
Christoph Oelckers
f62fcabb9c - 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.

SVN r1514 (trunk)
2009-03-29 08:55:15 +00:00
Randy Heit
7060f72186 - So, I guess if you're doing the inline asm properly, tsc doesn't need to be marked as
volatile.

SVN r1513 (trunk)
2009-03-29 02:40:41 +00:00
Christoph Oelckers
bf4e17703d - 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.

SVN r1512 (trunk)
2009-03-28 11:49:44 +00:00
Randy Heit
3ee37fdc08 - Fixed GCC rdtsc (for real this time, I hope).
SVN r1511 (trunk)
2009-03-28 03:31:52 +00:00
Randy Heit
366ed7047a - The variable the result of rdtsc is placed in also needs to be marked as volatile
to ensure that GCC doesn't optimize the function call away.

SVN r1510 (trunk)
2009-03-28 03:26:05 +00:00
Christoph Oelckers
e59ee12f2a - removed debug code.
SVN r1509 (trunk)
2009-03-27 23:23:10 +00:00
Christoph Oelckers
26420a9c60 - Fixed: Reading the RNG states from a savegame calculated the amounts of
RNGs in the savegame wrong.


SVN r1508 (trunk)
2009-03-27 22:07:16 +00:00
Randy Heit
7371c4a516 - 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.

SVN r1507 (trunk)
2009-03-27 04:49:17 +00:00
Randy Heit
35fe9ae690 - Made fmodex.dll delay-loaded so the game should be runnable on Windows 95
again, though without sound.



SVN r1506 (trunk)
2009-03-26 02:33:37 +00:00
Randy Heit
854097ba03 - 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.


SVN r1505 (trunk)
2009-03-26 02:06:14 +00:00
Christoph Oelckers
03e8f0e355 - 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.


SVN r1504 (trunk)
2009-03-25 23:29:00 +00:00
Christoph Oelckers
f7bcd0b98e - Fixed: Implicitly defined clusters were not initialized when being created.
SVN r1503 (trunk)
2009-03-25 22:02:15 +00:00
Christoph Oelckers
218fc5018e - Fixed: Item tossing did not work anymore.
SVN r1502 (trunk)
2009-03-24 07:51:15 +00:00
Christoph Oelckers
e4da63e9f3 - Changed: Making the gameinfo customizable by MAPINFO requires different
checks for map specific border flats.
- fixed intermission music for Doom 1.


SVN r1501 (trunk)
2009-03-23 17:46:59 +00:00
Christoph Oelckers
9fdbf29cb1 - fixed Linux compile
SVN r1500 (trunk)
2009-03-23 07:37:57 +00:00
Christoph Oelckers
a150f6f9b7 - disabled Zip related code in IWAD detection for now
- forgot to add new files.


SVN r1498 (trunk)
2009-03-22 11:42:46 +00:00
Christoph Oelckers
505031fa5a - 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.


SVN r1497 (trunk)
2009-03-22 11:37:56 +00:00
Christoph Oelckers
81f834e3f4 - fixed: The WAD manager's hash chains could not handle more than 65535 lumps.
- Reinitializing the WAD manager will now delete all data.
- Preparation for GAMEINFO: zdoom.pk3 will be opened separately before checking the IWAD
  so that the internal GAMEINFOs can be externalized, too.


SVN r1494 (trunk)
2009-03-21 09:03:08 +00:00
Randy Heit
5c5137747f - 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.


SVN r1492 (trunk)
2009-03-20 02:13:25 +00:00
Randy Heit
301a554a69 - 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.


SVN r1491 (trunk)
2009-03-20 01:58:33 +00:00
Randy Heit
7a06d3a71a - Fixed: P_RailAttack() passed the wrong angle variable to P_TraceBleed().
SVN r1490 (trunk)
2009-03-20 01:40:28 +00:00
Christoph Oelckers
18b4577bbd - 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.


SVN r1489 (trunk)
2009-03-19 22:48:55 +00:00
Christoph Oelckers
ca454bfeb3 - 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.


SVN r1488 (trunk)
2009-03-19 11:24:14 +00:00
Randy Heit
cfbf55acab - -norun works without -stdout now.
SVN r1487 (trunk)
2009-03-19 02:12:24 +00:00
Randy Heit
c2aab5dd46 - 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.


SVN r1486 (trunk)
2009-03-18 05:02:32 +00:00
Randy Heit
314216343d - Added support for loading ZGL2 nodes. (Only useful with UDMF and maps with
more than 65534 lines.)


SVN r1485 (trunk)
2009-03-17 03:34:31 +00:00
Christoph Oelckers
63c170150d - Fixed: AWeapon::PickupForAmmo accessed ammo type 1 when checking ammo type2.
SVN r1481 (trunk)
2009-03-15 08:08:29 +00:00
Randy Heit
6236074684 - Version bump to 2.3.1.
SVN r1479 (trunk)
2009-03-15 01:42:45 +00:00
Randy Heit
8724b45e15 - 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.


SVN r1478 (trunk)
2009-03-15 01:41:53 +00:00
Randy Heit
7dd75670f4 - Fixed: After loading a savegame or unmorphing, a player's weapon slots
were empty.


SVN r1477 (trunk)
2009-03-13 03:18:06 +00:00
Randy Heit
69c2c4de64 - Moved weapon slot initialization into APlayerPawn::PostBeginPlay() so that
they can be initialized when players respawn in multiplayer.


SVN r1476 (trunk)
2009-03-12 03:54:23 +00:00
Christoph Oelckers
c65dc5bad4 - 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.


SVN r1475 (trunk)
2009-03-11 19:28:10 +00:00
Randy Heit
aee99c2bd0 - 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".



SVN r1473 (trunk)
2009-03-11 04:56:43 +00:00
Randy Heit
47abeec7d9 - 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.



SVN r1472 (trunk)
2009-03-11 01:12:51 +00:00
Christoph Oelckers
bc91192473 - Fixed a crash in the weapon code with missing player starts.
SVN r1471 (trunk)
2009-03-11 00:42:04 +00:00
Randy Heit
fcdab6a777 - Added sdl_nokeyrepeat to disable key repeating in the menus and console
on Linux.



SVN r1470 (trunk)
2009-03-11 00:17:31 +00:00
Randy Heit
1e57e07926 - Fixed a double-fclose and memory leaks in zipdir.
- Fixed building of LZMA SDK on Linux with some help from p7zip.



SVN r1469 (trunk)
2009-03-10 23:56:47 +00:00
Randy Heit
75b7db858f - 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.
- Added support for bzip2 and LZMA compression to zipdir.


SVN r1468 (trunk)
2009-03-10 23:07:37 +00:00
Randy Heit
fd5a5be76a - Fixed what looks like an incorrect comparison in thingdef_states.cpp.
SVN r1467 (trunk)
2009-03-10 05:37:27 +00:00
Christoph Oelckers
b072431d3b - Adjusted some gravity related thresholds for the fix from Feb 28. Also removed
some unnecessary floating point math from this code.


SVN r1465 (trunk)
2009-03-07 09:16:32 +00:00
Christoph Oelckers
e57ff454f2 - Added Hirogen2's patch for unlimited ammo CVAR.
SVN r1464 (trunk)
2009-03-06 22:58:34 +00:00
Randy Heit
ee1806e9b2 - 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.


SVN r1463 (trunk)
2009-03-04 23:19:46 +00:00
Randy Heit
e9121b607d - Fixed: When using BOOM-style sector flags and specials together, the
special was ignored unless it was "secret".


SVN r1462 (trunk)
2009-03-04 23:07:18 +00:00
Randy Heit
5eeaa130fd - 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.


SVN r1460 (trunk)
2009-03-04 06:06:31 +00:00
Christoph Oelckers
3b36334704 - 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.


SVN r1459 (trunk)
2009-03-03 21:17:00 +00:00
Christoph Oelckers
74642ca626 - 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.)


SVN r1456 (trunk)
2009-03-01 10:12:12 +00:00
Randy Heit
fc4bf2f647 Version bump.
SVN r1454 (trunk)
2009-03-01 03:02:40 +00:00
Randy Heit
d0763f4820 - 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.


SVN r1453 (trunk)
2009-03-01 02:19:46 +00:00
Christoph Oelckers
42ac64d964 - 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.



SVN r1452 (trunk)
2009-02-28 21:38:20 +00:00
Randy Heit
37aa4c2c28 - Removed an early-out in wallscan_striped() that is invalid when drawing a
skybox.


SVN r1451 (trunk)
2009-02-27 03:45:14 +00:00
Randy Heit
4535382031 - 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.


SVN r1450 (trunk)
2009-02-26 06:23:05 +00:00
Christoph Oelckers
1f5cf23418 - fixed: nextmap and nextsecret CCMDs set skill to 0.
SVN r1449 (trunk)
2009-02-25 23:25:47 +00:00
Christoph Oelckers
2c65d5b8f5 - fixed: level.flags2 was not stored in savegames. Also bumped min. savegame
version and removed old compatibility handlings.

SVN r1448 (trunk)
2009-02-25 22:10:06 +00:00
Randy Heit
a18018f607 - 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 occasional 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.)


SVN r1447 (trunk)
2009-02-25 21:31:14 +00:00
Christoph Oelckers
d91f0c4090 - 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.


SVN r1446 (trunk)
2009-02-24 21:19:10 +00:00
Randy Heit
c2b4522b8f - Changed DEM_ADDSLOTDEFAULT, DEM_ADDSLOT, and DEM_SETSLOT to be more space-
efficient.


SVN r1445 (trunk)
2009-02-24 05:58:59 +00:00
Randy Heit
a71e87b9df - 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.


SVN r1444 (trunk)
2009-02-24 04:13:38 +00:00
Randy Heit
7a887416f6 - Fixed: APowerInvisibility::CommonInit() cleared the wrong flag.
SVN r1443 (trunk)
2009-02-24 03:47:32 +00:00
Christoph Oelckers
f188577bb5 - 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.


SVN r1442 (trunk)
2009-02-23 21:55:36 +00:00
Christoph Oelckers
613ae5e022 - added ML_BLOCKPROJECTILE flag to lines.
SVN r1440 (trunk)
2009-02-22 15:39:42 +00:00
Christoph Oelckers
eb47f4fdbf - 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.


SVN r1439 (trunk)
2009-02-22 10:25:12 +00:00
Randy Heit
10c31b82cb - 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.)


SVN r1438 (trunk)
2009-02-22 05:05:58 +00:00
Christoph Oelckers
317b8c1d7c - Fixed: Heretic's fullscreen HUD crashed when the player had armor without
a valid icon.


SVN r1436 (trunk)
2009-02-21 23:17:37 +00:00
Christoph Oelckers
5bb3f87746 - GCC compile fix and warning removal.
SVN r1434 (trunk)
2009-02-21 21:44:15 +00:00
Christoph Oelckers
b94b832a9e - Fixed: Untranslated colors in fonts had an alpha value of 0 but need 255.
SVN r1433 (trunk)
2009-02-21 11:30:42 +00:00
Christoph Oelckers
5bd3d0d37d - 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.


SVN r1431 (trunk)
2009-02-21 10:15:11 +00:00
Christoph Oelckers
4b723beddd - 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.


SVN r1430 (trunk)
2009-02-20 22:28:48 +00:00
Christoph Oelckers
125b0cefaf - fixed: level_info_t::mapbg was not initialized
SVN r1429 (trunk)
2009-02-20 13:47:22 +00:00
Randy Heit
a7e40b56f6 - 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.
- 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.
- Fixed: Several weapons were missing a game filter from their definitions.
- Removed storage of weapon slots in the config so that weapon slots can
  be setup in the weapons themselves. Slots are still configurable, since
  they need to be for KEYCONF to work; any changes simply won't be saved
  when you quit.
- Removed limit on weapon slot sizes.


SVN r1428 (trunk)
2009-02-20 00:53:25 +00:00
Randy Heit
491abe3a2c - Fixed: DirectInput8Create() used the wrong calling convention.
SVN r1426 (trunk)
2009-02-19 23:12:48 +00:00
Christoph Oelckers
666e40c8bb - 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.

SVN r1425 (trunk)
2009-02-19 14:36:37 +00:00
Randy Heit
0acc6a4ee3 - 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 with the startup background.


SVN r1424 (trunk)
2009-02-11 00:16:05 +00:00
Randy Heit
085be22a30 - Changed I_InitInput() to acquire the IDirectInput8A interface by using
DirectInput8Create() instead of CoCreateInstance(). This allows the Steam
  GameOverlayRenderer.dll to properly hook it.


SVN r1422 (trunk)
2009-02-10 03:12:41 +00:00
Randy Heit
035edb32ad - Stopped sending double the number of wheel events as appropriate to the
console under Linux.
- Added middle mouse button selection pasting for X systems.



SVN r1420 (trunk)
2009-02-10 02:16:41 +00:00
Christoph Oelckers
e55a97a18e - Fixed parsing of 'cluster' keyword when format is not yet known.
SVN r1419 (trunk)
2009-02-09 00:11:07 +00:00
Christoph Oelckers
9d5b92d231 - Moved CheckCompatibility call so that it is done after setting LEVEL_HEXENFORMAT.
SVN r1418 (trunk)
2009-02-08 22:35:23 +00:00
Christoph Oelckers
5aecc8abf5 - Fixed parsing for MustConfirm key in skill parser.
- Converted internal MAPINFOs to new syntax.


SVN r1417 (trunk)
2009-02-08 19:04:07 +00:00
Christoph Oelckers
4b064d9b5d - Added a range parameter to SNDINFO's $limit.
- Restored Dehacked music name replacement.


SVN r1416 (trunk)
2009-02-08 11:28:30 +00:00
Randy Heit
05a8a49ea5 - Added GUICapture mouse events for Win32.
SVN r1415 (trunk)
2009-02-08 03:45:41 +00:00
Randy Heit
025e36ee41 - Changed I_GetFromClipboard() to return an FString.
SVN r1414 (trunk)
2009-02-08 03:32:27 +00:00
Randy Heit
be165578ea - 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.



SVN r1413 (trunk)
2009-02-08 02:52:43 +00:00
Christoph Oelckers
125be6b54e - 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.

SVN r1412 (trunk)
2009-02-07 08:52:07 +00:00
Randy Heit
0c9f735357 - 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.


SVN r1411 (trunk)
2009-02-07 03:01:38 +00:00
Randy Heit
1aed25f666 - 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.


SVN r1410 (trunk)
2009-02-07 01:37:06 +00:00
Randy Heit
8d9bc8cc67 - Fixed: Keys bound in a custom key section would unbind the key in the
main game section.


SVN r1409 (trunk)
2009-02-07 01:14:36 +00:00
Randy Heit
f867f40bab - Fixed scrolling of the automap background on a rotated automap.
SVN r1408 (trunk)
2009-02-07 00:07:55 +00:00
Randy Heit
a704043fd2 - Removed automap scroll clamping for rotated maps. If it's going to scroll out of sight,
at least it'll do so at a fixed right.

SVN r1407 (trunk)
2009-02-07 00:01:58 +00:00
Randy Heit
64b783f4bd - 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.


SVN r1406 (trunk)
2009-02-06 04:43:51 +00:00
Christoph Oelckers
cccdfd6336 - 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.


SVN r1405 (trunk)
2009-02-06 00:16:57 +00:00
Randy Heit
70aa9cb92a - Fixed copy pasta errors in autosegs.h and other problems for GCC.
SVN r1404 (trunk)
2009-02-05 04:18:08 +00:00
Randy Heit
7ee11638f2 - Need to add compatibility.cpp and md5.cpp to CMakeLists.txt.
SVN r1403 (trunk)
2009-02-05 03:39:02 +00:00
Randy Heit
4e509728a0 - 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.)


SVN r1402 (trunk)
2009-02-05 02:55:28 +00:00
Christoph Oelckers
84c5c7d38e - Made improvements so that the FOptionalMapinfoData class is easier to use.
SVN r1401 (trunk)
2009-02-04 23:45:26 +00:00
Randy Heit
b387752f2f - Applied latest TEAMINFO patch.
SVN r1400 (trunk)
2009-02-04 23:14:28 +00:00
Randy Heit
403b2c3c56 - 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().


SVN r1399 (trunk)
2009-02-04 02:29:59 +00:00
Randy Heit
b983886acd - Fixed: SBARINFO used different rounding modes for the background and
foreground of the DrawBar command.


SVN r1398 (trunk)
2009-02-04 02:01:32 +00:00
Randy Heit
72343d9f2c - Bumped MINSAVEVER to coincide with the new MAPINFO merge.
SVN r1397 (trunk)
2009-02-04 01:27:45 +00:00
Randy Heit
d0e7e574e1 - 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.


SVN r1396 (trunk)
2009-02-04 01:23:47 +00:00
Christoph Oelckers
92e6a72da1 - restored a line in the MAPINFO parser that got accidentally deleted.
SVN r1394 (trunk)
2009-02-03 21:35:10 +00:00
Christoph Oelckers
4bcd3faef8 - 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.
- merged MAPINFO branch back into trunk.

SVN r1393 (trunk)
2009-02-03 19:11:43 +00:00
Randy Heit
0b95b47f87 - Changed DECORATE replacements so that they aren't overridden by Dehacked.
SVN r1391 (trunk)
2009-02-03 05:46:55 +00:00
Christoph Oelckers
c11f1a7fdc - Fixed: The damage factor for 'normal' damage is supposed to be applied to
all damage types that don't have a specific damage factor.


SVN r1388 (trunk)
2009-02-01 09:11:05 +00:00
Randy Heit
07a2da40f1 - Changed FMOD init() to allocate some virtual channels.
SVN r1387 (trunk)
2009-02-01 04:10:36 +00:00
Randy Heit
b680840073 - Fixed clipping in D3DFB::DrawTextureV() for good by using a scissor test.
SVN r1386 (trunk)
2009-02-01 03:39:00 +00:00
Randy Heit
c09d9f0e20 - Fixed: D3DFB::DrawTextureV() did not properly adjust the texture coordinate
for lclip and rclip.


SVN r1384 (trunk)
2009-01-31 03:46:30 +00:00
Randy Heit
a21a928011 - Added weapdrop ccmd.
SVN r1383 (trunk)
2009-01-31 03:07:02 +00:00
Randy Heit
f3b6f25d88 - Centered the compatibility mode option in the comptibility options menu.
SVN r1382 (trunk)
2009-01-31 02:47:45 +00:00
Randy Heit
a7ffb9db6a - 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.



SVN r1381 (trunk)
2009-01-31 02:26:24 +00:00
Christoph Oelckers
40d740506d - Added Blzut3's statusbar maintenance patch.
SVN r1380 (trunk)
2009-01-30 22:37:55 +00:00
Christoph Oelckers
fb9601b9eb - 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

SVN r1376 (trunk)
2009-01-28 08:48:52 +00:00
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
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
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
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
Randy Heit
ef3b57fb8f - 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.


SVN r1307 (trunk)
2008-12-07 00:50:04 +00:00
Christoph Oelckers
fb75c46806 - fixed a typo in armor damage calculation code.
SVN r1306 (trunk)
2008-12-06 13:48:31 +00:00
Christoph Oelckers
153a2a4c2c - 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.


SVN r1304 (trunk)
2008-12-06 10:22:37 +00:00
Randy Heit
b692412a9e - Restored the multiplayer scoreboard's former centering so that it doesn't
look awful on widescreen intermissions. Also changed the column widths to
  be font-dependant rather than fixed proportions of the screen width.
- Fixed horizontal positioning of 'finished' on the Raven games when scaled.


SVN r1303 (trunk)
2008-12-02 02:23:05 +00:00
Christoph Oelckers
7f05277f2b - Fixed: 'finished' wasn't drawn on the intermission because the space
check compared scaled with unscaled coordinates.
- deleted some files only containing obsolete info from the docs folder.


SVN r1302 (trunk)
2008-11-30 17:57:25 +00:00
Christoph Oelckers
c3906850f7 - fixed: bucket in FTextureManager::AddTexture should be a signed int.
SVN r1301 (trunk)
2008-11-30 13:42:30 +00:00
Christoph Oelckers
3f2d5db348 - 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.


SVN r1300 (trunk)
2008-11-30 12:49:27 +00:00
Randy Heit
c35be830c3 - Fixed alignment of "finished" line in WI_drawLF() when the level name is a
graphic and scaled.


SVN r1299 (trunk)
2008-11-30 01:43:00 +00:00
Randy Heit
927c9532bf - 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.


SVN r1298 (trunk)
2008-11-30 01:37:11 +00:00
Christoph Oelckers
6b9129105a - 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.

- Fixed: compatf_limitpain must check for 21 Lost Souls, not 20.


SVN r1297 (trunk)
2008-11-29 16:37:54 +00:00
Randy Heit
cbe0c57911 - Removed S_MarkSoundChannels(), as it caused all non-actor sounds to
have their origins zeroed during collections.
- WI_drawLF() now draws the level name at the top of the screen, always.


SVN r1296 (trunk)
2008-11-27 18:46:09 +00:00
Randy Heit
ed6168ea92 - SBARINFO update:
* Fixed: disabling lowerHealthCap didn't affect interpolateHealth.

SVN r1295 (trunk)
2008-11-27 17:47:37 +00:00
Randy Heit
6e83d231fe - 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.


SVN r1294 (trunk)
2008-11-27 17:43:36 +00:00
Christoph Oelckers
904b59f266 - added a_fastprojectile.cpp to CMakeLists.txt
SVN r1291 (trunk)
2008-11-15 15:32:23 +00:00
Christoph Oelckers
4d991de92d - 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.


SVN r1290 (trunk)
2008-11-15 09:57:18 +00:00
Randy Heit
3b4479df44 - Removed GC barriers from the sound channels. If we must, we can always
do it the old way and scan every channel to see if it matches an actor/
  entchannel pair.
- 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.


SVN r1289 (trunk)
2008-11-15 01:01:04 +00:00
Randy Heit
9430001425 - Added one to return value of SDL_GetTicks() to ensure non-zeroness.
SVN r1288 (trunk)
2008-11-14 23:16:21 +00:00
Randy Heit
183b765cf2 - 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).


SVN r1287 (trunk)
2008-11-14 23:12:15 +00:00
Randy Heit
c1cefee2f4 - 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.


SVN r1286 (trunk)
2008-11-09 05:50:54 +00:00
Randy Heit
fb1af415f5 - Blzut3's latest SBARINFO patch.
SVN r1285 (trunk)
2008-11-09 05:19:27 +00:00
Christoph Oelckers
e56fef0a8e - Fixed: The TEXTURES parser didn't report an error for invalid keywords.
- Fixed: The DECORATE expression evaluator was too strict with missing jump labels.
  For compatibility it only may print a warning, not an error.


SVN r1284 (trunk)
2008-11-08 08:29:51 +00:00
Christoph Oelckers
f1ae8119ab - Fixed: FxClassTypeCast::Resolve didn't work for NULL classes because a variable
was not initialized.


SVN r1283 (trunk)
2008-10-29 16:13:05 +00:00
Christoph Oelckers
b5e085e562 - r1279's fix was not correct.
SVN r1282 (trunk)
2008-10-28 22:53:43 +00:00
Christoph Oelckers
edeed7673a - Fixed: The railgun attack functions still read their puff parameters as names
even though they are now passed as class pointers.


SVN r1281 (trunk)
2008-10-28 22:33:00 +00:00
Christoph Oelckers
feaa5c3653 - Fixed: The state parser counted one parameter too many for a varargs function.
SVN r1280 (trunk)
2008-10-28 18:10:02 +00:00
Christoph Oelckers
0e9c3a3e2b - Fixed: FStateExpressions could copy unresolved default parameter expressions.
When these were resolved and changed later all copied pointers pointed to
  invalid data.


SVN r1279 (trunk)
2008-10-28 15:58:00 +00:00
Christoph Oelckers
a8a3aca601 - Added read and write barriers to the actor pointer in the sound channel
structure.
- 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.


SVN r1278 (trunk)
2008-10-26 17:06:47 +00:00
Christoph Oelckers
226ca44939 - Fixed: A_Jump didn't properly determine a state's owner anymore when called
from weapons.


SVN r1277 (trunk)
2008-10-26 10:31:19 +00:00
Christoph Oelckers
d753d41752 - 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 DECORATE sound and color parameters to use expressions.
- 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.


SVN r1276 (trunk)
2008-10-25 17:38:00 +00:00
Christoph Oelckers
4c6b7f6752 - 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.

SVN r1275 (trunk)
2008-10-24 14:49:17 +00:00
Christoph Oelckers
b455227342 - 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.

SVN r1274 (trunk)
2008-10-21 18:10:50 +00:00
Christoph Oelckers
a4afe79f3d - Fixed GCC autoseg stuff for DECORATE variable initialization.
SVN r1273 (trunk)
2008-10-21 13:17:55 +00:00
Randy Heit
30ef6a0c2d - 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.


SVN r1272 (trunk)
2008-10-21 02:27:21 +00:00
Christoph Oelckers
b9afb78523 - 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.

SVN r1271 (trunk)
2008-10-19 21:43:36 +00:00
Randy Heit
633154d46f - Rewrote the SeePastShootableLines check in P_SightCheckLine() to be
more readable.


SVN r1270 (trunk)
2008-10-19 02:00:00 +00:00
Randy Heit
6aa72c84d6 - 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.


SVN r1269 (trunk)
2008-10-19 00:47:07 +00:00
Christoph Oelckers
75fd6085a5 - reordered parentheses in check for being able to see through shootable lines.
SVN r1268 (trunk)
2008-10-18 23:30:29 +00:00
Christoph Oelckers
fff3d9c228 - Fixed: FxRandom didn't properly initialize.
SVN r1267 (trunk)
2008-10-18 23:22:26 +00:00
Christoph Oelckers
8d5b595adc - GCC fixes for real this time
SVN r1266 (trunk)
2008-10-18 21:45:51 +00:00
Christoph Oelckers
2aac1bf053 - GCC fixes
SVN r1265 (trunk)
2008-10-18 20:41:51 +00:00
Christoph Oelckers
7312e6a621 - 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.


SVN r1264 (trunk)
2008-10-18 17:17:44 +00:00
Christoph Oelckers
bca1fc5068 - Fixed: The TEXTURES parser could copy beyond the end of a string when parsing
a 'define' definition.


SVN r1263 (trunk)
2008-10-14 07:57:16 +00:00
Randy Heit
738e8ca7ad - GCC warning removal.
* This may or may not be a problem, but GCC warned that FStateDefinitions::
    AddStateDefines() does not initialize def.FStateDefine::DefineFlags, so
    I fixed that.


SVN r1262 (trunk)
2008-10-14 03:21:53 +00:00
Randy Heit
8d4912f4af - 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.


SVN r1261 (trunk)
2008-10-14 01:56:28 +00:00
Randy Heit
86e650207d - The root CMakeLists.txt now explicitly sets the build type to Debug if you
don't tell it otherwise.
- src/CMakeLists.txt now searches for fmod.hpp instead of fmod.h.

SVN r1260 (trunk)
2008-10-14 01:28:04 +00:00
Randy Heit
cb159b26c2 - 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.


SVN r1259 (trunk)
2008-10-14 01:24:27 +00:00
Christoph Oelckers
c800d1ec2c - shouldn't have committed without testing...
SVN r1258 (trunk)
2008-10-07 21:03:21 +00:00
Christoph Oelckers
402d0e5fa1 - 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.


SVN r1257 (trunk)
2008-10-07 18:21:03 +00:00
Christoph Oelckers
7b82745665 - added dumpstates CCMD for debugging.
SVN r1256 (trunk)
2008-10-05 20:57:48 +00:00
Christoph Oelckers
0b120116ab - State parser fixes.
SVN r1255 (trunk)
2008-10-05 18:45:05 +00:00
Christoph Oelckers
2221ab5668 - 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.


SVN r1253 (trunk)
2008-10-05 11:23:41 +00:00
Christoph Oelckers
d9ab611db2 - Fixed: Powerup.Color's handler contained an unnecessary 'else' which resulted
in opaque powerup blends.

SVN r1252 (trunk)
2008-10-05 08:50:47 +00:00
Christoph Oelckers
1cf770271c - Fixed: Resurrecting a player didn't unset the RF_INVISIBLE flag which is
set when the player is crushed to gibs under a door.


SVN r1251 (trunk)
2008-10-04 07:45:54 +00:00
Christoph Oelckers
52ad2800d1 - Fixed: Dropitem gave incorrect amounts to the item if a probability was set.
SVN r1250 (trunk)
2008-09-28 07:23:15 +00:00
Christoph Oelckers
07e74419d5 - Fixed: weapon.ammogive2 always gave 2 amounts of ammo.
SVN r1249 (trunk)
2008-09-27 07:57:41 +00:00
Christoph Oelckers
dd49574325 SVN r1248 (trunk) 2008-09-27 07:11:38 +00:00
Christoph Oelckers
b21d837b5a - Fixed: player.colorrange didn't read the parameters correctly.
- Reverted an 'optimization' in d_dehacked.cpp that didn't work.


SVN r1247 (trunk)
2008-09-24 23:22:55 +00:00
Christoph Oelckers
ec1cfdd236 - Fixed: Old style decorations forgot all inherited states when installing their labels.
SVN r1246 (trunk)
2008-09-23 19:14:50 +00:00
Christoph Oelckers
3e291cf528 - Liux compile fixes.
SVN r1245 (trunk)
2008-09-23 07:46:23 +00:00
Christoph Oelckers
1cbaa24f96 - last commit was missing one file.
SVN r1244 (trunk)
2008-09-22 20:42:11 +00:00
Christoph Oelckers
954955c5a5 - 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.


SVN r1243 (trunk)
2008-09-22 18:55:29 +00:00
Christoph Oelckers
b523ebd2a7 - Removed debug output.
- One line of code was accidentally deleted for last commit.

SVN r1242 (trunk)
2008-09-22 07:30:37 +00:00
Christoph Oelckers
8a79985f46 - did some code cleanup and reorganization in thingdef.cpp.
- Replaced the translation parser for TEXTURES with FRemapTable::AddToTranslation.


SVN r1241 (trunk)
2008-09-21 22:25:23 +00:00
Christoph Oelckers
6227906072 - 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.

SVN r1240 (trunk)
2008-09-21 18:02:38 +00:00
Randy Heit
2b16b99f4d - Fixed: The Timidity config parser always tried to process the note number,
even if it wasn't specified.


SVN r1239 (trunk)
2008-09-21 02:46:53 +00:00
Randy Heit
dab73198fa - 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.


SVN r1238 (trunk)
2008-09-20 03:08:54 +00:00
Christoph Oelckers
d88e960bb9 - Fixed: The crosshair must be initialized after the texture manager because
on the fly texture creation for graphics patches is no longer supported.


SVN r1237 (trunk)
2008-09-19 22:34:32 +00:00
Christoph Oelckers
b2b81fc8ad Linux compile fixes.
SVN r1236 (trunk)
2008-09-19 07:10:14 +00:00
Christoph Oelckers
71dd0d0269 - another #include fix for Linux.
- Added a 'logarithmic' parameter to S_GetRolloff.


SVN r1235 (trunk)
2008-09-18 21:00:12 +00:00
Christoph Oelckers
4ecb892df3 Fixed: sdl/i_input.cpp must include d_event.h.
SVN r1234 (trunk)
2008-09-18 06:57:51 +00:00
Randy Heit
5617db8dba - Fixed: Game files that were excluded from building in r1226 were still included for x64 configurations. (Though I honestly don't notice a difference in compiling time with VC++. GCC, yes, but GCC is still slow--thank goodness for parallel makes and now-commonplace multicore processors.)
SVN r1233 (trunk)
2008-09-17 20:51:15 +00:00
Randy Heit
00b21e4b96 - Apparently, YASM is not a suitable substitute for NASM when doing Win32 builds.
- Removed extraneous printf parameter for Texman.Init startup message.
- Added newlines to the ends of a few headers that were missing them.
- Fixed more GCC errors/warnings.

SVN r1232 (trunk)
2008-09-17 20:24:08 +00:00
Randy Heit
9802278357 - Fixed: src/CMakeLists.txt was broken for 32-bit MinGW Makefiles builds.
SVN r1231 (trunk)
2008-09-17 19:54:12 +00:00
Christoph Oelckers
3637c878cd - 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.


SVN r1230 (trunk)
2008-09-17 00:14:33 +00:00
Christoph Oelckers
0e98244df2 . fixed an uninitialized variable in sound code.
SVN r1229 (trunk)
2008-09-15 23:40:13 +00:00
Christoph Oelckers
d1f8518a79 - Separated low level sound code from all high level dependencies.
SVN r1228 (trunk)
2008-09-15 18:18:04 +00:00
Christoph Oelckers
5d9483b632 - 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.


SVN r1227 (trunk)
2008-09-15 16:02:05 +00:00
Christoph Oelckers
760f70d3f1 - 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 more header dependencies.

SVN r1226 (trunk)
2008-09-15 14:11:05 +00:00
Christoph Oelckers
b07542ddd6 More header cleanup.
SVN r1225 (trunk)
2008-09-15 00:47:31 +00:00
Christoph Oelckers
db5723997c - Cleaned up some include dependencies.
SVN r1224 (trunk)
2008-09-14 23:54:38 +00:00
Christoph Oelckers
c86ca5e891 - fixed: For Chex Quest some CVars were initialized to Heretic's default.
SVN r1223 (trunk)
2008-09-14 10:28:20 +00:00
Christoph Oelckers
2cad1c2c19 - 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.


SVN r1221 (trunk)
2008-09-13 22:08:41 +00:00
Christoph Oelckers
f625b92704 - CQ3 detection was broken.
SVN r1220 (trunk)
2008-09-13 21:02:29 +00:00
Christoph Oelckers
2c74e287a9 - 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.



SVN r1219 (trunk)
2008-09-13 19:19:53 +00:00
Christoph Oelckers
90e3bef2ab - Fixed: Crouching no longer worked due to a bug introduced by the
player input code.


SVN r1218 (trunk)
2008-09-13 07:22:13 +00:00
Randy Heit
5cd4604f81 - 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.

  See http://zdoom.org/files/examples/playerinput.zip for an example.


SVN r1215 (trunk)
2008-09-13 02:55:45 +00:00
Randy Heit
4ffa924929 - 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.


SVN r1213 (trunk)
2008-09-12 01:12:40 +00:00
Randy Heit
f08e2949dc - 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.


SVN r1212 (trunk)
2008-09-12 00:04:15 +00:00
Christoph Oelckers
e18111ce5f - added 2 SBARINFO patches.
SVN r1211 (trunk)
2008-09-10 23:16:26 +00:00
Randy Heit
d22f3ebfa6 - 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.


SVN r1210 (trunk)
2008-09-10 03:33:02 +00:00
Christoph Oelckers
d02097976e - Fixed: The new rolloff values being stored in FSoundChan need to be serialized
for savegames.


SVN r1209 (trunk)
2008-09-09 21:23:09 +00:00
Christoph Oelckers
e033cbf9f8 - 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.


SVN r1208 (trunk)
2008-09-09 20:49:53 +00:00
Christoph Oelckers
5ad25e5d07 - Changed rules for picking rolloff info to be the same as for the NearLimit.
SVN r1207 (trunk)
2008-09-09 09:31:41 +00:00
Christoph Oelckers
3b35ad2db2 - 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.



SVN r1206 (trunk)
2008-09-09 09:22:47 +00:00
Christoph Oelckers
6766f47801 - Added missing Strife automap colors for items and non-monsters.
SVN r1204 (trunk)
2008-09-07 20:46:11 +00:00
Christoph Oelckers
2df65c70cb - Fixed: GetMSLength didn't resolve random and player sounds.
- Moved sound aliasing code out of fmodsound.cpp into S_LoadSound.


SVN r1203 (trunk)
2008-09-07 14:45:50 +00:00
Christoph Oelckers
9e7bd3f8fa - 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.


SVN r1202 (trunk)
2008-09-06 18:09:41 +00:00
Christoph Oelckers
87f0ba0bd2 - Changed listener structure to directly contain the sound environment instead
of getting it from the zone in the low level code.


SVN r1201 (trunk)
2008-09-06 13:00:23 +00:00
Christoph Oelckers
bcbd2162b7 - 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.


SVN r1200 (trunk)
2008-09-06 11:07:27 +00:00
Randy Heit
535f7d92ba - Added the "extended" keyword for episode definitions to define episodes
that are only available in the extended version of Heretic.


SVN r1199 (trunk)
2008-09-06 04:03:53 +00:00
Randy Heit
ee6c208917 - Added hexendemo.wad and hexdemo.wad as aliases for the demo Hexen IWAD.
- Added IWAD checks for freedoom1.wad and freedm.wad.


SVN r1198 (trunk)
2008-09-06 03:39:36 +00:00
Randy Heit
b77836d4cf - 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.


SVN r1197 (trunk)
2008-09-06 03:03:11 +00:00
Randy Heit
ab3363dc1e - Fixed: The "same level" dmflag did not work.
- Changed the nextlevel global var to an FString.


SVN r1196 (trunk)
2008-09-05 02:55:44 +00:00
Randy Heit
fae19e87b7 - 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)


SVN r1195 (trunk)
2008-09-05 02:04:50 +00:00
Christoph Oelckers
49565ccb84 - 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.

SVN r1194 (trunk)
2008-09-04 14:09:32 +00:00
Christoph Oelckers
b2bbdb9e4c - fixed Chex Quest ending screen.
SVN r1193 (trunk)
2008-09-01 21:34:09 +00:00
Christoph Oelckers
f84ededfba - fixed last commit.
- added more spawn filters.


SVN r1192 (trunk)
2008-09-01 19:56:32 +00:00
Christoph Oelckers
9df27c7afd - 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.


SVN r1191 (trunk)
2008-09-01 19:45:17 +00:00
Christoph Oelckers
8832b66ce4 - 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.


SVN r1190 (trunk)
2008-09-01 18:16:53 +00:00
Christoph Oelckers
dbcc246cf3 - Added Blzut3's patch for a real Chex Quest game mode.
SVN r1188 (trunk)
2008-08-30 19:44:19 +00:00
Christoph Oelckers
3801b9431a - 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_.


SVN r1186 (trunk)
2008-08-29 08:48:51 +00:00
Christoph Oelckers
6a3b4a6c4d - 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.



SVN r1185 (trunk)
2008-08-26 18:32:17 +00:00
Randy Heit
4d56889483 - Added Win64 support to the crash report generator.
SVN r1184 (trunk)
2008-08-24 04:51:15 +00:00
Christoph Oelckers
3638c658d6 - 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.
- Added a traditional Strife color set for the automap.


SVN r1183 (trunk)
2008-08-23 08:48:19 +00:00
Randy Heit
0e5587812e - 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.


SVN r1182 (trunk)
2008-08-23 02:38:00 +00:00
Christoph Oelckers
39bb50376a - Fixed: The conversion of the strings in wbstartstruct_t to FStrings
caused crashes when reloading the hub data.


SVN r1181 (trunk)
2008-08-21 19:06:17 +00:00
Christoph Oelckers
76cb09d546 - 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.


SVN r1179 (trunk)
2008-08-21 08:04:21 +00:00
Christoph Oelckers
f64862fe75 - 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.


SVN r1178 (trunk)
2008-08-21 07:08:55 +00:00
Christoph Oelckers
30685c3a74 - Added Gez's patch for removing MF4_FIRERESIST.
SVN r1177 (trunk)
2008-08-19 19:38:39 +00:00
Christoph Oelckers
371d4704b8 (SBARINFO patch)
- Fixed: DrawBar would not show.
- Fixed: IsSelected took string constants instead of identifiers.

SVN r1176 (trunk)
2008-08-18 19:01:14 +00:00
Christoph Oelckers
774e559eaf - Last commit was incomplete.
SVN r1175 (trunk)
2008-08-16 20:47:41 +00:00
Christoph Oelckers
bc5d0c882b - Put more floor/ceiling properties in sector_t into a substructure and
added wrapper functions.


SVN r1174 (trunk)
2008-08-16 20:19:35 +00:00
Christoph Oelckers
fcdef6a0de - Fixed: A_Explode wants the distance parameter as an int, not a fixed_t.
- some minor DECORATE fixes.


SVN r1173 (trunk)
2008-08-16 08:11:39 +00:00
Christoph Oelckers
e54c7f6e46 - Fixed: The count parameter of A_Jump is a constant, not an expression.
SVN r1171 (trunk)
2008-08-14 22:58:17 +00:00
Christoph Oelckers
61cbb1d2e1 - 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.


SVN r1170 (trunk)
2008-08-14 19:08:38 +00:00
Christoph Oelckers
f3922ec6a1 - 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.


SVN r1169 (trunk)
2008-08-14 08:52:55 +00:00
Christoph Oelckers
1c034c1150 - 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.


SVN r1168 (trunk)
2008-08-13 22:54:24 +00:00
Christoph Oelckers
4fd717046e - 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.


SVN r1166 (trunk)
2008-08-13 09:11:19 +00:00
Christoph Oelckers
3cb073a3a0 - Fixed: The chat sound for Strife was misnamed in the gameinfo structure.
- fixed a few DECORATE bugs.


SVN r1165 (trunk)
2008-08-12 23:00:48 +00:00
Christoph Oelckers
65a19e4be7 - 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'.


SVN r1164 (trunk)
2008-08-12 20:19:47 +00:00
Christoph Oelckers
1957659b1b - Restructured the action function interface to remove the dependence on
the global CallingState variable.


SVN r1163 (trunk)
2008-08-12 14:30:07 +00:00
Christoph Oelckers
b1d36182c4 - 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.
- removed unneeded file dehackedactions.h


SVN r1162 (trunk)
2008-08-12 09:57:59 +00:00
Randy Heit
765ccd0100 - Remove Valgrind macros from the (Win64-only) asm_x86_64/tmap3.asm
SVN r1161 (trunk)
2008-08-12 03:20:50 +00:00
Randy Heit
942c8f5e87 - SBARINFO patch: "Apparently my attempts to reduce copy and paste failed." -- Blzut3
SVN r1160 (trunk)
2008-08-12 03:19:35 +00:00
Randy Heit
c9187a0e09 - 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 I would need to read to figure out
  how to construct it by hand. Unfortunately, this now means I have to
  maintain two versions of exactly the same code. :( (But unless I add 32-bit
  color rendering in the future, the chances that I will have to touch it
  again are quite slim.)



SVN r1159 (trunk)
2008-08-12 02:49:00 +00:00
Christoph Oelckers
9e4b2fb3ec Fixed: The fix for GCC warnings in PowerupDuration would have caused incorrect error messages in case of incorrect use.
SVN r1158 (trunk)
2008-08-11 23:16:37 +00:00
Randy Heit
f40d52c22a - Remove some GCC warnings.
SVN r1157 (trunk)
2008-08-11 22:42:38 +00:00
Randy Heit
a876ba55bd - Fixed: src/CMakeLists.txt did not pass -DNOASM to the compiler when assembly
is disabled.



SVN r1156 (trunk)
2008-08-11 22:29:09 +00:00
Christoph Oelckers
c02253eef2 - Removed 'eval' modifier from DECORATE. All int, float and bool parameters are
'eval' now by default.


SVN r1155 (trunk)
2008-08-11 22:28:14 +00:00
Christoph Oelckers
81132c809f - DECORATE related Hexen fixes.
SVN r1153 (trunk)
2008-08-11 19:18:48 +00:00
Christoph Oelckers
d533f839dd - fixed statejump bug in Minotaur.
SVN r1152 (trunk)
2008-08-11 10:02:24 +00:00
Christoph Oelckers
511c9366f7 - Macro-fied all access to action functions.
SVN r1149 (trunk)
2008-08-10 22:48:37 +00:00
Christoph Oelckers
1983b5c586 - 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.


SVN r1148 (trunk)
2008-08-10 20:48:55 +00:00
Christoph Oelckers
3dbebcb794 - deleted infodefaults.cpp from CMakeLists.txt
SVN r1147 (trunk)
2008-08-10 15:05:49 +00:00
Christoph Oelckers
f4c07c45ec - 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.


SVN r1146 (trunk)
2008-08-10 14:19:47 +00:00
Christoph Oelckers
9b58c5ebbd - Converted the Heresiarch to DECORATE.
SVN r1145 (trunk)
2008-08-10 12:06:18 +00:00
Christoph Oelckers
5ea4b37373 - 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.


SVN r1144 (trunk)
2008-08-10 11:29:19 +00:00
Randy Heit
9ad93639c5 - Changed Windows to use the performance counter instead of rdtsc.
SVN r1143 (trunk)
2008-08-10 03:56:53 +00:00
Randy Heit
ad96225213 - Changed Linux to use clock_gettime for profiling instead of rdtsc. This
avoids potential erroneous results on multicore and variable speed
  processors. Windows will need to be updated accordingly.



SVN r1142 (trunk)
2008-08-10 03:25:08 +00:00
Christoph Oelckers
fd2c0b82ef REverted anti-x86.cpp changes.
SVN r1141 (trunk)
2008-08-09 22:46:25 +00:00
Randy Heit
ef4ec7ed95 Forgot x86.cpp.
SVN r1140 (trunk)
2008-08-09 22:25:43 +00:00
Christoph Oelckers
520a40f0bf - GCC fixes.
SVN r1139 (trunk)
2008-08-09 22:10:41 +00:00
Christoph Oelckers
023b21a142 - Converted the last of Hexen's inventory items to DECORATE so that I could
export AInventory.
- Added some DECORATE fixes by Gez.

SVN r1138 (trunk)
2008-08-09 17:43:14 +00:00
Christoph Oelckers
ae54e13428 IMPORTANT NOTE: I uncommented some code depending on the missing x86.cpp file to allow this to compile, These changes must be reverted as soon as this file is added (see v_palette.cpp and win32/i_system.cpp.)
- 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.


SVN r1137 (trunk)
2008-08-09 11:35:42 +00:00
Randy Heit
67c844df4d - Added Gez's Freedoom detection patch.
SVN r1136 (trunk)
2008-08-09 04:32:56 +00:00
Randy Heit
85a6ae7c34 - 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.


SVN r1135 (trunk)
2008-08-09 03:43:29 +00:00
Randy Heit
dda5ddd3c2 - 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.
- 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.
- 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.


SVN r1134 (trunk)
2008-08-09 03:13:43 +00:00
Christoph Oelckers
14e94b86e2 - Replaced the ActorInfo definitions of several internal classes with DECORATE definitions
SVN r1133 (trunk)
2008-08-08 22:52:04 +00:00
Christoph Oelckers
ef2c9243c5 - 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.


SVN r1132 (trunk)
2008-08-08 19:47:18 +00:00
Christoph Oelckers
bd50321357 - Exported Point pushers, CustomSprite and AmbientSound to DECORATE.
SVN r1131 (trunk)
2008-08-08 16:16:40 +00:00
Christoph Oelckers
e010561088 - 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.


SVN r1130 (trunk)
2008-08-08 15:18:23 +00:00
Christoph Oelckers
b695330e90 - 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.


SVN r1129 (trunk)
2008-08-08 10:24:08 +00:00
Christoph Oelckers
6ab69165c7 - Added more DECORATE conversions by Karate Chris.
SVN r1128 (trunk)
2008-08-08 07:40:41 +00:00
Christoph Oelckers
f442e75dfa SVN r1127 (trunk) 2008-08-07 23:11:57 +00:00
Christoph Oelckers
6b3325b358 - 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.


SVN r1126 (trunk)
2008-08-07 20:16:07 +00:00
Christoph Oelckers
0e009ff18a - 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.


SVN r1125 (trunk)
2008-08-07 17:45:35 +00:00
Christoph Oelckers
269a54a258 - Added more DECORATE conversions by Karate Chris.
SVN r1124 (trunk)
2008-08-07 15:46:52 +00:00
Christoph Oelckers
0ad1bfe87e - 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.


SVN r1123 (trunk)
2008-08-07 08:18:48 +00:00
Christoph Oelckers
344f1072a6 - Fixed. The Firedemon was missing a game filter.
SBARINfO update:
- Added: disablegrin, disableouch, disablepain, and disablerampage flags to
  drawmugshot.
- Fixed: LowerHealthCap did not work properly.
- Fixed: Various bugs I noticed in the fullscreenoffsets code.

SVN r1122 (trunk)
2008-08-07 07:17:29 +00:00
Christoph Oelckers
535f209560 - Converted Strife's Programmer, Loremaster and Thingstoblowup to DECORATE.
- Fixed: Attacking a merchant in Strife didn't alert the enemies.


SVN r1121 (trunk)
2008-08-06 22:59:24 +00:00
Christoph Oelckers
bf281a4372 - 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.


SVN r1120 (trunk)
2008-08-06 19:25:59 +00:00
Randy Heit
d7d07aad16 - It's good if I make sure my changes are actually compiled in, huh?
SVN r1119 (trunk)
2008-08-06 18:41:55 +00:00
Randy Heit
efb8ffc459 - The x87 precision control is now explicitly set for double precision, since
GCC defaults to extended precision instead, unlike Visual C++.
- Removed the useless src/Linux directory from the repository. This was a
  holdover from the long-gone 1.22 build system.



SVN r1118 (trunk)
2008-08-06 18:26:25 +00:00
Christoph Oelckers
c8538efda9 - 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.


SVN r1117 (trunk)
2008-08-06 17:49:22 +00:00
Christoph Oelckers
3908c71510 (SBARINfO update)
- 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.


SVN r1116 (trunk)
2008-08-06 07:38:21 +00:00
Randy Heit
3700fda0e8 - Added newlines to the ends of two files that lost theirs.
SVN r1115 (trunk)
2008-08-05 23:45:03 +00:00
Christoph Oelckers
4f0fa50773 - Converted Strife's Crusader, Inquisitor and spectral missiles to
DECORATE.


SVN r1114 (trunk)
2008-08-05 22:51:51 +00:00
Christoph Oelckers
fe2e64aa40 - Converted Strife's Acolytes, Rebels, Sentinel, Reaver and Templar to
DECORATE.


SVN r1113 (trunk)
2008-08-05 17:58:38 +00:00
Christoph Oelckers
43715c5249 - 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.


SVN r1112 (trunk)
2008-08-05 16:04:37 +00:00
Christoph Oelckers
4a9e70f1d2 - Converted the ScriptedMarines to DECORATE.
- Fixed: DLightTransfer and DWallLightTransfer were declared as actors.

SVN r1111 (trunk)
2008-08-05 13:50:57 +00:00
Christoph Oelckers
d5cc9e01d0 - Converted the PhoenixRod and associated classes to DECORATE to make
the Heretic conversion complete.


SVN r1110 (trunk)
2008-08-04 22:30:45 +00:00
Christoph Oelckers
b2a6bed19f - 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.


SVN r1109 (trunk)
2008-08-04 19:25:13 +00:00
Christoph Oelckers
cc99d150a3 - Added more DECORATE conversions by Karate Chris.
SVN r1108 (trunk)
2008-08-03 19:42:24 +00:00
Christoph Oelckers
affd0e5034 - 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.


SVN r1107 (trunk)
2008-08-03 19:10:48 +00:00
Christoph Oelckers
11fbfc5b1f - Added more DECORATE conversions by Karate Chris.
SVN r1106 (trunk)
2008-08-03 16:13:23 +00:00
Christoph Oelckers
bf0ee1342c - 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.


SVN r1105 (trunk)
2008-08-03 12:00:36 +00:00
Randy Heit
9f21b22cc5 - 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.



SVN r1104 (trunk)
2008-08-03 03:54:48 +00:00
Christoph Oelckers
8d3e67ac88 - Added Gez's submission for custom bridge things.
- Fixed: ASpecialSpot must check the array's size before dividing by it.


SVN r1103 (trunk)
2008-08-02 16:17:19 +00:00
Christoph Oelckers
76a0086744 - Fixed: The mugshot drawe ignored the accuracy parameter.
- Fixed: The Alt HUD's weapon drawer didn't check properly for invalid icons.


SVN r1102 (trunk)
2008-08-02 10:51:00 +00:00
Christoph Oelckers
fddf69e950 - Added DECORATE conversions for Hexen's Cleric Mace, Firedemon and fog by
Karate Chris.
- 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.


SVN r1101 (trunk)
2008-08-02 08:38:07 +00:00
Randy Heit
bb0759f575 - Fixed: Attempting to load 0-length sounds caused a crash.
SVN r1100 (trunk)
2008-07-31 23:09:58 +00:00
Randy Heit
35b40534fe - Fixed: The ouch face fix was lost when SBARINFO mugshot became the only
mugshot present.


SVN r1098 (trunk)
2008-07-31 18:51:15 +00:00
Randy Heit
21a7564c98 - Fixed: Mace SpawnID was assigned to the MacePowered actor instead.
- Fixed: Sorcerer2FX1's SpawnID was not restricted to Heretic.


SVN r1097 (trunk)
2008-07-31 18:08:30 +00:00
Randy Heit
ff2680baa9 - Removed new warning when using CMake 2.6.
- Fixed compilation of snes_spc on GCC <4.3.
- Fixed compilation of zstring.h on 32-bit MinGW, where SIZE_MAX
  and UINT_MAX are not considered identical by the preprocessor.

SVN r1096 (trunk)
2008-07-31 17:13:21 +00:00
Randy Heit
e15416dc71 - Applied Blzut3's 5:4 SBARINFO patch. (At least I think that's what it's
for.)



SVN r1095 (trunk)
2008-07-25 02:36:25 +00:00