Commit graph

7302 commits

Author SHA1 Message Date
Randy Heit
66c4bc1fee Fixed various problems when drawing psprites in a camera texture
- When the camera texture for a player view was rendered, its psprites
  would overwrite the ones stored for hardware acceleration.
  * Use a temporary vissprite in R_DrawPSprite() until it's known that it
    will be accelerated.
  * Do not write to any of the VisPSprites*[] arrays until it's known that
    the sprite will be accelerated.
2016-04-17 20:55:07 -05:00
Randy Heit
bf629d2590 Use a range instead of strict equality when deciding head sounds
- See http://forum.zdoom.org/viewtopic.php?f=7&t=51583
2016-04-17 20:14:25 -05:00
Christoph Oelckers
2661a94fe9 - call UpdateSectorRenderList from LinkToWorld as well, because this can be called from outside the actor's Tick function. 2016-04-18 01:35:37 +02:00
Christoph Oelckers
8f61c1cdd8 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-18 00:02:55 +02:00
Christoph Oelckers
89b2cc45a2 - reverted P_CreateSecNodes to the regular FBlockLinesIterator.
This got accidentally committed. Even if this gets extended to reach through portals it needs to be done differently. FMultiBlockLinesIterator can't guarantee to get every sector that's being touched.
2016-04-18 00:02:07 +02:00
Christoph Oelckers
54d78df267 - added a new sector list to AActor that collects all portal-linked sectors the actor's center is in. (Inspired by Eternity's solution to the same problem.)
This is for rendering the sprite properly in all areas the actor touches. The original thinglist is not sufficient for this and Boom's touching thinglist has other purposes and collects too much data.
This new list will only get filled in when the actor is actually crossing a portal plane, for the normal sector thinglist will still be used.
This piggybacks on the msecnode_t code which has been extended to be able to handle more than one list by passing the sector's membert pointers as parameters.
2016-04-17 23:48:04 +02:00
Christoph Oelckers
f66202aef1 - fixed: If due to portal transitions, the chasecam cannot be interpolated, the entire view interpolation must be disabled for the current frame. 2016-04-17 18:42:54 +02:00
Christoph Oelckers
08514de768 - fixed A_WraithFX2 which had an incomplete floating point conversion. 2016-04-17 18:19:46 +02:00
Christoph Oelckers
3ed7a25d61 - added polyportal offset updates.
- removed the nodebuilder message for splitting polyobject subsectors because it is no longer relevant.
2016-04-17 17:10:11 +02:00
Christoph Oelckers
0d7bd368fa - added some fudging to draw the outer linedefs of a portal area.
This is needed so that polyportals get rendered correctly. For non-polyportals these will normally be outside the portal window and just be discarded.
2016-04-17 15:46:04 +02:00
Christoph Oelckers
faeb0303fe - renamed ADynamicLight's intensity properties to radius, to have their name match their meaning. 2016-04-17 13:53:29 +02:00
Christoph Oelckers
357869a7b5 Merge branch 'zmaster' 2016-04-17 12:29:59 +02:00
Christoph Oelckers
f27c762319 - fixed: The Heresiarch's check for full rotation of its balls depended on BAM semantics so it should still be checked as such to ensure consistent behavior. 2016-04-17 12:28:35 +02:00
Christoph Oelckers
59133a7009 - fixed bad merge in p_saveg.cpp 2016-04-17 12:09:04 +02:00
Christoph Oelckers
dcc77e5fb2 Merge remote-tracking branch 'remotes/zdoom/master' 2016-04-17 12:06:26 +02:00
Christoph Oelckers
a199fe1825 - fixed: loading polyobjects from a savegame was incomplete. 2016-04-17 12:04:32 +02:00
Christoph Oelckers
8a010ab871 - allow 90° rotations in skybox sectors. 2016-04-17 11:58:26 +02:00
Christoph Oelckers
a1e8d83724 - added SetMusicVolume ACS function. 2016-04-17 10:56:46 +02:00
Christoph Oelckers
5e73cdc670 - deleted leftover label in trace code. 2016-04-17 10:41:13 +02:00
Christoph Oelckers
0a35027f67 - fixed use of validcount for the GL renderer.
This needs to be incremented more locally to the place where it is used, so that it is guaranteed that each viewpoint that needs to be rendered increases it.
As a result the uses in the portal code could be removed.
2016-04-17 10:39:29 +02:00
Christoph Oelckers
bc2a5b3f16 - fixed typo in automap background position calculation. 2016-04-17 10:19:56 +02:00
Christoph Oelckers
430f3419b0 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-17 01:24:41 +02:00
Christoph Oelckers
6a27267500 - changed handling of one-time, one-way door polyobjects to be more efficient.
The old code kept the dead thinker, resulting in constant deletion and recreation of the subsector links and PolyBSP because the interpolation kept running.
Changed it so that the thinker is destroyed and the polyobject gets blocked by setting a new flag.
2016-04-17 01:24:07 +02:00
Christoph Oelckers
95de1faa80 - fixed: The portal coverage builder initialized node_t::len differently than the polyobject splitter.
This was creating quite a mess when loading savegames with both portals and polyobjects.
2016-04-17 01:16:46 +02:00
Christoph Oelckers
01983cdee1 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-16 22:58:39 +02:00
Christoph Oelckers
7ac0cfbbb9 - added support for angle changing portals to P_AimCamera. 2016-04-16 22:54:47 +02:00
Christoph Oelckers
e7c0fd26ba - restored an accidentally deleted line in the Heresiarch code. 2016-04-16 21:28:08 +02:00
Christoph Oelckers
6db95182cf Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-16 19:42:12 +02:00
Christoph Oelckers
0f6a567055 - added portal-awareness to the railgun trail.
This required some changes to the Trace function because it turned out that the original was incapable of collecting the required information:

* actors are now also linked into blockmap blocks on both sides if they occupy the boundary of a sector portal.
* Trace will no longer set up parallel traces in all parts connected with sector portal, but only use one trace and relocate that on the actual boundary.
2016-04-16 19:41:33 +02:00
Christoph Oelckers
eb30bf6e14 - fixed: Offsetting a vector by portals did not properly adjust the trace after crossing a portal. 2016-04-16 00:17:12 +02:00
Christoph Oelckers
cd75a46917 - fixed incorrect use of 'frac' in Trace's EnterLinePortal function.
How did this go wrong...?
2016-04-15 22:22:38 +02:00
Christoph Oelckers
b345c8c377 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-15 21:15:06 +02:00
Christoph Oelckers
6dfb4bdd41 - changed floor and ceiling movers so that portal planes do not block movement of the opposite plane, even if they are on the wrong side of it.
This fixes the cross-portal lift to the blue key in Vaporware.
2016-04-15 20:42:40 +02:00
Christoph Oelckers
dce9bf2760 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-15 19:46:41 +02:00
Christoph Oelckers
b73c6e847a - fixed: A_CheckRange calculated the square twice, resulting in a far too large value that got checked. 2016-04-15 18:46:31 +02:00
Christoph Oelckers
24776edd13 - fixed one of the most glaring omissions in the portal code: The wall clipper completely ignored portals when deciding how to treat a sector boundary, and ended up merging portal with non-portal planes.
This check is only active for linedef based portals, due to the large amount of maps that did it wrong with thing based portals.
Although it may well be that there are some maps that abuse this omission for linedef portals as well, these are better handled with a compatibility option if the need arises.

The main reason this was added is to streamline and optimize the portal handling between renderers in ZDoom and GZDoom. For that both need to show the same general behavior and for linedef portals it is also important to handle the same as in Eternity.
2016-04-15 16:39:58 +02:00
Christoph Oelckers
94cec02acc - fixed: FPNGTexture must readjust the file pointer after deciding to skip the tRNS chunk. 2016-04-15 15:15:34 +02:00
Christoph Oelckers
ed211ecbab - fixed positioning of portal things
In some situations it can happen that the sector here is not the frontsector of the anchor linedef, because some colinear node line with opposite direction causes this to be positioned on the wrong side. The only remedy here is to explicitly set the correct sector after spawning these things.
2016-04-15 15:02:28 +02:00
Christoph Oelckers
f0c2cd2d50 - fixed: 24 bit PNGs with transparent color need to set transpal to true in FPNGTexture::CopyTrueColorPixels. 2016-04-15 10:45:31 +02:00
Christoph Oelckers
a0a530945d - added new sector type 90 which designates a sector that is being used as a cubemapped skybox, in case someone wants to make one of those without using an actual sky for this. 2016-04-14 13:22:15 +02:00
Christoph Oelckers
328047ea28 - fixed issues with recent Stereo3D submission:
* there was a CVAR that was only defined in Windows
 * code did not compile with GCC.
 * due to bad setup it disabled multisampling.
2016-04-14 10:16:04 +02:00
Christoph Oelckers
77f05a0010 - fixed spawn positions for Korax's missiles. 2016-04-14 00:21:38 +02:00
Christoph Oelckers
caf80e74c4 - fixed multiplication/division mixup in TextureAdjustWidth.
- fixed: For top textures an incorrect ceiling height was passed to DoTexture.
2016-04-13 23:09:45 +02:00
Christoph Oelckers
812cdc86fb Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-13 19:33:56 +02:00
Christoph Oelckers
bffb7444a0 - removed portal check for distance check in GL code. 2016-04-13 19:33:45 +02:00
Christoph Oelckers
0f7fce8bbb - removed portal offsetting from the sprite distance check.
This isn't necessary. When rendering no actors from other groups may ever come into view directly - only when the respective part of the level is rendered through a portal. But at that point the camera is in a position where it's already correctly placed with relation to that actor.
2016-04-13 19:32:54 +02:00
Christoph Oelckers
d657692229 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-13 16:24:44 +02:00
Christoph Oelckers
d66a28fcde - fixed offsetting of player weapon sprites. 2016-04-13 16:24:25 +02:00
Christoph Oelckers
d0b30f31e1 - fixed: Checking for slopes at untextured bottom parts of the wall checked the ceiling's slope not the floor's. 2016-04-13 11:41:51 +02:00
Christoph Oelckers
37f43617d9 - make distance check 3D and use proper viewpoint. 2016-04-13 11:35:05 +02:00
Christoph Oelckers
d88a5ac353 - make distancecheck 3D and use the actual view position for calculation. 2016-04-13 10:48:39 +02:00
Christoph Oelckers
45cfea17f5 - removed unused variable. 2016-04-13 10:34:04 +02:00
Christoph Oelckers
efce248a98 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-12 22:42:33 +02:00
Christoph Oelckers
21b45fc0eb - fixed: distancecheck as a class property needs to be copied manually to subclasses. 2016-04-12 22:42:02 +02:00
Christoph Oelckers
bec3208efd - added support for distancecheck property. 2016-04-12 19:50:29 +02:00
Christoph Oelckers
a1a022581d Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-12 19:44:34 +02:00
Christoph Oelckers
3f0ed5d252 - added a distancecheck property to AActor that allows a given CVAR to be used as maximum display distance for actors of this type.
This is for WolfenDoom: BOA, which has some scripted sprite distance checks that very negatively affected performance.
2016-04-12 19:44:12 +02:00
Christoph Oelckers
a411b93e1d - fixed: The dynamic pulse light should always use its maximum size for linking into the sector lists, just like the other types with changing size do.
These limking operations are not cheap so it's preferable to have them affect a bit more geometry than running the linking code each tic.
2016-04-12 16:01:08 +02:00
Christoph Oelckers
e1a683b9ec - fixed minimum damage check in PowerDamage. 2016-04-12 15:49:13 +02:00
Christoph Oelckers
5d528fe317 - fixed: PCD_ENDTRANSLATION was missing a NULL pointer check. 2016-04-12 01:23:12 +02:00
Christopher Bruns
09d0cb5fd5 Merge branch 'master' of https://github.com/coelckers/gzdoom into two_more_stereo_modes
# Conflicts:
#	src/gl/system/gl_framebuffer.cpp
2016-04-11 18:25:54 -04:00
Christoph Oelckers
7a2e957225 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-11 23:14:53 +02:00
Christoph Oelckers
a97f67edb6 - fixed: P_GetMidTexturePosition needs to divide by scale, not multiply, to get the proper offset. 2016-04-11 23:12:35 +02:00
Christoph Oelckers
aec1c85c08 - fixed: alpha for patches needs to be multiplied by 65536, not divided by. 2016-04-11 22:21:17 +02:00
Christoph Oelckers
ae6df617ba - fixed: The FPathTraverse call in P_UsePuzzleItem was missing the PT_DELTA flag. 2016-04-11 22:10:46 +02:00
Christoph Oelckers
e72bfa8add - fixed: For finding the listener's sector the sound code used the wrong coordinate. 2016-04-11 21:02:44 +02:00
Christoph Oelckers
99ca649930 - fixed NULL pointer access in SetAmmoCapacity. 2016-04-11 20:42:43 +02:00
Christoph Oelckers
56f8974b66 - removed debug code. 2016-04-11 19:59:57 +02:00
Christoph Oelckers
273c1ea510 - fixed PointOnSide caclulation for dynamic lights. 2016-04-11 19:59:39 +02:00
Christoph Oelckers
77bfffaee0 - removed a few __cdecl's from the source. 2016-04-11 12:46:48 +02:00
Christoph Oelckers
bf2b61f61c - removed remaining STACK_ARGS from GL code. 2016-04-11 10:55:09 +02:00
Christoph Oelckers
7ce670951b Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
2016-04-11 10:49:11 +02:00
Christoph Oelckers
db86385cf6 - removed STACK_ARGS.
The only reason this even existed was that ZDoom's original VC projects used __fastcall. The CMake generated project do not, they stick to __cdecl.
Since no performance gain can be seen by using __fastcall the best course of action is to just remove all traces of it from the source and forget that it ever existed.
2016-04-11 10:46:30 +02:00
alexey.lysiuk
bd8b8911d5 - fixed Windows 32-bit build 2016-04-11 10:08:18 +03:00
MajorCooke
76f00131ff - Fixed: A_CheckBlock's dropoff check ignored the specifications of NOACTORS and NOLINES due to P_CheckMove blindly failing if P_CheckPosition failed. This lead to false positives such as blocking actors being detected when they shouldn't be. 2016-04-10 20:11:04 +02:00
Christoph Oelckers
76c18820cb - moved the declarations for the lighting thinkers to p_light.cpp.
Aside from the init function they are not needed anywhere else and that could also be placed into this file.
2016-04-10 18:29:23 +02:00
Christoph Oelckers
c12a85ee85 - removed some unused content from p_spec.h 2016-04-10 18:14:01 +02:00
alexey.lysiuk
93c334059a Made title text always visible in OS X startup window
Added temporary solution for the same foreground and background colors of the title in OS X startup window
It's used in graphical startup screen, with Hexen style in particular (for example WolfenDoom - Blade of Agony)
Native OS X backend doesn't implement this yet
2016-04-10 14:06:18 +02:00
Christoph Oelckers
fe973ba442 - tried to add precompiled headers to fastmath sources as well, but VC++ doesn't seem to want to play along. So I left this stuff in but disabled the precompilation until a solution can be found. 2016-04-10 13:54:42 +02:00
Christoph Oelckers
08b0be11a6 - add the precompiled header file for the previous commit. 2016-04-10 13:10:41 +02:00
Christoph Oelckers
9cc873ecdd - enable use of precompiled headers for MSVC. Thanks to a small CMake script I recently found this could be done non-invasively.
Due to the VC++ 2015 headers being rather bloated (the average include size per source is 400-500kb) this provides a noticable compile speedup, although right now this only covers the game code, so there should be more room for improvement.
2016-04-10 13:08:54 +02:00
Christoph Oelckers
12129b0f07 - added a system-include independent wrapper for Windows's OutputDebugString, so that this can be used more easily in files that cannot include windows.h. 2016-04-10 13:03:44 +02:00
Christoph Oelckers
ef08e29d51 - remove windows header #include from gameconfigfile.cpp, because it isn't needed. 2016-04-10 12:33:35 +02:00
Christoph Oelckers
f7adbc58bd Merge branch 'master' of c:\programming\doom-dev\zdoom 2016-04-10 11:31:38 +02:00
Christoph Oelckers
d48c0ce25c - fixed some particle positioning errors. 2016-04-10 10:57:48 +02:00
Christopher Bruns
f6d296e103 Add comment by line I modified to avoid compile problem with Visual Studio 2015 2016-04-09 22:08:40 -04:00
Christopher Bruns
355bc75001 Merge branch 'master' of https://github.com/coelckers/gzdoom into two_more_stereo_modes 2016-04-09 21:46:33 -04:00
Christopher Bruns
bde94879ad Restore stereoscopic geometry correctness, by inserting a minus sign where it always should have been, after finding that a compensating minus sign, where it probably should not have been anyway, was removed during the recent floating point refactoring. 2016-04-09 21:46:14 -04:00
Christoph Oelckers
84c8f38038 - fixed: The divisions in FTexCoordInfo::TextureOffset and RowOffset were turned into multiplications when converting to floating point. 2016-04-10 00:45:48 +02:00
Christoph Oelckers
dc753fca6e Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-09 23:30:29 +02:00
Christopher Bruns
072a5e60ae Naive change to get latest version to compile. 2016-04-09 17:03:55 -04:00
Christoph Oelckers
9a48adf81a - fixed: The software 2D drawer expected its translation pointer to be initialized by ParseDrawTextureTags. Removed the variable from DrawParms and made it and its initialization local to the software rendering code. 2016-04-09 22:56:12 +02:00
MajorCooke
c79a1b6a45 thing->floorz --> thing->dropoffz 2016-04-09 22:33:55 +02:00
MajorCooke
8b8c879994 - CBF_DROPOFF Fixes
- Fixed: CBF_DROPOFF didn't actually check the coordinates passed to it for dropoff height values. It only checked to see if it was stuck in lines.
2016-04-09 22:33:54 +02:00
Christoph Oelckers
dc72e7f3c2 - removed the check for VA_COPY from CMakeLists.txt.
This is because nothing uses va_copy anymore and it's a mandatory part of C++11, therefore always available.
2016-04-09 22:07:14 +02:00
Christoph Oelckers
1f1a0ca847 - fixed incorrect check for negative damage in APowerProtection::ModifyDamage. 2016-04-09 21:57:35 +02:00
Christoph Oelckers
bcebeadedc - fixed: ACS's GetActorPitch needs to convert to a signed angle. 2016-04-09 21:44:09 +02:00
Christopher Bruns
c6fa01dfbf Reimplement blue/yellow and quadbuffered stereo, this time with an additional CVAR gate on quadbuffered, for better hardware compatibility.obj
Something is terribly wrong with the separation in all stereo modes now though.
2016-04-09 15:40:55 -04:00
Christoph Oelckers
7a7e1652fc - fixed: lower textures used the wrong reference height for alignment 2016-04-09 21:06:32 +02:00
alexey.lysiuk
daa112e2ac Fixed OS X compilation after floating point merge
Header files from Carbon framework caused a few symbol conflicts
2016-04-09 20:54:04 +02:00
Christoph Oelckers
2e16f3d77e - made some adjustment for the DrawTexture changes. 2016-04-09 20:49:27 +02:00
Christoph Oelckers
fde1f28d71 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-09 20:48:54 +02:00
Christoph Oelckers
a827bab576 - refactored the use of tag lists so that they do not have to be passed around between functions.
This means that the varargs functions themselves are now responsible for parsing them into DrawParms.
This was done because DrawTextV made a blanket assumption that every single vararg has the size of a 32 bit integer and caused crashes when anything else was passed. It also failed to eliminate any tag that is incompatible with text display. These will now abort DrawText and trigger an assert.
2016-04-09 20:47:54 +02:00
Christoph Oelckers
1f0fd85d0e - adjustments for the DrawTexture interface changes. 2016-04-09 13:05:43 +02:00
Christoph Oelckers
bc42dd26c8 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-09 13:00:14 +02:00
Christoph Oelckers
e2ae7d8f5d - removed the unused x and y parameters from DrawTextureParms. 2016-04-09 12:59:50 +02:00
Christoph Oelckers
c502a4b3cc Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-09 12:55:34 +02:00
Christoph Oelckers
43dd759859 - changed DrawTexture so that the parameters get parsed in the varargs function directly and that the virtual function that is getting called gets the fully prepared data.
In order to avoid passing around tag lists, DrawTextV needs to parse everything itself and then pass a fully initialized structure to DrawTexture. This cannot be done if all variants require a varargs tag list.
Apparently the only reason for the old approach was the 'hw' parameter which was never used.
2016-04-09 12:55:12 +02:00
Christoph Oelckers
ca317a87ea - started working on tracking portal transitions for railgun shots. 2016-04-09 12:09:06 +02:00
Christoph Oelckers
bc7e159be0 - cleaned up ceiling creation and moved the Create function out of the DCeiling class.
- did the same for floors so that FraggleScript no longer needs access to the thinkers themselves.
2016-04-09 12:07:34 +02:00
Christoph Oelckers
caae61de4c - removed DMoveCeiling and let FS call DCeiling::Create instead. Made a minor change to DCeiling::Create to keep it compatible, because handling for instantly moving ceilings is a bit different. 2016-04-08 20:44:55 +02:00
Christoph Oelckers
919f99db61 - fixed typo in actor scale assignment when spawning. 2016-04-08 16:52:42 +02:00
Christoph Oelckers
39d03f12b1 - fixed float <-> fixed conversion errors in Fragglescript. 2016-04-08 15:14:26 +02:00
Christoph Oelckers
06dc96b062 - removed 64 bit warnings. 2016-04-08 14:21:20 +02:00
Christoph Oelckers
3f28478eb2 Merge branch 'master' of c:\programming\doom-dev\zdoom 2016-04-08 14:19:02 +02:00
Christoph Oelckers
8535a973cf - made MoveAttached, MoveCeiling and MoveFloor members of sector_t instead of DMover.
- call MoveFloor and MoveCeiling directly in FS's floorheight and ceilingheight functions and remove the dummy thinkers it had to use before.
2016-04-08 14:18:46 +02:00
Christoph Oelckers
e505bfd7a3 - took EResult out of DMover and made it an enum class. 2016-04-08 13:59:03 +02:00
Christoph Oelckers
fb2234396c - split DSectorEffect::MovePlane into MoveFloor and MoveCeiling.
What was the point of this strange setup anyway? MoveFloor and MoveCeiling were inlines calling the universal MovePlane, which had nothing better to do than a switch/case with two cases - floor and ceiling!
2016-04-08 13:39:08 +02:00
Christoph Oelckers
74c9a7bf67 - fixed angle calculation in AdjustPlayerAngle for portals.
Normally this will adjust relative to the actual direction to the target, but with arbitrary portals that cannot be calculated so using the actual attack angle is the only option.
2016-04-08 13:08:08 +02:00
Christoph Oelckers
fdf9d94b26 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-08 12:51:34 +02:00
Christoph Oelckers
7404142edf - fixed incorrect center point calculation. 2016-04-08 12:51:00 +02:00
Christoph Oelckers
25d7eaed0a - fixed parentheses in ADynamicLight::DistToSeg.
- floatifed OpenGL sector grouping.
- optimized light node collection. It should not create light nodes for out of range segs.
2016-04-08 12:38:09 +02:00
Christoph Oelckers
3e94832bfd - use the correct reference heights for positioning textures. 2016-04-08 01:58:13 +02:00
Christoph Oelckers
4d5671d654 - floatified the texture coordinate code. 2016-04-08 01:42:43 +02:00
Christoph Oelckers
eaf055dff4 - floatified the remaining parts of gl_walls.cpp. 2016-04-08 00:19:51 +02:00
Christoph Oelckers
4ac3734375 - floatified more of gl_wall.cpp. 2016-04-07 23:19:37 +02:00
Christoph Oelckers
ddbb8d79c1 - handle the player sprite when crossing a portal. 2016-04-07 21:13:37 +02:00
Christoph Oelckers
5cd9e58af5 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-07 21:12:31 +02:00
Christoph Oelckers
58002f7f96 - fixed: an 'if' that gets completely optimized away by a constant 'false' condition should not make the entire function disappear. 2016-04-07 20:31:12 +02:00
Christoph Oelckers
0cbdb9ab72 - handle display of player sprite during portal transition properly.
This checks if the current viewpoint lies on the interpolation path, translated by all active portals.
2016-04-07 19:35:01 +02:00
Christoph Oelckers
7df1a8ae81 - adjusted FGLLinePortal to recent changes in line_t. 2016-04-07 17:41:06 +02:00
Christoph Oelckers
47e20aead4 - disallow crossable portals on one-sided linedefs which do not belong to a polyobject.
Sadly the mappers cannot be trusted to use a feature correctly. Despite repeatedly telling that portals on one-sided lines are problematic, everybody seems to do it this way - and then report bugs if it doesn't work. Under such circumstances the only safe option is to block such portals entirely.

See http://forum.zdoom.org/viewtopic.php?f=2&t=51511&p=898522#p898522 for a typical example of the problems this might cause.
2016-04-07 17:13:56 +02:00
Christoph Oelckers
ee3e3e35e6 - partial floatification of wall texturing code. 2016-04-07 17:00:13 +02:00
Christoph Oelckers
485a1bd0a5 - fixed: The 3D-floor plane renderer mixed float and fixed point. 2016-04-07 16:25:30 +02:00
Christoph Oelckers
32bbec7cad - fixed: the random offset that gets used when spawning blood applies to both sprites and particles, not just sprites. 2016-04-07 14:14:44 +02:00
Christoph Oelckers
4af859094c - fixed: sprite clipping did not work anymore because the 'invalid' value was inconsistent.
- cleaned up the 'if' condition in PerformSpriteClipAdjustment,
- enabled weapon bobbing interpolation.
2016-04-07 14:09:07 +02:00
Christoph Oelckers
88542bed78 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-07 13:43:00 +02:00
Christoph Oelckers
1d286d5bd5 - added APROP_MaxStepHeight + APROP_MaxDropOffHeight. 2016-04-07 13:41:54 +02:00
Christoph Oelckers
ddb2f6b6cb - fixed: P_SpawnPlayerMissile still used the angle_t values for offsetting the autoaim traces. 2016-04-07 13:11:23 +02:00
Christoph Oelckers
1eeaee1ac7 - completely reviewed and fixed all codes using angles in the automap. 2016-04-07 13:05:29 +02:00
Christoph Oelckers
a1c03c9a62 - fixed: P_AimCamera inverted the pitch. 2016-04-07 12:44:46 +02:00
Christoph Oelckers
790e13e5cb fixed: For sight checks the 'eye' of the seeing thing should be placed at 3/4 height, not half its height. 2016-04-07 12:14:34 +02:00
Christoph Oelckers
7ebb961917 - added weapon bobbing interpolation.
This was so ridiculously simple that I really fail to understand why the previous attempt was so overcomplicated that it just failed for that.
2016-04-07 11:48:23 +02:00
Christoph Oelckers
7f23a91488 - fixed: smooth bobbing uses the full angular range to calculate its position. 2016-04-07 11:14:39 +02:00
Christoph Oelckers
14b370df66 - fixed automap rotation to point upward, not downward when am_rotate is on. 2016-04-07 10:39:15 +02:00
Christoph Oelckers
37ddd20b56 - removed leftover debug code from yesterday's particle fix. 2016-04-07 10:28:43 +02:00
Christoph Oelckers
5409ada0e3 let WM_DISPLAYCHANGE and WM_STYLECHANGED call DefWindowProc.
At least on GZDoom it seems to be important on some systems.
2016-04-07 10:26:57 +02:00
Randy Heit
4b10177e46 Make the firelines fudging more "streamlined" 2016-04-06 20:09:42 -05:00
Christoph Oelckers
3923039a1b - fixed: a sight check that starts right on a linedef should ignore that linedef.
Trying to calculate a slope to the target from this linedef's opening will always result in failure because it'd involve a division by zero.
2016-04-07 01:16:07 +02:00
Christoph Oelckers
3d44613377 Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-06 22:09:47 +02:00
Christoph Oelckers
dbad946fe3 - revert default planes to static in gl_sprite.cpp 2016-04-06 22:09:21 +02:00
Christoph Oelckers
b774fed93e - fixed: P_DrawSplash2's z-velocity was too high.
This code was ported from the 2005 floating point version, at one point it replaced 128 with 0.5, but 128 as a fixed point value needs to be 1/512. as a floating point value.
2016-04-06 18:46:52 +02:00
Christoph Oelckers
b93d4a796a - fixed angles for am_rotate. 2016-04-06 17:28:31 +02:00
Randy Heit
b796a5fed6 Fixed: segangle is only 16-bits, so AngleToFloat won't work on it directly 2016-04-06 08:45:07 -05:00
Christoph Oelckers
a0d0d9339e - fixed some uninitialized stuff in particle rendering.
- added gl_ClampLight to all places where the light level is set.
2016-04-06 14:03:21 +02:00
Christoph Oelckers
9196683e4f Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-06 13:27:23 +02:00
Christoph Oelckers
8ad49f5d33 - removed a leftover line from before the floating point conversion in p_user.cpp. 2016-04-06 13:21:17 +02:00
Christoph Oelckers
8cbdbdaf70 - fixed: The PathTraverse and sight checking code may not assume that ceiling(x) == floor(x)+1.
This will fail when a trace starts directly on a block boundary in which case x is a whole number. It should always use 'floor(x)+1' to ensure that the calculated point is at the right or upper edge of a block.
2016-04-06 13:19:09 +02:00
Christoph Oelckers
d4a2e9696e - removed 'inline' from P_Teleport declaration. 2016-04-05 22:27:11 +02:00
Christoph Oelckers
1a5a00a76e Merge branch 'floatcvt' 2016-04-05 21:42:09 +02:00
Christoph Oelckers
04b0a13bd3 - some optimization of FPathTraverse:
* we do not really need compatibility PointOnLineSide here. Unlike the movement code it'd only affect some extreme edge cases.
 * removed the special case for very short traces. This was a result of the original and very imprecise PointOnLine functions. Since those no longer get used here and floating point precision is a lot higher there is no need for this kind of treatment.
 * PointOnLine checks for the sides of an actor's bounding box don't need a full PointOnLineSide call, a simple coordinate comparison is fully sufficient, and this can easily be done in the existing switch/case block.
2016-04-05 16:29:07 +02:00
Christoph Oelckers
ad13a55f0d - floatified line_t::dx and dy. 2016-04-05 14:03:08 +02:00
Christoph Oelckers
f606ba315f - fixed: The return value of sector_t::FindHighestFloorPoint lost its '-' sign during the floating point conversion. 2016-04-05 10:55:13 +02:00
Christoph Oelckers
1d83ea6177 - fixed: ACS's SpawnProjectile and Thing_Projectile2 functions were treated as fixed point even though they are not. 2016-04-05 10:16:48 +02:00
Christoph Oelckers
55cbeb0253 - fixed pitch calculation in P_SeekerMissile with SMF_PRECISE. 2016-04-04 23:07:21 +02:00
Randy Heit
d39694a33d Fixed: DoTakeInventory() indicated success when passed an invalid item type 2016-04-04 15:51:03 -05:00
Randy Heit
3c8423d810 Print only one error message when PlayerPawn.Face is not 3 chars long 2016-04-04 15:17:58 -05:00
Randy Heit
57e0c97867 Fixed: DECORATE property error messages fail to show the file information 2016-04-04 15:16:29 -05:00
Randy Heit
6f60253590 Don't waste time looking for variables to (de)init in native classes 2016-04-04 14:57:43 -05:00
Christoph Oelckers
2dff6a08d1 - fixed: P_RadiusAttack passed the wrong radius value to the BlockThingsIterator. 2016-04-04 16:51:25 +02:00
Christoph Oelckers
21692359cc - fixed A_Face angle calculation. 2016-04-04 15:59:59 +02:00
Christoph Oelckers
7586320038 Merge branch 'master' into floatcvt
# Conflicts:
#	src/p_map.cpp
2016-04-04 14:19:34 +02:00
Christoph Oelckers
c346ac6143 - fixed: P_TeleportMove must clear the spechits array.
This was accidentally deleted during one round of portal refactoring but is essential to prevent multiple teleport activations in one move.
Fixing this also allowed removing the fudging that was added to work around the issue in P_TryMove.
2016-04-04 14:17:34 +02:00
Christoph Oelckers
32c32ea739 - fixed some initialization problems with sound.
* a position-less sound did not get the listener's position attached.
 * an unattached sound mixed up y and z coordinates.
2016-04-04 12:46:32 +02:00
Christoph Oelckers
123d503492 Merge branch 'master' into floatcvt 2016-04-04 12:25:36 +02:00
Christoph Oelckers
da91422e14 Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt 2016-04-04 12:25:24 +02:00
Christoph Oelckers
f6b33acbb1 - fixed plane access in GL code. 2016-04-04 12:22:47 +02:00
alexey.lysiuk
cbcde3a950 Fixed check for alpha channel in texture to select hqNx upscaling mode
Now it's the initial check with the adjustment in mode indices only, as old hqNx MMX indices (4..6) are now occupied by generic hqNx implementation
See http://forum.drdteam.org/viewtopic.php?t=6872
2016-04-04 12:13:50 +02:00
Christoph Oelckers
7486e24cd9 Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt 2016-04-04 12:07:57 +02:00
Christoph Oelckers
5d099590cd Merge branch 'master' of https://github.com/rheit/zdoom 2016-04-04 12:06:42 +02:00
Christoph Oelckers
fadc7d650d - fixed: segplane_t::SetAtHeight initialized the plane normal's Z incorrectly. 2016-04-04 12:02:53 +02:00
Randy Heit
7de8c2b5eb Fixed: || should be && 2016-04-03 21:35:44 -05:00
Randy Heit
77f9643c8f How did this end up wrong? 2016-04-03 20:25:07 -05:00
Randy Heit
17972b5d06 Revert "Add "support" for user string variables in DECORATE"
- This reverts commit c90a1c0c96.
- DECORATE looks to be very dependant on functions that take strings as
  parameters receiving those strings as constants and not as expressions,
  so being able to declare string variables with DECORATE is pretty much
  useless.
2016-04-03 19:15:00 -05:00
Christoph Oelckers
fd27c8db9e Merge branch 'master' into floatcvt
# Conflicts:
#	src/dobjtype.cpp
#	src/dobjtype.h
#	src/version.h
2016-04-04 01:21:24 +02:00
Randy Heit
c90a1c0c96 Add "support" for user string variables in DECORATE
- This is "support" in the very most basic sense. You can declare them,
  but you can't actually do anything with them, since the decorate parser
  can't handle expressions when it's parsing string arguments. However,
  they seem to be getting properly initialized and destroyed, which is
  what this was added to test. If it doesn't look like too much trouble, I
  might try to turn them into something actually worth something.
2016-04-03 18:10:09 -05:00
Randy Heit
7c8cff64e6 Added code to initialize and destroy string variables in classes
- Will require being able to add strings to non-native classes to actually
  test this.
2016-04-03 17:45:04 -05:00
Randy Heit
15208188de Remove PClass::Extend() 2016-04-03 16:25:08 -05:00
Randy Heit
85c8218441 Added methods for PTypes to serialize their values
- Values are tagged to allow for some measure of changing variable types
  without automatically breaking savegames.
- Use these new methods to serialize the non-native variables in an
  object. This allows for achiving non-ints.
2016-04-03 16:21:48 -05:00
Randy Heit
da496bbe62 Use AddField() to add user variables in DECORATE 2016-04-03 16:21:48 -05:00
Randy Heit
806d9d7a95 Add an AddField() override to PClass that extends the default instance 2016-04-03 16:21:47 -05:00
Randy Heit
3357af32e5 Generalize FxArrayElement to work with all numeric elements (not just 32-bit ints) 2016-04-03 16:21:41 -05:00
Randy Heit
0cc2705b99 Added A_LogFloat 2016-04-03 16:12:35 -05:00
Christoph Oelckers
1011e26eb9 - fixed: P_RadiusAttack should not call P_DamageMobj for a damage value of 0.
This could happen if the damage calculations resulted in a value between 0 and 1, which for the actual check was multiplied with the damage parameter of P_RadiusAttack which inflated the fractional value to something that looked like actual damage but was later truncated.
2016-04-03 22:45:54 +02:00
Christoph Oelckers
6d441e25db - partially undid the 'repeated flash state' fix, because it didn't work with the stock weapons. I'm still not sure if a compatibility setting is needed. 2016-04-03 22:31:45 +02:00
Christoph Oelckers
447ce0abe7 Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt
# Conflicts:
#	src/p_saveg.cpp
#	src/r_defs.h
2016-04-03 22:16:06 +02:00
Christoph Oelckers
603af1bb92 - compile bug in gl_sprite and some optimization in gl_walls.cpp 2016-04-03 22:13:38 +02:00
Christoph Oelckers
330ca07f69 Merge branch 'master' into floatcvt 2016-04-03 22:11:50 +02:00
Christoph Oelckers
3f5e0c682e - fixed: Due to the iteration limit of 100 in the path traverse code, running a trace was effectively limited to somewhere around 12800 map units. Also added the safer exit condition checks from the sight checking code to FPathTraverse. 2016-04-03 21:41:58 +02:00
Christoph Oelckers
70b8afc5ec - fixed: A_CheckLOF did the trace pitch calculation wrong. 2016-04-03 21:26:57 +02:00
Christoph Oelckers
02a586e6b2 - removed a redundant Vec3Offset call in A_SpawnParticle. 2016-04-03 21:03:49 +02:00
Christoph Oelckers
3ee42f6aa6 - removed all savegame compatibility handling, since the data is just too different from what it was before to try to convert it. 2016-04-03 20:55:23 +02:00
Christoph Oelckers
4e5ba49aca - got rid of secplane_t::fA and fB. All uses could be replaced by other functions. 2016-04-03 19:46:00 +02:00
Christoph Oelckers
fc5f98a0be - floatified the sector planes.
This should conclude the floating point conversions for now.
2016-04-03 19:28:53 +02:00
Christoph Oelckers
fede16ce68 - fixed PointOnSide checks.
- optimized some ZatPoint calls for floating point planes.
2016-04-03 13:15:02 +02:00
Christoph Oelckers
252a6e9038 - removed back and forth fixed<->float conversions in sprite code. 2016-04-03 13:00:09 +02:00
Christoph Oelckers
58eb64a7e0 - fixed a few fixed/float parameter mixups. 2016-04-03 12:54:47 +02:00
Christoph Oelckers
7a6039b44c - floatified vertex coordinates.
Making these double or float doesn't seem to matter at all performance-wise so they use the more precise double format.
2016-04-03 11:53:31 +02:00
Christoph Oelckers
5a2eac8f15 - floatified vertices and removed the now redundant fx and fy members. This needs an added check for polyobject origins, though, so that such subsectors don't get rendered. 2016-04-03 11:40:14 +02:00
Braden Obrzut
42edd7db22 - Added IfInvulnerable SBARINFO command (modified from Blue-Shadow's pull request) 2016-04-02 23:47:44 -04:00
Braden Obrzut
81f29556bf - Refactored SBarInfo flow control so negatable commands are handled statically.
- Made TArray movable and TDeletingArray a move only type.
2016-04-02 23:43:56 -04:00
Christoph Oelckers
8a20f901a3 - removed the non.slope special handling in the wall processing code.
This may have made some sense when I added this 11 years ago but on a current computer it actually hurts performance a bit due to the branching that is involved - the code runs a bit faster with those special cases removed.
2016-04-03 02:07:37 +02:00
Christoph Oelckers
af78937a15 - updated GL renderer. 2016-04-02 23:17:16 +02:00
Edoardo Prezioso
f36489098f - Fixed one GCC/Clang warning. 2016-04-02 23:01:51 +02:00
Edoardo Prezioso
28ac65b25b - Fixed GCC and Clang compilation errors. 2016-04-02 23:01:32 +02:00
Christoph Oelckers
348c384bb6 - fixed scaling of skies with unusual dimensions. 2016-04-02 22:18:42 +02:00
Christoph Oelckers
f7553fcd51 Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt
# Conflicts:
#	src/r_defs.h
2016-04-02 22:17:33 +02:00
Christoph Oelckers
6ffb5fa164 - fixed: Angular interpolation needs to call deltaangle instead of using the difference between two angles to avoid overflow conditions. 2016-04-02 22:12:52 +02:00
Christoph Oelckers
9b5a4b6d43 - removed several unused setter functions for level data structures and fixed some incorrect uses. 2016-04-02 22:05:23 +02:00
Christoph Oelckers
9a07f81269 - renamed all ZatPoint variants that return a fixed point value to ZatPointFixed, to avoid accidental mixup with the floating point variants. 2016-04-02 20:45:32 +02:00
Christoph Oelckers
6a150f7248 - fixed seg vertex adjustment (from a commit that wasn't copied to this branch.) and added viewx etc. to a global header . 2016-04-02 20:24:51 +02:00
Christoph Oelckers
3db90ff4c1 - removed all remaining fixed point methods from AActor.
- removed all calls to fixed point vertex access methods in p_setup.cpp.

# Conflicts:
#	src/p_setup.cpp
2016-04-02 20:14:58 +02:00
Christoph Oelckers
60e25b32a8 - floatified the particles.
This is the last bit of play code that needed to be altered, what's left is the underlying data representations of vertices, linedefs and sectors.

# Conflicts:
#	src/p_setup.cpp
#	src/r_things.cpp
2016-04-02 20:12:08 +02:00
Christoph Oelckers
931774ab38 - fixed some issues with the PathTraverse and sight checking code:
* typo in calculating end position from a trace vector
 * must use floor to convert from floating point block coordinate to block index to account for running off the negative side of the blockmap. (Int cast always rounds toward zero which is wrong here.)
 * bad calculation of sight checking slopes - they has the actor's z coordinate duplicated.

- fixed scaling of automap markers.
2016-04-02 20:10:48 +02:00
Christoph Oelckers
b3659305ce - fixed typo in line portal interpolation path calculation. 2016-04-02 20:10:32 +02:00
Christoph Oelckers
96a02f922d - removed R_PointToAngle2 call in P_Setup.cpp.
- removed long inactive node saving code in p_writemap.cpp. If this file is ever made operational again it will be with UDMF output.
2016-04-02 20:10:25 +02:00
Christoph Oelckers
046ee3e803 - removed a few leftover FRACUNITs. 2016-04-02 20:07:18 +02:00
Christoph Oelckers
bb13590e07 - make viewx etc. global.
- a few minor optimizations.
2016-04-02 20:07:02 +02:00
Christoph Oelckers
ccfb2ac233 - fixed quake checks. 2016-04-01 12:58:46 +02:00
Christoph Oelckers
8680391e0b - floatified the global view variables.
The software renderer still uses internal copies of the fixed point version.
2016-04-01 12:22:16 +02:00
Christoph Oelckers
a5e14425aa - fixed angular interpolation of skybox viewpoints. 2016-04-01 11:55:37 +02:00
Christoph Oelckers
a27181cb0b - partial adjustments.
No point changing all the viewx/y/z stuff when that is about to get floatified next.
2016-03-31 21:42:27 +02:00
Christoph Oelckers
466c4c75df Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt
# Conflicts:
#	src/actor.h
2016-03-31 21:24:26 +02:00
Christoph Oelckers
a93296be80 - removed most of the deleted function declarations. 2016-03-31 21:20:45 +02:00
Christoph Oelckers
6445615b5d - fixed the sound location calculations which got somewhat broken by the constant changes during the conversion. 2016-03-31 21:13:32 +02:00
Christoph Oelckers
8f5ac9b73f - fixed a float/fixed mixup in R_PointOnSideSlow. 2016-03-31 17:44:05 +02:00
Christoph Oelckers
9412ce45d6 - floatified portals.cpp and most of p_maputl.cpp. 2016-03-31 16:52:25 +02:00
Christoph Oelckers
6b065b8074 - floatified FBoundingBox. 2016-03-31 10:38:54 +02:00
Christoph Oelckers
c6ada2397c - adjustments. 2016-03-31 09:50:59 +02:00
Christoph Oelckers
a5c4e2dab3 Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt
# Conflicts:
#	src/r_utility.h
2016-03-31 09:24:41 +02:00
Christoph Oelckers
8fd76f0c8a - floatified bmaporgx and bmaporgy, allowing to remove the gross overflow prevention hacks present in the blockmap code. 2016-03-31 09:23:14 +02:00
Christoph Oelckers
f41afde545 - floatified line_t::bbox. 2016-03-31 01:22:49 +02:00
Christoph Oelckers
7a2c8fdc1c - floatified po_man.cpp and the remaining bits in p_lnspec.cpp 2016-03-31 00:41:21 +02:00
Christoph Oelckers
1666418510 - fixed incomplete interpolation floatification. 2016-03-30 20:05:29 +02:00
Christoph Oelckers
cf44d2e37a - adjustments. 2016-03-30 20:01:44 +02:00
Christoph Oelckers
251172c7f0 Merge branch 'floatcvt' of https://github.com/rheit/zdoom into floatcvt
# Conflicts:
#	src/r_data/r_interpolate.cpp
2016-03-30 18:24:22 +02:00
Christoph Oelckers
d54a2364b9 - floatified r_interpolate.cpp. 2016-03-30 17:11:31 +02:00
Christoph Oelckers
27bad66f61 - floatified the remaining parts of p_sector.cpp. 2016-03-30 16:51:19 +02:00
Christoph Oelckers
66929cbaff - floatified p_trace, p_slopes and p_udmf.cpp.
- major cleanup of unused code.
2016-03-30 16:30:22 +02:00
Christoph Oelckers
ced30e7bbb - fixed a few oversights.
- switched p_buildmap to use the floating point variants of the linedef/sector init methods.
2016-03-30 11:25:02 +02:00