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
Christoph Oelckers
fd27c8db9e
Merge branch 'master' into floatcvt
...
# Conflicts:
# src/dobjtype.cpp
# src/dobjtype.h
# src/version.h
2016-04-04 01:21:24 +02: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
Christoph Oelckers
330ca07f69
Merge branch 'master' into floatcvt
2016-04-03 22:11:50 +02:00
Christoph Oelckers
3f5e0c682e
- fixed: Due to the iteration limit of 100 in the path traverse code, running a trace was effectively limited to somewhere around 12800 map units. Also added the safer exit condition checks from the sight checking code to FPathTraverse.
2016-04-03 21:41:58 +02:00
Christoph Oelckers
70b8afc5ec
- fixed: A_CheckLOF did the trace pitch calculation wrong.
2016-04-03 21:26:57 +02:00
Christoph Oelckers
02a586e6b2
- removed a redundant Vec3Offset call in A_SpawnParticle.
2016-04-03 21:03:49 +02:00
Christoph Oelckers
3ee42f6aa6
- removed all savegame compatibility handling, since the data is just too different from what it was before to try to convert it.
2016-04-03 20:55:23 +02:00
Christoph Oelckers
4e5ba49aca
- got rid of secplane_t::fA and fB. All uses could be replaced by other functions.
2016-04-03 19:46:00 +02:00
Christoph Oelckers
fc5f98a0be
- floatified the sector planes.
...
This should conclude the floating point conversions for now.
2016-04-03 19:28:53 +02:00
Christoph Oelckers
fede16ce68
- fixed PointOnSide checks.
...
- optimized some ZatPoint calls for floating point planes.
2016-04-03 13:15:02 +02:00
Christoph Oelckers
7a6039b44c
- floatified vertex coordinates.
...
Making these double or float doesn't seem to matter at all performance-wise so they use the more precise double format.
2016-04-03 11:53:31 +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
Edoardo Prezioso
f36489098f
- Fixed one GCC/Clang warning.
2016-04-02 23:01:51 +02:00
Edoardo Prezioso
28ac65b25b
- Fixed GCC and Clang compilation errors.
2016-04-02 23:01:32 +02:00
Christoph Oelckers
6ffb5fa164
- fixed: Angular interpolation needs to call deltaangle instead of using the difference between two angles to avoid overflow conditions.
2016-04-02 22:12:52 +02:00
Christoph Oelckers
9b5a4b6d43
- removed several unused setter functions for level data structures and fixed some incorrect uses.
2016-04-02 22:05:23 +02:00
Christoph Oelckers
9a07f81269
- renamed all ZatPoint variants that return a fixed point value to ZatPointFixed, to avoid accidental mixup with the floating point variants.
2016-04-02 20:45:32 +02:00
Christoph Oelckers
6a150f7248
- fixed seg vertex adjustment (from a commit that wasn't copied to this branch.) and added viewx etc. to a global header .
2016-04-02 20:24:51 +02:00
Christoph Oelckers
3db90ff4c1
- removed all remaining fixed point methods from AActor.
...
- removed all calls to fixed point vertex access methods in p_setup.cpp.
# Conflicts:
# src/p_setup.cpp
2016-04-02 20:14:58 +02:00
Christoph Oelckers
60e25b32a8
- floatified the particles.
...
This is the last bit of play code that needed to be altered, what's left is the underlying data representations of vertices, linedefs and sectors.
# Conflicts:
# src/p_setup.cpp
# src/r_things.cpp
2016-04-02 20:12:08 +02:00
Christoph Oelckers
931774ab38
- fixed some issues with the PathTraverse and sight checking code:
...
* typo in calculating end position from a trace vector
* must use floor to convert from floating point block coordinate to block index to account for running off the negative side of the blockmap. (Int cast always rounds toward zero which is wrong here.)
* bad calculation of sight checking slopes - they has the actor's z coordinate duplicated.
- fixed scaling of automap markers.
2016-04-02 20:10:48 +02:00
Christoph Oelckers
b3659305ce
- fixed typo in line portal interpolation path calculation.
2016-04-02 20:10:32 +02:00
Christoph Oelckers
96a02f922d
- removed R_PointToAngle2 call in P_Setup.cpp.
...
- removed long inactive node saving code in p_writemap.cpp. If this file is ever made operational again it will be with UDMF output.
2016-04-02 20:10:25 +02:00
Christoph Oelckers
046ee3e803
- removed a few leftover FRACUNITs.
2016-04-02 20:07:18 +02:00
Christoph Oelckers
bb13590e07
- make viewx etc. global.
...
- a few minor optimizations.
2016-04-02 20:07:02 +02:00
Christoph Oelckers
ccfb2ac233
- fixed quake checks.
2016-04-01 12:58:46 +02:00
Christoph Oelckers
8680391e0b
- floatified the global view variables.
...
The software renderer still uses internal copies of the fixed point version.
2016-04-01 12:22:16 +02:00
Christoph Oelckers
a5e14425aa
- fixed angular interpolation of skybox viewpoints.
2016-04-01 11:55:37 +02:00
Christoph Oelckers
a93296be80
- removed most of the deleted function declarations.
2016-03-31 21:20:45 +02:00
Christoph Oelckers
6445615b5d
- fixed the sound location calculations which got somewhat broken by the constant changes during the conversion.
2016-03-31 21:13:32 +02:00
Christoph Oelckers
8f5ac9b73f
- fixed a float/fixed mixup in R_PointOnSideSlow.
2016-03-31 17:44:05 +02:00
Christoph Oelckers
9412ce45d6
- floatified portals.cpp and most of p_maputl.cpp.
2016-03-31 16:52:25 +02:00
Christoph Oelckers
6b065b8074
- floatified FBoundingBox.
2016-03-31 10:38:54 +02:00
Christoph Oelckers
8fd76f0c8a
- floatified bmaporgx and bmaporgy, allowing to remove the gross overflow prevention hacks present in the blockmap code.
2016-03-31 09:23:14 +02:00
Christoph Oelckers
f41afde545
- floatified line_t::bbox.
2016-03-31 01:22:49 +02:00
Christoph Oelckers
7a2c8fdc1c
- floatified po_man.cpp and the remaining bits in p_lnspec.cpp
2016-03-31 00:41:21 +02:00
Christoph Oelckers
1666418510
- fixed incomplete interpolation floatification.
2016-03-30 20:05:29 +02:00
Christoph Oelckers
d54a2364b9
- floatified r_interpolate.cpp.
2016-03-30 17:11:31 +02:00
Christoph Oelckers
27bad66f61
- floatified the remaining parts of p_sector.cpp.
2016-03-30 16:51:19 +02:00
Christoph Oelckers
66929cbaff
- floatified p_trace, p_slopes and p_udmf.cpp.
...
- major cleanup of unused code.
2016-03-30 16:30:22 +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
c2e2910399
- fixed copy/paste error in P_GetFriction resulting in incorrect calculation of movefactor.
2016-03-30 10:08:06 +02:00
Christoph Oelckers
0eb35d6c6e
Merge branch 'master' into floatcvt
...
# Conflicts:
# src/dobjtype.cpp
# src/dobjtype.h
2016-03-30 09:47:25 +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
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
ff0b371582
- made the linedef deltas private and only accessible through access functions.
...
Now everything should be in place to remove the fixed point math from the rest of the play code.
2016-03-29 16:13:16 +02:00
Christoph Oelckers
84d547adfb
- fixed: The check if a line is in range of a bounding box must be exclusive.
...
Unfortunately I picked the one incorrect version of this check (from A_PainShootSkull) when moving it to an inline function.
2016-03-29 13:10:15 +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
c7ae4688a3
- replaced all direct access to vertex coordinates with wrapper functions.
...
So that code replacement can be done piece by piece and not all at once.
2016-03-29 10:07:06 +02:00
Christoph Oelckers
8d071f85b3
- use float vectors for prediction.
2016-03-29 02:06:05 +02:00
Christoph Oelckers
c776a0fb54
- floatification of p_teleport and p_switch.cpp.
2016-03-29 00:31:59 +02:00
Christoph Oelckers
0a238e7e18
Merge branch 'master' into floatcvt
2016-03-28 22:53:26 +02:00
Christoph Oelckers
a92de84cf7
- this stuff should not have been saved...
2016-03-28 22:53:10 +02:00
Christoph Oelckers
0283df4c42
- restored floating point pusher code.
2016-03-28 22:47:45 +02:00
Christoph Oelckers
9145181b79
Merge branch 'master' into floatcvt
2016-03-28 22:25:36 +02:00
Christoph Oelckers
8c3c18b008
- forgot to add this...
2016-03-28 22:25:12 +02:00
Christoph Oelckers
d87f861e87
Merge branch 'master' into floatcvt
...
# Conflicts:
# src/p_spec.cpp
# src/p_spec.h
2016-03-28 22:23:41 +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
05504b65d2
- floatified p_scroll.cpp
...
While testing this it became clear that with the higher precision of doubles it has to be avoided at all costs to compare an actor's z position with a value retrieved from ZatPoint to check if it is standing on a floor. There can be some minor variations, depending on what was done with this value. Added isAbove, isBelow and isAtZ checking methods to AActor which properly deal with the problem.
2016-03-28 21:04:46 +02:00
Christoph Oelckers
a46a4c81b1
Merge branch 'master' into floatcvt
...
# Conflicts:
# src/p_lnspec.cpp
# src/p_spec.cpp
# src/p_spec.h
2016-03-28 17:46:19 +02:00
Christoph Oelckers
fd46909b1a
- made partial floarting point aliases for EV_DoCeiling so that all the calls in p_lnspec.cpp match the master branch for merging.
2016-03-28 17:41:13 +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
a99ebc2356
- floatified p_sight.cpp.
2016-03-28 16:22:21 +02:00
Christoph Oelckers
5e1c79c050
- floatified the rest of p_mobj_cpp and removed a large part of the conversion cruft from the headers that was needed to keep the code compileable.
2016-03-28 12:03:07 +02:00
Christoph Oelckers
2fff7005ad
- floatified more of p_mobj.cpp
2016-03-28 10:01:24 +02:00
Christoph Oelckers
217414cb1c
-floatified P_ExplodeMissile and P_XYMovement
2016-03-28 00:55:57 +02:00
Christoph Oelckers
7b256dda3d
- did the last remaining bits in p_map.cpp.
2016-03-27 22:49:59 +02:00
Christoph Oelckers
8b4a33794a
- floatified P_ChangeSector.
2016-03-27 22:35:58 +02:00
Christoph Oelckers
fe744a589c
- floatified P_RadiusAttack.
2016-03-27 21:11:17 +02:00
Christoph Oelckers
0baaa3cf63
- floatified P_LineAttack, P_TraceBleed and P_UseLines.
2016-03-27 20:58:01 +02:00
Christoph Oelckers
eae6f7e9ea
- floatified P_AimLineAttack.
2016-03-27 17:58:18 +02:00
MajorCooke
4eee1c7af1
Fixed: A_FaceMovementDirection was backwards.
2016-03-27 14:21:07 +02:00
Christoph Oelckers
228c447a02
- fixed: A_FireCustomMissile used the player position as offset.
2016-03-27 14:20:14 +02:00
Christoph Oelckers
6ab95da2fc
- fixed copy/paste coordinate screwup in moving camera code.
2016-03-27 14:11:46 +02:00
Christoph Oelckers
23d311dd04
- floatified P_CheckSlopeWalk. It should be noted that this function is one place where full double precision is too high and needed to be truncated.
2016-03-27 14:07:35 +02:00
Christoph Oelckers
26ff2f73d7
- floatified P_TryMove and the sliding and bouncing code.
2016-03-27 13:29:58 +02:00
Christoph Oelckers
1877eca2ab
- more floatification of p_map, plus some stuff used in those functions.
2016-03-27 01:06:54 +01:00
Christoph Oelckers
6e93264016
- started floatification on p_map.cpp.
2016-03-26 23:19:38 +01:00
Christoph Oelckers
00ea8662b8
- floatification of p_enemy and p_interaction.cpp.
2016-03-26 20:59:35 +01:00
Christoph Oelckers
0c39bdd04c
- floatified texture scale values.
2016-03-26 13:37:44 +01:00
Christoph Oelckers
dabed04d2a
- floatification of p_3dfloors, p_3dmidtex and p_acs.cpp plus some leftovers.
...
- removed all references to Doom specific headers from xs_Float.h and cmath.h.
2016-03-26 12:36:15 +01:00
Christoph Oelckers
35bb686281
- floatification of sector_t::centerspot.
2016-03-26 09:38:58 +01:00