Commit Graph

11171 Commits

Author SHA1 Message Date
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 cb050dbac9 - get rid of `Redneck Deer Huntin'` from engine\grpinfo.txt since the game isn't supported.
* Removes error in startup log for line #351.
2020-07-24 22:26:06 +10: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
Christoph Oelckers 27bbee6750 - gitignore update for macOS 2020-07-23 17:02:45 +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