Commit graph

1587 commits

Author SHA1 Message Date
Sally Coolatta
4a8222d397 Just set default renderdelta when paused
Supports multiple pause types too
2021-11-30 14:28:27 -05:00
Sally Coolatta
5fea80c61b Apply interp to models, apply sprite world offsets properly 2021-11-29 08:46:56 -05:00
Sally Coolatta
f16b567319 Menu interpolation (renderdeltatics)
`renderdeltatics` can be used as a standard delta time in any place,
allowing for smooth menus. It will always be equal to `realtics`
when frame interpolation is turned off, producing consistent
framerate behavior everywhere it is used.

Co-Authored-By: Eidolon <furyhunter600@gmail.com>
2021-11-29 07:23:04 -05:00
Sally Coolatta
5325431450 Fix crash on level load 2021-11-29 07:15:02 -05:00
Eidolon
1550210188 Implement interpolation at the renderer level
Instead of interpolating thinkers, we interpolate mobjs inside the
renderer. Further interpolation is TBI.
2021-11-29 06:43:46 -05:00
James R
2cab15c7a3 Automatically apply additive to tripwires 2021-11-28 16:34:46 -08:00
Sally Coolatta
0974d6d1f4 Reduced hitlag jitter
Makes a little easier to parse. I might have gone overboard but I really wanted to test my hunch if Ivo's issue was mostly the fact it jitters so hard :V
2021-11-28 00:08:50 -05:00
Sally Coolatta
cb5ea8b335 Add basic damage hitlag effects
- Invert high contrast greyscale colorization effect for damage hitlag
- Jitter is now also exclusive to damage-related hitlag
- Since jitter is now just tied to a flag, removed the old trick momentum hack
2021-11-27 13:38:45 -05:00
SinnamonLat
3449064b8b options menu + video options (res & ogl) 2021-11-25 23:36:42 +01:00
James R
d5c08ac034 Backport 2021 SRB2 makefile overhaul
This is a squashed commit of the following commits from
upstream:

James R <justsomejames2@gmail.com> on 2021-05-01
Commit 44d217807f71d15bd7ca69dad226458e7060ccab
> Collect makefiles

James R <justsomejames2@gmail.com> on 2021-05-04
Commit f637e28d0c1877c44acd7b01f7130625d5ea4099
> Remove bin, objs and dep directories

James R <justsomejames2@gmail.com> on 2021-05-02
Commit b31056c7d977fe3c2a5e0637589fd9521f1f6c04
> Rewrite Makefile to be modular as well as more automated
>
> Some key points for programmers:
> - Source code files are mostly listed in a 'Sourcefile'.
>   So you no longer directly edit the object list. There
>   can be multiple Sourcefiles and they can even live in
>   subdirectories--the directory name will be prepended to
>   every filename in the list. Of course, the Makefile
>   still needs to be edited to read from each Sourcefile.
> - Different rules are no longer required for source code
>   files that live in subdirectories (such as sdl/ or
>   hardware/). Subdirectories Just Work so go ham!
>
> In addition to those points, another important change is
> that the bin directory is no longer divided into platform
> subdirectories (Linux64, Mingw, etc). Executables now go
> directly into bin. If you use DEBUGMODE or target 64-bit,
> then subdirectories for 'debug' and '64' will be made
> though.
>
> Oh by the way, I don't think make clean actually removed
> files before on Windows. It should now. I also fixed as
> many little inconsistencies like that as I noticed.
>
> And now just an overview of the technical aspects that
> shouldn't affect anyone who doesn't REALLY care about the
> Makefile...
>
> objs and dep directories have been moved to a make
> directory. Makefile.cfg and its variants have been moved
> out of their various subdirectories to src/Makefile.d
> make distclean removes the bin and make directories
> entirely, but make clean and cleandep still only affect
> the current build target.
>
> When I say automation, I mean that a lot of copy pasting
> in the Makefile has been reduced.

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 53d1cbe8264196e46911c86bc4be13d44aa35dfe
> Appveyor: update executable directory

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 888073d64d1885cae0ad8b5d54bfec31e9793e0a
> Fix make clean printing header

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 3d7205d4942d1e1b2627fdf5acf9d9c82437a97b
> Fix minor errors with Windows ECHO, DEL, MD
>
> - Quotes were not removed by ECHO.
> - DEL would print an error on nonexistent file.
> - MD would do this plus return a nonzero exit code.

James R <justsomejames2@gmail.com> on 2021-05-05
Commit f9813844e7f0dfa6229062b1ebd83e4e8150c120
> Update CMakeLists.txt to use Sourcefiles
>
> This establishes (near) parity of source code file lists
> between the Makefile and CMakeLists.txt
>
> To make that change I messed around CMakeLists.txt a bit.
> It now uses target_sources and target_compile_definitions.
> I also removed some MSVC stuff since we don't actually
> care about MSVC--it made things easier.
>
> CMake minimum version 3.0 -> 3.13 for target_sources.

James R <justsomejames2@gmail.com> on 2021-05-05
Commit ec8b63d6759f0c124693ea6d5a521e8d82efd566
> Makefile: remove last of unused flags

James R <justsomejames2@gmail.com> on 2021-05-07
Commit c06817d0085ee77b0027917bca91a24e60c7deba
> Makefile: fix mingw/64 swapped with 32-bit

James R <justsomejames2@gmail.com> on 2021-05-07
Commit 9e7d80c2c44199126fa451c59fca0f98d23ad14d
> Makefile: suppress DEL error

James R <justsomejames2@gmail.com> on 2021-05-07
Commit 87afa7655a71539c7cbc7db12df18c4253187fbc
> CMake: fix ASM compile
>
> - target_sources from correct directory
> - enable_language must be used in add_executable directory

James R <justsomejames2@gmail.com> on 2021-05-08
Commit 210c9419e4bddd1fe8e9be7cb66de31119fa0d68
> Ignore -Wtrigraphs

James R <justsomejames2@gmail.com> on 2021-06-16
Commit 3a044e71cc7cf6c80d9836189511c1a58c108370
> Disable EXE disassembly and compression by default
>
> NOOBJDUMP=1 and NOUPX=1 have been removed. Make 'dump'
> target to disassemble. UPX=upx to compress executable.
>
> Setting UPX used to cause it to fail. That has been fixed.

James R <justsomejames2@gmail.com> on 2021-06-16
Commit c142b3241ddb8f1ea9b5090d20dffa43a17129ab
> Makefile: alert full path of final executable
>
> With added textual contrast.

James R <justsomejames2@gmail.com> on 2021-06-16
Commit b04c79d8a7ba4ae8f888ab94d394b6714699e107
> Say 'at'

James R <justsomejames2@gmail.com> on 2021-06-21
Commit 2d7a8c3c571bcc5335437e9db074c75af00408ce
> Makefile: use shell commands to read in Sourcefile
>
> File function is not supported < Make 4.2.

James R <justsomejames2@gmail.com> on 2021-06-21
Commit d5146945a69ebf30e6fc1fbb64558e456e0b7459
> Makefile: don't automatically set WINDOWSHELL unless PATH matches Windows norms
>
> This is for MSYS2, which requires unix shell commands.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit 5f4d7e3c5b013afe03ae2a441c82ad79bae7c66c
> Makefile: fail if old build directories exist
>
> After a checkout from before revision, old directories
> such as bin/Linux64 only remain if untracked files exist
> within. This may be confusing to the user. They may even
> use an outdated executable if it is one of those untracked
> files.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit c3ad5de912fccfdd64c510f5684883afceaa7d36
> Makefile: let variables be defined on Make line
>
> If a variable is defined as in 'make CC=gcc-10', then that
> definition overrides anything other definition in the
> Makefile.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit ed85e994a46ace07cf022b38a9abac1698a8667e
> Remove misplaced parentheses

James R <justsomejames2@gmail.com> on 2021-06-29
Commit c1ecfa306f6a0b168d4f6cbc3224ebebd4deec51
> Makefile: 'dep' not 'deps'

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 6c03f9b5b3590e01773f05bc1c31cc67a2d88fc2
> fuck

James R <justsomejames2@gmail.com> on 2021-06-29
Commit abdf5c101cbe80657f210c0b90800e2c4c6f0c05
> Makefile: report SHELL

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 22ab611daa17bd23225f3afeeba39147c0d0fe17
> Makefile: do not automatically set WINDOWSHELL
>
> According to this answer--
> https://stackoverflow.com/a/45952425
> --Make will always prefer a unix shell, even on Windows,
> if one can be found in Path. So we can't check PATH to
> determine if it's a Windows shell... this is just too much
> bother.

James R <justsomejames2@gmail.com> on 2021-06-29
Commit f79e0ee540564fcec5da7c0dc4006906492a7f30
> Appveyor: remove 64-bit target

James R <justsomejames2@gmail.com> on 2021-06-29
Commit faee657572f23cd6f8b68c077873e01c4278414e
> Appveyor: update for new Makefile

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 44b82dea58612e6f07830647e2b08555f54a7caa
> Appveyor: remove redundant CFLAGS
>
> Also changed -Wno-error=implicit-fallthrough to
> -Wno-implicit-fallthrough. For some reason Appveyor's
> version of GCC is triggering these warnings despite the
> comments, so just shut it up.

James R <justsomejames2@gmail.com> on 2021-06-29
Commit db919accd22350c087c1fd0e5122d8e490e2f171
> Appveyor: suppress real time file names

James R <justsomejames2@gmail.com> on 2021-07-12
Commit 58fa44e8dc0444eecbe701f31872fad9fa563a6a
> CMP0115

SteelT <steeltitanium1@gmail.com> on 2021-07-16
Commit 71f905f95bd4fe62dbca87208cf71b7309f12de1
> Fix gme support being effectively disabled
>
> I found this easier than trying to adjust the makefile, as it uses the same thing to automatically generate the various NO* compile options.

James R <justsomejames2@gmail.com> on 2021-08-14
Commit 824b1ab28cdddfd1c018454a9af14dabaab49fcd
> Makefile: use full stem in dependency generation
>
> Previously took only the filename, so the directory
> component was stripped. This broke dependencies for
> basically every file.

GoldenTails <milestailsprower101n2@gmail.com> on 2021-08-28
Commit 1a8ec7975c20e1d652cbbdb7a9e366192e41c05f
> Makefile: Improve gcc detection
>
> Wasn't working for me until I fixed it.
> Turns out gcc really doesn't like giving its name out.
> Most of the time it reads argv[0].
2021-11-25 03:56:23 -08:00
toaster
b4af07ffed Merge branch 'master' into new-menus
# Conflicts:
#	src/d_main.c
#	src/dehacked.c
#	src/m_menu.c
#	src/v_video.c
#	src/y_inter.c
2021-10-18 01:18:37 +01:00
toaster
b3d006b093 structs gunched 2021-04-17 00:27:13 +01:00
James R
0642e2206e Rotate sprite correctly in reverse gravity 2021-04-06 16:25:25 -07:00
James R
bdc4b50de2 Let viewrollangle be independent of camera tilting 2021-04-06 16:25:25 -07:00
James R
08348fcd43 Merge remote-tracking branch 'srb2/next' 2021-04-05 01:26:17 -07:00
toaster
690244825b * Fixed blending in OpenGL.
* Caught a UDMF-only crash for Software (where linedef alpha is low but nonzero).
2021-04-03 19:29:06 +01:00
toaster
ebe38ff518 * Add a blend field to FOFs.
* Set via a fourth digit in the upper midtexture for transparent FOFs
        * For example - #2551 is additive solid, #1282 is subtractive half...
    * The original method of setting the upper midtexture to #900 or 901 still works, since I'm not out to break existing maps.
* Software: Remove the horrible `else if` ladder for FOF translucency. Algorithms, baby!
* OpenGL: Move to using `HWR_GetBlendModeFlag` in more places, for more long-term extensible support for multiple blendmodes.
2021-04-01 23:45:21 +01:00
toaster
e27506c660 * Made it possible to perform palette calculations in gamma-corrected space. Now used by:
* Blend tables generated by the game.
    * The Color Cube accessibility tool.
* Fixed another stupid typo that got in the way of FF_BLENDMASK working.
* Some minor adjustments for code cleanliness.
2021-04-01 19:28:01 +01:00
toaster
40cbc30bff Mammoth commit, sorry.
All my work thus far on solving the drawflag/renderflag/additive/subtractive conundrum.

Outstandng problems:
* Bad additive/subtractive tables means that they appear opaque except under certain conditions.
* No support for FOFs, Polyobjects, or linedefs in OpenGL yet.
* All OpenGL support mostly done blind, may or may not function in practice.

If nothing else, the hard engineering problems are solved and it's just bug hammering...
2021-03-31 22:46:23 +01:00
Monster Iestyn
5b746a4853 Merge branch 'fix-opengl-drawcroppedpatch' into 'next'
Fix OpenGL V_DrawCroppedPatch (Fixes #452)

Closes #452

See merge request STJr/SRB2!1412
2021-03-24 11:34:58 -04:00
Monster Iestyn
0073f25170 Fix clobbering error in hw_md2.c by adding "volatile" to png_FILE.
(Apparently Kart made this exact fix 2 years ago and it was never backported?)
2021-03-21 19:49:32 +00:00
Lach
9a71a1b01e Merge branch 'opengl-renderflags-fix' into 'next'
Fix a few renderflags oversights in OpenGL

See merge request STJr/SRB2!1422
2021-03-14 20:51:57 -04:00
Hannu Hanhi
ff29b6d9b7 Fix wrong color on player models' first frame by updating variable after loading blend texture 2021-03-13 23:07:51 +02:00
Hannu Hanhi
f39eb1ec10 Remove misplaced SetShader call in CompileShaders 2021-03-06 19:38:17 +02:00
Jaime Ita Passos
06bad96b03 Fix a few renderflags oversights in OpenGL 2021-03-02 02:27:14 -03:00
Sally Coolatta
a93acd1958 Make it through OGL 2021-03-01 01:48:31 -05:00
Sally Coolatta
9d7ec0ab8f Merge SRB2 next
Probably doesn't compile yet, but I got rid of all of the conflicts for anyone who wants to take a stab at it.
2021-02-27 05:18:36 -05:00
Zwip-Zwap Zapony
603fa7da4e Fix OpenGL V_DrawCroppedPatch 2021-02-21 22:16:38 +01:00
Sryder
0d43c3e3ad Invert the screen for encore circle transition in OpenGL 2021-02-16 18:26:45 +00:00
toaster
4052e01f4a Introduce a sequence of macros to reduce the reliance of Colormap-related code (especially but not limited to Encore mode) on magic numbers. 2021-02-16 14:34:00 +00:00
toaster
8a4542a5ef Reintroduce the mirroring aspect of Encore in OpenGL. I'm not familiar enough with the renderer to recreate the rest of the changes at current, but this is the most significant regression. 2021-02-15 12:26:22 +00:00
Sryder
ca531738ab Fix for missing part of lighting calculation compared to software. 2021-02-12 18:41:16 +00:00
Sally Coolatta
13285d0ca4 OpenGL shader updated to be subtractive
Not a big fan of how it separately checks each channel but grumble grumble
2021-02-12 00:55:41 -05:00
Sryder
a06e4da65b Additive and subtractive for the HUD 2021-02-01 17:53:27 +00:00
Jaime Ita Passos
0d04b14bb3 Remove GLMipmap_t.nextmipmap 2021-01-27 21:23:20 -03:00
Jaime Ita Passos
7e28b7d3e9 OpenGL backend: Manage uploaded GPU textures with an internal list
Indirectly fixes the game doing whatever after freeing a patch.
This commit implements a FTextureInfo struct type, instead of it being a typedef to the GLMipmap_s struct type.
2021-01-27 17:48:57 -03:00
LJ Sonic
2fcebc5eba Merge branch 'gl-levelflat-fix' into 'next'
Fix a misuse of levelflat_t.picture in OpenGL

See merge request STJr/SRB2!1327
2021-01-25 16:40:02 -05:00
James R
0292464611 Let sector flags control plane ripple effect 2021-01-12 22:16:55 -08:00
Sally Coolatta
a14cf1f029 Merge branch 'master' into new-menus 2021-01-10 21:31:09 -05:00
James R
ef3102e75a Merge branch 'gl-colormap-update' into 'next'
Fix animated skincolors in OpenGL (resolves #187, #247, #301, #370)

Closes #187, #247, #301, and #370

See merge request STJr/SRB2!1301
2020-12-15 20:50:45 -05:00
James R
bde40c36b1 Merge branch 'team-elementalfire' into 'next'
Player-Colored Elemental Fire for competitive gametypes

See merge request STJr/SRB2!1312
2020-12-15 20:47:45 -05:00
Jaime Ita Passos
5b56c49e1f Fix a misuse of levelflat_t.picture in OpenGL (Kitchen Sink SRB2 port) 2020-12-14 02:07:12 -03:00
James R
20e0d99ea0 Remove trailing whitespace 2020-12-12 02:40:46 -08:00
Zippy_Zolton
b153276057 Player-Colored Elemental Fire for competitive gametypes 2020-12-10 20:37:50 -06:00
James R
60ce05de38 Merge branch 'fix-gl-draw-cropped' into 'next'
Fix HWR_DrawCroppedPatch scaling a patch when cropping the top and left sides.

See merge request STJr/SRB2!1297
2020-12-10 15:44:51 -05:00
James R
2e649de64f Merge branch 'high-resolution-timer-2' into next 2020-12-10 02:55:02 -08:00
Jaime Ita Passos
f928709fa5 Fix animated skincolors in OpenGL 2020-12-06 20:17:14 -03:00
GoldenTails
01c9ae2377 Fix HWR_DrawCroppedPatch scaling a patch when cropping the top and left sides. 2020-12-06 12:01:31 -06:00
Jaime Ita Passos
490758eac2 Remove SHORT macros for referencing patch width/height/offsets 2020-11-22 20:02:47 -03:00
Jaime Ita Passos
82b11c224a Improve GPU texture management. 2020-11-22 18:18:26 -03:00