Christoph Oelckers
424c0ce3f4
- testing some script parser improvements.
2021-04-06 15:07:12 +02:00
Christoph Oelckers
fc314b6616
- allow loading Zips where all content is in a subdirectory.
...
The same logic as in GZDoom applies: The root must not have any other content and the subdirectory must contain identifiable game content.
Some handling was also added to strip out macOS resource fork folders because they can contain data that can confuse file detection.
2021-04-06 01:06:03 +02:00
Mitchell Richters
5984fda8a1
- PlayerAngle: Repair issues with addadjustment()
method following changes in 4ffe004483
that were affecting negative input.
2021-04-06 06:01:54 +10:00
Christoph Oelckers
869433ee2e
- fixed invalidation of programmatic textures.
...
This is only relevant for Vulkan because it stores the descriptor sets with the material, not the hardware texture.
2021-04-05 19:18:57 +02:00
Christoph Oelckers
008391a2ad
- license correction for ct_chat.cpp
...
This was supposed to get the same treatment as d_net.cpp, i.e get the old license restored and be released under a duplicate GPL/Doom Source license but it was somehow missed when it got added. Also removed all leftover Doom specific parts.
2021-04-05 08:59:06 +02:00
Christoph Oelckers
658712d893
- removed duplicate d_gui.h file.
2021-04-05 08:56:44 +02:00
Christoph Oelckers
8e31c34b06
- fixed tileImportFromTexture.
...
* the parser read numbers with leading zeros as octal, which is not wanted here
* texture lookup by file name must be forced for root directory entries.
2021-04-04 21:02:04 +02:00
Christoph Oelckers
97a0cb2a10
- handle voxel rotation in the backend to enable it for all games.
...
This was previously only present in the Blood module and missed in Exhumed from upstream so the entire option was rather pointless.
Fixes #290
2021-04-04 10:33:29 +02:00
Christoph Oelckers
952bccbf5f
- added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back.
2021-04-03 21:49:28 +02:00
Mitchell Richters
e3c2757f1c
- sethorizon(): Ensure SB_CENTERVIEW
bit is always cleared if horizon target is set.
2021-04-02 23:23:24 +11:00
Mitchell Richters
9c01bde44e
- gameinput.cpp: Block player input within sethorizon()
and applylook()
if target for each has been set by the ticker.
...
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11:00
Mitchell Richters
4ffe004483
- Further work within PlayerAngle
and PlayerHorizon
structs following 39fe9efaff
and bf2d8078a4
.
...
* Reduce code repetition.
* Clamp incoming horizon when using `settarget()` methods.
* Eliminate double calculation that was occurring in `processhelpers()`.
2021-04-02 22:47:17 +11:00
Mitchell Richters
c076310e34
- InputState::ClearAllInput()
: Only clear crouch_toggle
bool if outside of a level, and resend SB_CROUCH
sync bit if inside a level and crouch_toggle
is true.
...
* Fixes #287 .
2021-04-01 13:46:16 +11:00
Mitchell Richters
4321efa21c
- Re-arrange swaddons[]
const char array so that /gameroot
is picked up first following changes in f4b27bbd27
.
...
* Since f4b27bbd27
, `D:/Program Files (x86)/Steam/steamapps/common/Shadow Warrior Classic/gameroot/addons/Sw.grp` was being picked up instead of `D:/Program Files (x86)/Steam/steamapps/common/Shadow Warrior Classic/gameroot/SW.GRP`.
* Fixes #289 .
2021-04-01 12:25:57 +11:00
Mitchell Richters
029f8807df
- Make 360. / 2048.
a constant expression and replace all uses throughout code.
2021-04-01 10:42:22 +11:00
Mitchell Richters
aa35b6a479
- binaryangle.h: Fix constexpr issue on GCC builds following bf2d8078a4
.
2021-04-01 08:32:07 +11:00
Mitchell Richters
c630ad9110
Revert "- subjective fix to Duke 3D's RPG harsh recoil."
...
This reverts commit 839a7bcbe4
.
Revert "- Duke: Restore RPG harsh recoil behind a CVAR."
This reverts commit 88a49b0d22
.
# Conflicts:
# source/core/gamecvars.cpp
# source/core/gamecvars.h
2021-03-31 20:35:18 +11:00
Mitchell Richters
bf2d8078a4
- PlayerHorizon: Replicate changes to settarget()
and processhelpers()
methods from 39fe9efaff
.
2021-03-31 19:44:50 +11:00
Mitchell Richters
39fe9efaff
- PlayerAngle: Adjust how settarget()
methods store angle for unsynchronised angle adjustments and adjust processhelpers()
method accordingly.
...
* Repairs angle issues raised in https://forum.zdoom.org/viewtopic.php?f=340&p=1185365 .
2021-03-31 19:43:41 +11:00
Christoph Oelckers
60979ee478
- fixed: G_BuildTiccmd needs to clear the command struct.
...
This could otherwise pick up some stray data from earlier calls and create bogus input.
Fixes #97
2021-03-15 10:11:49 +01:00
Christoph Oelckers
aa789c7605
- adapt to changed value range of module master volume in ZMusic.
...
The default was far too quiet and had to be increased to let the player have comparable output to the rest of the music system.
2021-03-14 08:51:59 +01:00
Christoph Oelckers
f4b27bbd27
- sort the game selection list by definition order in grpinfo.txt.
...
This is to have consistent ordering, independent of where the files are found.
Game order is: Duke, Blood, Shadow Warrior, Redneck Rampage, Nam, WW2GI, Exhumed, all the official mission packs are grouped below the game they belong to.
2021-03-12 23:45:03 +01:00
Christoph Oelckers
ad8654ed06
- fixed maphack loader.
...
The duplicate 'currentSprite' variable prevented it from doing anything.
Also cleaned up the interface a bit to avoid using a global variable for parameter passing.
Fixes #279
2021-03-07 09:39:16 +01:00
Christoph Oelckers
9104fba3ec
- moved colormap constants to backend.
2021-03-06 23:06:26 +01:00
Christoph Oelckers
cb14e3023e
- fixed "roll" in maphack parser
2021-03-02 21:47:43 +01:00
sinisterseed
8d5682fa97
- version bump.
...
We're past 0.8 for some time now, and slowly approaching 1.0 :) .
2021-03-02 17:53:25 +02:00
Mitchell Richters
e0f1a83f40
Revert "- SW: Alt implementation for preparing a nuke."
...
This reverts commit 4fcec5f6d3
.
Functionality wasn't working properly, most players will never use it and care only for 100% originality. Was a nice idea, though.
# Conflicts:
# source/core/gamecvars.cpp
# source/games/sw/src/panel.cpp
2021-03-02 20:02:20 +11:00
Christoph Oelckers
d28d5a5e1f
- use real fog, even in palette emulation mode.
...
Using the palette to apply fog is just far too broken and cannot be kept in check with all the hacks the Build engine allows.
This only works if all elements on screen use the identity translation lookup which is basically never the case.
Real fog, on the other hand, can easily be applied to everything.
2021-02-27 13:30:52 +01:00
Christoph Oelckers
2094b6420f
- use local screen size variables in automap code.
2021-02-27 12:30:20 +01:00
Christoph Oelckers
99f1f0952a
- little bit of engine cleanup.
2021-02-25 12:16:21 +01:00
Mitchell Richters
4589f6f26d
Merge remote-tracking branch 'public/chasecam_unification'
2021-02-25 20:33:36 +11:00
Rachael Alexanderson
4c0591a25b
- port over -noautoexec
that I did from GZDoom
2021-02-21 11:12:19 -05:00
Mitchell Richters
cff97c9cf3
- calcChaseCamPos(): Restore original algorithms for new position via GameInterface struct.
...
* Averaging out the values was a net negative for all games. Each games' original value is tuned to the specific games.
2021-02-18 21:47:39 +11:00
Mitchell Richters
ba57429ac6
- Blood, Duke & SW: Create new backend chasecam function and replace game-specific versions with it.
...
* Based off SW's implementation.
2021-02-18 21:47:37 +11:00
Mitchell Richters
2abda0e27d
- All Games: Migrate each game's clock counter to backend solution.
2021-02-18 21:47:33 +11:00
Christoph Oelckers
5b6aa372ea
- fixed autoaim check and adjusted presentation in the menu to be correct for all games.
...
Fixes #264
2021-02-06 10:56:11 +01:00
Christoph Oelckers
8ffda1c9d1
- Duke: Calculate the true font height of the numbers for alignment in the Statusbar.
...
The original tiles are all 15 pixels tall, but depending on the games can vary in their true height, so use CheckRealHeight on them to get their true dimensions.
Fixes #250
2021-02-01 00:09:22 +01:00
Christoph Oelckers
7b72fccfa2
- fixed hires replacement code not to destroy the intended translation in case there is no replacement.
2021-01-29 13:08:26 +01:00
Christoph Oelckers
52ba0461bc
- fixed hires lookup for tiles using special palettes.
...
In these cases the palette needs to be ignored and the base version picked. The proper handling for this case was undefined, working in some cases and not in others.
Fixes #247
2021-01-29 11:48:32 +01:00
Christoph Oelckers
26c5d5aa32
- SW: fixed issue with autoselecting single episode entries with non-empty subtitles.
...
This case needs different offsets.
2021-01-27 23:53:26 +01:00
Christoph Oelckers
981a2c7e5c
- Exhumed: restored old static switch array.
...
There's side effects in here that broke the door logic and made doors automatically open sometimes.
2021-01-24 14:49:51 +01:00
Mitchell Richters
7fcf1c94a1
- Exhumed: Minor fixes to panning code.
...
* Stop panning if underwater.
* Remove overload from PlayerHorizon from d32dcd5f8e
that was causing problems for other games.
* Remove static bool `plrFalling` also from d32dcd5f8e
and add `bIsFalling` to `Player` struct, hooking up with save code as well.
2021-01-05 17:07:56 +11:00
Mitchell Richters
d32dcd5f8e
- Exhumed: Fix player panning when walking up/down steps while horizon is 0.
2021-01-05 11:01:41 +11:00
Mitchell Richters
5124c0daec
- Amalgamate ksgn and sgn into Sgn in cmdlib.h, and remove pragmas.h.
2021-01-05 07:31:37 +11:00
Mitchell Richters
b36bea7c69
- Replace scale()
calls with Scale()
from common.
2021-01-05 07:31:34 +11:00
Mitchell Richters
aae175f287
- Replace divscale##()
calls with MulScale()
from common.
...
* Regex for reference: divscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:20 +11:00
Mitchell Richters
2396179dfc
- Replace mulscale##()
calls with MulScale()
from common.
...
* Regex for reference: mulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:15 +11:00
Mitchell Richters
8cf2588bad
- Replace fmulscale##()
calls with MulScaleF()
from common.
...
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
7d9f868e4c
- Replace dmulscale##()
calls with DMulScale()
from common.
...
* Regex for reference: dmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:10 +11:00
Christoph Oelckers
0f3da7194a
- actually compile the game code as larger units and integrate them in the main project.
...
This eliminates the problematic subprojects for good.
Compiling the games as larger units is necessary because otherwise compile times will break down on MSVC.
2021-01-04 11:52:10 +01:00
Christoph Oelckers
e866a9e0c0
- moved setsectinterpolate/clearsectinterpolate into the backend.
2021-01-04 10:37:14 +01:00
Mitchell Richters
be12da6bfb
- Automap: Put in framework to interpolate automap player.
2021-01-02 18:23:01 +11:00
Mitchell Richters
25eaeff0db
- Wrap all g_gameType & GAMEFLAG_BLOOD
checks into isBlood()
inline.
2021-01-02 14:46:58 +11:00
Mitchell Richters
532d128afd
- Blood: Migrate game's slopetilting code to calcviewpitch()
.
2021-01-02 14:40:35 +11:00
Mitchell Richters
4397646cc4
- Duke: Move cancellation of spin from FinalizeInput()
into applylook()
in gameinput.cpp.
2021-01-02 10:26:22 +11:00
Mitchell Richters
4aae71f0ee
- InputState::ClearAllInput(): Call resetTurnHeldAmt()
when clearing input.
2021-01-02 10:00:29 +11:00
Mitchell Richters
36c25ee2a0
- gameinput.cpp: Break out processMovement()
's turnheldamt calculations into functions.
2021-01-02 09:53:03 +11:00
Mitchell Richters
3a801cbf5c
- calcviewpitch(): Set scaleAdjust
to default to 1 in prototype like other functions in gameinput.cpp.
2021-01-02 09:32:19 +11:00
Mitchell Richters
dac08a2cb9
- calcviewpitch(): Fix issue with returning horizoff
to 0 from negative slope.
2021-01-02 01:15:58 +11:00
Mitchell Richters
8003753989
- Duke/SW: Move each game's check of cl_slopetilting
into calcviewpitch()
backend function.
2021-01-02 00:34:44 +11:00
Mitchell Richters
6d12159006
- Duke/SW: Consolidate each game's slopetilting function into backend solution.
...
* Based on SW's implementation purely for its commentary, but includes a fix from Duke's.
* Allow disabling Duke's slopetilting via `cl_slopetilting` like SW.
2021-01-02 00:30:11 +11:00
Mitchell Richters
5c87b7b894
- Return to center using tangent of pitch, as per original games (Duke/SW).
...
* Preserves the original return to center feel more accurately as original algorithm can't directly translate to pitch. If we ever get rid of Build's horizon throughout the games, this can go on the chopping block then as a necessity.
2020-12-30 18:04:00 +11:00
Rachael Alexanderson
38faefa663
- set some install defaults for posix systems
2020-12-27 05:28:47 -05:00
Christoph Oelckers
fdd9c10a55
- fixed: the statistics display didn't take the HUD's scale factor into account.
...
Fixes #229
2020-12-10 19:20:24 +01:00
Christoph Oelckers
8d659bad32
- fixed V5/V6 format map loader.
2020-12-06 20:17:27 +01:00
Christoph Oelckers
c92aaaee20
- This is version 0.8.0
...
Finally out of alpha, now that the model code is working. :)
2020-12-06 10:51:35 +01:00
Christoph Oelckers
d04013066c
- build a composite texture of all the segments for sky rendering to reduce the seams between the single segments.
2020-12-04 22:29:25 +01:00
Christoph Oelckers
396e3cd524
- actually call the model animation timer somewhere.
...
Now models also animate properly. :)
2020-12-02 00:19:22 +01:00
Christoph Oelckers
92a72cef8b
- Blood: only trigger a secret if the hint system hasn't registered it.
...
There's some bugs in Blood that allow a secret to be triggered multiple times. However, since the hint system already knows which secrets were triggered, use that info to avoid retriggers.
Fixes #206
2020-12-01 12:52:42 +01:00
Christoph Oelckers
5850c7b284
- let SyncInput return a combination of gamesetinput and cl_syncinput - also serialize gamesetinput.
2020-11-30 23:45:21 +01:00
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Mitchell Richters
22f7fc93f4
- Exhumed/SW: Move code to trigger synchronised input for edge cases where its needed into gamecontrol.
2020-12-01 07:31:47 +11:00
Christoph Oelckers
ed8266df0b
- fixed bad args check in WarpToCoords CCMD.
2020-11-29 16:06:15 +01:00
Christoph Oelckers
cd1b79a703
- use stricter checks when trying to levelwarp.
...
If saving is blocked, so should changing the level.
Fixes #204 .
2020-11-29 15:22:54 +01:00
Christoph Oelckers
a34f5debe8
- route the shared control CCMDs through the game interface instead of registering local variants for each game.
2020-11-29 13:35:09 +01:00
Christoph Oelckers
48b16d5233
- cleanup on player CVAR use.
2020-11-29 13:22:04 +01:00
Christoph Oelckers
82a0e95485
- made the new interpolation system work in Blood.
...
The panning interpolations need wraparuound handling due to their small value range.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
2cd3927613
- use floats for wall panning offsets.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
357199ecc1
- cross-game, serialization-friendly and pointer free interpolation implementation.
...
Not hooked up yet.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
d545eb7aa9
- make sector panning variables floats and added some convenience wrappers.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
82d80f3f07
- Blood: handle super secrets properly in the statistics display.
...
Fixes #198
2020-11-26 07:48:34 +01:00
Mitchell Richters
80ff918b17
- gameinput.h: For PlayerAngle struct methods settarget()
, properly set target as angle + delta between angle & target within method and not game-side.
2020-11-26 17:26:29 +11:00
Mitchell Richters
e9e4590f6a
- gameinput.h: For PlayerHorizon and PlayerAngle struct methods settarget()
, always set the angle directly if backup set to true.
2020-11-26 16:42:07 +11:00
Mitchell Richters
b9e1cbb5de
- gamecontrol.h: Move getHalfLookAng()
into PlayerAngle
struct as look_anghalf()
.
...
* Uses internal struct variables at full BAM precision.
2020-11-26 16:37:37 +11:00
Christoph Oelckers
5a5f9b8e02
- backend update from GZDoom.
2020-11-23 15:54:06 +01:00
Christoph Oelckers
fde6407266
- removed the local duplication of the player name in Blood.
...
Using the global CVAR instead - once multiplayer support is in this will work for all players.
2020-11-23 09:53:58 +01:00
Christoph Oelckers
169d708547
- removed all remaining uses of tilesiz.
2020-11-23 08:55:02 +01:00
Mitchell Richters
3f14886830
- binaryangle.h: Return BAngToBAM()
as int64_t
to handle signed values without overflowing on unsigned values.
2020-11-23 10:49:47 +11:00
Mitchell Richters
89048c8e70
- binaryangle.h: Use cmath.h functions for binangle
/lookangle
trig methods as well.
2020-11-23 08:40:18 +11:00
Christoph Oelckers
b89cd6d14c
- cleanup on binaryangle.h
...
* why the reference parameters? These should be passed by value.
* removed the < and > operators from binangle class because angles should not be ordered.
* instead of calling the CRT trig functions, use the ones from cmath.h which are more reliable
2020-11-22 21:54:39 +01:00
Mitchell Richters
5ba2e7863d
- binaryangle.h: Add asbuildf()
method to all classes and use where appropriate.
2020-11-22 21:18:12 +01:00
Mitchell Richters
e57d6f8785
- Duke: Fix crane's angle settarget()
call.
...
* Fixes #185 .
2020-11-22 21:18:12 +01:00
Mitchell Richters
c42771228d
- binaryangle.h: Reverse order of binangle
and lookangle
classes and declare binangle
class a friend of lookangle
.
...
* In-prep for addressing #185 .
2020-11-22 21:18:11 +01:00
Mitchell Richters
3b3e926fd3
- gameinput.h: For PlayerAngle
struct, add int settarget()
overload and change one true call with a float to bvectangf()
.
2020-11-22 21:18:11 +01:00
Mitchell Richters
2341ed4e25
- gameinput.h: For PlayerAngle
struct, add extra addadjustment()
overloads to remove type conversions game-side, and when incoming.
2020-11-22 21:18:11 +01:00
Mitchell Richters
35845a63e2
- binaryangle.h: Expand all classes with bit-shift operators and binangle
/lookangle
classes with some lt/le/ge/gt bools to have parity with the fixedhoriz
class.
2020-11-22 21:18:11 +01:00
Mitchell Richters
42689e02c4
- gameinput.cpp: Define getincanglebam()
and slightly clean up other getincangle*() functions.
2020-11-22 21:18:11 +01:00
Mitchell Richters
d6d74c2712
- buildutils: Replace sintable[]
use within core with bsin()
/bcos()
.
2020-11-22 21:18:02 +01:00
Mitchell Richters
32a1796728
- buildutils: Replace sintable[]
use within Build with bsin()
/bcos()
, using bsinf()
/bcosf()
where appropriate.
...
* Includes a few header include shuffles to make it all come together.
2020-11-22 21:18:02 +01:00
Mitchell Richters
85bb248309
- binaryangle.h: Extend file with sine/cosine inline helper functions.
2020-11-22 21:18:02 +01:00