Mitchell Richters
bdf35ac3a9
- Eliminate spritetypebase::__interpolatedvec2()
.
2022-10-13 00:59:03 +02:00
Mitchell Richters
19d21555a6
- Duke: Change int_ang()
usage in camera()
.
...
* This commit also restores the original method of incrementing the camera's angle that was replaced due to a hiccup/stutter where the angle suddenly skipped forward by 16 instead of 8, but with a fix from EDuke32. This avoids using 3x extra `temp_data[]` slots.
2022-10-13 00:59:03 +02:00
Mitchell Richters
d133839e2e
- Fix a few uses of interpolatedvalue()
with floating point numbers.
2022-10-13 00:59:03 +02:00
Christoph Oelckers
8f5340c3a7
- set_int_ang(...int_ang())
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
45be09e6ab
- more angle assignments
2022-10-13 00:59:01 +02:00
Christoph Oelckers
0edd12bc11
- set_int_ang(getangle
2022-10-13 00:59:01 +02:00
Christoph Oelckers
25949ce6ab
- gut stuff
2022-10-13 00:59:00 +02:00
Christoph Oelckers
d700b11887
- getangle in animatesprites
2022-10-13 00:59:00 +02:00
Christoph Oelckers
3d29c8f3ad
- floatified position in checkhitwall
2022-10-13 00:59:00 +02:00
Christoph Oelckers
2aec324a25
- EGS with hitpos
2022-10-13 00:58:59 +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
e26d6aec14
- 3* EGS->CreateActor
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
18a445aee5
- added ZeroVelocity function to DBloodActor.
2022-10-12 22:10:36 +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
00436bfdac
- eliminated one UpdateActor pverload.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
8a86cc26b6
- floatified Recon.
2022-10-12 22:10:35 +02:00
Christoph Oelckers
9275c14c9c
- floatify SE18 handler.
...
To store floars in temp_data without relying on map format conventions, the FixedTo functions were extended to allow custom precision.
2022-10-12 22:10:35 +02:00
Christoph Oelckers
1131eeb443
- setfloorz and setceilingz must be called for changing sector planes
2022-10-12 22:10:35 +02:00
Mitchell Richters
b804d7fe15
- Duke: Fix bad setups when calling cansee()
. Fixes issues with pigcop on kerb in E2L1.
2022-10-11 18:07:40 +02:00
Christoph Oelckers
113980ca8e
- cansee in Duke
2022-10-11 18:05:15 +02:00
Christoph Oelckers
e76dfa5d3c
- GetActor pos replacement
2022-10-10 17:37:19 +02:00
Christoph Oelckers
837b31c672
- got rid of int_ploz and int_phiz.
2022-10-09 23:59:01 +02:00
Christoph Oelckers
209867e036
- cleaned out some unnecessary inlines.
2022-10-09 22:00:43 +02:00
Christoph Oelckers
ade20cbfe2
- some angular stuff.
2022-10-09 08:21:54 +02:00
Christoph Oelckers
766ddeb445
- one more batch of trivial replacements
2022-10-09 08:21:53 +02:00
Christoph Oelckers
6111b11359
- trivial replacements in SW.
2022-10-09 08:21:53 +02:00
Christoph Oelckers
9314d4c774
- yet another batch of wrapper replacements
2022-10-09 08:21:53 +02:00
Christoph Oelckers
d9397b3b5d
- another batch of wrapper replacements
2022-10-09 08:21:53 +02:00
Christoph Oelckers
f13d9892dc
- trivial wrapper replacements in Duke
2022-10-09 08:21:53 +02:00
Christoph Oelckers
e5e00c98e7
- a few set_int_z in Duke/actors.cpp
2022-10-09 08:21:52 +02:00
Christoph Oelckers
93150d9e27
- partial floatification of movetransports_d
2022-10-09 08:21:52 +02:00
Christoph Oelckers
b00c8dbaee
- partial floatification of movetransports_r
2022-10-09 08:21:52 +02:00
Christoph Oelckers
a00969fbeb
- partial floatification of furthestcanseepoint.
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
b32c4444c4
- replaced all add_int_z calls with constants.
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
89816f4582
- dumped broken and useless xyrand function.
...
Didn't work, wasn't used anywhere else, so a properly done local inline is preferable.
2022-10-06 20:44:52 +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
84f690654e
- hitpos replacements in spawn calls
2022-10-05 18:17:15 +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
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
Christoph Oelckers
6aaee85875
- leftover binangle uses from the coordinate refactoring.
2022-10-05 00:36:29 +02:00
Mitchell Richters
ad908719ec
- Remaining manual changes to replace player's ang
with DAngle
object.
2022-10-05 00:36:27 +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
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
2d51058de8
- add_int_ang
2022-10-05 00:35:14 +02:00
Christoph Oelckers
c2f4fa8bb5
- more angles
2022-10-04 23:56:44 +02:00
Christoph Oelckers
150ab95a3a
- set_int_ang in Duke.
...
Also changed SOUNDFX actor to use a different variable for its index.
2022-10-04 23:56:43 +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
87ef58c07e
- DVector3 version of EGS.
2022-10-04 18:44:17 +02:00
Christoph Oelckers
25a048c62f
- fully floatified the crane data.
2022-10-04 18:44:17 +02:00
Christoph Oelckers
9392e31b33
- remove C-style struct parameters.
2022-10-04 18:44:16 +02:00
Christoph Oelckers
ef9534d9fa
- deleted unused wrapper method.
2022-10-04 18:44:16 +02:00
Christoph Oelckers
022f22cd10
-replaced tspritetype::set_int_x/y.
2022-10-04 18:44:16 +02:00
Christoph Oelckers
d654f23613
- handle_se00 cleanup
2022-10-04 18:44:16 +02:00
Christoph Oelckers
838d28b934
- more simple replacements.
2022-10-04 18:44:16 +02:00
Christoph Oelckers
3edbec4f55
- use copyXY method where possible.
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
b327f7f03a
- some simple replacements.
2022-10-04 18:44:15 +02:00
Christoph Oelckers
1ab1852af8
- do not use ovel to store a sound index.
2022-10-04 18:44:15 +02:00
Christoph Oelckers
05d8cee911
- more cleanup.
2022-10-04 18:44:15 +02:00
Christoph Oelckers
9d4e467268
- did some more.
2022-10-04 18:44:15 +02:00
Christoph Oelckers
95bc8a173f
- animatesprites clear of player_int_pos.
2022-10-04 18:44:15 +02:00
Christoph Oelckers
0bf60d53ee
- another batch
2022-10-04 18:43:40 +02:00
Christoph Oelckers
3b66cd4047
- more floatification cleanup.
2022-10-02 20:47:01 +02:00
Christoph Oelckers
8bba3b24b5
- floatification access method cleanup in actors_d.cpp.
2022-10-02 20:47:01 +02:00
Christoph Oelckers
f5abeb97e4
- floatification access method cleanup in actors.cpp.
2022-10-02 20:47:01 +02:00
Christoph Oelckers
3c4e89185d
- position cleanup in actor.cpp (mainly queball and recon)
2022-10-02 20:47:01 +02:00
Christoph Oelckers
29ae7f7a02
- floatified bobpos.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
b8eb66cccf
- Duke: floatified the sector rotation code.
...
This gives a *massive* improvement to the precision of rotating sectors, most notably the main part of E2L10 "Spin Circle".
2022-10-02 20:47:00 +02:00
Christoph Oelckers
494653a724
- floatified rotation in handle_se00
2022-10-02 20:47:00 +02:00
Christoph Oelckers
1f49f62d75
- cleanup, part 3.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
dd7544c7a6
- cleanup, part 2.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
66acab2ca0
- cleanup, part 1.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
e878ecb511
- floatified player_struct::pos.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
86076b2871
- use player_add_int_xy and player_set_int_xy.
2022-10-02 20:47:00 +02:00
Christoph Oelckers
44dc2a692f
- wrapped player::pos z-assignments.
2022-10-02 20:46:59 +02:00
Christoph Oelckers
9cd57f4510
- pushmove wrapper and a few other replacements.
2022-10-02 20:46:59 +02:00
Christoph Oelckers
8482e66caa
- __int_opos is gone.
2022-10-02 20:46:59 +02:00
Christoph Oelckers
d6523c30f2
- one more
2022-10-02 20:46:59 +02:00
Christoph Oelckers
c5fb88e203
- another batch of utility use
2022-10-02 20:46:59 +02:00
Christoph Oelckers
8ba7cb0ddb
- use the player position utilities in actor*.cpp
2022-10-02 20:46:59 +02:00
Christoph Oelckers
3f33719c36
- added position utilities to player_struct.
2022-10-02 20:46:59 +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
312ee075d2
- use wrapper functions for pos/opos where possible.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
591dcc995a
- added a float version of gs.playerheight.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
1e1188ae73
- use gs.playerheight consistently.
...
There were still several cases using the game specific constants.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
564ec9e518
- renamed player_struct::opos
2022-10-02 20:46:58 +02:00
Christoph Oelckers
5f4c35e9aa
- renamed player_struct::pos
2022-10-02 20:46:58 +02:00
Christoph Oelckers
6bd854da88
- floatified player_struct::truecz/truefz.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
7fce0ed7ae
- renamed truefz and truecz
2022-10-02 20:46:57 +02:00
Christoph Oelckers
8f64518637
- Duke: cleanup on z-checks, part 4.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
665ee69eba
- Duke: cleanup on z-checks, part 3.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
6eabe4e152
- Duke: cleanup on z-checks, part 2.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
b853e9caa0
- Duke: cleanup on z-checks, part 1.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4506b5cb08
- cleaned up the remaining uses of the integer floorz/ceilingz variables.
...
This concerns two particularly ugly blocks of code in the move functions - these were fully redone with pure floating point math.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
89c0e4234c
- remapped all copy assignments to DDukeActor::ceilingz/floorz.
...
This commit does not work! It was split for clarity.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4787bddddd
- Duke: replaced most read access to DDukeActor::floorz/ceilingz with a wrapper function.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
793e9b7623
- renamed DDukeActor::floorz, ceilingz.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
6816e32d23
- call float 'interpolated' functions for setting tsprite's pos.
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
1482052c8a
- fixed: chickens in RRRA did not autoaim in hitscan-only mode.
...
since these are homing missiles they always need to acquire a target, regardless of autoaim mode.
2022-10-01 14:34:55 +02:00
Christoph Oelckers
9627f00f32
- Duke: added emulation for a sound system bug that prevents certain duplicate sounds from playing.
...
Since our sound system does not reject this case, the calling code must check for the relevant condition.
2022-10-01 12:59:43 +02:00
Christoph Oelckers
64a96e1b94
- fixed: RR: save the current track for the "8-track player"
...
This way a saved game can properly resume the loop.
2022-10-01 09:16:47 +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
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
b1cbecf268
- Duke/RR: do not spawn sprites with invalid picnums.
...
RRRA E1L7 has a respawner that will spawn an invalid sprite crashing the game.
2022-08-26 20:05:28 +02:00
Christoph Oelckers
4c6976baca
- looks I missed one last place...
2022-08-26 19:53:10 +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
204d6018f4
- Duke: renamed all spr.pos
...
This was pure search&replace with no other code edits.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
f629ec1916
- Duke: full pos assignments
2022-08-26 19:53:06 +02:00
Christoph Oelckers
0ad571b72d
- Duke: wrapped remaining write access to spr.pos
2022-08-26 19:53:06 +02:00
Christoph Oelckers
f4ed59ccb7
- Duke: ninth batch.
2022-08-26 19:53:06 +02:00
Christoph Oelckers
9bf94cbc1c
- Duke: eighth batch
2022-08-26 19:53:06 +02:00
Christoph Oelckers
f97bae8d23
- Duke: refactored sound API to receive its position by reference.
2022-08-26 19:53:06 +02:00
Christoph Oelckers
b4e18e8255
- Duke: seventh batch of refactoring writes to spr.pos.
2022-08-26 19:53:06 +02:00
Christoph Oelckers
99b9b01d6a
- Duke: sixth batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
5c31568184
- Duke: fifth batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
82095b435f
- Duke: fourth batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
236b1cf4e0
- Duke: third batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
6d21552d6c
- Duke: second batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
378d126114
- Duke: first batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Christoph Oelckers
ca1171187f
- hack to fix bad door definition in RR E2L7.
2022-08-25 21:45:03 +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
83c0ad55f2
- rewrote nextsectorneighborzptr with a better parameter interface
2022-08-05 18:43:48 +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
8d423fdc6f
- toned down the fov change a bit.
...
With real projection math it was a bit extreme.
2022-08-03 19:59:46 +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
1df66f4971
- clear all collision flags from generic controller sprites
...
Taken from EDuke32 - there seem to be a few maps which need this.
Also consolidate a bit of setup code between Duke and RR.
2022-07-26 00:13:11 +02: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
00e12ea031
- Remove some uses of xs_Float.h
functions in game-side code where overflow protection isn't needed.
...
* Went a little bit nuts and just used this everywhere back way back when.
2022-07-23 10:37:32 +10: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
c3981e06cb
- Duke: Remove one save interpolated weapon value that got away from me in 3948ec7a35
.
2022-06-06 11:31:42 +10:00
Mitchell Richters
a29bce9eda
- Duke: Interpolate loogcnt
when drawing onscreen.
2022-06-06 11:24:47 +10:00
Mitchell Richters
3948ec7a35
- Duke: Remove recently added interpolated weapon values from save code and add to player_struct::backupweapon()
instead.
2022-06-06 11:05:11 +10:00
Mitchell Richters
ee6abac699
- Duke: Apply same fistsign
fix from 4ee64df844
to RR code.
2022-06-06 11:04:59 +10:00
Mitchell Richters
b0f517736c
- Duke: Fix fistsign
smoothness.
2022-06-06 10:51:57 +10:00
Mitchell Richters
600776da2e
- Duke: Change a few return types from int to bool in HUD code.
2022-06-06 09:57:51 +10:00
Mitchell Richters
f4b78dc3c7
- Duke: Interpolate access_incs
when drawing onscreen (security card usage).
2022-06-06 09:47:30 +10:00
Mitchell Richters
3b2ef4d18b
- Duke: Interpolate tipincs
when drawing onscreen (tipping the dancers).
2022-06-06 09:40:47 +10:00
Mitchell Richters
d6549d6335
- Duke: Interpolate knee_incs
when drawing onscreen (stomping on shrunken enemies).
2022-06-06 09:19:55 +10:00
Mitchell Richters
ab95a8b890
- Duke: Interpolate fist_incs
when drawing onscreen (hitting the nuke detonator at the end of each level).
2022-06-05 21:00:44 +02:00
Richard Gobeille
55408e6e3c
- Duke3d: smooth movement of recons.
2022-06-05 21:00:36 +02:00
Richard Gobeille
1389413ca1
Duke3d: make actors set to move vertically in CON act as if SFLAG_SMOOTHMOVE was explicitly enabled
...
This smooths out stuff like octabrains and flying liztroops without making them look stupid when they move on the ground.
2022-06-05 22:40:06 +10:00
Christoph Oelckers
bc5c742930
- Duke: fixed some crashes with bad map setups
2022-06-05 09:40:10 +02: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
Jordon Moss
5c65a9bab4
Interpolate FIRELASER trails.
2022-05-30 20:21:40 +10:00
Mitchell Richters
79465ffc42
- Duke: Add CON support for Duke Nukem 3D 1.1 Shareware.
...
Based on EDuke32's parsing of the same commands.
2022-05-29 10:34:33 +10:00
Mitchell Richters
889baeff14
- Duke: Fix CON parser to detect shareware scripts.
2022-05-29 09:56:56 +10: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
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
a071479339
- Duke: set game palette before rendering the automap
2022-04-04 00:16:54 +02:00
Christoph Oelckers
3114059145
- fixed sprite indices for map spawned sprites.
2022-03-20 12:08:47 +01:00
Rachael Alexanderson
735740e453
- add level names to title bar (and by proxy, to RPC)
2022-03-18 05:06:58 -04:00
Christoph Oelckers
789794539c
- added script exports for Duke's main structures.
2022-02-21 00:19:26 +01:00
Christoph Oelckers
951b93123a
- fixed incorrect symbolic constant for statnum.
2022-02-19 09:50:05 +01:00
Christoph Oelckers
fd6d09273f
- reverted wall pointer fix for FANSPRITE setup.
...
Turns out the bug came from the DOS code, but changing this breaks the fans.
2022-02-18 00:19:57 +01:00
Christoph Oelckers
21fddd6c54
- spriteset management.
2022-02-15 22:34:48 +01:00
Christoph Oelckers
8cc8ebf30c
- preparations for more floatification.
2022-02-15 22:18:26 +01:00
Christoph Oelckers
c18a46b98a
- fixed dofurniture
2022-02-15 22:18:26 +01:00
Christoph Oelckers
63f1a968d6
- do not update the sector for sector effectors moving themselves.
...
They need to stay in their originally assigned sector forever, or really bad things can happen.
If due to some math imprecisions they change their sector, they can screw up the entire map.
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
4d38f62a14
- cleaned up and floatified the jaildoor code
...
(which should probably be renamed to 'slidedoor' because it gets used for lots of stuff other than actual jail doors...)
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
13d01bc98b
- lower the value of MAXSO.
...
This was causing overflow issues and resulted in bad int <-> float conversions.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
02d508baef
- renamed floatified wall coordinate to 'pos'.
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
59e834fdad
- Duke: changed animation storage to be independent of the animated values' types.
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
Christoph Oelckers
a015958f66
- Duke: had to give the trip bomb yet another flag.
...
Unlike every other actor this has scripted animation logic attached that is not supposed to be used. Weird.
2022-01-29 10:45:36 +01:00
Christoph Oelckers
8487d693f5
- flags for the bolts.
2022-01-27 01:05:12 +01:00
Christoph Oelckers
82898e42a6
- fix the camera.
...
- camera flag added
2022-01-27 01:05:12 +01:00
Christoph Oelckers
8e89bc29e4
- new explosion flags
2022-01-27 01:05:12 +01:00
Christoph Oelckers
fba8f54bb3
- two more flags to get sprite indices out of movecrack.
...
# Conflicts:
# source/games/duke/src/constants.h
2022-01-27 00:48:39 +01:00
Christoph Oelckers
d3f2d50088
- added NOFLOORPAL flag to remove some special cases from animatesprites.
...
# Conflicts:
# source/games/duke/src/constants.h
2022-01-27 00:48:00 +01:00
Christoph Oelckers
c0a40cb7d7
- renamed RR's TRIPBOMBSPRITE to POWDERKEG
2022-01-27 00:46:46 +01:00
Christoph Oelckers
3d0c794224
- two more flags for LASERLINE.
2022-01-27 00:46:24 +01:00
Christoph Oelckers
a776e5c56e
- turned the exclude lists for initspriteforspawn into a flag.
2022-01-27 00:45:55 +01:00
Christoph Oelckers
e4cfc374be
- another trip bomb flag.
2022-01-27 00:42:57 +01:00
Christoph Oelckers
0574da7cd4
- SE24 cleanup using flags.
...
The whole setup is actually very simple, once all the mess got removed from the code.
2022-01-27 00:42:49 +01:00
Christoph Oelckers
eae5ca93d0
- cleanup - flag name and removal of unused code.
2022-01-27 00:42:40 +01:00
Christoph Oelckers
2468debe34
- added a new flag for non-teleporting items.
2022-01-27 00:42:16 +01:00
Christoph Oelckers
fc94fb9651
- replaced checktimetosleep with a flag.
2022-01-27 00:42:07 +01:00
Christoph Oelckers
72510a47fa
- replaced one more actor list check in hitradius with a flag.
2022-01-27 00:41:57 +01:00
Christoph Oelckers
125c3e8004
- flammable flags.
2022-01-27 00:41:33 +01:00
Christoph Oelckers
913b0622b8
- use symbolic constants
2022-01-27 00:35:45 +01:00
Christoph Oelckers
58b718d2a2
- turn all special actor type checks in moveflammable into flags.
...
Also wrap all flag checks in actorflag function
2022-01-27 00:34:21 +01:00
Christoph Oelckers
d9fee902de
- setSpritesetImage export added.
2022-01-26 23:35:53 +01:00
Christoph Oelckers
ef22a78618
- moved all VM exports to their own file.
2022-01-26 23:35:46 +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
c27976b2e5
- added script exports for Duke's iterators
2022-01-26 00:16:21 +01:00
Christoph Oelckers
5bc8b1c2d3
- Duke: added two more flags to eliminate the references to the crane's tile numbers.
2022-01-25 22:26:53 +01:00
Christoph Oelckers
58f535d3a4
- Duke: fixed gamevars not being allocated for map spawned actors.
2022-01-24 23:05:22 +01:00
Christoph Oelckers
a252b206d1
- exported DukeActor's native member variables.
...
This includes renaming two native ones because they shared the same name with members of spritetype.
2022-01-24 00:24:47 +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
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
82be7db269
- give the tree sky of DukeDC an offset of -40 to better hide its poor design in the new renderer.
2022-01-16 12:12:44 +01:00
Christoph Oelckers
3aff12cf4c
- sky management rework.
2022-01-16 12:12:43 +01:00
Christoph Oelckers
4ee64df844
- uncouple the fist animation for being shrunk from the display frame rate.
2022-01-15 15:48:50 +01:00
Christoph Oelckers
26d89e932a
- Duke: add back a limit to the teleporter sound.
...
Due to broken game logic it is possible for this to play in very large quantities.
2022-01-15 11:56:38 +01:00
Christoph Oelckers
24a67e194d
- Duke: reverted sector storage to temp_data[0] for the subway.
...
This was the ultimate revenge of the Spaghetti code: Somewhere in there, something needs this value in temp_data[0], but I cannot find where this is...
2022-01-13 22:34:43 +01:00
Christoph Oelckers
ecb2732629
- little bit of cleanup on Duke's bullet hole code.
2022-01-13 20:53:36 +01:00
Mitchell Richters
79f47ca2f9
- Duke: Add some comments to 40ffb23b44
so it can be better fixed in the future when multiplayer is going.
2022-01-13 22:42:48 +11:00
Christoph Oelckers
fcf04a7df1
- delete unused variable.
2022-01-13 12:27:40 +01:00
Mitchell Richters
40ffb23b44
- Duke: Directly check the backend input code's crouch_toggle
to always remain crouched after pausing, even if the first tic doesn't have input.
...
* This is needed because unlike the other games, Duke doesn't have any decent state manager for the player like Blood and SW do.
2022-01-13 21:54:56 +11: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
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
da5a92852f
- cleanup of Duke's actor flags.
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
3c54495c58
- Duke: hardened the sound controller a bit by flagging the callsound call from doanimations as most likely terminating.
...
This allows avoiding unnecessary sound repeats on some doors.
A real fix is not possible with the broken setup here - the sound controller can only implicitly toggle its state so it is likely that improper use is frequent.
2022-01-09 23:03:11 +01:00
Christoph Oelckers
0f925d4cc0
- Duke: fixed monster sight sounds not being played.
2022-01-09 21:25:02 +01:00
Christoph Oelckers
e1661e0de1
- Duke: disabled sound limiting.
...
This does not work with how the game uses sounds. Unlike Doom the sound engine in DOS Duke has no channel limit so any sound can play as many times as the game deems fit.
2022-01-09 15:18:35 +01:00
Christoph Oelckers
694f44774f
- Duke: added missing z-offset in hits.
...
Among other things, this made throwing pipebombs on slopes misbehave.
2022-01-09 14:43:59 +01:00
Christoph Oelckers
a50430bf68
- Duke: fixed SE02's handling of sloping sectors.
2022-01-09 13:38:10 +01:00
Christoph Oelckers
3c2c53c7e1
- fixed NAM's sniper rifle.
...
This was using one of WW2GI's apl* variables, but shouldn't.
2022-01-08 21:42:44 +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
5759bcc1a6
- Duke/RR: removed all in-game assignments to g_visibility.
...
These are remnants of the software renderer which used it to calculate light fading but with the current hardware renderers none of these ever reach the renderer, the values are never used.
2022-01-08 13:49:06 +01:00
Mitchell Richters
771a84338e
- Fix typo in MOVEFTA flag (was NOVEFTA
). Thanks Gaerzi!
2022-01-08 22:30:34 +11:00
Christoph Oelckers
a3162f6ccf
- renamed testnewrenderer CVAR.
2022-01-07 12:49:41 +01:00
Mitchell Richters
e5bcb8ee61
- Duke: Repair issues with handle_se32()
following lost Sgn()
call.
...
* Originated from "- first batch of routing all write access to sectortype::ceilingz and floorz through a function interface.".
2022-01-05 22:45:33 +11:00
Mitchell Richters
eca3c29261
- Duke: Fix nullptr issue in RR's processinput_r()
.
2022-01-05 19:22:21 +11:00
Christoph Oelckers
5ff7d45f7f
- Duke/RR: better handling for one random kill scenario in the player movement code.
...
Using the same appoach as EDuke32 - instead of outright killing the player it will first reset its position and retry the pushmove check.
2022-01-05 09:20:54 +01:00
Mitchell Richters
9de4b4753a
- Duke: Add nullptr check to haskey()
.
2022-01-05 18:05:15 +11:00
Mitchell Richters
b422b049c1
- Duke: Fix bad interp check in RR's dofurniture()
.
2022-01-05 10:03:33 +11:00
Mitchell Richters
874f9952f8
- Duke: Fix bad clipmove result check in movesprite_ex_r()
.
2022-01-05 09:50:22 +11:00
Christoph Oelckers
47b9de1fb4
- RR: interpolate moving furniture.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
33aee54113
- RR: interpolate jaildoors and minecarts.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
45b88277a3
- Platoon Leader: Set explicit sky offset for the third episode's orange sky.
2022-01-04 17:17:58 +01:00
Christoph Oelckers
8dedcf94d3
- Duke: removed special precaching for sky texture
...
Due to precomposition these single tiles will never be rendered anyway.
2022-01-04 17:17:58 +01:00
Mitchell Richters
6414a4ce78
- Duke: Add nullptr check to footprints()
code.
2022-01-04 22:44:11 +11:00
Christoph Oelckers
226807db34
- RR: fixed wakeup check logic in movefta.
...
Essentially the feature must be on for all RR actors and off for all Duke actors.
RR's original logic here to exclude animals was broken and non-functional.
2022-01-04 09:39:55 +01:00
Mitchell Richters
783dd98641
- Duke: Fix nullptr check for Duke and RR that was causing a crash in a glitched spot in RR's E1L1.
2022-01-04 14:00:18 +11:00
Christoph Oelckers
1d091ae395
- merged both movefta functions, using the already defined flags instead of explicit picnum checks.
2022-01-02 15:59:24 +01:00
Christoph Oelckers
e42fc5e743
- use the newly added flag to consolidate ifhitsector.
2022-01-02 12:27:36 +01:00
Christoph Oelckers
cc6d52013d
- made Duke actor flags type safe and added a few new definitions that are not active yet.
2022-01-02 10:17:44 +01:00
Christoph Oelckers
cd599a7a15
- Duke: abstracted all checks for TILE_APLAYER with an isPlayer method.
2021-12-31 18:51:43 +01:00
Christoph Oelckers
3eb640658f
- don't typedef MATTGAMEVAR
2021-12-31 13:12:20 +01:00
Christoph Oelckers
61d4d06783
- RRRA: fixed typo in portal setup.
2021-12-30 22:16:39 +01:00
Christoph Oelckers
552668418a
- moved opos and oang to DCoreActor.
2021-12-30 18:21:02 +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
Mitchell Richters
225a2a39da
- Duke: Replace player_struct
noise_*
variables with a vector.
2021-12-31 00:19:33 +11:00
Mitchell Richters
1e90b0bbbe
- Duke: Replace player_struct
bobposy
with bobpos.Y
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
034e1fd175
- Duke: Replace player_struct
bobposx
with bobpos.X
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
f9b728d188
- Duke: Replace DDukeActor
lastvy
with ovel.Y
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
8932b2fc1d
- Duke: Replace DDukeActor
lastvx
with ovel.X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
0bc26e78ba
- Duke: Replace player_struct
loogiey[64]
with loogie[64].Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
e196a4daa3
- Duke: Replace player_struct
loogiex[64]
with loogie[64].X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
2d6bc783c4
- Duke: Replace player_struct
exity
with exit.Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
8d2595ea84
- Duke: Replace player_struct
exitx
with exit.X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
19a9fc462f
- Duke: Replace CraneDef
poley
with pole.Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
034727d902
- Duke: Replace CraneDef
polex
with pole.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
4b1fbf13df
- Duke: Replace CraneDef
z
with pos.Z
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
3dfcbafd93
- Duke: Replace CraneDef
y
with pos.Y
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
8006d8e394
- Duke: Replace CraneDef
x
with pos.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
788be33c1a
- Duke: Replace player_orig
oz
with opos.Z
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
f5dd8ba3b9
- Duke: Replace player_orig
oy
with opos.Y
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
c5d94f9a8e
- Duke: Replace player_orig
ox
with opos.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
8a94022f5d
- Duke: - Duke: Replace FireProj
position and velocity variables with vectors.
2021-12-30 23:00:42 +11:00
Mitchell Richters
fd8c7bfa52
- Duke: Replace player_struct
poszv
with vel.Z
calls.
2021-12-30 23:00:41 +11:00
Mitchell Richters
b2023efb44
- Duke: Replace player_struct
posyv
with vel.Y
calls.
2021-12-30 23:00:41 +11:00
Mitchell Richters
31ed257f39
- Duke: Replace player_struct
posxv
with vel.X
calls.
2021-12-30 23:00:41 +11: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
f9cea2b1db
- turning one check in hitradius into a flag.
2021-12-30 09:58:48 +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
16635e53fc
- renamed DDukeActor::picnum to attackertype.
...
This one having the same name here as spritetype::picnum is just confusing as hell and badly describes this variable's function.
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