Commit graph

64 commits

Author SHA1 Message Date
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
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
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
046ee3e803 - removed a few leftover FRACUNITs. 2016-04-02 20:07:18 +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
Christoph Oelckers
77f2530236 - floatified the sector plane movers and removed some of the ZatPoint conversion cruft. 2016-03-30 09:41:46 +02:00
Christoph Oelckers
25f5e8449a - replaced all direct access to sector plane coefficients with wrapper functions. 2016-03-29 12:40:41 +02:00
Christoph Oelckers
35bb686281 - floatification of sector_t::centerspot. 2016-03-26 09:38:58 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers
58d3b04590 - fixed some places in p_pillar.cpp where sector plane z's were calculated at (0, 0) which could cause overflows if the actual plane is too far away from the origin.
- renamed sector_t::soundorg in centerspot, changed the type to a fixedvec2 and removed the CenterSpot #define.

Since this thing was used in lots of places that have nothing to do with sound the name made no sense. Having it as a fixed_t array also made it clumsy to use and the CenterSpot #define used a potentially dangerous type cast.
2016-02-24 14:49:59 +01:00
Christoph Oelckers
afc631b537 - this wasn't saved for last night's commit. 2016-02-15 09:25:48 +01:00
Christoph Oelckers
5af53c0e62 - fixed a few more sector movers which calculated their movement at (0,0) instead of inside the sector. 2016-02-14 18:53:00 +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
0b7a06c714 Merge branch 'NewEESpecials'
# Conflicts:
#	src/fragglescript/t_fs.h
2016-02-05 01:01:39 +01:00
Christoph Oelckers
4eb38f0381 - fixed: plane heighr calculations for Floor_Lower/RaiseByValue should be done at a point that's actually near the affected sector, not at (0,0), otherwise there's a risk of fixed point overflow. 2016-01-27 11:01:38 +01:00
Christoph Oelckers
7b5a77a8d8 - added various action specials and parameter extensions defined by Eternity Engine.
The reason for defining them is to be able to fill out the Eternity translation table for GZDoom's Extradata parser.
Most of the new specials are mere specializations of ZDoom's Generic_* functions and occupy positions above 255 to avoid filling up the last remaining free slots available for Hexen format maps.
Allowing action specials greater than 255 required a few changes:
 * all access to action specials is now through a small set of access functions.
 * Two new PCodes were added to ACC to handle these new specials from scripts.
 * a minor change to the network protocol, so netgame  and demo version numbers were bumped.
 * FS_Execute is now properly defined in p_lnspec.cpp.
Two of the newly added specials - generalizations of the special 'close Door in 30 seconds' and 'raise door in 5 minutes' sector types, will also be available to Hexen format maps. The rest are limited to use in ACS, UDMF and DECORATE.
This also adds 'change' and 'crush' parameters to most Floor_* and Ceiling_* specials, again to match Eternity's feature set.
2016-01-25 18:49:56 +01:00
Christoph Oelckers
f8b2b4558f - fixed a few typos (Get instead of Set...) 2016-01-06 15:47:56 +01:00
Christoph Oelckers
eb6c855a95 - handle intermediate special values in thinkers. They also need to take care of the related damage variables and flags. 2016-01-06 13:30:28 +01:00
Christoph Oelckers
bd8513c063 - made sector_t::damageamount an int so that it can hold TELEFRAG_DAMAGE.
- marked all places where sector_t::special needs to be addressed for the damage overhaul.

NOTE: This commit will not compile!
2016-01-06 12:56:35 +01:00
Christoph Oelckers
b0db5d9b16 - added a SECF_SILENTMOVE flag.
Since Eternity got this it's a good candidate for a potential Super-Boom standard, and it's also useful for silencing a sector temporarily without removing the sound sequence.
2016-01-06 02:16:33 +01:00
Christoph Oelckers
6a63effa1f - fixed: A_CheckTerrain did not use the proper damage type for processing an instant death sector.
- moved sector secret information from sector_t::special and secretsector to two flag bits in sector_t::Flags.

This is to get rid of the bit masking madness in the floor/ceiling thinkers which need to preserve this bit when they change a sector's type.
2016-01-06 01:50:45 +01:00
Edoardo Prezioso
1bd23150aa - Fixed an uninitialized variable in stairs code.
'floor->m_Hexencrush' was left uninitialized in all the floor movers after the first one.
2015-07-16 19:46:54 +02:00
Christoph Oelckers
425e5b9ffc - replaced P_FindSectorFromTag with an FSectorTagIterator class.
This is done to encapsulate the gory details of tag search in one place so that the implementation of multiple tags per sector remains contained to a few isolated spots in the code.
This also moves the special 'tag == 0 -> activate backsector' handling into the iterator class.
2015-04-14 22:39:57 +02:00
Christoph Oelckers
238046655c - wrapped all accesses to the sector tag into accessor functions, as preparation for allowing multiple tags per sector. 2015-04-14 18:32:14 +02:00
Randy Heit
fd7ed2bc25 Undo most of ZzZombo's changes
- "If it ain't broke, don't fix it."
- Some of the changes were downright wrong and some were pointless, so undo
  everything that doesn't look like an actual improvement.
2015-02-08 20:44:18 -06:00
ZzZombo
c4b742ebf0 - Part 2 of the sanity crusade. 2015-02-08 17:03:49 +08:00
Christoph Oelckers
6f7b83faa1 - fixed: EV_DoFloor was a bit too selective about which movement types were allowed to crush. Changed so that the crush parameter is always used. Also changed all non-crushing calls to explicitly pass -1 as crush damage instead of relying on EV_DoFloor to ignore the passed value. 2014-10-24 23:12:38 +02:00
Christoph Oelckers
50c5dc62aa - fixed typo in USDF spec.
- comment fixes taken from GZDoom.
- division by zero check in R_SetVisibility from GZDoom.
2013-06-23 10:28:12 +02:00
Christoph Oelckers
3defad92da - missed some changed constants...
SVN r4129 (trunk)
2013-02-10 09:03:56 +00:00
Christoph Oelckers
027a99d772 - fixed: Hexen's Floor_RaiseAndCrush is not the same action as the one used by Doom and which was used by ZDoom before r4053. Restored the old code and gave it a new special 99:Floor_RaiseAndCrushDoom.
SVN r4125 (trunk)
2013-02-10 08:53:03 +00:00
Randy Heit
15497b4a24 - Fixed: Floor_RaiseAndCrush is not Floor_RaiseToLowestCeilingAndCrush.
SVN r4053 (trunk)
2013-01-27 02:57:17 +00:00
Randy Heit
154e83331d - We don't need to keep the FloatBobOffsets[] verison of DoWaggle around.
SVN r3743 (trunk)
2012-07-06 03:16:13 +00:00
Christoph Oelckers
e6e15be7e0 - fixed: p_floor.cpp had some checks for 0-tags wrong (thanks to FDARI for the fix)
SVN r3312 (trunk)
2011-11-05 22:45:58 +00:00
Randy Heit
de956a9ab6 - Added a fourth paremeter to Floor_LowerToHighest. Set it to 1 to always apply
the offset to the target height. (This is Heretic's behavior.)

SVN r3304 (trunk)
2011-10-27 01:35:30 +00:00
Christoph Oelckers
163301dcd5 - took all includes of farchive.h out of headers. This file will have to be included explicitly in each source file that needs it.
SVN r3259 (trunk)
2011-07-06 14:20:54 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +00:00
Randy Heit
9137ef04f6 - Added "SoundSequence" UDMF sector property. This is the name of the sound sequence to play for
the sector. Note that this contrasts with sound sequence things in that it takes a name and
  not a number. Also, placing a sound sequence thing in a sector will override this property.

SVN r2492 (trunk)
2010-08-07 04:32:18 +00:00
Randy Heit
b59162a33a - Fixed: Floor_RaiseAndCrush did not subtract 8 from the lowest ceiling's height when determining
a destination height. (It did subtract 8, but in the wrong place.)

SVN r2490 (trunk)
2010-08-07 03:36:56 +00:00
Christoph Oelckers
ea11eb9e3d - fixed: The Boom stair fix was done for Hexen stairs but must only be in the code for Doom stairs.
SVN r2162 (trunk)
2010-02-14 08:24:00 +00:00
Christoph Oelckers
6ec30761c6 - Added Boom's stairbuilding fix when one step couldn't be built due to an active thinker in the sector.
This is compatibility optioned with COMPAT_STAIRINDEX. Also added a compatibility setting for 
  Eternal Doom MAP25 which relies on Doom's original broken behavior.
- added a few sanity checks for duplicate actor names in DECORATE. ZDoom will now print more warnings
  and all crash cases should be properly handled but since this is still an error this will not work
  properly in all circumstances. For example, if you have a duplicate name all classes that inherit
  from the original definition will not survive a savegame if they reference a state belonging to that
  class at the point of saving.
- Print 'tried to register class more than once' in red to highlight it.
- fixed: actors may not replace themselves.

SVN r2158 (trunk)
2010-02-13 08:56:08 +00:00
Christoph Oelckers
87f3c9c5b7 - fixed: The floor waggle code used FloatBobOffsets as sine table but this
only has 64 entries and is not precise enough. It now uses finesine instead.
- fixed: When compositing a multipatch texture any patch that is a multpatch
  texture itself and contains rotations may not be composited directly into
  the destination buffer. This must be done with an intermediate buffer.
- Fixed: Drawing a slider in the options menu did not scale the x-coordinate.
- Fixed: If the alt HUD had to draw negative numbers the minus sign was misplaced
  due to incorrect texture coordinate calculations.
- changed option menu scaling for widescreen modes so that it doesn't scale down
  so quickly. 
- made some error messages in DECORATE that don't affect the parsing non-fatal
  so that the parser can continue to find more problems.

SVN r2076 (trunk)
2010-01-02 11:38:27 +00:00
Randy Heit
9eb5fdd276 - Added a channel parameter to the sector overload of SN_StopSequence() so
it can be properly paired with calls to SN_StartSequence().


SVN r2043 (trunk)
2009-12-25 02:19:50 +00:00
Christoph Oelckers
233e662a92 - Fixed: EV_DoDonut, EV_DoElevator and EV_StartWaggle did not to any 0-tag checks.
SVN r2000 (trunk)
2009-11-24 07:38:11 +00:00
Christoph Oelckers
0c39b5c66a - Fixed: The rail sound used the shooter's position for calculating the sound origin
but should use the camera position instead to get the correct position for
  the closest point along the trail.
- Fixed: Explosions no longer caused splashes.
- Fixed: Copying translations to lower decals had the shade color check wrong.
- Fixed: Waggling floors did not move attached geometry.
- Cleaned up p_floor.cpp so that related parts of the code are grouped together.

SVN r1926 (trunk)
2009-10-17 11:30:44 +00:00
Christoph Oelckers
f3f209160e - Renamed plane flags from SECF_* to PLANEF_*.
- Changed Heretic's plat raise type to use a flag to block further sector movement
  instead of keeping the dead thinker around.


SVN r1853 (trunk)
2009-09-17 10:40:38 +00:00
Randy Heit
9764532d8b - Swapped the order of floor and ceiling moves in DElevator::Tick() so that
if an elevator contains an actor exactly the same height as it, it will not
  be blocked.


SVN r1751 (trunk)
2009-08-05 00:36:01 +00:00
Christoph Oelckers
774e559eaf - Last commit was incomplete.
SVN r1175 (trunk)
2008-08-16 20:47:41 +00:00
Christoph Oelckers
bc5d0c882b - Put more floor/ceiling properties in sector_t into a substructure and
added wrapper functions.


SVN r1174 (trunk)
2008-08-16 20:19:35 +00:00
Christoph Oelckers
8ca7c05e9d - Changed FImageCollection to return translated texture indices so
that animated icons can be done with it.
- Changed FImageCollection to use a TArray to hold its data.
- Fixed: SetChanHeadSettings did an assignment instead of comparing
  the channel ID witg CHAN_CEILING.
- Changed sound sequence names for animated doors to FNames.
- Automatically fixed: DCeiling didn't properly serialize its texture id.
- Replaced integers as texture ID representation with a specific new type
  to track down all potentially incorrect uses and remaining WORDs used
  for texture IDs so that more than 32767 or 65535 textures can be defined.


SVN r1036 (trunk)
2008-06-15 18:36:26 +00:00