Commit graph

55 commits

Author SHA1 Message Date
Christoph Oelckers
4e60ea0252 - made AActor::alpha a floating point value
- replaced some uses of FRACUNIT with OPAQUE when it was about translucency.
- simplified some overly complicated translucency multiplications in the SBARINFO code.
2016-03-21 12:18:46 +01:00
Christoph Oelckers
ada5097e34 - converted scale variables in AActor, FMapThing and skin to float. 2016-03-20 12:13:00 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers
c338b9cde3 - some more portal preparation . 2016-02-14 16:26:27 +01:00
Christoph Oelckers
bf03ea496e - fixed: instant sector movement actions must actually delete the created interpolation right away and not wait until it deletes itself. 2016-02-11 22:03:09 +01:00
Christoph Oelckers
6d0ef7a9da - added conversion macros to convert floating point angles to angle_t, using xs_Float.h, and replaced all occurences in the code with them (let's hope I found everything.)
Converting a floating point value that is out of range for a signed integer will result in 0x80000000 with SSE math, which is used exclusively for this purpose on modern Visual C++ compilers, so this cannot be used anywhere.
On ARM there's problems with float to unsigned int conversions.

xs_Float does not depend on these
2016-02-08 12:10:53 +01:00
Randy Heit
b3b0886b64 Merge branch 'scripting'
Conflicts:
	src/actor.h
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_blastradius.cpp
	src/p_enemy.cpp
	src/p_enemy.h
	src/thingdef/thingdef.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-02-04 15:17:22 -06:00
Christoph Oelckers
e0608f50d1 - create a separate translation table for Heretic's rain pillar.
These objects are supposed to be bright, but the standard translations for player do not take this into account, creating dark and/or invisible projectiles depending on the color being used.
The new translation uses hue and saturation from the player color, but combines brightness from the original color with the one for the player in an 8:2 ratio, so that no matter for the player color, these always remain bright and visible.
2016-02-01 10:45:33 +01:00
Braden Obrzut
88a616da75 - Removed what appears to be a debug breakpoint.
- Cleared some GCC and Clang warnings. Mostly static analysis false positives, but one of them generated a pretty massive warning in a release build.
- Use -Wno-unused-result since I doubt we're going to address those unless they actually prove to be a problem (and they only appear in release builds).
2016-01-23 19:36:13 -05:00
Christoph Oelckers
5c8fd4750f - fixed: FInterpolator::DoInterpolations did not handle terminated interpolations properly. 2016-01-23 17:00:24 +01:00
Randy Heit
9744b9e0d9 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/dobject.h
	src/dobjgc.cpp
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
2016-01-21 12:45:06 -06:00
Christoph Oelckers
5421213711 - typo in interpolation stuff. 2016-01-21 12:37:26 +01:00
Christoph Oelckers
cf2ee1eb3f - fixed: Interpolations were deleted too early.
They were immediately deleted when the associated thinker was destroyed. But this was too early because it missed the final tic of movement, resulting in a visible jump when a moving platform with a player on it came to a halt.
Changed it so that DelRef no longer destroys the interpolation itself. Instead the ::Interpolate method will check if the reference count is 0, and if so and there was no more movement, will then destroy the interpolation.
This ensures that it keeps running until it has interpolated all remaining bits of movement induced by the thinker.

Now moving up a lift is 100% smooth, even with movement interpolation on.
2016-01-21 11:58:44 +01:00
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
b613db4ae5 Revert "Merge pull request #359 from Leonard2/master"
This reverts commit 364ca11b43, reversing
changes made to dae0e217d1.

Conflicts:
	src/r_data/r_interpolate.cpp
2015-09-18 17:41:16 +02:00
Braden Obrzut
f02b52ef28 - Fixed: Initialization ordering warning in DPSpriteInterpolation. 2015-09-13 20:56:20 -04:00
Leonard
0fa24ab82d Use barrier_cast instead of static_cast 2015-08-31 13:04:40 +02:00
Leonard
86e9504d04 Added weapon interpolation. 2015-08-19 15:59:54 +02:00
Christoph Oelckers
792cad89b3 Merge commit '3849cb86231ce24131a86e9c29795a8cf3706a3d' into scripting
Conflicts:
	src/g_hexen/a_clericstaff.cpp
	src/g_hexen/a_hexenspecialdecs.cpp
	src/p_acs.cpp
	src/p_enemy.cpp
	src/p_interaction.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_expression.cpp

(Scripting branch update part 4)
2015-04-28 11:59:33 +02:00
Randy Heit
d84c85d40f Remove warnings warned by Clang 2015-03-08 17:21:15 -05:00
Randy Heit
2d87eb0ba2 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/actor.h
	src/g_heretic/a_hereticmisc.cpp
	src/g_heretic/a_hereticweaps.cpp
	src/g_heretic/a_ironlich.cpp
	src/info.h
	src/namedef.h
	src/p_buildmap.cpp
	src/p_enemy.cpp
	src/p_map.cpp
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	zdoom.vcproj
2014-12-20 19:13:14 -06:00
Randy Heit
02e7c56c82 Move SpriteFrames.Clear() from R_InitSprites to FTextureManager::Init
- Fixed: Blood sprite rotations were overwritten by the Doom sprite
  rotations.
2014-07-29 20:31:53 -05:00
Edoardo Prezioso
b285cbebe4 - Fixed compiler errors in latest TEXTURES code. 2014-05-25 01:12:16 +02:00
Shawn Walker
59885b856d - remove texture name length limits for udmf maps 2014-05-18 15:38:46 -07:00
Christoph Oelckers
30f57c0b8e - added new renderstyles AddStencil and AddShaded. 2014-05-13 21:16:06 +02:00
Christoph Oelckers
fedf9c6a5b fixed: if we allow long names for the fade table we must also check for them when the colormap gets loaded. 2014-05-13 11:39:25 +02:00
Christoph Oelckers
31c9a0b0e8 - Subtract should respect alpha. 2013-12-05 15:36:20 +01:00
Christoph Oelckers
c959b3f250 - added 'subtract' render style to DECORATE parser. This is actually 'reverse subtract' 2013-12-05 15:28:09 +01:00
Randy Heit
459ad5abff - Updated scripting branch to latest version in trunk.
SVN r4337 (scripting)
2013-06-07 03:31:30 +00:00
Randy Heit
53b284fb5d - Added Gez's OverridePalette VOXELDEF flag.
SVN r4303 (trunk)
2013-06-01 02:09:09 +00:00
Randy Heit
2668988870 - Switched to a genericly extensible representation for userinfo.
- Fixed: The playerinfo CCMD did not range check the player number.

SVN r4253 (trunk)
2013-05-12 18:27:03 +00:00
Randy Heit
865a535af2 - Force all voxel mip levels so use the same pivot point as the first level.
SVN r4217 (trunk)
2013-04-16 20:22:01 +00:00
Randy Heit
38d7b7d203 - Fixed errors and warnings when compiling with GCC. (Unfortunately, the VC++ debug builds
become ungodly slow when using mods with complex DECORATE. The GCC debug builds run just
  fine, however. Hopefully this is something that can be fixed later with an assembly-optimized
  version of the main VM loop, because I don't relish the thought of being stuck with GDB
  for debugging.)
- Fixed: The ACS_Named* action specials were erroneously defined as taking strings instead of
  names.
- Fixed: Copy-paste error caused FxMultiNameState::Emit to generate code that called
  DecoNameToClass instead of DecoFindMultiNameState.
- Updated FxActionSpecialCall::Emit for named script specials.
- Fixed inverted asserts for FxMinusSign::Emit and FxUnaryNotBitwise::Emit.


SVN r3893 (scripting)
2012-10-18 03:19:27 +00:00
Randy Heit
e7efa1d802 - Update to latest version in trunk.
SVN r3890 (scripting)
2012-10-17 04:24:54 +00:00
Randy Heit
d28ebe543b - Changed FRemapTable::AddDesaturation() to take doubles as parameters, since the C ABI always
passes doubles to functions anyway.
- Fixed: FRemapTable::AddDesaturation() excluded the final entry from the loop. Also, it was
  less forgiving than AddColorRange, in that it did not support ranges in descending order.

SVN r3875 (trunk)
2012-09-19 01:45:00 +00:00
Randy Heit
f96f665e63 - Fixed: R_ExtendSpriteFrames() would change spr.spriteframes even when it wasn't moving them around.
SVN r3775 (trunk)
2012-07-21 01:51:02 +00:00
Randy Heit
ffc4398aa7 - Added a 90 degree offset to all voxels, since Build's compass directions start at north
rather than east.

SVN r3774 (trunk)
2012-07-21 01:34:29 +00:00
Randy Heit
562cf04db2 - Update scripting branch to trunk.
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00
Braden Obrzut
e62e806693 - ZDoom no longer errors if no precalculated COLORMAP is found.
SVN r3662 (trunk)
2012-05-18 02:30:07 +00:00
Randy Heit
71e02e2d9e - Fixed: When the player setup menu cycles the random players, it needs to rebuild the translation for each one.
SVN r3657 (trunk)
2012-05-15 22:52:24 +00:00
Randy Heit
c676f97fd8 - Fixed: r_translate.cpp:SetRange() did not set the true color palette entry for single-entry ranges.
SVN r3608 (trunk)
2012-05-01 01:47:31 +00:00
Randy Heit
73a78caa5c - Added support for a few extra color ranges to Player.Colorset so that the Strife player's
predefined colors can properly define the standard Strife translation ranges.

SVN r3446 (trunk)
2012-03-16 02:23:31 +00:00
Randy Heit
748eb255cc - Fixed: R_ExtendSpriteFrames() neglected to set the new spriteframes value for the sprite.
SVN r3430 (trunk)
2012-03-12 01:34:19 +00:00
Randy Heit
2f3ea885c5 - Fixed: The identity translation for players should not be remapped through GPalette.Remap[].
The graphics are already mapped through this, so we don't need to do it again when translating.
  Moreover, if there was no duplicate of color 0, but there was a different color with a 
  duplicate, this means we end up drawing players with the duplicated color wherever it should
  be color 0. (Standard translations already had this right.)

SVN r3417 (trunk)
2012-03-10 00:26:42 +00:00
Randy Heit
de8bf651f2 - Fix warnings reported by gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
SVN r3293 (trunk)
2011-09-14 23:24:32 +00:00
Christoph Oelckers
080e769c76 - removed all asserts from the interpolation objects' Destroy methods. The condition will not be true after a failed savegame write occured.
- fixed: D_ErrorCleanup must clear 'savegamerestore'.
- fixed: Cleaning up when loading a savegame failed while restoring the thinker list did not work. There were two issues:
  * removed the asserts in GC::SweepList because they get triggered by thinkers that were not fully initialized during loading.
  * AActor::UnlinkFromWorld may not assume that the sector list has been initialized when this function is called. 

SVN r3274 (trunk)
2011-07-15 13:26:36 +00:00
Christoph Oelckers
4ef68ded5d - fixed some leftover references to the software renderer.
SVN r3264 (trunk)
2011-07-07 19:53:42 +00:00
Christoph Oelckers
5bfcaab25c - separation of software renderer from the rest of the code complete. All external access to the renderer is routed through the FRenderer interface class now, with two exceptions (2D texture drawing to a canvas and polymost testing code) that are handled by #defines.
SVN r3263 (trunk)
2011-07-07 15:37:47 +00:00
Christoph Oelckers
f08188b0e5 - removed unneeded includes of r_local.h.
SVN r3261 (trunk)
2011-07-06 18:12:16 +00:00
Christoph Oelckers
463c276014 - removed more r_ header dependencies from the rest of the code.
SVN r3260 (trunk)
2011-07-06 15:31:05 +00:00