Christoph Oelckers
aed8a450fd
- SW: fixed episode menu display.
...
The subtitle needs to use the game specific drawer, not the generic one.
Fixes #162
2020-11-08 10:12:12 +01:00
Mitchell Richters
8178d20f97
- c_notifybuffer.cpp: Center and pulse text for all RR games in DrawNative()
.
...
* Fixes #163 .
2020-11-08 10:39:45 +11:00
Mitchell Richters
f9f365a593
- Ensure crouch_toggle
bool from 6e3d414b3c
is serialised when saving game, and cleared when InputState::ClearAllInput()
is called.
2020-11-08 07:30:48 +11:00
Mitchell Richters
ade1a80515
- gameinput.cpp: Remove crouch bool from applylook()
since we can now just rely in the actions bitfield that's already incoming as required and default scaleAdjust
in the prototype to 1
.
2020-11-07 18:25:06 +11:00
Mitchell Richters
6e3d414b3c
- inputstate.cpp: Move checkCrouchToggle()
from gameinput.ccp into ApplyGlobalInput()
and use static bool for crouch toggling vs. game-side bool.
2020-11-07 18:16:16 +11:00
Mitchell Richters
a153ebab7e
- SW: Migrate crouch toggling to backend solution implemented in 4ef0d20e0e
.
2020-11-07 17:53:11 +11:00
Mitchell Richters
4ef0d20e0e
- gameinput.cpp: Consolidate checkCrouchToggle()
from Duke with discrete implementations from Blood in 7c8efde38c
and Exhumed in 032db82f82
to unify the functionality.
2020-11-07 13:44:25 +11:00
Mitchell Richters
c9708a5464
- CONTROL_GetInput()
: Reverse polarity of dx/dz and update processMovement()
appropriately.
2020-11-07 09:56:57 +11:00
Christoph Oelckers
7a482c6284
- make DHUDFont an object.
2020-10-31 13:20:54 +01:00
Christoph Oelckers
7de6528a1f
- the status bars work as objects.
...
# Conflicts:
# source/common/menu/menudef.cpp
2020-10-31 13:20:54 +01:00
Christoph Oelckers
3b7ce26c86
- final function moves and renamed hud_scale to hud_scalefactor.
2020-10-31 13:20:00 +01:00
Christoph Oelckers
0270dcd5f6
- cleaned up leftovers.
2020-10-31 13:20:00 +01:00
Christoph Oelckers
37024df405
- Status bar draw code is now identical with GZDoom's.
2020-10-31 13:20:00 +01:00
Christoph Oelckers
3a0c84d3ca
- split statusbar.cpp in two.
...
To keep Raze-exclusive content out of the main file that's about to be edited.
2020-10-31 13:19:59 +01:00
Christoph Oelckers
c53653106e
- fixed compilation.
2020-10-31 12:46:53 +01:00
Christoph Oelckers
e5ce1da9a3
- this is 0.7.3.
2020-10-31 12:41:17 +01:00
Christoph Oelckers
74df8f55da
- moved c_console.cpp to 'common'.
2020-10-25 13:26:40 +01:00
Christoph Oelckers
8d3585afe1
- console cleanup.
...
The bulk of the console is now free of game dependencies.
2020-10-25 13:14:42 +01:00
Christoph Oelckers
273ad5e133
- backend update
2020-10-25 09:20:26 +01:00
Christoph Oelckers
570897005c
- added sound playback to the Smacker video player.
...
Thanks to Blood's weird setup and the resulting lack of sound support in NBlood's player I never realized that this is a fully featured movie format that actually has sound support.
Now the soundtrack will play if present.
2020-10-25 00:46:39 +02:00
Christoph Oelckers
aeda977bc2
- fixed incomplete font initialization.
2020-10-24 21:02:00 +02:00
Christoph Oelckers
f02cf7e067
- fixed issues with fog setup and added missing fog to Exhumed's red palette.
...
Foggy lookups should not attempt to calculate a fade ramp, that does not work if the color gets brighter with distance.
Fixes #143
2020-10-24 20:33:33 +02:00
Christoph Oelckers
8868be659f
- make snd_speech toggle work in SW.
2020-10-23 22:53:02 +02:00
Christoph Oelckers
e702a13ef4
- close the quickload and quicksave confirmation screens after selection.
...
Fixes #139
2020-10-22 01:01:28 +02:00
Mitchell Richters
c98f7ac491
- gameinput.cpp: Don't set a target when serialising PlayerHorizon
struct.
...
* Fixes #131 .
2020-10-22 09:41:21 +11:00
Christoph Oelckers
699c32ff4a
- fixed quicksave setup
...
Fixes #133
2020-10-20 23:34:30 +02:00
Mitchell Richters
a00da23654
- searchpaths.cpp: When filtering duplicate games to delete, if CRC matches and CRC == 0, test whether name matches as well.
...
* Cryptic Passage for Blood has no CRC and therefore was failing this catch.
* Fixes #130
2020-10-19 20:46:22 +11:00
Mitchell Richters
ff9c7bf0bb
- binaryangle.h: Create osum()
for PlayerHorizon
and PlayerAngle
structs and use within each struct's interpolatedsum()
method.
...
* Already doubled up by calculating `sum()` again within `interpolatedsum()` and no point changing that out without an `osum()`.
2020-10-18 22:43:42 +11:00
Mitchell Richters
cd683e6511
- binaryangle.h: Add missed line from 4e07942cff
to calculate interpolation ratio using multiply instead of divide. Hopefully in the future we can just use a true double between 0 and 1 like GZDoom...
2020-10-18 22:05:21 +11:00
Mitchell Richters
4e07942cff
- binaryangle.h: Minor clean up of PlayerHorizon/PlayerAngle structs.
...
* Sync PlayerHorizon's `settarget()` with changes to PlayerAngle's from 19d9e1a947
.
* For each struct's `addadjustment()`, multiply value by unit there rather than always within `processhelpers()`.
* Properly use `xs_CRoundToUInt()` within PlayerAngle's `processhelpers()` method instead of the signed version.
* Use `abs()` within PlayerAngle's `processhelpers()` like PlayerHorizon's.
2020-10-18 22:00:39 +11:00
Mitchell Richters
19d9e1a947
- binaryangle.h: Fix issues with PlayerAngle.settarget()
following changes in bf5bd01164
.
...
* Just was not working whatsoever, really...
2020-10-18 21:31:36 +11:00
Christoph Oelckers
c2828fe2e3
fixed undefined end of list behavior of iterators
...
Also fixed a few warnings
2020-10-18 12:14:05 +02:00
Mitchell Richters
a9ad043c36
- Partially resolve issues loading autoexec.cfg files.
...
* This works for Raze's running directory, but is not pulling in autoexec.cfg files from subdirectories from Raze's running directory (Duke, Duke.Duke) or paths where game content resides (Steam, for instance).
* Partially addresses #110
2020-10-17 12:58:00 +11:00
Mitchell Richters
6385539144
- Port over i_timescale
CVAR from GZDoom for use with debugging.
...
* Had situations where this would have been useful instead of manipulating GameTicRate and rebuilding.
2020-10-16 10:31:11 +11:00
Christoph Oelckers
eb78b88598
- all Blood stat iterators ported.
2020-10-15 20:22:39 +02:00
Mitchell Richters
fb91fc49a3
- processMovement(): Add commentary around avel constants used within function and how they came to be. Also clean up some left-over code.
2020-10-15 20:12:34 +11:00
Christoph Oelckers
25d79285a3
- added the resource file name to the listmaps printout.
2020-10-14 01:13:36 +02:00
Christoph Oelckers
c17808d789
- extended 'listmaps' by also printing the display name for the map.
2020-10-14 00:58:43 +02:00
Mitchell Richters
fcfeafdbe9
- mapinfo.cpp: Create CCMD listmaps
to return map filenames.
2020-10-14 09:38:37 +11:00
Christoph Oelckers
129aa864dd
- do not accept any input in the first 0.1 seconds of running a screen job.
...
This is to avoid accidental skipping by pending game input.
2020-10-13 23:36:27 +02:00
Christoph Oelckers
df86a11d23
- fixed palette of Exhumed's game over screen.
2020-10-13 23:29:12 +02:00
Christoph Oelckers
ef15ac8b6e
- fixed: For the episode and skill menu, autoselection for single entries did not work.
2020-10-13 22:16:43 +02:00
Christoph Oelckers
99b4a64a67
- removed the PSPTwoDSetter
...
This is no longer needed because all weapon drawing is using the proper interface now.
2020-10-13 21:38:24 +02:00
Christoph Oelckers
817fa8aba3
- save the entire engine state as JSON.
...
The sprite lists may still need optimization. Due to different handling between Blood and the core engine they need to be written out completely which is quite wasteful.
2020-10-13 20:18:08 +02:00
Christoph Oelckers
742917c6d7
- re-enabled the autoload-after-death function.
...
This had to be disabled for the menu but somehow was missed when reenabling these things again.
2020-10-12 19:42:16 +02:00
Christoph Oelckers
86ad576675
- fixed lockup on Shareware screen when quitting Duke
...
Two errors: the menu wasn’t closed and the shareware check was inverted.
2020-10-12 08:07:51 +02:00
Mitchell Richters
a792f329ca
- binaryangle.h/PlayerAngle: Fix incorrect variable declaration on dang
within interpolatedsum()
method.
...
* Didn't seem to be causing an issue but better it be correct.
2020-10-12 16:28:05 +11:00
Mitchell Richters
bf5bd01164
- binaryangle.h/PlayerAngle: Make settarget()
method consistent with PlayerHorizon
class and fix incorrect variable declaration.
2020-10-12 14:51:53 +11:00
Christoph Oelckers
b4a011300a
- implemented proper delta serialization for sectors and walls.
2020-10-11 21:11:38 +02:00
Christoph Oelckers
f12c6b0319
- removed wallext because its only member 'blend' is not used by anything.
...
This is a feature not worth preserving, render style + alpha should be done directly, not via indirect lookup tables.
2020-10-11 18:44:16 +02:00
Christoph Oelckers
fd31da3115
- save sectors and walls as JSON
...
This is not optimized yet so saves are a bit larger than necessary.
2020-10-11 18:10:52 +02:00
Christoph Oelckers
cb8d2eb94c
- added serializers for PlayerAngle and PlayerHorizon.
2020-10-11 16:55:12 +02:00
Christoph Oelckers
1757ef2aa6
- split the game input code off gamecontrol.cpp into its own file.
2020-10-11 16:33:43 +02:00
Christoph Oelckers
8e1c71b867
Merge branch 'InputContinuation'
2020-10-11 15:24:51 +02:00
Christoph Oelckers
fc82b3bc8a
- Duke: replaced the game type macros with inline functions.
2020-10-11 14:30:42 +02:00
Christoph Oelckers
8b8c6a5e3a
- fixed episode default.
2020-10-11 07:44:51 +02:00
Mitchell Richters
5011b10549
- binaryangle.h/cpp: Inline the functions created in 271eb1c3fa
. No real need to have a separate file for these.
2020-10-11 15:34:18 +11:00
Christoph Oelckers
820b37721b
- moved tab completion code into 'common' as well.
2020-10-11 00:08:07 +02:00
Christoph Oelckers
242a70e610
- split the command line buffer off from c_console.cpp and reactivated the check for CONBACK.
2020-10-10 23:16:08 +02:00
Christoph Oelckers
fe2e96d3a6
Merge branch 'master' into InputContinuation
...
# Conflicts:
# source/games/duke/src/duke3d.h
2020-10-10 21:39:27 +02:00
Christoph Oelckers
dcde91b0c9
- do not wrap the simple value wrappers into a JSON object when being serialized.
...
It only adds to the processing time - they can just be written out as-is.
2020-10-10 21:36:12 +02:00
Christoph Oelckers
16a4d49268
- added background dimming for the menu when in overlay mode.
2020-10-10 18:29:15 +02:00
Christoph Oelckers
f9ab77f700
- create named texture copies for 'tilefromtexture' replacements.
...
We want to be able later to find them in the texture manager again.
2020-10-10 16:52:04 +02:00
Christoph Oelckers
c478d1add2
- properly uninit the menus.
2020-10-10 15:16:28 +02:00
Mitchell Richters
271eb1c3fa
- binaryangle.h/cpp: Hook up FSerializer and use within Duke for saving objects.
2020-10-11 00:10:53 +11:00
Christoph Oelckers
91e23b3ab5
- Exhumed: play the menu advance sound when starting a game
2020-10-10 13:30:23 +02:00
Christoph Oelckers
294a806793
- fixed some issues with prematurely terminated sounds.
2020-10-10 12:57:43 +02:00
Christoph Oelckers
db21d5e946
- took all script exports out of the namespaces.
...
It looks like GCC cannot deal with this - on MSVC it works fine.
2020-10-10 10:11:22 +02:00
Christoph Oelckers
16fd505f9a
- make sure that sfxinfo_t is always fully initialized by adding initializer values to all fields.
...
Let's hope this finally fixes those sound hiccups.
2020-10-10 09:47:00 +02:00
Christoph Oelckers
2237113a77
- fixed font scaling in RR's confirmation screens.
2020-10-10 00:51:26 +02:00
Christoph Oelckers
03e57fa3d7
- fixed Exhumed's game startup.
2020-10-09 23:58:34 +02:00
Christoph Oelckers
d6d9100992
- set proper slider colors for all games.
2020-10-09 23:35:38 +02:00
Christoph Oelckers
b21beb4039
- made the options search work.
...
This required changing how the engine credits menu work because it created a circular dependency in its original form.
2020-10-09 22:33:02 +02:00
Mitchell Richters
9c993b9104
- d_protocol: Change horz/avel pack/unpacking from long to float.
2020-10-09 16:18:28 +11:00
Mitchell Richters
44e4c5ff78
- Fix joystick scaling following shift to fixedhoriz and binangle.
...
* Remove joystick scaling from `CONTROL_GetInput()`.
* Store turnspeed as constant at top of `processMovement()` and use it for joystick yaw/pitch scaling. This adds the advantage of having the out-of-box turning speed match the keyboard's turn speed and also attenuates when the player is not running.
2020-10-09 11:34:14 +11:00
Christoph Oelckers
2d8bcd06fd
- added the player display for Duke.
...
This completes the menu transition.
2020-10-09 01:09:51 +02:00
Christoph Oelckers
4024ebd12d
- re-added Duke 1.3's credit screens.
2020-10-09 00:11:49 +02:00
Christoph Oelckers
19c719db4e
- image scroller is working again.
2020-10-08 22:53:12 +02:00
Christoph Oelckers
6ba06f5ed0
- ImageScroller WIP commit.
2020-10-08 22:20:41 +02:00
Christoph Oelckers
15eaf86f5a
- preparations for the image scroller menu.
2020-10-08 18:02:25 +02:00
Mitchell Richters
f35bec4a5d
- Fix interpolation issues and do other minor fixes following shift to fixedhoriz and binangle.
...
* When interpolating on the initial setup, when binangle reached an overflow point when going lower than zero, the engine was spinning the player around clockwise to the new angle (2047, for instance).
* Interpolating after casting as uint64_t with a workflow similar to the original games, the issue went away.
* Cleaned up other interpolation functions to be of a consistent workflow.
* Scale keyboard input turning down to degree speeds.
* Uplift some remaining Q16.16 code in `applylook()` to full BAM precision.
* Move static calculations of aim and look speeds for `sethorizon()` back into function since GameTicRate isn't set right before calculation is done.
* Simplify the angle target setup back to a basic value like before.
* Repair SW interpolation issues of weapon sprite drawer when rotating left/right.
* Fix SW death horizon constant values following change of horizon center to 0.
2020-10-08 21:12:21 +11:00
Mitchell Richters
9bcdeae6cd
- InputPacket: Change q16avel
to avel
, changing type from fixed_t to float.
2020-10-08 14:47:30 +11:00
Mitchell Richters
e53d58bd42
- gamecontrol: Clean up remainder of legacy angle code.
2020-10-08 14:29:50 +11:00
Christoph Oelckers
56eae0b42d
- got the basics working for Exhumed's main menu.
2020-10-08 00:21:07 +02:00
Christoph Oelckers
a953404331
- SW's text menus done.
...
This also copies the Build texture animation info into the texture manager so that the 2D code can access it through existing interfaces.
2020-10-07 23:22:29 +02:00
Christoph Oelckers
789eb6d51d
- Most of Duke's menus work again.
2020-10-07 20:32:43 +02:00
Christoph Oelckers
2bb38f7d67
- get load and save game menus and related CCMDs working again.
2020-10-07 18:32:57 +02:00
Mitchell Richters
40cb64cdcf
- applylook(): Remove some forgotten debug lines.
2020-10-07 23:40:41 +11:00
Mitchell Richters
babd7b9556
- InputState: Proposed new sensitivity dividers now that mouse input is based on true pitch and true angle.
2020-10-07 23:25:36 +11:00
Mitchell Richters
fca846272e
- gamecontrol: Initial setup of PlayerAngle
struct and deployment within Duke.
...
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Mitchell Richters
0c55a533be
- PlayerHorizon: Change struct functions to declarations and define code in gamecontrol.cpp to reduce binary size.
2020-10-07 18:25:50 +11:00
Mitchell Richters
6a30d6880e
- InputPacket: Change q16horz
to horz
, changing type from fixed_t to float.
2020-10-07 18:22:07 +11:00
Mitchell Richters
d16b4651bb
- gamecontrol: Remove old horizon code left behind while cutting over each game.
2020-10-07 18:12:09 +11:00
Mitchell Richters
6da756cc9f
- Exhumed: Cut q16horiz
over to PlayerHorizon struct.
2020-10-07 17:40:59 +11:00
Mitchell Richters
f39939d114
- gamecontrol: Initial setup of PlayerHorizon
struct and deployment within Duke.
...
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00
Mitchell Richters
082336e5f8
- buildhoriz: Implementation of pitch and BAM conversion code.
...
* Determined maximum horizon able to be handed by engine in Q16.16 format is 280039127.
* Re-did pitch math to work on this known maximum and standardised pitch around -90/90 degrees as it should be.
* Because pitch is now -90/90 and not ~-188/188, m_sensitivity_y probably requires re-scaling.
2020-10-07 13:29:04 +11:00
Mitchell Richters
09a05f354c
- Re-standardise horizon around 0 and not 100.
...
* Blood had this right. It makes sense that the horizon be based around as it's easier to work with.
* Removed all associated game math to deduct default horizon of 100 when doing weapon zvel etc, meaning actual horizon can just be used.
* Re-did return to center function to work on the already converted pitch. Return speed should be 1:1 with previous code.
2020-10-07 13:28:45 +11:00
Christoph Oelckers
38ddbfe65f
- activated most of the support code for programmatically created menus again.
...
Blood's regular menu screens mostly work again
2020-10-07 01:31:41 +02:00
Christoph Oelckers
5726b693bd
- added back the menu transition, although it cannot be used yet, and all game specific menu CCMDs.
2020-10-07 01:12:57 +02:00
Christoph Oelckers
0968a9d97e
- renamed the Customizer to 'Delegate' because this works very much like a delegate in Objective-C.
...
- route menu sound calls through the delegate to better deal with differences between games.
2020-10-07 01:00:43 +02:00