Commit graph

272 commits

Author SHA1 Message Date
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
bc99651e12 - fixed GCC bug.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@320 b0f79afe-0144-0410-b225-9a4edf0717df
2009-04-01 06:53:43 +00:00
Christoph Oelckers
6b07706d31 - fixed: Non-translucent 3D-fog caused crashes.
- project file was not up to date.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@319 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-29 20:51:33 +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
f611ceadc6 - fixed Linux build
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@317 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-23 22:54:28 +00:00
Christoph Oelckers
1d70ba4161 - fixed spawning on 3D floors.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@316 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-21 21:16:03 +00:00
Christoph Oelckers
2ea9d7fc44 Update to ZDoom r1493:
- Added the current value of the string buffer to the state saved when
  making a function call in ACS. Now you can print inside functions and
  also return values from them for the caller to plug directly into
  another string without having to save it to a temporary variable.
- Added an OutputVolume() call after the MusicVolumeChanged() call in
  MIDIStreamer::Play(). Since the state isn't playing yet when
  MusicVolumeChanged() is called, it doesn't do this itself.
- Fixed: P_RailAttack() passed the wrong angle variable to P_TraceBleed().
- Fixed: S_StopSound may not assume that after stopping a sound channel
  its link to the next item in the list is still valid.
- Fixed typo in src/CMakeLists.txt.
- Fixed: Armor only worked for players.
- Fixed: P_FindFloorCeiling may not call P_PointInSector if called from
  P_SpawnMapThing. It must use the values the actor has been initialized to
  by LinkToWorldForMapThing.
- Added the -norun parameter to quit the game just before video
  initialization. To be used to check for errors in scripts without actually
  running the game.
- Added the -stdout parameter to the Windows version to send all output to
  a console, like the Linux version has done all along.
- Added support for loading ZGL2 nodes. (Only useful with UDMF and maps with
  more than 65534 lines.)

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@315 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-21 08:08:18 +00:00
Christoph Oelckers
a8f07389c2 - Updated CMakeLists.txt
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@312 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-15 08:30:22 +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
55f7830ccd - fixed some dependencies.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@310 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-13 20:35:58 +00:00
Christoph Oelckers
493e2490b4 - Fixed: After loading a savegame or unmorphing, a player's weapon slots
were empty.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@309 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-13 16:07:08 +00:00
Christoph Oelckers
229bbedf19 -Add missing stuff.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@308 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-13 00:02:10 +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
8d22dbb5af - fixed slope fix.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@306 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-10 00:28:44 +00:00
Christoph Oelckers
3ac3616101 - Fixed: Planes that got their z-position changed by slope things but did not
actually get sloped were not rendered at the proper position.


Update to ZDoom r1465
- Fixed: P_CompleteWeaponSetup was missing a NULL pointer check for the player.
- Adjusted some gravity related thresholds for the fix from Feb 28. Also removed
  some unnecessary floating point math from this code.
- Added Hirogen2's patch for unlimited ammo CVAR.
- Fixed: You couldn't easily play with the compatibility options menu during
  the title screen, because the demo loop reset the server cvars after each
  attempt to play a demo, even though the demos never actually played. The
  proper long-term solution would be to make shadow copies of all cvars
  touched by demos and use those for the demo and the real things for
  everything else, but this should do for now and is a lot easier.
- Fixed: When using BOOM-style sector flags and specials together, the
  special was ignored unless it was "secret".
- Fixed: One byte is too short for DUMB_IT_SIGRENDERER to store song tempo.
  Changed it to a word.
- Went back to using RDTSC for timing on Win32. Ironically,
  QueryPerformanceCounter() is obviously using the TSC for its timing on my
  machine, yet the overhead it has to do to keep the timer sane is apparently
  noticeable on a few maps. I suppose I should at some time check
  clock_gettime() and see if it has similar issues on Linux.
- changed: If a monster with the BOSSDEATH flag is crushed A_BossDeath will
  be called now.
- fixed: D'Sparil's second form was missing the BOSSDEATH flag.
- fixed: D'Sparil's first form requires the DONTGIB flag.
- fixed: Heretic doesn't crush monsters. To handle this in a more generic
  fashion this depends on the presence of a gib sprite now.
- Changed burn and Acolyte death sequences so that they leave corpses that
  don't vanish.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@305 b0f79afe-0144-0410-b225-9a4edf0717df
2009-03-09 21:19:56 +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
b9d95ad3ea - fixed incomplete update of g_level.cpp.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@300 b0f79afe-0144-0410-b225-9a4edf0717df
2009-02-10 23:12:01 +00:00
Christoph Oelckers
3d5052d7ee - fixed parsing of cluster keyword when MAPINFO format is not yet known.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@299 b0f79afe-0144-0410-b225-9a4edf0717df
2009-02-09 00:11:41 +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
db550dc0b4 Update to ZDoom r1369:
- fixed some issues with P_FindFloorCeiling's coordinate processing.
- added a new compatmode CVAR which allows setting some generic compatibility 
  flag combinations:
  Doom: sets the options needed to make most Doom.exe compatible map play without
  errors.
  Doom (strict): Same as above but sets a few more options. Please note that this
  does not mean full Doom.exe behavior emulation.
  Boom: Sets all options that consider differences between ZDoom and Boom.
  ZDoom 2.0.63: Sets only the COMPATF_SOUNDTARGET option which is needed for
  many older ZDoom maps.
- added new COMPAT_CROSSDROPOFF option to block monsters from being pushed over
  dropoffs by damage kickback.
- fixed: AFastProjectile::Tick must call Effect only 8 times per tic, regardless
  of the amount of steps taken.
- fixed: momentum checks in AFastProjectile did not use absolute values.
- Restored the rhythm section to fmopl.cpp and made some slight updates from
  version 0.72 of MAME's fmopl.c. Also refactored CalcVoice so that the
  original MAME structure is more visible.
- Removed the SoundChans bitfield from AActor, since it seems there are race
  conditions I don't fully understand where it simply doesn't work.
- Removed BaseTime initialization from sdl/i_system.cpp as per Chris's
  recommendation.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@296 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-25 22:03:47 +00:00
Christoph Oelckers
22ecf8c1ec - Fixed: The sight checking code didn't initialize the myseethrough variable.
- Fixed: With COMPAT_TRACE switched on linedef actions on lines having
  the same sector on both sides were not triggered.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@295 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-24 00:21:58 +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
2b882c132b - forgot to initialize the fliptop variable for skyboxes.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@293 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-13 23:45:24 +00:00
Christoph Oelckers
a481938c62 - added option to flip top face of skyboxes so that Q2 and other similarly formatted ones can be used directly.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@292 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-13 23:16:15 +00:00
Christoph Oelckers
bcc44164a3 - fixed: forcenoskystretch had no effect
- fixed: P_LineOpening did not check a monster's step height when crossing lines bordering on 3D floors.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@291 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-13 19:55:48 +00:00
Christoph Oelckers
55f9cb70d4 - fixed: interpolated sector movement did not update the 3d floor light lists for each step.
- fixed: Crushing polyobject did incomplete checks for blocked moves.
- renamed dummy window class used to retrieve OpenGL extensions because the name OpenGL was too generic.
- reordered IWAD checks.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@290 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-07 18:47:46 +00:00
Christoph Oelckers
ac103d5584 - changed floor coordinate check for 3D floors. Now the actor's origin is checked, not its center.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@289 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-04 19:33:06 +00:00
Christoph Oelckers
4cc0890b8b - fixed: #includes in p_3dfloor.cpp should be outside the #ifdef.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@288 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-04 17:06:46 +00:00
Christoph Oelckers
4e6be60163 - Fixed: For map spawns any change to an actor's floor z-coordinate must be
delayed until after its z-coordinate has been set. That means that for 
  map spawns AActor::StaticSpawn may not call P_FindFloorCeiling for such
  actors.
- Changes resulting from integrating 3D floor code into ZDoom.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@287 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-04 15:56:30 +00:00
Christoph Oelckers
9c159c170b - fixed: Decals on 3D floors were not displayed.
Update to ZDoom r1350:
- Used new functionality to avoid moving the puff around in SpawnDeepSplash.
- Fixed: P_RailAttack used the shooting actor or a default puff for some splash
  related actions. It should use the puff type passed to it as a parameter instead.
- Changed splash handling in P_LineAttack to use the actual hit position to
  spawn the splash and not the puff's spawn position which is offset a little.
- made some precision related changes to P_HitWater. The precise hit coordinate
  can now be passed as parameters.
- Made spawning of floor- and ceiling huggers a little more intelligent.
- Fixed: 'None' was no longer recognized as a NULL class name by the 
  DECORATE parser.
- Added 'ininventory item, amount' option to SBARINFO to check for a minimum 
  amount instead of mere presence in the inventory.
- Fixed: Door lock messages were overwritten by remote messages.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@286 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-04 12:52:41 +00:00
Christoph Oelckers
950c314974 - replaced a few occurences of ONFLOORZ to work with 3D floors and 3DMidtex textures.
- fixed skyrotate option.
- fixed: 3D floors need to be spawned before the things. This was the reason why checking
  for the floor height did not work and which required a hack in P_ZMovement to prevent 
  actors from falling through 3D floors. Now that this is working I could also fix some
  other things, most importantly floor and ceiling huggers which until now ignored 3D floors.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@285 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-03 15:46:14 +00:00
Christoph Oelckers
5b2c91106e - implemented Vavoom's seethrough and shootthrough options for 3D floors.
- Fixed: For Vavoom-type 3D floors the additive translucency flag was not checked.



git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@284 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-03 13:00:40 +00:00
Christoph Oelckers
54e812b045 - fixed rotating models
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@283 b0f79afe-0144-0410-b225-9a4edf0717df
2009-01-03 08:52:56 +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
bf7bfdfeb0 - Fixed: The code to check seg coverage compared fixed point values with floats.
- Added a rotation vector for skyboxes. 


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@281 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-31 12:01:30 +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
9ed7dd7fa3 Linux fixes.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@278 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-22 08:45:48 +00:00
Christoph Oelckers
480eb456d9 - fixed project file.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@277 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-21 20:18:33 +00:00
Christoph Oelckers
3916faf005 - fixes
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@276 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-21 17:23:10 +00:00
Christoph Oelckers
72019537ae - Added caching of vertex view angles per frame because recalculating this value is quite expensive and almost all vertices are processed at least twice.
- Preparations for caching visibility info per linedef.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@275 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-21 12:40:15 +00:00
Christoph Oelckers
3544dfa272 - Reimplemented the RDTSC based timer so that I can do profiling of the GL code again.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@274 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-21 10:17:32 +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
Christoph Oelckers
55c4dfc78a - forgot to save the project file.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@272 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-20 15:21:58 +00:00
Christoph Oelckers
ecab33f34b - fixed: GL renderer specific MAPINFO data was no longer parsed.
- removed old debug code
- added new structures to group segs and subsectors into continuous sections. This is for future feature enhancements.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@271 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-20 14:59:16 +00:00
Christoph Oelckers
8a4167bb62 - Restored a line of code that got accidentally deleted yesterday.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@263 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-12 18:36:17 +00:00
Christoph Oelckers
7619f3f2b1 - fixed: Before restoring the depth buffer after drawing a portal it must be ensured
that the current alpha value is 1.0.
- Removed some dynamic light hack code that was no longer needed.
- Made dynamic light subclasses fully external.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@262 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-12 00:50:32 +00:00
Christoph Oelckers
b2fa909885 - DECORATE parser fix for old style decorations.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@260 b0f79afe-0144-0410-b225-9a4edf0717df
2008-12-08 21:56:39 +00:00