Commit Graph

227 Commits

Author SHA1 Message Date
Jaime Passos 725d0b4c44 still making things better 2019-09-08 21:37:24 -03:00
Jaime Passos c7e01a558e initial stuff 2019-09-08 18:44:40 -03:00
Jaime Passos 2863ede7bf initial stuff 2019-09-08 18:27:35 -03:00
Jaime Passos ff1fa3f92b Implement all the other alpha blend styles 2019-09-08 13:21:00 -03:00
Jaime Passos 3cc2b76fb8 probably want to Z_Free this............... 2019-09-07 18:56:08 -03:00
Jaime Passos f461b76bb0 fix translucency 2019-09-07 16:54:26 -03:00
Jaime Passos d38ba4d88c define stuff idk 2019-09-06 19:41:29 -03:00
Jaime Passos 0cc553be5f Merge remote-tracking branch 'jimita/flats-png' into flats-png_port 2019-09-06 19:20:45 -03:00
Jaime Passos f68652aa66 I 2019-08-18 14:16:48 -03:00
Alam Ed Arias f67f9405bc Merge remote-tracking branch 'origin/master' into flats-png 2019-07-24 19:07:36 -04:00
Alam Ed Arias 0eb6b24415 Merge commit '45922f80d1e35aadc9da6e20fa32fa78c1044dfd' into flats-png 2019-07-24 18:17:01 -04:00
Jonas Sauer 166f1fac66 Fixed the thinkerlist issues by removing THINK_LIMBO. Delay-removed thinkers now stay in their list.
Also includes toaster's assorted fixes and improvements from target_painted_on_your_ass.
2019-07-13 01:42:03 +02:00
MascaraSnake e9978b2955 Merge branch 'master' into thinkerlists
# Conflicts:
#	src/f_finale.c
#	src/p_enemy.c
2019-07-02 23:08:37 +02:00
Monster Iestyn 9913cc39a1 Merge branch 'public_next'
# Conflicts:
#	src/g_game.c
#	src/p_setup.c
#	src/p_user.c
#	src/r_data.c
2019-06-29 20:55:58 +01:00
Jaime Passos afa6afa593 something something memory leaks 2019-06-28 19:43:37 -03:00
Monster Iestyn 3a9ce483f5 Merge branch 'master' into next
# Conflicts:
#	src/r_data.c
2019-06-28 23:24:36 +01:00
Jaime Passos 8362710e50 Merge remote-tracking branch 'origin/flats' into flats-png 2019-06-25 16:04:24 -03:00
Jaime Passos 0af9e865f9 Delete R_CropFlat 2019-06-25 14:41:07 -03:00
Monster Iestyn d9ca8b45d3 Saving work so far, UNTESTED
# Conflicts:
#	src/r_data.c
2019-06-23 17:51:36 +01:00
Sryder 8a778a4070 Simply truncate the per-map COLORMAP lump instead of not reading it at all.
Keep the warning though.
2019-06-23 15:02:32 +01:00
Sryder bb9b1b3b1f Change COLORMAP lump size check to be exact
A lower size could technically be valid, but could easily run into strange issues.
2019-06-23 13:49:39 +01:00
Sryder bc254d9cf7 Kill Texture SOC feature.
As far as I know it's basically unused, and the strstr is inherently unsafe because there's no guarantee that a patch's contents are NULL terminated.
2019-06-23 13:48:29 +01:00
Sryder 45922f80d1 Don't read from a per-map COLORMAP if it is too big.
Could this be changed to only read the first so many bytes?
2019-06-23 12:47:20 +01:00
Jaime Passos 39857a846a PNG support 2019-05-26 23:37:23 -03:00
Jaime Passos dfd8beae27 Merge remote-tracking branch 'upstream/jimita-flats' into flats 2019-05-26 16:43:33 -03:00
Jaime Passos 93f60267c1 Minor fixes 2019-05-26 16:22:33 -03:00
Nev3r 36036b6cfd Permit textures to use the "TEXTURE" tag in addition to "WALLTEXTURE".
It's pointless to make any distinctions anymore IMO, given flats can load them just fine now.
2019-05-26 12:02:43 +02:00
Jaime Passos dbb1575a6d Animations, better flat management. 2019-05-21 15:24:26 -03:00
Jaime Passos 869f1e4e8d Fix warnings 2019-05-21 11:03:53 -03:00
Jaime Passos 35d6da159d HOLD UP 2019-05-21 09:50:39 -03:00
Jaime Passos 714c997aac Support for patches and textures to be used in place of sector flats
Still a work in progress.
2019-05-21 00:28:52 -03:00
Nev3r a9110c0645 Fixed more mobj thinker iterator oversights and removed all mobj thinker function checks
Mobjs got their own thinker list after all, and disappearing thinkers are automatically purged from their lists and sent to the limbo list.
So it's safe to assume all thinkers inside the mobj list must be mobjs.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 16:39:57 +02:00
Nev3r b60c66325c Added a mobj-only list entry for mobj thinkers
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 23:29:20 +02:00
Nev3r 39ba20be6b Basic multiple thinker list implementation
Set up a main thinker list and a polyobject mover list to test things up. Works so far, networking as well.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 22:39:22 +02:00
mazmazz 7aa55f24f5 Resolve r_data.c colormap conflict 2019-01-07 15:29:37 -05:00
Nev3r 7d09149b04 Solved conflicts related to PK3s
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-01-07 19:00:31 +01:00
mazmazz 075f28b7c8 WIP 20190101 merge
d_netcmd.c
filesrch.c
m_menu.c
p_setup.c
p_spec.c
r_data.c
r_main.c
r_things.c
w_wad.c
w_wad.h
2019-01-02 01:09:15 -05:00
mazmazz c65f44e805 Remove log message 2018-12-24 20:33:59 -05:00
mazmazz e9e5128754 Use DBL_EPSILON for colormap comparison 2018-12-24 20:22:10 -05:00
mazmazz 58728ec358 Fix float comparison for colormap maskamt 2018-12-24 19:58:05 -05:00
Alam Ed Arias 15d0673685 fix compiling for clang 2018-12-14 21:31:37 -05:00
Alam Ed Arias 6fd66bdb49 Clear float equal warnings 2018-12-14 20:34:06 -05:00
MonsterIestyn b53cd70201
Merge branch 'next' into PK3-BackportNext 2018-11-26 18:56:51 +00:00
Monster Iestyn 1b2aea81dc Merge branch 'master' into next 2018-11-25 20:39:17 +00:00
mazmazz ea7162a76a Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
Nev3r 6f5e3d42ff Merge branch 'PK3-Backport' into 'PK3-BackportNext'
Pk3 backport

See merge request Nev3r/SRB2!1
2018-11-24 06:02:19 -05:00
Nev3r c548aaa347 Backported PK3 support to 2.1
Hopefully I'm not missing anything.

Signed-off-by: Nev3r <apophycens@gmail.com>
2018-11-23 16:58:16 +01:00
Monster Iestyn c1d5c711a9 Be gone ye old texture hack 2018-10-11 21:08:25 +01:00
mazmazz efe0af960d Colormap overhaul: Wrap R_CheckNumForNameList under ifdef EXTRACOLORMAPLUMPS 2018-09-15 02:10:55 -04:00
mazmazz 6844ed37c5 Colormap overhaul: %d format size_t -> UINT32 fix 2018-09-15 01:50:33 -04:00
mazmazz 57959522e2 Colormap overhaul r_data: Mixed D+C fix 2018-09-15 00:49:03 -04:00
mazmazz 07af82aa84 Missed fog boolean -> integer 2018-09-13 12:18:53 -04:00
mazmazz 6824e6a359 Make extracolormap_t->fog UINT8; it's not boolean, but categorical 2018-09-13 12:08:46 -04:00
mazmazz 9a6a8b0b82 Outdated comment; unused var 2018-09-12 08:07:34 -04:00
mazmazz 55c43a2161 R_AddColormap will not return an existing colormap, and new colormap is not added to chain 2018-09-12 07:24:22 -04:00
mazmazz 87ad2a87f7 Smarter default fadergbaA and fadeend for relative calc 2018-09-12 07:14:23 -04:00
mazmazz 133c3598a7 Add fadestart/fadeend/fog to R_AddColormaps 2018-09-12 07:07:26 -04:00
mazmazz 90aeac5058 Add R_CheckEqualColormaps comparison method 2018-09-11 22:43:12 -04:00
mazmazz f0c11eb135 R_AddColormaps method 2018-09-11 21:03:55 -04:00
mazmazz 548f02eea1 Extra macros R_GetRgbaRGB; R_PutRgbaR/G/B/A/RGB/RGBA 2018-09-11 17:30:43 -04:00
mazmazz 5975f26177 Don't set sector's extra_colormap if we just made a default clone
* Allow colormap parsing to proceed in p_setup always
* Add R_CheckDefaultColormap
* Add R_GetRgbaR/G/B/A macros
2018-09-11 17:08:57 -04:00
mazmazz 71ade23739 Ifdef typo 2018-09-11 15:59:56 -04:00
mazmazz c920827032 Consolidate colormap matching into R_GetColormapFromList 2018-09-11 15:56:21 -04:00
mazmazz 85d89287de Add R_CopyColormap 2018-09-11 15:20:30 -04:00
mazmazz ba88f8ebb6 Smarter string digit parsing; allow alpha-only values
* GetDefaultColormap and CheckDefaultColormapValues methods
2018-09-11 15:01:05 -04:00
mazmazz 4ef016e40f Clear colormaps properly (resolve sigsegv crash) 2018-09-11 13:46:34 -04:00
mazmazz a818b9a1dc Remove cr/cg/cb/ca in favor of rgba * Change default colormap values to be in sync with rgba/fadergba 2018-09-11 13:27:04 -04:00
mazmazz b7a216c78b Add COLORMAPREVERSELIST ifdef to toggle Newest -> Oldest extra_colormaps order 2018-09-10 22:37:27 -04:00
mazmazz 43ae25c4fd Make default extracolormap on init
* Calc fadedist in R_CreateLightTable
2018-09-10 21:56:57 -04:00
mazmazz 3da38f2a9b Fixed colormap matching code again * Added debug messages for matching code 2018-09-10 20:56:59 -04:00
mazmazz 8d78c22194 extracolormap_t refinement and netsyncing
* Store raw values per rgba in extracolormap_t (no maskcolor or fadecolor)
* Crunched some UINT16/32 into UINT8
* Calculate mask values in R_CreateLightTable
* ifdef out EXTRACOLORMAPLUMPS
2018-09-10 20:36:34 -04:00
mazmazz 7608583c6f Fix shared colormap matching 2018-09-10 16:42:07 -04:00
mazmazz 2701976ba3 Compiler fixes 2018-09-10 16:28:39 -04:00
mazmazz e33ed45b7b Colormap overhaul in r_data.c
* Split R_CreateColormap to R_CreateLightTable
* Replace extra_colormaps array with next/prev pointer chain
* Remove foundcolormaps; instead store lumpnum in extracolormap_t
* Add properties to extracolormap_t for portability
2018-09-10 15:59:31 -04:00
mazmazz fef38acc59 Merge remote-tracking branch 'public-gitlab/colormap-code-cleanup' into colormap-cleanup 2018-09-10 13:24:57 -04:00
Monster Iestyn 40ff436829 Remove commented out stuff, now I've confirmed everything works fine without them 2018-09-10 15:49:21 +01:00
Monster Iestyn c0bf79ad8e R_CreateColormap2 and R_MakeColormaps have been made obsolete, it's just R_CreateColormap now, like it used to be!
With that, I moved R_CreateColormap2's exclusive software colormap malloc code to R_CreateColormap, and merged the two software-only blocks of code into one. I also disabled any unneeded variables and fixed a preprocessor-related goofup
2018-09-09 22:48:09 +01:00
Monster Iestyn 58a844d3cf Merge branch 'public_next'
# Conflicts:
#	src/r_things.c
#	src/v_video.c
2018-08-28 19:31:08 +01:00
toaster 973b3c3f5e Continuing my recent streak of making random lighting/colormap-related fixes to long-standing bugs:
* Fix that thing where ALL transparent FOF planes were continuously fullbright unless encased in a fog which disables sprite fullbrightness, which was long-hated by many people in the community!
	* For backwards compatibility, setting flag 1 in that fog field (which is probably the most common "in-the-wild" usage of this feature) will continue to make objects un-fullbright.
	* For situations where you desperately want the behaviour to be enabled, you can apply fog flag 2.
* Change the fadestart and fadeend range in which colormaps are generated.
	* The problem HERE was that the darkest light level reached by generated colormaps was actually slightly brighter than the darkest level reached by normal colormaps.
	* The typo I fixed does have SOME basis in fact - standard colormap lumps are 34 (33 in 0-indexing) long rather than 32 (31), but whoever wrote this didn't realise that the code for generating them didn't do it DooM style, just bright-to-dark with no extras on the end...
2018-08-25 16:46:45 +01:00
Monster Iestyn bf88407d00 Make sure both software and OpenGL ignore patches that are completely out of a multi-patch texture's bounds.
This fixes OpenGL in particular crashing because of such a weird situation.
2018-02-09 17:23:35 +00:00
Alam Ed Arias 7f4424b4a0 whitespace cleanup 2017-11-02 23:13:34 -04:00
toasterbabe efc4d2f81d * Make multiple ANIMDEFS lumps get loaded.
* Refactor the multiple TEXTURES lump code.
2017-10-28 17:12:08 +01:00
toasterbabe 50d6208913 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement 2017-10-21 14:28:44 +01:00
wolfy852 b298c7a541 Fix p_spec.c and r_things.h, get the compiler to shut up
This compiles with no errors or warnings, but hasn't been tested yet. Please review/test when you can.
2017-10-07 17:18:25 -05:00
Monster Iestyn 302d0425e0 Incinerated WinCE 2017-09-29 23:25:34 +01:00
Nevur b087c16eb1 Merge branch 'toastfixes' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement
# Conflicts:
#	src/p_setup.c
#	src/p_spec.c
2017-09-04 21:13:29 +02:00
toasterbabe a3767fedac Clean out code/update comments relating to TEXTUREn, TEXTURE (SOC), PNAMES, and ANIMATED. 2017-08-08 22:03:37 +01:00
Nevur d5e38c087d Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement
# Conflicts:
#	src/p_setup.c
2017-06-25 14:51:37 +02:00
Nevur 35189dc219 Fixed PK3s.
-Colormaps, palettes and other stuff are properly loaded now. It was a bug related to the generation of the lump name with files in the root of the PK3.

Known issues:
-Map WADs' REJECT and BLOCKMAP are still not loaded.
2017-06-25 14:02:39 +02:00
Nevur 16336dbe22 I'm pushing this because I'm having issues. Changes so far:
-Folders aren't loaded as lumps anymore
-Can now load an arbitrary number of TEXTURES lumps in PK3s. Name them textures.gfz, textures.thz, ..., for example.
2017-05-28 21:47:15 +02:00
Monster Iestyn 21d29c8550 Merge branch 'public_next' 2017-05-17 16:19:01 +01:00
Nevur d4c324eb30 PK3 stuff again.
-Now can load map WAD files inside Maps/ directory, but they must only contain map data explicitly!

Known problems:
-There's an issue causing a crash with palettes and colormaps in PK3s.
-SS_START and SS_END don't work now. Will check later.
-Standalone lumps for maps in the Maps/ folder don't work anymore; perhaps I should keep that functionality?

Notes:
-It's now a mashup of something dumb that I wanted to do and yet piling hacks again.
-A lot of code duplicity with map lump loading functions.
2017-05-16 21:10:02 +02:00
Monster Iestyn f8482421e5 Don't need to use WADFILENUM/LUMPNUM in this function, since W_CheckNumForNamePwad returns just the lump number, not a combined WAD + lump number frankenstein's monster
This is just in case someone actually tries to dump in C_START/C_END and "add" colormaps using them, not that they would ever be used currently anyway.
2017-05-15 14:38:55 +01:00
Monster Iestyn 222807c6f6 Fix R_InitExtraColormaps reporting 6 or more colormaps every time you loaded the game, even though we haven't used C_START/C_END in more than a decade now
Note to self: W_ functions are awfully confusing with returning with LUMPERROR or INT16_MAX. Should sort out what's going on there if necessary
2017-05-15 14:29:31 +01:00
Nevur ea2846394e More PK3 work. Now we're getting somewhere.
-DEFLATE-compressed lumps work properly now.
-All "big" lumps are supported now with the exception of WAD maps.

Notes:
-Compiler spits out a shitload of warnings still.
-Individual lump reading clashes with folders of the same name (see TEXTURES lump, and the Textures/ folder).

Signed-off-by: Nevur <apophycens@gmail.com>
2017-05-07 12:30:06 +02:00
Nevur 8ef6d6fd9e A bit more work on PK3.
-Expanded folder recognition for PK3s. Some resources are still not loaded from them yet.
-Took a glimpse at how maps are loaded, since the flat recognition is rooted somewhere there; did nothing yet about it though.
-Working towards "generalizing" how new resources are handled. Some var and functionality redundancy is still present.
2017-05-06 16:52:53 +02:00
Nevur 2c614f8f2c More work on PK3 handling.
-Moved the MD5 check for added files up so it avoids unnecessary work when you mess up and re-add a file.
-Using compression enum for compressed lumps now.
-Vastly improved central directory seeking algorithm, big files are read fine now. Thanks a lot JTE!
-Improved remaining central directory navigation algorithm, we know and expect what data is coming from now on, after all.
-TX_ textures and sounds are replaced, but textures crash the game on mapload, and sounds are simply mute when replaced. Might have to do something with caching, I don't know yet.
2017-05-01 16:37:32 +02:00
toasterbabe d669a4e84a Introducing pMasterPalette.
Used instead of pLocalPalette when attempting to determine objective truths, such as "the colours of this gif without color profile modification" and "what indicies should this colormap remap to".

Also, made f_wipe.c's paldiv only get calculated once.
2017-04-30 22:18:06 +01:00
Monster Iestyn f0256c41be Be gone ye old texture hack 2017-04-19 20:00:19 +01:00
Monster Iestyn 5877cc40d9 You actually don't need to set ColumnDrawerPointer to &R_DrawColumnInCache etc, C allows you to set it directly to R_DrawColumnInCache etc. ColumnDrawerPointer can then be called without the (* ) stuff 2017-03-19 20:08:33 +00:00
Monster Iestyn 351a391e43 Fixed errors reported while compiling 2017-03-19 19:43:02 +00:00
Nevur 191623e246 Made tweaks suggested by toaster to make the code a bit less dumb. 2017-03-15 15:46:04 +01:00
Nevur be9ca534d7 Whitespace indenting. 2017-03-12 20:26:45 +01:00
Nevur 144514247d Added exceptions to the transparent column drawers to avoid modifying pixels with the cyan color. 2017-03-12 20:02:29 +01:00
Nevur 13dbe7d3a3 Fixed issue with vertical offsets being broken.
Add a vertical flip variant for the translucent column drawer.
Translucency is now properly distributed: 0.00 leads to no render at all, 0.1 to TRANS10, ..., 0.9 to TRANS90, 1 to regular column drawer.
2017-03-05 18:53:34 +01:00
Nevur 829be5bd43 Changed how R_GenerateTexture picks the function to draw the columns so it checks once per patch.
Also had to set the same args for all of the three current column drawer functions.
2017-03-05 12:49:09 +01:00
Nevur bf5a10e4b7 The translucency feature is now functional, but it doesn't exactly work as expected. Need to make it behave like FOF translucencies etc., I guess. 2017-03-05 00:29:10 +01:00
Nevur bb49362577 Add rudimentary and non-working code for translucency on patches. 2017-03-04 20:59:43 +01:00
Monster Iestyn 12ae6bb22a Merge branch 'public_next'
# Conflicts:
#	src/d_clisrv.c
#	src/r_things.c
2017-01-07 15:03:59 +00:00
Monster Iestyn c601a409e1 Merge branch 'texture-fixes' into 'next'
Some texture-related fixes

Bugs fixed in this branch:
* upper/lower/middle textures with non-existent texture ids being capable of crashing the game. For instance, RVZ1 has colormap codes on non-colormap linedefs, which causes them to wind up with invalid texture ids because of how the game tries to interpret lower/upper textures with "#" followed by characters on normal linedefs. Fortunately these "textures" are normally not visible anyway (since they're all in control sectors) unless they are swapped with in-level textures by some crazy Lua script of some sort...
* animated single-patch textures with holes displaying garbage on first viewing (see this thread: https://mb.srb2.org/showthread.php?t=42195)
* the heights of the lighting (shadows or colormapping) from water/translucent/shadowcasting/etc FOFs become messed up when displayed on repeated midtextures.

See merge request !144
2017-01-06 21:15:22 -05:00
Monster Iestyn 8e56582728 Created R_CheckTextureCache to make sure midtexture/FOF walls cache their textures before choosing colfunc_2s, for software mode 2016-12-17 19:59:54 +00:00
Monster Iestyn a9cfd12e04 Created R_GetTextureNum to make sure top/bottom/midtexture texture ids are always valid in rendering code for both software and OpenGL (and also for the Solid Midtexture effect physics code) 2016-12-16 21:38:53 +00:00
Monster Iestyn 84f3102ad0 Added FLIPX support for single patch textures with holes
This completes FLIPX/FLIPY support for all textures
2016-12-01 22:37:33 +00:00
Monster Iestyn 52a84cf309 Fix negative y offsets for both normal and y-flipped patches 2016-12-01 21:43:27 +00:00
Monster Iestyn 410b55ebcd Work on FLIPX/FLIPX support:
*Added FLIPX/FLIPY support for multi-patch textures and single-patch textures without holes
*Added FLIPY support for single-patch textures with holes; I'll sort FLIPX support out later
2016-11-28 22:21:54 +00:00
Monster Iestyn cc2612c2d8 Merge branch 'master' into TEXTURES-additions 2016-11-27 19:49:56 +00:00
Monster Iestyn 14cd274baa Change 0xF7 to 0xFF in R_GenerateTexture 2016-11-07 20:27:12 +00:00
Monster Iestyn 587c0079e2 Started work on FLIPX/FLIPY support for patches. Doesn't do anything yet, but the parser should know how to look for them now
Note: I had to create M_UnGetToken in order to avoid problems with looking for patch parameters (marked by { and }) but not finding anything
2016-10-22 23:19:24 +01:00
Yukita Mayako cdb841ef54 Only P_InitPicAnims when wads are loaded.
Not in P_SetupLevel. That's just dumb.
2016-10-19 03:24:43 -04:00
Alam Ed Arias f45feb77fc MSVC: kill level 3 warnings 2016-05-22 00:44:12 -04:00
Inuyasha f07585191b copyright dates/statements updated and such
(no actual SLOC changes)
2016-05-17 17:42:11 -07:00
Monster Iestyn 70a72baabc Revert texturepresent size increase, check for negative top/mid/bottom texture values so as to not go out of bounds the other way 2016-05-10 20:19:42 +01:00
Alam Ed Arias be0c062c5b Precache: fix off by one, making the precache code write into memory it should not be touching 2016-05-09 20:10:14 -04:00
Inuyasha a9be5ba867 fixed memory issues Alam running valgrind found 2016-05-08 20:34:43 -07:00
Alam Ed Arias 73b3287b19 SRB2 2.1.14 release 2015-01-01 14:50:31 -05:00
Alam Ed Arias c028c83235 SRB2 2.1.9 release 2014-08-03 23:49:33 -04:00
Alam Ed Arias b93cb1b65a SRB2 2.1 release 2014-03-15 13:11:35 -04:00