Mitchell Richters
bfafe4e21c
- Tidy up some of the spaces on SetValueForKey()
calls.
...
* Although I hate the spaces and have no idea why anyone would do this, there's too many such calls in the document so easiest to just stick with it :/
2022-10-21 00:35:59 +11:00
Mitchell Richters
8d2e022250
- Fix broken paths in default configuration on Unix how I asked for it to be fixed.
2022-10-21 00:35:58 +11:00
Unrud
8459ee1cb2
Fix broken paths in default configuraiton on Unix
...
The default paths for **FileSearch.Directories** and **SoundfontSearch.Directories** are somewhat broken.
`SHARE_DIR` is defined as just `/usr/local/share/`.
The paths `…/games/raze` are not added to **FileSearch.Directories**.
`GAME_DIR` is defined as `.config/raze` on Unix. Combining it with the prefix `…/share/` is wrong.
Excerpt from the default configuration:
```ini
[FileSearch.Directories]
…
Path=/usr/local/share/
…
[SoundfontSearch.Directories]
…
Path=/usr/local/share/.config/raze/soundfonts
Path=/usr/local/share/games/.config/raze/soundfonts
Path=/usr/share/.config/raze/soundfonts
Path=/usr/share/games/.config/raze/soundfonts
```
2022-10-20 23:54:46 +11:00
Mitchell Richters
8bfcb8c939
- Floatify InputPacket::fvel
and InputPacket::svel
.
...
* Since all velocities are floated, we can now take each game's keymove scaling into its ticker and use a consistent keymove size, making non-mouselook and controller input truly identical across the games without having to try and fudge any values.
2022-10-20 00:48:09 +02:00
Mitchell Richters
def2b9d483
- Flip svel
around in the input code so we can use proper anti-clockwise vector math.
2022-10-20 00:48:09 +02:00
Christoph Oelckers
b0b5dbc55b
- eliminated add_int_ceilingz
2022-10-19 18:26:16 +02:00
Christoph Oelckers
23c529589e
- eliminated add_int_xvel
2022-10-19 18:26:16 +02:00
Mitchell Richters
bc018dd946
- Use getCorrectedScale()
in conjunction with looking keys like scaletozero()
functions.
2022-10-18 19:52:02 +02:00
Mitchell Richters
bdc6a5cf69
- Remove fudging from I_GetInputFrac()
and correct getPushBuild()
.
2022-10-18 19:52:02 +02:00
Christoph Oelckers
72dc3d5da9
- use mapangle in more places, mainly constants and random values using special formula
2022-10-18 19:01:45 +02:00
Christoph Oelckers
0e1a566d62
- added mapangle function for converting angles from map data.
...
This is just a wrapper around DAngle::fromBuild, its purpose is to clearly highlight data that cannot be refactored and needs to be converted
2022-10-18 19:01:45 +02:00
Christoph Oelckers
559fe495fb
- floatified movesprite and the thrust vector.
2022-10-18 18:34:24 +02:00
Christoph Oelckers
8137718133
- floatified movespritez
2022-10-18 18:34:24 +02:00
Mitchell Richters
9eec69d810
- Blood: Floatify position drawing code and clean up now-unused wrappers.
...
* Still work to be done on bob/sway/zView variables.
2022-10-18 18:29:09 +02:00
Christoph Oelckers
fdc6a49a97
- another movesprite wrapper to get rid of int_yvel and int_xvel
2022-10-17 17:25:59 +02:00
Christoph Oelckers
47ad4fccdc
- convert all set/add_int_x/yvel calls
2022-10-17 17:25:59 +02:00
Christoph Oelckers
1ba20c7dce
- wrapped most clipdist assignments
2022-10-17 17:03:53 +02:00
Christoph Oelckers
ef47040630
- renaming stuff for search purposes
2022-10-17 17:03:53 +02:00
Christoph Oelckers
3fc592c505
- wrap clipdist copy
2022-10-17 17:03:53 +02:00
Christoph Oelckers
16f0d15cdc
- wrapper for literal assignments to clipdist
2022-10-17 17:03:52 +02:00
Christoph Oelckers
3e36b5627b
- wrap clipdist << 2
2022-10-17 17:03:52 +02:00
Christoph Oelckers
cf8b650446
- floatify Bullet::x,y,z
2022-10-17 17:03:52 +02:00
Christoph Oelckers
5efc032a4c
- increase angular threshold for aligning wall sprites.
...
With full precision angles the old threshold is simply too low.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
9d1edf9cc5
- clean up angle math in wall drawer.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
7a9f89b95d
- removed obsolete scripting exports.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
6de279282e
- marked integer dragpoint function deprecated.
2022-10-16 10:19:40 +02:00
Christoph Oelckers
b53e4b824e
- handle the portals in Duke and Blood.
2022-10-16 09:40:29 +02:00
Christoph Oelckers
0e628ed222
- floatified CollectPortals and its helpers
2022-10-16 09:40:28 +02:00
Christoph Oelckers
7f3c5ae18d
- added a 'dot' function to DVector2 because using the '|' operator is not intuitive.
2022-10-15 17:52:07 +02:00
Christoph Oelckers
dfabdff553
- set_int_hitpos is not used anymore
2022-10-15 17:49:34 +02:00
Christoph Oelckers
b202cf7a12
- added option to show the level stats on the automap.
2022-10-15 17:14:34 +02:00
Mitchell Richters
53b32ea161
- Leverage walltype
's delta()
method in chase cam code.
2022-10-15 13:32:04 +02:00
Mitchell Richters
3019f9effc
- Floatify smoothratio
for GameInterface::processSprites()
.
...
* Exhumed is now completely free of any Q16.16 interpolation scaling.
2022-10-15 13:32:03 +02:00
Mitchell Richters
8f2d6f0779
- Floatify smoothratio
for render_drawrooms()
and `render_camtex().
2022-10-15 13:32:03 +02:00
Mitchell Richters
01d185dc6b
- Floatify smoothratio
for DrawOverheadMap()
.
2022-10-15 13:32:03 +02:00
Mitchell Richters
5e410ff738
- Eliminate most uses of DAngle::Buildfang()
.
2022-10-15 13:32:03 +02:00
Mitchell Richters
b05b98826b
- Rename some smoothratio
variables to indicate that they've been processed.
2022-10-15 13:32:03 +02:00
Mitchell Richters
6716d0f2e9
- Floatify smoothratio
for calcChaseCamPos()
.
2022-10-15 13:32:02 +02:00
Mitchell Richters
953364b96b
- Rename a smoothratio
variable to interpfrac
to show that it's not Q16.16.
2022-10-15 13:32:02 +02:00
Mitchell Richters
45d4d3e41a
- Eliminate __interpvalue()
and clean up Q16.16 smoothratio values where it made sense to do so.
...
* Also eliminates a now empty header.
2022-10-15 13:32:02 +02:00
Mitchell Richters
f02035b15a
- Eliminate __interpvaluef()
and clean up Q16.16 smoothratio values where it made sense to do so.
2022-10-15 13:32:01 +02:00
Mitchell Richters
2c8cb8f052
- Rename DCoreActor
method interpolatedvec3()
to interpolatedpos()
.
2022-10-15 13:32:01 +02:00
Mitchell Richters
f5dda2909a
- Remove now-unused interpolation methods from DCoreActor
class.
2022-10-15 13:32:01 +02:00
Mitchell Richters
39ac3b44b0
- Add scaler operators to fixedhorizon
class and eliminate class-specific interpolatedhorizon()
inlines.
2022-10-15 13:32:01 +02:00
Mitchell Richters
74167e1a7c
- Remove interpolators for TVector and TAngle objects, replacing with single generic version.
2022-10-15 13:32:01 +02:00
Mitchell Richters
06e772b44b
- Rename interpolatedvalue()
in preparation for replacement.
2022-10-15 13:32:01 +02:00
Mitchell Richters
8fd6452baf
- Rename interpolatedvaluef()
in preparation for replacement.
2022-10-15 13:32:01 +02:00
Christoph Oelckers
057d2a565a
- floatified Blood's velFloor and velCeil
2022-10-15 13:31:59 +02:00
Christoph Oelckers
38bb103cdd
- renamed velFloor and velCeil.
2022-10-15 13:31:59 +02:00
Christoph Oelckers
92379863f1
- don't use DAngle for calculating bobbing amplitudes.
...
It makes more sense here to have a dedicated function since this is not really angular math.
2022-10-15 13:31:59 +02:00
Christoph Oelckers
6b0b8f944c
- floatified the height parameter of nextsectorneighborptr
2022-10-15 12:42:30 +02:00
Mitchell Richters
f72d42bb8e
- Uplift renderer entry point to DVector3
and provide wrappers for old setups.
2022-10-15 12:16:53 +02:00
Mitchell Richters
056bb9b0cd
- Floatify chase cam code, providing an inline interface for legacy setup.
2022-10-15 12:16:53 +02:00
Mitchell Richters
977d8f8109
- Convert gi->chaseCamPos()
to return a floating point DVector3
object.
2022-10-15 12:16:53 +02:00
Mitchell Richters
db5db7d9b3
- Turn DVector2
rotatepoint()
into an inline using the vector's methods.
2022-10-15 12:16:53 +02:00
Mitchell Richters
18f97c3d7e
- SW: Move player sprite loop out of sector loop, and eliminate goto crap.
2022-10-15 12:16:52 +02:00
Mitchell Richters
f236cc8728
- Consolidate some duplicated automap code between Duke and SW.
2022-10-15 12:16:52 +02:00
Mitchell Richters
ef56d00d78
- Pass automap angle vector as an actual vector.
...
* Also reconfigure setup so that angle requires zero pre-processing or setup in the automap code, have it all handled in `OutAutomapVector()`.
2022-10-15 12:16:52 +02:00
Christoph Oelckers
1dcb03e530
- got rid of set_int_bvel
2022-10-15 11:35:38 +02:00
Christoph Oelckers
712d28ff40
- clean out some stuff
2022-10-15 11:35:38 +02:00
Christoph Oelckers
3e76d49b6e
- removed the mul vel wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
6fd8dae380
- removed the non-Blood float_* access wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
62ba753585
- remove vel clear wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
b924569755
- started removing trivial vel wrappers
2022-10-15 10:15:20 +02:00
Christoph Oelckers
64e8a369ec
- floatified velocity storage
2022-10-15 10:15:20 +02:00
Christoph Oelckers
e361abb96d
- added some utilities
2022-10-14 23:55:32 +02:00
Christoph Oelckers
0c146e7ccb
- Unify the velocity vectors of all games
...
spritetype’s former vel fields are only being retained for alternative use - yvel -> yint as generic parameter in Duke and zvel -> inittype for Blood.
2022-10-14 23:55:31 +02:00
Christoph Oelckers
c45ecdae73
- wrapped all velocity access in Blood, except the places where an address of vel is taken
2022-10-14 23:55:30 +02:00
Christoph Oelckers
7a7a2cdb39
- various replacements of vel
2022-10-14 23:55:30 +02:00
Christoph Oelckers
1999340c8a
- add_int_bvel_z
2022-10-14 23:52:43 +02:00
Christoph Oelckers
12e5fd133c
- add_int_bvel_x
2022-10-14 23:52:43 +02:00
Christoph Oelckers
49f0e9c57d
- batch 3 of vel.
2022-10-14 23:52:43 +02:00
Christoph Oelckers
193d20bb4d
- wrapped more xvels
2022-10-14 23:52:43 +02:00
Christoph Oelckers
e3758d6adc
- started wrapping vel
2022-10-14 23:52:42 +02:00
Christoph Oelckers
e7b09dbaac
- renamed vel.
2022-10-14 23:52:42 +02:00
Christoph Oelckers
cb81a50752
- Blood vel wrappers.
2022-10-14 23:52:42 +02:00
Christoph Oelckers
a5a04b1123
- moved Blood's velocity vector to DCoreActor.
2022-10-14 23:52:42 +02:00
Christoph Oelckers
9ba03ac53f
- renamed yvel to yint in Duke.
...
It's never used as velocity, but as an auxiliary parameter so name it appropriately.
2022-10-14 23:17:45 +02:00
Christoph Oelckers
b0e67ab88d
- clear_yvel
2022-10-14 23:13:34 +02:00
Christoph Oelckers
f8ba5bb660
- final xvel cleanup.
2022-10-14 23:13:33 +02:00
Christoph Oelckers
aa22e48036
- preparations for xvel wrapping.
...
Mainly providing alternative names for the spritetype members and redirecting all relevant access to those.
2022-10-14 23:02:11 +02:00
Christoph Oelckers
9f08abc90e
- eliminate the only use of zvel in tspritetype.
...
Since this never gets manipulated on the tsprite size, better get it directly from the actor so that the final velocity vector does not need to be in spritetype et.al.
2022-10-14 20:31:57 +02:00
Christoph Oelckers
05f488ce3c
- add more wrappers and use 'inittype' where the actual zvel member of spritetype is wanted.
...
This will avoid problems with search&replace later.
2022-10-14 20:31:56 +02:00
Christoph Oelckers
8946a66350
- handle zvel multiplications with a wrapper.
...
This completes wrapping of zvel.
2022-10-14 20:31:56 +02:00
Christoph Oelckers
8bfedc327f
- add_int_zvel
2022-10-14 20:31:56 +02:00
Christoph Oelckers
81fc066a5e
- use zvel's alias inittype where it's not being used for velocity.
2022-10-14 20:31:55 +02:00
Christoph Oelckers
70d0d0622b
- wrapped 0 assignments to zvel
2022-10-14 20:31:55 +02:00
Christoph Oelckers
3f7b423a4a
- zvel wrapping, part 1.
2022-10-14 20:31:55 +02:00
Mitchell Richters
d63fb33dd0
- Pass DVector2
objects directly through to F2DDrawer::AddLine()
and F2DDrawer::AddThickLine()
.
...
* Since all the external code calling through to these methods are built on vectors, makes sense to pass them around by reference.
2022-10-14 18:19:04 +02:00
Mitchell Richters
5407de6924
- Use MaxSmoothRatio
everywhere so refactoring is easier later on.
2022-10-14 18:19:03 +02:00
Christoph Oelckers
463e1a8047
- account for stupid GCC limitation.
2022-10-14 18:19:03 +02:00
Mitchell Richters
681bd640ed
- Make drawlinergb()
use twod->AddThickLine()
for when am_linethickness
is greater than 1, not 2.
2022-10-14 18:19:02 +02:00
Mitchell Richters
7d85acac13
- Clean up remaining automap interfaces to finish the floatification.
...
* Even though we pre-calculate the sine/cosine needed in `DrawOverheadMap()`, Duke and SW require the full angle for their more mature automaps.
2022-10-14 18:19:02 +02:00
Mitchell Richters
986466de67
- Commence updating gi->DrawAutomapPlayer()
for floatification, beginning with Duke's CSTAT_SPRITE_ALIGNMENT_FACING
code.
2022-10-14 18:13:49 +02:00
Mitchell Richters
d9f8ac4d2a
- Convert automap's follow_x
/follow_y
variables into a proper vector.
...
* Should have done this from the start, but anyhow...
2022-10-14 18:13:49 +02:00
Mitchell Richters
059f15c786
- Refactor floatified vector math to use inline wrapped around TVector2's Rotated()
method.
...
* This will be used extensively in Duke and the other game as we finalise this conversion.
2022-10-14 18:13:49 +02:00
Mitchell Richters
e9d5cd2a3a
- Flatten automap's zoom values from Q20.10 to floating point.
2022-10-14 18:13:49 +02:00
Christoph Oelckers
2838fa3e72
- floatified sectortype::ang
2022-10-14 17:17:37 +02:00
Christoph Oelckers
3ac4e7ed2d
- eliminated player_int_ceiling_dist, player_int_floor_dist wrappers
2022-10-14 00:06:30 +02:00
Christoph Oelckers
81c7e7671f
- fixed Clang warnings
2022-10-13 22:54:43 +02:00
Christoph Oelckers
785575604b
- no need to use int_delta when all we want is the angle.
2022-10-13 22:54:43 +02:00
Christoph Oelckers
05a7fe8f36
- renamed walltype::fdelta and fcenter
2022-10-13 22:54:43 +02:00
Christoph Oelckers
6ce01e24d2
- renamed walltype::delta and walltype::center
2022-10-13 22:54:42 +02:00
Christoph Oelckers
1d28ebec98
- eliminated add_int_z and add_int_y wrappers
2022-10-13 22:54:42 +02:00
Christoph Oelckers
681784fdf8
- removed set_int_pos wrapper
2022-10-13 22:54:42 +02:00
Christoph Oelckers
f4d8ccf7b9
- floatified WarpToCoords
2022-10-13 20:58:12 +02:00
Christoph Oelckers
978c35fda1
- mess reduction in Blood’s TranslateSector
...
We can also get rid of set_int_xy now.
2022-10-13 20:42:29 +02:00
Christoph Oelckers
ad648676b1
- floatified SPREXT_AWAY handler
2022-10-13 19:59:16 +02:00
Christoph Oelckers
23bd9918af
- pass a DVector3 to updatesectorneighbor
2022-10-13 19:59:15 +02:00
Christoph Oelckers
07826c7791
- eliminated DCoreActor::copyXY
2022-10-13 00:59:05 +02:00
Mitchell Richters
bff9856bf3
- Floatified DrawPlayerArrow()
.
2022-10-13 00:59:05 +02:00
Mitchell Richters
61e70fefbd
- Floatified drawwhitelines()
.
2022-10-13 00:59:05 +02:00
Mitchell Richters
bb3959fb0f
- Floatified drawredlines()
.
2022-10-13 00:59:05 +02:00
Mitchell Richters
60f5d9b67c
- Rework some automap functions in prep for floatification.
2022-10-13 00:59:04 +02:00
Mitchell Richters
85f7297ad3
- Floatified renderDrawMapView()
.
2022-10-13 00:59:04 +02:00
Mitchell Richters
8a8fb3c658
- Floatified automap's follow_x
/follow_y` variables.
2022-10-13 00:59:04 +02:00
Mitchell Richters
4d04a4dd3a
- Floatified automap's gZoom
.
...
* Also use the global directly in automap functions instead of passing it around as function variables.
2022-10-13 00:59:04 +02:00
Mitchell Richters
f5116dd787
- Pass a DAngle through to all the automap code.
2022-10-13 00:59:04 +02:00
Mitchell Richters
01ed871239
- Optimise spritetypebase::backupvec2()
and remove now-unused backupx/y() methods.
2022-10-13 00:59:04 +02:00
Mitchell Richters
e970ed0f27
- Migrate spritetypebase::interpolatedvec3()
to backend solution.
...
* Also eliminate unused `interpolatedvec2() method from class.
2022-10-13 00:59:03 +02:00
Mitchell Richters
1e36aa0e7f
- Move TAngle<>
interpolation function to common and add ones for TVector<>
classes.
2022-10-13 00:59:03 +02:00
Mitchell Richters
bdf35ac3a9
- Eliminate spritetypebase::__interpolatedvec2()
.
2022-10-13 00:59:03 +02:00
Mitchell Richters
0dcd209d91
- Fixed a missed interpolatedvaluef()
fix.
2022-10-13 00:59:03 +02:00
Mitchell Richters
92b16907d2
- Use getincangle()
in more places so it can be refactored easier later on.
2022-10-13 00:59:02 +02:00
Christoph Oelckers
d573ba4cad
- pass map start as DVector3
2022-10-13 00:59:01 +02:00
Christoph Oelckers
40312d64c8
-coordinates
2022-10-13 00:59:01 +02:00
Christoph Oelckers
54cf1aea6f
- got rid of CGibPosition
2022-10-13 00:59:00 +02:00
Christoph Oelckers
2f896b859b
- made the code mostly signed-char safe.
...
This eliminates all char function parameters that are not really ASCII characters and casts all char argument to the ctype is... functions.
2022-10-12 22:12:30 +02:00
Christoph Oelckers
dc1c6976e2
- removed OSD_StripColors.
...
This was handling color control sequences in EDuke32 format which are totally irrelevant for Raze.
2022-10-12 22:10:37 +02:00
Christoph Oelckers
f269ceff64
slope functions with position vectors
2022-10-12 22:10:37 +02:00
Christoph Oelckers
a5a3669238
- eliminated the SetActor/Z function receiving a vec3_t pointer.
...
The only one left is the one with a DVector3 now.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
f002425aee
- use floats for internal SetActor(Z) functions.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
00436bfdac
- eliminated one UpdateActor pverload.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
97223af592
- silenced a few conversion truncation warnings.
2022-10-12 15:49:07 +02:00
Christoph Oelckers
7a45738d7e
- avoid integer math for wall sprites.
2022-10-10 17:37:18 +02:00
Christoph Oelckers
c59e4f8a10
- floatified sprext.position_offset
2022-10-10 17:37:17 +02:00
Christoph Oelckers
2954603573
- got rid of integer vector math in hw_bunchdrawer.cpp
2022-10-10 17:37:17 +02:00
Christoph Oelckers
45f37525e0
- minor angle stuff in Blood
2022-10-10 17:31:30 +02:00
Christoph Oelckers
80e10d89f4
- added alignceilslope and alignflorslope variants receiving a position vector.
2022-10-10 17:31:28 +02:00
Christoph Oelckers
24b23d6919
- floatified PLAYER::ceiling_dist/floor_dist.
2022-10-09 22:30:51 +02:00
Christoph Oelckers
209867e036
- cleaned out some unnecessary inlines.
2022-10-09 22:00:43 +02:00
Christoph Oelckers
b2d0d7f9e5
- normalize the timer with the app start, not the epoch.
...
This ensures smaller values and less wraparounds with integer values in scripts.
2022-10-09 14:50:45 +02:00
Christoph Oelckers
7873fd7c3c
- int_floorz/int_ceilingz in the renderer.
2022-10-09 08:21:52 +02:00
Christoph Oelckers
aa0080039f
- refactored coordinate display to have a single unified printing function.
...
The games will now only return the data, this has also been added for Exhumed.
Printing will now be in actual map units, not build's internal mixed format.
2022-10-08 19:28:57 +02:00
Christoph Oelckers
4d02cdcce9
- use explicit types in hitscan calls
2022-10-06 20:50:47 +02:00
Christoph Oelckers
55aa981f89
- ppos.Z assignments
2022-10-06 20:50:46 +02:00
Christoph Oelckers
8e966fc575
- int_ppos replacements
2022-10-06 20:50:45 +02:00
Christoph Oelckers
e71254dfa6
- floatified some parts of the SO interface for consistent use of MAXSO.
2022-10-06 20:50:45 +02:00
Christoph Oelckers
32e1f07b60
- eliminate all use of integer coordinates in the sector geometry creation code.
...
This eliminates the last small remnants of texture twitching in SW as well.
2022-10-05 18:31:46 +02:00
Christoph Oelckers
3a9f9988f4
- redid clipinsidebox* functions.
...
* Completely rewritten to be less obtuse.
* Consolidated the two variants.
* Renamed to be clearer about what they do.
2022-10-05 18:31:45 +02:00
Christoph Oelckers
b9d0c9d6ba
- simplified slope sprite code a bit and got rid of clipinsidebox overload.
2022-10-05 18:29:30 +02:00
Christoph Oelckers
0a3bd7a3a3
- walltype::fdelta
2022-10-05 18:29:04 +02:00
Christoph Oelckers
91f305125e
- floatified GetWallSpritePosition and redirected get_wallspr_points to use it.
2022-10-05 18:29:04 +02:00
Christoph Oelckers
c712d594e0
- fully floatified GetFlatSpritePosition
2022-10-05 18:29:03 +02:00
Christoph Oelckers
21944d5ac2
- updatesectorz with DVector3.
2022-10-05 18:22:07 +02:00
Christoph Oelckers
5505c362e2
- floatified hitpos
2022-10-05 18:11:59 +02:00
Christoph Oelckers
55ade2eda4
- use int_hitpos() access function where applicable
2022-10-05 18:10:44 +02:00
Christoph Oelckers
296b5d7edd
- renamed HitInfo::hitpos
2022-10-05 18:03:41 +02:00
Christoph Oelckers
64391c52f9
- large batch of set_int_pos, minus Exhumed
2022-10-05 17:33:01 +02:00
Mitchell Richters
5f586ee40c
- Tiny bit of abstraction in PlayerAngle
struct.
2022-10-05 00:36:32 +02:00
Mitchell Richters
2757140ad1
- Convert all remaining angle internals of PlayerAngle
into DAngle
units.
...
* With the old setup, we needed to use primitives to get the desired outcome, but since DAngle stores a proper angle in true degrees, we can use it all the way.
2022-10-05 00:36:32 +02:00
Mitchell Richters
bd7a004c4c
- Convert delta test in PlayerAngle::processhelpers()
to degrees, missed during cf2788b14b3d5c2e0533ad4cdc7912253848a5b9.
2022-10-05 00:36:32 +02:00
Mitchell Richters
69dff8658f
- Move getincangle()
from gameinput.h
to gamefuncs.h
.
...
* Should be eliminated fairly soon, anyway.
2022-10-05 00:36:32 +02:00
Mitchell Richters
3de1d2156d
- Rename binaryangle.h
to fixedhorizon.h
and sanitise places where previous header was included.
2022-10-05 00:36:31 +02:00
Mitchell Richters
442d1f3bd3
- Move Build interpolation helper inlines into new header file.
...
* Needed to be in new header to avoid some circular dependencies.
2022-10-05 00:36:31 +02:00
Mitchell Richters
1a0b8aff69
- Move Build vector angle functions from binaryangle.h
to gamefuncs.h
.
2022-10-05 00:36:31 +02:00
Mitchell Richters
7c7351db8d
- Move build sine functions from binaryangle.h
to gamefuncs.h
.
2022-10-05 00:36:31 +02:00
Mitchell Richters
478e7a6801
- Eliminate some TAngle floating point Build method usage.
2022-10-05 00:36:31 +02:00
Mitchell Richters
d28d6cd4cf
- Utilise actor sprite's full precision in instances where angle was converted to Build and back again.
2022-10-05 00:36:30 +02:00
Mitchell Richters
5c84f93c08
- Use the static constexpr nullAngle
everywhere possible.
2022-10-05 00:36:30 +02:00
Mitchell Richters
02dfe2cb62
- Repair interpolation issues following change of sprite angles from integer to DAngle
types.
2022-10-05 00:36:30 +02:00
Mitchell Richters
47ed6cbd61
- Restore internals of spritetypebase::norm_ang()
.
2022-10-05 00:36:30 +02:00
Mitchell Richters
7600a77641
- Fix issues with spritetypebase
int angle methods.
2022-10-05 00:36:30 +02:00
Christoph Oelckers
fe6fcdff1f
- use DAngle for actors
...
Note that intangle needs to be kept - primarily for SW's ST tags.
2022-10-05 00:36:29 +02:00
Mitchell Richters
bd6b0eaac5
- Fix some constexpr issues with the latest DAngle works.
...
* We can't make `BAMs()` constexpr as we can't update to a C++20 compatible version of xs_Float where we use legal std::bit_cast instead of a union.
2022-10-05 00:36:29 +02:00
Mitchell Richters
0edc6024e6
- Remove superfluous use of Normalized180()
method on an angle.
2022-10-05 00:36:29 +02:00
Mitchell Richters
951734beae
- Eliminate last remaining uses of binangle
and the class itself.
...
* https://www.youtube.com/watch?v=RgKAFK5djSk
2022-10-05 00:36:29 +02:00
Mitchell Richters
abb8b87be1
- Eliminate last remaining binangle
inline utilities.
2022-10-05 00:36:28 +02:00
Mitchell Richters
dd55569915
- Eliminate getincanglebam()
.
2022-10-05 00:36:28 +02:00
Mitchell Richters
c25493762b
- Eliminate bvectangbam()
.
2022-10-05 00:36:28 +02:00
Mitchell Richters
b23e77d9c7
- Replace player's ang
with DAngle
object.
...
* This commit does not build. Committed items are everything that's been done by find and replace.
* Next commit has hand-performed changes that are better separated out for clarity.
2022-10-05 00:36:27 +02:00
Mitchell Richters
7a6f5c0864
- Replace binangle
usage in PlayerHorizon::calcviewpitch()
with DAngle
object.
2022-10-05 00:36:27 +02:00
Mitchell Richters
dbc46e2a75
- Change out PlayerAngle::settarget()
's input from binangle
to DAngle
.
2022-10-05 00:36:27 +02:00
Mitchell Richters
a090f31bc4
- Change out PlayerAngle::addadjustment()
's input from binangle
to DAngle
.
2022-10-05 00:36:26 +02:00
Mitchell Richters
13ea55b4cb
- Replace player's rotscrnang
and look_ang
angles with DAngle
objects.
...
* Went the el cheapo route and added some floating point Build angle methods. As these and the integer build methods are really just refactoring aids, we'll come back to this in due course.
2022-10-05 00:36:26 +02:00
Mitchell Richters
728edc182d
- Remove last main usage of binangle
outside of the game's input code.
2022-10-05 00:36:26 +02:00
Mitchell Richters
4f56138027
- Change all remaining BunchDrawer
properties from binangle
to angle_t
types.
2022-10-05 00:36:25 +02:00
Mitchell Richters
e6fe9b7031
- Change all binangle
members in Clipper
struct to angle_t
.
2022-10-05 00:36:25 +02:00
Mitchell Richters
914930ff9a
- Change BunchDrawer::ang1
, BunchDrawer::ang2
and BunchDrawer::angrange
from binangle
to angle_t
.
2022-10-05 00:36:25 +02:00
Mitchell Richters
e17d24ce0b
- Change FBunch::startangle
and FBunch::endangle
from binangle
to angle_t
.
2022-10-05 00:36:25 +02:00
Mitchell Richters
36d76a71ea
- Change walltype::clipangle
from binangle
to angle_t
.
2022-10-05 00:36:25 +02:00
Mitchell Richters
d3022947eb
- Replace use of binangle
in gi->processSprites()
with DAngle
object.
2022-10-05 00:36:24 +02:00
Mitchell Richters
6167448f27
- Blood: Replace all uses of binangle
with DAngle
objects.
2022-10-05 00:36:24 +02:00
Mitchell Richters
0b33f39fcd
- Duke: Replace all uses of binangle
with DAngle
objects.
2022-10-05 00:36:24 +02:00
Mitchell Richters
ebac932efe
- Update render_drawrooms()
and render_camtex()
to work off DAngle
objects.
2022-10-05 00:36:23 +02:00
Mitchell Richters
c935fc2226
- Refactor chase cam positional code to use DAngle
input rather than binangle
.
...
* These changes still maintain Build's integer positional values in Q28.4/Q24.8, changing this will be done later on.
2022-10-05 00:36:22 +02:00
Christoph Oelckers
6bdfa09dd1
- the remaining angle stuff.
2022-10-05 00:36:21 +02:00
Christoph Oelckers
c2f4fa8bb5
- more angles
2022-10-04 23:56:44 +02:00
Christoph Oelckers
f54e4b8a9a
- more int_ang()
2022-10-04 23:56:43 +02:00
Christoph Oelckers
33d5b54ce0
- use int_ang().
2022-10-04 23:56:43 +02:00
Christoph Oelckers
735b9a8fed
- renamed ang to __int_angle
2022-10-04 23:56:42 +02:00
Christoph Oelckers
06b8a9139e
- handle most int_pos calls in common code.
2022-10-04 18:44:17 +02:00
Christoph Oelckers
022f22cd10
-replaced tspritetype::set_int_x/y.
2022-10-04 18:44:16 +02:00
Christoph Oelckers
24c845f827
- remove float_pos wrapper.
2022-10-04 18:44:15 +02:00
Christoph Oelckers
3c4e89185d
- position cleanup in actor.cpp (mainly queball and recon)
2022-10-02 20:47:01 +02:00
Christoph Oelckers
66acab2ca0
- cleanup, part 1.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
fb4da6bbd4
- added some utilities.
...
This also had to use explicit types in a few places to clear ambiguities.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
665ee69eba
- Duke: cleanup on z-checks, part 3.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
e3d5397d7e
- floating point getslope functions.
...
# Conflicts:
# source/build/include/build.h
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4c80a19458
- removed unused __interpolatedvec3 function.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
7745701d4b
- floatified opos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
5df4caa82f
- renamed interpolate functions as preparation for floatifying opos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
403e1ad3b3
- Blood: floatified baseFloor and baseCeil.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
c1d603e1e9
- backend update from GZDoom.
2022-10-02 20:33:18 +02:00
Christoph Oelckers
57228f12a3
- fixed: sv_cheats was set to true, essentially rendering the cheat blocker for high skill levels in Duke and RR ineffective.
2022-10-01 09:10:13 +02:00
Christoph Oelckers
fdb13ffdfd
- first simple batch of wrapper removal.
2022-08-27 10:50:11 +02:00
Christoph Oelckers
a59a771209
- use floats for ceilingz/floorz storage.
2022-08-27 10:49:59 +02:00
Christoph Oelckers
367a998b40
- removed the scripting wrappers for floorz and ceilingz.
...
These won't be needed anymore with floating point values
2022-08-27 10:16:57 +02:00
Christoph Oelckers
044929ad06
- replaced all remaining read access to __int_floorz and __int_ceilingz with wrappers.
2022-08-27 10:13:15 +02:00
Christoph Oelckers
47a594a96c
- renamed setPosFromLoad to setPosFromMap.
2022-08-27 10:03:31 +02:00
Christoph Oelckers
8325e7369f
- removed floorzptr and ceilingzptr.
...
These were obstacles for further changes.
2022-08-27 10:01:01 +02:00
Christoph Oelckers
c84d75b8bf
- use inline access functions to read floorz/ceilingz.
2022-08-27 09:58:16 +02:00
Christoph Oelckers
0672572e63
- renamed sectortype::floorz and ceilingz as preparation for floatification
2022-08-27 09:47:48 +02:00
Christoph Oelckers
02ae6476de
- changed the pos vector of spritetype to floating point.
2022-08-27 09:26:13 +02:00
Christoph Oelckers
07656251d9
- fixes bad assignments in the property parser.
...
They were added to the wrong flag word.
2022-08-26 19:53:11 +02:00
Christoph Oelckers
c15aeec9f7
- late __int_pos additions
2022-08-26 19:53:11 +02:00
Christoph Oelckers
1231f6025d
- handle the last remaining uses of __int_pos that can be done with the function interface.
2022-08-26 19:53:10 +02:00
Christoph Oelckers
8ccaa0ab8c
- more tsprite position stuff
2022-08-26 19:53:10 +02:00
Christoph Oelckers
170387ab26
- tspritetype::pos access wrappers, part 1.
2022-08-26 19:53:10 +02:00
Christoph Oelckers
dc94dedc6b
- renaming spritetype::pos
2022-08-26 19:53:10 +02:00
Christoph Oelckers
ad9931081e
-fix some bugs, handle occurences in recently changed code
2022-08-26 19:53:10 +02:00
Christoph Oelckers
3420032f02
- replace most spr.pos in the global code.
2022-08-26 19:53:09 +02:00
Christoph Oelckers
b49aed6620
- SW: more spr.pos write wraps.
2022-08-26 19:53:09 +02:00
Christoph Oelckers
871f0c4ec6
- SW: first batch of spr.pos wraps.
2022-08-26 19:53:08 +02:00
Christoph Oelckers
b9568aa372
- missed this in Blood
2022-08-26 19:53:06 +02:00
Christoph Oelckers
702a73ff6c
- Blood: handled the remaining write accesses to 'pos'
2022-08-26 19:53:03 +02:00
Christoph Oelckers
4f391e46ce
- added GetSoundPos variant taking a reference instead of pointer.
2022-08-26 19:53:03 +02:00
Christoph Oelckers
32dd061ab1
- Blood: wrapped write accesses to spr.pos in nnexts.cpp
2022-08-26 19:53:03 +02:00
Christoph Oelckers
29d0f86726
- utilities for wrapping actor coordinates.
2022-08-26 19:53:03 +02:00
Christoph Oelckers
111dbd7a7d
- backend update from GZDoom.
...
mainly TAngle overhaul and needed code adjustments.
2022-08-26 18:28:22 +02:00
Mitchell Richters
03fd5c2ebe
- Repair frame timer in tileAnimateOfs()
following consolidation in 4f2170655c
.
...
* All games that aren't Blood depend on Build's original 120Hz timer for this, not the playsim's clock.
2022-08-25 21:44:14 +02:00
Christoph Oelckers
4d423004e9
- unlimited the displayable sprites.
...
Now with Polymost gone this can finally be done properly.
2022-08-07 10:25:15 +02:00
Christoph Oelckers
10b9d41d57
-forgot to save this...
2022-08-06 09:15:47 +02:00
Christoph Oelckers
fddb4d2330
- fixed bad sector validation in DoUpdateSector.
2022-08-06 09:12:00 +02:00
Christoph Oelckers
738c133d05
- animation precaching cleanup.
...
No need to handle animations on the,game side. markTileForPrecache already handles this - now also for oscillating animations.
2022-08-05 23:48:43 +02:00
Christoph Oelckers
4f2170655c
- animateoffs cleanup and consolidation
...
This was rewritten based on specs alone - it still doesn’t look that different due to its simplicity.
2022-08-05 23:32:16 +02:00
Christoph Oelckers
83c0ad55f2
- rewrote nextsectorneighborzptr with a better parameter interface
2022-08-05 18:43:48 +02:00
Christoph Oelckers
ec66f39535
- replaced a few naked chars with better types.
2022-08-05 17:04:46 +02:00
Christoph Oelckers
48b6ce2f4d
- replaced spriteheightofsptr with a method in DCoreActor.
2022-08-05 17:04:46 +02:00
Christoph Oelckers
dcb4e1e39b
- updatesector* cleanup.
...
got rid of all remaining Build code in here, stripped down the wrapper interface and moved everything into a separate header file.
2022-08-05 17:04:46 +02:00
Christoph Oelckers
b31e6c0bdf
- replaced getclosestpointonwall_internal with a floating point version based on NearestPointLine.
2022-08-05 17:04:46 +02:00
Christoph Oelckers
c2fc7577db
- cleanup of 3D viewport code.
...
Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
4ec748a92b
- removed some unused variables and declarations.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
e6ca0f4817
- made fov change for RRRA's drug mode work.
2022-08-03 19:41:30 +02:00
Christoph Oelckers
291726cc55
- removed the Polymost renderer.
2022-08-03 15:50:27 +02:00
Christoph Oelckers
7debab7ff4
- refined wall sprite check so that orthogonally aligned sprites are only aligned to orthogonal walls.
...
Here even the slightest deviation can create problems.
2022-08-03 14:13:42 +02:00
Mitchell Richters
8fb4549998
- Replicate GZDoom fix on POSIX systems to ensure GameConfig
global is initialised before trying to load the ENGINERES
file.
...
* Same fix as 0f0b4b7620
.
2022-07-24 20:11:00 +10:00
Christoph Oelckers
6591b3b090
- Backend update from GZDoom.
...
Mainly new features for 2D drawer and model renderer.
2022-07-23 12:05:27 +02:00
Mitchell Richters
79022e8afa
- Clean up and simplify getincangle()
/getincanglebam()
functions and inline them.
2022-07-23 12:57:45 +10:00
Mitchell Richters
5dce9c8ff2
- Simplify tosigned()
method inside of binangle
class.
2022-07-23 12:43:54 +10:00
Mitchell Richters
b9ee6c327d
- Change internals of bsinf()
and bcosf()
to use BAM sine functions instead of coverting build angle into radians, then into BAM.
2022-07-23 10:37:33 +10:00
Mitchell Richters
4324f923bc
- Call updateTurnHeldAmt()
after doing the turn, not before it. This gives one tic more preamble.
2022-07-23 10:37:32 +10:00
Mitchell Richters
e016f65321
- Don't adjust joystick pitch/yaw speeds based on whether autorun is enabled or not.
...
* Only SW did this out of the box.
* Duke never did, NBlood has no working joystick setup to compare with, and GZDoom doesn't either.
* Fixes #693 .
2022-07-23 10:37:32 +10:00
Mitchell Richters
a423b93ad8
- Use turnscale
in controller pitch calculations, which is only used in SW when on a sector object, and is original behaviour.
2022-07-23 10:37:32 +10:00
Mitchell Richters
78fcf2b4f0
- Move invertmouse
and invertmousex
CVARs from gameinput.cpp
to inputstate.cpp
.
...
* Old setup was inverting the entire player's horz/avel, even for joystick input while not inverting `mousemovex` or `mousemovey` at all.
2022-07-23 10:37:32 +10:00
Mitchell Richters
c68e112867
- Remove some unnecessary branching and abs()
calls in processMovement()
.
...
* Since fvel/svel is clamped at the end of the function, these tests just aren't necessary.
* Reversed the logic in some if statements so the most likely outcome doesn't fall to the else branch.
2022-07-23 10:37:32 +10:00
Mitchell Richters
ea17352aea
- Do some small tidying up in gameinput.cpp
and change how some constants are stored.
2022-07-23 10:37:32 +10:00
Mitchell Richters
1906491129
- Move some PlayerHorizon
/PlayerAngle
class methods out into inlines in gameinput.cpp
.
...
* These class methods did nothing with the objects inside the class, they worked generically so they're better as inlines.
* Also tidied up some of the internals so they're easier to read.
2022-07-23 10:37:32 +10:00
Christoph Oelckers
390cd2ca98
- fixed rendering of non-orthogonal wall sprites.
...
These cannot be done in a simple two-pass approach, for wall sprites attached to walls it requires doing the two passes per wall to ensure proper depth buffer coverage.
2022-07-04 09:11:24 +02:00
Christoph Oelckers
486da6922d
- fixed automap angle in unrotated mode.
2022-06-28 22:33:53 +02:00
Christoph Oelckers
9e6fe2cbaa
- added workaround to render the crane in WT's 'Docks' map correctly.
...
This one violates engine specifications by creating overlapping walls when the crane is rotated.
2022-06-26 09:36:01 +02:00
Christoph Oelckers
998def2487
- another backend update from GZDoom.
2022-06-06 15:28:41 +02:00
Christoph Oelckers
d2eaaf7ac1
- for Raze hud_aspectscale needs to default to true
2022-06-06 12:42:45 +02:00
Christoph Oelckers
84173ee09b
- backend update from GZDoom.
...
The main bulk of this is the new start screen code. To make this work in Raze some more work on the startup procedure is needed.
What this does provide is support for the DOS end-of-game text screens in Duke and SW on non-Windows systems.
2022-06-06 11:45:34 +02:00
Mitchell Richters
20dde9fabc
- Force synchronised input when cl_capfps
is true.
2022-06-06 18:41:48 +10:00
Mitchell Richters
71fb91940d
Revert "- Simplify PlayerHorizon::settarget()
by adding a dedicated angle setter that resets interpolated value as well."
...
This reverts commit 0416834d9d
.
Revert "- Simplify `PlayerAngle::settarget()` by adding a dedicated angle setter that resets interpolated value as well."
This reverts commit 5a550613f3
.
Revert "- Add bool `lock` to `PlayerHorizon::settarget()` when setting target from the ticker without having to call setters and resetters."
This reverts commit 18541d1ab4
.
Revert "- Add bool `lock` to `PlayerAngle::settarget()` when setting target from the ticker without having to call setters and resetters."
This reverts commit 1ac58dc41c
.
* We need to ensure only the ticker can unlock the player's input if it's telling us to lock the input.
2022-06-06 18:41:45 +10:00
Mitchell Richters
0359d49df2
- Move repeated input code algorithm into an inline function.
2022-06-06 18:40:17 +10:00
Christoph Oelckers
e86899ed31
- fixed sky panning.
...
This picked the wrong overload - to make things robust one of the functions was renamed.
2022-06-06 10:12:26 +02:00
Mitchell Richters
dcf1c540e6
- Another amendment to 18541d1ab4
and 1ac58dc41c
to ensure input lock is only set when we're running unsynchronised input.
2022-06-05 21:31:02 +10:00
Christoph Oelckers
f245a70883
- removed redundant setting of black shadow color with incorrect data check.
...
SetLightAndFog already does this, but with correct checks.
2022-05-30 23:05:37 +02:00
Mitchell Richters
990c8287fc
- Amendment to 18541d1ab4
and 1ac58dc41c
to reset inputdisabled
once target is reached.
2022-05-30 22:13:42 +10:00
Mitchell Richters
612dd049f9
- Remove unused PlayerPosition
structure.
...
* There were some plans around this being in use for all the various player structs in each game, but it hasn't come to be.
* Code remains in the commit history, it can come back if it's of use in the future.
2022-05-30 21:33:14 +10:00
Mitchell Richters
1ac58dc41c
- Add bool lock
to PlayerAngle::settarget()
when setting target from the ticker without having to call setters and resetters.
2022-05-30 21:24:02 +10:00
Mitchell Richters
18541d1ab4
- Add bool lock
to PlayerHorizon::settarget()
when setting target from the ticker without having to call setters and resetters.
2022-05-30 21:22:24 +10:00
Mitchell Richters
5a550613f3
- Simplify PlayerAngle::settarget()
by adding a dedicated angle setter that resets interpolated value as well.
2022-05-30 21:22:10 +10:00
Mitchell Richters
0416834d9d
- Simplify PlayerHorizon::settarget()
by adding a dedicated angle setter that resets interpolated value as well.
2022-05-30 21:21:52 +10:00
Mitchell Richters
70d2a8dc78
- Remove a seldom-used getTicrateScale()
overload.
2022-05-30 21:06:32 +10:00
Mitchell Richters
7282e0d8bf
- Remove multiple addadjustment()
/settarget()
overloads in favour of native binangle
/fixedhoriz
versions only.
...
* Simplifies these classes a bit.
* Better shows intent in actual game code.
* Removes unnecessary int to double conversions.
2022-05-30 20:35:41 +10:00
Christoph Oelckers
bd023b0b1c
- fixed wall sprite clipping
2022-05-30 00:19:32 +02:00
Christoph Oelckers
1a788c9ba2
- helpers for wall sprite rendering improvement
2022-05-27 13:55:38 +02:00
Christoph Oelckers
5aabde1712
- fixed parsing issues in secret hint system.
2022-05-24 20:41:44 +02:00
Christoph Oelckers
aab13addb7
-renamed spritetype’s owner field to ‚intowner‘
...
Mainly for easier searching.
Also remove the duplicate ‚detail‘ field.
2022-05-24 00:30:41 +02:00
Christoph Oelckers
4278f0113b
- function for checking wall sprites’ need for recalculation
...
Preparation for overhauling their rendering
2022-05-24 00:10:36 +02:00
Christoph Oelckers
af89c25151
- RR: clear jaildoors array on map start.
...
this was leaving stale data behind which could cause nasty crashes.
2022-05-22 09:28:12 +02:00
Christoph Oelckers
c82e80d152
- extended the read buffer for the 'secret' CCMD.
2022-05-14 21:48:08 +02:00
Christoph Oelckers
f6ae967c52
- fix bad asserts.
2022-04-29 08:40:00 +02:00
Christoph Oelckers
0dc670da8e
- added wipe transitions to screen job
...
Mainly to have the crossfade, the other styles are mostly bonus.
This also adds proper scoping to the cutscene code, which needs to run in UI scope.
2022-04-25 17:26:17 +02:00
Christoph Oelckers
380864d6fb
- pass shade values to sky renderer
2022-04-19 14:44:10 +02:00
Christoph Oelckers
6354c1889d
- fixed bad search path setup on macOS
...
This cannot include „Raze“ in the app_support path strings because some of these parts point to elsewhere. The two places where it is needed must be explicit.
2022-04-19 14:02:51 +02:00
Christoph Oelckers
c4bfee070e
- don’t crash on sector-less walls.
2022-04-19 13:39:26 +02:00