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