Commit graph

159 commits

Author SHA1 Message Date
Christoph Oelckers
088dfb6655 Update to ZDoom r2005:
- fixed: Morph weapons weren't destroyed because the code checked for 
  them in the unmorphed player class.
- fixed: With padding the largest texture to fit into a page is 254x254.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@638 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-28 07:49:53 +00:00
Christoph Oelckers
964d7d4c8a - Update to ZDoom r2002:
- Make the palette indexes used by FRemapTable subject to the global remap
  table, just as the images they translate are.
- Added MF4_ALLOWPARTICLES checks to blood spawning code.
- Fixed: EV_DoDonut, EV_DoElevator and EV_StartWaggle did not to any 0-tag
  checks.
- Fixed: Doom line type 44 (lower ceiling to 8 above floor) must halt
  movement if blocked which essentially means it acts like a Hexen-style
  crusher.
- Fixed: Not all places checking for player start spots did it correctly.
  The editor number for player start spot 5 is now stored in the game info
  so that there's only one place where this check needs to be done.
- Fixed: WIF_NOAUTOAIM only worked for projectiles.
- Added Windows 7 (aka Windows NT 6.1) and Server 2008 identification to
  I_DetectOS().
- Fixed: ArtiPork did not use all its sprite frames.
- Fixed: FWadCollection::AddFile() did not call FixPathSeperator(), so
  savegames would hold the full file path for wads that had been specified
  with backslash characters, because GetWadName() would not trim off the
  path.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@636 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-26 23:03:27 +00:00
Christoph Oelckers
38b5ba87cd - got rid of several redundant conversion macros in the GL code. It uses the defaults from the main engine now.
- Update to ZDoom r1991:

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


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@632 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-20 09:47:15 +00:00
Christoph Oelckers
4b8fd2c254 - version bump.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@629 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-18 17:21:27 +00:00
Christoph Oelckers
9b4f7c5ea7 Update to ZDoom r1986:
- fixed: P_NowayTraverse was called with a trace distance of 128 instead of
  the 64 that should have been used.
- reverted the change that makes 0-damage projectiles call P_DamageMobj.
  Both Hexen and Heretic depend on such projectiles not doing it as do many
  mods that create snow/rain effects plus any terrain splash mod.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@627 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-17 23:24:59 +00:00
Christoph Oelckers
65312800bb - fixed: The shader compile code passed the #defines only to the fragment shader but not to the vertex shader.
- fixed: The sky offset for textures needs to be initialized to 0.
- update to ZDoom r1982


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@624 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-15 09:47:42 +00:00
Christoph Oelckers
5ebc18b0fc - complete overhaul of sky positioning code to make it work for all sizes >= 200.
- added skyrotatevector2.
- Update to ZDoom r1976



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@622 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-13 17:09:50 +00:00
Christoph Oelckers
240f21d0de - added a few glMatrixMode(GL_MODELVIEW) commands to the flat rotation code
to ensure that the matrix mode does not get stuck at GL_TEXTURE.

Update to ZDoom e1962:

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



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@604 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-04 07:29:25 +00:00
Christoph Oelckers
e339d60d38 - version bump
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@603 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-03 21:40:16 +00:00
Christoph Oelckers
b65d715799 - added external declaration for vid_vsync to gl_framebuffer.cpp.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@599 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-02 07:53:09 +00:00
Christoph Oelckers
796418b8f6 - version bump
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@597 b0f79afe-0144-0410-b225-9a4edf0717df
2009-11-01 18:16:19 +00:00
Christoph Oelckers
99ad961647 - Update to ZDoom r1954:
- Fixed: Sprites and decals that are drawn with addition must fade to black.
- Make TranslateToStartSpot() set the new sector references for a polyobj's
  walls so that P_CheckSwitchRange() will work with them.
- Fixed: An unspecified save_dir will now save to the program directory on
  Windows. (Other operating systems already use the user's home directory
  instead.)
- Fixed: S_EvictAllChannels() must replace the channel's start time with its
  position when evicting sounds, because restarting the sound system causes
  the DSP clock to restart at 0, so start times that were recorded before
  the reset are no longer applicable after the reset.
- Fixed: S_StopChannel() always set the channel's actor to NULL, eliminating
  origin information when resetting the sound system.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@586 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-30 11:18:39 +00:00
Christoph Oelckers
9e2ef91806 Update to ZDoom r1947:
- Added Gez's patch for IWAD detection of Blasphemer and Action Doom 2.
- Fixed: 0 damage projectiles did not call P_DamageMobj.
- Fixed: Do not exit P_DamageMobj early if damage is 0, so we can still get
  the side effects from it. PainThreshold also needs to be inclusive, as
  the docs already state.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@583 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-29 06:43:20 +00:00
Christoph Oelckers
0a8ac6a153 - added: DECORATE now allows definitions of dynamic light attachments per state.
These are fully inheritable by subclasses unlike lights defined in GLDEFS.
  The light itself still needs to defined the old way in GLDEFS though. It's only the 
  attachment that can now be done in DECORATE.

Update to ZDoom r1935:

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


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@577 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-25 15:31:09 +00:00
Christoph Oelckers
66118119ec - version bump
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@566 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-19 20:20:45 +00:00
Christoph Oelckers
e530a50a29 Update to ZDoom r1927:
- Fixed: 3DMidtex checks were treating the Null texture as a valid texture.
- Fixed: The rail sound's position was not clamped to the actual range between
  the trail's start and end point.
- Fixed: Explosions no longer caused splashes.
- Fixed: Copying translations to lower decals had the shade color check wrong.
- Fixed: Waggling floors did not moved attached geometry.
- Cleaned up p_floor.cpp so that related parts of the code are grouped together.
- fixed: The translation addition broke parsing of palette index based translations.



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@554 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-17 16:33:44 +00:00
Christoph Oelckers
a38fdfb569 - improved underwater lighting for sprites.
- fixed: The translation addition broke parsing of palette index based translations.
- fixed: Fullbright application for weapons did not clear the light color.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@553 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-17 07:44:31 +00:00
Christoph Oelckers
daf0e06890 Update to ZDoom r1921:
- added 'defaultterrain' option to terrain parser for mods that want to have
  a different default terrain than a generic solid surface.
- added format char processing to A_Print(Bold) and all printable messages
  that can be defined in DECORATE.
- Fixed: The railgun code ignored MF3_ALWAYSPUFF.
- added desaturated translations.
- added optional state parameters to A_ReFire and A_GunFlash and A_CountdownArg.
- added ACS CheckActorClass function
- fixed: When a blasted actor collided with another one this other actor's
  DONTBLAST flag was not checked.
- added a global DamageFactor actor property. All damage this actor takes is multiplied
  by this factor in addition to damage type specific damage factors.
- added better earthquake functions for ACS and DECORATE.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@549 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-16 16:17:24 +00:00
Christoph Oelckers
8268f773b1 Update to ZDoom r1909:
- Added MF6_NOTRIGGER flag that disables all line actions for an actor.

Also added the missing wadsrc files for last update.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@541 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-11 20:05:18 +00:00
Christoph Oelckers
33a4058533 Update to ZDoom r1905:
- Added Gez's seeker missile submission.
- Added Gez's thing activation submission.
- added a NULL pointer check to fog spawning in unmorphing code.
- fixed: frozen corpses need to be treated as solid by z-movement code.
- fixed: AAmbientSound::Serialize was adjusting its timer value for savegames
  even when it was set to a 'don't check' value.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@539 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-10 11:37:36 +00:00
Christoph Oelckers
cbeab447fd - Added a PainThreshold actor property.
- fixed: Teleport_EndGame did not set the end sequence name properly.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@537 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-08 20:27:18 +00:00
Christoph Oelckers
74cb8e98fd - changed dynamic light parser for the GetReplacement fix.
- fixed GL textures menu.

Update to ZDoom r1894:

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


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@517 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-03 17:08:39 +00:00
Christoph Oelckers
2a14e24d23 Update to ZDoom r1893:
- fixed: Savegames stored the global fixed light levels when saving a player.



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@515 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-03 08:35:53 +00:00
Christoph Oelckers
947148c6d7 - Update to ZDoom r1991:
- Fixed some GCC warnings.
- fixed: The BossCube could be blocked by floors and ceiling resulting
  in incorrect movement. I changed it so that A_BrainSpit now sets the
  MF5_NOINTERACTION flag for anything it spawns that has the MF_NOCLIP
  flag. For travelling cubes active collision detection makes no sense
  and only causes problems. This should also make the boss brain
  work in the other games which previously were excluded by a game mode
  check in the movement code.
- fixed: ACS's GetUserVariable did not work for the script activator.
- fixed: Moving floors could be blocked by 2 actors without MF2_PASSMOBJ
  overlapping each other (common mapping bug, check Herian 2 MAP30.)



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@507 b0f79afe-0144-0410-b225-9a4edf0717df
2009-10-01 21:04:23 +00:00
Christoph Oelckers
6939699f5f Update to ZDoom r1889:
- Fixed: Coordinate handling for multipatch texture compositing was not correct
  for true color. Instead of using a clipping rectangle on the destination it
  tried to alter the source offsets which produced incorrect results for
  mirrored or rotated patches.
- Fixed: Alt+F4 no longer quit the program.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@504 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-30 10:44:41 +00:00
Christoph Oelckers
bfc2102ac7 - Update to ZDoom r1887.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@499 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-28 22:53:23 +00:00
Christoph Oelckers
1732827ed1 - Update to ZD00m r1869:
* ported recent colormap changes to GL renderer

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@472 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-22 12:51:23 +00:00
Christoph Oelckers
139baf158e - added custom colormap support for DECORATE items.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@471 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-21 20:54:52 +00:00
Christoph Oelckers
4e442c49d2 - Update to ZDoom r1859 including adjustments for all the changes that were only made for the software renderer.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@467 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-20 20:51:32 +00:00
Christoph Oelckers
c479661f73 - deleted the unfinished new flat rendering code because it offered no advantages over the old version.
- Renamed plane flags from SECF_* to PLANEF_*.
- Changed Heretic's plat raise type to use a flag to block further sector movement
  instead of keeping the dead thinker around to block the sector.


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

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@458 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-16 21:17:17 +00:00
Christoph Oelckers
57ec0763dd - Update to ZDoom r1837:
- added PinkSilver's A_Respawn enhancement patch.
- added RandomSpawner update from Gez's experimental build.
- added thing activation types for BUMPSPECIAL and USESPECIAL. Also added
  a new ClearSpecial flag to the activation type.
- added MBF's code for dogs jumping down, controlled by the MF6_JUMPDOWN
  flag.


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

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


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@450 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-10 22:20:46 +00:00
Christoph Oelckers
e51b5e01d1 - fixed: Trying to pick up an object of the Ammo base class caused a crash.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@447 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-06 21:37:38 +00:00
Christoph Oelckers
44fcd47cdf - changed line_t's sidenum into sidedef pointers.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@445 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-06 21:11:24 +00:00
Christoph Oelckers
e213c8a39f Update to ZDoom r1799:
- Added PinkSilver's SetActorVelocity code submission (with optimizations.)
- Added the frandom decorate function, which is exactly like random except
  that it works with floating point instead of integers.
- Split the bounce types completely into separate flags and consolidated
  the various bounce-related flags spread across the different Actor flags
  field into a single BounceFlags field.
- Fixed: P_BounceWall() should calculate the XY velocity using a real
  square root and not P_AproxDistance(), because the latter can cause
  them to speed up or slow down.
- made menu dimming a mapping option but kept the CVARS as user override.
- Fixed: R_CreatePlayerTranslation() only initialized the first truecolor
  palette entry.
- Fixed: D3DPal::Update() used BorderColor == 0 as the condition for skipping
  an entry. It should be SM14 as in UploadPalette().
- Fixed: The aliasing of CPUInfo was still wrong. (Yarr! The things I do
  for you, GCC!) The AMD feature flags weren't stored anywhere, either; not
  that it really matters.
- Add an alternate PIC-compliant __cpuid macro in x86.cpp.
- Fixed: S_LoadSound() did not byte-swap the frequency and length it reads
  from DMX sounds.
- Fixed: PNGTexture must not use the FArchive >> operator as a short hand
  for reading 4-byte integers, because that operator works with little
  endian numbers--a no-op on Intel processors, but bad joojoo on PowerPCs.
- fixed: Weapons must first check if they can be switched and afterwards
  if they can be fired. These checks were reversed.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@443 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-06 16:58:38 +00:00
Christoph Oelckers
63223fa1c3 Update to ZDoom r1789:
- fixed: Weapons must first check if they can be switched and afterwards
  if they can be fired. These checks were reversed.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@437 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-03 19:59:02 +00:00
Christoph Oelckers
b8a584f65f Update to ZDoom r1784:
- Added directory detection to the -file parameter. This obsoletes -dir, so
  that parameter is now gone.
- Removed automatic ".wad" appending from FWadCollection::InitMultipleFiles()
  since it isn't needed and prevented files without extensions from being
  loaded. D_AddFile() already takes care of adding the extension if the
  name as-given does not exist.
- Fixed: Loading single files did not print a newline in the startup text.
- Fixed: A_JumpIf(InTarget)Inventory jumped if the check amount was greater
  than the item's max amount and the item was maxed.
- Fixed: Some dmadds wads used zero-length sprites as placeholders. When you
  ran dmadds to combine it with the IWAD's sprites, they would be replaced by
  the IWAD's sprites, so when loading such wads, we should ignore those as
  valid sprites. (Thanks to entryway for finding this.) See 22ventry's
  22sprite.wad for an example.
- Replaced the use of autoconf's WORDS_BIGENDIAN with __BIG_ENDIAN__, since
  latter comes predefined by GCC.

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


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




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


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

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

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

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

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@402 b0f79afe-0144-0410-b225-9a4edf0717df
2009-07-24 13:47:25 +00:00
Christoph Oelckers
2978f8247d Update to ZDoom r1715:
- Backported 2 fixes from Skulltag:
  * A_SentinelAttack must check for a NULL target
  * Monsters with CANTLEAVEFLOORPIC could not move because their floor
    texture was not initialized.
- Fixed: The 'idclev' cheat set the player's health to 0 which caused the
  level to end when in a sector of type 'end level when health below 10'.
- Fixed: The 'kill' cheat set the player to nonshootable even if it did not
  succeed.
- Added joystick config loading and saving support; moved generic joystick
  interfaces to m_joy.h.
- Added Raw Input PS2 adapter support.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@393 b0f79afe-0144-0410-b225-9a4edf0717df
2009-07-13 20:46:53 +00:00
Christoph Oelckers
fda31121ae Update to ZDoom r1711:
- Added Gez's A_WeaponReady enhancement submission.
- Added Gez's CheckActorProperty submission.
- Added code submissions for non-piercing railguns and new skill options.


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

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


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


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@344 b0f79afe-0144-0410-b225-9a4edf0717df
2009-06-14 18:05:00 +00:00