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