Christoph Oelckers
10df3e094a
- rework of weapon input to use common features in shared code.
...
This also adds stubs for all unimplemented features in the games for easier addition.
2020-08-27 00:53:35 +02:00
Christoph Oelckers
f597f7c265
- made the GameFunc constants global again.
...
With most of the more specific features being migrated to CCMDs the list is relatively clean now, with merely 2 buttons that are game specific.
2020-08-27 00:25:59 +02:00
Christoph Oelckers
99486cba7e
- gave Blood the same treatment.
2020-08-27 00:21:11 +02:00
Christoph Oelckers
d0655a1068
- renamed the fields in Blood's packet structure to match Duke's.
2020-08-26 16:59:41 +02:00
Christoph Oelckers
3fc79940f2
- merged the bit fields in Blood's packet structure.
...
Whatever this was for it made that thing extremely unwieldy.
With these merged the resulting structure doesn't look much different from Duke's anymore.
2020-08-26 16:59:41 +02:00
Christoph Oelckers
b76168f673
- moved the main event processing functions into the global main loop.
...
Now, with all the Build timer stuff removed these calls were all identical between games.
2020-08-26 16:59:41 +02:00
Mitchell Richters
5bfd4069ef
- Blood: Cleanup some timing variables following timing uplift.
...
* Remove cast of int on `gFrameClock` since gFrameClock is now just an int.
* Remove unused `gFrameTicks`.
* Remove unused `gFrameRate`.
* Rename `gFrame` to `gFrameCount` so it's easier to search and distinguish from `gFrameClock` without relying on regex.
2020-08-26 20:55:46 +10:00
Mitchell Richters
2bf11ad378
- All Games: Remove use of timerGetTicks()
.
2020-08-26 09:49:38 +10:00
Mitchell Richters
aba5c4c134
- All Games: Remove use of timerGetHiTicks()
.
2020-08-26 09:49:36 +10:00
Mitchell Richters
b883204f6a
- All Games: Remove remaining use of totalclock
and associated timing code.
2020-08-26 09:49:34 +10:00
Mitchell Richters
d358c71f82
- Blood: Migrate to GZDoom time code like Duke, SW and Exhumed.
2020-08-26 09:49:23 +10:00
Christoph Oelckers
9440ddb68f
- thinned out Blood's network code.
2020-08-25 23:04:08 +02:00
Christoph Oelckers
e97fb2ab7f
- reduce message spam in the notification display.
2020-08-25 20:21:18 +02:00
Christoph Oelckers
435e13dfa4
cleanup of the timer interface.
...
* rewrote all uses of timerSetCallback. Most were unnecessary or long obsolete, the sound updates need to run per frame, not per tic and the UI tickers need to be handled in the main loop anyway.
* Use a more precise timer to animate the menu transition.
* uncouple other menu animations from the game timer.
2020-08-25 19:42:11 +02:00
Christoph Oelckers
ce853c5376
- Blood does not restart the intro sequence.
...
Fixes #247
2020-08-25 18:06:16 +02:00
Christoph Oelckers
76811a1881
- InputState cleanup
...
This removes most of the InputState class because it is no longer used.
The only remaining places still checking scan codes are the modifiers for sizeup and sizedown.
All the rest was remapped to safer methods. The multiplayer taunts are currently inoperable, they will need support of shift-bindings to get proper support.
2020-08-24 20:34:18 +02:00
Christoph Oelckers
f1a988b221
- make use of map bindings
...
All automap controls have been moved there, and sizeup/sizedown have been made CCMDs, taking screen size management entirely out of the game modules
2020-08-24 20:20:15 +02:00
Christoph Oelckers
7859a29e95
- use global variables to track automap state
...
So far implemented in Duke/RR.
2020-08-24 19:31:43 +02:00
Christoph Oelckers
adb98a47ba
- restructured the main loop code so that the actual loop is in the common code.
2020-08-23 17:47:05 +02:00
Christoph Oelckers
1a0e413d5c
- use CCMDs for Exhumed's input where applicable.
...
- made crosshair toggle consistent across games.
2020-08-23 16:11:18 +02:00
Christoph Oelckers
78bfbdb253
- Exhumed status bar work.
...
Unfortunately this is a bit limited due to how the data was designed.
2020-08-20 17:04:21 +02:00
Christoph Oelckers
d645674c1c
- consolidated the DEF parser parts in the backend.
...
Only Blood had some special handling - better implement callbacks here instead of requiring a second parsing pass.
2020-08-19 20:29:37 +02:00
Christoph Oelckers
57cdcda253
- initiate a proper game state reset when ending an episode.
...
Fixes #207 .
2020-08-18 20:56:18 +02:00
Christoph Oelckers
57efb26567
- wrap Blood's main loop into an exception handler for recoverable errors.
2020-08-16 20:04:27 +02:00
Christoph Oelckers
9700b8435b
- handle Blood's level progression by the actual level data, not some episode/level pair.
...
This should allow loading user maps again.
2020-08-16 13:49:28 +02:00
Christoph Oelckers
598ea99441
- simplify the music starting code in Blood.
2020-08-16 12:35:46 +02:00
Christoph Oelckers
0ac8568be0
- removed redundant fields from Blood's startup info struct.
2020-08-16 11:58:42 +02:00
Christoph Oelckers
7bb6b6a1ee
- do not call handleEvents outside the main loop.
...
In other places I_GetEvent should be used to call the system's message pump and keep the app responsive, but all game side processing should be skipped.
2020-08-16 10:00:13 +02:00
Christoph Oelckers
ef78e8602a
- major cleanup and consolidation of the screen/hud resizing code.
...
This is now being handled by the backend, except for the processing of the key bindings which cannot be done yet.
2020-08-16 02:55:50 +02:00
Christoph Oelckers
66cb7f61a4
- fixed rendering on narrow screens with an aspect ratio less than 4:3 and removed some parts that are no longer needed.
2020-08-14 21:01:27 +02:00
Christoph Oelckers
09a3567f14
- fix some more sloppiness with Blood's global game state.
...
Fixes #171 .
2020-08-12 19:11:16 +02:00
Christoph Oelckers
05fbfa3f25
- Blood: When starting a new game, reset the global flag immediately.
...
Otherwise the game can get stuck in an endless loop when trying to set up a level.
Fixes 168.
2020-08-12 01:16:29 +02:00
Christoph Oelckers
83796e9eed
- changed map startup order to first play a cutscene before loading the level.
...
Something with the timers is screwing up here if a cutscene gets played - Blood's timer code is even worse than Duke's.
Fixes #151 .
2020-08-11 23:21:08 +02:00
Christoph Oelckers
0686928ee8
- fixed transition to credits in blood.
...
Fixes #150 .
2020-08-11 20:26:50 +02:00
Christoph Oelckers
6a10a7f266
- changed the rules for dimming the menu to be more clear
...
It will no longer depend on the game state when the menu was opened but the current game state - only on the dedicated menu screen there's no dimming - everywhere else a dim gets applied.
Also renamed GS_DEMOSCREEN to GS_MENUSCREEN for clarity
2020-08-11 00:46:27 +02:00
Christoph Oelckers
7a2b1ee0aa
- moved Blood's updatePauseStatus call to the main loop.
...
Fixes #149
2020-08-10 22:44:24 +02:00
Christoph Oelckers
030ca6f75d
- reset the timer after the initial cutscene in Blood
2020-08-10 22:22:27 +02:00
Christoph Oelckers
5165834441
- handle GS_FULLCONSOLE in Blood
2020-08-10 22:02:58 +02:00
Christoph Oelckers
d526c6401f
- use the generic cheat system for Blood.
2020-08-03 20:51:31 +02:00
Christoph Oelckers
35a5c4e23c
- undid hardcoded coupling of Mapinfo slots with episode/level pairs in Blood.
...
This both lifts the imposed limit of 16 levels and will allow dynamic management of global mapinfo data.
2020-08-03 20:11:30 +02:00
Christoph Oelckers
0036402be8
- removed most of the network code in Blood.
...
Mainly to expose the parts that still get used in single player because there's some problems here that need addressing.
ENet is also gone now.
2020-08-03 20:06:27 +02:00
Christoph Oelckers
3c8da8c421
- moved LocalKeys to controls.cpp
...
to consolidate input code in one file.
2020-08-03 19:08:49 +02:00
Christoph Oelckers
38616d90a3
- renamed some members of Blood's EPISODEINFO struct.
2020-08-02 23:47:21 +02:00
Christoph Oelckers
00ecea47aa
- use CCMDs for input in Blood where appropriate.
2020-08-02 20:44:37 +02:00
Christoph Oelckers
fc390e244f
- background for text screens.
2020-08-02 17:45:03 +02:00
Christoph Oelckers
1150e3ee0d
- removed unused stuff from screen.cpp and deleted screen.h.
2020-08-02 13:54:36 +02:00
Christoph Oelckers
2f94ae8160
- removed Blood's message display.
...
We'll use the common one in c_console from now on.
2020-07-31 21:06:56 +02:00
Christoph Oelckers
7bf3d5186f
- Blood font refactoring.
2020-07-31 21:05:09 +02:00
Christoph Oelckers
b308e730ea
- started replacing rotatesprite with DrawTexture.
...
As an added bonus, thia now allows stretching the menu caption box for longer texts, rotatesprite could not do that.
2020-07-31 20:39:02 +02:00
Christoph Oelckers
347ed51036
- refactored Blood's main loop.
...
* moved Smacker video playing code into the backend, so now all games can play all supported video formats
* logos and level intro/exit videos use ScreenJob
2020-07-29 23:18:08 +02:00
Christoph Oelckers
e345bf389f
- removed some inactive pieces of code.
2020-07-28 00:05:56 +02:00
Christoph Oelckers
92d94543e5
- removed the Blood demo code as it won't be usable in this form anyway.
2020-07-28 00:01:16 +02:00
Christoph Oelckers
74c4bbc0e0
- preparations for refactoring Blood's HUD drawer, mainly to pass the palette explicitly to the drawers.
2020-07-27 23:29:10 +02:00
Christoph Oelckers
8a92ecb70c
- some minor reordering of code to only have one call to credLogosDos.
2020-07-27 19:45:34 +02:00
Christoph Oelckers
218a9c84fd
- removed the last remaining Blood helpers from the file system, also deleted a few short files whose contents could be moved.
2020-07-27 19:38:41 +02:00
Christoph Oelckers
dcd773ed9d
- removed some unused pieces of code.
2020-07-27 19:37:58 +02:00
Christoph Oelckers
4e3ad09d70
- merged 5 more headers into misc.h.
...
These small header files are really counterproductive, file count has already gone down from 143 to 106.
2020-07-27 19:37:17 +02:00
Christoph Oelckers
b2f794bde5
- cache QAVs outside the file system as well.
...
- delete some voxel code that's software rendering only.
- apply Big Endian byte swapping for SFXs, as well, now that this no longer involves hacking the file system cache.
2020-07-27 19:37:02 +02:00
Christoph Oelckers
b804589f81
- implemented a proper cache for Blood's SEQs.
...
Messing around in the file system cache should be a no-go, so now it's no longer done.
This also allows reenabling the byte swapping needed for Big Endian.
2020-07-27 19:28:54 +02:00
Christoph Oelckers
bbbd7fadbb
- merged several of Blood's smaller headers.
2020-07-27 19:17:13 +02:00
Christoph Oelckers
ab9854a215
- merged the 3 sound related headers in Blood.
2020-07-27 19:17:13 +02:00
Christoph Oelckers
dfda0c9cb2
- rewrote Blood's map loader to use FileReader directly instead of implementing its own wrapper around the lump cache.
...
Also deleting a few other unused files.
2020-07-27 19:17:00 +02:00
Christoph Oelckers
aea6467d00
- call D_ProcessEvents in Blood's main loop.
2020-07-27 19:12:49 +02:00
Christoph Oelckers
be9094cb97
Silenced lots of warnings pointed out by XCode.
2020-07-23 17:02:59 +02:00
Christoph Oelckers
1e9679aceb
- removed faketimerhandler and the last static remains of EDuke's netcode.
2020-07-14 21:15:37 +02:00
Christoph Oelckers
1a0b388570
- removed a few tabledivide uses in the game modules
2020-07-14 14:08:59 +02:00
Christoph Oelckers
aa01adb2f1
- removed osd.h as it was merely a minimal wrapper around c_dispatch, giving some alias names.
...
Nothing that's needed when cutting ties to upstream.
2020-07-14 14:00:27 +02:00
Christoph Oelckers
6b86d7606f
- safety commit - does not compile!
2020-07-07 13:19:09 +02:00
Christoph Oelckers
e146e73345
- consolidated the 'music' parsing in Defs (pending a refactor of the MAPINFO system.)
...
- removed the remaining parts of the game Defs parser because we do not want anything EDuke in here.
2020-06-24 00:40:22 +02:00
nukeykt
b907791558
Blood: input code improvements
...
Repairs interpolation issues introduced in 96c9ca657e
as reported in https://forum.zdoom.org/viewtopic.php?f=340&t=69009
2020-06-17 12:22:23 +02:00
Christoph Oelckers
d4cdb31464
- backend update to make the ZScript compiler work.
2020-06-14 18:58:30 +02:00
Christoph Oelckers
60b18c7ec9
- Blood: use the 2D drawer to clear the screen for 2D display.
2020-06-12 20:31:23 +02:00
Christoph Oelckers
fc466849ce
- disabled demos in blood.
2020-06-06 09:23:44 +02:00
Mitchell Richters
daa862240d
Blood: Amend how game pauses.
2020-05-31 23:19:54 +02:00
Christoph Oelckers
8bd5f12b42
- matching sound backend code with GZDoom.
...
# Conflicts:
# source/core/sound/s_soundinternal.h
2020-05-23 12:59:11 +02:00
MexMeRcUrY
142e611125
fixes #343
2020-05-22 17:35:01 +02:00
Christoph Oelckers
fda4293013
- draw the movie franes outside of the tile system to reduce the palette maintenance.
...
The movie code has always been the part causing the most issues because it alters the palettes - the rest treats them as static data.
2020-04-13 23:58:45 +02:00
Christoph Oelckers
fac004b4d2
- palette code cleanup
2020-04-13 23:58:44 +02:00
Christoph Oelckers
ee11fba4e7
- cleaned out some software rendering-only palette code from Blood.
2020-04-12 08:30:43 +02:00
Christoph Oelckers
57cb22f135
- console code matching with GZDoom
...
Refactored the buttons to be definable locally per game for easier handling of differing input.
2020-04-12 08:30:41 +02:00
Christoph Oelckers
0ca4bbd0c4
- changed some menu related names to match GZDoom.
2020-04-12 08:30:40 +02:00
Christoph Oelckers
5584c726ba
- file system update and adjustment.
2020-04-12 08:30:40 +02:00
Christoph Oelckers
ac32194079
- code cleanup / removal of imgui.
2020-04-12 08:30:39 +02:00
Christoph Oelckers
66ecb05eb8
- use Printf as the only command to print to the console.
...
All uses of OSD_Printf, initprintf etc. have been renamed.
2020-04-12 08:30:38 +02:00
Christoph Oelckers
a7caa7b63c
- fixed some reporting stuff for Blood.
2020-04-01 22:35:56 +02:00
nukeykt
348cecb644
Blood: revert change that broke demos
2020-03-31 08:56:36 +02:00
nukeykt
c8372c233e
Blood: Tie player input to the frame rate instead of the game tickrate
...
Look up/down and spin180 are a bit broken right now.
Big thanks to terminx for similar commit for eduke32.
2020-03-31 08:56:36 +02:00
nukeykt
371b613ebe
Blood: reduce handleevents calls
2020-03-31 08:56:36 +02:00
Christoph Oelckers
de2c07aa6a
- revert all consolidation efforts between Duke and RR frontends.
...
Too many problems with different code.
2020-03-18 08:24:31 +01:00
Christoph Oelckers
a5c2152530
- consolidated the dynamic tile handling for Duke and RR frontends
2020-03-06 17:12:38 +01:00
Christoph Oelckers
9fab46b7d7
- initialize the secret hint system for each level.
2020-02-22 08:57:18 +01:00
Christoph Oelckers
4c682813e7
- more unused data removed
2020-02-12 01:00:47 +01:00
Christoph Oelckers
9fdd1d9e17
- continued work on Blood save state
...
* save and restore the ambient sound state
* removed a few unused global variables
* removed unused code from choke.cpp
2020-02-12 00:43:13 +01:00
CommonLoon102
8d7d8cc930
Blood: Clear keys on new level, fixes #308
...
# Conflicts:
# source/blood/src/player.h
2020-02-11 18:17:22 +01:00
NoOneBlood
e79a693313
Refactor of NOONE_EXTESNIONS:
...
All functions and definitions was moved to nnexts.h and nnexts.cpp files
to minimize ifdefs and generally make code more clear
# Conflicts:
# GNUmakefile
# platform/Windows/nblood.vcxproj
# platform/Windows/nblood.vcxproj.filters
# platform/Windows/props/build_common.props
# source/blood/src/actor.cpp
# source/blood/src/ai.h
# source/blood/src/aiunicult.cpp
# source/blood/src/blood.cpp
# source/blood/src/db.cpp
# source/blood/src/eventq.cpp
# source/blood/src/gameutil.cpp
# source/blood/src/gameutil.h
# source/blood/src/loadsave.cpp
# source/blood/src/player.cpp
# source/blood/src/player.h
# source/blood/src/triggers.h
# source/blood/src/view.cpp
2020-02-07 22:23:33 +01:00
nukeykt
9cc4d9f432
Blood: workaround dudeInfo OOB issue
...
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/demo.cpp
# source/blood/src/dude.cpp
# source/blood/src/dude.h
2020-02-06 18:47:26 +01:00
Christoph Oelckers
a90185bea9
- cleaned up the remaining dependencies on windows.h
...
This file now only gets included by code that really needs it.
2020-02-03 21:30:57 +01:00
Christoph Oelckers
6f3bbcba46
- fixed the demo setup for Blood.
...
This failed to read the demos in the game directory.
For those who find demos annoying there's now a demo_playloop CVAR.
Currently this is only active in Blood because the other games have demos disabled because they are non-functional.
2020-01-26 22:22:41 +01:00
NoOneBlood
0693b0efc8
- Added ifdefs for NOONE_EXTENSIONS that provides modern features for mappers
...
and changes that was required to minimize their amount in code.
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/ai.h
# source/blood/src/aiunicult.cpp
# source/blood/src/aiunicult.h
# source/blood/src/db.cpp
# source/blood/src/db.h
# source/blood/src/dude.h
# source/blood/src/gameutil.cpp
# source/blood/src/loadsave.cpp
# source/blood/src/player.h
# source/blood/src/sfx.cpp
# source/blood/src/triggers.h
# source/blood/src/view.cpp
# source/blood/src/weapon.cpp
2020-01-26 20:27:21 +01:00
Christoph Oelckers
8f41964f56
- fixed handling of statistics data.
...
Blood had the logic wrong and it wasn't saved in savegames.
2020-01-25 16:47:48 +01:00