Commit graph

1617 commits

Author SHA1 Message Date
James R
bef9f502ca pedantic: cast to (void*) for printf %p 2022-02-20 03:15:51 -08:00
James R
bea79dfa65 Replace GNU zero-length array with ISO C99 flexible array member 2022-02-20 03:10:04 -08:00
toaster
0b97d954ad Tested with Chengi at one point, correct a few things from that.
* Fixed a few prints happening on resync that shouldn't.
* Fixed OGL loading not using levelfadecol.
2022-02-16 23:23:14 +00:00
toaster
87d797a45a Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into new-menus
# Conflicts:
#	src/Sourcefile
#	src/d_main.c
#	src/m_menu.c
#	src/v_video.c
#	src/v_video.h
2022-02-14 13:10:36 +00:00
James R
f10aa9645b Few more instances of fullbright colormap nullification 2022-01-20 23:39:58 -08:00
James R
26d231c43a Only ignore colormap for fullbright 2022-01-20 05:09:39 -08:00
James R
ecc3d031df Ignore colormap when overriding thing brightness 2022-01-20 03:57:58 -08:00
James R
ff70bd0d83 Fix opengl semibright
Adds back 3d models semibright.
2022-01-20 03:52:32 -08:00
James R
d06355018d Track skybox within player struct
TODO: Lua

Splitscreen and change viewpoint uses the proper skyboxes!
2022-01-17 22:46:01 -08:00
James R
8e0f02d65a Refactor R_SetupFrame/R_SkyboxFrame to use splitscreen number directly 2022-01-17 18:53:01 -08:00
James R
0d41c36f09 Closer OpenGL underwater/heatwave effect to Software 2022-01-12 04:30:43 -08:00
James R
2c6dfd5498 Do not speed up underwater/heatwave effect in OpenGL 2022-01-12 04:30:03 -08:00
Sally Coolatta
09eefc7e9b Make drop shadows slightly better in uncapped
They still jitter uphill
2021-12-24 23:17:28 -05:00
Sally Coolatta
ce01b494f4 Add functions to handle interpolation
Much less code duplication
2021-12-24 11:30:19 -05:00
SinnamonLat
7c9f3385d4 Merge branch 'master' into new-menus 2021-12-17 12:32:01 +01:00
James R
033a489b85 Fix bad merge @ 4a8340cd4 2021-12-13 01:29:20 -08:00
SinnamonLat
019d15ccd5 Merge branch 'master' into new-menus 2021-12-10 14:17:58 +01:00
James R
a90520ebdc Do not factor roll and pitch into model rollangle
Those transformations are applied separately so the model
tilts in 3d space.
2021-12-10 00:32:46 -08:00
James R
1ac123246d Model stretching 2021-12-09 22:41:54 -08:00
James R
4f04c0c430 Tilt models 2021-12-09 22:41:54 -08:00
James R
95bfe07d66 Enable sprite rotation in OpenGL 2021-12-09 21:34:41 -08:00
Sally Coolatta
76874de965 Drop shadow tweaks for OGL
- Shadow uses subtractive & additive, like software shadows
- Shadow does not change scale or opacity, like software shadows
- Fixed shadow the hedgehog seizure
2021-12-09 18:32:52 -05:00
toaster
a149fa9db9 GL now loads in netgames and doesn't memory leak
What is broken:
* Encore mode remapping in GL only
* Seizure effect in Daytona (NOT IVO SAFE)
* God knows what else has been waiting in the wings
2021-12-09 20:57:15 +00:00
SteelT
83988a1cd8 Merge branch 'fade-strength' into 'master'
Alpha value for fade colormaps + colormap bug

See merge request KartKrew/Kart!477
2021-12-08 01:53:32 +00:00
SteelT
d0caa79414 Merge branch 'snapify-hitlag' into 'master'
Snapify Hitlag 2

See merge request KartKrew/Kart!461
2021-12-08 01:53:28 +00:00
Sally Coolatta
dbefc8fe58 Fix yellow persist fade colormap bug
I did the equivalent change to OpenGL and it broke Zoned City, despite it being fine in Software ... not sure what's up with that, since the color math is pretty similar. Just gonna leave that alone for now...
2021-12-06 22:47:15 -05:00
Sally Coolatta
b03cfe302d OGL fade alpha support 2021-12-06 20:58:31 -05:00
James R
a64263c96d Merge remote-tracking branch 'origin/master' into new-menus 2021-12-03 14:56:48 -08:00
Sally Coolatta
83444ce5d5 Interpolate angle & nametags 2021-12-01 16:50:17 -05:00
Sally Coolatta
7238a1be83 Interpolate camera roll, fix skybox in opengl 2021-12-01 10:53:15 -05:00
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