Commit Graph

6267 Commits

Author SHA1 Message Date
Christoph Oelckers d0978d0760 - added EDF sector handling. 2016-01-10 10:05:06 +01:00
Christoph Oelckers 4fd0a726b1 - more work on EDF handling. Vaporware demo is now loading. 2016-01-10 10:05:06 +01:00
Christoph Oelckers feeaf29c46 - set translations for Eternity's linked portals for testing. 2016-01-10 10:05:05 +01:00
Christoph Oelckers bdfac02f69 - EDF parser for linedefs and sectors. Also extended the Eternity xlat table to handle the parameterized types to the point EDF needs. 2016-01-10 10:05:05 +01:00
Christoph Oelckers 9fe016d6d0 - EDF parser part 1: Mapthings. 2016-01-10 10:05:04 +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
Christoph Oelckers f391216ab9 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-09 19:48:01 +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 52bab6571b Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-01-09 01:24:18 +01:00
Christoph Oelckers 23ff54c942 Merge branch 'zmaster' 2016-01-09 01:23:45 +01: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 ddc8c06da8 Merge pull request #35 from alexey-lysiuk/fix_mmx_check
- fixed: check for MMX availability
2016-01-08 10:20:29 +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
alexey.lysiuk d97494afea - fixed: check for MMX availability
the check was using C compiler flags instead of C++ which led to test failure for 32-bit Intel targets, at least on Linux with GCC
2016-01-08 10:18:16 +02: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
Christoph Oelckers 926e9fdac4 - fixed: For 2D-drawing of camera textures the render style was not set. 2016-01-07 22:20:57 +01: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 1b20a06ec4 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-06 17:16:06 +01: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
Christoph Oelckers b0db5d9b16 - added a SECF_SILENTMOVE flag.
Since Eternity got this it's a good candidate for a potential Super-Boom standard, and it's also useful for silencing a sector temporarily without removing the sound sequence.
2016-01-06 02:16:33 +01:00
Christoph Oelckers d34077a3ba - ... and finally the push flag. 2016-01-06 02:05:39 +01:00
Christoph Oelckers 3ffcec3eb3 - moved friction flag from special to Flags as well. 2016-01-06 02:01:59 +01:00
Christoph Oelckers 6a63effa1f - fixed: A_CheckTerrain did not use the proper damage type for processing an instant death sector.
- moved sector secret information from sector_t::special and secretsector to two flag bits in sector_t::Flags.

This is to get rid of the bit masking madness in the floor/ceiling thinkers which need to preserve this bit when they change a sector's type.
2016-01-06 01:50:45 +01:00
Christoph Oelckers 1c6a00059f - fixed: MAPINFO option fs_nocheckposition parsed the '=' twice. 2016-01-05 20:41:59 +01:00
Christoph Oelckers 7d2bbbd351 - fixed rendering of two-sided polyobjects that have their upper or lower textures exposed. 2016-01-05 18:59:32 +01:00
Christoph Oelckers 006d3022ca - changed the BFG decal for Freedoom to blue. With the software renderer this will be displayed as gray due to lack of blue in the palette. (Itz's still better than green, though.) 2016-01-05 17:10:47 +01:00
Christoph Oelckers 46b5900a0d Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-05 17:06:24 +01:00