Commit Graph

6212 Commits

Author SHA1 Message Date
Randy Heit a74d352490 Update gus_pat.cpp's envelope fudging to current git version 2016-01-11 20:06:04 -06:00
Braden Obrzut 0c3b468e42 Merge branch 'osx_start_wnd' 2016-01-11 20:47:06 -05:00
Randy Heit 56f7ace9be include <limits.h> in the bin packers to make GCC happy 2016-01-11 17:01:29 -06:00
Christoph Oelckers 61e48013dc - fixed a warning in WildMidi code. 2016-01-11 23:46:12 +01:00
Christoph Oelckers cd9e18a72b - fixed: operator<< (FArchive &arc, secspecial_t &p) erroneously read the old special in the compatibility handler as a short, but it must be read as an int.
- bumped savegame version to bring it in line with a GZDoom exclusive change.
2016-01-11 23:44:13 +01:00
coelckers f539803d49 Merge pull request #471 from MajorCooke/FriendlyFireFix
Small LaxTelefragDmg Flag Fix
2016-01-11 22:45:37 +01:00
MajorCooke 7843ece01a Fixed: Friendly fire damage didn't take LAXTELEFRAGDMG into account. 2016-01-11 15:08:38 -06:00
Christoph Oelckers 011385a20e Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-11 15:30:04 +01:00
Christoph Oelckers 7115590c1d - moved setup code for Eternity-style skyboxes to p_spec.cpp and consolidated most of it with nearly identical parts of the stacked sector portal setup code. 2016-01-11 15:29:44 +01:00
Randy Heit 42e9a6a711 Make atlas size a macro definition and default it to 512x512 (was 256x256) 2016-01-10 22:14:35 -06:00
Randy Heit aaac5ac7a1 Use not so brilliant backgrounds for allocated atlas backgrounds 2016-01-10 22:01:29 -06:00
Randy Heit 670058fa3c Switch to the bottom-left picker for the Skyline Bin Packer 2016-01-10 21:54:28 -06:00
Randy Heit 4f0046105d Change texture atlas display to show allocated rectangles 2016-01-10 21:09:16 -06:00
Christoph Oelckers 918a2ed562 -fixed: Eternity-style skyboxes must check if some portal copy definitions have been set for them. 2016-01-10 22:26:08 +01:00
Christoph Oelckers 2c0f64cf9f - refactoring of R_PointToAngle2 when used to calculate direction between two actors. 2016-01-10 20:46:26 +01:00
Christoph Oelckers 1e2ce9a622 - some refactoring of P_AproxDistance calls into newly defined AActor method AproxDistance.
The main reason here is to reduce the number of instances where AActor::x and AActor::y are being referenced.
2016-01-10 17:52:41 +01:00
Randy Heit 1f34372abc Remove the upper limit on midi_voices.
- Black MIDIs can be brutal, and there's really no reason that this needs
  to be artificially limited to a paltry 256 voices.
2016-01-09 17:55:39 -06:00
Christoph Oelckers 68b4c23a82 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-09 21:10:46 +01:00
Christoph Oelckers 53d385a596 - need to validate SetSectorTerrain's 'plane' parameter, 2016-01-09 21:10:12 +01:00
coelckers 725408d9fe Merge pull request #468 from alexey-lysiuk/osx_fullscreen_shortcut
Shortcut to toggle fullscreen on OS X
2016-01-09 18:23:43 +01:00
alexey.lysiuk b27fdcffb5 Added shortcut to toggle fullscreen on OS X
Press Command+F to toggle fullscreen mode in native OS X backend
Set k_allowfullscreentoggle CVAR to false to disable the shortcut
2016-01-09 17:12:58 +02:00
Christoph Oelckers 23cfd29dbb - let's save the terrain properties as names so that they survive a change in the definition files. 2016-01-09 12:28:42 +01:00
Christoph Oelckers 7f454358b9 - added ACS SetSectorTerrain function. 2016-01-09 12:16:41 +01:00
Christoph Oelckers 71c7f2b42c - added 'floorterrain' and 'ceilingterrain' sector properties for UDMF. These will take precedence over texture based terrain if used.
'ceilingterrain' is needed because the top of 3D-floors refers to the model sector's ceiling, so in order to give a 3D floor a terrain it must be assignable to the sector's ceiling.
Note that although it is basically the same property, its actual function bears no relevance to its use in Eternity.
2016-01-09 12:10:36 +01:00
Christoph Oelckers 4b3adf548a - fixed compile errors. 2016-01-09 11:44:05 +01:00
Christoph Oelckers a5054b0882 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-09 10:11:46 +01:00
Christoph Oelckers 0b5e419593 - fixed friction logic for sectors.
Issues with the old code:
* when calculating friction for a 3D-floor - swimmable or not - the 3D floor's top texture must be used. The previous version always checked the sector's floor texture, even though the top might as well come from the sector's ceiling.
* 3D floors never checked for the SECF_FRICTION flag at all. According to Boom specs, sector-based friction must be ignored if this is the case.
* Terrain based friction had a higher priority than the sector's own value.

Changed the rules as follows:
* if the sector's SECF_FRICTION flag is set (i.e. something explicitly changed the sector's friction), this value is used regardless of terrain settings.
* if this flag is not set, the terrain's friction is used, if defined, using the proper plane for 3D-floors.
* otherwise the default is used.
2016-01-09 10:11:20 +01:00
Randy Heit 786caaf36b Execute disconnect scripts immediately before the player is destroyed.
- Disconnect scripts were previously run at some point after the player
  left. Now they are run immediately before destroying the player. Since
  the player hasn't actually been destroyed yet, the player also gets to
  be the script's activator. This gives you a chance to scrape whatever data
  you want from the player before they're history. Note that if you do
  anything to make the script wait, the script's activator will become the
  world, as it was before.
2016-01-08 22:41:23 -06:00
Randy Heit bf31d66d31 Use a better packing algorithm for the texture atlases
- The old algorithm is something I threw together that produced decent,
  but not spectacular results since it had a tendency to waste space by
  forcing everything onto "shelves".
  The new packer is the Skyline-MinWaste-WasteMap-BestFirstFit algorithm
  described by Jukka Jylanki in his paper *A Thousand Ways to Pack the Bin - A
  Practical Approach to Two-Dimensional Rectangle Bin Packing*, which can
  currently be read at http://clb.demon.fi/files/RectangleBinPack.pdf
  This is minus the optimization to rotate rectangles to make better fits.
2016-01-08 22:37:06 -06:00
Randy Heit f330a81909 Rename packing textures to texture atlases for the D3D code
- I figure since I now know the "proper" name for these things, I should
  call them by it.
2016-01-08 20:08:10 -06:00
Randy Heit a43f5a8eca Remove now unused variable from SpawnPolyobj 2016-01-08 20:08:06 -06:00
Christoph Oelckers cf564c60c2 - simplified setup of polyobjects defined from explicit lines
The old method had a problem with missing order numbers and aborted the level load and made many assumptions that no longer apply with BSP based polyobject rendering.
2016-01-09 01:23:00 +01:00
coelckers 500c1623d0 Merge pull request #467 from kevans91/freebsd-build
I missed one last spot where a FreeBSD compilation should follow the …
2016-01-08 09:58:55 +01:00
Kyle Evans d20f18a4bb I missed one last spot where a FreeBSD compilation should follow the path of OS X -- <signal.h> needs to be pulled in for signal functions 2016-01-07 22:48:25 -06:00
MajorCooke bfd9e2bc1c - Added CHF_STOPIFBLOCKED and CHF_DONTTURN macro.
- CHF_STOPIFBLOCKED simply prevents the actor from changing directions for movement.
- CHF_DONTTURN implies NORANDOMTURN, NOPOSTATTACKTURN and STOPIFBLOCKED.
2016-01-07 19:20:02 -06:00
MajorCooke da9c3ff9d2 Added A_Wander Flags.
- WF_NORANDOMTURN and WF_DONTANGLE do the same as their CHF_ counterparts for A_Wander.
2016-01-07 17:38:45 -06:00
MajorCooke f357a36c5c - New A_Chase flags.
- CHF_NORANDOMTURN: Actor will not randomly turn during chasing to pursue its target. It will only turn if it cannot keep moving forward.
- CHF_DONTANGLE: Actor does not adjust its angle to match the movement direction.
- CHF_NOPOSTATTACKTURN: Actor will not make its first turn after exiting its attacks.
2016-01-07 17:38:25 -06:00
MajorCooke ccc694bbcd - Added the following flags, all affixed with CPXF_:
- NODISTANCE: Disables distance checking.
- CHECKSIGHT: The qualifying actor must be in sight in order to count.
- SET<TARGET/MASTER/TRACER>: Gets the first qualifying actor and sets the calling actor's specified pointer to it.
- SETONPTR: If the function is being aimed at another actor other than the caller, sets that actor's pointers instead. Requires a SET* flag to work.
- FARTHEST: The actor farthest from the checking actor is set as the pointer. Requires a SET* flag to work.
- CLOSEST: The closest qualifying actor is set as the pointer. Requires a SET* flag to work.
2016-01-07 17:09:02 -06:00
Randy Heit efaaccc030 Added $ check for language support for drawing Option Values 2016-01-07 12:59:16 -06:00
Randy Heit cd4076dc1b Added $ check for language support for StaticTextSwitchable 2016-01-07 12:59:16 -06:00
Christoph Oelckers eafa394af4 - re-added and fixed terrain splashes for damaging sectors.
Turned out that P_HitWater wasn't even able to spawn the splashes, even after the call was re-added.
2016-01-06 16:42:21 +01:00
Christoph Oelckers f8b2b4558f - fixed a few typos (Get instead of Set...) 2016-01-06 15:47:56 +01:00
Christoph Oelckers 154e106315 - make better use of the damageinterval value for Strife's delayed damage. 2016-01-06 14:16:42 +01:00
Christoph Oelckers 990323fb26 Merge branch 'fix_intermission_font' of https://github.com/alexey-lysiuk/gzdoom 2016-01-06 13:37:23 +01:00
Christoph Oelckers 6afd76e5db - enable damage types for Strife's delayed damage. It will always use the type of damage that was last encountered. 2016-01-06 13:36:22 +01:00
Christoph Oelckers eb6c855a95 - handle intermediate special values in thinkers. They also need to take care of the related damage variables and flags. 2016-01-06 13:30:28 +01:00
Christoph Oelckers bd8513c063 - made sector_t::damageamount an int so that it can hold TELEFRAG_DAMAGE.
- marked all places where sector_t::special needs to be addressed for the damage overhaul.

NOTE: This commit will not compile!
2016-01-06 12:56:35 +01:00
Christoph Oelckers 1ee441412a - add savegame compatibility handling for damage related changes: When loading an old savegame the sector specials must be reinitialized to set the damage properties. 2016-01-06 12:31:27 +01:00
alexey.lysiuk 73f4e013f1 Font kerning is no longer ignored in intermission screen
See http://forum.zdoom.org/viewtopic.php?t=50304
2016-01-06 13:26:05 +02:00
Christoph Oelckers 5474e01de8 - removed FraggleScript's 'sectortype' function. This was GZDoom exclusive and never documented so it got no public exposure. Since this is incompatible with the damage related changes, it has no more use.
- major overhaul of the static sector damage system:

* consolidated special based damage, Sector_SetDamage and UDMF properties into one set of damage properties. The parallel handling that could lead to double damage infliction was removed. This also means that damage through sector specials can be retroactively changed through Sector_SetDamage.
* all special cases were turned into flags. The new system can switch between Strife's delayed damage and regular damage, and it can also set whether terrain splashes are used or not. It also has access to the special properties of the end-level type (i.e. switching off god mode and ending the level.)
* the damage related flags are accessible through Sector_ChangeFlags, not the damage functions themselves.
2016-01-06 12:12:47 +01:00