Commit graph

125 commits

Author SHA1 Message Date
Christoph Oelckers
01aaef1528 - fixed: The P_DamageMobj call for damaging sectors should be skipped completely if godmode is on, so that instant damage sectors don't kill an invulnerable player. 2016-01-22 12:16:17 +01:00
Christoph Oelckers
13e25faea7 - p_sight.cpp, p_spec.cpp and p_switch.cpp refactored. 2016-01-20 14:20:14 +01:00
Christoph Oelckers
87689d3ba6 - global search&replace of ZatPoint calls with commonly named actor variables. 2016-01-17 14:08:20 +01:00
Christoph Oelckers
37f18055af - turned sector_t::FloorSkyBox and CeilingSkyBox into an array.
- removed unused SpreadCeilingPortal function.
2016-01-12 21:34:41 +01:00
Christoph Oelckers
7115590c1d - moved setup code for Eternity-style skyboxes to p_spec.cpp and consolidated most of it with nearly identical parts of the stacked sector portal setup code. 2016-01-11 15:29:44 +01:00
Christoph Oelckers
2c0f64cf9f - refactoring of R_PointToAngle2 when used to calculate direction between two actors. 2016-01-10 20:46:26 +01:00
Christoph Oelckers
1e2ce9a622 - some refactoring of P_AproxDistance calls into newly defined AActor method AproxDistance.
The main reason here is to reduce the number of instances where AActor::x and AActor::y are being referenced.
2016-01-10 17:52:41 +01:00
Christoph Oelckers
eafa394af4 - re-added and fixed terrain splashes for damaging sectors.
Turned out that P_HitWater wasn't even able to spawn the splashes, even after the call was re-added.
2016-01-06 16:42:21 +01:00
Christoph Oelckers
154e106315 - make better use of the damageinterval value for Strife's delayed damage. 2016-01-06 14:16:42 +01:00
Christoph Oelckers
6afd76e5db - enable damage types for Strife's delayed damage. It will always use the type of damage that was last encountered. 2016-01-06 13:36:22 +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
1ee441412a - add savegame compatibility handling for damage related changes: When loading an old savegame the sector specials must be reinitialized to set the damage properties. 2016-01-06 12:31:27 +01:00
Christoph Oelckers
5474e01de8 - removed FraggleScript's 'sectortype' function. This was GZDoom exclusive and never documented so it got no public exposure. Since this is incompatible with the damage related changes, it has no more use.
- major overhaul of the static sector damage system:

* consolidated special based damage, Sector_SetDamage and UDMF properties into one set of damage properties. The parallel handling that could lead to double damage infliction was removed. This also means that damage through sector specials can be retroactively changed through Sector_SetDamage.
* all special cases were turned into flags. The new system can switch between Strife's delayed damage and regular damage, and it can also set whether terrain splashes are used or not. It also has access to the special properties of the end-level type (i.e. switching off god mode and ending the level.)
* the damage related flags are accessible through Sector_ChangeFlags, not the damage functions themselves.
2016-01-06 12:12:47 +01:00
Christoph Oelckers
d34077a3ba - ... and finally the push flag. 2016-01-06 02:05:39 +01:00
Christoph Oelckers
3ffcec3eb3 - moved friction flag from special to Flags as well. 2016-01-06 02:01:59 +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
Christoph Oelckers
3e13e772ef - after realizing that changing the sector's MOD variable to an FNameNoInit doesn't do anything bad, I just went ahead and got rid of the last place in the engine that still used this data type for internal storage. 2016-01-05 16:10:04 +01:00
Christoph Oelckers
d432df55e9 - changed Sector_SetDamage so that it can explicitly set the damage interval and the leakiness probability, instead of hardcoding it to fixed damage ranges.
- fixed: FCajunMaster::IsDangerous did not check for Heretic's sludge type.
2016-01-05 15:39:21 +01:00
Christoph Oelckers
111479063f - fixed a potential overflow issue with calculating a portal's origin point.
- fixed: Sector_SetPortal's Eternity translation was not correct.

The ZDoom variant allows specifying the plane as part of the portal, Eternity does not. Added a new 'plane' type 3 which just means 'any'.
2016-01-04 21:05:09 +01:00
Christoph Oelckers
792d3906fd - fixed: line activation checks for monster activation could be skipped if the lines also were flagged for player activation. 2015-12-19 20:32:41 +01:00
Eevee (Alex Munroe)
221c2d2d82 Transfer flat-based damage (P_PlayerOnSpecialFlat) to 3D floors. 2015-06-06 16:07:48 -07:00
Eevee (Alex Munroe)
8a428e69b6 Don't play a terrain splash if the player didn't take damage. 2015-06-06 16:07:48 -07:00
Christoph Oelckers
9f208409f2 - fixed: The tag check in Sector_CopyScroller was inverted (it should reject sectors with the given tag, but it rejected everything else.) 2015-05-25 19:57:36 +02:00
Christoph Oelckers
db61c1cb57 - allow multiple line IDs as well using the same method as for sector tags. 2015-04-19 17:51:34 +02:00
Christoph Oelckers
b921157f57 - uncouple sector tag storage from the sector data to allow multiple tags per sector.
Tags are now handled by a tag manager class which stores sector/tag pairs. This way multiple entries can be added per sector.
Since UDMF does not have any arrays the additional tags are stored as a space separated string as 'MoreIDs'.
2015-04-19 12:33:27 +02:00
Christoph Oelckers
6326cd74b4 - moved tag iterators to their own file. 2015-04-19 09:07:05 +02:00
Christoph Oelckers
902593198b - wrapped all line ID accesss just like sector tags 2015-04-15 09:37:06 +02:00
Christoph Oelckers
47543bb766 - while we're at it, let's also wrap line ID searches in an iterator class so that we can do multiple IDs per line later as well. 2015-04-15 00:47:06 +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
Edward Richardson
c85105f552 Added cl_showsecretmessage
Controls if secret notifications are displayed (def. true)
2014-10-31 22:50:23 +13:00
Edward Richardson
9e68983b44 Added standard teleports to line prediction
- Added standard teleports to line prediction
- Menudef for line special prediction
2014-09-26 15:48:45 +12:00
Edward Richardson
53b6e7d4d5 Added silent line teleport prediction
- Allow activation of line teleport specials during prediction
- Moved prediction functions to improve uncapped framerates
2014-09-26 15:48:45 +12:00
Randy Heit
ea7ba9dba3 Add per-actor friction
- This is multiplied by the sector's friction.
- This is intentionally not serialized yet, while awaiting feedback.
2014-07-28 23:15:50 -05:00
Edward Richardson
0276760a2d Animate switches when bumped 2014-07-19 21:00:12 +12:00
Christoph Oelckers
8f5683e23d - moved secret found message to string table and removed the CVAR crutch that dates from a time when modifying string table content wasn't as easy as it is now.
- added 'showsecretsector' CVAR to show the sector number with the secret found message.
2014-05-29 17:50:14 +02:00
Christoph Oelckers
0c86650db0 - fixed: The savegame code for player restoration did some undefined things with the userinfo that only worked due to previous memory leaks. It must ensure that the userinfos get properly transferred and not implicitly rely on the copy assignment being used to copy the actual player data. 2013-07-14 14:22:49 +02:00
Christoph Oelckers
a59a886f94 - fixed: The SectorDamage 3D-floor code didn't account for Vavoom-style 3D floors where floor and ceiling plane of the control sector are inverted. 2013-07-14 13:24:00 +02: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
10e185a6e3 - Retain the Scroll_Texture_(Left|Right|Up|Down) specials on lines for the sake of
compat_useblocking. This is not going to be extended to all specials that spawn a thinker at
  load time, because some of them can be placed on a line later using SetLineSpecial and used
  directly.

SVN r4037 (trunk)
2013-01-23 04:11:19 +00:00
Randy Heit
2c3b57145a - When scrolling rotated floors and ceilings, scroll as if the texture was unrotated. (That is,
keep the scroll direction constant, no matter what the rotation.)

SVN r3669 (trunk)
2012-05-31 03:40:28 +00:00
Christoph Oelckers
de43788c3a - fixed: Heretic: dScroll_EastLavaDamage was missing its strobe effect
SVN r3606 (trunk)
2012-04-28 20:12:54 +00:00
Randy Heit
158f32bcda - Fixed P_CheckSwitchRange() should not force range checking of lines flagged with ML_3DMIDTEX
if they do not have a midtexture.

SVN r3601 (trunk)
2012-04-27 03:17:56 +00:00
Randy Heit
3523e4f24a - Fixed: SectorDamage did not work with 3D floors.
SVN r3594 (trunk)
2012-04-26 02:35:02 +00:00
Randy Heit
58f7e72d1b - Restored savegame compatibility that was removed in r3427.
SVN r3435 (trunk)
2012-03-13 02:43:24 +00:00
Christoph Oelckers
e4880d162f - added Xaser's submission for accessing accuracy and stamina from DECORATE and ACS.
- added DECORATE properties for accuracy and stamina.
- Since these changes move properties from player_t to AActor all savegame compatibility code was removed and the min. savegame version bumped.


SVN r3427 (trunk)
2012-03-11 09:08:35 +00:00
Randy Heit
77a4b9a29b - Give actors modified via Dehacked than CANUSEWALLS flag, whether they look like monsters
at first glance or not.

SVN r3386 (trunk)
2012-02-23 03:24:13 +00:00
Randy Heit
00d3e1975f - Play "misc/secret" as a UI sound.
SVN r3340 (trunk)
2012-01-22 00:18:13 +00:00
Randy Heit
1bdbfb360e - Remove an int->bool conversion warning.
SVN r3338 (trunk)
2012-01-21 23:51:24 +00:00
Randy Heit
83fc6cf53a - Fixed: Hexen's ACS implementation truncates all line specials to bytes, so we need to do the
same for maps defined with Hexen-style MAPINFOs.

SVN r3336 (trunk)
2012-01-21 23:47:13 +00:00
Christoph Oelckers
b1905c16ef - added UDMF LOcknumber property, submitted by Nightfall.
SVN r3331 (trunk)
2011-12-12 16:07:32 +00:00