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
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
Randy Heit
991f49e321
Avoid copying vissprite_t in R_DrawPSprites()
2016-04-23 20:42:14 -05:00
Randy Heit
b8e3e1f095
Remove BAM_FACTOR from FAngle, because it takes up physical space in the struct
2016-04-23 17:27:36 -05:00
Christoph Oelckers
565bab8bd3
- removed some unnecessary temporary variables.
2016-04-23 22:55:44 +02:00
Christoph Oelckers
f420ccd287
- made Teleport_NoFog compatible with Hexen and Eternity.
...
ZDoom defaulted to Boom's (buggy) angle adjustment.
Changed it so that
* Mode 0 is like Hexen, performing no adjustment at all. This still should match all known maps using this special.
* Mode 1 remains unchanged.
* Mode 2 replicates Boom's broken angle adjustment and is used in the xlat file.
* Mode 3 implements the correct angle adjustment that Boom originally intended.
(Note: Should some map require something different it should be handled with compatibility.txt instead of reverting this back to the broken way it was before.)
2016-04-23 21:32:40 +02:00
Christoph Oelckers
eaabb5e986
- fixed vissprite_t &operator= declaration.
2016-04-23 15:51:46 +02:00
MajorCooke
6bba84458c
- Rail spawned actor trails now set their targets to the shooter and transfer pitch.
2016-04-23 08:19:59 -05:00
Christoph Oelckers
5fcdb7b80d
- bump savegame version for today's changes.
2016-04-23 14:20:40 +02:00
Christoph Oelckers
3c13d8085b
- removed unused R_PointToDist2 and R_PointToAngle2 functions.
2016-04-23 13:55:50 +02:00
Christoph Oelckers
2447f7bc38
- renamed FTransform access functions.
2016-04-23 13:40:02 +02:00
Christoph Oelckers
04e614daec
- removed some fixed point functions that are no longer needed.
...
- fixed: Visplane checks should only compare the plane flags that are relevant for rendering and mask out the rest.
- floatified FTransform and made the visplane checks a bit less verbose by moving the comparison as an operator into FTransform.
Note that this operator needs forceinline on Visual Studio so that it won't get called as a function.
2016-04-23 12:42:07 +02:00
Christoph Oelckers
35a6994d0a
- remove the 'F' prefix from the floating point access function to the sidedef texture info, now that the fixed point versions are gone.
2016-04-23 10:55:55 +02:00
Christoph Oelckers
be8d1b46a7
- remove the deleted functions, now that they are no longer needed.
2016-04-23 10:51:58 +02:00
Christoph Oelckers
4d4f31fd83
- floatified sidedef texture info and fixed two bugs involving this data.
2016-04-23 09:41:59 +02:00
Randy Heit
f1b3f59bcc
Renderer floatification: Use floating point for wall scale and yrepeat
2016-04-22 23:12:53 -05:00
Randy Heit
1f97488945
Renderer floatification: Use floating point for decals
2016-04-22 23:12:53 -05:00
Randy Heit
cb0fe38dfe
Renderer floatification: "fix for signed divide" isn't needed when using xs_RoundToInt
2016-04-22 23:12:53 -05:00
Randy Heit
b2b3e50c5c
Renderer floatification: Use floating point for geometry Zs
2016-04-22 23:12:53 -05:00
Randy Heit
3ef5a678d5
Renderer floatification: Use floating point for texturemids and Y scales
2016-04-22 23:12:53 -05:00
Randy Heit
4a1cc61822
Renderer floatification: Restore playersprite rendering
2016-04-22 23:12:27 -05:00
Randy Heit
ec8d038c99
Renderer floatification: Use floats for lighting values
2016-04-22 23:10:34 -05:00
Randy Heit
4416d88eb2
Renderer floatification: Use floating point for visibility values
2016-04-22 23:10:02 -05:00
Randy Heit
ded3f92452
Commence renderer floatification
2016-04-22 23:09:13 -05:00
Christoph Oelckers
3c7d0c971f
- fixed: It seems it is not allowed to serialize any thinker before the actual thinker chain is serialized. This means that sector_t::floordata, ceilingdata and lightdata's handling had to be moved to P_SerializeWorldActors.
2016-04-22 17:48:25 +02:00
Christoph Oelckers
382a6e8b9f
- link actors to touching line portals, for use by the renderer.
2016-04-21 22:59:07 +02:00
Edoardo Prezioso
afa3009f93
- Fixed a GCC/Clang compiler error and a warning.
2016-04-21 16:11:03 +02:00
Edoardo Prezioso
6cfd82f500
- Simplify more, found by code inspection.
2016-04-21 16:03:33 +02:00
Edoardo Prezioso
6aca7604eb
- Clean the code by using AActor::GiveInventory.
...
This fixes also a bug in FraggleScript GiveInventory, which tried to access the 'SaveAmount' member of 'ABasicArmorBonus' with the wrong cast.
2016-04-21 16:02:43 +02:00
Edoardo Prezioso
7b35f32f3d
- Added the 'GiveInventory' method to the actor.
...
This will help cleaning up the item giving code. Returns a bool, in case the pickup failure might turn to be interesting in the future.
2016-04-21 15:59:23 +02:00
Edoardo Prezioso
ad9b9479ec
- Fixed erroneous P_UndoPlayerMorph calls.
...
In some places, P_UndoPlayerMorph was called with the 'force' argument placed in the 'unmorphflag' parameter, so that 'forced' unmorphs would be not completely forceful.
I hope no mod relied on this weirdness...
2016-04-21 11:25:08 +02:00
Christoph Oelckers
27cc3d6289
- fixed: ACS's GetActorLightLevel didn't check 3D floors.
2016-04-21 11:17:28 +02:00
Christoph Oelckers
ba7260c176
- fixed overflow issue with large damage values in P_RadiusAttack.
2016-04-21 10:51:41 +02:00
Christoph Oelckers
c3eec6db4d
-fixed warnings
2016-04-21 10:38:42 +02:00
Christoph Oelckers
e5dc92f998
- some reshuffling of save data so that the actors won't get restored before the sectors.
...
Note that this required splitting P_SerializeWorld, because sector_t and FSectorPortal contain some actor pointers, for which the same rule applies: Portal linking can only be done after all sectors have been read, meaning it cannot be done along with the rest of the data in these structures.
Obviously such a change breaks savegame compatibility so the min. savegame version had to be increased again.
2016-04-20 19:42:00 +02:00
Christoph Oelckers
082042818b
- refactored sector portal data so that it does not rely on actors.
...
This is necessary because otherwise the level data cannot be serialized before the actors.
2016-04-20 19:20:11 +02:00