Commit graph

5801 commits

Author SHA1 Message Date
Christoph Oelckers
d347415aee - fixed some garbage collection issues with interpolations:
* FInterpolator depended on external references to prevent its content from getting GC'd.
* none of the pointers in the interpolation objects were declared to the GC.

The result of these issues was that changing anything about the life cycle of interpolation objects caused corrupted memory crashes when a level was changed.
2016-01-21 11:36:37 +01:00
Christoph Oelckers
e4982b1ced Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-21 10:24:03 +01:00
Christoph Oelckers
03d7418f51 - fixed: Since sector movement is done after P_PlayerThink is called, any player position change induced by this is not factored into player_t::viewz and needs to be added explicitly.
This fixes the infamous 'view squats down a bit when riding up an elevator' effect. It is also there in the other cases but far less pronounced.
2016-01-21 10:23:20 +01:00
coelckers
8b4194a3e0 Merge pull request #491 from MajorCooke/TF_SensitiveZ2
A_Teleport TF_SensitiveZ
2016-01-21 09:10:33 +01:00
MajorCooke
09733d8083 - Don't set both self and pointer's z to spotz when teleporting. 2016-01-20 18:50:30 -06:00
Randy Heit
710fa55288 Port recent SMF changes to XMI and HMI:
- Handle SysEx messages instead of ignoring them.
- Don't lose time for unhandled events with delays.
2016-01-20 18:37:05 -06:00
Randy Heit
7f6b421e87 Make sure all unhandled delayed MIDI events generate NOPs
- Looking over the code again, I see that discarded SysEx messages can
  cause the same issue as unhandled meta events, so generalize the
  returning of a NOP for everything.
2016-01-20 18:27:04 -06:00
MajorCooke
93aff2413f Fixed an issue which caused A_Teleport to set the caller and itself to SpotZ's z position. 2016-01-20 18:18:00 -06:00
MajorCooke
116e157447 Nevermind this. 2016-01-20 15:52:56 -06:00
MajorCooke
d20a7516c9 Updated A_FaceVelocity to remove conflicts. 2016-01-20 15:51:11 -06:00
Edward Richardson
e5c67cee83 Merge branch conflicts fix
- CONFLICT (content): Merge conflict in src/p_acs.cpp
- Updated position variables
2016-01-21 10:49:57 +13:00
Randy Heit
1a356dfa51 Fixed: MIDI meta events were completely discarded, including their delays
(unless the event was for setting the tempo) This left the following
events in the track to happen at the wrong time.
2016-01-20 14:53:56 -06:00
Christoph Oelckers
68c0f929dc - refactoring complete. The source compiles again with the renamed position variable. 2016-01-20 15:12:51 +01:00
Christoph Oelckers
13e25faea7 - p_sight.cpp, p_spec.cpp and p_switch.cpp refactored. 2016-01-20 14:20:14 +01:00
Christoph Oelckers
4d8070927d - p_maputl.cpp done. 2016-01-20 14:04:47 +01:00
Christoph Oelckers
25107ed421 - since I had to shuffle around the first variables in AActor, let's better commit that change. 2016-01-20 13:49:52 +01:00
Christoph Oelckers
35271187a5 - took care of the rest of p_map.cpp. 2016-01-20 13:48:05 +01:00
Christoph Oelckers
83cbf6cae5 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/g_hexen/a_wraith.cpp
2016-01-20 11:41:27 +01:00
Christoph Oelckers
500bc2b852 - fixed two refactoring errors:
* A_BridgeOrbit had its radius as an int, not a fixed_t.
* PIT_CheckThing used the wrong coordinate for checking actor distance.
2016-01-20 11:39:41 +01:00
Christoph Oelckers
e9b23cf833 - keep evaluation order of Random() calls defined. 2016-01-20 09:25:30 +01:00
Edward Richardson
5c8ebf487d Fixed load order for saves
- Make sure the PRNG tables are restored after the base level is loaded,
otherwise the tables will restore in a modified state.
2016-01-20 19:14:43 +13:00
Christoph Oelckers
7ea3e49332 - refactored p_mobj.cpp and the first half of p_map.cpp. 2016-01-20 01:48:57 +01:00
Randy Heit
9b9008ecc7 Restore original offset range for WraithFX5 spawn 2016-01-19 18:00:46 -06:00
Christoph Oelckers
7658111566 - refactoriung of thingdef_codeptr.cpp - probably the ugliest file in the entire project... 2016-01-19 20:15:45 +01:00
Christoph Oelckers
97620b0645 - fixed some leftover unused variable warnings.
- match the variable names in thingdef_codeptr.cpp to the ones in the scripting branch to reduce the amount of merge conflicts in upcoming changes.
2016-01-19 16:09:44 +01:00
Chris
119c2f36b2 - Fixed an incorrect memset parameter in wi_stuff.cpp.
- Removed some whitespace from wi_stuff.h.
2016-01-19 13:20:32 +00:00
Christoph Oelckers
27aeb6a656 - g_shared refactored 2016-01-19 13:26:05 +01:00
Christoph Oelckers
9f78bcd1e6 - Strife game code refactored for coordinates. 2016-01-19 11:50:07 +01:00
Christoph Oelckers
6ae09334a3 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/r_defs.h
2016-01-19 10:51:42 +01:00
Christoph Oelckers
4df8c12534 - added a missing NULL pointer check in software rendering code. 2016-01-19 10:50:01 +01:00
Christoph Oelckers
069889c5ce Merge remote-tracking branch 'remotes/zdoom/master' 2016-01-19 10:46:59 +01:00
Christoph Oelckers
c02d922014 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-19 01:11:13 +01:00
Christoph Oelckers
2326928ff7 - the last bits of Hexen refactored
This also fixes a problem with some of Hexen's Wraith's effects which did some repositioning without properly linking them into the blockmap.
2016-01-19 01:10:57 +01:00
coelckers
5c7f72278b Merge pull request #483 from kevans91/ndebug-fixes
*BinPack fixes -- disjointRects only defined #ifdef _DEBUG
2016-01-18 22:39:40 +01:00
Christoph Oelckers
ef7be016c4 - all those 'actor->SetZ(actor->Z() +...) calls weren't pretty so now there's an AddZ method, too. 2016-01-18 22:32:36 +01:00
Christoph Oelckers
c8052ce1b8 - 4 more Hexen files processed. 2016-01-18 22:26:02 +01:00
Christoph Oelckers
61b66904da - more Heretic and Hexen refactoring. 2016-01-18 22:11:18 +01:00
Braden Obrzut
d94aaf1fcf - Fixed: Undefined negative double to unsigned int conversion in FNodeBuilder::PointToAngle. 2016-01-18 16:03:37 -05:00
Kyle Evans
7358817975 *BinPack fixes -- disjointRects only defined #ifdef _DEBUG 2016-01-18 14:45:23 -06:00
Christoph Oelckers
ca5ac72364 - added missing FIXED2DBL call in A_Face. 2016-01-18 21:17:11 +01:00
Christoph Oelckers
c1b44a5694 - let's make some use of AActor::Pos and get rid of some of those X() and Y() calls...
- restore proper actor.h file.
2016-01-18 21:01:52 +01:00
Christoph Oelckers
460751653d - refactored most of Heretic's game code. 2016-01-18 20:13:20 +01:00
Christoph Oelckers
57ab1387f2 - yet more refactoring.
Note about A_SkelMissile: The direct change of the missile's position was changed to use SetOrigin. If this is later supposed to be portal-aware, such direct coordinate changes are a no-go to ensure that everything is properly maintained.
2016-01-18 18:52:24 +01:00
Christoph Oelckers
2b5e5b6bc3 - next round of refactoring.
This contains some advance work for handling line-to-line portals in A_PainShootSkull.
This function is special because it performs a map check itself instead of using one of the common functions from p_map.cpp, like most of the rest of the game code.
2016-01-18 16:49:24 +01:00
Christoph Oelckers
b63eb391f7 - refactored two mire files.
- fixed: FraggleScript's SetObjPosition function did not properly set the moved actor's properties. Better use SetOrigin for changing the position.
2016-01-18 12:37:39 +01:00
Christoph Oelckers
e8ee8c5c97 - fixed: secspecial_t was left uninitialized, causing its damage type being an invalid name. 2016-01-18 01:21:20 +01:00
Christoph Oelckers
43314f0c0d - started refactoring p_map.cpp
- added AActor::Top function to replace the frequent occurences of actor->z + actor->height.
2016-01-18 00:59:16 +01:00
Christoph Oelckers
b735138332 - forgot the changes to actor.h. 2016-01-17 22:56:16 +01:00
Christoph Oelckers
3f34083e88 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/actor.h
2016-01-17 22:16:27 +01:00
Christoph Oelckers
a65ff39872 - more coordinate refactoring in p_enemy.cpp. 2016-01-17 22:13:17 +01:00
Christoph Oelckers
be91771abc Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-17 18:36:50 +01:00
Christoph Oelckers
c611456397 - more refactoring of AActor coordinate access. 2016-01-17 18:36:14 +01:00
coelckers
2702e68d83 Merge pull request #480 from alexey-lysiuk/fix_legacy_osx
Fixes for legacy versions of OS X
2016-01-17 17:12:59 +01:00
Christoph Oelckers
5b610390e1 - some more inline functions. 2016-01-17 16:49:15 +01:00
Christoph Oelckers
87689d3ba6 - global search&replace of ZatPoint calls with commonly named actor variables. 2016-01-17 14:08:20 +01:00
Christoph Oelckers
4ec1459ac0 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-17 13:51:15 +01:00
Christoph Oelckers
3e446ea04d - replaced access to AActor's coordinate members with access functions
(first 200 compile errors down...)
2016-01-17 13:48:16 +01:00
alexey.lysiuk
552c440afa Fixed another issue with Hexen Mac
Hopefully there will be no more bugs with Hexen Mac IWADs (demo or full) as all extra lumps are now discarded
2016-01-17 13:29:44 +02:00
Christoph Oelckers
bf5ee5e542 - added X(), Y(), Z() access functions to AActor.
This commit is just preparation for upcoming changes to completely encapsulate the coordinate info in AActor because I'm going to have to work with an altered version of actor.h that cannot be committed without breaking the engine.
With this file present in the repo before work is started the changes can be committed piece by piece.
2016-01-17 12:23:49 +01:00
alexey.lysiuk
24501dbc93 Fixed copy to pasteboard on legacy OS X
Copy/paste is now implemented using the method available on all supported versions
This fixes 'unrecognized selector' exception on OS X 10.4 and 10.5
2016-01-17 11:58:44 +02:00
alexey.lysiuk
bfc116b2a4 Fixed exit crash on legacy OS X
There is no need to close (and thus deallocate) console window explicitly
This will be done by autorelease pool in application controller event loop
OS X with GC and/or ARC was not affected by this issue
Older versions like 10.4 or 10.5 crashed because of double deallocation
2016-01-17 11:51:46 +02:00
Christoph Oelckers
724475823c Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-17 00:14:59 +01:00
MajorCooke
421dcacb94 Added NULL check to lines. 2016-01-16 16:36:42 -06:00
MajorCooke
e4a74e91fc - Puffs should not spawn on floors or ceilings with sky flats without the SKYEXPLODE flag.
- Added line horizon check for puffs as well.
2016-01-16 16:33:19 -06:00
Christoph Oelckers
e6b6fd799d Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-16 16:31:20 +01:00
Christoph Oelckers
0e645ad173 - added a 'non-modify' mode to P_TeleportMove and let A_Respawn use that, rather than letting P_TeleportMove muck around with the actor properties and then have A_Respawn only partially and haphazardly restoring them afterward. 2016-01-16 16:30:53 +01:00
alexey.lysiuk
afed5e62eb Fixed intercept check in FPathTraverse
Because frac variable has fixed_t type it must be compared with fixed one
Test case: try to break stained glass windows or open door at the beginning of Hexen's MAP01
2016-01-16 13:22:27 +02:00
Christoph Oelckers
65080a65c9 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-16 09:07:20 +01:00
Christoph Oelckers
c3491de466 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-16 09:06:10 +01:00
Christoph Oelckers
5a8062abba - fixed copy/paste error in secmovefac. (It returned friction instead of movefactor...) 2016-01-16 09:05:46 +01:00
Braden Obrzut
8f31af3ff9 - Work around issue with tree-loop-vectorize in p_acs.cpp. 2016-01-16 00:51:17 -05:00
Christoph Oelckers
f9ae304596 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-15 18:36:49 +01:00
alexey.lysiuk
a8e5b90667 Fixed stuck Strife dialogs
See http://forum.zdoom.org/viewtopic.php?t=50451 and http://forum.zdoom.org/viewtopic.php?t=48470
2016-01-15 18:32:49 +02:00
Christoph Oelckers
90e2dc5f5a - some minor optimizations to FPathTraverse:
* since we can trivially decide whether a line crosses the trace behind the end point from checking the return value of P_InterceptVector, there is no need to add those to the list of intercepts as they get discarded anyway in t
* maxfrac is always FRACUNIT so there's no need to waste some variable for a constant value.
2016-01-15 16:40:50 +01:00
Christoph Oelckers
ef8dc22f7d - looks I missed one file when I member-fied P_AproxDistance and R_PointToAngle2 calls. 2016-01-15 15:36:21 +01:00
coelckers
b38d5b6fb9 Merge pull request #475 from MajorCooke/AlwaysPuffFix
Rail Puff Support for Floors and Ceilings
2016-01-15 13:36:51 +01:00
Christoph Oelckers
7e0e3cf1aa Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-15 13:11:59 +01:00
Christoph Oelckers
48232f548d Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-15 12:56:56 +01:00
Christoph Oelckers
867b7767ef - ignore COMPAT_POINTONSIDE in a few places where the side effects of the old P_PointOn*Side functions are either not needed or problematic:
* the sight checking code needs to be as precise as possible and should not depend on some old semi-broken routines. (This is more a precision issue of these routines - P_PointOnDivlineSide removes the lower 8 bits of each value - than having an issue with returning the wrong side in some cases.)
 * for slope creations it is flat out wrong to use the old routines at all.
 * also ignore this in the modern (box-shaped) case of FPathTraverse::AddLineIntercepts. This functionality is new to ZDoom and therefore not subject to compatibility concerns.
 * the line-to-line teleporter. It seems the hideous fudging code was just there to work around the design issues of these functions, so let's better not ever call them here in the first place.
 * A_PainShootSkull: Its usage here does not depend on these issues.
 * P_ExplodeMissile: New code exclusive to ZDoom.
 * FPolyObj::CheckMobjBlocking

All occurences in p_map.cpp have been left alone although most of them probably won't need the compatibility option either.
2016-01-15 12:56:27 +01:00
Randy Heit
16781e47ae Use a 64k stream buffer for all streams, not just net streams
- FLACs need a larger buffer than the default to run without starving on
  later versions of FMOD.
2016-01-14 20:41:09 -06:00
MajorCooke
dd9e7560c4 Added support for puffs to spawn on floors and ceilings if ALWAYSPUFF is used. 2016-01-14 11:21:08 -06:00
coelckers
722ef02719 Merge pull request #473 from MajorCooke/FadeFix
Fade fix
2016-01-14 09:16:39 +01:00
Braden Obrzut
6a87c6cd19 - Fixed usage of uninitialized value in skybox rendering. 2016-01-14 00:49:57 -05:00
MajorCooke
629eaa35a3 - Fixed: A_Fade* could destroy live player bodies because it was calling the Destroy() function directly instead of going through P_RemoveThing. 2016-01-13 20:26:15 -06:00
Randy Heit
f9574a98fd Fix Timidity's DLS instrument loading:
- Envelope data needed to be converted to SF2 values.
- Fine tuning was ignored which made pretty much every instrument off tune.
- Despite this, it still sounds like shit compared to FMOD or Microsoft's
  wavetable synth. There are lots of missing notes and some instruments
  are still off tune. I'm not sure it's worth trying to salvage it. It'd
  probably be better to scrap it, since Timidity is very much oriented
  toward GF1 patches, which it handles perfectly fine.
2016-01-13 17:25:24 -06:00
Christoph Oelckers
2657c08831 - fixed: stacked sector portals were not added to the render list 2016-01-13 21:33:27 +01:00
Christoph Oelckers
cd778b6bdc - fixed CollectPortalSectors 2016-01-13 00:15:04 +01:00
Christoph Oelckers
7c925e39fe Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-12 21:36:48 +01:00
Christoph Oelckers
4d2ca0da45 - empty gl_portals.cpp file. 2016-01-12 21:36:33 +01:00
Christoph Oelckers
d234a6af5d Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-12 21:35:18 +01:00
Christoph Oelckers
37f18055af - turned sector_t::FloorSkyBox and CeilingSkyBox into an array.
- removed unused SpreadCeilingPortal function.
2016-01-12 21:34:41 +01:00
Randy Heit
dc66f4cb3f Make _WM_AdjustNoteVolume's pan_ofs a signed int 2016-01-12 06:35:05 -06:00
Christoph Oelckers
aa69c39ff1 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/CMakeLists.txt
2016-01-12 11:23:45 +01:00
Edoardo Prezioso
b87c612aba - Fixed Clang warning on wildMIDI code.
Now that '_event_data.data' is changed to 'unsigned int', the 'unsigned long' cast is not needed anymore.
2016-01-12 11:12:19 +01:00
Christoph Oelckers
9e33599536 - at least get the terms being used right. Of course it's not EDF (which would way beyond the scope of what's intended here) but only Extradata, that's being supported.
(For EDF an external converter would make more sense.)
2016-01-12 09:13:55 +01:00
rheit
8408aec347 Merge pull request #456 from alexey-lysiuk/lzma_1514
Updated LZMA SDK to version 15.14
2016-01-11 20:53:51 -06:00
Randy Heit
141cd660eb Didn't need note_off_decay in the WildMidi sample struct 2016-01-11 20:07:14 -06:00
Randy Heit
27bf86e1eb Fix(?) dBm_pan_volume table
- The missing comma on the first line of dBm_pan_volume's definition
  looked suspicious, so I checked the MIDI specification at
  http://www.midi.org/techspecs/rp36.php and found the equations
  there gave different dB values than were in the table. So I
  rebuilt it using the equation given there:

    20*log (sin (Pi /2* max(0,CC#10 – 1)/126))
2016-01-11 20:06:07 -06:00
Randy Heit
268d2faaf6 Import volume handling changes from current WildMidi git
- Description there reads:
  > Major work done on “log” volumes. Calculations are now based on decibels.
2016-01-11 20:06:07 -06:00
Randy Heit
5b4a6483b5 Remove get_decay_samples. Not needed. 2016-01-11 20:06:06 -06:00
Randy Heit
7f01a6a30a Import envelope tweaks for current WildMidi git 2016-01-11 20:06:06 -06:00
Randy Heit
50ecec199f More stuff we don't need in WildMidi removed 2016-01-11 20:06:05 -06:00
Randy Heit
88beae55bd Add separate NRPN coarse/fine adjustment for WildMidi 2016-01-11 20:06:05 -06:00
Randy Heit
7f44bc6d0e Add Yamaha and GM reset sysex handling to WildMidi 2016-01-11 20:06:05 -06:00
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
Christoph Oelckers
7c8d48bbfc Merge branch 'edf-gl'
Conflicts:
	src/actor.h
	src/p_spec.cpp
2016-01-12 00:02:17 +01: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
2f2bd91083 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-11 23:59:35 +01: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
Christoph Oelckers
65022b780a - implemented 'copy portal to wall' linedef type. 2016-01-11 22:44:53 +01:00
MajorCooke
7843ece01a Fixed: Friendly fire damage didn't take LAXTELEFRAGDMG into account. 2016-01-11 15:08:38 -06:00
Christoph Oelckers
196c9bc34d - cleaned up the skybox type detection logic. 2016-01-11 20:29:24 +01:00
Christoph Oelckers
0e017f1e2d - cleaned up the merge and consolidated redundant code. 2016-01-11 15:40:25 +01:00
Christoph Oelckers
f83b21ff26 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/p_spec.cpp
2016-01-11 15:35:01 +01: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
Christoph Oelckers
d5cf31f821 Merge branch 'zmaster' into edf-gl
Conflicts:
	src/actor.h
2016-01-11 15:10:10 +01:00
Christoph Oelckers
ef7bcb3a66 - implement Eternity-Style flat and horizon portals. Not tested yet due to lack of material to work with. 2016-01-11 15:07:58 +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
ab1bf2bca3 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/actor.h
2016-01-10 22:43:34 +01: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
Christoph Oelckers
76b0971067 Merge branch 'master' into edf-gl 2016-01-10 10:31:00 +01:00
Christoph Oelckers
bfbc160b0c Merge branch 'zmaster' 2016-01-10 10:30:23 +01:00
Christoph Oelckers
39cdb7cf30 - implement 'loadacs' option for MAPINFO. 2016-01-10 10:21:17 +01:00
Christoph Oelckers
1e193206bf - removed unused RemoveLineIDs function. 2016-01-10 10:08:06 +01:00
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
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
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