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
Rachael Alexanderson
761502d0b8
- lock cvar shader uniforms behind a command line parameter for now
2022-04-16 12:12:43 -04:00
Christoph Oelckers
26179c56cf
- improved the secret hint management for Blood.
...
This now uses sprite and sector indices directly instead of encoding them into a larger number. Sprite secrets will use a $t prefix instead of $s now.
2022-03-20 12:47:23 +01:00
Christoph Oelckers
3b5203132f
- optimize fcos and fsin to use the BAM value directly for table lookup.
...
No need to convert back and forth to rad.
2022-03-20 12:08:46 +01:00
Rachael Alexanderson
735740e453
- add level names to title bar (and by proxy, to RPC)
2022-03-18 05:06:58 -04:00
Rachael Alexanderson
da5d9fcde2
- implement discord rich presence, expand window title code. (still wip)
2022-03-18 04:17:46 -04:00
Christoph Oelckers
df7e6dfec8
- added scripting exports for the global map types and a few more actor utilities.
2022-02-21 00:12:51 +01:00
Christoph Oelckers
cc6629a95f
- do not call tileUpdatePicnum for voxelized tsprites.
2022-02-20 23:36:04 +01:00
Christoph Oelckers
a1339f014c
- store indices in sectionsPerSector.
2022-02-20 23:11:04 +01:00
Christoph Oelckers
f1859c69f0
- fixed bad assumption about g_visibility == 0 meaning fullbright.
...
This merely means that there should be no fog, but the shade must still be applied.
2022-02-19 11:30:35 +01:00
Christoph Oelckers
de1cbb9ee0
- fixed validation issue with maps that have a wall with nextwall == -1 and nextsector > -1.
...
In this case the bogus nextsector was not reset.
2022-02-15 22:47:53 +01:00
Christoph Oelckers
21fddd6c54
- spriteset management.
2022-02-15 22:34:48 +01:00
Christoph Oelckers
e396798198
- made DCoreActor's properties functional.
...
They cannot be parsed directly into the actor's sprite because that gets used in ways that require a different setup.
This alsp adds a property parser and a setter function for the SpriteSet array. The idea here is to write code that does not need to use actual tile indices so it can later be refactored to real textures.
2022-02-15 22:34:03 +01:00
Christoph Oelckers
e3f1893e02
- avoid conversions for vertex comparisons in CollectLoops and for sectorgeometry.cpp's poscompare values.
2022-02-15 22:34:03 +01:00
Christoph Oelckers
37fda9cf89
- added position getters/setters to DCoreActor.
...
Scripting should not be subjected to that awful mixed fixed point format, but we cannot easily swap out the internals without risking breakage all over the place.
2022-02-15 22:33:49 +01:00
Christoph Oelckers
71943abed0
- changed math utilities to floating point coordinate system.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
8cc8ebf30c
- preparations for more floatification.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
4e2a9f6e59
- use float wall positions in portal code.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
b641456152
- use floats directly for WallStart/End/X/Y.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
73aa84e9f3
- floatified the user map display.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
651c25a7be
- do the 'inside' check with integers.
...
Using floats and multiplications is not robust enough. This is a bit slower, but doesn't run the risk of underflows and other nasties.
Q: How many bits of fractional precision should we use? 16 seems fine
2022-02-15 22:18:26 +01:00
Christoph Oelckers
b8ea49ee0e
- SW: bumped two hard limits because there's maps out there that exceed them.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
7374364527
- doFurniture floatified and inside rewritten as a floating point algorithm that works without bit masking.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
6fbecf2348
- RR: cleaned up and floatified the mine cart code
2022-02-15 22:18:25 +01:00
Christoph Oelckers
6e96b1ee81
- floatify SW's sector object rotation.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
a12093af04
- use full precision math for rotating sectors in Blood.
2022-02-15 22:18:24 +01:00
Christoph Oelckers
a781517780
- renamed PlanesAtPointf to PlanesAtPoint
...
The old PlanesAtPoint is not needed anymore.
2022-02-15 22:18:24 +01:00
Christoph Oelckers
08500ca757
- eliminated coordinate factors from UV generator.
2022-02-15 22:18:24 +01:00
Christoph Oelckers
bd95da423a
- use PlanesAtPointf in most places where PlanesAtPoint was used.
2022-02-15 22:18:24 +01:00
Christoph Oelckers
02d508baef
- renamed floatified wall coordinate to 'pos'.
2022-02-15 22:18:24 +01:00
Christoph Oelckers
7d461fa768
- PlanesAtPointf
2022-02-15 22:18:24 +01:00
Christoph Oelckers
cd55658786
- use floats for vertices.
2022-02-15 22:18:23 +01:00
Christoph Oelckers
cf17cffb26
- missed one place where wall coordinates are set from map loading.
2022-02-15 22:18:23 +01:00
Christoph Oelckers
bc0e8b4a8d
- use a method for setting wall coordinates when loading a map.
2022-02-15 22:18:23 +01:00
Christoph Oelckers
f44736a5b6
-use an access function for reading wall positions so that we have a non-modifiable value wherever this is possible.
2022-02-15 22:18:23 +01:00
Christoph Oelckers
89ef81da55
- renamed walltype::pos as preparation for refactoring.
...
no functional changes here
2022-02-15 22:18:22 +01:00
Rachael Alexanderson
0d54237eec
- pull cvar uniform fixes from gzdoom
2022-02-09 07:26:59 -05:00
Rachael Alexanderson
c2b35fee41
- allow floats for uniform cvar defaults
2022-02-06 10:32:55 -05:00
Rachael Alexanderson
9fc6d40dcf
- fix compile on clang - it's a whack-a-mole, we'll get em eventually
2022-02-01 12:49:58 -05:00
Rachael Alexanderson
b7cb878ad8
- fix compiling on Linux/et-al
2022-02-01 12:36:26 -05:00
Rachael Alexanderson
942acc04c1
- pull fix from GZDoom - handle situations where the uniform cvar may already exist
2022-02-01 11:45:29 -05:00
Rachael Alexanderson
cc57914bbf
- fully implement uniform cvars
2022-02-01 11:03:39 -05:00
Christoph Oelckers
dab1f7fcec
- handle walls where a sloped floor intersects with the visible part.
2022-01-30 08:54:11 +01:00
Christoph Oelckers
11b21cce2c
- handle wall sprites on orthogonal walls better.
...
This covers the case that a wall sprite may overlap two walls with a slight deviation in their position - always pick the closest one.
2022-01-30 08:28:52 +01:00
Christoph Oelckers
f98765ce95
- fixed handling of badly placed sprites in map validation code.
2022-01-29 12:33:11 +01:00
Christoph Oelckers
686a648aa1
- fixed inverted logic when checking for dragged sectors.
2022-01-29 09:59:29 +01:00
Christoph Oelckers
cbd8de36a9
- added spawn number parser to .DEF.
...
This is for mapping actor classes to whatever the games use to decide what kind of actor a sprite is.
2022-01-26 23:53:05 +01:00
Christoph Oelckers
5fe5dbd5aa
- added spriteSet property to DukeActor
...
The idea here is to abstract picnum manipulation. Since all this is strongly index based it translates poorly to a system with named textures.
This allows a class to define a set of sprite images it intends to operate on as if it was still a simple indexed resource, even if the underlying storage changes.
2022-01-26 00:36:34 +01:00
Christoph Oelckers
e3103fff02
- fixed sky tiling.
2022-01-25 19:00:52 +01:00
Christoph Oelckers
d19e2e3e40
- version bump.
2022-01-24 10:29:16 +01:00
Christoph Oelckers
2022de845a
- did some reshuffling on Exhumed's menu.
...
To allow adding a "User map" item and prevent accidental reset of ongoing games, both the items for starting the campaign and the training map are now in a submenu.
This allows the game to go through the regular startup procedure common to all games, which in turn allows adding the "User map" item to the episode selection.
2022-01-24 01:00:05 +01:00
Christoph Oelckers
f194fb6c90
- added a name to tilenum function so that we can define picnums by name in scripted actors.
2022-01-24 00:24:47 +01:00
Christoph Oelckers
e206a71448
- added the native property handlers for CoreActor.
2022-01-24 00:24:47 +01:00
Christoph Oelckers
0a6a5fe871
- set a default bitmask for the cstat flags.
...
These need to be combined with the flags from the map, so we need to know which ones are being used by the actor defaults.
2022-01-24 00:24:46 +01:00
Christoph Oelckers
04a380ce14
- added script exports for DCoreActor's member variables.
2022-01-24 00:24:46 +01:00
Christoph Oelckers
531a42e801
- added the flag parsing utilities.
2022-01-23 13:03:39 +01:00
Christoph Oelckers
e035ce00b6
- hooked up the compiler extension and the static actor data setup.
2022-01-23 13:03:39 +01:00
Christoph Oelckers
0398ba4ff0
- added all parts needed to implement the actor property parser.
...
Not hooked up yet with the rest of the code, this just adds the needed files in compilable form.
2022-01-23 13:03:39 +01:00
Christoph Oelckers
747648ce78
- added guards against badly defined skies.
2022-01-22 22:52:45 +01:00
Christoph Oelckers
276597fc36
- normalize line endings.
2022-01-22 14:37:17 +01:00
Rachael Alexanderson
f4c9c5df72
- hook up GLDEFS parser and do some final fixes
2022-01-21 01:16:22 +01:00
Rachael Alexanderson
0e4eeddb93
- add a stripped-down GLDEFS parser
2022-01-21 01:15:59 +01:00
Rachael Alexanderson
43a2437071
- fix compile error
2022-01-21 01:15:22 +01:00
Rachael Alexanderson
13ca744ef8
- replicate GZDoom commit 12ed24d066
2022-01-21 01:15:22 +01:00
Rachael Alexanderson
c6f991a798
- in progress
2022-01-21 01:13:35 +01:00
Christoph Oelckers
19d8d65fd0
- split names into common and Raze-specific
2022-01-20 01:11:23 +01:00
Christoph Oelckers
f888b1da9c
- sky parser improvements.
2022-01-16 12:12:44 +01:00
Christoph Oelckers
3aff12cf4c
- sky management rework.
2022-01-16 12:12:43 +01:00
Christoph Oelckers
4b9ea92969
- gracefully handle when a map tries to exit twice.
...
This case left a broken ScreenJobRunner behind which later crashed on garbage collection.
2022-01-15 19:20:58 +01:00
Christoph Oelckers
e2061dbcc6
- fixed bad wall array access when handling a sector that got split up.
2022-01-14 22:56:00 +01:00
Christoph Oelckers
7b1d99373b
- fixed last commit and optimized wall lookup code a bit.
...
No need to continue if a matching wall has been found.
2022-01-14 20:20:47 +01:00
Christoph Oelckers
ef711f0b2d
- allow a bit of tolerance for attached orthogonal wall sprites.
...
We have to account for mappers adding some 'safe' distance (which isn't really safe!)
2022-01-14 16:27:24 +01:00
Christoph Oelckers
8281374551
- do not use floor sprites for splitting geometry.
...
This is way too expensive on maps with lots of sprites. Instead, run them through the case for slope sprites which should be sufficient here
Also let rendered_* count the actual draw calls, not processed objects, because that is the most relevant metric for checking performance issues.
2022-01-14 00:49:57 +01:00
Christoph Oelckers
899ced50aa
- moved alpha threshold determination for sprites to the setup pass.
...
Overall this is not much, but it can be easily offloaded to a worker thread later.
2022-01-14 00:19:26 +01:00
Christoph Oelckers
37e7f92182
- made a few changes to the timer calls for renderer profiling.
...
A few items were counted double, other were in the wrong slot.
2022-01-14 00:15:33 +01:00
Christoph Oelckers
9375750a17
- added sorting for wall sprites attached to non-orthogonal walls.
2022-01-13 20:55:55 +01:00
Christoph Oelckers
ecb2732629
- little bit of cleanup on Duke's bullet hole code.
2022-01-13 20:53:36 +01:00
Christoph Oelckers
8d84bc2599
- disable window clipping entirely in outside areas.
...
This is a first grade performance killer on large maps and doesn't offer much in clipping robustness.
On maps like Clear the Coast or Wpudrichem omitting this check reduces map traversal time by 40%.
2022-01-13 19:46:04 +01:00
Christoph Oelckers
8976813fe1
- removed some overlooked debug code.
2022-01-13 13:14:00 +01:00
Christoph Oelckers
fcf04a7df1
- delete unused variable.
2022-01-13 12:27:40 +01:00
Christoph Oelckers
85cce1128a
- do proper handling of the 'no shadow' case for Duke's bad guys.
...
Using a flag like RedNukem instead of hacking dispicnum, which occasionally does reach the renderer and causes problems.
2022-01-13 00:42:34 +01:00
Christoph Oelckers
a13612ab9b
- Blood: allow bad start spots to pass for modern maps.
...
These can have alternative start spot definitions.
The error will still be printed, though.
2022-01-13 00:21:15 +01:00
Christoph Oelckers
1b162ececc
- do not add two-sided walls outside of the visible range to the clipper
...
This caused a render glitch in Duke E4L2.
2022-01-13 00:04:32 +01:00
Christoph Oelckers
22afc25046
- fixed floor sprite normals.
2022-01-13 00:04:14 +01:00
Christoph Oelckers
f09bbb8b5e
- fixed the normals for sloped planes.
2022-01-12 16:02:45 +01:00
Christoph Oelckers
44e64a6a12
- backend update from GZDoom.
...
* GC fix
* better sound range check
* UE model loader license change.
2022-01-11 22:54:37 +01:00
Christoph Oelckers
e5dad53f6d
- menu entries for light modes, plus handling of overbright shades.
2022-01-11 00:19:15 +01:00
Christoph Oelckers
f20bd94269
- the gl_fogmode hack is no longer needed
2022-01-11 00:18:56 +01:00
Christoph Oelckers
aa0e558af2
- use different fade ramps for 64 and 32 shades.
...
Also some optimization to eliminate redundant calculations of the fade strength.
2022-01-11 00:18:20 +01:00
Christoph Oelckers
07eeb147ab
- tweaked light mode for weapon lighting and avoiding getting too dark.
2022-01-11 00:16:43 +01:00
Christoph Oelckers
aa7af0711a
- fine tuning of the new light modes.
2022-01-11 00:13:31 +01:00
Christoph Oelckers
26223ffca2
- experimental new light mode, based on GZDoom's original light modes.
2022-01-11 00:12:50 +01:00
Christoph Oelckers
98c919fbe4
- g_visibility stuff
2022-01-11 00:12:32 +01:00
Christoph Oelckers
ddcee4ecbf
- split up g_visibility into two variables.
...
This is preparation for experimenting with the weapon flashes that can be quite annoying with how they brighten distant parts of the level far more than nearby parts.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
e892de21ec
- preparations for unlimited tsprites.
...
Right now it is a no-op because Polymost cannot deal with this properly.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
91d51d518b
- this hack is needed because dragging vertices around can randomly create wall intersection.
...
In clear English: Geometry in Build maps is always broken by design. :(
2022-01-09 20:38:07 +01:00
Christoph Oelckers
a50430bf68
- Duke: fixed SE02's handling of sloping sectors.
2022-01-09 13:38:10 +01:00
Christoph Oelckers
a0e6ee0e2e
- added a bit more logic to handle overlapping walls.
...
All this is needed to make the back door to the cinema in Duke E1L1 render properly without making the clipper break on complex overlapping sector setups, like some of the ducts in Duke E2L7.
2022-01-09 12:05:36 +01:00
Christoph Oelckers
36bb3e621f
- fix typo.
2022-01-09 11:53:32 +01:00
Christoph Oelckers
fcba341546
- use proper aspect ratio to calculate the frustum's angle.
2022-01-08 23:43:08 +01:00
Christoph Oelckers
415dc5246d
- fixed sprting of non-translucent sprites.
2022-01-08 21:18:18 +01:00
Christoph Oelckers
fe0581ed97
- disable palette emulation when rendering weapons.
...
The 2D code cannot handle transparency well with it.
2022-01-08 14:16:18 +01:00
Christoph Oelckers
70087ebc12
- fixed: The new renderer still called the Polymost screen finish function.
...
This led to a second, redundant postprocessing step with incorrect matrix values.
It now calls screen->Update() directly without the unneeded stuff, but this required a bit of reordering in the game code to ensure that the renderer receives the weapon data to display.
2022-01-08 13:50:47 +01:00
Christoph Oelckers
a3162f6ccf
- renamed testnewrenderer CVAR.
2022-01-07 12:49:41 +01:00
Christoph Oelckers
0cfe6bbed3
- do the unlink properly when replacing a clip node.
2022-01-07 00:22:02 +01:00
Christoph Oelckers
98258e0bb2
- fix handling in the clipper for a new range that completely covers an existing one.
...
The handling for this was from the first draft of the clipper that made very different assumptions than the final version.
This cannot simply delete the old range - it has to explicitly alter it and recursively insert the outer sub-ranges separately.
2022-01-06 16:34:04 +01:00
Christoph Oelckers
159409d5d2
- allow a bit of tolerance when sorting walls, so that microscopic intersections can be ignored.
2022-01-06 00:43:47 +01:00
Christoph Oelckers
fab5a02ba3
- deleted unused variable.
2022-01-06 00:43:46 +01:00
Christoph Oelckers
9f6d6a0e6d
- block y-flipping of slope sprites only if they are actually sloped.
...
This mirrors Polymost's (buggy) handling.
2022-01-05 09:20:54 +01:00
Christoph Oelckers
d5daa8ee84
- fixed: The bunch drawer's gotwall array was cleared before resizing.
...
This means that on the first frame of a new map it'd operate on partially uninitialized data.
2022-01-04 17:18:26 +01:00
Christoph Oelckers
227ac0fca6
- RR: address a missing texture in E1L2.
...
The current texture on this wall is suboptimal but it's still better than glitchy HOM.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
03cad0fe3b
- consider slope sprites unavailable in map formats 5 and 6.
...
Exhumed has several sprites flagged with this combo - they all need to be treated as face sprites.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
bb95f26c5e
- removed debug message.
2022-01-04 17:18:24 +01:00
Christoph Oelckers
3494c701ee
- Nam/WW2GI: use the console font for the generic message display.
...
The small font in these games is not usable because it is too small, too ugly and not extendable for localization.
2022-01-04 17:17:59 +01:00
Christoph Oelckers
ac3546bdaa
- fixed depth buffer use of slope sprites.
...
They cannot be treated like perfectly horizontal floor sprites and need to write to the depth buffer in the same pass as the regular pixels.
2022-01-04 12:42:45 +01:00
Christoph Oelckers
e2e3b4482d
- do some better sorting of slope sprites.
...
Splitting by translucent floor plane is essential, splitting by wall not that much - sorting by center point should be sufficient here.
2022-01-03 12:31:54 +01:00
Christoph Oelckers
be92d252ff
- fixed signedness issue with slope sprite coefficient.
2022-01-03 09:54:23 +01:00
Christoph Oelckers
7915fb7ef1
- allow using "Mario" cheat with a space between name and number.
2022-01-03 07:13:34 +01:00
Mitchell Richters
bc6dd4ae3e
- Add nullptr check to Interp_Sprite_Z
reversion so I can load older saves before this was reverted.
2022-01-03 09:13:11 +11:00
Christoph Oelckers
d0ab13f95a
- use GPLv2 in all files dual-licensed with the Doom Source license.
...
None of this was ever GPLv3, the original id source was released under the GPLv2 so this should be, too.
2022-01-02 12:42:54 +01:00
Christoph Oelckers
daa07b9e55
- an attempt to render "reflection" floor sprites by lifting them up to the floor and drawing them with 33% alpha.
2022-01-01 20:01:36 +01:00
Christoph Oelckers
8c9b810b16
Revert "- removed Interp_Sprite_Z."
...
Sadly, SW's sprite interpolation is too screwed up to do a better fix on short notice.
It's the same with interpolating sprites attached to SOP's, it is only needed because generally interpolating sprites in SW is problematic.
2022-01-01 19:50:30 +01:00
Christoph Oelckers
6807086f3c
- relaxed the FindWall check for wall sprites a bit so that slightly out-of-sector sprites can find a wall to attach to.
2022-01-01 18:55:42 +01:00
Christoph Oelckers
fcb3e43799
- fixed side check for sloped sprites.
2022-01-01 17:27:09 +01:00
Christoph Oelckers
9680ff1863
- ignore y-flipping when rendering slope sprites in the new renderer.
...
This is what Polymost, and apparently NBlood, do here.
2022-01-01 12:55:28 +01:00
Christoph Oelckers
551ff89778
- fixed signed/unsigned comparison warning.
2022-01-01 11:30:00 +01:00
Mitchell Richters
f1530a051f
- Fix two signedness warnings in hw_sections.cpp
.
2022-01-01 21:02:00 +11:00
Mitchell Richters
733b6a7367
- Fix GCC warning warning: ‘vec.TVector2<double>::X’ may be used uninitialized [-Wmaybe-uninitialized]
.
2022-01-01 20:50:58 +11:00
Christoph Oelckers
17de3a08e8
- deal with bad start sectors.
...
The engine will now try to find a proper sector in the map loader if there's a mismatch.
2022-01-01 10:39:59 +01:00
Christoph Oelckers
4dbbe892ae
- fixed main game resource detection for Blood.
...
* code did not scan .rff files for content-defined versions.
* code did not check content-defined versions for CRC matches.
2021-12-31 13:04:32 +01:00
Christoph Oelckers
1849fe541e
- fixed alignment of sloped sprites.
...
The offset fields are not valid for them so thwy may not be used for offsetting.
2021-12-31 11:55:25 +01:00
Christoph Oelckers
717dd123e5
- fixed slope sprite flag getting cleared by some leftover code.
...
Also merged copyfrom into the one single function that called it.
2021-12-31 10:55:55 +01:00
Christoph Oelckers
f679b61a30
- fixed issue with wall sprite angle check.
...
The resulting value had no sign, so 'abs' did not work. It now uses some bit shifting magic to get a proper sign.
2021-12-30 22:56:33 +01:00
Christoph Oelckers
a9b162b8e9
- moved the tsprite flags from cstat2 to clipdist which was already holding other ones.
...
cstat2 should only hold flags for game-side sprites.
2021-12-30 19:00:35 +01:00
Christoph Oelckers
552668418a
- moved opos and oang to DCoreActor.
2021-12-30 18:21:02 +01:00
Christoph Oelckers
2bb7cecf27
- eliminated spritetype::clear.
...
Most uses were bad anyway, and the legitimate ones are just clearing the object.
2021-12-30 17:55:17 +01:00
Christoph Oelckers
51abee4351
- eliminated spritetypebase::setpos, which was the last remaining method in this struct.
2021-12-30 17:49:16 +01:00
Christoph Oelckers
7f62df517d
- moved all interpolate* methods from spritetypebase to DCoreActor.
...
The places where it was used on tsprites were redone to use the actor's base coordinate, which at the point of the operation would always be the same.
2021-12-30 17:32:31 +01:00
Christoph Oelckers
c10fb1278a
- moved the backup... methods to DCoreActor.
2021-12-30 17:10:08 +01:00
Christoph Oelckers
6c381d4392
- removed sector() method from low level sprite type.
2021-12-30 16:58:48 +01:00
Christoph Oelckers
5498699faf
- use DCoreActor::sector() wherever possible.
2021-12-30 16:51:56 +01:00
Christoph Oelckers
88e4bb9f79
- moved sectno method to DCoreActor.
2021-12-30 16:39:43 +01:00
Christoph Oelckers
f0b7fe4add
- use setsector from DCoreActor.
...
Also did a bit of cleanup
2021-12-30 16:36:04 +01:00
Christoph Oelckers
af6ca40e3d
- use DCoreActor::insector instead of spritetype::insector.
2021-12-30 16:24:51 +01:00
Christoph Oelckers
eb00fe52db
- more spritetype references eliminated.
2021-12-30 16:11:14 +01:00
Christoph Oelckers
4bc32e2777
- use actors in the sloped sprite utilities.
2021-12-30 16:11:14 +01:00
Christoph Oelckers
50a3089648
- eliminated tspriteptr_t and moved a few polymost-exclusive inlines into polymost.cpp.
2021-12-30 11:51:33 +01:00
Christoph Oelckers
44d2cc1951
- eliminated usectorptr_t.
2021-12-30 11:45:58 +01:00
Mitchell Richters
9bbb54fe2e
- Replace every line that just contains spaces or tabs with an empty line feed in all files except 3rd party libraries.
2021-12-30 20:30:21 +11:00
Christoph Oelckers
c61d82cead
- made RRRA E1L3 fix a bit more robust by neutralizing the unconnected one of the two walls.
...
Also fix thw 'warning C4456: declaration of 'i' hides previous local declaration' warning.
2021-12-30 10:09:13 +01:00
Christoph Oelckers
4d8028831b
- fixed vertexscan crashing on bad walls.
2021-12-30 09:58:48 +01:00
Christoph Oelckers
69283bfb0c
- tabified several Blood source files.
2021-12-30 09:58:47 +01:00
Christoph Oelckers
e670cf2786
- re-tabified several files that got mangled by repeated merging
2021-12-30 09:58:47 +01:00
Christoph Oelckers
3fcecedf32
- deleted ClearContent functions from actor classes.
...
this is a leftover from pre-DObject times and no longer needed.
2021-12-30 09:58:47 +01:00
Christoph Oelckers
d46a7abb0e
- better wall sprite handling.
...
When they are directly on a wall, project their coordinates onto the wall to eliminate the imprecisions from Build's ad-hoc setup.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
1a2b9d43f7
- fixed check for wallsprites on walls.
...
This completely ignored the case where a wall was flagged as one-sided which was the main reason with that sneaky sign in E2L1.
The problem is not entirely fixed with this but now it will detect that it's on a wall.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
4f8f85c634
- backend update from GZDoom.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
b1d8f92ded
- added wall edge splitting for gl_seamless.
2021-12-30 09:58:44 +01:00
Christoph Oelckers
f7e7476010
- hooking up the vertex map with the rest of the engine.
2021-12-30 09:58:44 +01:00
Christoph Oelckers
27ae8d627b
- vertex height map creator for precise render mode like in GZDoom.
2021-12-30 09:58:44 +01:00
Christoph Oelckers
3fee8f3c4e
- replaced dragpoint (both the generic and the Blood variant) with a newly written vertexscan function.
...
This is a template allowing to run any task on a set of walls with equivalent start point.
Code was redesigned from scratch to be more clear than the existing variants.
The idea here is to reuse the base algorithm for other things that need to operate on the equivalent set of a given wall's start point.
2021-12-30 09:58:15 +01:00
Christoph Oelckers
a15e5399fa
- don't use a full sector backup in the triangulator for comparing changes.
...
Instead use a smaller struct only containing the relevant data.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
fb53f32603
- handle the remaining write accesses to ceilingz and floorz.
...
Everything is routed through the wrapper functions now.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
059412b75e
- first batch of routing all write access to sectortype::ceilingz and floorz through a function interface.
...
We need this for implementing "precise" rendering to flag vertices as dirty.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
8710e76a2d
- delete voxel models when shutting down
2021-12-30 09:58:10 +01:00
Christoph Oelckers
dc7082f264
- removed duplicate PClass::StaticInit call.
2021-12-30 09:58:10 +01:00
Christoph Oelckers
12619671e6
- Duke/RR: added fudging to work around aiming randomization issues with the pistol when autoaim is off.
...
Solution is the same as in RedNukem/EDuke32: do one hitscan directly in aiming order and if that hits a sprite, use it as aiming target.
2021-12-30 09:58:10 +01:00
Christoph Oelckers
1f2abda23c
- fixed map ccmd.
...
Something got lost when implementing user maps.
2021-12-30 09:58:10 +01:00
Christoph Oelckers
eaac9de1a4
- Added skill selection for user maps.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
e5c9691166
- fixed clipping issue with sloped walls.
...
The window was calculated too narrow for this case, it needs to use the lower point of a floor slope and the upper point of a ceiling slope.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
50bad91f14
- handle edge case in clipper where adding a new window will remove the entire clipper's content before adding the new range.
...
This case would have passed the actual logic but not the asserts.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
04f3268893
- silenced the debug output that was still present in the section creator.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
00a7be545d
- added a map preview to the user map browser.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
6dfd975f88
- activated the user map menu item in the episode selection.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
ffd23c23ca
- implemented user map browser.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
3be2128b3a
- added utilities to read all usermaps into a directory tree
2021-12-30 09:58:08 +01:00
Christoph Oelckers
ccf50c7812
- fixed user map music lookup for real without disabling other things.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
87a32d9095
Revert "- fixed music lookup for user maps."
...
This reverts commit 9558e7d518c1d5f7a898fcb2564078bd9ec956ac.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
4843cf98d8
- usermap files
2021-12-30 09:58:07 +01:00
Christoph Oelckers
7204b7c616
- fixed music lookup for user maps.
...
This was only looking for real files, but instead needs to check the file system. The game directory's content will always be part of that so other checks are counterproductive.
2021-12-30 09:58:07 +01:00
Christoph Oelckers
99b069d122
- fixed the user map label.
...
TXT_USERMAP does not exist, only MNU_USERMAP does.
2021-12-30 09:58:07 +01:00
Christoph Oelckers
34f14aa4c3
- added vector variants of FindDistance2D and FindDistance3D
2021-12-30 09:58:07 +01:00
Christoph Oelckers
6dcc8761fe
- replaced the last remaining s() calls in Blood's interface and deleted the method.
2021-12-30 09:57:51 +01:00
Christoph Oelckers
9e14b168bb
- addressed more shadowed variables in common code.
2021-12-30 09:57:32 +01:00
Christoph Oelckers
ca9d73ffee
- renamed some shadowing variables in common code.
2021-12-30 09:57:32 +01:00
Mitchell Richters
a1900253e5
- Fix GCC warning warning: "/*" within comment [-Wcomment]
.
2021-12-30 09:57:31 +01:00
Christoph Oelckers
0ebd7532b8
- don't use s() in other getters.
2021-12-30 09:57:30 +01:00
Christoph Oelckers
3992dfae84
- fixed: When merging clip nodes the redundant one needs to be deleted with RemoveRange.
...
Calling Free is not enough.
2021-12-30 09:57:29 +01:00
Christoph Oelckers
b00f197be3
- fixed: RemoveClipRange did not shorten the range if it had to split it up.
2021-12-30 09:57:29 +01:00
Christoph Oelckers
5699488bea
- get rid of spritetype in inactive code. (Search noise removal)
2021-12-30 09:57:20 +01:00
Christoph Oelckers
6766a5922a
- pass actors to calcChaseCamPos.
2021-12-30 09:57:18 +01:00
Christoph Oelckers
40a307650d
- the really final parts of the shared code using s() cleaned up.
2021-12-30 09:57:15 +01:00
Christoph Oelckers
09634c4993
- use actors instead of sprites in the new renderer's API.
2021-12-30 09:57:15 +01:00
Christoph Oelckers
f602cf3806
- deal with s() in shared code.
...
clip.cpp was left alone, except for the actual call.
2021-12-30 09:57:14 +01:00
Christoph Oelckers
d0143db8fe
- got rid of sx() and sm() inlines.
2021-12-30 09:57:13 +01:00
Christoph Oelckers
a2fc415b30
- fixed Exhumed panning setup.
...
Converted it to floating point and removed the nonsensical & with the texture size that was clearing significant bits.
2021-12-30 09:57:09 +01:00
Mitchell Richters
dd0ff465b0
- Replace spritetypebase
oz
with opos.Z
calls and eliminate spritetypebase
opos
union.
2021-12-30 09:57:07 +01:00
Mitchell Richters
a79b4b5ffc
- Replace spritetypebase
oy
with opos.Y
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
e0fb92bb01
- Replace spritetypebase
ox
with opos.X
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
baf78848eb
- Replace spritetypebase
z
with pos.Z
calls and eliminate spritetypebase
pos
union.
2021-12-30 09:57:06 +01:00
Mitchell Richters
cecb8dc48e
- Replace spritetypebase
y
with pos.Y
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
33ca55023f
- Replace spritetypebase
x
with pos.X
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
09e00a69fe
- Replace walltype
y
with pos.Y
calls and eliminate walltype
pos
union.
2021-12-30 09:57:04 +01:00
Mitchell Richters
51b647da87
- Replace walltype
x
with pos.X
calls.
2021-12-30 09:57:04 +01:00
Mitchell Richters
cab4ddb1c8
- Eliminate some stale code out of intvec.h
.
2021-12-30 09:57:04 +01:00
Mitchell Richters
b24f07f281
- Capitalise vec2_16_t
y
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
e52c3e6d82
- Capitalise vec2_16_t
x
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
b2ab64bb62
- Capitalise vec3_t
z
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
68e2691be7
- Capitalise vec3_t
y
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
c549cc5276
- Capitalise vec3_t
x
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
118ceb18ca
- Capitalise vec2_t
y
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba
- Capitalise vec2_t
x
variable.
2021-12-30 09:57:02 +01:00
Christoph Oelckers
d9d05e90b5
- globally replaced all occurences of '->s().' with '->spr.'
2021-12-30 09:57:00 +01:00
Christoph Oelckers
56e56e9d2f
- removed the triangulator type visualization.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
beddf1e1ca
- add slope sprite support to the new renderer.
...
Some fudging was needed to avoid positioning problems as the renderer is more sensitive to this than Polymost.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
6fd4d6d550
- ported slope sorite support from NBlood.
...
For Polymost only so far.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
785c7d4ceb
- removed numsectors and numwalls entirely.
...
With Blood's Polymost mirror hack the risk of getting out of sync with the arrays was a genuine issue, so now only the array size counts.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
df0c577cf4
- replaced most of numsectors, too.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
f1c0298825
- replaced numwalls with wall.Size in several places.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
65bc6e6aef
- removed the now redundant wall() and sector() interator helper functions.
...
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
6608096ea3
- added a bit more debug validation to the new clipper code.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
fd741c4d49
- Disable debug output
2021-12-30 09:56:52 +01:00
Christoph Oelckers
756ed1c14b
- removed the workaround to make Lunatic Fringe not glitch.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
c141c89cfd
- fixed the clipper.
...
* must do proper checks for merged ranges when inserting new ones. The checking code assumes that closed ranges are contiguous.
* when discarding parts of overlapping ranges this may not use merged clip values for its checks.
* ranges that have their clip values altered must be released and reinserted to ensure everything is correct.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
f152a4d9b5
- clipper clean up.
...
The horizontal part of the logic should work now.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
213ed28398
- WindowClipper WIP
2021-12-30 09:56:52 +01:00
Christoph Oelckers
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
13186cec6d
- the rest of Blood's flags.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
092cb1e5a3
- second set of Blood flags.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
3bc337264a
- flags in blood's actor.cpp
...
plus a few others caught by search&replace.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
8e0b9f7ce6
- some automatic, some manual sprite flag replacements
2021-12-30 09:56:49 +01:00
Christoph Oelckers
82fb03e399
- another batch of search&replace, with smaller results.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
8f012d1beb
- made wall flags type safe
2021-12-30 09:56:47 +01:00
Christoph Oelckers
1883aad7c2
- flag names in SetupGibWallState and TranslateSector
2021-12-30 09:56:47 +01:00
Christoph Oelckers
adbf5177a7
- flag combo stuff.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b263c3ac6b
- wall and sprite flags in Duke, just simple cases.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
6e32832428
- made sector ceiling/floor flags type safe.
...
- made sector flags type safe.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b0e3c6b5ec
- some remaining sector flag stuff
2021-12-30 09:56:45 +01:00
Christoph Oelckers
d0a06ae961
- deal with most of CSTAT_SECTOR_SKY and CSTAT_SECTOR_SLOPE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
1edccf1423
- added slope setter methods to sectortype.
...
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
24a6d45f97
- minor slope math optimization.
...
May save one division and merges the '<< 5' into the main calculation.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
11f41a97d5
- made gotpic a FixedBitArray.
...
gets rid of some inline garbage.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
5f18109371
- consolidated all getslope code into a single function.
...
This also caches a wall's length to avoid taking the square root every single time for a slope calculation.
2021-12-30 09:53:55 +01:00
Christoph Oelckers
bea394a734
- replace SW specific sector flags with the global ones.
2021-12-30 09:53:55 +01:00
Christoph Oelckers
dddf48fd3e
- cleaned up and renamed buildtypes.h.
...
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
4a5de6f56e
- make sure that all changes of wall coordinates invalidate associated data.
...
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
0e6242626c
- removed the viewpoint from the clipper as we don't need this.
...
ClipWindow will go elsewhere, it has no place here.
2021-12-30 09:53:11 +01:00
Mitchell Richters
83000fab77
- Remove last remaining node builder code.
2021-12-30 09:53:11 +01:00
Mitchell Richters
95d60deecd
- Rename remaining hw_sections*.*
files to hw_sections.*
.
2021-12-30 09:53:11 +01:00
Mitchell Richters
520412075f
- Delete empty hw_sections.cpp
file.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
4700299fc6
- fixed bad assert.
...
This can indeed be called with both angles being identical and should accept this case.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
d1f088a858
- SW/Exhumed fixed sound relinking on actor destruction.
...
This still passed the sprites instead of the actors. Moved the relinking code to DCoreActor::Destroy because it is the same for all games.
Also did a little bit of sound cleanup to ensure the sound backend does not hold stale actor pointers.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
7c5080f654
- reimplemented sector splitting.
...
With the new setup this is a lot easier than with the old one.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
d46e3c87e0
- removed development output of the loop grouping code.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
fc41a2bd85
- renamed sections2 and sections2PerSector.
...
No more need for a '2'.
2021-12-30 09:53:10 +01:00