Christoph Oelckers
34333302f9
- wrapped all reading wallptr references.
2022-11-15 12:37:14 +01:00
Christoph Oelckers
0b75f19da5
- use wallsofsector in clipmove.
2022-11-15 12:31:15 +01:00
Christoph Oelckers
c23db8ea35
- wrapped all reads of sectortype::wallnum and renamed all other wallnum variables.
2022-11-15 12:21:21 +01:00
Christoph Oelckers
b7a7584059
- renamed wallnum and sectnum functions.
...
These were creating a lot of search noise because local variables had the same name.
2022-11-15 12:03:44 +01:00
Christoph Oelckers
a2683559ce
- refactored Duke's cactus.
2022-11-15 10:44:06 +01:00
Christoph Oelckers
ad7cf290d2
- restricted use of gs.firstdebris to the only place where it is really needed.
...
Also no script export for this, it is only needed for converting CON parameters to propr indices.
2022-11-15 08:28:05 +01:00
Christoph Oelckers
d253468b22
- scriptified the scraps.
...
A Duke-ish mess of epic proportions.
2022-11-15 00:06:21 +01:00
Christoph Oelckers
94a13118b3
- handle nofloorpal for CallAnimate overrides.
2022-11-15 00:06:21 +01:00
Christoph Oelckers
3bc34ec773
- fix last commit.
...
One change got lost by the update.
2022-11-14 23:50:30 +01:00
Christoph Oelckers
6e49f0bf8f
- Backend update from GZDoom.
...
Bone model support in GLES and ZScript quaternions.
2022-11-14 19:46:25 +01:00
Christoph Oelckers
c94d2fb3d0
- made DDukeActor::movflag unsigned.
...
Due to the values it holds it cannot be a signed short as this would wrap around to something negative.
2022-11-14 19:25:28 +01:00
Christoph Oelckers
e867c4603f
- Duke: fixed issues with CON-based movement.
...
Bad integer divisions and one incorrect check for X instead of Z.
2022-11-14 18:48:31 +01:00
Christoph Oelckers
5aac77784a
- fix construction of FActorInfo.
...
For some reason this lost the copy constructing part from GZDoom resulting in bad data.
2022-11-14 18:15:58 +01:00
Christoph Oelckers
5fea500f92
- flammable actors scriptified.
2022-11-14 16:31:45 +01:00
Christoph Oelckers
190fd1827e
- scriptified Dukes water fountain.
...
That's this thingy in the first corridor of E2L1.
2022-11-14 12:10:13 +01:00
Christoph Oelckers
ef6c39ec55
- added a CVAR that allows drawing any tile to the top of the screen.
...
For quick examination of tiles.
2022-11-14 12:08:02 +01:00
Christoph Oelckers
cbf47b4dee
- added a 'Sum()' intrinsic to the vectors.
2022-11-14 12:07:51 +01:00
Christoph Oelckers
306db376d9
- added script exports for 'spawn' and 'lotsofglass' and made the spawn variant using class names operational.
2022-11-14 10:30:59 +01:00
Christoph Oelckers
317968c45a
- exported DukeGameInfo.
...
Only the parts that can be considered stable.
2022-11-14 10:25:17 +01:00
Christoph Oelckers
ced22bb0a8
- added onUse virtual to DukeActor.
2022-11-14 10:22:22 +01:00
Christoph Oelckers
36f753df8f
- RR: fixed weapon switching code.
2022-11-13 19:47:10 +01:00
Christoph Oelckers
f23ddc28f0
- Duke: scriptified the crane
2022-11-13 18:55:32 +01:00
Christoph Oelckers
660c546266
- actor interface fixes.
2022-11-13 18:51:23 +01:00
Christoph Oelckers
e62b79c7c9
- allow 'nullptr' in ZScript.
...
This makes it a lot easier to port C++ code.
2022-11-13 12:20:00 +01:00
Christoph Oelckers
9bf3642cb8
- named the scrap sprites.
2022-11-13 11:51:44 +01:00
Christoph Oelckers
e3aa1da175
- CallOnanimate
2022-11-13 11:50:28 +01:00
Christoph Oelckers
ba016c7c3a
- added CallOnHit and named spawn.
2022-11-13 10:30:52 +01:00
Christoph Oelckers
bab750c156
- MAXCRANES is obsolete
2022-11-13 10:21:09 +01:00
Christoph Oelckers
9d1ddb72d4
- added some texture names.
2022-11-13 10:13:49 +01:00
Christoph Oelckers
48d1367a7e
- added some VM exports for DukePlayer
2022-11-13 08:59:08 +01:00
Christoph Oelckers
53e43d6d1e
- CoreActor setposition natives.
2022-11-13 08:59:07 +01:00
Christoph Oelckers
de51b65ead
- reimplemented Duke's scripted actor iterators in a more lightweight fashion.
...
This now works without allocating garbage collected objects.
2022-11-13 08:59:07 +01:00
Christoph Oelckers
c32a695384
- DukeActor scriptification framework.
2022-11-13 08:55:20 +01:00
Christoph Oelckers
166235027c
- Backend update from GZDoom
...
adding some intrinsics to ZScript.
2022-11-13 08:32:09 +01:00
Christoph Oelckers
8806fb930b
- Backend update from GZDoom
...
* Vector 4 in zscript
* garbage collector fixes
2022-11-12 10:45:39 +01:00
Christoph Oelckers
f7a2fd29ba
- Blood: fixed incorrect underwater movement speed
...
The 'posture == 1' case has gotten lost while consolidating the redundant code.
2022-11-12 10:19:15 +01:00
Christoph Oelckers
ac4be79e96
- implemented cl_weaponswitch for Duke.
2022-11-12 09:34:08 +01:00
Mitchell Richters
0033826544
- Allow proper setting of progdir
for SDL targets.
2022-11-12 11:26:05 +11:00
Christoph Oelckers
800e7939b8
- fixed: when deactivating the app, pausing the sound system should not depend on the game's internal pause state.
...
All this tells is that the gameplay was halted. Sound was not stopped when the user either minimized or tabbed away in the in-game menu.
2022-11-11 18:40:36 +01:00
Mitchell Richters
bd5d96df10
- Duke: Fix chaingunner spit velocity that was still in fixed point.
...
* Fixes #742 .
2022-11-11 21:34:23 +11:00
Mitchell Richters
60366d298e
- Duke: Use player's pitch sine rather than tangent when throwing a pipebomb while crouched.
...
* Maintains the feel of the weapon by having the pipebomb roll along the ground.
* Sign of sine is correct and allows for an expected throw behavior when looking up/down unlike original code.
* Prevents an infinite tangent value from messing things up.
2022-11-11 21:10:41 +11:00
Christoph Oelckers
cfb9ebf8e5
- fixed bad velocity assignment in DoLaser, causing an endless loop.
2022-11-10 10:00:44 +01:00
Christoph Oelckers
53341ee525
- Duke: lower conveyor player carry speed.
...
Still no match to the animation, but these games seemingly never cared.
2022-11-10 08:40:14 +01:00
Christoph Oelckers
6a6e9299ca
- added missing returns in the failure cases of useitem and slot CCMDs.
2022-11-10 07:41:20 +01:00
Christoph Oelckers
a8585d72c7
- fixed velocity for Duke's pipe bomb and RR's dynamite when crouching.
...
These cases may not use the generic free aim adjustment.
2022-11-09 22:50:13 +01:00
Christoph Oelckers
e88b24bce7
- SW: fixed clipdist for brown rippers.
2022-11-09 20:16:47 +01:00
Christoph Oelckers
d2f0981091
- SW: fixed distance check in DoGet.
2022-11-09 19:03:23 +01:00
Christoph Oelckers
870801b8ac
- SW: explicitly initialize sector object turn angle values.
...
The integer code relied on the memset to -1, but with floats that sets it to -NaN.
2022-11-09 18:35:03 +01:00
Christoph Oelckers
32a447ea54
- RR: fixed velocity of dynamite projectile.
2022-11-09 15:39:16 +01:00
Christoph Oelckers
3c7810a229
- RR: fixed movement direction when throwing a bowling ball.
2022-11-09 15:21:08 +01:00
Christoph Oelckers
5ebf2fef89
- fixed handle_st18's ceiling movement.
2022-11-07 18:16:41 +01:00
Christoph Oelckers
fd1864bb48
- fixed bad iterator setup in SpriteSetupPost
2022-11-07 13:48:01 +01:00
Christoph Oelckers
2290f05dcb
Revert "- Use std::fma()
in the interpolation code."
...
This reverts commit ff7e0afa6f
.
On Visual Studio with precise math, which is our main target this generates a very expensive function call instead of optimized assembly which renders the function's purpose ad absurdum.
2022-11-07 10:36:34 +01:00
Christoph Oelckers
3444991e4e
- fixed VSpriteBusy coordinate adjustment.
2022-11-07 10:31:10 +01:00
Mitchell Richters
d892fa10d2
- SW: Fix ladder speed with unnecessary amplification applied.
...
* Fixes #745 .
2022-11-07 20:23:14 +11:00
Mitchell Richters
817a0cb94a
- Clamp applied mouse input to be within safe ranges to interpolate with.
...
* Input greater than 180 degrees in a single tic can cause the input to be applied backwards.
2022-11-07 19:38:22 +11:00
Mitchell Richters
ff7e0afa6f
- Use std::fma()
in the interpolation code.
...
* From everything I've read, this more accurate, can be ~5% faster and is heavily optimised on CPUs of the last 10-12 years.
* This homegrown solution can be removed for `std::lerp()` once we go C++20.
2022-11-07 19:28:34 +11:00
Mitchell Richters
88e92a15a6
- Clean up some interpolatedvalue()
calls.
2022-11-07 17:52:53 +11:00
Mitchell Richters
274899c9db
- Get rid of useless lerp()
function I added last night for lack of C++20.
...
* We already have a generic linear interpolator that _I_ added, so let's use it.
2022-11-07 17:31:17 +11:00
Mitchell Richters
043ebadbee
- Remove 2x Normalized180()
method calls on pitch where it's not needed.
...
* Pitch should always be +/- 90 degrees and never need normalization. If it's not, then this shouldn't mask an error caused elsewhere.
2022-11-07 16:53:55 +11:00
Mitchell Richters
9fbe564327
- Fix bad if statement guarding cl_clampedpitch
in menu and make non-global.
2022-11-07 15:43:26 +11:00
Mitchell Richters
c8114e7ed0
- Revert change to TAngle<T>
's /
operator that snuck in.
2022-11-07 15:43:00 +11:00
Christoph Oelckers
912b6a47c1
- migrate cl_savedir to save_dir
2022-11-06 17:48:32 +01:00
Mitchell Richters
33d74c9009
- Default display of map name in SW to be off by default.
2022-11-06 21:59:07 +11:00
Mitchell Richters
143f691c06
- SW: Try to fix up the camera drawing a bit.
...
* Slight pitch adjustment, plus factoring in that values of 0 constituted 100 under original game.
* View screens in game are not actually 1:1 AR but 1.12:1
2022-11-06 21:59:07 +11:00
Mitchell Richters
11f279fddd
- Slight input code tidy-up.
2022-11-06 21:59:07 +11:00
Mitchell Richters
033e0ea7bc
- Make rotscrnang return to zero at same speed as look_ang.
2022-11-06 21:59:07 +11:00
Mitchell Richters
0c4ad84c2e
- RR: Pitch-adjusted velocity for operateweapon()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
9a25b1d3f5
- RR: Pitch-adjusted velocity for shootweapon()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
b14525b47b
- RR: Pitch-adjusted velocity for shootmelee()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
24dcd26e64
- RR: Pitch-adjusted velocity for shootwhip()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
211b2cc349
- RR: Pitch-adjusted velocity for shootrpg()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
b9bd02299a
- RR: Pitch-adjusted velocity for shootstuff()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
7941f3cde3
- Duke: Pitch-adjusted velocity for aim()
.
2022-11-06 21:59:06 +11:00
Mitchell Richters
f2674e95d3
- Duke: Pitch-adjusted velocity for operateweapon_ww()
when free-aiming.
2022-11-06 21:59:06 +11:00
Mitchell Richters
3a1f1c7580
- Duke: Pitch-adjusted velocity for operateTripbomb()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
3908ec0c42
- Duke: Pitch-adjusted velocity for operateweapon()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
fe7c49fcac
- Duke: Pitch-adjusted velocity for shootlaser()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
9e60284ff6
- Duke: Pitch-adjusted velocity for shootlaser()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
1b499520a5
- Duke: Pitch-adjusted velocity for shootweapon()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
63917fd158
- Duke: Pitch-adjusted velocity for shootknee()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
a200db6f3a
- Duke: Pitch-adjusted velocity for shootstuff()
when free-aiming.
2022-11-06 21:59:05 +11:00
Mitchell Richters
73477a722c
- Duke: Pitch-adjusted velocity for shootshrinker()
when free-aiming.
2022-11-06 21:59:04 +11:00
Mitchell Richters
9f32eae1a7
- Duke: Pitch-adjusted velocity for shootflamethrowerflame()
when free-aiming.
2022-11-06 21:59:04 +11:00
Mitchell Richters
64f55726c9
- Duke: Pitch-adjusted velocity for shootfireball()
when free-aiming.
2022-11-06 21:59:04 +11:00
Mitchell Richters
33e2de70a2
- Duke: Pitch-adjusted velocity for shootrpg()
when free-aiming.
2022-11-06 21:59:04 +11:00
Mitchell Richters
8ec475aec8
- Replace clamped off tangent values with a linear interpolation of the player's pitch.
...
* Gives a tangent-like ramping where it's noticeable without having to use the tangent at all.
* Had to do homegrown lerper since we're not C++20 yet.
2022-11-06 21:59:04 +11:00
Mitchell Richters
7f124eef58
- Adjust chase-cam code to work in a pitch-corrected capacity.
2022-11-06 21:59:04 +11:00
Christoph Oelckers
41fc5660e5
- Backend update from GZDoom
...
* IQM enhancements
* config storage in Users
* moving of savegame filename generation to the backend
2022-11-06 11:46:26 +01:00
Christoph Oelckers
b4a49ea228
- fixed movement speed for SE25 (Piston)
2022-11-05 16:00:39 +01:00
Christoph Oelckers
99753fd03a
- fixed bad scaling factor in girlninj.cpp.
2022-11-04 18:18:23 +01:00
Christoph Oelckers
73deae88ce
- fixed neartag's trace vector maintenance for sprite hits.
...
The trace vector needs to be shortened so that further checks only find items in front of the sprite.
2022-11-04 13:23:01 +01:00
Christoph Oelckers
77ae3b3b71
- RR: fixed bad angle math in shootmortar
2022-11-03 11:08:40 +01:00
Christoph Oelckers
f5ce60fa6e
- fixed issues with negative values being passed to sqrt für calculating RRRA's motorcyle and boat.
2022-11-02 13:32:07 +01:00
Christoph Oelckers
1cf954920c
- eliminated cliptestsector which was just a thin wrapper around CheckOpening.
2022-11-01 10:25:15 +01:00
Christoph Oelckers
93ca75e146
- got rid of the two intermediate functions between clipmove_tweak_pos and InterceptLineSegments.
2022-11-01 09:55:24 +01:00
Christoph Oelckers
01c114787c
- eliminated the deprecated integer wrapper for 'inside'.
2022-11-01 08:38:40 +01:00
Christoph Oelckers
0e113dab79
- added true level compatibility map processing and deleted all related map hack code.
2022-10-31 10:45:47 +01:00
Christoph Oelckers
6586868cb8
- added the framework for scripted level compatibility patching.
2022-10-30 16:51:41 +01:00
Christoph Oelckers
06c9296932
- added a quick hack to move a misplaced vertex in RR E1L1's barn.
2022-10-30 16:51:41 +01:00
Christoph Oelckers
0f57685f48
- updatesector interface cleanup.
2022-10-30 16:51:41 +01:00
Christoph Oelckers
c5523a99ee
- fixed issues with Duke's poolballs.
2022-10-30 16:51:41 +01:00
Christoph Oelckers
09df4da241
- fixed scaling issue with Duke's green slimer.
2022-10-30 16:51:40 +01:00
Christoph Oelckers
0c87bcb91b
- renamed getzsofslopeptr to calcSlope and removed one redundant inline.
2022-10-30 16:51:40 +01:00
Christoph Oelckers
ce4a6fc7e3
- split off one part of clipmove into a utility function.
2022-10-30 16:51:40 +01:00
Christoph Oelckers
32b2e84fdc
- added episode and total episode time display to alt HUD
2022-10-30 16:51:40 +01:00
Christoph Oelckers
562c1a18c8
- integrate hud_althud into hud_size
...
This makes it easier to use and avoids rendering a fullscreen hud on a screen size with view border.
2022-10-30 16:51:39 +01:00
Mitchell Richters
914bec7d65
- Deduct the minimum angle epsilon from unclamped pitch ranges.
2022-10-30 16:51:39 +01:00
Christoph Oelckers
ffd284d233
- Duke: use player palette only on the foot weapon.
...
This is the only one showing Duke's clothes - the translation may cause discoloration on the others.
2022-10-30 16:51:39 +01:00
Mitchell Richters
79a1110d5f
- Duke: Create new flag SFLAG2_INTERPOLATEANGLE
and use for the bearing plate on gears.
...
* Fixes #719 .
2022-10-30 16:51:39 +01:00
Mitchell Richters
65acafc2bd
- Duke: Move new blood spat code into function for use in RR code as well.
2022-10-30 16:51:39 +01:00
Mitchell Richters
f149410750
- Duke: New setup for blood splatters against walls, taking full account of the float precision.
2022-10-30 16:51:38 +01:00
Christoph Oelckers
2fbee8faf5
- Exhumed alt hud.
2022-10-30 16:51:38 +01:00
Christoph Oelckers
35f6ece473
- renamed RR’s weapon sprites to match their weapons
2022-10-30 16:51:38 +01:00
Christoph Oelckers
a3dbfab54b
- return some invalid but recognizable magic value when IntersectLines is being passed two collinear lines.
...
This actually should check if the two lines are identical but since this is rather expensive and rarely needed it's better handled by returning a distinct value the caller can handle if needed.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
e3254a8546
- fixed an edge case in cansee where an actor placed directly on a two-sided wall would fail to register that wall's back sector.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
88d421300a
- made DukeActor::timetosleep unsigned.
...
Although mostly theoretical it is possible for this to overflow and render the actor non-functional.
If the value is unsigned the overflow will wrap around to 0 which is not critical.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
15fc9e47fd
- use symbolic STAT_ constants in spawninit where available.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
ff71ab14ce
- added a GZDoom-style alternative HUD.
...
So far only implemented for Blood.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
a0f18c360a
- made some minor edits to clipmove to get rid of a few deprecated wrapper functions.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
14769e9b79
- reroute cliptestsector to checkOpening.
...
This required adding one more check for the 'precise' mode.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
40271e15b3
- minor tweaks to checkOpening
...
mainly some extensions to let it replace cliptestsector.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
2190499d63
- pushmove rewritten.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
830ded6e87
- set warning flags for MSVC based on warning level 3.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
f4c8ac0140
- made AnimSet's vel parameter an actual double.
...
This does not affect any outcome, it just avoids pointless type conversions.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
4ac3820511
- deleted two unused local variables.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
98e2fecd37
- another bunch of type conversion warnings fixed.
...
the ones in the findplayer functions are not critical in singleplayer.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
902f8c9706
- silenced lots of warnings for deliberate type conversions.
...
The ones in d_net.cpp are not in active code.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
9c097e1763
- revert to warning level 3.
...
Some stock warnings are far too noisy when level 4 is on.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
5f50ee5204
- updated CoreActor’s script exports.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
5a045a6232
- deleted deprecated zrand variant
2022-10-30 16:51:35 +01:00
Christoph Oelckers
0c8a76dc9c
- use ActorVect… functions in a few more places
2022-10-30 16:51:35 +01:00
Mitchell Richters
3f2d970b4f
- Blood: Fix minor issue where player death horizon was being applied at double speed.
2022-10-30 16:51:34 +01:00
Mitchell Richters
2fc115a23d
- Duke: Remove only place rotatepoint()
is called where no pivot is used.
2022-10-30 16:51:34 +01:00
Christoph Oelckers
4df875e860
- use setfloorz/setceilingz in a few places where it wasn't done.
...
This isn't critical in any way so no need to merge, but let's be consistent, in case future changes rely on it.
2022-10-30 16:51:34 +01:00
Mitchell Richters
e07785e85b
- Duke: Use pitch difference between player and shrunken actor to adjust horizon.
...
* Works a lot better, and is uncapped pitch compatible unlike the old setup.
2022-10-30 16:51:34 +01:00
Christoph Oelckers
e5efb5c15f
- fixed seeker missile aiming
...
merge to "floatified VectorMissileSeek"
2022-10-30 16:51:34 +01:00
Christoph Oelckers
c159953ac6
- use normalangle().
2022-10-30 16:51:33 +01:00
Mitchell Richters
e099a19f03
- Duke: Fix bad x/yrepeat scaling.
...
* Merge with or above `- use Scale wrappers in global code and parts of Duke.`.
2022-10-30 16:51:33 +01:00
Christoph Oelckers
3c6b64d621
- renamed everything back
2022-10-30 16:51:33 +01:00
Christoph Oelckers
81341ce4a6
- unwrapped SetScale as well.
...
Again no edits here - it's one big replace action.
2022-10-30 16:51:33 +01:00
Christoph Oelckers
da523eb8e3
- unwrapped vector SetScale.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
15db7a7143
- unwrapped SetScaleX/Y.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
8265239d2d
- removed AddScale wrappers.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
85b52b1c77
- removed Scale(), CopyScale() and MultScale wrappers.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
51768439a9
- started removing wrappers. ScaleX() and ScaleY() done.
...
No manual changes in here.
2022-10-30 16:51:31 +01:00
Christoph Oelckers
4aa765675e
- use a float vector to store the scale.
2022-10-30 16:51:31 +01:00
Christoph Oelckers
2df12e7961
- these are the final repeats
2022-10-30 16:51:31 +01:00
Christoph Oelckers
854c42e4ca
- handle all remaining repeat constants.
2022-10-30 16:51:31 +01:00
Christoph Oelckers
42b36d97b9
- half of the remainint repeats in weapon.cpp.
2022-10-30 16:51:30 +01:00