Commit graph

7429 commits

Author SHA1 Message Date
Christoph Oelckers
4a72c7d2f1 - fixed: Decals may not be serialized before thinkers.
Since decals may have thinkers attached this will crash when such a savegame gets loaded, because the thinker lists get reset in P_SerializeThinkers, deleting any thinker that already was processed.
I also added an error message that immediately aborts the save process if such an out-of-sequence thinker is attempted to be written out.
This obviously breaks savegame compatibility again...
2016-04-29 11:44:17 +02:00
Randy Heit
f3d273c94f Fixed: Tiled midtextures could go up past the ceiling when a 3D floor is in view 2016-04-28 22:06:57 -05:00
Randy Heit
8f3921190f Keep values in floats longer for visplane drawing 2016-04-28 21:21:49 -05:00
Randy Heit
96228ca15f Trying to fix some rounding, not sure it's actually correct yet 2016-04-28 21:14:48 -05:00
Christoph Oelckers
3bbb5c7237 - moved the texture warping into templated subfunctions, so that the same code can be used for true color buffers as well. 2016-04-28 18:17:18 +02:00
Christoph Oelckers
af2a1769d8 - use the FP2005 method to calculate xtoviewangle, because it is far more straightforward than the old version. 2016-04-28 16:27:28 +02:00
Christoph Oelckers
ef98757c7c - replaced finesine for texture warping with a smaller custom table, based on the old 2005 FP code, but fixes the generation of the sine table.
- removed all remnants of finesine and deleted tables.c and tables.h.
2016-04-28 15:59:37 +02:00
Christoph Oelckers
9f0c5d5909 -let's better be cautious about precision and use the CRT sin and cos functions for rotated plane textures. 2016-04-28 14:49:59 +02:00
Christoph Oelckers
027b8d29b8 - make FieldOfView a real angle and remove all uses of finetangent. 2016-04-28 13:59:06 +02:00
Christoph Oelckers
f301cf7c57 - don't use finetangent for generating xviewtoangle. 2016-04-28 13:03:48 +02:00
Christoph Oelckers
26f54b0ba4 - eliminated tantoangle and cleaned up r_tables.h 2016-04-28 12:18:33 +02:00
Christoph Oelckers
8171637a57 - removed the last remaining uses of the finesine table from the rendering code. 2016-04-28 11:37:02 +02:00
Randy Heit
ae7d048057 Store FTransform in visplane_t, not just a pointer
- The transform values passed to R_CheckPlane might live on the stack, so
  it's not safe to only store a pointer to them.
2016-04-27 23:07:25 -05:00
Randy Heit
44adff459a Remove halfviewwidth
- Why I thought I needed this variable in addition to centerx has
  long ago left my memory.
2016-04-27 22:49:36 -05:00
Randy Heit
31d842a894 Store FTransform in visplanes instead of converting to fixed_t 2016-04-27 22:17:33 -05:00
Randy Heit
ac69ed3361 Minimal wallmost changes
- Add comments
- Fixed: When WallMost() finds a line entirely above the screen, it should
  set the most array to 0, not -1.
2016-04-27 22:17:33 -05:00
MajorCooke
6f11a65893 - Converted rollIntensity from int to double.
- It was already a double in the save version serialization so nothing had to be changed there.
2016-04-27 12:58:18 -05:00
MajorCooke
64d01a3bb1 Forgot to undo this. 2016-04-27 10:26:06 -05:00
MajorCooke
0fc7055f51 - Fixed: Quakes with rolling were not unique; they borrowed from any other quakes that didn't have rolling, thus preventing the rolling from falling off properly. 2016-04-27 10:13:30 -05:00
Christoph Oelckers
38d92b23b9 - fixed: ACS's GetSectorCeilingZ and GetSectorFloorZ expected integer coordinates. 2016-04-27 15:41:22 +02:00
Christoph Oelckers
3fd0d27efa - removed some leftover fixed point handling from PType. 2016-04-27 15:35:01 +02:00
Randy Heit
a14c0c8063 Fix a couple missing structs in vissprite_t 2016-04-27 08:13:22 -05:00
Christoph Oelckers
3a17d6aa78 - fixed savegame compatibility. 2016-04-27 13:47:30 +02:00
MajorCooke
762d186657 Finished interpolation. 2016-04-27 13:42:16 +02:00
MajorCooke
be9b25e760 Use ViewRoll instead of CamRoll, and removed CamRoll entirely. Begin work on interpolation. 2016-04-27 13:42:15 +02:00
MajorCooke
c972caa9f3 - Added rollIntensity and rollWave to A_QuakeEx.
- Instead of moving the camera around, it rolls the camera.
- This only has an effect in GZDoom.
2016-04-27 13:42:15 +02:00
MajorCooke
660aff562d - Added support for THRU flags on bullets and rails.
- ALLOWTHRUFLAGS must be used on the puffs, added for the sake of compatibility with older mods. This applies to the following:
-- Bullets: THRUACTORS, THRUSPECIES
-- Rails: Same as bullets, but includes THRUGHOST.
2016-04-27 13:38:27 +02:00
Christoph Oelckers
262f3575ae - added a "custom" flag to drawmugshot so that the user-specified image can be forced to be used. 2016-04-27 13:16:35 +02:00
Christoph Oelckers
ebca8cc5b0 - added a portable config file option, for now only on Windows: If the engine finds a file named [GAMENAME]_portable.ini, it will use that instead of creating a user specific version, so that portable installs can carry their INI along. 2016-04-27 13:04:37 +02:00
Christoph Oelckers
934b1923d0 - fixed: CheckForPushSpecial did not check blocking 3D midtextures. 2016-04-27 12:37:38 +02:00
Christoph Oelckers
044bf4ada6 - fixed: P_CheckPosition must initialized tm.floorterrain. 2016-04-27 12:08:22 +02:00
Christoph Oelckers
f5afa30ee6 - added GetAngle(bool relative, int target) DECORATE function. 2016-04-27 11:52:52 +02:00
Christoph Oelckers
61b165ccc4 - fixed the camera height setting for the camera actors.
The scripting branch changed camera semantics to default to an actor's center - which for monsters and decorations makes sense - but not for simple mapspots that get used as camera. For those the CameraHeight must be explicitly set to 0.
2016-04-27 11:38:54 +02:00
Randy Heit
d970be48f9 Use floating point xscale in R_RenderFakeWall() 2016-04-26 23:30:16 -05:00
Randy Heit
a029c7b664 Fix unneeded fixed_t height in R_3D_AddHeight() 2016-04-26 23:11:27 -05:00
Randy Heit
ee43c4ff95 Fixed: Accidentally left in /65536.0 in WallMost() 2016-04-26 23:00:41 -05:00
Christoph Oelckers
8bda356412 - fixed crash in slope drawing: Several overlooked occurences of fixed point math in R_CalcTiltedLighting. Slopes are still completely broken, though. 2016-04-27 04:08:06 +02:00
Christoph Oelckers
a26d81e060 - fixed incomplete float conversion in R_RenderFakeWallRange. 2016-04-27 02:28:45 +02:00
Christoph Oelckers
fab38d092b - fixed: P_LineOpening could miss a 3D floor if an actor was centered right against its side.
- restored the original 3D floor code to retrieve the current floor in P_CheckPosition. The portal aware version was a bit too strict and could place the actor on the wrong side when moving at high speeds.
2016-04-27 02:13:35 +02:00
Chris Robinson
6e25d3f618 Use a background thread for processing OpenAL streams 2016-04-26 06:12:56 -07:00
Chris Robinson
204d0c8572 Don't try to define __try/__except on non-MSVC systems
They didn't do anything anyway, and can clash with other compilers since they
may be used internally (macros and keywords starting with __ are for compiler
use).
2016-04-26 05:55:18 -07:00
Christoph Oelckers
172290224b - make modes 2 and 3 of Teleport_NoFog compatible with Eternity by defaulting to mode 1 when no line is available. 2016-04-25 01:01:28 +02:00
Christoph Oelckers
0f99d7d73f - floatified the few remaining linedef and sector properties that still were fixed_t. The only fixed point things left in r_defs.h are the nodes and a fixed point setter function for vertex_t, which is still needed by the node builder. 2016-04-24 12:15:09 +02:00
Christoph Oelckers
31845cd16b - fixed two fixed/float mixups. 2016-04-24 10:24:43 +02:00
Randy Heit
593f6c29ad Use 2 decimal places for volume sliders, since they move in 0.05 increments 2016-04-23 22:38:55 -05:00
Randy Heit
e96ed6bf8d Add FBaseCVar::GetHumanString()
- For most cvars, this is equivalent to calling GetGenericRep() to get a
  string.
- For float cvars, it uses %g instead of %H, because %H is generally more
  information than is needed.
2016-04-23 22:30:08 -05:00
Randy Heit
fc54dd1ff0 Use %H when converting float cvars to strings to avoid information loss 2016-04-23 22:08:49 -05:00
Randy Heit
3a0d046f7e Fix rendering with SW 2D: modf usage was backwards 2016-04-23 21:29:40 -05:00
Randy Heit
96a0bee651 Quiet two more warnings from GCC 2016-04-23 21:00:35 -05:00
Randy Heit
3cabd5f0ed Fix compilation with GCC
- GCC is pickier than Visual C++. GCC requires that structs with constructors, etc that are
  used in a union must be defined outside the union. VC++ lets you do it inline.
2016-04-23 20:58:15 -05:00