Commit graph

5621 commits

Author SHA1 Message Date
Christoph Oelckers
f8c65839f0 - fixed broken jumping.
This was a nasty, but typical case for Duke where a variable did not contain what the name said and was carried along way too much code.

Fixes #112
2020-08-07 21:59:11 +02:00
Christoph Oelckers
4b69a181c3 - use symbolic constants for some statnums 2020-08-06 20:54:51 +02:00
Christoph Oelckers
4cfeb9b2cc - fixed bouncing flame in VACA2.
Taking a hint from EDuke32 here.
2020-08-06 20:54:02 +02:00
Mitchell Richters
47dbc46213 - fixed the interpolation issues while on a crane.
* Partially addresses issues discussed in #105 and #106.
2020-08-06 15:39:45 +10:00
Christoph Oelckers
9060abbafd - 8 more SW headers gone. 2020-08-06 00:18:45 +02:00
Mitchell Richters
bbe05b0c81 - harden FinalizeInput() with else blocks on each if statement after checking whether all movement is blocked.
Fixes #105.
2020-08-06 07:25:04 +10:00
Christoph Oelckers
3e8ff96e6b - added workaround for DukeDC's ending cutscene which was abusing undefined behavior in the original code. 2020-08-05 22:57:45 +02:00
Christoph Oelckers
514c029e47 - this wasn't supposed to get committed. 2020-08-05 22:40:47 +02:00
Christoph Oelckers
a30933871e - fixed most end of game cutscenes. 2020-08-05 22:36:39 +02:00
Christoph Oelckers
ba3c353198 - use the correct code for the devastator in operateweapon.
The code present was from EDuke 2.1, I have no idea if it ever worked there. It was replaced with JFDuke's.
Fixes #104.
2020-08-05 22:36:38 +02:00
Christoph Oelckers
72806e27eb - cleanup work on SW
* consolidating smaller headers to reduce number of files
* remap all unmapped keyboard checks to corresponding buttons
2020-08-05 22:36:38 +02:00
Christoph Oelckers
4a0e155637 - fixed starting of bonus screen music.
It must not be done in the constructor of the screen but when actually playing the first frame.
2020-08-05 22:36:38 +02:00
Christoph Oelckers
4fef66c78a - SW script parser cleanup 2020-08-05 22:36:37 +02:00
Mitchell Richters
a3dfa58662 - correct typo in Blood text string because I'm OCD like that. 2020-08-05 23:17:57 +10:00
Mitchell Richters
ddd30e742c - ensure player's angle input while playing with cl_syncinput 0 is scaled appropriately when sector's lotag is ST_2_UNDERWATER. 2020-08-05 22:57:47 +10:00
Mitchell Richters
d1a68421bd - fix cl_weaponsway for Duke. 2020-08-05 20:04:14 +10:00
Mitchell Richters
2919cdcb44 - clamp the calculated horizAngle to -180/180 to stop overflowing if player moves the mouse stupidly quick while cl_syncinput 1 is set. 2020-08-05 19:56:49 +10:00
Mitchell Richters
03bccb3a06 - functionalise significant portions of 0ee3ab4df8. 2020-08-05 19:24:42 +10:00
Mitchell Richters
0142449d95 - clamp angle velocity as originally intended. 2020-08-05 17:59:46 +10:00
Mitchell Richters
736811e864 - properly tune sethorizon() so that 'frominput' bool can be removed. Returning to centre function is essentially consistent between input states now. 2020-08-05 17:59:01 +10:00
Mitchell Richters
0ee3ab4df8 - revert most of e474ebc2b7 and adjust player's angle/horizon in a way that's compatible with cl_syncinput 0 and cl_syncinput 1.
Previous attempts at leveraging `applylook()` and `sethorizon()` in different spots had pros and cons, but ultimately changing where these functions were called from was a net negative and had hard to diagnose issues.

Maintaining two types of player input is considerable work. Lessons have been learned and will be beneficial when it comes time to re-doing the other games. Ideas from PR #98 for optimising RRRA vehicle experience while `cl_syncinput 0` is in use have been implemented here.
2020-08-05 17:53:41 +10:00
Mitchell Richters
65428a2d1a - revert ea98978ae7 and baed75ff8a, and do in a more compatible way with synchronised and unsychronised input. 2020-08-05 17:43:14 +10:00
Mitchell Richters
bb0129c331 - add missed savegame addition when doing 9f8d50c0a1. 2020-08-05 17:39:02 +10:00
Mitchell Richters
9f8d50c0a1 - add horizAdjust after processing pitch adjustments and call sethorizon() in processinput_d() after dokneeattack().
Fixes #101.
2020-08-05 14:23:07 +10:00
Christoph Oelckers
454e0e36c9 - added a sound for advancing multi-screen menus.
Fixes #100.
2020-08-05 00:32:29 +02:00
Christoph Oelckers
f363aca1b7 - fixed the crane in Duke3D.
Fixes #92
2020-08-05 00:28:14 +02:00
NY00123
22b492a5b3 SW: If a saved load is loaded at a point which is right after killing
a boss, ensure that FinishTimer and FinishAnim are appropriately
updated. This commit bumps GameVersion.
Additionally, the set of FinishAnim to 0 in NewLevel had
to move to a different location (InitLevelGlobals2), so
it doesn't override the value stored in the saved game.

# Conflicts:
#	source/sw/src/game.cpp
2020-08-04 20:11:37 +02:00
Mitchell Richters
157933e902 - fixed regression from b9eef9c6a3 where the angle wouldn't apply if horizon was specified. 2020-08-04 23:13:22 +10:00
Mitchell Richters
b9eef9c6a3 - make ang and horiz optional on each game's warptocoords CCMD as suggested in commentary for 1dc6edfa56. 2020-08-04 22:33:17 +10:00
Mitchell Richters
8817914744 - add printcoords as an ADD_STAT() define and move string code into static function for shared use between CCMD and ADD_STAT. 2020-08-04 21:56:32 +10:00
Mitchell Richters
b08d571be9 - create Blood dynamic CCMD warptocoords.
* The setting of the player's horizon/viewangle probably still requires work, but warping to pos x/y/z works fine.
2020-08-04 19:10:43 +10:00
Mitchell Richters
a9b05eff86 - fix coolie death issues raised in https://forum.zdoom.org/viewtopic.php?f=340&t=69254 in manner suggested by OP. 2020-08-04 19:02:26 +10:00
Mitchell Richters
3e44d850b3 - fix issues with Exhumed and SW warptocoords CCMDs when cherry-picking from public branch. 2020-08-04 18:04:44 +10:00
Mitchell Richters
24d847f4ec - create Duke dynamic CCMD warptocoords. 2020-08-04 18:04:02 +10:00
Mitchell Richters
af830518a6 - create Exhumed dynamic CCMD warptocoords. 2020-08-04 17:53:37 +10:00
Mitchell Richters
1dc6edfa56 - create SW dynamic CCMD warptocoords. 2020-08-04 17:53:34 +10:00
Mitchell Richters
38fa10326d - create engine CCMD printcoords. 2020-08-04 17:53:31 +10:00
Mitchell Richters
2bdf5f38e5 - remove code meant to have been deleted when performing e474ebc2b7. Makes processinput_r() match processinput_d(). 2020-08-04 17:13:28 +10:00
Mitchell Richters
bc103595ce - force scaleAdjust to be 1 when cl_syncinput is 1.
* Above calculation has some micro variances to it which were leading to strange behaviour like the bike's tilting not working properly with `cl_syncinput 1`.
2020-08-04 17:11:32 +10:00
Mitchell Richters
293c1af4c2 - interpolate p->TiltStatus for RR(RA). 2020-08-04 17:11:00 +10:00
Mitchell Richters
cdb8e5b94e - do these in the order that processinput() does them in. 2020-08-04 16:30:20 +10:00
Mitchell Richters
a2a668cd7b - fix vehicle turning issues following cl_syncinput changes/fixes in e474ebc2b7. 2020-08-04 16:28:57 +10:00
Mitchell Richters
cb93560a4a - fix regression from e474ebc2b7 by which the player could adjust their angle on a camera while cl_syncinput 0 (default) was set.
* Issue doesn't occur with `cl_syncinput 1` because `processinput()` returns when p->newowner >= 0 before `applylook()` is called from within it.
* Fixes #96.
2020-08-04 13:02:19 +10:00
Christoph Oelckers
41cc5cac34 - fixed responsiveness issues with Blood's weapon selection.
This shouldn't really do anything and might point to some deeper implementation flaw.
2020-08-04 00:06:36 +02:00
Christoph Oelckers
b0c1140649 - fixed bad default for viewDrawText's alpha.
Like so many other things in Build the concept of alpha is hopelessly stupid and really makes no sense, and this was carried over here.
2020-08-03 21:26:19 +02:00
Christoph Oelckers
4bab061bd0 - removed some dead code from SW. 2020-08-03 20:53:00 +02:00
Christoph Oelckers
d526c6401f - use the generic cheat system for Blood. 2020-08-03 20:51:31 +02:00
Christoph Oelckers
d729bc898c - fixed character counter in MakeUTF8. 2020-08-03 20:18:33 +02:00
Christoph Oelckers
724c811de3 - Moved message storage to the map records. 2020-08-03 20:16:32 +02:00
Christoph Oelckers
35a5c4e23c - undid hardcoded coupling of Mapinfo slots with episode/level pairs in Blood.
This both lifts the imposed limit of 16 levels and will allow dynamic management of global mapinfo data.
2020-08-03 20:11:30 +02:00
Christoph Oelckers
d87f0dc0b0 - uninitialized variable fixed 2020-08-03 20:07:23 +02:00
Christoph Oelckers
0036402be8 - removed most of the network code in Blood.
Mainly to expose the parts that still get used in single player because there's some problems here that need addressing.
ENet is also gone now.
2020-08-03 20:06:27 +02:00
Christoph Oelckers
dea0804f9a - how could this compile? 2020-08-03 19:14:33 +02:00
Christoph Oelckers
825b286424 - removed some redundant parts in level.cpp
Let's use the underlying data directly.
2020-08-03 19:11:48 +02:00
Christoph Oelckers
5704c57fe0 - changed the byte order swappers to use ZDoom's versions
This is to reduce redundancy, plus, these are native on Windows and macOS.
2020-08-03 19:09:57 +02:00
Christoph Oelckers
3c8da8c421 - moved LocalKeys to controls.cpp
to consolidate input code in one file.
2020-08-03 19:08:49 +02:00
Mitchell Richters
7493d4e334 - remove unused getters from player_struct. 2020-08-03 23:01:53 +10:00
Mitchell Richters
aead65183c - draw the crosshair using getHalfLookAng() inline function, making use of its double precision and optionally interpolated result. 2020-08-03 22:56:43 +10:00
Mitchell Richters
d3d9bb0823 - partially revert 19e4393a4f by adding the player's mouse input after calculating the true pitch of p->q16horiz.
* Need to add `p->horizAdjust` in with `p->q16horiz` because the values passed to that variable are the same as what would have been directly added to `p->q16horiz` in `processinput()`.
* Leaving mouse input to apply after calculating the pitch lets us take advantage of the calculated pitch's accuracy to provide consistent mouse input across the pitch's range.
2020-08-03 22:39:09 +10:00
Mitchell Richters
1556e80dd2 - apply same RR horizon workaround from e474ebc2b7 for when cl_syncinput 1 is set for angle as well. 2020-08-03 22:31:44 +10:00
Mitchell Richters
19e4393a4f - add all the horizon values before converting into true pitch inside sethorizon(). 2020-08-03 22:13:10 +10:00
Mitchell Richters
573cb363ae - add new weapon interpolation variable from player_struct into savegame code. 2020-08-03 21:26:28 +10:00
Mitchell Richters
e474ebc2b7 - multiple input fixes for both games, and for both cl_syncinput 0 and cl_syncinput 1 modes.
* For RR, `processweapon_r()` was performing angle and horizon changes directly which provided a harsh experience with the default `cl_syncinput 0` mode.
* Added `angAdjust` variable to `player_struct` for use with ticrate angle adjustments.
* Renamed `horizAngleAdjust` to `horizAdjust` so that there is less confusion with the new `angAdjust` variable.
* Removed `horizSkew` variable, can just use `horizAdjust` for this.
* Replaced all calls to `addang()` and `addhoriz()` with the appropriate additions/subtractions to `angAdjust` and `horizAdjust` respectively.
* Removed now unused `addang()` and `addhoriz()` setters from `player_struct`.
* Define new function `resetinputhelpers()` to eliminate code duplication between `processinput_d()` and `processinput_r()` functions.
* Remove `p->q16ang` and `p->q16horiz` direct setting from `FinalizeInput()`.
* Change `applylook()` to accept an `fixed_t adjustment` for changing the player's angle. This can either be `input.q16avel` when `cl_syncinput` is 0, or `sync[snum].q16angvel` when `cl_syncinput` is 1.
* Change `sethorizon()` to accept an `fixed_t adjustment` for changing the player's horizon. This can either be `input.q16horz` when `cl_syncinput` is 0, or `sync[snum].q16horz` when `cl_syncinput` is 1.
* Re-work `sethorizon()` to always adjust `p->q16horiz` using the true pitch code. This closer resembles the EDuke32 implementation as per SVN 7342.
* Re-work returning to center to work off the true pitch code and always ensure that the player returns to center.
* Implement work-around for RR where we need to call `sethorizon()` before the call to `fi.doincrements()` like the original game, but also after the call to `processweapon()` to apply any angle or horizon changes due to weapon recoil, etc. We work around this by calling `sethorizon()` from within `doincrements_r()` only if `cl_syncinput` is 1 and only if `doincrements_r()` is to return 1.
2020-08-03 21:19:45 +10:00
Mitchell Richters
d9fab07c31 - interpolate p->hard_landing for RR. 2020-08-03 17:27:09 +10:00
Mitchell Richters
c600295c93 - apply same fix from c63564eb7a for returning interpolated value for the player's q16horiz - q16horizoff if cl_syncinput is true.
* Also changed `gethalflookang()` to camel case `getHalfLookAng()` for easier reading.
* Also broke a very long if statement down into smaller chunks for readability.
2020-08-03 17:06:28 +10:00
Mitchell Richters
c63564eb7a - replace lookanghalf() player_struct getter with inline that can accept cl_syncinput as a bool for whether to return an interpolated calculation or not.
New HUD was being let down by using an uninterpolated `q16look_ang` regardless of whether `cl_syncinput` was true.
2020-08-03 16:27:14 +10:00
Mitchell Richters
6bd050e201 - fix some interpolation harshness with p->weapon_pos. 2020-08-03 15:06:25 +10:00
Mitchell Richters
7efa905a01 - fix some interpolation harshness with p->kickback_pic. 2020-08-03 15:06:25 +10:00
Mitchell Richters
531df48d38 - interpolate p->hard_landing for Duke 3D. 2020-08-03 15:06:25 +10:00
Mitchell Richters
43ff42b330 - interpolate p->random_club_frame for Duke 3D. 2020-08-03 15:06:25 +10:00
Mitchell Richters
038039eb3f - interpolate p->kickback_pic for Duke 3D. 2020-08-03 15:06:25 +10:00
Mitchell Richters
8cc4b5062a Revert "- remove duplicate line.". In hindsight, I believe this was by design.
This reverts commit 6fd6926d8d.
2020-08-03 15:06:25 +10:00
Mitchell Richters
6ad3237b62 - backup p->kickback_pic in prep for interpolation and tidy up other weapon interpolation variables. 2020-08-03 15:06:25 +10:00
Mitchell Richters
11a10c1d87 - change calc_smoothratio() inline function from int to double that was missed in 0c12436092. 2020-08-03 11:57:39 +10:00
Mitchell Richters
034d6e129a - always calculate smoothratio while paused, but only return it during play. This is so the time keeps elapsing and you don't get a large delta between the first call back to CalcSmoothRatio() after the previous call. 2020-08-03 11:54:59 +10:00
Mitchell Richters
5792a2389a - consistency cleanup with a use of calcSinTableView() use within hudweapon_d.cpp. 2020-08-03 11:07:55 +10:00
Mitchell Richters
80291f9cb7 - For RR, pass vehicle TiltStatus through to backend as the double that it is. 2020-08-03 11:06:23 +10:00
Mitchell Richters
8526bd6a17 - interpolate weapon HUD for RR and make full use of calcSinTableValue()'s double precision. 2020-08-03 11:05:41 +10:00
Mitchell Richters
48e4bccc6d - oops. Missed change of hudDraw() zDelta from int to double while implementing ae2d2c7948. 2020-08-03 10:23:15 +10:00
Mitchell Richters
348acf95e0 - change division of delta between currentTime and lastTime from 8 to 72 to ensure smoothratio doesn't clip at 65536.
* Divisor of delta is there so smoothratio always starts off with some kind of value. After 10 minutes at 1100 fps, closest final result to 65536 was:

ototalclk: 4573
totalclk: 4576
gametics: 33.333 ms
elapsedTime: 33.331 ms
ratio: 0.999938
result: 65531.941356
2020-08-03 10:00:06 +10:00
Mitchell Richters
70794df76c - remove bitwise & operations on calls to calcSinTableValue() since they're no longer necessary, and remove last use of sintable[] from hudweapon_d.cpp. 2020-08-03 09:19:14 +10:00
Mitchell Richters
ae2d2c7948 - interpolate zDelta with higher precision from updated CalcSmoothRatio() function that returns a double instead of an int. 2020-08-03 09:07:19 +10:00
Mitchell Richters
61820ddef5 - interpolate bobx and boby with higher precision from updated CalcSmoothRatio() function that returns a double instead of an int. 2020-08-03 08:50:48 +10:00
Christoph Oelckers
8a31e96602 - use all available precision to render Blood's weapon animations mpre smoothly, instead of throwing it away by needlessly storing it in some integer fields. 2020-08-03 00:25:40 +02:00
Christoph Oelckers
be9402c4e0 - fixed Blood not accepting any input after loading a saved game. 2020-08-03 00:10:18 +02:00
Christoph Oelckers
38616d90a3 - renamed some members of Blood's EPISODEINFO struct. 2020-08-02 23:47:21 +02:00
Christoph Oelckers
e434df5328 - always play menu sounds by calling M_MenuSound to check the menu_sounds CVAR. 2020-08-02 22:16:26 +02:00
Christoph Oelckers
d083e12967 - added the "back" sound to the menu. 2020-08-02 22:14:58 +02:00
Christoph Oelckers
8acc4101be - simplified calcSinTableValue and inlined it.
There's no need for all this magic voodoo - the sin function already returns the proper values all by itself.
2020-08-02 22:03:22 +02:00
Christoph Oelckers
9606601554 - wraooed "q16look_ang / (2. * FRACUNIT)" in an inline function.
No need to write it out each time, this wpuld be a nightmare if it ever had to be refactored.
2020-08-02 21:45:57 +02:00
Christoph Oelckers
6a305748ff - removed some C cruft from compat.h. 2020-08-02 21:25:03 +02:00
Mitchell Richters
0bcb37860a - interpolate p->weapon_pos for smooth switching of weapons. 2020-08-02 21:20:54 +02:00
Mitchell Richters
85dcffc442 - use new fmulscale16() static inline for high precision interpolation in place of manual code. 2020-08-02 21:20:54 +02:00
Mitchell Richters
3d165ee182 - extend mulscale/divscale pragmas with double versions of each. 2020-08-02 21:20:54 +02:00
Mitchell Richters
9c8593018b - define new function calcSinTableValue() to calculate an equivalent sintable[] entry.
* Returns a true double result.
* Also supports fractional input for fractional input. That is, if `sintable[1]` = 50 and `sintable[2]` = 100, `calcSinTableValue(1.5)` = 75.
* Increased precision of `BANG2RAD` define to use double and not float.
* As such, revert addition of `sintablef[]`.
2020-08-02 21:20:54 +02:00
Mitchell Richters
abb23a7bd0 - fix remaining interpolation issue with weapon swaying when taking off again from a stand-still. 2020-08-02 21:20:53 +02:00
Mitchell Richters
6fd6926d8d - remove duplicate line. 2020-08-02 21:20:53 +02:00
Mitchell Richters
11b3f5a78a - increase precision of local variable x for displaypistol(). 2020-08-02 21:20:53 +02:00
Mitchell Richters
184465460e - make full use of sintablef[2048]. 2020-08-02 21:20:53 +02:00
Mitchell Richters
977ddc5aa8 - make full use of Q16.16 resolution for player's angle and horizon values. 2020-08-02 21:20:52 +02:00
Mitchell Richters
3a4a224877 - interpolate p->weapon_sway. 2020-08-02 21:20:52 +02:00
Mitchell Richters
4499e05b06 - pass smoothratio through to displayweapon(). 2020-08-02 21:20:52 +02:00
Mitchell Richters
0c12436092 - change returned value for CalcSmoothRatio() from int to double and pass through to displayrest() for future use with displayweapon().
* `displayrooms()` ultimately should be adjusted as well. For now, just relying on integer truncation as this is just a proof of concept.

# Conflicts:
#	source/core/gamecontrol.cpp
#	source/core/gamecontrol.h
2020-08-02 21:20:52 +02:00
Mitchell Richters
4301706e00 - promote fclamp() and fclamp2() to double. 2020-08-02 21:20:06 +02:00
Mitchell Richters
7b8e40c7e1 - create sintable sintablef[2048] as sintables of doubles.
* Also change BANG2RAD define to be a double and not a float.
2020-08-02 21:20:06 +02:00
Christoph Oelckers
18c3d9b240 - get the frame time right at the start of the frame, not when performing interpolations.
This is to factor think time out of the time span between frames and to avoid changes if the smoothratio gets calculated multiple times.
2020-08-02 21:16:01 +02:00
Mitchell Richters
3861064f62 - use 1/8 of delta time as initial elapsed time when calculating smoothratio on a new ototalclk.
* Pushes final result closer to 65536 and always ensures smoothratio never starts at 0.
2020-08-02 20:57:09 +02:00
Mitchell Richters
4830989d32 - remove all code used to get current display's refresh rate.
* Serves no purpose in Raze or GZDoom and appears to only have been added to the backend to facilitate the older interpolation code that was excised in 893686709b.
2020-08-02 20:57:09 +02:00
Mitchell Richters
f8952d5cae - directly cast steady_clock::now() to nanoseconds instead of microseconds then multiplying by 1000. 2020-08-02 20:57:08 +02:00
Mitchell Richters
5000fde281 - restore legacy interpolation path behind CVAR cl_legacyintrpl.
* Hoping the old path being available will allow the new code to be merged.
* Applied offset to sum of `(totalclk - ototalclk)` of 0.5 to ensure calculated smoothratio under legacy path always returns a value.
* For the above, consider Duke 3D with 4 game tics per ticrate, the returned values would be:
0
16384
32768
49152
* With offset of 0.5, the following values are returned depending on how far advanced `totalclk` is from `ototalclk`:
8192
24576
40960
57344
2020-08-02 20:57:08 +02:00
Mitchell Richters
0aca26e197 - determine smoothRatio immediately after a potential change to ototalclock has occurred. 2020-08-02 20:57:08 +02:00
Mitchell Richters
52d9fd4cda - add cl_debugintrpl CVAR to print interpolation information to the console.
* Also revert back to use of `xs_CRoundToInt()` that was accidentally removed previously.
2020-08-02 20:57:08 +02:00
Mitchell Richters
1cf857e788 - create an enum for MaxSmoothRatio and replace multiple hard-coded uses of '65536' constant. 2020-08-02 20:57:08 +02:00
Mitchell Richters
733f3aa490 - increase granularity of CalcSmoothRatio(). 2020-08-02 20:57:07 +02:00
Christoph Oelckers
00ecea47aa - use CCMDs for input in Blood where appropriate. 2020-08-02 20:44:37 +02:00
Christoph Oelckers
4a049c1a4d - split sprite animation off view.cpp 2020-08-02 19:59:14 +02:00
Christoph Oelckers
e2498a53a9 - split Blood prediction code into its own file. 2020-08-02 19:43:45 +02:00
Christoph Oelckers
a9820abcae - migrated the remaining 2D content in Blood away from rotatesprite. 2020-08-02 19:00:32 +02:00
Christoph Oelckers
4e9ea9ef60 - fixed bad merge from some time agp. 2020-08-02 18:12:43 +02:00
Christoph Oelckers
1392f4db01 - handle the view frame with backend features. 2020-08-02 18:02:13 +02:00
Christoph Oelckers
fc390e244f - background for text screens. 2020-08-02 17:45:03 +02:00
Christoph Oelckers
1150e3ee0d - removed unused stuff from screen.cpp and deleted screen.h. 2020-08-02 13:54:36 +02:00
Christoph Oelckers
7846178130 - missed this... :( 2020-08-02 13:53:14 +02:00
Christoph Oelckers
3a32e8840f - ported Blood's status bar to the Status bar class.
Now it allows downscaling just like Duke's.
2020-08-02 13:35:34 +02:00
Christoph Oelckers
b259b94300 - implemented status bar scale control for Blood. 2020-08-02 08:48:23 +02:00
Christoph Oelckers
cc8798f6e2 - preparations for rendering Blood's status bar through the Statusbar class. 2020-08-02 08:39:51 +02:00
Christoph Oelckers
49a25c417b - split Blood's status bar code off into its own file. 2020-08-01 21:23:33 +02:00
Christoph Oelckers
ec846a3e63 - fixed shadows on Blood's text. 2020-08-01 20:07:32 +02:00
Christoph Oelckers
9dac66b6f0 - fudging for the broken FIRE animation.
Unfortunately the only thing that can be done here from inside the engine is to increase the likelihood of the animation actually starting.
Ideally the broken script should be replaced but with the way CON replacements are done this is not possible.
2020-08-01 17:54:38 +02:00
Christoph Oelckers
4332d02885 - fixed sound playback for doors etc.
The play code locked out the MUSICANDSFX actor but never properly checked for the sound being finished.
Fixes #87
2020-08-01 11:56:02 +02:00
Christoph Oelckers
76ba45ac8d - fixed the reactor for good.
Fixes #70
2020-08-01 09:55:48 +02:00
Christoph Oelckers
f75d30d858 - partial reactor fix.
This fixes the position of the debris - but there's still something else as the lightning beam still doesn't get removed.
2020-08-01 01:04:17 +02:00
Christoph Oelckers
c7c59d33ff - always set the spam timer when a quote is supposed to be printed, even if it gets rejected. 2020-07-31 21:16:07 +02:00
Christoph Oelckers
6d24a20f5c - QUOTE_DEAD may never repeat.
This gets spammed hard enough to get past the timer filter.
2020-07-31 21:14:43 +02:00
Christoph Oelckers
2f94ae8160 - removed Blood's message display.
We'll use the common one in c_console from now on.
2020-07-31 21:06:56 +02:00
Christoph Oelckers
a12cdf849e - fixed text in the menu 2020-07-31 21:05:57 +02:00
Christoph Oelckers
7bf3d5186f - Blood font refactoring. 2020-07-31 21:05:09 +02:00
Christoph Oelckers
5bae2fcef5 - moved global include out of namespace. 2020-07-31 21:04:28 +02:00
Christoph Oelckers
713c41c0a9 - fixed bad ordering of directives. 2020-07-31 21:03:23 +02:00
Christoph Oelckers
b6cb0ce1a1 - consolidated shade to light conversion 2020-07-31 20:58:55 +02:00
Christoph Oelckers
b308e730ea - started replacing rotatesprite with DrawTexture.
As an added bonus, thia now allows stretching the menu caption box for longer texts, rotatesprite could not do that.
2020-07-31 20:39:02 +02:00
Mitchell Richters
f0e0a3db41 - quick and dirty fix to get SW menu input cranking again (mostly for testing PR #77 under SW since it's the only game with a clock of 120/3). 2020-07-31 16:26:16 +10:00
Mitchell Richters
24b0e4438e - Reset p->oq16horizoff to p->q16horizoff in resetplayerstats(). 2020-07-31 14:23:58 +10:00
Mitchell Richters
ecf8bb699a - Reset p->oq16look_ang to p->q16look_ang in resetplayerstats(). 2020-07-31 14:21:10 +10:00
Christoph Oelckers
d0909b8224 - calculate proper distances in the sound code.
The original code didn't factor in that z has a different scale than x and y and use a function  with severe precision issues.
Fixes #81
2020-07-31 00:08:39 +02:00
Christoph Oelckers
0ac11955df - improve message spam prevention. 2020-07-30 21:09:11 +02:00
Christoph Oelckers
6980c64f7b - BONUS_SPEECH1-4 are not continuous.
Fixes #83
2020-07-30 18:36:52 +02:00
Mitchell Richters
02dfa10d27 - remove redundant if statement left over from 2260c2353d. 2020-07-30 08:49:01 +10:00
Mitchell Richters
2260c2353d - re-factor interpolation backups into discrete functions for calling from multiple places.
Fixes #66.
2020-07-30 08:24:27 +10:00
Christoph Oelckers
5ed624a48d - Blood: stop music before showing the summary screen. 2020-07-29 23:39:37 +02:00
Christoph Oelckers
347ed51036 - refactored Blood's main loop.
* moved Smacker video playing code into the backend, so now all games can play all supported video formats
* logos and level intro/exit videos use ScreenJob
2020-07-29 23:18:08 +02:00
Christoph Oelckers
0958bccade Disabled all adult censoring in Duke and RR.
Aside from being "authentic" the parental lock is just a stupid feature with often unwanted side effects.
2020-07-29 22:43:06 +02:00
Christoph Oelckers
5faf202b97 - fixed missing speech at the end of E1L2.
This was caused by a broken check for adult mode.
Fixes #33.
2020-07-29 22:40:29 +02:00
Christoph Oelckers
e9b3e8ae09 - when in single player, always play talk sounds from the player actor.
It seems some places manage to play these sounds from undefined actors that may or may not be in range.
Fixes #75
2020-07-29 22:26:14 +02:00
Christoph Oelckers
a861126657 - fixed incorrect sprite being passed to reactor() function. 2020-07-29 20:59:32 +02:00
Christoph Oelckers
bd3b2bc5bf - always align the "loogies" to a virtual 320x200 screen to render them consistently. 2020-07-29 20:04:57 +02:00
Christoph Oelckers
fb184388a2 - un-spam the "protective boots on" message
Fixes #72
2020-07-29 19:38:21 +02:00
Christoph Oelckers
5776f69d92 - transfer palette to gibs for LIZTROOP
EDuke did it for all actors - not sure if that is right. Needs checking.
2020-07-29 19:31:24 +02:00
Mitchell Richters
9f391c3e9f - possible fix for continual rotscrnang thrashing when dead that was reported in #66. 2020-07-29 18:57:06 +10:00
Mitchell Richters
9c1faaa3ac - scaling consistency changes from uplifting Redneck Rampage HUDs. 2020-07-29 18:36:50 +10:00
Mitchell Richters
d72e69ac55 - FullscreenHUD1 tweaks for Redneck Rampage. 2020-07-29 18:36:23 +10:00
Mitchell Richters
f2fca857be - FullscreenHUD2 tweaks for Redneck Rampage. 2020-07-29 15:38:56 +10:00
Mitchell Richters
b77a0809fa - Statusbar tweaks for Redneck Rampage. 2020-07-29 15:09:08 +10:00
Mitchell Richters
742fab83df - properly scale imgWeap x position based on length of ammo string.
* Simple divisor based on length of string was insufficient, ammo sprite was too close to ammo count when ammo string length was 1-2.
* Using chain-cannon with ammo levels at 100, 10 and 1, at 2560x1440 the sprite is always 48px from the 1 in the ammo count.
2020-07-29 14:13:35 +10:00
Mitchell Richters
72c4a5281c - move inventory item used amount down 0.5px in Duke FullscreenHUD1 to perfectly line it up. 2020-07-29 09:17:57 +10:00
Mitchell Richters
1fc117341e - add oq16ang to weaponhit struct to allow interpolation of security cameras at full precision.
* Improves implementation from f64083bda9.
2020-07-29 08:39:33 +10:00
Mitchell Richters
843cc94b6f - readability improvements for all the long-winded interpolation code. 2020-07-29 07:10:28 +10:00
Mitchell Richters
f64083bda9 - backport camera interpolation from DukeGDX. Fixes #63. 2020-07-29 06:57:01 +10:00
Christoph Oelckers
10e4482245 - fixed counter on summary screen. 2020-07-28 22:37:11 +02:00
Mitchell Richters
c26ab9fc36 - left-align health and armor values. Proportionally space ammo sprite depending on length of ammo string (15px * format.Len()). 2020-07-28 22:19:13 +02:00
Mitchell Richters
23c24b01a4 - new alignment for Fullscreen HUD1. 2020-07-28 22:19:13 +02:00
Mitchell Richters
6626323e3e Revert "- possible fix for continual rotscrnang thrashing when dead that was reported in #66." What was I thinking?
This reverts commit e019939590.
2020-07-29 05:50:19 +10:00
Mitchell Richters
9b51e29d20 Revert "Revert "- removed duplicate application in moving down code for the jetpack.". What was I thinking?"
This reverts commit 3b522e4c50.
2020-07-29 05:50:06 +10:00
Mitchell Richters
3b522e4c50 Revert "- removed duplicate application in moving down code for the jetpack.". What was I thinking?
This reverts commit 34b213a99f.
2020-07-29 05:49:38 +10:00
Christoph Oelckers
ea28356971 - avoid spamming the "Squished!" message. 2020-07-28 21:44:55 +02:00
Christoph Oelckers
34b213a99f - removed duplicate application in moving down code for the jetpack.
Fixes #62
2020-07-28 21:41:37 +02:00
Mitchell Richters
e019939590 - possible fix for continual rotscrnang thrashing when dead that was reported in #66. 2020-07-29 05:37:46 +10:00
Christoph Oelckers
3bcef7d587 - disable transparency testing, unless explicitly requested.
Fixes #60
2020-07-28 21:28:10 +02:00
Christoph Oelckers
b49d04fd6e - fixed: The video player did not check the sound CVARs.
Fixes #58
2020-07-28 21:05:14 +02:00
Christoph Oelckers
7e8688ae2d - fixed snd_channels menu entry.
Fixes #57
2020-07-28 20:59:17 +02:00
Christoph Oelckers
d531f4b029 - reduce message spam when holding down the quick_kick button.
If not kept in check this will flood the console with endless messages.
2020-07-28 20:43:33 +02:00
Christoph Oelckers
a2ff8b3354 - removed JFDuke-based kill count reduction for slimers because it doesn't seem to work right. 2020-07-28 20:31:08 +02:00
Mitchell Richters
27b3c8e0f8 - fix interpolation for p->q16rotscrnang. Setting p->oq16rotscrnang in displayrooms() (at frame rate) isn't where it should be done. 2020-07-28 22:24:30 +10:00
Mitchell Richters
f49ded7962 - make cl_syncinput work for Duke.
* Current setup was broken and unusable.
* Fixed interpolation issues.
* Only call `GetInput()` at frame-rate when `cl_syncinput` is 0.
* Create `oq16look_ang` and interpolate it for enhanced smoothness.
* Always reset `horizAngleAdjust` and `horizSkew` in `processinput_d()`.
* Don't pre-scale `sb_avel` in `processinput_d()` and `processinput_r()`.
* Promote `p->angvel` from short to fixed_t.
* Don't descale `sync[snum].q16horz` in `processinput_d()` and `processinput_r()`.
* Ensure `false` bool is provided to `sethorizon()` call  in `processinput_d()` and `processinput_r()`.
* Reset `p->q16angvel` in `resetplayerstats()`.
2020-07-28 22:12:09 +10:00
Mitchell Richters
158fd46581 - change Duke's synchronized_input to CVAR cl_syncinput. 2020-07-28 21:38:28 +10:00
Mitchell Richters
4a3366d798 - slight pixel tweaks to FullscreenHUD2 and original status bar. 2020-07-28 16:47:34 +10:00
Mitchell Richters
ea98978ae7 - move p->wackedbyactor chase-cam code into applylook() for increased smoothness. 2020-07-28 12:30:09 +10:00
Mitchell Richters
baed75ff8a - move p->actorsqu angle changes from moveplayers() to applylook() so that it can be applied when not running synchronous input.
Fixes #54.
2020-07-28 12:21:35 +10:00
Christoph Oelckers
e345bf389f - removed some inactive pieces of code. 2020-07-28 00:05:56 +02:00
Christoph Oelckers
92d94543e5 - removed the Blood demo code as it won't be usable in this form anyway. 2020-07-28 00:01:16 +02:00
Christoph Oelckers
74c4bbc0e0 - preparations for refactoring Blood's HUD drawer, mainly to pass the palette explicitly to the drawers. 2020-07-27 23:29:10 +02:00
Christoph Oelckers
ecdc92e6b9 - copied some changes to kill count management from DukeGDX. 2020-07-27 20:53:31 +02:00
Christoph Oelckers
8a92ecb70c - some minor reordering of code to only have one call to credLogosDos. 2020-07-27 19:45:34 +02:00
Christoph Oelckers
709dac7c37 - more Polymer leftover. 2020-07-27 19:39:27 +02:00
Christoph Oelckers
c7fca86cf5 - removed incomplete Polymer code from Blood.
Looks like this was abandoned - this was still mostly Duke3D code
2020-07-27 19:38:58 +02:00
Christoph Oelckers
218a9c84fd - removed the last remaining Blood helpers from the file system, also deleted a few short files whose contents could be moved. 2020-07-27 19:38:41 +02:00
Christoph Oelckers
5f14153f3b - deleted declaration of deleted function. 2020-07-27 19:37:59 +02:00
Christoph Oelckers
dcd773ed9d - removed some unused pieces of code. 2020-07-27 19:37:58 +02:00
Christoph Oelckers
4e3ad09d70 - merged 5 more headers into misc.h.
These small header files are really counterproductive, file count has already gone down from 143 to 106.
2020-07-27 19:37:17 +02:00
Christoph Oelckers
b2f794bde5 - cache QAVs outside the file system as well.
- delete some voxel code that's software rendering only.
- apply Big Endian byte swapping for SFXs, as well, now that this no longer involves hacking the file system cache.
2020-07-27 19:37:02 +02:00
Christoph Oelckers
b804589f81 - implemented a proper cache for Blood's SEQs.
Messing around in the file system cache should be a no-go, so now it's no longer done.
This also allows reenabling the byte swapping needed for Big Endian.
2020-07-27 19:28:54 +02:00
Christoph Oelckers
bbbd7fadbb - merged several of Blood's smaller headers. 2020-07-27 19:17:13 +02:00
Christoph Oelckers
ab9854a215 - merged the 3 sound related headers in Blood. 2020-07-27 19:17:13 +02:00
Christoph Oelckers
dfda0c9cb2 - rewrote Blood's map loader to use FileReader directly instead of implementing its own wrapper around the lump cache.
Also deleting a few other unused files.
2020-07-27 19:17:00 +02:00
Christoph Oelckers
aea6467d00 - call D_ProcessEvents in Blood's main loop. 2020-07-27 19:12:49 +02:00
Christoph Oelckers
63f4d82aeb - removed the 8 pixel offset for the Scuba Gear in display modes with reduced viewport size.
I have no idea why this was originally done, it makes no sense.
Fixes  #50
2020-07-27 18:59:05 +02:00
Christoph Oelckers
94b445db26 - The bonus screen's counter is a bit broken so help it to actually play Duke's speech.
(Hopefully) fixes #44
2020-07-27 18:17:40 +02:00
Christoph Oelckers
371a808d9e - set MP taunt texts as CVAR defaults to ensure they won't get deleted by user actions. 2020-07-27 18:12:24 +02:00
Christoph Oelckers
400169ef5e - do not activate the inventory when giving all items.
Fixes #45
2020-07-27 18:02:39 +02:00
Christoph Oelckers
d177b0cd29 - fixed hud_messages 1 not sending messages to the notfy display.
Fixes #43
2020-07-27 17:56:55 +02:00
Christoph Oelckers
2d3bf87eff - ported EDuke32's trip bomb fix
Still needs to be tested.
2020-07-27 17:52:17 +02:00
Mitchell Richters
4dc161cc08 - fix hands for Duke3D while shrunken. Unsure how to trigger this code path in RR, but for Duke3D hud_draw() is only used when drawing the fists.
* Fixes #40.
2020-07-27 18:39:33 +10:00
Mitchell Richters
31b7e7fa3d - revert some inline if statement conversions when re-creating dobonus() as a ScreenJob.
* Inline if statements were applying `DrawTexture()` calls to cases where they were not being called before, affecting animation.
* Repaired issue where with high frame rates, the code behind `if (totalclock > (1000000000L) && totalclock < (1000000320L))` wasn't triggered because `totalclock` hadn't become `1000000001` yet.
* Fixes #34.
2020-07-27 17:51:36 +10:00
Christoph Oelckers
4836744d26 - language update. 2020-07-26 23:27:39 +02:00
Christoph Oelckers
c0d46f6a69 - implemented proper scaling for the status bar.
Addresses #2.
2020-07-26 23:06:27 +02:00
Christoph Oelckers
530debd24b - properly increment the instruction pointer in 'endofgame'.
This made the bosses disappear after death, fixes #38
2020-07-26 21:28:42 +02:00
Christoph Oelckers
102f473821 - clear the input state before starting a cutscene to ensure that it won't get skipped by residual input data. 2020-07-26 19:55:06 +02:00
Christoph Oelckers
8af4cfd772 - skip all 3 parts of the E4 intro together.
Fixes #39.
2020-07-26 18:39:18 +02:00
Christoph Oelckers
b120bade95 - fixed scuba gear display.
Fixes #37.
2020-07-26 18:35:47 +02:00
Christoph Oelckers
feffc7c5c2 - fixed: The level number for a secret exit is 1-based, not 0-based as the internal map data.
Fixes #35.
2020-07-26 18:13:21 +02:00
Christoph Oelckers
c8cde7fb3b - stop sound in all paths of the ANM player.
Fixes #36.
2020-07-26 18:02:24 +02:00
Christoph Oelckers
775eabcd3d - fixed incorrect 'twodonly' flag set for the base palettes.
This let the palette creator skip all translations for the water and slime palette. Fixes #28.
2020-07-26 17:56:33 +02:00
Christoph Oelckers
07a7cade70 - removed dead weaponswitch variable 2020-07-26 17:55:22 +02:00
Christoph Oelckers
f67d3270d8 - fixed a few cheat issues.
Fixes #29.
2020-07-26 17:04:02 +02:00
Christoph Oelckers
5870d3d89d - horizSkew is fixed point, dokneeattack ignored that.
fixes #14
2020-07-26 13:49:25 +02:00
Christoph Oelckers
af970b091e - set proper game state after ending the level summary screen.
Fixes #20.
2020-07-26 12:43:32 +02:00
Christoph Oelckers
b111ca5f96 - fixed the summary screen animation.
Fixes #21.
2020-07-26 12:31:20 +02:00
Christoph Oelckers
6e276545cd - fixed typo in savegame metadata reader and an issue with code execution order when exiting a level. 2020-07-26 12:15:24 +02:00
Christoph Oelckers
1207e02e5d - removed debug output. Fixes #24. 2020-07-26 11:48:08 +02:00
Christoph Oelckers
54d3d8e96d - play the camera switch sound as a UI sound to reduce problems.
Due to how sound positioning works, doing this in 3D will cause various problems with cameras too far away or random bleeps emanating from the cameras.
2020-07-26 11:44:31 +02:00
Christoph Oelckers
342b90c8f9 - fixed: With hud_messages == 1 no messages were printed. 2020-07-26 10:31:12 +02:00
Christoph Oelckers
8643459cbe - re-added EDuke32's last_quick_kick to remove flicker during the animation. Fixes #7. 2020-07-26 10:18:55 +02:00
Mitchell Richters
f67a53a7c0 - fix sound and music pausing with tweaks to updatePauseStatus(). Also removed unneeded game-side function. Fixes #11. 2020-07-26 17:20:53 +10:00
Christoph Oelckers
c7a9b5678b - reimplemented autoaim mode 2 (hitscan only) 2020-07-26 09:06:08 +02:00
Christoph Oelckers
efb73d04a0 - re-fixed the fix: Turned out that flipped offsetting is a bit more tricky.
Due to how this works it cannot be done automatically, it must be passed as a parameter because at the point where the offset gets applied, all information about how it was specified is lost.
This must be enabled as a specific parameter to DrawTexture.
2020-07-26 08:31:54 +02:00
Christoph Oelckers
2ea9811e0a - fixed offsetting for flipped 2D sprites and reverted the offset change for the trip bomb. 2020-07-26 08:08:15 +02:00
Mitchell Richters
35327ee3aa - fix pos of armor font and inventory icon.
* Inventory text color still requires discussion.
2020-07-26 07:53:14 +02:00
Mitchell Richters
c100e25578 - get Duke3D classic HUD pixel-perfect. 2020-07-26 07:53:14 +02:00
Mitchell Richters
dcf36f8f9d - fix right hand sprite when displaying trip mine HUD weapon. Fixes #13. 2020-07-26 15:03:14 +10:00
Christoph Oelckers
374a850565 - merged all of Blood's ai state headers together to reduce number of files and include clutter. 2020-07-25 17:56:39 +02:00
Christoph Oelckers
8a5427abed - fixed the cheat handler. 2020-07-25 17:25:21 +02:00
Christoph Oelckers
6df64f4ee3 - fixed RR status bar layout. 2020-07-25 16:43:03 +02:00
Christoph Oelckers
f7070f1e49 - fixed font alignment on the second fullscreen HUD variant. 2020-07-25 16:00:34 +02:00
Christoph Oelckers
654391a278 - fixed layout for classic Duke fullscreen HUD. 2020-07-25 15:41:11 +02:00
Christoph Oelckers
f9d48e1f68 - removed all the intermediate variables for the status bar size.
hud_size now gets used directly by the status bar code.
2020-07-25 13:26:56 +02:00
Christoph Oelckers
8d622f9340 - fixed wall switch check. 2020-07-25 10:54:46 +02:00
Christoph Oelckers
9043123aab - set proper engine compatibility mode. 2020-07-25 10:03:13 +02:00
Christoph Oelckers
a0cc798c9c - cleaned up the sound system interface to have consistent naming and no aliases. 2020-07-25 09:32:54 +02:00
Christoph Oelckers
30a0fcfe46 - disable rotation for hud_drawpal.
This was just a Build crutch to do x-flipping, with that being handled in the backend now the rotation angle must be 0.
2020-07-25 09:02:47 +02:00
Mitchell Richters
9fe3af370b - call renderSetRollAngle() with full precision for Duke. 2020-07-25 15:29:10 +10:00
Mitchell Richters
0d0636b0a7 - set p->TiltStatus in motoApplyTurn() to 0 if less than factor, not previous hard-coded constant.
* Backport of same fix in d0f839060e.
2020-07-25 09:51:52 +10:00
Christoph Oelckers
52cd2db4e7 - copied the flickering Coot fix from master. 2020-07-25 00:04:38 +02:00
Christoph Oelckers
bcb6c36ef2 - fixed bad parameter for EnableFog 2020-07-24 23:46:52 +02:00
Christoph Oelckers
3d36e4839f - implemented rotation for HUD sprites. 2020-07-24 23:23:19 +02:00
Christoph Oelckers
1e8b8443b0 - implemented 2D rotation and fixed offset calculation for drawing scaled sprites on the status bar. 2020-07-24 23:08:48 +02:00
Christoph Oelckers
e2de6d9dc3 - changed status bar drawer to pass the texture offsets to the low level code instead of adding them itself.
This is needed for rotating around the pivot point, if the offset is applied here the low level code cannot do the rotation properly anymore.
2020-07-24 21:08:33 +02:00
Christoph Oelckers
a4ef7596e7 - fixed screen blend. 2020-07-24 20:21:51 +02:00
Christoph Oelckers
b56f74bf32 - actually call the postAction callback for the screen job.
Fixes missing title music.
2020-07-24 20:11:50 +02:00
Christoph Oelckers
e9e4ebbfea - cleanup 2020-07-24 19:58:21 +02:00
Christoph Oelckers
d10bf41b03 - removed some obsolete stuff. 2020-07-24 19:44:05 +02:00
Christoph Oelckers
b9f0e35d4b - fixed the crosshair. 2020-07-24 19:43:33 +02:00
Christoph Oelckers
c457f1aa8c - hook up the sub-serializers. 2020-07-24 19:13:37 +02:00
Christoph Oelckers
25d383ac73 - re-enabled skipping of MVE movies which was disabled for easier debugging. 2020-07-24 19:05:34 +02:00
Mitchell Richters
93fae3e43d - fix a few remnant ang interpolation issues. 2020-07-24 22:20:04 +10:00
Mitchell Richters
d0f839060e - set p->TiltStatus in boatApplyTurn() to 0 if less than factor, not previous hard-coded constant. 2020-07-24 21:38:11 +10:00
Mitchell Richters
4bf5c3d6b5 - uplift boatApplyTurn() with changes from e0bc2c6c97.
* Handle button-mashing to provide a better experience.
* Rename `bike_turn` to `boat_turn`.
* Move application of scale to returning value within `boatApplyTurn()`.
* Use doubled return values like Rednukem (20 -> 40, 10 -> 20, 6 -> 12, 3 -> 6, 2 -> 4, 1 -> 2).
* Return `p->TiltStatus` towards 0 if `p->MotoSpeed` == 0 and `p->NotOnWater`.
* Always test if `p->TiltStatus` < `0.025`.
2020-07-24 21:27:47 +10:00
Mitchell Richters
e0bc2c6c97 - handle button-mashing in motoApplyTurn().
* If player was turning left and right, only left was returned. Now, both apply (effectively cancelling each other out.
* Move application of scale to returning value within `motoApplyTurn()`.
2020-07-24 20:46:20 +10:00
Mitchell Richters
230332338c - make RRRA motorbike turning speed consistent with varying framerates.
* Multiply returned value with scaleAdjust.
* Use doubled return values like Rednukem (20 -> 40, 10 -> 20, 3 -> 6).
2020-07-24 19:50:28 +10:00
Mitchell Richters
5bb7c7a647 - adjust elapsedInputTicks in GetInput() to be 1000.0 / REALGAMETICSPERSEC.
* 1000 / 30 = 33.333~. This ensures that if 33.333 is the minimum value, the calculation for scaleAdjust always equals 1.0 (no scaling).
2020-07-24 19:38:09 +10:00
Mitchell Richters
25ca23f2e2 - fix keyboard input fvel/svel more in line with Graf's coding style.
* Essentially reverts e41041074d and moves the use of `abs()` from keymove to fvel/svel itself.
2020-07-24 18:32:01 +10:00
Christoph Oelckers
940413524b - tweaks to synchronize video and audio with MVE. 2020-07-24 00:01:50 +02:00
Christoph Oelckers
200db367ec - fixed MVE audio by simplifying the audio buffer to a simple ring buffer of sufficient size. 2020-07-23 23:48:26 +02:00
Christoph Oelckers
75e8a71905 - some progress with sound. Still glitchy. 2020-07-23 23:22:09 +02:00
Christoph Oelckers
928a16983d - adapted the MVE player.
Video appears to work, but has quite severe artifacting  I cannot tell if it's the video or the decoder which causes it.
2020-07-23 22:26:07 +02:00
Mitchell Richters
f046c5eb6b - fix compiler warnings and actual issues with in-game horizon.
* Can't have a - operator on unsigned int in the binangle class.
* Changed fixed horiz class from unsigned to signed as in-game horizon is a signed integer.
2020-07-24 01:08:50 +10:00
Christoph Oelckers
945dbc9f7e Use type safe angle and horizon classes for the render interface
These need to be robust and not allow implicit conversions.
2020-07-23 17:03:11 +02:00
Christoph Oelckers
9742bc72aa - created a horizon class as well. 2020-07-23 17:02:59 +02:00
Christoph Oelckers
ab8006cc40 - make binaryangle.h compile. 2020-07-23 17:02:59 +02:00
Christoph Oelckers
be9094cb97 Silenced lots of warnings pointed out by XCode. 2020-07-23 17:02:59 +02:00
Christoph Oelckers
d16d8f0d0e - fixed issues reported by XCode 2020-07-23 17:02:59 +02:00
Mitchell Richters
eadb31f9cd - use REALGAMETICSPERSEC as maximum value for elapsedInputTicks in GetInput().
Hard-coded value of `10.0` was too low and was always being used instead of the value of `(now - lastCheck)`. This made `scaleAdjust` inaccurate and not fast enough.
2020-07-23 19:16:51 +10:00
Mitchell Richters
54d73ce9f8 - fix 'Quick Turn' for Duke. 2020-07-23 14:05:36 +10:00
Mitchell Richters
be0cbeed65 - ensure p->lookRight is reset to false in start checklook() like lookLeft is.
Repairs issue where player never returned to centre when they pressed the look right key.
2020-07-23 13:34:47 +10:00
Christoph Oelckers
253dea7610 - removed parsing_ifelse sanity check because it breaks compilation in a few case.
if there ever needed to be proof that CON is broken beyond repair this should be it, this will allow broken code to slip through the parser and apparently some scripts exploit this bug.
NAM's soldiers won't work with the 'proper' code.
2020-07-22 22:27:51 +02:00
Christoph Oelckers
7d414fcfa5 - binary angle class draft. 2020-07-22 21:16:29 +02:00
Mitchell Richters
77ff6f324c - ensure rotscrnang turns right when looking right.
Doesn't repair issue when looking right doesn't return again, will isolate and repair.
2020-07-22 20:44:16 +10:00
Mitchell Richters
e41041074d - ensure keyboard fvel/svel input never exceeds the range of keymove.
Repairs issue where keyboard input was accelerating to a value of 90 which was not possible in the original game.
2020-07-22 20:42:05 +10:00
Christoph Oelckers
368298d02d - enable the menu and console everywhere, except on the intro logos. 2020-07-22 00:42:50 +02:00
Christoph Oelckers
902fbf6f5d - got rid of MODE_TYPE since this will be handled in the backend in the future. 2020-07-21 22:59:24 +02:00
Christoph Oelckers
61f5247b71 -let's hope this will solve the pausing problem for good.
The checks for game pause were totally inconsistent, so now there is a utility function that tells whether the game is supposed to run or not.
pause can also take 3 values now - 0 for no pause, 1 for pause from opening the menu or console or 2 for hitting the pause button.
2020-07-21 22:46:26 +02:00
Christoph Oelckers
6227f9f7fd - optimizations for better savegame performance. 2020-07-21 21:32:38 +02:00
Christoph Oelckers
1869a7930e - hooked up the new savegame code.
Not tested yet.
2020-07-21 00:07:02 +02:00
Christoph Oelckers
9ace06ad81 . deleted the old savegame.h file. 2020-07-20 23:22:40 +02:00
Christoph Oelckers
7eb158bf72 - properly tabified everything. 2020-07-20 23:21:27 +02:00
Christoph Oelckers
ba7997b611 - implemented most of the savegame code and deleted the old one. 2020-07-20 23:07:44 +02:00
Christoph Oelckers
c16115d76c - first stage of new savegame code.
This also refactors the animateptr array into something serializable. This kind of pointer lookup is virtually unrestorable without creating platform locked savegames.
2020-07-20 20:40:29 +02:00
Christoph Oelckers
2d78643c4d - initial savegame work. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
06fa1391f5 - did some cleanup on the global variables. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
16efa87701 - started sorting variables in globals.h and removed player.h after cleaning it out. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
7d7ae9e463 - fixed gamestartup parser so that it can detect script versions again. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
3028b3f3fd - merged game.h into global.h and game.cpp into global.cpp.
Meaning that all global declarations are in one file now.
2020-07-20 18:43:50 +02:00
Christoph Oelckers
08909f414a - merged playerdata_t into player_struct 2020-07-20 18:43:49 +02:00
Christoph Oelckers
a40343ae00 - premap.h is also gone because it didn't contain anything relevant anymore. 2020-07-20 18:43:49 +02:00
Christoph Oelckers
c3fb679992 - more header cleanup work, macros.h is gone. 2020-07-20 18:43:49 +02:00
Christoph Oelckers
2dcaf25fea - put the entire CON parser into a class to make its state local to the caller 2020-07-20 18:43:49 +02:00
Christoph Oelckers
9346b5de7e - testing stuff. 2020-07-20 18:43:48 +02:00
Christoph Oelckers
f9842fc4a8 - implemented running screen jobs from the main loop.
The entire game now has only one single place where videoNextPage gets called.
2020-07-20 18:43:48 +02:00
Christoph Oelckers
e2e9c8ad01 - fixed the timer. 2020-07-20 18:43:48 +02:00
Christoph Oelckers
31b9995406 - rewrote the ScreenJob player as a class that can be called by an asynchronous dispatcher.
Works, except for timing issues with ANMs.
2020-07-20 18:43:48 +02:00
Mitchell Richters
2ce612e8ab - remove multiplier when finalising player's angle in FinalizeInput().
Not sure how this came to be but was causing rather accelerated angle adjustments compared to the stock game.
2020-07-20 20:38:38 +10:00
Christoph Oelckers
72bf70811e - restructured exitlevel for asynchronous handling of the summary screen. 2020-07-19 00:53:13 +02:00
Christoph Oelckers
a1001c5fdd - changed startnewgame to handle the screen jobs asynchronously. 2020-07-19 00:26:36 +02:00
Christoph Oelckers
a3e9ea97a8 - merged the two main loops into one.
Yet to do: Run the screen jobs from the main loop as well.
2020-07-18 23:50:46 +02:00
Christoph Oelckers
e97e663b49 - more restructuring of asynchronously playing sequences. 2020-07-18 22:38:19 +02:00
Christoph Oelckers
c767ead84f - properly route gameexitfrommenu through the callbacks. 2020-07-18 21:28:57 +02:00
Christoph Oelckers
ded0edae0c - fixed return_to_center 2020-07-18 14:30:17 +02:00
Christoph Oelckers
d88ae50923 - moved a few global variables around so that they don't get lost for handling savegames or a global state reset. 2020-07-18 13:38:16 +02:00
Christoph Oelckers
36d61fc662 - make sure that the static time counters in the input code do not accumulate while not in use.
The one for holding the turn key needs to be reset any time there is no turning and everything needs to be cleared when the input state is cleared. And all need to check for the case where the static state is not set yet.
2020-07-18 13:27:24 +02:00
Christoph Oelckers
e70115ff5c - put the CON interpreter into a class to get rid of its global variables. 2020-07-18 12:37:35 +02:00
Christoph Oelckers
28965eefd5 - moved the main loop to gameloop.cpp. 2020-07-18 11:56:49 +02:00
Christoph Oelckers
f9e76ba178 - merged the last two functions of the input code with input.cpp. 2020-07-18 09:59:16 +02:00
Christoph Oelckers
ac3925f64d - cleanup 2020-07-18 01:40:18 +02:00
Christoph Oelckers
ba69084aa5 - consolidated the movement block check after discovering that it wasn't handling things properly for all games. 2020-07-18 01:34:13 +02:00
Christoph Oelckers
47a0b14b43 - the main input function is also free of conflicts. That leaves 3 functions with roughly 4kb of code that cannot be redone without using EDuke code. 2020-07-18 00:59:10 +02:00
Christoph Oelckers
6c2600df51 - cleanup of the main input code.
Only 8 kb code left that is clearly recognizable as coming from EDuke32.
2020-07-18 00:34:20 +02:00
Christoph Oelckers
1d685d24e9 - fixed handling of BitsToSend. 2020-07-17 22:19:22 +02:00
Christoph Oelckers
7bc2befc84 - consolidated the finalizing parts of the input code and fully merged most of the bike/boat handlers.
Turned out that the only major difference was already split off into subfunctions.
2020-07-17 22:09:01 +02:00
Christoph Oelckers
61d08f41e0 - fixed DTA_KeepRatio. 2020-07-17 21:14:58 +02:00
Christoph Oelckers
d1b4c34ff9 - re-added the hud_input call that somehow got lost. 2020-07-17 21:09:07 +02:00
Christoph Oelckers
29e107ad24 - use CCMDs for weapon and inventory selection, courtesy of ZDuke. 2020-07-17 20:56:10 +02:00
Christoph Oelckers
01d3ca870d - more consolidation between old and new input paths.
This also simplifies the one_eighty handling to be closer to the original idea.
2020-07-17 11:46:23 +02:00
Christoph Oelckers
dc9c8a0e60 - consolidation of pitch code for aim mode 0. 2020-07-17 00:32:26 +02:00
Christoph Oelckers
7ba4e4de97 - weapon selection offloaded and cleaned up. 2020-07-16 23:32:00 +02:00
Christoph Oelckers
43c4c5eb5e - consolidated some parts common to the 3 input routines. 2020-07-16 22:49:26 +02:00
Christoph Oelckers
ff9e2c3f5e - same procedure for the motorcycle - and again roughly 10% of the input code down. 2020-07-16 19:16:56 +02:00
Christoph Oelckers
fca4bdcafb - split out the main movement calculation out of P_PlayerInputBoat and used the original code for providing a replacement. 2020-07-16 18:58:31 +02:00
Christoph Oelckers
38751d19ac - changed all SYNCINPUT #defines into runtime checks so that both parts can be used and consolidated the 4 versions of the SeaSick code. 2020-07-16 17:59:25 +02:00
Christoph Oelckers
2888f29e32 - reenable the logos. 2020-07-16 15:18:27 +02:00
Christoph Oelckers
f530732c46 - adjustments for input 2020-07-16 15:03:09 +02:00
Christoph Oelckers
55feadd11c - render the weapons with the DrawTexture interface and properly handle rotatesprite's alignment modes 2020-07-16 13:23:26 +02:00
Christoph Oelckers
a066c5bc4b - make everything compile again. 2020-07-16 00:27:09 +02:00
Christoph Oelckers
39a6ab6f0e - input update - safety commit 2020-07-15 23:44:07 +02:00
Christoph Oelckers
d139720607 - cleaned up the setup code and consolidated everything in a separate file. 2020-07-15 21:11:23 +02:00
Christoph Oelckers
ea6c74d0e6 - transitioned the local input handler.
There wasn't anything EDuke32-specific in there - nearly everything mapped perfectly to JFDuke.
2020-07-15 19:48:04 +02:00
Christoph Oelckers
a0cd407632 - cleanup on pausing code. 2020-07-15 18:10:31 +02:00
Christoph Oelckers
381e15a9b2 - renamed playerdata_t::input back to sync and made it a static array again. 2020-07-15 13:10:18 +02:00
Christoph Oelckers
a9f152c1fe - added JFDuke's label type checker and did some cleanup on the CON init code.
Most importantly: Use dynamic buffers for managing the labels instead of hijacking some other storage space.
2020-07-15 12:34:42 +02:00
Christoph Oelckers
866be28da0 - clear the input state when starting a new map or loading a savegame. 2020-07-15 09:21:47 +02:00
Christoph Oelckers
99161e2e4a - made ps an array of player_struct like it originally was. 2020-07-15 00:26:58 +02:00
Christoph Oelckers
2fd2ad2212 - sky code cleanup and transitioning of Duke's. 2020-07-15 00:06:19 +02:00
Christoph Oelckers
4598cf13d7 - reverted the frags array to its original form, moved InitRRRASkies to zz_common.cpp and deleted zz_premap.cpp. 2020-07-14 21:42:46 +02:00
Christoph Oelckers
d5689d3926 - removed net.h as well. 2020-07-14 21:31:15 +02:00
Christoph Oelckers
1e9679aceb - removed faketimerhandler and the last static remains of EDuke's netcode. 2020-07-14 21:15:37 +02:00
Christoph Oelckers
af225abf80 ... 2020-07-14 21:05:26 +02:00
Christoph Oelckers
05abc262ba - removed libdivide for good and the unused C++ wrapper for fix16 along with it. 2020-07-14 20:57:42 +02:00
Christoph Oelckers
3cd475570c - fixing problems. 2020-07-14 20:39:48 +02:00
Christoph Oelckers
424716bb88 - say goodbye to libdivide! 2020-07-14 20:21:16 +02:00
Christoph Oelckers
2f3d405f8b - moved getatoken to scriptfile.cpp so common.cpp could be removed. 2020-07-14 19:51:54 +02:00
Christoph Oelckers
f9c03760a3 - removed setuptile DEF command due to the hacky implementation and general uselessness of what can be done with it. 2020-07-14 17:47:11 +02:00
Christoph Oelckers
fedeec73c7 - cleaned out some unused parts of engine.cpp 2020-07-14 17:35:19 +02:00
Christoph Oelckers
5655015691 - YAX is also gone now. 2020-07-14 16:06:14 +02:00
Christoph Oelckers
1d9d1396ac - got rid of print.h (a.k.a. 'how not do design a text formatting library'.) 2020-07-14 15:41:19 +02:00
Christoph Oelckers
117e78cb3b - removed clipshape feature as it is a feature of modern EDuke32 maps only. 2020-07-14 15:36:25 +02:00
Christoph Oelckers
19ef0cd295 - removed screentext and reverted Blood to its original text output. 2020-07-14 15:25:35 +02:00
Christoph Oelckers
1a0b388570 - removed a few tabledivide uses in the game modules 2020-07-14 14:08:59 +02:00
Christoph Oelckers
aa01adb2f1 - removed osd.h as it was merely a minimal wrapper around c_dispatch, giving some alias names.
Nothing that's needed when cutting ties to upstream.
2020-07-14 14:00:27 +02:00
Christoph Oelckers
2e05ff532b - got rid of the struct trackers.
They were only used for handling an undefined case in the renderer but the overhead and side effects were too severe.
2020-07-14 13:51:03 +02:00
Christoph Oelckers
f307b2a954 - removed the old Duke and RR subprojects.
These seriously stand in the way of backend cleanup that is needed to do a release based on the new code.
2020-07-14 13:09:34 +02:00
Christoph Oelckers
7e261425bb - time to get rid of clockticks.hpp.
Aside from its non-existent license it was also not the correct way to handle more precise view interpolation.
2020-07-14 13:00:52 +02:00
Christoph Oelckers
a93ed1e502 Merge branch 'master' into back_to_basics2
# Conflicts:
#	source/blood/src/view.cpp
#	source/core/gamecontrol.cpp
2020-07-14 12:57:38 +02:00
Christoph Oelckers
9caf1ead91 - use the common interpolation function for Blood.
This keeps the main calculation for time difference in one place.
2020-07-14 12:48:56 +02:00
Christoph Oelckers
893686709b - removed the redundant rfreq factor from CalcSmoothRatio.
I never realized it was redundant when consolidating the interpolation math into one function - originally this was done in a way that it wasn't obvious.
This also eliminates the dependency on refreshFreq which never actually made any sense.
2020-07-14 12:32:59 +02:00
Christoph Oelckers
481ac965cf - reverted ClockTicks to an integer so that interpolation can be reimplemented without it affecting the global game timer.
The entire method at use here is essentially not correct. Interpolation should be handled independently of the game timer directly based on the underlying clock, like in ZDoom.
There's interpolation bugs in the Build games that cannot be fixed if totalclock is used for it, but if we use something else we do not need a fractional totalclock.
2020-07-14 11:52:38 +02:00
Christoph Oelckers
a24034e087 - removed some demo code from savegame.cpp. 2020-07-07 23:07:03 +02:00
Christoph Oelckers
319e2e2745 - minor cleanup 2020-07-07 23:01:34 +02:00
Christoph Oelckers
ecddd8687c - newgame is clean now. 2020-07-07 22:41:31 +02:00
Christoph Oelckers
63eaec916b - fixed a few things.
Basic level progression is working, special cases still need testing, but for now it's good enough.
2020-07-07 21:38:20 +02:00
Christoph Oelckers
01fce31f43 - everything compiles again.
Still needs testing.
2020-07-07 20:27:21 +02:00
Christoph Oelckers
915b566612 - another safety commit. 2020-07-07 17:56:20 +02:00
Christoph Oelckers
6b86d7606f - safety commit - does not compile! 2020-07-07 13:19:09 +02:00
alexey.lysiuk
df2b3b6b17 - made mouse scaling in Cocoa backend match other platforms 2020-07-07 11:37:23 +03:00
Christoph Oelckers
dd45749650 - got rid of m_level_number and m_volume_number.
These were only needed so that G_NewGame_EnterLevel could be called without parameters. Ouch!
2020-07-07 10:17:02 +02:00
Christoph Oelckers
7f3c0ef16c - safety commit 2020-07-07 09:39:33 +02:00
Christoph Oelckers
34874d1a21 - migrated displayrest and took the opportunity to un-fuck the palette management. 2020-07-07 04:54:12 +02:00
Christoph Oelckers
b6f410923e - restored most of the original user_defs.
Most of the added EDuke things were gone anyway.
2020-07-07 00:16:54 +02:00
Christoph Oelckers
43ff87f47f - lightened player.h a bit more. 2020-07-06 23:50:14 +02:00
Christoph Oelckers
dca7e158bb - "po" reverted 2020-07-06 23:33:33 +02:00
Christoph Oelckers
e8ebeefaad - started consolidating the struct types.h 2020-07-06 23:24:35 +02:00
Christoph Oelckers
642ae03d90 - use player_struct from JFDuke. 2020-07-06 23:05:48 +02:00
Christoph Oelckers
631398a35a - renamed a few things. 2020-07-06 23:04:19 +02:00
Christoph Oelckers
1644c1d33a - cleanup continues. 2020-07-06 23:02:41 +02:00
Christoph Oelckers
45f51b0c4b -more header work. 2020-07-06 22:55:35 +02:00
Christoph Oelckers
0d0f6854c3 - cleaned out another header file. 2020-07-06 22:54:26 +02:00
Christoph Oelckers
83bcfcfd0c - Big cleanup. 2020-07-06 22:53:20 +02:00
Christoph Oelckers
f1babcee95 - more header cleanup. 2020-07-06 16:24:22 +02:00
Christoph Oelckers
a4879fb338 - draw all overlay elements on the game screen. 2020-07-06 15:52:09 +02:00
Christoph Oelckers
e272245537 - fixing some HUD stuff. 2020-07-06 15:48:51 +02:00
Christoph Oelckers
928620ab91 - why was this missed? 2020-07-06 13:27:56 +02:00
Christoph Oelckers
f2380f8829 - constant cleanup. 2020-07-06 13:26:26 +02:00
Christoph Oelckers
5d93e946c2 - moved all prediction code into a separate (inactive) source file. 2020-07-06 11:39:39 +02:00
Christoph Oelckers
f4e763e252 - input code cleanup.
The input queues are mostly abstracted now and some EDuke specific handling that isn't needed anymore was removed.
2020-07-06 10:34:31 +02:00
Christoph Oelckers
9300c0bdeb - stripped down the main menu loop to the minimum needed to be able to run it. 2020-07-06 08:55:56 +02:00
Christoph Oelckers
736a52f7b2 - startrts and domovethings. 2020-07-06 03:00:52 +02:00
Christoph Oelckers
827672a775 - moveclouds. 2020-07-06 02:05:31 +02:00
Christoph Oelckers
25bff01c70 - cleanup. 2020-07-06 00:54:06 +02:00
Christoph Oelckers
c6b619214f - cleanup of viewborder code.
The view border will now only be rendered in one place - inside displayrooms. None of the 2D content still depends on what it is set to.
2020-07-06 00:15:22 +02:00
Christoph Oelckers
021799573e - fixed sprite animations. 2020-07-05 23:22:35 +02:00
Christoph Oelckers
7bd2b33e39 - fixed centering of RR big text. 2020-07-05 21:40:51 +02:00
Christoph Oelckers
90d5d7ba75 . ugh. 2020-07-05 21:24:55 +02:00
Christoph Oelckers
cfe1e531c5 - activated the newly added render code and deleted the old one. 2020-07-05 21:21:39 +02:00
Christoph Oelckers
7ead48b9d9 - safety commit for displayrooms. 2020-07-05 16:49:00 +02:00
Christoph Oelckers
53f36e5c40 - fixed P_GetInput to work with the changed backend. 2020-07-05 12:26:00 +02:00
Christoph Oelckers
8a1206edbc Merge remote-tracking branch 'remotes/origin/master' into back_to_basics2 2020-07-05 11:55:41 +02:00
Christoph Oelckers
c08b8dc17b - camera display fix.
This is one fucked up mess of code.
2020-07-05 11:54:50 +02:00
Christoph Oelckers
2e78c08856 - fixed palette transparency checks 2020-07-05 10:15:55 +02:00
Mitchell Richters
dae1506182 - change std::max() to std::min() in glbackend.h. Fixes issue in coelckers/Raze#83. 2020-07-05 09:05:19 +02:00
Christoph Oelckers
2b61b44188 - remove unused variable. 2020-07-05 08:58:13 +02:00
Mitchell Richters
30300bf3b2 - allow shade in glbackend.h to accept negative values, but still at a max of numshades-1.
* This fixes some issues with distance lighting issues in Duke3D as reported at https://forum.zdoom.org/viewtopic.php?f=341&t=68838&start=75#p1158417.
2020-07-05 08:57:21 +02:00
Christoph Oelckers
2105af8096 - deleted some garbage. 2020-07-05 00:39:34 +02:00
Christoph Oelckers
390afc9490 - SE150 for RRRA.
It's the same as original SE40. What kind of mess whas done here in Eduke?
2020-07-05 00:16:59 +02:00
Christoph Oelckers
1657d90ca9 - ror.cpp 2020-07-04 23:40:54 +02:00
Christoph Oelckers
119b9f5d02 - SE40
Not testable because no working map uses it.
2020-07-04 23:40:14 +02:00
Christoph Oelckers
78f88e460e - G_DoThirdPerson replaced by the original 'view'. 2020-07-04 22:44:33 +02:00
Christoph Oelckers
2fba557a3d - fixed menu loop 2020-07-04 22:30:18 +02:00
Christoph Oelckers
2c494245ad - cheat list fixed. 2020-07-04 22:03:22 +02:00
Christoph Oelckers
7688390b2d - I hate it when MSVC doesn't recompile altered files... :( 2020-07-04 21:50:16 +02:00
Christoph Oelckers
7872b701ce - CCMD cleanup. 2020-07-04 21:36:27 +02:00
Mitchell Richters
c70cc474a0 - change mouse input from int to float and adjust games accordingly.
* Calculate game-side mousex/mousey divisions into the calculations performed in `InputState::GetMouseDelta()`.
* Fix mouse speed when `in_mousesmoothing` is true (wasn't factoring in / 3.f division used in non-true vector.
* Standard mouse forward/side movement speeds in Exhumed & SW with that of other games.
* Remove `strafeyaw` code from Duke/Exhumed/RR as it's not necessary and was leading to situations where the player would continually keep moving sideways even without input.
* Change mouse forward/side velocities to -= current value as is done with controller input and the player's angle/aim velocities.
2020-07-04 18:28:00 +02:00
Mitchell Richters
bb57590d34 - add gl_texture CVAR to glbackend à la GZDoom.
* Will be useful for further debugging of the lighting to determine whether Build actually did/does do different visibility for floor/walls/ceilings, etc.
* Idea inspired by Gez: https://forum.zdoom.org/viewtopic.php?f=341&t=68838&start=75#p1158294
2020-07-04 18:26:11 +02:00
Mitchell Richters
25c5b76f91 - make SDL mouse scaling match that of Windows for consistency. 2020-07-04 18:25:13 +02:00
Christoph Oelckers
39185300e7 - reimplemented cheats based on ZDoom's cheat parser. 2020-07-04 15:51:02 +02:00
Christoph Oelckers
dbd3202433 - simplified the generic cheat code.
This is both closer to ZDoom and more robust.
2020-07-04 10:22:20 +02:00
Christoph Oelckers
c9d3a383a4 more 2020-07-04 00:32:09 +02:00
Christoph Oelckers
f5d363d914 - cleaned out demo code. 2020-07-04 00:12:24 +02:00
Christoph Oelckers
d13b2dc130 - got rid of the dynamic tilemap.
Most tile access is in game specific code, the remaining code only accesses 51 tiles
2020-07-03 23:56:14 +02:00
Christoph Oelckers
f1a2836877 - it continues.
cameratext and the last 3 __STATICs.
2020-07-03 23:16:12 +02:00
Christoph Oelckers
d6e021a63d - statistics output 2020-07-03 21:44:57 +02:00
Christoph Oelckers
a3a8286857 - cleanup 2020-07-03 20:17:24 +02:00
Christoph Oelckers
1e24c4a22c - vscrn, aka updateviewport.
Just a temporary patch - this function won't work with the new status bar.
2020-07-03 16:59:53 +02:00
Christoph Oelckers
7f96d182b7 - palette stuff, input functions corrected. 2020-07-03 16:17:37 +02:00
Mitchell Richters
bbacc9e816 - factor in xdimenscale and viewingrangerecip when calculating renderSetVisibility().
* Changes performed in 0bd460d9e3 didn't take into account xdimenscale and viewingrangerecip like the days of old and this wasn't picked up in d80a32d379 or d80a32d379, where the applied fixes only appeared to work because they worked for me at 2560x1440p.
2020-07-03 14:42:41 +02:00
Christoph Oelckers
4fbd476b17 - refactored all text output to use DrawText.
No more screentext mess.
2020-07-03 10:53:35 +02:00
Christoph Oelckers
691643b035 - fix DTA_KeepRatio for fullscreen scaling. 2020-07-03 10:53:02 +02:00
Christoph Oelckers
5144e8c355 - ported the 'entering level' screen. 2020-07-03 09:59:24 +02:00
Christoph Oelckers
d2595582d4 - fixed coordinates. 2020-07-03 00:32:10 +02:00
Christoph Oelckers
e833360b65 - ported the level stats display to be game independent. 2020-07-02 23:56:22 +02:00
Christoph Oelckers
21da0816c5 - removed the overhead scoreboard because it's EDuke code. This should reuse the summary screen's output if redone.
- removed voting code for the same reason.
2020-07-02 21:28:09 +02:00
Christoph Oelckers
8d6278f845 - be gone, rotatesprite! 2020-07-02 21:12:02 +02:00
Christoph Oelckers
aaa8ae7306 - took care of the automap code.
This was virtually unchanged from JFDuke except for better formatting.
2020-07-02 20:58:56 +02:00
Christoph Oelckers
17c9513c98 - statusbar code cleanup.
- removed adult_lockout option because it is just a stupid relic from the 90's without any purpose. Were people even using this anymore?
2020-07-02 20:17:29 +02:00
Christoph Oelckers
6172978f13 - the menu code is clean. 2020-07-02 10:59:22 +02:00
Christoph Oelckers
68d7d57b3b - fixed menu registration. 2020-07-02 01:24:46 +02:00
Christoph Oelckers
247c9fb786 - transitioned most parts of the menu to the backend's draw functionality. 2020-07-02 01:17:45 +02:00
Christoph Oelckers
193260680f - a bit more 2020-07-01 22:55:27 +02:00
Christoph Oelckers
54c29258d8 - removed a large bunch of unused dynamic tile names. 2020-07-01 22:44:09 +02:00
Christoph Oelckers
b281c34357 - some final fixes. 2020-07-01 22:27:38 +02:00
Christoph Oelckers
c09b4896a6 - made RR summary screens work. 2020-07-01 22:14:11 +02:00
Christoph Oelckers
bb303c6469 - cleaned up the rest of the summary screen code, particularly the totally redundant second variant for RRRA. 2020-07-01 20:31:29 +02:00
Christoph Oelckers
197a35291a - added level summary screens and made the fade for the screens an engine feature.
This also hijacks one free element in the shader uniforms for the newly added factor.
2020-07-01 12:55:32 +02:00
Christoph Oelckers
4baf065370 - decrappification 2020-06-30 22:59:20 +02:00
Christoph Oelckers
2e98b2f8da - quote cleanup. 2020-06-30 22:53:15 +02:00
Christoph Oelckers
8aaadfad1b - fixed the notification display. 2020-06-30 22:01:43 +02:00
Christoph Oelckers
e0bd85935a - replaced user quotes with GZDoom's notification display entirely. 2020-06-30 20:59:24 +02:00
Christoph Oelckers
e04c5e5fad - removed some demo control code. 2020-06-30 20:07:58 +02:00
Christoph Oelckers
1cc692284b - removed remaining YAX code 2020-06-30 19:48:10 +02:00
Christoph Oelckers
a491b88074 - removed most of the demo code. 2020-06-30 19:34:58 +02:00
Christoph Oelckers
51ac1019d2 - ported RR's noise.c. 2020-06-30 17:30:48 +02:00
Christoph Oelckers
fc11447e59 - interpolations transitioned. 2020-06-30 11:55:01 +02:00
Christoph Oelckers
e92ca71fe5 - shareware screens 2020-06-30 00:15:48 +02:00
Christoph Oelckers
7253b4eb74 - added a serializer for the flamethrower's fire map. 2020-06-29 23:36:06 +02:00
Christoph Oelckers
0656beeb2b - remove a bit more code. 2020-06-29 22:07:19 +02:00
Christoph Oelckers
9f33638804 - RR multiplayer screen. 2020-06-29 22:00:38 +02:00
Christoph Oelckers
ea59efd091 - Duke's multiplayer statistics screen. 2020-06-29 20:50:18 +02:00
Christoph Oelckers
e7da8e4bcf - fixed red font for use with DrawText. 2020-06-29 13:19:36 +02:00
Christoph Oelckers
8cb8f85569 - deleted the old anim player. 2020-06-29 00:00:51 +02:00
Christoph Oelckers
726ebec9ec - RR bonus screens. 2020-06-28 22:17:27 +02:00
Christoph Oelckers
69d9a98ead - Duke end of episode animations ported 2020-06-28 21:38:25 +02:00
Christoph Oelckers
6767b383e7 - safety commit. 2020-06-28 14:42:31 +02:00
Christoph Oelckers
7b7c64fc17 - FileStream cleanup 2020-06-28 14:42:06 +02:00
Christoph Oelckers
2ddec37098 - added a texture format for single frame ANMs so that they can be handled like normal images.
The intermission code is doing weird things with them that isn't really portable.
2020-06-28 14:41:44 +02:00
Christoph Oelckers
924816ac8d - Inlined most of libsmackerdec's FileStream.
This should probably be removed altogether and use FileReader directly.
2020-06-28 10:59:11 +02:00
Christoph Oelckers
9aaf6b416d - RR intro movies. 2020-06-28 10:14:42 +02:00
Christoph Oelckers
6be1a9a9e4 - copyright 2020-06-28 09:03:31 +02:00
Christoph Oelckers
67fa7f8275 - work on Duke intro sequence.
Now without any Build drawing code, it goes directly to DrawTexture now. :)
2020-06-28 00:32:28 +02:00
Christoph Oelckers
4f6ab45e35 - screenjob start. 2020-06-27 11:48:55 +02:00
Christoph Oelckers
8a06a09d05 anm adjustment 2020-06-27 11:48:44 +02:00
Christoph Oelckers
60cb8281cd - more 2D screen adjustment 2020-06-27 11:48:32 +02:00
Christoph Oelckers
e0ad1aa0cd - cleanup of animlib.
* operate on a parameter-specified data structure instead of a global one
* moved error checks into the library code.
2020-06-27 11:47:31 +02:00
Christoph Oelckers
34c3838e62 - logo. 2020-06-26 22:49:56 +02:00
Christoph Oelckers
fc017f5868 - removed unused editwall variable. 2020-06-26 20:28:57 +02:00
Christoph Oelckers
16db8195d5 - fixed incomplete texts in inventory.
This didn't properly discover bad lowercase entries in the font.
2020-06-26 12:20:24 +02:00
Christoph Oelckers
7490d6cd18 - 2d stuff 2020-06-25 21:51:44 +02:00
Christoph Oelckers
43f899f2ce - Do not start multiple instances of the same sound on the same source in Exhumed.
From the looks of it the engine calls the sound function repeatedly while the sound plays to perform distance checks.
With the OpenAL backend these checks are totally unnecessary and shouldn't do anything.
2020-06-24 22:02:23 +02:00
Christoph Oelckers
2bd4173716 - renamed a few headers. 2020-06-24 21:21:02 +02:00
Mitchell Richters
8c723f52d1 - make controller input identical across all games.
* Convert axes in ControlInfo struct from int32_t to float as what's received from the backend.
* Remove all the scale up/down math since we don't need that with floats and replace with float constants that match old behaviour.
* Store q16mlook scaling as a constant for use with mouse and upcoming controller code.
* Add required controller code to Blood as the only game not to have working controllers.
* Fix typos in (gInput.forward > input.forward) for `ctrlGetInput()` in Blood.
* Remove use of `scaleAdjustmentToInterval()` on Exhumed and Shadow Warrior as they only process forward/side velocities within the game's ticrate.
* Repair angvel/aimvel scaling mistakes from d79a5d256d.
* Scale dyaw and dpitch by 25% for Shadow Warrior as the game runs 25% faster than the other games, leading to faster input.
2020-06-24 20:08:56 +02:00
Christoph Oelckers
28b2bcb444 - removed unused header. 2020-06-24 01:02:11 +02:00
Christoph Oelckers
e146e73345 - consolidated the 'music' parsing in Defs (pending a refactor of the MAPINFO system.)
- removed the remaining parts of the game Defs parser because we do not want anything EDuke in here.
2020-06-24 00:40:22 +02:00
Christoph Oelckers
4b743b4063 - use the original palette loader from RR. 2020-06-23 22:51:37 +02:00
Christoph Oelckers
22e4141395 - removed duplicate header. 2020-06-23 22:01:58 +02:00
Christoph Oelckers
18b272412a - command line stuff can be traced back to JFDuke. 2020-06-23 21:56:42 +02:00