Commit Graph

6756 Commits

Author SHA1 Message Date
Christoph Oelckers c346ac6143 - fixed: P_TeleportMove must clear the spechits array.
This was accidentally deleted during one round of portal refactoring but is essential to prevent multiple teleport activations in one move.
Fixing this also allowed removing the fudging that was added to work around the issue in P_TryMove.
2016-04-04 14:17:34 +02:00
Randy Heit 7de8c2b5eb Fixed: || should be && 2016-04-03 21:35:44 -05:00
Randy Heit 77f9643c8f How did this end up wrong? 2016-04-03 20:25:07 -05:00
Randy Heit 17972b5d06 Revert "Add "support" for user string variables in DECORATE"
- This reverts commit c90a1c0c96.
- DECORATE looks to be very dependant on functions that take strings as
  parameters receiving those strings as constants and not as expressions,
  so being able to declare string variables with DECORATE is pretty much
  useless.
2016-04-03 19:15:00 -05:00
Randy Heit c90a1c0c96 Add "support" for user string variables in DECORATE
- This is "support" in the very most basic sense. You can declare them,
  but you can't actually do anything with them, since the decorate parser
  can't handle expressions when it's parsing string arguments. However,
  they seem to be getting properly initialized and destroyed, which is
  what this was added to test. If it doesn't look like too much trouble, I
  might try to turn them into something actually worth something.
2016-04-03 18:10:09 -05:00
Randy Heit 7c8cff64e6 Added code to initialize and destroy string variables in classes
- Will require being able to add strings to non-native classes to actually
  test this.
2016-04-03 17:45:04 -05:00
Randy Heit 15208188de Remove PClass::Extend() 2016-04-03 16:25:08 -05:00
Randy Heit 85c8218441 Added methods for PTypes to serialize their values
- Values are tagged to allow for some measure of changing variable types
  without automatically breaking savegames.
- Use these new methods to serialize the non-native variables in an
  object. This allows for achiving non-ints.
2016-04-03 16:21:48 -05:00
Randy Heit da496bbe62 Use AddField() to add user variables in DECORATE 2016-04-03 16:21:48 -05:00
Randy Heit 806d9d7a95 Add an AddField() override to PClass that extends the default instance 2016-04-03 16:21:47 -05:00
Randy Heit 3357af32e5 Generalize FxArrayElement to work with all numeric elements (not just 32-bit ints) 2016-04-03 16:21:41 -05:00
Randy Heit 0cc2705b99 Added A_LogFloat 2016-04-03 16:12:35 -05:00
Christoph Oelckers 1011e26eb9 - fixed: P_RadiusAttack should not call P_DamageMobj for a damage value of 0.
This could happen if the damage calculations resulted in a value between 0 and 1, which for the actual check was multiplied with the damage parameter of P_RadiusAttack which inflated the fractional value to something that looked like actual damage but was later truncated.
2016-04-03 22:45:54 +02:00
Christoph Oelckers 6d441e25db - partially undid the 'repeated flash state' fix, because it didn't work with the stock weapons. I'm still not sure if a compatibility setting is needed. 2016-04-03 22:31:45 +02:00
Braden Obrzut 42edd7db22 - Added IfInvulnerable SBARINFO command (modified from Blue-Shadow's pull request) 2016-04-02 23:47:44 -04:00
Braden Obrzut 81f29556bf - Refactored SBarInfo flow control so negatable commands are handled statically.
- Made TArray movable and TDeletingArray a move only type.
2016-04-02 23:43:56 -04:00
Randy Heit 1648a71e45 Add support for Name and String types to ACS's GetUserVariable
- Reading one of these types will copy its value into the global ACS string
  table and return the index.
2016-03-29 22:49:12 -05:00
Randy Heit b37ef48e99 Allow ACS's GetUserVariable to access non-user variables
- Since DECORATE already allows reading all declared variables in a class,
  where's the utility in keeping this restriction in ACS?
- Variables must still be numeric types.
- SetUserVariable is still restricted to user variables only.
2016-03-29 22:42:04 -05:00
Randy Heit 35121544b4 Add float support to ACS's Get/SetUserVariable functions
- "Support" means that setting one will convert from fixed point to
  floating point, and reading one will do the reverse.
2016-03-29 22:41:38 -05:00
Randy Heit b6e3358b1c Add A_SetUserVarFloat and A_SetUserArrayFloat 2016-03-29 22:41:37 -05:00
Randy Heit 299019ea15 Add GetValueFloat() for numeric PTypes 2016-03-29 22:41:37 -05:00
Randy Heit feb5ab31cc Add double variants of SetValue() for numeric PTypes 2016-03-29 22:05:25 -05:00
Randy Heit e2711a74e7 Add float user vars for DECORATE
- PClass::Extend now takes alignment into consideration.
2016-03-29 21:48:57 -05:00
Christoph Oelckers a92de84cf7 - this stuff should not have been saved... 2016-03-28 22:53:10 +02:00
Christoph Oelckers 8c3c18b008 - forgot to add this... 2016-03-28 22:25:12 +02:00
Christoph Oelckers 263051a77b - removed a few unnecessary #includes. 2016-03-28 22:20:25 +02:00
Christoph Oelckers 59920095af - separated pushers into their own file. 2016-03-28 21:57:22 +02:00
Christoph Oelckers b5f333798e - moved all scroller related code into its own file, including the DScroller class definition. 2016-03-28 17:27:55 +02:00
Christoph Oelckers b70fee8ed8 - changed the means how to control the slowdown of crushing ceilings encountering an obstacle and corrected a few mistakes in the implementation
* there is a new crushing mode 3, which means that the crusher will always slow down if it hits an obstacle.
* crushing mode 1 (Doom mode) will never slow down.
* crushing mode 0 (compatibility) will only slow down for the specials that did so before, and only if both up and downspeed are 8 and the game is not Hexen. The following specials are affected:
  * Ceiling_LowerAndCrush
  * Ceiling_LowerAndCrushDist
  * Ceiling_CrushAndRaise
  * Ceiling_CrushAndRaiseA
  * Ceiling_CrushAndRaiseDist
  * Ceiling_CrushAndRaiseSilentA
  * Ceiling_CrushAndRaiseSilentDist
* Generic_Crusher was fixed to act like in Boom: Not only a speed value of 8 will cause slowdown, but all speed values up to 24.
* Hexen crushing mode will never cause slowdowns because Hexen never did this. (which also makes no real sense, considering that the crusher waits for the obstacle to die.)
2016-03-25 02:08:22 +01:00
Christoph Oelckers 8add60ed38 - fixed: Getting the nearest ceiling height failed for height-less actors. 2016-03-24 19:24:33 +01:00
MajorCooke a9ef8cc637 Fixed A_QuakeEx falloff not working properly. 2016-03-24 19:04:51 +01:00
Christoph Oelckers 75bcec411e - fixed: The portal blockmap's AddLineIntercepts methods needs to check the block's range. 2016-03-24 18:26:27 +01:00
Christoph Oelckers deafa0bce0 - fixed: The 'open door in 5 minutes sector type had the order of parameters wrong, due to a bad function prototype. 2016-03-24 18:01:01 +01:00
MajorCooke b16e696157 - Added offset and angle parameters to A_CheckBlock.
- Includes 2 flags, affixed by CBF_: AbsolutePos, and AbsoluteAngle.
- AbsolutePos: Absolute position of where to check.
- AbsoluteAngle: Angle parameter is used as is, not added onto the actor's current angle.
2016-03-23 14:05:31 +01:00
Christoph Oelckers 0d1fbcf65f - flattened the following commits by Major Cooke:
* Added falloff parameter to A_QuakeEx.
- Treated just like A_Explode's 'fullradiusdamage' parameter, where the quake will fall off from this distance on out to the edge. Default is 0, which means no falloff.
- Credits to MaxED and Michaelis for helping.

* - Added HighPoint parameter to QuakeEx.
- Allows fine tuning of where the quake's maximum or minimum occurs, in tics. This must be a range between [1, duration).
- For up or down scaling quakes, this sets the quake to reach maximum sooner or start minimizing later.
- For both, this indicates when the strongest will occur. Default is 0, or in the middle.

The original commits were nearly impossible to find in the convoluted commit tree, so I think it's preferable to have one clean commit instead.
2016-03-23 14:03:10 +01:00
Randy Heit f38dbc5055 Use LHS/RHS matching for some simple SAFE_APPENDs 2016-03-20 15:57:02 -05:00
Randy Heit 071a5718cc Use /*X-overwrites-A*/ wherever X = A; appears in the grammar 2016-03-20 15:57:01 -05:00
Randy Heit c0dd39ffd4 Use %token_class to define intconst 2016-03-20 15:57:01 -05:00
Randy Heit 260cf6848f Use LHS and RHS label matching in the grammars where possible 2016-03-20 15:57:01 -05:00
Randy Heit baa6dc0568 Add zcc-parse.c and .h to the ZScript project folder 2016-03-20 15:57:00 -05:00
Randy Heit 2a394d0cb8 Do not copy lemon grammars to the output directory
- Having my edits to the grammar disappear because Visual Studio had
  opened the copy instead of the original was super annoying. Using the -C
  option with Lemon, this problem is avoided because there are no copies
  to worry about.
2016-03-20 14:34:44 -05:00
Randy Heit 7f3e1777a7 Add -C option to Lemon, to specify an output directory 2016-03-20 14:26:02 -05:00
Randy Heit 3897f109ed VS2015 warning fixes for Lemon 2016-03-20 13:35:46 -05:00
Randy Heit 4641549e0e Lemon update 2016-03-16 19:45:54 on branch trunk
- Enhance Lemon so that it reorders the reduce rules such that rules without actions occur at the end and so that the first rule is number 0. This reduces the size of the jump table on the reduce switch, and helps the parser to run faster. (user: drh)
2016-03-20 13:06:54 -05:00
Randy Heit ec5108b2e5 Lemon update 2016-02-19 13:19:22 on branch trunk
- Omit the unused yyzerominor constant. (user: drh)
2016-03-20 13:06:54 -05:00
Randy Heit 4a24f7adcf Lemon update 2016-02-17 12:34:03 on branch parser-performance
- More agressive use of /*A-overwrites-X*/ in the parser. Fix an off-by-one error in parser stack overflow detection. (user: drh)
2016-03-20 13:06:54 -05:00
Randy Heit 25972d79a7 Lemon update 2016-02-17 04:33:10 on branch parser-performance
- Enhance Lemon so that if reduce code contains a comment of the form "/*A-overwrites-X*/" then a LHS label A is allowed to overwrite the RHS label X. (user: drh)
2016-03-20 13:06:54 -05:00
Randy Heit ab4c3a0c5e Lemon update 2016-02-17 01:46:19 on branch parser-performance
- Further improvements to the Lemon-generated code for yy_reduce(). (user: drh)
2016-03-20 13:06:54 -05:00
Randy Heit 8a18e5c7eb Lemon update 2016-02-17 01:18:33 on branch parser-performance
- In Lemon, add the ability for the left-most RHS label to be the same as the LHS label, causing the LHS values to be written directly into the stack. (user: drh)
2016-03-20 13:06:54 -05:00
Randy Heit 75f6d3a438 Lemon update 2016-02-16 21:19:49 on branch parser-performance
- Experimental changes to Lemon for improved parser performance. (user: drh)
2016-03-20 13:06:53 -05:00