741 Commits

Author SHA1 Message Date
Fabian Greffrath
9b138df643 only enable one per-tic reporting cheat at once 2022-01-31 15:33:22 +01:00
Fabian Greffrath
e7da1275c3
clean up I_GetTime() and I_GetFracTime() implementations (#438)
* back to Crispy Doom formula for fractionaltic calculation

* clean up I_GetTime() and I_GetFracTime() implementations

* fix typo

* whitespace clean-up

Co-authored-by: Roman Fomin <rfomin@gmail.com>
2022-01-31 09:43:57 +01:00
Pascal de Bruijn
a70fa8ec0e
m_menu: fix widescreen rendering of shareware HELP2 screen (#435) 2022-01-29 17:07:22 +01:00
Fabian Greffrath
2ad22c6601 IDMYPOS cheat back to infinite duration, some clean-ups for the RATE cheat 2022-01-28 15:26:17 +01:00
Roman Fomin
a9bcaffd7b
implement render stats (#434)
* implement render stats

* remove frame_count

* remove I_GetTimeMS()
2022-01-28 14:43:30 +01:00
Fabian Greffrath
aff317af77
IDMYPOS prints high precision coordinates for 10 seconds (#433)
* IDMYPOS prints high precision coordinates for 10 seconds

The current implementation doesn't offer much more than the player coords automap widget in overlay mode.

* restrict IDMYPOS cheat to not_dm
2022-01-28 13:49:20 +01:00
Roman Fomin
5950cb169e
fix check for umapdef entries (#432)
* fix check for umapdef entries

* search all umapdef entries
2022-01-28 13:49:09 +01:00
Roman Fomin
2fa435d46e
implement netgame reload level (#428)
* implement netgame reload level

* remove redundant declaration

* remove restart from start level when recording demo

In a netgame, the desync occurs if one of the players records a demo and the
other does not.

* force players reborn, reset rng and automap marks

* set BTS_RELOAD = 32

* always restart from startmap in netgame
2022-01-28 13:49:00 +01:00
Fabian Greffrath
043868015c
idbeholdo cancels invisibility 2022-01-27 09:48:07 +01:00
Fabian Greffrath
8bc2e2dfa6 generalize the BFG Edition IWAD fixes 2022-01-27 08:39:07 +01:00
Fabian Greffrath
a8d0cda6f7 add back crosshair drawing conditions 2022-01-27 08:01:02 +01:00
Fabian Greffrath
b7e8854b80 properly tab-aligned HU string widgets 2022-01-27 07:59:24 +01:00
Fabian Greffrath
9aaa5e0ad5 improve menu legibility for the other three IWADs 2022-01-27 07:57:54 +01:00
Fabian Greffrath
4fc2603252
add config key and input binding to disable vertical mouse movement (#430) 2022-01-26 15:59:16 +01:00
Fabian Greffrath
db6e211bc6
draw Time widget on intermission screen (#429) 2022-01-26 15:58:25 +01:00
Fabian Greffrath
7516634729 remove unnecessary string buffer for quicksave questions 2022-01-24 09:50:23 +01:00
Fabian Greffrath
b9d72afc4d
misc improvements to program exit handling (#426)
* collect all error messages and show the pop-up windows last in the exit sequence 

* remove debug stuff

* simplify char pointer arighmetics

* get rid of I_QuitVideo() again

At first sight it appears necessary and "clean" to free all used
resources on process exit. However, when a process is quit, all its
resources are freed anyway - so this doesn't buy us anything apart
from an obscure segfault in SDL_FreeSurface() (fixes #425) and some
(albeit unnoticable) delay on shutdown.

Also, this article is relevant here:
https://devblogs.microsoft.com/oldnewthing/20120105-00/?p=8683

* do not exit with an error from demo recording
2022-01-24 09:10:02 +01:00
Roman Fomin
ea137e7444
import R_ClipWallSegment function from PrBoom (#420)
* import R_ClipWallSegment function from PrBoom

* remove unused code

* restore original code

* fix unused variable

* Revert "restore original code"

This reverts commit b91d6725dbf0a1c517c0b792500a7ee7b682c0ce.

* didsolidcol is boolean
2022-01-21 17:07:46 +01:00
Fabian Greffrath
bfc4657c8e
add IDBEHOLDO cheat to disable all powerups at once (#424)
* add IDBEHOLD0 cheat to disable all powerups at once

Fixes #423

* rename cheat to IDBEHOLDO, remove crude hack to sneak digits into cheat codes
2022-01-21 08:57:00 +01:00
Roman Fomin
344bb64a63 fluidsynth: fix crash when shutdown music
Fixes #422
2022-01-18 10:22:54 +07:00
Fabian Greffrath
992e69e591 parametrize quicksave file name 2022-01-17 12:23:17 +01:00
Fabian Greffrath
f567b7ab91
skip questions and save to dedicated quicksave slot (#421)
* skip questions and save to dedicated quisave slot

* comments and clean-up
2022-01-16 21:02:46 +01:00
Fabian Greffrath
50fe15b042
support up to 8 pages of savegames (#418)
* support up to 8 pages of savegames

* add sounds to page changes

* force redraw status bar after load/save menus

* check for MBF savegames with index > 8

* fix forgotten detail

* reset quick save slot when the page is changed
2022-01-14 15:21:12 +01:00
Roman Fomin
dcb80f640b change parentheses 2022-01-14 11:27:25 +07:00
Roman Fomin
4999e6585f fix levelname on automap screen with Time/STS widget enabled 2022-01-14 11:20:43 +07:00
Fabian Greffrath
4efa1198ff prevent the total time from moving horizontally when counting up 2022-01-13 20:16:51 +01:00
Roman Fomin
2e17789741 fluidsynth: make 1.0 the maximum gain 2022-01-13 23:26:21 +07:00
Roman Fomin
91c4e580a5 properly shutdown music modules, cleanup 2022-01-13 23:24:00 +07:00
Fabian Greffrath
da7a67a992
credit where credit is due 2022-01-13 10:05:56 +01:00
Fabian Greffrath
3f8b6cf4e1
complete crosshair implementation (#416)
* implement crosshair

* fix int->boolean

* check for CROSSH patch

* lumpnum can be 0

* complete crosshair implementation

* some fixes to the crosshair implementation

 * fix patch half width and height
 * fix highlight aim angle and range for weapons without ammo
 * update crosshair properties in the ticker function
 * only draw if patch is set

* some more minor fixes

* add a fourth big crosshair

courtesy of @rfomin

Co-authored-by: Roman Fomin <rfomin@gmail.com>
2022-01-13 08:29:53 +01:00
Fabian Greffrath
cf53faa943 fix vertical position of the Time/STS widgets 2022-01-12 23:52:25 +01:00
Fabian Greffrath
b0949cca5b fix total time display on the intermission screen
Thanks @MrAlaux for the report
2022-01-12 09:42:08 +01:00
Fabian Greffrath
bdb65d2bcb Merge branch 'master' of https://github.com/fabiangreffrath/woof 2022-01-12 09:02:03 +01:00
Fabian Greffrath
770611e346 round up rendered_height 2022-01-12 09:01:44 +01:00
Roman Fomin
987cd46acd win midi: fix some silent MIDIs 2022-01-11 23:57:26 +07:00
Roman Fomin
d695e5f091
fix menu selection for items with alphaKey == 0 (#414) 2022-01-11 15:22:44 +01:00
Fabian Greffrath
e64384074c
README.md needs an overhaul (#412)
* first smaller changes to README.md

* Add licenses for win32/*

* thinned out and completed

* no know issues, savegame backward compatibility is a feature

* trim build instructions
2022-01-11 14:10:47 +01:00
Roman Fomin
73c0799180
vanilla Doom has at most 10 deathmatch starts (#413)
* vanilla Doom has at most 10 deathmatch starts

* fix declaration

* use offset in check
2022-01-11 14:09:17 +01:00
Fabian Greffrath
c47d0700dc fix indentation for clang CI 2022-01-11 12:26:50 +01:00
Fabian Greffrath
5fd4fc0c07 resize window width back when returning from widescreen mode 2022-01-11 12:21:25 +01:00
Fabian Greffrath
25d5e49fe5 the mingw-w64 POSIX/Win32 threads split hasn't yet made it into Ubuntu 2022-01-10 09:37:25 +01:00
Fabian Greffrath
d89e0a9c68 speed up cross-building CI
by installing only the relevant 64-bit POSIX-threads C-compiler
2022-01-10 09:34:38 +01:00
Fabian Greffrath
8faa155063 use system-wide installed default soundfont on non-Windows systems
That is, it works on Debian. ;)
2022-01-10 09:32:27 +01:00
Fabian Greffrath
cfd6b521fa fixes to the "backpack changes thresholds" implementation
* fix SIGFPE for weapons without a maxammo value (fixes #407)
 * blue color for ammo values higher than max threshold w/o backpack
   (fixes #406)

Thanks @hackneyed-one.

We are now 666 commit ahead of WinMBF! \m/
2022-01-10 09:22:49 +01:00
Fabian Greffrath
09e5254105
additional widget colors options (#405)
* additional widget colors options

 * backpack changes thresholds (fixes #399)
 * color of armor depends on type

* consistent wording
2022-01-07 12:58:16 +01:00
Roman Fomin
b1611a3469
implement Fluidsynth music backend (#403)
* play non-MIDI music with SDL for all music backends

* fallback to SDL by default

* implement Fluidsynth music backend

* fix mus_chorus

* set samplerate

* use Fluidsynth's player functions for pause/resume

* little cleanup

* fix initialization of SDL music backend, cleanup

* add missing static

* fix the -nosfx parameter, cosmetic changes

* remove obsolete header files from CMakeLists.txt

* add missing static

* fix some MSVC warnings

* use midiStreamPause function

* reuse IsMid and IsMus functions
2022-01-06 12:25:10 +01:00
Roman Fomin
77ac05d70e fix display level title in overlay automap mode if STS/Time widget is on 2021-12-29 17:23:52 +07:00
Roman Fomin
375253afab fix window size after exit in fulscreen mode
Fixes #402
2021-12-29 17:21:54 +07:00
Roman Fomin
30c99dd1a5
old compilers support (#400)
* better support of C89 standart

* VC6 fixes

* __pragma attribute works for _MSC_VER > 1400

* use intptr_t for char*

* C89 has no designated initializers

* correct _MSC_VER versions

* fix check

* add stdint.h for old MSVC versions

Taken from https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h

* add stdint.h to miniz.h

* make packaging work without Python

* fix window_position initialization

* replace PACKED_STRUCT with i_packed_start.h i_packed_end.h

Thus, we do not use variadic macros from C99.

* undo cmake install changes

* fix icon for VC6

* remove DESCRIPTION and HOMEPAGE_URL from project()

* remove i_packed_start.h and i_packed_end.h

* whitespace fixes

* rename PACKEDPREFIX->PACKED_PREFIX and PACKEDATTR->PACKED_SUFFIX

* MINGW check doesn't work this early

* add check for minimum cmake version for MINGW targets
2021-12-29 08:41:30 +01:00
Fabian Greffrath
8629c1072b
check for Win32 and either MSVC or cross-buildind (#398)
* check for Win32 and either MSVC or cross-buildind

I think this covers all the cases that we officially, i.e. per
README.md, support:

  * Build for Windows
    * Native
      * MSVC
        - Download libraries
      * MinGW
        - Do not download libraries
    * Cross-build
      - Download libraries
  * Build for anything else
    - Do not download libraries

* check more explicitly, do not rely on variables getting carried over
2021-12-23 14:57:29 +01:00