Christoph Oelckers
cd8213f067
- fixed: The skybox pointer in FSectorPortal must at least be initialized to nullptr when the struct is deserialized, to avoid an access violation if the partially initialized data is used. This can happen when P_SerializeThinkers destroys the original thinkers that were created on map load.
...
- removed the sector loop for deleting skybox references in ASkyViewpoint::Destroy. Since this only refers to the sectorPortals array it is completely redundant as the following code will clear them just as well.
2016-05-13 10:07:01 +02:00
MajorCooke
4998d4a84d
Use the direct pointer of P_PointInSector instead.
2016-05-12 22:15:06 +02:00
MajorCooke
2ba26693d1
- Added 3D Floor + Portal awareness, along with flags to turn off detection of both features.
2016-05-12 22:15:06 +02:00
MajorCooke
b91ed5dc5d
Added GetZAt DECORATE function.
...
- float GetZAt(x, y, angle, flags, pick_pointer);
- Gets the floor z at x distance ahead and y distance to the side in relative form from the calling actor pointer. Flags are as follows (GZF_ prefix):
- CEILING: Returns the ceiling z instead of floor.
- ABSOLUTEPOS: x and y are absolute positions.
- ABSOLUTEANG: angle parameter does not add the pointer's angle to the angle parameter.
2016-05-12 22:15:05 +02:00
MajorCooke
39f64383cb
Changed RTF_THRUSTZ to match RADF_THRUSTZ's bitmap.
2016-05-11 19:41:33 +02:00
MajorCooke
952219a018
Added RTF_THRUSTZ for A_RadiusThrust.
...
- Allows thrusting with Z velocity.
2016-05-11 19:41:33 +02:00
Christoph Oelckers
852ed6cd04
- un-revert P_CheckMove fix.
2016-05-11 19:39:08 +02:00
Edoardo Prezioso
769521b2e1
- Fixed second player lock after error in netgame.
2016-05-11 14:05:29 +02:00
Christoph Oelckers
078e27e61f
- fixed: The mugshot's angle was inverted.
2016-05-11 14:04:21 +02:00
Christoph Oelckers
d4b258f15b
- don't place the chasecam right at the hit position of the trace. This will be the intersection with a wall or sector plane and may cause clipping issues. Instead place it very slightly in front of the actual hit position.
2016-05-11 13:57:49 +02:00
MajorCooke
9ab620814d
- Fixed: Armor absorption did not take ALLOW/CAUSEPAIN flags into account.
2016-05-11 13:33:39 +02:00
Christoph Oelckers
0726a88ab9
- only return DWORD aligned addresses in openings because the 3D floor code stores floating point values in there which cannot be accessed on platforms with strict alignment rules.
2016-05-11 12:04:41 +02:00
Christoph Oelckers
220255e6a4
- fixed P_CheckMove's dropoff check and removed some unneeded code.
2016-05-11 11:56:03 +02:00
Christoph Oelckers
43d93a19a0
- fixed: P_AlignFlat had the 'dist' value negated. Also simplified the code a bit.
2016-05-11 11:36:53 +02:00
Christoph Oelckers
f8c12f4533
- fixed warning in s_sound.cpp
2016-05-11 10:32:57 +02:00
Christoph Oelckers
cc88130362
- fixed: P_CheckMove's dropoff check had the heights swapped. This also shouldn't in any way depend on COMPATF_DROPOFF and must be skipped entirely for actors with either MF_FLOAT or MF_DROPOFF set.
2016-05-11 10:09:13 +02:00
Christoph Oelckers
77e30bb7d7
- fixed: The line portal links were not deleted when an actor was destroyed.
2016-05-11 09:58:03 +02:00
Christoph Oelckers
966e6797e4
- fixed: The view path for checking whether the player sprite should be drawn during a portal transition was never set properly in the portal transitioning case.
2016-05-09 23:16:06 +02:00
Christoph Oelckers
2e4b8dd416
- fixed incorrect sign in P_TranslatePortalVXVY
2016-05-09 21:59:13 +02:00
Christoph Oelckers
841a5795ae
- savegame version bump for a GZDoom exclusive change (to avoid synchronization problems in the future.)
2016-05-08 09:27:42 +02:00
Chris Robinson
8334189d66
Merge remote-tracking branch 'zdoom/master'
2016-05-05 12:55:16 -07:00
Chris Robinson
ba1574e65a
Don't define OpenAL redirect macros with the IDE's parser
...
At least with KDevelop4, macros like this interefere with contextual info by
causing it to show information about the macro itself (where it's defined and
what it defines to), rather than the function (parameters, comments, etc). It
also gets in the way of auto-completion.
2016-05-05 21:00:30 +02:00
Chris Robinson
fa46965a71
Check for OpenAL device errors after pausing/resuming the device
2016-05-05 21:00:30 +02:00
Chris Robinson
0b7b78c5d2
Better handle channel configs when monoizing in LoadSound
2016-05-05 21:00:29 +02:00
Chris Robinson
e298f8389b
Avoid divide-by-0 when the area sound radius is less than the max distance
2016-05-05 21:00:29 +02:00
Chris Robinson
66c61a7c8b
Set the appropriate start offset for non-3D sounds too
2016-05-05 21:00:28 +02:00
Chris Robinson
26a8a8a1ba
Pause OpenAL processing using ALC_SOFT_pause_device when inactive
2016-05-05 21:00:28 +02:00
Chris Robinson
e1c8890c5e
Set the appropriate start offset for restarted sounds
2016-05-05 21:00:27 +02:00
Chris Robinson
c3cef91a4f
Properly sum the channels being downmixed to mono
2016-05-05 21:00:27 +02:00
Chris Robinson
12c9281a7e
Avoid redundantly setting DistanceScale
2016-05-05 21:00:26 +02:00
Chris Robinson
bf5ac9b476
Use AL_EXT_SOURCE_RADIUS for area sounds
2016-05-05 21:00:26 +02:00
Chris Robinson
55294c5806
Use the correct OpenAL lib name on Linux
2016-05-05 21:00:25 +02:00
Edoardo Prezioso
52995f8fc2
- Fixed missing sector light clamp in DFlicker.
...
For some reason, this code didn't care about the sector light limits. Found by code inspection.
2016-05-05 21:00:08 +02:00
Christoph Oelckers
c193bb7799
- removed the special case 0 in A_SpawnItem, meaning 'in front of the player'.
...
As it turned out this has been broken for many, many years, so one can assume that most content using this function depends on this special case not working. I could track it down to at least 2008.
2016-05-05 20:12:26 +02:00
Christoph Oelckers
0b833be06e
- removed accidentally added GZDoom specials.
2016-05-04 14:37:52 +02:00
Christoph Oelckers
2c88816577
- fixed parameters for warp type 2.
2016-05-04 13:25:26 +02:00
Christoph Oelckers
be3b126f7b
- fixed: Order of skybox and portal initialization was not well defined. It was always the last item to get initialized that got set. Changed it so that skyboxes cannot override portals at all.
2016-05-03 19:42:53 +02:00
Christoph Oelckers
a576243ff2
- fixed: ThrustThing should add to the velocity, not set it.
2016-05-03 10:26:29 +02:00
Randy Heit
4fbe77fb82
Very minor optimization for ACS str(i)cmp
...
- If the two strings compared both point to the same location in memory,
then we know they are the same string without having to bother actually
comparing their contents. Note that the opposite is not neccessarily
true: If they point to two different locations, they could still match a
case-sensitive comparison because there are still two ACS string tables:
the one that belongs to the map's script and the one that belongs to
everything else.
2016-05-01 16:55:28 -05:00
Christoph Oelckers
65e1589543
- allow specifying actor classes whose graphics to precache through MAPINFO.
...
- some reorganization of texture precaching so that the renderer can decide what to do with actors.
Just marking the sprite textures loses too much info if more is needed than just loading the images into memory.
2016-05-01 22:47:36 +02:00
Chris Robinson
0d402618a3
Load mono copies of multichannel sounds that are used in 3D
2016-05-01 21:44:03 +02:00
Christoph Oelckers
b443ac8f71
- let Trace() be a bit smarter about checking 3D slopes. If one matches right up with the floor or ceiling at the line where the trace enters a sector, check a second point to see whether we deal with something inside valid sector bounds or not.
2016-05-01 19:30:51 +02:00
Edoardo Prezioso
3aee8a3eee
- Fixed a mistake in GiveInventory refactoring.
...
'give item' stopped working because commit 7b35f32f3d
and 6aca7604eb
didn't take account that give cheat with zero amount should not touch the item amount.
2016-05-01 17:07:39 +02:00
Edoardo Prezioso
a17ec55d0d
- Fixed drop style gameinfo inconsistency.
...
The gameinfo option was ignored when deciding the initial spawn height position.
2016-05-01 11:30:09 +02:00
Randy Heit
7d03ed4dc7
Use floating point node bounding boxes
2016-04-30 22:37:02 -05:00
Randy Heit
265783e1f6
Use doubles for intermediates in the nodebuilder's FindMapBounds()
2016-04-30 21:28:41 -05:00
Christoph Oelckers
f387199442
- extended the voxeldef parser to allow negative numbers where appropriate.
2016-04-30 14:33:15 +02:00
Christoph Oelckers
86b647ed41
- added map name display to IDMYPOS.
2016-04-30 13:03:08 +02:00
Christoph Oelckers
2161ad2c4b
- fixed: P_GetMapColorForKey did not check for keys that worked as an alias defined through their species.
2016-04-30 12:48:51 +02:00
Christoph Oelckers
c3759646e7
- merged FWarpTexture and FWarp2Texture, making the choice of effect a parameter of the WarpBuffer function.
...
Ideally the warping shouldn't be a property of the texture class itself but an effect processor that can get added to a texture. Unfortunately the current setup will not allow this, requiring some significant refactoring of texture access first.
2016-04-30 12:36:55 +02:00
Randy Heit
a95c6b9644
Draw upper/lower textures on two-sided portal lines
2016-04-29 21:54:29 -05:00
Randy Heit
09730bff73
Fix incorrect texture mapping vectors for slopes
2016-04-29 20:35:55 -05:00
Christoph Oelckers
8309d8f634
- fixed coordinate typo.
2016-04-29 23:14:04 +02:00
MajorCooke
b9687b4a57
Compiler fix
2016-04-29 06:33:38 -05:00
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
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
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