Commit Graph

5901 Commits

Author SHA1 Message Date
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