Mitchell Richters
85e81c94c7
- Blood: Bring in SW's input helpers and hook up within input code.
2020-09-20 16:21:23 +10:00
Mitchell Richters
1900cf1fcc
- Move Duke's getincangle()
function to the backend, create Q16.16 variant (getincangleq16()
) and replace Shadow Warrior's discrete implementations shared versions.
...
* Need SW's input helpers available for Blood but therefore also need an angle delta function that does not seem to exist in Blood.
* Realise that gamecontrol.h/cpp might not be the most appropriate place, but it's a shared location and these will go into binaryangle.h when its utilisation can be more realised.
* Because SW's logic was reversed, in that param #1 was the new angle and param #2 was the current, all calls have been reversed.
* By happenstance, also fixes an issue with multiple 180° turns in quick succession.
2020-09-20 16:21:13 +10:00
Mitchell Richters
db7793bf54
- Blood: Clean up remainder of control.cpp in-line with Duke/SW.
...
* Split input bits and movement into separate functions.
* Reordered movement to be more like Duke/SW for ease of comparison.
* Removed a global.
* Removed a few includes.
2020-09-20 16:20:20 +10:00
Mitchell Richters
9c56dfffe0
- Blood: Apply horizon input outside of pPlayer->q16look
and fix some incorrectly declared types.
...
* Looking up/down is a bit rough at first as q16look is disproportionate to where the player is currently looking.
* Won't be an issue with a unified horizon algorithm in the backend.
2020-09-20 16:20:18 +10:00
Mitchell Richters
eb0bd9638b
- Blood: Re-implement unsynchronised q16horiz.
2020-09-20 16:20:16 +10:00
Mitchell Richters
ae5b6b6a91
- Blood: Re-implement unsynchronised q16ang.
2020-09-20 16:20:14 +10:00
Mitchell Richters
547bf110b2
- Blood: Create high-precision Sinf()
and Cosf()
inlines and use for player's horizon, using calcSinTableValue()
from the backend, bypassing game's costable[]
.
2020-09-20 16:20:12 +10:00
Mitchell Richters
c38c1cb1f1
- Blood: Re-do interpolating code in viewDrawScreen()
in preparation for returning unsynchronised input.
...
* Changed config so `cl_interpolate` bool doesn't apply to player's overall movement. While it might be handy for debugging moving sector objects, I see no valid reason why there'd be a need to ever un-interpolate the player's position.
2020-09-20 16:20:10 +10:00
Mitchell Richters
20c73e1249
- Blood: Remove r_horizcenter
and standardise horizon in game to that of the default in the backend (currently 100).
...
* The use of this will go when the input is re-factored to operate on the standard horizon of 100, not 0.
2020-09-20 16:20:08 +10:00
Mitchell Richters
4d47fe7e85
- Blood: Remove bVanilla
.
2020-09-20 16:20:06 +10:00
Mitchell Richters
c835d9cadc
- Blood: Revert upstream unsynchronised input implementation.
2020-09-20 16:20:04 +10:00
Mitchell Richters
20f94c5895
- Blood: Use backend input scaling.
2020-09-20 16:20:00 +10:00
Mitchell Richters
5e484bddad
- Blood: Make gInput
static within controls.cpp.
2020-09-20 16:19:58 +10:00
Christoph Oelckers
bac357a6be
- disable the weapon in SW's savepics.
...
The way the weapon drawer is implemented does not work well with save pictures.
2020-09-19 21:31:35 +02:00
Christoph Oelckers
a27211dc34
- added support for SSI containers to the file system.
2020-09-19 10:07:53 +02:00
Christoph Oelckers
2bf5933923
- fixed weapon sprite translation index when in paletted mode.
2020-09-19 00:06:07 +02:00
Christoph Oelckers
d8639a9a64
- fixed bad checks for uncapped frame rate.
2020-09-18 23:18:42 +02:00
Christoph Oelckers
005f8feceb
- properly use the correct delay for an ANM's final frame.
2020-09-18 22:49:51 +02:00
Christoph Oelckers
29a10cabcb
- fixed most issues with palette emulation.
...
Brightness is now correct - I have no idea why this factor of 1/0.85 is needed - something must reduce the brightness of the entire scene but I have no idea what.
2020-09-18 22:29:13 +02:00
Christoph Oelckers
7b879f6fe7
- removed now unused SavegameLoaded variable.
2020-09-18 01:11:38 +02:00
Christoph Oelckers
77a2bcb958
- SW: make ambients start properly.
...
This fell victim to some fudging code that was needed to avoid crashes with the original game loop.
All that fudging could easily be removed now because nothing of it is needed anymore.
2020-09-18 00:33:18 +02:00
Christoph Oelckers
af298411df
- added widescreen titlepic for Duke Nukem 3D:
...
Also made some tweaks to the intro sequence drawer so that it recognizes image formats not depending on the game palette.
2020-09-17 23:20:50 +02:00
Christoph Oelckers
f5d14f826a
- added the SHOOT event and fixed some issues with poor code generation for the game data accessors.
...
They created different code depending on the passed index, this was changed to always emit the optional parameter, even when not needed, so that the interpreter does not need to second-guess.
2020-09-17 23:06:54 +02:00
Christoph Oelckers
8fa5d3d9d2
- added the remaining CON features from EDuke 2.x
...
Not everything will do something, though. This was some incredibly careless code operating without a safety net allowing uncontrolled write access to the map structure.
Most of the critical fields have been made read-only, which has been the only mode of access in the mods I checked.
Note that this does not enable scripting of the weapon sprite drawer, only the gameplay related features were done.
2020-09-17 23:06:54 +02:00
Mitchell Richters
e1ee9bc83c
- Duke: Fix camera advancing angle by 16 instead of 8 under circumstances.
2020-09-17 18:31:09 +10:00
Mitchell Richters
71a06b7cdd
- SW: Fix quake intensity.
2020-09-17 09:01:19 +10:00
Christoph Oelckers
4dc7f8b142
- undid some formatting screwups from the merge.
2020-09-16 19:28:51 +02:00
Christoph Oelckers
942beea1ff
Merge branch 'back_to_basics2'
2020-09-16 19:26:23 +02:00
Mitchell Richters
4370686c81
- SW: Allow disabling melee weapon blurring.
2020-09-16 19:18:08 +02:00
Christoph Oelckers
b0090b07fc
- do not fade screen jobs in when in the menu.
...
This doesn't work properly because the timer is stopped, leading to visual artifacts with the fading.
2020-09-16 19:13:21 +02:00
Christoph Oelckers
6776508239
- widescreen asset setup and consolidation of .def file loading.
2020-09-16 19:13:06 +02:00
Christoph Oelckers
2095e9e3c6
- code changes for last commit - they were not picked up automatically.
...
# Conflicts:
# source/build/src/defs.cpp
2020-09-16 19:13:05 +02:00
Christoph Oelckers
5c777eeb38
- moved implementation of 'animtilerange' into buildtiles.cpp.
2020-09-16 19:13:05 +02:00
Christoph Oelckers
616838dd0a
- little bit of cleanup on tileImport.
2020-09-16 19:13:05 +02:00
Mitchell Richters
ce82eaf899
- Duke/RR: Address weapon drawer interpolation concerns raised in #403 .
2020-09-16 21:01:09 +10:00
Christoph Oelckers
b26a5b800e
- make sure that changing the texture filter mode does not clobber the global state
...
Need to rebind the samplers after modifying them to avoid undefined behavior.
Fixes #397
2020-09-15 22:00:15 +02:00
Christoph Oelckers
867b8f006f
Reverted key input changes from yesterday.
...
At least the SW version did not work right so let's take no chances here.
2020-09-15 21:54:10 +02:00
Christoph Oelckers
d74d65bece
- clear the 2D drawers in the correct place.
2020-09-15 21:52:02 +02:00
Christoph Oelckers
8babdd6296
- fixed "pointers to temporary" errors reported by XCode
2020-09-15 21:45:54 +02:00
Christoph Oelckers
e7ddc4178a
- fixed bad Printf formatting directives in swcustom parser.
2020-09-15 21:45:05 +02:00
Christoph Oelckers
c98f7d304b
- added a list compare function to FScanner.
2020-09-15 21:21:16 +02:00
Christoph Oelckers
2c3041081d
- remove indirection in picanm access.
2020-09-15 21:17:08 +02:00
Christoph Oelckers
d1293da8dc
- connecting the dots for Blood's special tile features.
2020-09-15 01:27:24 +02:00
Christoph Oelckers
bc5d3eea88
- split the worker part for tileImportTexture out of the parser.
2020-09-15 01:21:17 +02:00
Christoph Oelckers
09a6534270
- redid scriptfile as a wrapper around FScanner
...
Another piece of Build licensed code gone, yay!
This will also allow gradual conversion of the DEF parser to our own code, unencumbered by the Build license. :)
2020-09-15 00:11:08 +02:00
Christoph Oelckers
e382690f9c
- migrated defs error reporting to FScriptPosition
...
This not only prints better formatted texts, it also takes a lot of script maintenance out of the code.
2020-09-14 22:55:21 +02:00
Christoph Oelckers
8a7502c00d
- I wish, MSVC flagged struct params to variadic functions properly…
...
XCode reported these as errors.
2020-09-14 22:44:21 +02:00
Christoph Oelckers
70a6fbe9be
- do not interpolate while playing the flash at Exhumed's exits.
...
Fixes #395
2020-09-14 22:31:15 +02:00
Christoph Oelckers
cf6b497d02
- fixed animation of weapon sprites
...
This also disables palette emulation for weapons because it's too buggy right now. Will be re-enabled once fixed.
2020-09-14 22:16:33 +02:00
Christoph Oelckers
4485587088
- removed the palette remapping in the lookup texture generators because it is no longer needed.
...
Fixes #396
2020-09-14 21:54:29 +02:00
Christoph Oelckers
42d4e112a1
- clear the message display unconditionally when restarting the game.
...
It was only done when the level was reloaded.
Fixes #400
2020-09-14 21:32:36 +02:00
Christoph Oelckers
eb4e0b1b83
- restrict keyboard input to the actual tic in SW as well.
...
Also fixed the blocking of the strafe key with sector objects - this must have gotten lost somewhere.
2020-09-14 21:25:53 +02:00
Christoph Oelckers
1f4594b450
- Duke: Only read keyboard input for movement when called for the actual tic.
...
Since the added values are not scaled, doing this per frame has the potential risk of achieving too high total velocity when combined with other means of input.
The change here was kept as simple as possible.
2020-09-14 21:10:34 +02:00
Mitchell Richters
c5648be2bd
- SW: Properly scale controller input.
2020-09-14 19:29:12 +10:00
Mitchell Richters
3fc96e8840
- SW: Stop keyboard fvel/svel from allowing loc.fvel
/loc.svel
like Duke.
...
* Stops overshooting keymove when playing with `cl_syncinput 0`.
* Keymove is never as high as MAXFVEL/MAXSVEL, which is used as a thrash point for controller input.
* Fixes #390 .
2020-09-14 18:54:03 +10:00
Christoph Oelckers
7395110ae9
- replaced brace loop condition in def parser with an inline
2020-09-14 00:19:20 +02:00
Christoph Oelckers
c61a2c3486
- enable palette emulation for HUD weapon drawing.
...
Not correct yet but the basics are in.
2020-09-13 23:14:44 +02:00
Christoph Oelckers
1368c26d22
- fixed translation setup for palette mode.
2020-09-13 21:23:38 +02:00
Christoph Oelckers
fe329b0870
- fixed voxel rendering in palette emulation mode.
2020-09-13 21:08:10 +02:00
Christoph Oelckers
aeeec61f39
- fixed light level setup in palette emulation mode.
2020-09-13 20:48:54 +02:00
Christoph Oelckers
0e58203d92
- fixed rintersect and removed some unused bits from engine.cpp.
2020-09-13 20:15:46 +02:00
Christoph Oelckers
6ad8046b47
- dual license d_net.cpp and i_net.cpp
...
The same source was available under both in GZDoom, so keep it.
2020-09-13 19:38:31 +02:00
Christoph Oelckers
b289e6bc5e
- cleanup.
2020-09-13 19:27:05 +02:00
Christoph Oelckers
4f0856c02b
- fixed a typo.
2020-09-13 19:21:08 +02:00
Christoph Oelckers
a4754d7f34
- rewrote the map hack parser using sc_man.
...
This unexpectedly turned out a complete rewrite so now it is under my own license.
Also moved the remaining parts of map hack loading into the engine.
Overall I have to say that the feature is not what I expected, it's merely used to fudge the positioning of model sprites and for adding Polymer lights.
2020-09-13 13:01:44 +02:00
Christoph Oelckers
8ca0e9b97a
- avoid using naked pointer for script positioning.
2020-09-13 11:28:32 +02:00
Christoph Oelckers
57a9419f8e
- use FString for returning strings from the script parser.
...
This is mainly a preparation for merging the parser into sc_man, because sc_man does not keep token texts in a static variable.
This commit also fixes a handful of places that were flagged by the stricter conversion rules of FString.
2020-09-13 10:29:57 +02:00
Christoph Oelckers
aac87fc2cf
- another unused function.
2020-09-13 09:45:37 +02:00
Christoph Oelckers
19a26f7959
- removed some unused code from engine.cpp.
...
Looks like editor utilities.
2020-09-13 08:30:03 +02:00
Christoph Oelckers
9e81fa89a8
- fixed some of the issues with palette emulation
...
* the palette shader was not bound.
* the palette textures were not bound.
* palette mode still used regular lighting on top of the palette emulation
This works a lot better than before but is still not complete.
2020-09-12 21:23:14 +02:00
Christoph Oelckers
adf4a25b38
...
2020-09-12 12:42:08 +02:00
Christoph Oelckers
16deb64e32
- fixed bad file checks in defs parser.
2020-09-12 12:39:18 +02:00
Christoph Oelckers
89316aea33
- demoted the SWCustom parser to the primitive Hexen interface after finding out that this is all the Build parser can do.
...
This also meant I had to add symbol support to the old style number parsers.
2020-09-12 10:23:47 +02:00
Christoph Oelckers
222f82304d
- fixed savegame image generation.
...
There were two errors:
1. The postprocessor was not run on the generated scene so that the target framebuffer never got set.
2. The generated PNG was not finalized and failed the integrity check of the savegame menu.
Fixes #48
2020-09-12 01:11:32 +02:00
Christoph Oelckers
1f7bc6d69e
- interpolation fix from EDuke: "Patch from Striker to improve sprite interpolation"
...
Fixes #109
2020-09-11 22:54:52 +02:00
Christoph Oelckers
807dd17165
- forgotten debug output removed.
2020-09-11 21:20:44 +02:00
Christoph Oelckers
aba91b4f09
- avoid uninitialized data.
2020-09-11 21:16:29 +02:00
Christoph Oelckers
19b5e2464e
- For World Tour allow falling back on the classic sounds if the Oggs cannot be found
2020-09-11 21:04:47 +02:00
Christoph Oelckers
cddd5d3a4c
- Exhumed: added a white flash and fixed the accompanying sound when exiting a level.
...
See #375
2020-09-11 20:56:46 +02:00
Christoph Oelckers
1646e302d2
- fixed screenjob fadeout.
2020-09-11 20:55:58 +02:00
Christoph Oelckers
b7f0e2c3c3
- added sound FX remapping for World Tour so it can use the original VOCs.
...
Fixes #353
2020-09-11 20:17:36 +02:00
Christoph Oelckers
e1291ad756
- Exhumed: Added air meter to alt HUD and fixed the one on the status bar.
...
Fixes #383
Fixes #259
2020-09-11 20:07:42 +02:00
Christoph Oelckers
b4c297da2e
- Blood: select inventory item when using it.
...
Fixes #310
2020-09-11 19:58:16 +02:00
Christoph Oelckers
8716fabe9c
- fixed E5L1 sky definition having gone MiA.
...
Fixes #389
2020-09-11 19:56:20 +02:00
Christoph Oelckers
c4d7e68b4a
- removed a bit more useless cruft from compat.h.
2020-09-11 19:45:17 +02:00
Christoph Oelckers
b2105f28e1
- replaced swapptr with std::swap.
2020-09-11 19:28:19 +02:00
Christoph Oelckers
e5cf57917e
- FScanner::SkipToEndOfBlock
2020-09-11 00:18:13 +02:00
Christoph Oelckers
d18dbdf7db
- Exhumed: Optimized the flow in the laptop cutscene.
2020-09-11 00:10:55 +02:00
Christoph Oelckers
072ab54b4a
- Exhumed: Fixed startup of the final map.
...
Fixes #279
2020-09-11 00:01:53 +02:00
Christoph Oelckers
38cc094ac3
- adapt ClearAllInput to new globalized code.
2020-09-10 23:35:42 +02:00
Christoph Oelckers
af7ad28ad6
- fixed some warnings that came back through the backdoor.
2020-09-10 23:28:50 +02:00
Christoph Oelckers
d5b9a9ee43
Merge remote-tracking branch 'remotes/Github_private/InputStuffs' into back_to_basics2
2020-09-10 23:25:43 +02:00
Christoph Oelckers
52cbb5c9dc
- implemented reloading from the last saved game, like in GZDoom.
...
Fixes #352
2020-09-10 22:45:42 +02:00
Christoph Oelckers
f829bc96c8
- Duke: Fixed E5L4's sky
2020-09-10 22:06:43 +02:00
Christoph Oelckers
f4bd30b972
- Duke: Fixed noclip cheat message.
2020-09-10 21:50:22 +02:00
Christoph Oelckers
9ce8202eb1
- Duke: Added a file check for the map to be entered when ending a level.
...
World Tour contains a map definition for E5L9 but no map for it.
2020-09-10 21:39:52 +02:00
Christoph Oelckers
59eb923c11
- fixed replacement of hires textures.
...
Fixes #107
2020-09-10 20:52:40 +02:00
Christoph Oelckers
41a2a63efd
- moved the VP8 decoding loop into the movie player class and got rid of animvpx.
...
This allowed significant simplification of code data and many of the error checks could also be simplified because this player doesn't really need it all.
Also use nanoseconds to count frame delays, not milliseconds, as milliseconds can cause timing anomalies with common frame rates very easily.
2020-09-10 17:54:27 +02:00
Christoph Oelckers
ef5ac2319e
- migrated SW's info script parser to sc_man.
2020-09-10 17:46:54 +02:00
Mitchell Richters
baeea5bf3c
- SW: Fix angle speed while walking on sector objects like the bus in Seppuku Station.
...
* `playerSetAngle()` is too rigid since it continually sets angle until target reached, causing sluggish input. We only need to add a delta here.
2020-09-10 23:12:51 +10:00
Mitchell Richters
19fd0331d4
- SW: Interpolate vehicle sector objects for now, until something better can be determined.
2020-09-10 20:47:41 +10:00
Mitchell Richters
3df0d40312
- SW: Fix stupid issue with playerSetAngle()
and tweak how angTarget
/horizTarget
is determined to have been met.
2020-09-10 20:26:19 +10:00
Mitchell Richters
be6e0d87d7
Revert "- SW: Attempt at making vehicle movement work nicely while uninterpolated."
...
This reverts commit 28a3ef131f
.
I mostly added this to visualise an attempt at how I've attempted to make the vehicles work with unsynchronised input. I don't wish for this to be committed to the main branch as it's a net negative.
2020-09-10 19:56:13 +10:00
Christoph Oelckers
83eba019b8
- added support for Megaton's widescreen assets.
...
Fixes #386
2020-09-10 00:05:10 +02:00
Christoph Oelckers
0c55c61b17
- SW load screen setup.
2020-09-09 23:10:18 +02:00
Christoph Oelckers
b52a2b0d9a
- set up the loadscreen code.
...
This isn't active, though, because load times are so short these days that all this results in is an irritating screen flash before the level starts.
It may be activated later when hires assets are in use.
Fixes #10 (or not...? ;) )
2020-09-09 22:42:01 +02:00
Mitchell Richters
6570366a97
- Duke: Fix camera interpolations following uplift in 9615308fb3
.
2020-09-09 20:46:17 +02:00
Christoph Oelckers
2ffb6a3580
- finally got rid of SWBOOL.
2020-09-09 20:32:24 +02:00
Christoph Oelckers
e044582aef
- fixed all issues with SWBOOL as pointed out by a type-safe wrapper class.
2020-09-09 20:28:05 +02:00
Christoph Oelckers
1a647e8104
- globally search and replaced TRUE and FALSE in SW.
...
There were a handful of warnings afterward which were also addressed.
The SWBOOL type has not been handled yet.
2020-09-09 19:52:52 +02:00
Mitchell Richters
b2272bd377
SW: Partially revert 73d0772e87
and do in a way that's more fidele to the original workflow.
2020-09-09 23:01:37 +10:00
Mitchell Richters
28a3ef131f
- SW: Attempt at making vehicle movement work nicely while uninterpolated.
2020-09-09 22:45:21 +10:00
Mitchell Richters
e24521b189
- SW: Uplift playerSetHoriz()
similar to uplift to playerSetAngle()
in b832442e31
.
2020-09-09 22:04:59 +10:00
Mitchell Richters
b832442e31
- SW: New implementation of playerSetAngle()
that works better for intended purpose. This corrects the issues with angle not being quite right when getting onto a ladder.
2020-09-09 21:29:03 +10:00
Mitchell Richters
ee5689b07e
Merge branch 'back_to_basics2' into InputStuffs
2020-09-09 21:04:42 +10:00
Christoph Oelckers
d6c6561309
- that was for testing only.
2020-09-09 00:01:14 +02:00
Christoph Oelckers
9615308fb3
- Duke: fixed camera views glitching when changing their targets.
...
A nearly typical problem of this code. Not all relevant properties of the camera target were changed at once - there was a two frame discrepancy in which the camera pointed in some undefined direction after the change.
Fixes #15
2020-09-08 23:47:30 +02:00
Christoph Oelckers
cef1f8275b
- fixed backing off of monitor screens.
...
Although this is a blocking condition, it must not neutralize movement because it is needed to move away from the screen and end the camera view.
2020-09-08 23:09:40 +02:00
Christoph Oelckers
2fc058e487
- don't autosave just after starting a new game.
2020-09-08 23:00:31 +02:00
Mitchell Richters
b72a3326d0
Merge branch 'back_to_basics2' into InputStuffs
...
# Conflicts:
# source/core/d_net.cpp
2020-09-09 06:56:27 +10:00
Christoph Oelckers
f15657cc6d
- fixed missing widescreen sprite for shrinker/grower and bad light level for the incinerator.
...
Fixes #380
2020-09-08 22:50:38 +02:00
Christoph Oelckers
d011a16c5b
- added a menu option for WT's music switch.
...
Fixes #370
2020-09-08 22:37:21 +02:00
Christoph Oelckers
5490be4f71
- draw a player sprite on Exhumed's automap.
...
Not particularly convincing yet, I first need to find out the specific sprites of the walk animation.
2020-09-08 21:41:02 +02:00
Christoph Oelckers
4ce6f42932
- new fullscreen HUD for Exhumed. Except for the ammo icons this should be complete.
...
Fixes #374
2020-09-08 21:00:47 +02:00
Christoph Oelckers
5d7a51df9d
- use a local bit array in Blood's precacher.
2020-09-08 19:18:11 +02:00
Christoph Oelckers
298949ceb8
- more compat.h cleanup
...
Its elimination is getting closer. :)
2020-09-08 18:48:18 +02:00
Christoph Oelckers
ec1c42b04a
- got rid of common.h
...
All still relevant content was moved to places closer to its use.
2020-09-08 18:39:47 +02:00
Christoph Oelckers
8d2d36457f
- consolidated the map name display on startup
...
Fixes #275
2020-09-08 18:28:41 +02:00
Christoph Oelckers
378846c7bd
- Exhumed: Replaced all checks for multiplayer levels with a single bool
...
This should make refactoring easier later.
2020-09-08 18:07:52 +02:00
Mitchell Richters
48630914b1
- SW: Remove boat code from new input code for cleanliness.
2020-09-09 00:34:51 +10:00
Christoph Oelckers
d1f1bf2ae1
- fixed icorrect validation of give ccmd
...
Fixes #379
2020-09-08 16:18:17 +02:00
Mitchell Richters
1e3199413c
- SW: Rename all Tank-related function code to Vehicle.
2020-09-08 21:54:48 +10:00
Mitchell Richters
8625ac573d
- SW: Comment out all boat code, it's actually not used within the game at all and was very confusing...
2020-09-08 21:40:20 +10:00
Mitchell Richters
cb7e797842
- SW: Partially revert changes from df0331a4c3
.
2020-09-08 20:48:01 +10:00
Mitchell Richters
73d0772e87
- SW: Call DoPlayerMoveTurret()
in processMovement()
in lieu of DoPlayerTurnTurret()
and don't interpolate sector object's sprite while !cl_syncinput
.
...
* Makes operating the tank silky smooth while unsynchronised.
2020-09-08 19:42:22 +10:00
Mitchell Richters
c00217163b
- SW: Fix turret sound with unsynchronised input.
2020-09-08 19:38:32 +10:00
Mitchell Richters
cda79496ce
- SW: Fix DoPlayerDeathHoriz()
with unsynchronised input.
2020-09-08 18:12:45 +10:00
Christoph Oelckers
29d990991b
- dug out Dynamo's BigFont for Exhumed from the forum.
...
This is not the font from GDX, it was a separate creation. The only character in here from GDX is the question mark because it was missing.
2020-09-08 01:12:23 +02:00
Christoph Oelckers
bf761af9aa
- added missing terminator to Base64 encoder.
2020-09-07 23:32:58 +02:00
Christoph Oelckers
1b46a6fd9a
- removed bogus assert in buffer code.
...
An empty buffer is a perfectly valid construct that may not be asserted upon. The 3D scene does not use indices so the buffer receives no data and remains empty.
This made the softpoly renderer fail in debug builds. Performance issues aside it works fine now.
Fixes #314
2020-09-07 23:17:06 +02:00
Christoph Oelckers
cd5443484a
- fixed the cutscenes in Exhumed by cleaning up the definition data.
...
Fixes #351
2020-09-07 23:03:18 +02:00
Mitchell Richters
083ed3e9b7
- SW: Handle angAdjust
and horizAdjust
directly in processMovement()
instead of via DoPlayerTurn()
/DoPlayerHorizon()
.
...
* Eliminates issues with when to call when player is dead, etc. Handles cases like climbing a ladder which doesn't trigger `DoPlayerTurn()`.
2020-09-08 06:50:38 +10:00
Mitchell Richters
92443806af
Merge branch 'back_to_basics2' into InputStuffs
2020-09-08 06:26:32 +10:00
Mitchell Richters
f14405f9cc
SW: getinput
-> processMovement()
.
2020-09-08 06:24:26 +10:00
Mitchell Richters
5145bf907a
- SW: Hook up all vehicle turn code in processMovement()
except for DoPlayerTurnTankRect()
, which still needs considerations.
...
* Issue in `DoPlayerTurnTurret()` with `PlaySOsound()` calls occurring too frequently, still requires investigation on how to best handle this.
2020-09-08 06:22:47 +10:00
Christoph Oelckers
04ec21d6b6
- fixed key alignment on Exhumed's status bar.
...
Fixes #281
2020-09-07 22:19:37 +02:00
Christoph Oelckers
a2e3bb5725
- fixed WT's incinerator and a few other minor things I found while comparing Raze's WT support code with BuildGDX's.
...
Fixes #357
2020-09-07 21:38:17 +02:00
Christoph Oelckers
703b142bad
- added a CVAR to disable WT's ogg music and a fallback for when it cannot be found.
...
Fixes #354
2020-09-07 21:26:07 +02:00
Christoph Oelckers
775c4a3b51
- fixed explosions in World Tour.
...
A classic result of trying to add new stuff to Duke's spaghetti code, shit like this would not happen if this code wasn't this poorly structured.
Fixes #360 and most of #357
2020-09-07 21:00:27 +02:00
Christoph Oelckers
e4fa695b57
- fixed the movement factor for automap panning.
...
Fixes #363
2020-09-07 20:39:07 +02:00
Christoph Oelckers
de7da0d4d7
- fixed: The summary screen in Duke and RR was blocking without explicit user input.
...
It must check for the actual sound that was played, because at least in Duke the looping music is still playing.
Fixes #367
2020-09-07 20:09:53 +02:00
Christoph Oelckers
9bb99e5c05
- fixed 361 - togglerotate CCMD still had some bugs.
2020-09-07 19:56:28 +02:00
Christoph Oelckers
fc435565af
- always use the narrow status bar for overlay mode.
2020-09-07 19:43:46 +02:00
Mitchell Richters
0619281a34
- SW: Remove unused centering
bool from PLAYERp
struct.
2020-09-07 22:48:25 +10:00
Mitchell Richters
df0331a4c3
- SW: Promote all vehicle angle code to proper Q16.16.
...
* Input still rough with `cl_syncinput 0` for vehicles.
2020-09-07 22:36:11 +10:00
Mitchell Richters
e1a5e37126
- SW: Handle DoPlayerTurn()
/DoPlayerHorizon()
better while dead.
2020-09-07 21:50:43 +10:00
Mitchell Richters
681a8ebec2
- SW: Hook up horizAdjust
and adjust all ticrate amendments of q16horiz
via playerAddHoriz()
/playerSetHoriz()
.
2020-09-07 21:47:15 +10:00
Mitchell Richters
2e2ca03812
- SW: Promote recoil_horizoff
to Q16.16 to avoid down-scaling only to upscale.
2020-09-07 21:34:13 +10:00
Mitchell Richters
e36c9fc78c
- SW: Hook up angAdjust
and adjust all ticrate amendments of q16ang
via playerAddAngle()
/playerSetAngle()
.
...
* Promoted some uses of `getangle()` upscaled to Q16.16 with `gethiq16angle()` for higher precision.
2020-09-07 21:30:06 +10:00
Mitchell Richters
1cc1c21029
- SW: Add resetinputhelpers()
and hook up within game.
2020-09-07 21:15:53 +10:00
Mitchell Richters
77816bf3d3
- SW: Promote adjustment of helpers to double since some values will be coming in with higher precision.
2020-09-07 21:03:30 +10:00
Mitchell Richters
584ec935ed
- SW: Add Duke's input helpers and adjust to suit SW.
...
* These are temporary until a backend solution is available after all games have had initial uplift.
2020-09-07 20:35:35 +10:00
Mitchell Richters
40a00be202
- SW: Remove inputScale
const from processMovement()
. Isn't needed anymore since input scaling in DoPlayerTurn()
has been removed.
2020-09-07 20:25:26 +10:00
Mitchell Richters
3667116274
- SW: Uplift of DoPlayerHorizon()
and PlayerAutoLook()
.
...
* Set `PF2_INPUT_CAN_AIM` explicitly where `DoPlayerHorizon()` would have been done within the original game.
* Replace original centering code and route `SB_CENTERVIEW` through the `SB_LOOK_UP`/`SB_LOOK_DOWN` code.
* With this commit, first person input is now nice again. Vehicle code still to be looked at.
2020-09-07 20:20:41 +10:00
Mitchell Richters
e84c8379d9
- SW: Uplift of DoPlayerTurn()
.
...
* Set `PF2_INPUT_CAN_TURN` explicitly where `DoPlayerTurn()` would have been done within the original game.
* Uplift the turn 180 code to full Q16.16.
* Eliminate stupid input scaling so input matches that provided by the input device.
* Ticrate angle adjustments outside of the player's control still to be uplifted.
2020-09-07 19:23:48 +10:00
Christoph Oelckers
bd183ad682
- fixed World Tour weapon display and property parsing, resulting in incorrect ammo count for the flamethrower.
...
Fixes #356
2020-09-07 00:45:11 +02:00
Mitchell Richters
6e6373deda
- SW: Remove camq16*
variables from game and backend code that supported them.
...
* `cl_syncinput 0` is very raw at the moment.
2020-09-07 08:40:14 +10:00
Mitchell Richters
d1d40c6982
- SW: Move SW's input scaler into processMovement()
. Doesn't need to be available to any other function.
2020-09-07 08:07:53 +10:00
Mitchell Richters
6c091a116f
- SW: Fix issues from fa9fa88fce
while merging back_to_basics2
into working branch.
2020-09-07 07:56:42 +10:00
Christoph Oelckers
0c60b28ea1
- fixed positioning of World Tour status bar
...
Fixes #355 .
2020-09-06 23:54:40 +02:00
Mitchell Richters
fa9fa88fce
Merge branch 'back_to_basics2' into InputStuffs
...
# Conflicts:
# source/core/gamestruct.h
# source/games/duke/src/duke3d.h
# source/sw/src/input.cpp
# source/sw/src/player.cpp
2020-09-07 07:51:37 +10:00
Christoph Oelckers
57db150ed3
- SW: Fix player sprite on the automap.
...
Now where did that wrong number come from? I have no idea.
2020-09-06 23:30:19 +02:00
Christoph Oelckers
cbbbe2a09b
- Duke+RR: Don't quit the level summary screen through timeout when a sound is still playing.
...
Fixes #359
2020-09-06 23:23:17 +02:00
Christoph Oelckers
38cd38f0eb
Merge branch 'automap' into back_to_basics2
2020-09-06 23:13:36 +02:00
Christoph Oelckers
e63e134195
- fixed automap follow mode and added some menu entries for the new options and key bindings.
2020-09-06 23:12:47 +02:00
Christoph Oelckers
1060d74e08
- SW's automap sprite drawer.
2020-09-06 21:50:02 +02:00
Christoph Oelckers
2d547a4ef1
- re-added the sprite drawer for Duke's automap.
2020-09-06 21:31:05 +02:00
Mitchell Richters
cc3551dcaa
- SW: Ensure player's fvel/svel is calculated using q16ang
, and not camq16ang
.
...
Fixes #328 , again.
2020-09-07 05:21:00 +10:00
Mitchell Richters
613c32e6a2
- SW: Ensure player's fvel/svel is calculated using q16ang
, and not camq16ang
.
...
Fixes #328 , again.
2020-09-07 05:19:49 +10:00
Christoph Oelckers
9d39f770d4
- reimplemented player sprite display on Blood's automap.
2020-09-06 21:15:59 +02:00
Christoph Oelckers
18b39fd952
- first stage of generic automap code.
...
Lines and textures get rendered, not all colors are correct - sprites yet to do...
2020-09-06 20:49:43 +02:00
Christoph Oelckers
2395749192
- restored the automap texture drawer in the backend.
...
While ultimately this needs to be tossed into the deepest bowels of hell for being one gargantuan piece of bad code, it is still needed and does not really work when placed in a separate source file, due to its endless list of global dependencies.
2020-09-06 17:35:08 +02:00
Mitchell Richters
c183143ec6
- SW: Clear out the local input buffer while paused like Duke does.
2020-09-06 21:57:33 +10:00
Mitchell Richters
07d4c78e1f
- SW: Manually remove call to MoveScrollMode2D()
in anticipation of branch automap
being merged.
2020-09-06 21:55:37 +10:00
Mitchell Richters
46a12cf58a
- SW: Clean up gi->GetInput()
by removing some unneeded local variables.
2020-09-06 21:47:00 +10:00
Mitchell Richters
dfc3a13428
- SW: Finalise cleanup from remaining code in getinput()
to processWeapopn()
.
2020-09-06 21:46:26 +10:00
Christoph Oelckers
e8452a79e8
- implemented the automap serializer.
...
Also optimized the base64 encoder to avoid creating endless memory copies, thanks to using std::string which is a really poor container for this kind of stuff when workig with larger blocks of data.
2020-09-06 13:39:57 +02:00
Mitchell Richters
e94bd9da04
- SW: Replace use of scaleAdjustmentToInterval()
in lieu of backend solution from 290e615807
.
2020-09-06 21:30:47 +10:00
Mitchell Richters
256e23673d
- SW: Clean up all the game's scaling stuff in processMovement()
.
2020-09-06 21:21:12 +10:00
Mitchell Richters
348be65399
- SW: Commence re-factoring getinput()
into processMovement()
, starting with top-most code.
2020-09-06 21:03:27 +10:00
Mitchell Richters
dd4251da09
- SW: Split getinput()
's input bits code into its own static function.
2020-09-06 20:52:58 +10:00
Mitchell Richters
ce160f7ac1
- SW: Split getinput()
's weapon code into its own static function.
2020-09-06 20:49:21 +10:00
Christoph Oelckers
809f8b5d4b
- hooked up the new automap framework.
2020-09-06 12:44:58 +02:00
Mitchell Richters
0ef9da6a0c
- SW: Make game's local input buffer static within input.cpp.
2020-09-06 20:19:29 +10:00
Mitchell Richters
290e615807
- Move Duke's input scaling for unsynchronised input to backend as InputScale()
.
2020-09-06 20:19:26 +10:00
Mitchell Richters
722537a1f0
- InputState: Make CONTROL_GetInput()
return an object instead of accepting a pointer and provide to games as a function parameter.
...
* Provide read-only/const results from `CONTROL_GetInput()` so games can't change received input.
* Change non-descript `info` to `hidInput` (Human Interface Device).
* Remove a few unused prototypes.
2020-09-06 20:18:26 +10:00
Christoph Oelckers
a6c92aec64
- removed all automap code from SW and the flat drawer from the backend.
...
This should have been the last parts of automap code.
Now on to rebuild this thing in a cleaner fashion...
2020-09-06 12:14:08 +02:00
Christoph Oelckers
2c183bf504
Merge remote-tracking branch 'remotes/Github_private/back_to_basics2' into automap
2020-09-06 11:47:35 +02:00
Mitchell Richters
677efb20ba
- SW: Don't check SB_RUN
as player action in ChopsCheck()
.
...
Fixes #312 .
2020-09-06 19:18:14 +10:00
Mitchell Richters
d73ea118df
- SW: Get cl_syncinput 0
(default) working properly.
...
* Joystick input probably not appropriately scaled. Refactor is coming but lets just get the game workable for now.
* Fixes #328 .
2020-09-06 19:17:58 +10:00
Christoph Oelckers
d61d279168
- excised Blood's entire automap code.
2020-09-06 10:59:45 +02:00
Christoph Oelckers
8f6f368445
- cleaned out the remaining parts of automap handling in Duke and Exhumed.
2020-09-06 10:42:39 +02:00
Christoph Oelckers
df6d480519
- took automap code out of Exhumed's game module and added handling for cleaning movement in automap follow mode.
...
I cannot say I was surprised when discovering that this game had no handling for that at all...
2020-09-06 10:23:38 +02:00
Christoph Oelckers
d947cc4765
- also took out the zoom variable so that no automap data remains in the playsim code.
2020-09-06 10:22:05 +02:00
Christoph Oelckers
c1a995822d
- took all automap related code out of Duke's game module.
2020-09-06 10:08:47 +02:00
Christoph Oelckers
07ea2ef350
- fixed Ramses head animation.
...
This now uses the DoSpiritHead variant from PowerslaveGDX because I was unable to determine where in that cryptic code something went wrong. The GDX version looks a lot more cleaned up by comparison.
Fixes #332
2020-09-06 09:48:26 +02:00
Christoph Oelckers
0b399fb384
- Exhumed: fixed time values for Ramses text scroll.
2020-09-06 09:10:45 +02:00
Mitchell Richters
72771aeb40
- Fix broken krand()
follow changes in 1354d52c05
due to truncation occuring from FixedToInt()
inline function.
...
Very very sorry... :'(
Fixes #321 .
2020-09-06 16:37:04 +10:00
Christoph Oelckers
d6b80bda52
- force the renderer to use radial fog.
...
Plane-distance based fog does not work with Polymost's projection settings - the distance value appears to be completely off and useless.
Fixes #243
2020-09-06 00:19:38 +02:00
Christoph Oelckers
dc0968bf61
- fixed fog on RRRA E2L1
...
Fixes #183
2020-09-05 23:20:48 +02:00
Christoph Oelckers
ac0eb92367
- fixed timer screwups in Exhumed.
...
The leveltime ticker only runs at 30 fps so all places where it replaces totalclock need to multiply it by 4.
2020-09-05 22:41:02 +02:00
Christoph Oelckers
7dbae8b8f4
- enabled autosaves.
...
Fixes #55
This only creates them but does not auto-resume from them.
2020-09-05 22:39:27 +02:00
Christoph Oelckers
45882a02cc
- fix WT level name display.
2020-09-05 22:14:00 +02:00
Christoph Oelckers
8b2302ec67
- backslash eradication in sound definitions.
...
World Tour does this badly, even using double backslashes.
2020-09-05 22:01:19 +02:00
Christoph Oelckers
d5b7935ca1
- fixed the CON parser to treat tabs as whitespace.
...
Fixes #287 .
World Tour starts now but still has issues.
2020-09-05 21:53:48 +02:00
Christoph Oelckers
36b9ac54b7
- added a parser for World Tour's language files.
2020-09-05 21:33:04 +02:00
Christoph Oelckers
8dfb7967e2
- use a more precise timer for Exhumed's text scroller.
2020-09-05 20:31:45 +02:00
Christoph Oelckers
a7b198d7ee
- Stop music when ending a level, or when going back to the menu in Blood. Also play the sound on Blood's summary screen as an UI sound.
...
Fixes #349
2020-09-05 19:20:25 +02:00
Christoph Oelckers
b4dd006a40
- debug output for investigating Exhumed text crawl.
2020-09-05 18:41:40 +02:00
Christoph Oelckers
f36ac1dc90
- fixed issues with console on top of intermissions not appearing.
2020-09-05 18:41:18 +02:00
Christoph Oelckers
443ddf670b
- let the ANM player wait until the sound has finished if it has reached the last frame before the sound ends.
...
In Shadow Warrior there's a few where the sound plays a bit longer than the video.
Fixes #341
2020-09-05 18:14:50 +02:00
Christoph Oelckers
607d30ef8e
- fixed broken end of level timer in Duke.
...
Fixes #342
2020-09-05 17:56:35 +02:00
Christoph Oelckers
55c7c56709
- fixed bad sound check in Duke's E3 ending.
2020-09-05 17:56:09 +02:00
Christoph Oelckers
27acd430aa
- reset the screen job clock when advancing.
...
Fixes #347
2020-09-05 17:37:37 +02:00
Christoph Oelckers
fa50cde93f
- fixed skill selection in Duke.
...
Screw these old shadowing menu variables. Well, the one for skill is gone now.
Fixes #344
2020-09-05 16:31:01 +02:00
Christoph Oelckers
9af093b818
- fixed screen job timer when paused
...
Fixes #343
2020-09-05 16:21:53 +02:00
Christoph Oelckers
e0b4dde3cd
- fixed: A screen job that fades out was not rendering its final (black) frame which could result in visual glitches.
...
Fixes #320
2020-09-05 15:59:32 +02:00
Christoph Oelckers
c1786001b2
- route all game state changes through game actions.
...
This is to avoid problems with the main loop not calling Ticker and Render in sync.
2020-09-05 15:43:34 +02:00
Christoph Oelckers
7a5dca7d5d
- renamed startgame CCMD to levelstart.
2020-09-05 14:02:07 +02:00
Christoph Oelckers
32ec9ff369
- consolidated crosshair drawing and added ZDoom's crosshair code.
...
For Exhumed this is the default, for the other games it is an option.
Fixes #269 .
2020-09-05 13:57:26 +02:00
Christoph Oelckers
0263d8eed0
- Exhumed: Don't waste health powerup if fully healed.
...
Fixes #309
2020-09-05 12:29:09 +02:00
Christoph Oelckers
04dd939d65
- Exhumed: don't clear all button state when dead.
...
This makes it impossible to respawn.
Fixes #338
2020-09-05 12:14:30 +02:00
Christoph Oelckers
7c5635671e
- Exhumed: When Ramses is talking, hide the status bar.
2020-09-05 12:01:47 +02:00
Christoph Oelckers
b23424485a
- re-implemented VP8 support.
...
Since the decoder cannot handle sound, there's two options:
1: Use the same sounds as the video it replaces.
2: If an identifiable streamable sound with the same base name is found, it will be played along with the video.
Fixes #133
2020-09-05 11:58:19 +02:00
Christoph Oelckers
80cea90854
- implemented zoom by mouse wheel for the automap.
...
Fixes #121
2020-09-05 09:10:24 +02:00
Christoph Oelckers
adbedd30c4
- consolidated the 4 functions for handling the automap zoom.
2020-09-05 00:58:25 +02:00
Christoph Oelckers
6e6d74f058
- update the sector for the interpolated camera position in Exhumed.
...
Let's hope that fixes #272..
2020-09-05 00:21:10 +02:00
Christoph Oelckers
b54fd2f054
- fixed: Entering the menu from SW's intro may not stop the sound.
...
This is a singular special case, everything else must do it.
Fixes #335
2020-09-05 00:07:06 +02:00
Christoph Oelckers
cdd2329b63
- fixed levelwarp for games with linear level counting.
...
Fixes #337
2020-09-05 00:00:55 +02:00
Christoph Oelckers
d2de11cd99
- hide the message display on intermission screens.
...
Fixes #336
2020-09-04 23:56:04 +02:00
Christoph Oelckers
f72b283519
- fixed alignment of Exhumed's menu captions.
2020-09-04 23:31:41 +02:00
Christoph Oelckers
5a90f35aed
- fixed order of Exhumed cinema texts and their color.
...
Fixes #286
2020-09-04 23:16:21 +02:00
Christoph Oelckers
b7db8b988d
- SW: Ignore follow mode setting when not on the automap.
...
Fixes #311 .
2020-09-04 22:54:11 +02:00
Christoph Oelckers
2e8b808683
- added a C_ClearMessages function for the console and fixed game restart after death.
...
Fixes #322
2020-09-04 22:23:38 +02:00
Christoph Oelckers
1eb99f69c2
- transitioned Exhumed to level change events.
2020-09-04 21:59:38 +02:00
Christoph Oelckers
8114309e89
- compat.h cleanup.
...
* use static_assert directly. Raze is C++17, no need for that macro shit.
* removed CONSTEXPR - I seriously fail to see the use here, many of the functions marked as CONSTEXPR cannot possibly even be constant evaluated so the declaration makes no sense. Removed most of these and replaced the valid ones with the official constexpr keyword.
* got rid of EDUKE_PREDICT_FALSE - this makes zero sense in script parsing code, at best it will save a few microseconds. Clean code wins.
* replaced Blrintf with xs_CRoundToInt. Shitty name is shitty name, even if derived from POSIX.
* replaced Bstr*casecmp with str*icmp. As these get defined in the CMake project based on actual compiler checks they are preferable here.
* removed lots of other stuff that is not needed with a minimum compiler requirement of C++17.
2020-09-04 21:24:48 +02:00
Christoph Oelckers
5bc80d2468
- macro cleanup
2020-09-04 21:17:24 +02:00
Christoph Oelckers
fd2ce0321e
- transitioned SW to level change event system
2020-09-04 21:15:15 +02:00
Christoph Oelckers
b8d2d626ca
- cleaned out some leftover network variables
2020-09-04 20:48:29 +02:00
Christoph Oelckers
3eef0db6f6
- check if a map file exists before starting it.
2020-09-04 20:47:40 +02:00