Christoph Oelckers
1637157f46
- removed some unused variables.
2020-10-13 21:45:21 +02:00
Christoph Oelckers
53481fb9a3
- Blood: simplified management of XSectors and XWalls.
...
This does not need a free list - they get statically allocated per level, so a simple counter is enough.
2020-10-13 20:36:57 +02:00
Christoph Oelckers
2b1284e8fa
- reorganized Blood's level structures to not use bitfields.
...
Only the single bits are still a bitfield, combined with an int in a union - all other fields are 8, 16 or 32 bit now.
For serialization this is necessary - I have to wonder anyway if the added code to process the bit fields wasn’t even more than the data savings…
2020-10-13 20:23:51 +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
20248d8e08
- fixed a few CCMDs which were blocked in the console.
2020-10-12 19:48:47 +02:00
Mitchell Richters
c08851e4c0
- Blood/Duke/RR/SW: Drop resetinputhelpers()
.
2020-10-12 14:42:43 +11:00
Christoph Oelckers
b4a011300a
- implemented proper delta serialization for sectors and walls.
2020-10-11 21:11:38 +02:00
Christoph Oelckers
e6bd5989c2
- removed some unused parts from Blood's map loader.
2020-10-11 18:34:58 +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
6acc9db540
- cleanup of the remaining homegrown Blood wrappers.
...
consoleSysMsg and dassert are gone now, all places now call the system implementation directly.
2020-10-11 14:30:44 +02:00
Christoph Oelckers
1579bec714
- Blood: got rid of ThrowError.
...
Use I_Error directly.
2020-10-11 14:30:44 +02:00
Christoph Oelckers
2769abcf0f
- Blood: Removed most #defines.
...
only ThrowError and dassert left...
The unused BitWriter class was also removed.
2020-10-11 14:30:43 +02:00
Christoph Oelckers
7b6964a08f
- Blood: #define replacement
2020-10-11 14:30:43 +02:00
Christoph Oelckers
c87185a337
- use distinct names for monster AI variables and functions.
...
I was just toying around with compiling all of these as a single unit and that uniform naming made it impossible.
2020-10-11 14:30:41 +02:00
Christoph Oelckers
2f4c78dd73
- use distinct variable names for QAV and SEQ management.
2020-10-11 14:30:41 +02:00
Christoph Oelckers
3b59bf759c
- Blood: there's no need to store the loadsave handlers in local variables that never get used.
2020-10-11 14:30:40 +02:00
Christoph Oelckers
ca288d08f4
- compile all files with script exports in the main project.
...
This hopefully gets around the failure to find these on on-Windows Builds.
2020-10-11 07:40:11 +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
a39cf290e3
- Blood: fixed: The player's inventory and some other state were reset for each level, not each new game.
2020-10-10 20:20:12 +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
Mitchell Richters
79cd5e4731
- Blood: Fix warptocoords
CCMD.
2020-10-09 12:33:47 +11:00
Mitchell Richters
c6e3b4df11
- Blood: Use backend interpolation functions for angle and rotscrnang.
2020-10-09 11:34:42 +11:00
Christoph Oelckers
a10aacea3a
- added the QAV drawer page.
2020-10-09 00:50:21 +02:00
Mitchell Richters
9bcdeae6cd
- InputPacket: Change q16avel
to avel
, changing type from fixed_t to float.
2020-10-08 14:47:30 +11: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
Mitchell Richters
bd68f67460
- Blood: Cut q16ang
/q16look_ang
/q16rotscrnang
over to PlayerAngle struct.
2020-10-08 07:55:54 +11:00
Christoph Oelckers
6041a3355c
- removed the file location reporting for Blood errors because it embeds the full path into the executable, which is not acceptable.
2020-10-07 20:52:25 +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
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
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
c03131f8d1
- Blood: Cut q16horiz
/q16slopehoriz
over to PlayerHorizon struct.
2020-10-07 17:16:58 +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
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
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
b8941a09ad
- we need this...
2020-10-06 21:11:37 +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
3dbb8cbb11
- safety commit
2020-10-05 21:47:53 +02:00
Christoph Oelckers
82612a1330
- it compiles again (with lots of code commented out.)
2020-10-04 20:11:02 +02:00
Christoph Oelckers
7661720585
- fixed Blood map loading
...
Whoever designed that map format with its idiotic encryption should burn in Hell >)
It's a needless complication and open invitation for errors.
To avoid follow up problems it now uses its own local struct for loading in the sprites and the global spritetype no longer depends on any map format and can be changed as the need arises.
Fixes #101
2020-10-03 18:35:47 +02:00
Christoph Oelckers
89d5d18b9e
- these parts were missed somehow.
2020-10-02 22:42:54 +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
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
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
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
64607834f3
- Blood: fixed application of palette from the QAV data for HUD weapons.
2020-09-25 23:55:20 +02:00
Christoph Oelckers
89bc194035
- added shareware checks to the "start game" menus.
2020-09-25 19:36:50 +02: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
4ff3810711
- Blood/Duke/RR/SW: Improvements to 3rd person viewing by modifying the rendered player's posz so the camera is looking further above the camera sprite as EDuke32 does. Blood just enables the crosshair when using 3rd person view.
2020-09-25 17:52:00 +10:00
Mitchell Richters
04af1d9ce8
- All Games: Unify processMovement()
.
2020-09-24 22:32:37 +10:00
Mitchell Richters
8690c633d8
- Blood: Add extra call to inputState.ClearAllInput()
in StartLevel()
.
2020-09-24 00:20:40 +10:00
Mitchell Richters
e078ea6ebd
- Blood/Exhumed/SW: Hook up gi->clearlocalinputstate()
.
2020-09-24 00:15:51 +10:00
Mitchell Richters
64113f8f9c
- Blood/Duke/SW: Smooth out player's zpos adjustment while in 3rd person view.
2020-09-23 23:12:59 +10:00
Mitchell Richters
407b5346e3
- Blood: Fix issues taking damage following level transitions.
...
Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=69919 .
2020-09-23 13:28:07 +10:00
Mitchell Richters
d391e56d81
- Blood: Fix a few more issues following horizon change. Chase-cam now has proper z-pos.
2020-09-23 13:20:57 +10:00
Mitchell Richters
3d58a09aeb
- Blood: Fix player's z-pos with changed horizon.
2020-09-23 08:54:19 +10: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
43a9be0ad0
- removed Blood's loadboard replacement hook.
...
It never calls engineLoadBoard but always its own map loading function directly.
2020-09-22 22:38:08 +02:00
Mitchell Richters
2f9783150c
- Blood: Correctly set playerHorizMin()
and playerHorizMax()
with respect to horizon changing from 0 to 100 like the other games (min used to be -180, max used to be 120).
2020-09-22 22:55:23 +10:00
Mitchell Richters
639ad46af1
- Blood: When dead, ensure player's horizon scales to max horizon value like before (old horizon was based on 0, not 100, so 100+120 is gi->playerHorizMax().
2020-09-22 22:52:17 +10:00
Mitchell Richters
ac635ebd0f
- Blood/RR: Replace a few playerSet*()
calls with playerAdd*()
. Because the setters continually set until target is reached, can cause some perceivable smoothness issues if ticker re-targets's player's angle/horizon before input code has reached target.
2020-09-22 22:50:27 +10:00
Mitchell Richters
f168373ecf
- Blood: Repair some ROR regressions from 31fc39b051
.
...
Potentially addresses #87 and #88 .
2020-09-22 18:14:43 +10:00
Mitchell Richters
46810ec490
- fix a few places where Q16.16 values were downscaled, only to be scaled back up again.
2020-09-22 15:51:48 +10:00
Mitchell Richters
31bb9e4d8d
- Blood: Open up MAXHORIZVEL to SW levels to compensate for removal of q16horz scaling in previous horizon code.
2020-09-22 07:46:30 +10: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
5c097c4a74
- Blood: Fix player's slope with horizon now based on 100 and not 0.
2020-09-22 07:13:48 +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
Christoph Oelckers
3810c4cb51
- Blood: instead of running the indexer after saving a state, just save the pointer before indexing to directly restore it.
2020-09-20 22:00:39 +02:00
Mitchell Richters
0ab3b33a6c
- Blood/Duke/RR/SW: Unify the player's horizon function.
...
* For Duke/SW, we continually apply `SB_CENTERVIEW` only if it was previously a toggled action, similar to Blood.
* For SW, we remove two SW-specific bits (`PF_LOCK_HORIZ` and `PF_LOOKING`) that are no longer needed.
* For Duke, we remove `return_to_center` and just use the `SB_CENTERVIEW` action bit as required.
* For `sethorizon()`, feature set and adjustment speeds are an averaged out accumulation across Duke/SW:
** GameTicRate is factored in for adjustment decisions to provide consistency for SW being the faster game.
** Adjustment amounts are half way between Duke/SW.
2020-09-20 20:01:36 +10:00
Mitchell Richters
0c4fe5f91b
- Blood: Fix remaining issues such as starting horizon, remove q16look and clean up some remaining bits in nnexts.cpp.
2020-09-20 16:21:40 +10:00
Mitchell Richters
f7957fc237
- Blood: Factor in game's tic-rate when aiming/looking up/down.
...
* Doesn't matter for Blood, but will matter for SW in a unified approach. Might as well get it right here.
* Appreciate the literal doubles in lieu of the enums isn't great, but this function will go into the backend in due course.
2020-09-20 16:21:38 +10:00
Mitchell Richters
d2501007f2
- Blood: Adapt uplifted DoPlayerHorizon()
from SW to Blood.
...
* Horizon now standardised on 100 like the other games.
* Need to determine where/why/how the player's horizon is starting out at 0 and get it to init at 100 like the other games.
2020-09-20 16:21:36 +10:00
Mitchell Richters
6a091deb67
- Blood: Re-apply input scaling removed in 495c522096e0c9b31bdf6952e612bc3d03030da2 until the entire return to centre function is standardised across games.
2020-09-20 16:21:31 +10:00
Mitchell Richters
40bbb61239
- Blood: Get death chase-cam going while unsynchronised using input helpers.
2020-09-20 16:21:28 +10:00
Mitchell Richters
6e4ee9e975
- Blood: Forbid unsynchronised input if dead.
2020-09-20 16:21:26 +10:00
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
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
6776508239
- widescreen asset setup and consolidation of .def file loading.
2020-09-16 19:13:06 +02:00
Christoph Oelckers
d1293da8dc
- connecting the dots for Blood's special tile features.
2020-09-15 01:27:24 +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
b4c297da2e
- Blood: select inventory item when using it.
...
Fixes #310
2020-09-11 19:58:16 +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