Commit graph

109 commits

Author SHA1 Message Date
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
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
9a4290adaf - Fixed: G_QueueBody was not notifying the translation that it was changed.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@497 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-27 07:18:10 +00:00
Christoph Oelckers
a00125631d - renamed low level texture class.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@473 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-22 14:48:12 +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
eed463dffc - VBO implementation for flats working except updating after change.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@456 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-15 21:47:49 +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
67a7c1b1b7 - Update to ZDoom r1817:
- 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".
- 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+.

- added support for Vavoom skyboxes from Gez's experimental build.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@451 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-14 07:26:58 +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
a2ea1a99b5 - fixed: The newly altered WAD code could not load embedded WADs anymore.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@435 b0f79afe-0144-0410-b225-9a4edf0717df
2009-09-02 20:30:20 +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
9c85795f0d Update to ZDoom r1765:
- Fixed: A_EntityAttack did not spawn the correct missiles.
- Changed the return value of SetActivatorToTarget to match the description
  in the wiki.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@419 b0f79afe-0144-0410-b225-9a4edf0717df
2009-08-09 19:14:21 +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
09f0220a3b - Update to ZDoom r1762:
- 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.
- 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.
- Fixed: FWeaponSlot::PickWeapon() wrapped around improperly when the starting
  value for i was 0.
- Added kgsws's SummonActor enhancement and bumped netgame and demo versions
  because this submission changes an existing command.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@410 b0f79afe-0144-0410-b225-9a4edf0717df
2009-08-06 19:41:11 +00:00
Christoph Oelckers
ee61bdde16 - Fixed: using custom automap backgrounds crashed.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@404 b0f79afe-0144-0410-b225-9a4edf0717df
2009-07-24 20:25:47 +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
f62aff3100 Update to ZDoom r1685:
- Added Gez's submissions for A_M_Saw customization, area damage and 
  pitch for A_FireCustomMissile.
- Attaching and detaching joysticks once again updates the joystick menu.
- Added joystick axis -> button mapping.
- Added Gez's actor replacement per skill submission.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@375 b0f79afe-0144-0410-b225-9a4edf0717df
2009-06-27 21:02:41 +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
Christoph Oelckers
63e67d4a29 - added PERSISTENTPOWER and TRANSFERPOINTERS submissions by Gez.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@343 b0f79afe-0144-0410-b225-9a4edf0717df
2009-06-07 20:15:36 +00:00
Christoph Oelckers
0f42c39184 - fixed FORCEPAIN logic.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@342 b0f79afe-0144-0410-b225-9a4edf0717df
2009-06-07 17:06:30 +00:00
Christoph Oelckers
c2d1121663 Update to ZDoom r1643
- Added Hirogen2's unlimited pickup patch.
- Added railgun performance customization CVARs by Spleen.
- Added aspect ratio override submission by SoulPriestess.
- 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.
- Added support for horizontal mouse wheels, and set invprev/invnext as
  default bindings for it. This is Vista only. DirectInput mouse (in_mouse 2)
  does not support it, because the DirectInput mouse device does not expose
  this control.
- Added a label for the F16 key and mapped the kp= key on a Mac keyboard to
  the PC98 equivalent so it will be identified as kp=. (Interestingly, F13-
  F16 and kp= only generate events when using Raw Input, not when using
  DirectInput.
- 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.
- Added Gez's GetArmorType submission

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@339 b0f79afe-0144-0410-b225-9a4edf0717df
2009-06-06 15:24:18 +00:00
Christoph Oelckers
5d8dc8c50c - 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.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@334 b0f79afe-0144-0410-b225-9a4edf0717df
2009-05-27 23:41:58 +00:00
Christoph Oelckers
103df0ede3 Update to ZDoom r1600:
- Fixed: When setting up a deep water sector with Transfer_Heights the floorclip
  information of all actors in the sector needs to be updated.
- Fixed: A_CountdownArg and A_Die must ensure a certain kill.
- 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.
- 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.
- 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.
- Fixed: SetSoundPaused() still needs to call S_PauseSound() to pause music
  that isn't piped through the digital sound system. (Was removed in r1004.)
- 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.
- 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.
- Fixed: Monsters should not check the inventory for damage absorbtion when
  they have the MF5_NODAMAGE flag set.
- Added patch for saving automap zoom.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@328 b0f79afe-0144-0410-b225-9a4edf0717df
2009-05-23 10:24:33 +00:00
Christoph Oelckers
0ce82b2979 Update to ZDoom r1585:
- Added ACS GetChar function.
- Added Gez's submission for polyobjects being able to crush corpses but made
  it an explicit MAPINFO option only.
- 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.
- fixed a few Heretic actors:
  * The pod generator's attacksound was wrong
  * The teleglitter generators need different flags if they are supposed to work 
    with z-aware spawning of the glitter.
  * The knight's axes need the THRUGHOST flag.
- Fixed non-POD passing in G_BuildSaveName() and other things GCC warned
  about.
- Added support for imploded zips.
- 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.
- Added Species property for actors and separated Hexen's Demon1 and Demon2
  into different species.
- 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".
- 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.
- fixed: The CHECKSWITCHRANGE line flag was ignored for one sided lines.
- Added more compatibility settings, submitted by Gez.
- 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.
- 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.
- Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
  order.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@325 b0f79afe-0144-0410-b225-9a4edf0717df
2009-05-15 18:02:01 +00:00
Christoph Oelckers
7aa21e7efc Update to ZDoom r1662:
- Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking.
- Fixed handling of embedded WADs.
- 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.
- 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.
- fixed MustConfirm parsing in MAPINFO
- Made the counting of intermission stats in Doom a GAMEINFO option so that
  it can be activated in all games.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@324 b0f79afe-0144-0410-b225-9a4edf0717df
2009-04-28 21:31:02 +00:00
Christoph Oelckers
83639c7877 Update to ZDoom r1552:
- Gave the intermission screen sounds their own SNDINFO entries.
- Removed obsolete snd_surround cvar.
- Changing screen resolution now adjusts the automap scale to be constant
  relative to screen resolution.
- Fixed: When FMultiPatchTexture::MakeTexture() needed to work in RGB
  colorspace, it didn't zero out the temporary buffer.
- 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.
- Added support for 7z archives.
- 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.
- Changed gravity doubling so that it only happens when you run off a ledge.
- Fixed: World panning was ignored for the X offset of masked midtextures.
- 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.
- 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.
- 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).
- Added NOBLOCKMAP/MOVEWITHSECTOR combination to a few items that had their
  NOBLOCKMAP flag taken away previously to make them move with a sector.
  This should fix the performance problem Claustrophobia had with recent
  ZDoom versions.
- 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.
- 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. Also changed the array used to keep track of visited
  actors into a hash table.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@322 b0f79afe-0144-0410-b225-9a4edf0717df
2009-04-19 06:46:53 +00:00
Christoph Oelckers
4c1cbcedfa - fixed: Map wads with less than 4 lumps caused an endless loop in the gl nodes checking code.
This condition is true for all UDMF maps with only a TEXTMAP lump.

Update to ZDoom r1523:

- Fixed: The UDMF textmap readbuffer was never freed.
- Fixed: GetPlayerInput() died if you tried to get the input of the activator
  and the activator was the world.
- 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.
- added 'damage' to the actor variables exported to DECORATE's expression
  evaluator.
- fixed: solid corpses could block ripper missile that originally killed them.
- Fixed: Doom's status bar was lacking its default face.
- Fixed: Custom skin face graphics were not added to the texture manager.
- Fixed: UseHealthItems() gave you health equal to the number of items in
  the stack of health items, rather than the item's proper amount.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@321 b0f79afe-0144-0410-b225-9a4edf0717df
2009-04-06 17:27:59 +00:00
Christoph Oelckers
df7261f8c5 Update to ZDoom r1514:
- 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.
- 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.
- Fixed: Reading the RNG states from a savegame calculated the amounts of
  RNGs in the savegame wrong.
- 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.
  <http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html>
- Made fmodex.dll delay-loaded so the game should be runnable on Windows 95
  again, though without sound.
- 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.
- 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.
- Fixed: Implicitly defined clusters were not initialized when being created.
- Fixed: Item tossing did not work anymore.
- Changed: Making the gameinfo customizable by MAPINFO requires different
  checks for map specific border flats.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@318 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-29 11:21:36 +00:00
Christoph Oelckers
89c9bf0735 Update to ZDoom r1481:
- Fixed: AWeapon::PickupForAmmo accessed ammo type 1 when checking ammo type2.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@311 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-15 08:18:47 +00:00
Christoph Oelckers
42f732ac66 Update to ZDoom r1476:
- Moved weapon slot initialization into APlayerPawn::PostBeginPlay() so that
  they can be initialized when players respawn in multiplayer.
- 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.
- 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".
- 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.
- Added sdl_nokeyrepeat to disable key repeating in the menus and console
  on Linux.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@307 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-12 20:59:09 +00:00
Christoph Oelckers
cfc3853718 - version bump to 1.2.0.
- fixed: Some of the dynamic light definitions for Hexen's switchable items were not correct.
- fixed: Weapon sprites were all drawn fullbright if only one of the layers was set to bright.


Update to ZDoom r1456 (2.3.0 plus one additional fix):

- 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.)

- 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.
- 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.
- Removed an early-out in wallscan_striped() that is invalid when drawing a
  skybox.
- fixed: nextmap and nextsecret CCMDs set skill to 0.
- fixed: level.flags2 was not stored in savegames. Also bumped min. savegame
  version and removed old compatibility handlings.
- 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.
- 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 occassional 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.)
- 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.
- Changed DEM_ADDSLOTDEFAULT, DEM_ADDSLOT, and DEM_SETSLOT to be more space-
  efficient.
- 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.
- 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.
- added ML_BLOCKPROJECTILE flag to lines.
- 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.
- 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.)
- Fixed: Heretic's fullscreen HUD crashed when the player had armor without
  a valid icon.
- Fixed: The StrifePlayer was missing a RunHealth setting.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@303 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-01 10:19:26 +00:00
Christoph Oelckers
64a48e1f4e Update to ZDoom r1433:
- Fixed: Untranslated colors in fonts had an alpha value of 0 but need 255.
- Fixed: The Doom status bar's ammo display may not use the INDEXFONT for 
  the alternative HUD. Instead it has to create a separate one out of the
  STYSNUM characters.
- 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.
- 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.
- fixed: level_info_t::mapbg was not initialized
- 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.
- Fixed: The CHARFORMAT structure that is used to set the color in a Windows
  Rich Edit control was not fully initialized resulting in incorrect colors
  being set.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@302 b0f79afe-0144-0410-b225-9a4edf0717df
2009-02-21 17:07:32 +00:00
Christoph Oelckers
cacebde16e Update to ZDoom r1425:
- 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.
- 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 on the startup background.
- Changed I_InitInput() to acquire the IDirectInput8A interface by using
  DirectInput8Create() instead of CoCreateInstance(). This allows the Steam
  GameOverlayRenderer.dll to properly hook it.
- Stopped sending double the number of wheel events as appropriate to the
  console under Linux.
- Added middle mouse button selection pasting for X systems.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@301 b0f79afe-0144-0410-b225-9a4edf0717df
2009-02-20 09:24:51 +00:00
Christoph Oelckers
5e8c5c3305 Update to ZDoom r1418:
- Fixed parsing for MustConfirm key in skill parser.
- Converted internal MAPINFOs to new syntax.
- Added a range parameter to SNDINFO's $limit.
- Restored Dehacked music name replacement.
- Added GUICapture mouse events for Win32.
- Changed I_GetFromClipboard() to return an FString.
- 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.
- 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.
- 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.
- 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.
- Fixed: Keys bound in a custom key section would unbind the key in the
  main game section.
- Fixed scrolling of the automap background on a rotated automap.
- 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.
- 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.
- 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.)


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@298 b0f79afe-0144-0410-b225-9a4edf0717df
2009-02-08 23:01:13 +00:00
Christoph Oelckers
ad59f4da77 - Update to ZDoom r1401:
- Made improvements so that the FOptionalMapinfoData class is easier to use.
- 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().
- Fixed: SBARINFO used different rounding modes for the background and
  foreground of the DrawBar command.
- Bumped MINSAVEVER to coincide with the new MAPINFO merge.
- 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.
- 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.
- rewrote the MAPINFO parser:
  * split level_info_t::flags into 2 DWORDS so that I don't have to deal with 64 bit values later.
  * split off skill code into its own file
  * created a parser class for MAPINFO
  * replaced all uses of ReplaceString in level_info_t with FStrings and made the specialaction 
    data a TArray so that levelinfos can be handled without error prone maintenance functions.
  * split of parser code from g_level.cpp
  * const-ified parameters to F_StartFinale.
  * Changed how G_MaybeLookupLevelName works and made it return an FString.
  * removed 64 character limit on level names.
- Changed DECORATE replacements so that they aren't overridden by Dehacked.
- Fixed: The damage factor for 'normal' damage is supposed to be applied to
  all damage types that don't have a specific damage factor.
- Changed FMOD init() to allocate some virtual channels.
- Fixed clipping in D3DFB::DrawTextureV() for good by using a scissor test.
- Fixed: D3DFB::DrawTextureV() did not properly adjust the texture coordinate
  for lclip and rclip.
- Added weapdrop ccmd.
- Centered the compatibility mode option in the comptibility options menu.
- 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.
- Added Blzut3's statusbar maintenance patch.
- fixed sound origin of the Mage Wand's missile.
- 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
- More GCC warning removal, the most egregious of which was the security
  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.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@297 b0f79afe-0144-0410-b225-9a4edf0717df
2009-02-05 00:06:30 +00:00
Christoph Oelckers
b2ae48bb67 Update to ZDoom r1358:
- 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.
- Added option to specify the amount of ammo to be given by a WeaponGiver.
- 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.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@294 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-18 09:42:37 +00:00
Christoph Oelckers
8b61dada84 Update to ZDoom r1344:
- Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types.
- Added a few missing NULL pointer checks to SBARINFO code.
- 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.
- Fixed: P_CheckMissileSpawn and AFastProjectile didn't adjust their
  calculations for missiles with small radii.
- Added a new aiming mode to A_CustomRailgun to aim directly at the target
  from the actual point the shot originates from.
- 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.
- 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.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@282 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-01 16:47:46 +00:00
Christoph Oelckers
9446999c4c - Added Skulltag's HQ resite feature
- removed special handling for old ZSBSPs that threw out overlapping linedefs.
  If such nodes are encountered now a rebuild is forced instead of trying to
  work with the broken data.

- Update to ZDoom r1333:

- Added Karate Chris's new DMFlags submission.
- 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.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@279 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-28 13:27:13 +00:00
Christoph Oelckers
d3fa20416f Update to ZDoom r1327:
- OggMod improperly decodes the right channel of stereo samples when sending
  them to OggEnc, so I have no choice but to convert them to mono by chopping
  off the right channel and only using the left channel information.
- Fixed: OggMod passes the raw sample data to OggEnc for stereo samples, so
  the resultant Vorbis stream is not actually stereo but mono with the right
  channel after the left. The two need to be interleaved just like
  uncompressed samples are.
- Removed the pattern length limit in the XM reader.
- 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?)
- 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.
- Fixed: Autoloading a game (e.g. respawning after dying in single player)
  during demo playback prematurely ended demo control of the player.
- Fixed: Loading a multiplayer save with only one player crashed.
- Changed the co-op intermission screen to draw the stats with the small font.
- 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.
- 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.
- 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.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@273 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-21 08:31:23 +00:00