Commit graph

842 commits

Author SHA1 Message Date
Christoph Oelckers
921a7a7166 - RRRA: fixed progression from E1L7 to E2L1 plus a texture related crash.
Fixes #189.
2020-11-22 18:46:20 +01:00
Christoph Oelckers
dced173cda - JSON serializer for actor.
Also cleaned up use of gAffectedSectors and gAffectedXWalls. These are merely needed as local worker variables, not as global persistent status.
2020-11-22 12:48:42 +01:00
Mitchell Richters
d7c4e5e59f - searchpaths.cpp: Add registry detection for Powerslave/Exhumed from GOG.
* Fixes #191.
2020-11-22 22:23:01 +11:00
Christoph Oelckers
b2a7a0635b - Blood: JSON serializer for triggers
Also renaming members of struct BUSY.
2020-11-21 20:25:06 +01:00
Christoph Oelckers
7945242fa8 - removed some redundant utility functions. 2020-11-21 18:13:10 +01:00
Christoph Oelckers
4aa06ff702 - use a static table for SEQ callbacks.
This ensures that callback indices are consistent. Runtime registration as performed by NBlood has undefined order and will make savegames non-transferrable.
2020-11-21 16:34:32 +01:00
Christoph Oelckers
1535182577 - simplified the event management further and added a JSON serializer for it. 2020-11-21 15:09:38 +01:00
Christoph Oelckers
5f54eac297 - made palette loader part of the game interface.
This gets rid of the Blood 'replace' hook for thus.
2020-11-21 12:54:09 +01:00
Christoph Oelckers
36479b623d - re-fixed crosshair scale to only use one CVAR for everything. 2020-11-13 17:56:55 +01:00
sinisterseed
913239ee5d - minor adjustment to the level stats widget.
Since the widget was right on top of the status bar, the shadows behind it were slightly bleeding into it.
2020-11-13 17:12:01 +02:00
Christoph Oelckers
483e0b6574 - fixed voxel rendering in palette emulation mode.
The recent changes for replacing fonts with hires versions made the paletted handling kick in, although the voxel textures are not suitable for that.
Fixes #178
2020-11-12 19:26:16 +01:00
Mitchell Richters
735d89bfb6 - SW: Ensure save code backs up crouch_toggle and player's current input.
* Fixes #166.
2020-11-12 23:31:32 +11:00
Christoph Oelckers
2ee18b3a11 - fixed voxel rendering. 2020-11-11 20:31:27 +01:00
Christoph Oelckers
a92b4943f9 - Duke: use original colors for inventory status display.
I took one liberty and still use green/yellow/red for the percentage, but this now uses palette translations so that it works better with hires replacements.
2020-11-11 11:49:05 +01:00
Christoph Oelckers
85edf38eba - do not grayscale all hires tinting. 2020-11-11 07:57:25 +01:00
Christoph Oelckers
e2b6ebec91 - partially fixed colorization for hires replacements. 2020-11-10 23:59:04 +01:00
Christoph Oelckers
96fbfdcf86 - made hires replacements work for untranslated fonts. 2020-11-10 21:34:49 +01:00
Christoph Oelckers
8ac6a4d321 - removed redundant declaration of PickTexture. 2020-11-10 20:30:37 +01:00
Christoph Oelckers
873f4d7c0c - link hires replacements to textures instead of tile numbers.
This is needed to connect them to fonts as well because its glyphs have no tile index.
2020-11-10 20:12:46 +01:00
Christoph Oelckers
ed599d0f05 - moved the hires texture replacement logic into a backend callback.
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Christoph Oelckers
601680d08e - moved widthBits and heightBits into engine.
These functions will go away with the rest of the renderer when the time comes, so this is the right place.
2020-11-09 20:56:28 +01:00
Christoph Oelckers
61b42ea448 - fixed font color in SW's menus
fixes #165
2020-11-09 16:56:59 +01:00
Mitchell Richters
821dff9868 - ApplyGlobalInput(): Clear open button for both Witchaven games like Blood. 2020-11-08 22:00:14 +11:00
Mitchell Richters
f7e30acf85 - gamecontrol.h: Define GAMEFLAG_WHALL as bitwise or of GAMEFLAG_WH and GAMEFLAG_WH2. 2020-11-08 21:59:46 +11:00
Christoph Oelckers
e37dc08a6b - remap WH's fly to 'quick_kick', because crouch got refactored. 2020-11-08 10:51:19 +01:00
Christoph Oelckers
5d77b1fd25 Merge branch 'master' into witchaven2
# Conflicts:
#	source/core/packet.h
#	wadsrc/static/menudef.txt
2020-11-08 10:44:19 +01:00
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
aa4470a237 - SkipTicCmd(): Fix missed skip increment amount changes following expansion of fvel/svel in 6371505fb3.
Thanks, Graf :).
2020-11-08 19:15:03 +11:00
Mitchell Richters
3813913970 - WHaven: Uplift of horiz to backend code. 2020-11-08 17:51:38 +11:00
Mitchell Richters
6371505fb3 - InputPacket: Change fvel/svel from int16_t to int32_t to accommodate larger fvel/svel from Witchaven. 2020-11-08 17:00:52 +11: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
dc24dcadf5 - added input code.
Not tested yet!
2020-10-31 14:07:42 +01:00
Christoph Oelckers
725cacb8e8 - added a bit more of the GameInterface. 2020-10-31 14:07:42 +01:00
Christoph Oelckers
f09db4c943 - fixed issues with the skill menu. 2020-10-31 14:07:41 +01:00
Christoph Oelckers
15eae9c4a2 - added native notify text positioning for Witchaven.
Nothing fancy here - just a single line of text in the top left - just offset a bit from the edge of the screen.
2020-10-31 14:07:41 +01:00
Christoph Oelckers
45d2fd95a9 - implementing the Witchaven menu.
Main menu is working, skill menu still to do.
2020-10-31 14:06:12 +01:00
Christoph Oelckers
2bebe0fa6a - the WH intro movies are playing now. 2020-10-31 14:05:01 +01:00
Christoph Oelckers
a4ce1688d5 - hooked up the Witchaven frontend with the core. 2020-10-31 14:05:00 +01:00
Christoph Oelckers
e1a9ce86be - grpinfo IDs. 2020-10-31 14:05:00 +01:00
Christoph Oelckers
ff06895470 - added game identifiers for Witchaven 1+2
Lacking any main resource file, this checks for the JOESND containers to avoid rewriting the detection logic to work without containers.
2020-10-31 14:05:00 +01:00
Christoph Oelckers
f50b0f937d - added most of the remaining play code. 2020-10-31 14:04:59 +01:00
Christoph Oelckers
96637a25d1 - importing Witchaven code from GDX
This is a straight port of the GDX Java code to C++ with as few changes made as possible.
Part 1: AI code.
2020-10-31 14:04:59 +01: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
Christoph Oelckers
603c3b50ec - reimplemented Blood's menu items. 2020-10-07 00:50:26 +02:00
Christoph Oelckers
06b00887f5 - added a menu control for Blood's dripping blood. 2020-10-06 23:49:34 +02:00
Christoph Oelckers
1ea6084478 - Exhumed also done.
Also using proper assets now.
2020-10-06 22:35:25 +02:00
Christoph Oelckers
17a68bc60a - SW's caption done, too.
In this case the font is squashed to be more narrow because otherwise many texts would not fit anymore.
2020-10-06 22:01:20 +02:00
Christoph Oelckers
bec1f67178 - implemented the menu caption for Duke et.al. 2020-10-06 20:49:55 +02:00
Christoph Oelckers
d22bdf9dc7 - use an alias for the menu bar texture in Blood.
Direct tile access has been disabled for now, hopefully this can be buried deep in the engine for all eternity.
2020-10-06 20:05:51 +02:00
Christoph Oelckers
1e131eda9e - implemented Blood's menu caption 2020-10-06 00:34:35 +02:00
Christoph Oelckers
3dbb8cbb11 - safety commit 2020-10-05 21:47:53 +02:00
Christoph Oelckers
29a4955f79 - missing global variables. 2020-10-05 20:44:30 +02:00
Christoph Oelckers
9606b09ddd - update of language code from GZDoom. 2020-10-05 00:46:24 +02:00
Christoph Oelckers
f670d35ba1 - added a game-module wide lump filter for Duke and related games. 2020-10-05 00:20:33 +02:00
Christoph Oelckers
16431e9f0a - SetupMenuColors restored. 2020-10-04 22:21:11 +02:00
Christoph Oelckers
6a4b72cfef - removed obsolete calls from menudef.cpp. 2020-10-04 22:14:20 +02:00
Christoph Oelckers
f233345ba1 - move most of the menu code into the backend. 2020-10-04 21:57:35 +02:00
Christoph Oelckers
26a31a626d - option menus are working, although all colors are still wrong and the captions are not displayed. 2020-10-04 21:42:40 +02:00
Christoph Oelckers
7f6b02c451 - merged string table and system callbacks. 2020-10-04 21:15:51 +02:00
Christoph Oelckers
5d76cbcbdb - game compiles and starts again (without menu, of course)
Now it's time to rebuild the menu.
2020-10-04 20:53:37 +02:00
Christoph Oelckers
b0301d6fc9 - progress. 2020-10-04 20:11:04 +02:00
Christoph Oelckers
82612a1330 - it compiles again (with lots of code commented out.) 2020-10-04 20:11:02 +02:00
Christoph Oelckers
f8caf88089 - backend update. 2020-10-03 17:04:45 +02:00
Christoph Oelckers
89d5d18b9e - these parts were missed somehow. 2020-10-02 22:42:54 +02:00
Christoph Oelckers
e0717e30b4 - savegame version change for the new member in spritetype. 2020-10-02 22:19:32 +02:00
Christoph Oelckers
4e67197838 - added back the hijacked 'detail' member to spritetype.
This changes the Blood map loader to not use the in-game sprite structure for loading a level and moves the qsprite_filler array back into the sprite.
2020-10-02 22:18:08 +02:00
Christoph Oelckers
49642c3b3c - removed the slowdown killswitch from the ANM player.
This did not play well with SW and is generally not needed.
2020-09-30 00:28:17 +02:00
Christoph Oelckers
e8cd336f86 - same procedure for Blood.
This time there were 3 additional texts and the notify display, though, except for multiplayer content that wasn't touched yet.
The result is the same: No need to extend the tiny font with international characters
2020-09-29 22:20:25 +02:00
Christoph Oelckers
4c2ff2950a - for Duke/RR, when not using English force use of the regular text font for drawing the map label on the automap.
This essentially removes the tiny font which is simply too small to ever be able to receive a proper international extension from the equation for localization because the level name display was the only remaining relevant content using this font.
The only other screen where this font is still being used to draw text requiring translated content is the multiplayer summary which will have to be redesigned anyway if multiplayer becomes functional again.
2020-09-29 21:47:32 +02:00
Christoph Oelckers
a558703740 - bumped up the vertical mouse movement factor to 1/5 from 1/8.
1/8 was far too low for an average mouse
2020-09-29 18:14:22 +02:00
Mitchell Richters
0bb9904338 - Tune mouse input following changes in b57e13ff62.
* Reduce `hidInput->mouseturny` to previous scaling (0.25 of incoming input).
* Change `hidInput->mouseturnx` to be 0.5 of incoming input (33% slower than b57e13ff62, but matches what other ports by providing a 2:1 scale).
* Remove further divisions beyond m_side and m_forward and adjust code in `processMovement()` accordingly.
* Change scaling for `mousevelscale` in `processMovement()` to be 1/160th of keymove. Slightly lower for Duke and a lot faster for Blood where it's needed.
2020-09-29 21:02:36 +10:00
Christoph Oelckers
b57e13ff62 - mouse code update.
May still need some tweaking of the factors.
2020-09-28 22:36:43 +02:00
Christoph Oelckers
0ddf53a3ef Merge branch '0.7' 2020-09-28 21:26:43 +02:00
Christoph Oelckers
1a65be3ddc - 0.7.1 2020-09-27 20:45:54 +02:00
Christoph Oelckers
47c1c22ff7 - do not stop the music in the cross-game level-end handler.
Some maps require that it continues playing here.
2020-09-27 20:42:55 +02:00
Christoph Oelckers
9764c9de0b - use the proper variable for timer frequency only.
MinFPSRate was an obsolete leftover.
2020-09-27 16:12:52 +02:00
Christoph Oelckers
af5e3dd1b8 - render backend update from GZDoom, mostly minor stuff. 2020-09-27 16:12:51 +02:00
Christoph Oelckers
03a0cf943e -minor cleanup and backporting of con_pulsetext from Raze. 2020-09-27 16:12:49 +02:00
Christoph Oelckers
af8b7679b6 - bumped version numbers for 0.7. 2020-09-26 17:50:19 +02:00
Christoph Oelckers
3210dd5782 - fixed the noisiest value truncation warnings after shortly re-enabling them in the compiler, plus a few places where the warning pointed to incorrect code. 2020-09-26 11:59:24 +02:00
Christoph Oelckers
1e12bca0a6 - route World Tour's texts through the string table by adding an indirection option
This way they can be translated into all languages without duplicating all relevant content.
The original text files are no longer being used.
2020-09-26 10:08:48 +02:00
Christoph Oelckers
8b9853ad28 - print cheat prompts to the regular message display. 2020-09-25 22:41:17 +02:00
Christoph Oelckers
3344e73fed - fixed some crashes in the .def parser and texture initialization code. 2020-09-25 20:51:02 +02:00
Christoph Oelckers
89bc194035 - added shareware checks to the "start game" menus. 2020-09-25 19:36:50 +02:00
Mitchell Richters
e9326fffe3 - processMovement(): Slightly adjust some ratios to provide proper average values. 2020-09-25 23:07:38 +10:00
Mitchell Richters
9b12675f4e - processMovement(): Re-arrange parameter variables somewhat so game-specific parameters are at the end and to allow some common defaults so they don't need specifying. 2020-09-25 22:26:50 +10:00
Mitchell Richters
73f52b2cee - SW: Fix turn scaling while pp->sop_control and specify !pp->sop to processMovement()s allowstrafe bool instead of an unconditional true. 2020-09-25 22:17:21 +10:00
Rachael Alexanderson
410d392ba8 - enable fly cheat for shadow warrior. in other games it is currently ignored, but I think Redneck Rampage and Blood both need it at some point too 2020-09-25 13:50:29 +02:00
Mitchell Richters
ce269808dc - Remove leftover Ion Fury stuffs causing log errors like "Script error, 'D:/Program Files (x86)/Steam/steamapps/common/Ion Fury/fury.grpinfo" line 10: Warning: GRP without game defined. Ignoring'". 2020-09-25 18:06:06 +10:00
Mitchell Richters
71d667cdc9 - ApplyGlobalInput(): Fix const issue. 2020-09-25 13:33:44 +10:00
Mitchell Richters
67c8187d62 - processMovement(): Attenuate hidInput->dyaw when using for strafing. 2020-09-25 12:03:56 +10:00
Mitchell Richters
6aa494285d - processMovement(): Add scaling for Exhumed's keymove. Input was far too slow and didn't match the others. 2020-09-25 00:57:48 +10:00
Mitchell Richters
aa14ee1232 - InputState: Scale dyaw/dpitch with regards to ticrate. All testing on initial uplift was with Duke at 30Hz. SW running at 40Hz therefore is not at the same speed as the others. 2020-09-25 00:25:49 +10:00
Mitchell Richters
04af1d9ce8 - All Games: Unify processMovement(). 2020-09-24 22:32:37 +10:00
Christoph Oelckers
5a76dce5f8 - reinstated setuptile.
Apparently this is needed by some hires packs to fudge the sprite offsets.
Fortunately, setting sprite offsets is the only thing this was ever used for so it's relatively uninvasive.
2020-09-23 18:18:22 +02:00
Christoph Oelckers
5e6317b8b9 Merge remote-tracking branch 'remotes/Github_private/Blood_InputReworking' 2020-09-22 23:32:28 +02:00
Christoph Oelckers
880b811e0d - rewrote map loader to work independently of data structure sizes.
This is needed to extend a few fields that are too narrow - e.g. the texture offset fields have no room for interpolating scrolling textures.
Blood not done yet, will also need to be changed to get rid of the limits.
2020-09-22 22:40:53 +02:00
Christoph Oelckers
b06fe35c56 - removed redundant null entry in 'give' types. 2020-09-22 08:40:33 +02:00
Mitchell Richters
d40a2d3e95 Merge branch 'back_to_basics2' into Blood_InputReworking
# Conflicts:
#	source/blood/src/hudsprites.cpp
#	source/exhumed/src/status.cpp
#	source/games/duke/src/game_misc.cpp
#	source/sw/src/draw.cpp
2020-09-22 07:34:39 +10:00
Mitchell Richters
9859571ded - DrawCrosshair(): Factor in Blood's adjustable horizon which defaults to 90.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=69920.
2020-09-22 07:29:52 +10:00
Mitchell Richters
59e4fae064 - Game input: Fix miscellaneous issues.
* Duke/RR: Fix `SB_CENTERVIEW` not clearing while `cl_syncinput 1`.
* Duke/RR: Remove superfluous call to `apply_seasick()`.
* RR: Change two calls from `playerSetAngle()` to `playerAddAngle()` Updated version of `playerSetAngle()` doesn't stop setting angle until target is reached, a bit too strict for this and compromised vehicle turning.
* `applylook()`: Remove dead flag. Was only used with Duke, no other game called the function when dead anyway. Since the input helpers are processed outside of `applylook()` now this is not needed.
* `applylook()`: Extend function with a bit of commentary.
2020-09-21 17:12:53 +10:00
Mitchell Richters
f806cdcec6 - Blood/Duke/RR/SW: Unify the player's angle/horizon helper functions. 2020-09-21 17:12:51 +10:00
Mitchell Richters
7bf1cacc7f - Blood/Duke/RR/SW: Unify the player's angle function.
* For Blood/SW, exposes `SB_LOOK_LEFT`/`SB_LOOK_RIGHT` to games, hooking up `q16look_ang` and `q16rotscrnang` within.
* For SW, use Duke & Blood's return to center function and remove `PF_TURN_180` bit.
* For RR, replace a few misused bits with some bools inside of `player_struct`.
* Since bulk of functionality is sourced from Duke (30Hz), apply proper scaling so SW speed matches (40Hz).
2020-09-21 17:12:26 +10:00