Commit graph

64 commits

Author SHA1 Message Date
fickleheart
c0380a3052 Make papersprite projection completely correct in software
I heard properpaper had some weird crashes? I couldn't reproduce
them no matter how hard I tried, but I added some bounds checking
to this version too just in case. Gotta get other people's help
to try to reproduce those.
2020-01-08 21:14:07 -06:00
Steel Titanium
d415cd5c6d
Update copyright date on source files 2019-12-06 13:49:42 -05:00
Jaime Passos
e78999549b Hopefully the last time this week I'll ever touch these files 2019-11-06 20:41:55 -03:00
Jaime Passos
a22af36305 add r_patch.c 2019-10-28 15:28:42 -03:00
Jaime Passos
7eb5155240 sprite2info soc yummy yummy yes 2019-09-29 19:03:10 -03:00
Jaime Passos
c268743220 hehee 2019-09-29 12:13:51 -03:00
Jaime Passos
73e4e67595 JIMITA DO THE SOC 2019-09-28 19:13:51 -03:00
Jaime Passos
5118f8589d Merge remote-tracking branch 'origin/master' into rotsprite_i 2019-09-28 12:14:55 -03:00
toaster
ed5e8c486c Continue screen! With aaaaaall the new assets to go with it.
* https://cdn.discordapp.com/attachments/428262628893261828/621129794045870108/srb20077.gif
* https://cdn.discordapp.com/attachments/428262628893261828/621129785124585502/srb20078.gif
* I will be accepting no further questions at this time.
2019-09-11 00:50:51 +01:00
Jaime Passos
f68652aa66 I 2019-08-18 14:16:48 -03:00
toaster
063e350c63 A good and bad ending cutscene now exist.
Also:
* SPR2_XTRA - instead of defining lumpnames in S_SKIN, those kinds of assets can just be bundled into the spriteset. Required for ending cutscene stuff, I guess, but also done for HUD life icon and character select image (aside from Sonic&Tails, still SOC'd in).
* Minor oversights in SPR2 support corrected.
* Better evaluation, featuring ending assets.
* Intro has warping-in blackrock, reusing ending assets.
* Cutscene text now supports lowercase (intro and custom).
* Disable the asset-fucking "gamma correction" I put in over two years ago when implementing colour cube. (This is the only thing I could move into another branch if you MUST, but it's basically invisble in the diff so w/e.)
* Don't blank the screen if the top left pixel of a screen-covering patch is transparent. (Checked via nonzero topdelta for first column)

Bugs:
* OPENGL ONLY: The first ~20 frames of both endings are fucked. A little help here? Might be HWR_DrawFadeFill's fault, which I just created. OR it could be in f_finale, but I doubt it, since it doesn't appear in Software.
2019-07-28 00:32:57 +01:00
Nev3r
d2692ddd24 viewx/viewy also need to be stored/restored. 2019-06-06 13:31:48 +02:00
Nev3r
1c14062e8b Vissprite clipping improvements.
Vissprites are now only clipped against their respective portal's geometry obtained from their BSP run.
Additionally, if a portal is provided, they're clipped to the portal's clip boundaries.
The work on this branch should conclude after a pair of remaining glitches are fixed.
2019-06-05 18:07:08 +02:00
Nev3r
25b56ffecd Masked elements are now fully grouped individually for each portal/view; fixed viewz-related glitches,.
The drawnodes are now fully grouped in separate lists, and then sorted individually. This fixes sorting problems caused by portals belonging to differently perceived scales (skyboxes for example).

Drawsegs and vissprite/drawnode sorting require the viewz, so the viewz is stored for each portal/view, and then restored when needed; without this, the rendering process erroneously sorts the elements, and draws some at wrong positions.
2019-06-05 12:10:59 +02:00
Nev3r
8abecc7f86 Created drawnode lists for each view/portal.
Each shall eventually have its specific vissprites/drawsegs; currently only drawsegs are stored in their correct list, vissprites are stored in the first list as a placeholder.
The idea is to sort each list individually, and then render their masked elements, starting from the last drawnode list.
This retains a non-recursive function calling method while still rendering things in order.
2019-06-04 20:15:42 +02:00
Monster Iestyn
7a0d8b408e Merge branch 'public_next'
# Conflicts:
#	src/d_main.c
#	src/dehacked.c
#	src/m_menu.c
#	src/m_menu.h
2019-02-27 22:36:01 +00:00
Steel Titanium
fad341b0e9 Fix skins overflow 2019-01-15 14:29:43 -05: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
dc7992a815 R_Char2Frame special case for backslash: accept plus as substitute 2018-12-13 14:59:12 -05:00
mazmazz
ea7162a76a Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
Monster Iestyn
224c0fccdb Merge branch 'public_next'
# Conflicts:
#	src/Makefile.cfg
#	src/d_clisrv.c
#	src/p_setup.c
#	src/r_segs.c
#	src/r_things.c
2018-11-20 14:33:10 +00:00
Alam Ed Arias
0b5069f36c We need to include the NUL char 2018-11-18 20:21:32 -05:00
toasterbabe
50d6208913 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement 2017-10-21 14:28:44 +01:00
Wolfy
ec9d47cb34 Use the new sprite system 2017-10-09 14:24:04 -05: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
toasterbabe
844416855f Smiles follow-mobj initial support! Still using a Lua hook to follow closely behind, but now it doesn't need to be a generic thinkframe. Woo! 2017-10-02 14:08:58 +01:00
toasterbabe
f6670fea76 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/r_things.h
2017-08-16 19:29:23 +01:00
toasterbabe
06dc30ea54 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into skin_patch
# Conflicts:
#	src/dehacked.c
2017-08-14 21:34:37 +01:00
Nevur
4f8d53b329 Got rid of functions I added once but turned out to be unnecessary. 2017-08-11 15:46:46 +02:00
Nevur
8b64a6eef3 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement 2017-08-08 10:41:33 +02:00
toasterbabe
e2a9d47ef6 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop 2017-08-05 12:28:31 +01:00
toasterbabe
634c560e99 * Who wore it better? https://cdn.discordapp.com/attachments/293238104096112641/338696939774279680/srb20037.png
* Now that Cyan is back, swap out the substitute Teal in the emblems for it.
* P_GetMobjSprite2 is now P_GetSkinSprite2.
* Correct "Siler".
2017-07-23 17:49:19 +01:00
toasterbabe
59ea08ee11 * Change the order of operations such that linkdraw sprites aren't ever used for ordering comparisons with non-linkdraw sprites.
* Refactor of the unbundling to not involve modifying the next/prev links.
* Make the booleans in vissprite_t use flags stored in sprite->cut instead.
* Make the linkdrawn sprites much more linked - ie, same brightness (unless independently fullbright), same colormap, and don't draw if the tracer isn't being drawn.
* Other minor corrections.
2017-06-26 14:44:10 +01:00
Nevur
677c1045a1 The sprites stuff is changed now.
-PK3 loadtime drastically reduced, even for very big files.
-Looks for srb2.pk3 now instead.
-"flipped the switch" for sprites.
2017-06-25 23:04:51 +02:00
toasterbabe
93dce12fce Seriously improves the reliability of the linkdraw system (in Software, the only rendering engine which actually does anything with this information), reducing the number of visual errors it produces significantly.
Of particular note: Standing in shallow pools of water as Smiles will now reliably associate the bottom half of the tails following mobj with the underwater portion of Smiles' body, and the flicking ends with his un-submerged head.

Deliberately engineered to only affect objects with MF2_LINKDRAW applied.
2017-06-25 20:46:30 +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
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
toasterbabe
8f9ee2da30 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into skin_patch
# Conflicts:
#	src/dehacked.c
#	src/p_setup.c
#	src/r_things.c
2017-04-07 15:37:22 +01:00
toasterbabe
842c27e78b Let's not use terms like this so plainly, right? 2017-03-18 14:20:42 +00:00
toasterbabe
60a2e26569 First attempt at making skin availabilities netgame-synchronised. However, I am completely unable to test this right now, since I'm on uni internet which is super locked down; in order to have it not get tangled up with anything else, I'm committing it now in a potentially broken state so that it can be reverted at a later date if necessary. 2017-03-16 18:57:42 +00:00
toasterbabe
75ac351940 It's 2am, I'll upload the exe and player.dta to the ftp later.
* Super sprites are now deliniated via an additional S_SUPER lump between S_START and S_END. Above are normal sprites, below are super sprites. Handled internally via FF_SPR2SUPER.
* Sprite2 numbers are now appropriately limited for the data type that stores them.
* SPR2_SPIN is now SPR2_ROLL, SPR2_DASH is now SPR2_SPIN and SPR2_PEEL is now SPR2_DASH. Makes more sense, right?
2017-03-11 02:09:01 +00:00
toasterbabe
299ba49161 Introducing skin patching! (Also, DELFILE is super dead.)
* Create a normal skin, but replace the S_SKIN lump with an almost empty one named P_SKIN.
* Provide "name = existing skin name as one of the first line (comments allowed)
* Reset individual spritenames back to zero sprite2s (or one for SPR2_STND to prevent complete removal) via "reset = SPR2_****" statements.
* No support for changing skin properties that are non-visual at the moment, but I don't really feel like it's wise to have those changable with patch alone. (Hello, tons of "modern Sonic" wadfiles which just change vanilla Sonic's ability to CA_HOMINGTHOK!)
* Sprites patch over.

To see an example in action, look at <root>/toaster/smilespatch.wad.
2017-01-17 00:16:23 +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
toasterbabe
c70661186a Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_sprites
# Conflicts:
#	src/dehacked.c
#	src/p_inter.c
#	src/p_pspr.h
2016-09-27 18:11:20 +01:00
toasterbabe
db6e7fd985 Introducing MF2_LINKDRAW! I put it in this branch because it (ab)uses some structural changes I made for papersprites.
* Sets the sortscale of the mobj to that of its tracer.
* Basically, Smiles' tails won't clip through shields thanks to this.
* http://gfycat.com/GraveGlassEwe
* Also has support for chains of MF2_LINKDRAW!
2016-09-16 17:09:33 +01:00
toasterbabe
430d7cfbd2 Noticed some sorting issues, so introduced the sortscale struct variable. (SORRY, NO FLAG YET) 2016-08-18 15:45:44 +01:00
toasterbabe
76e53ee3b6 this is shitty and glitchy but it compiles
remove all the places where i've set vis->scalestep to anything other than 0 to see something that LOOKS okay, but doesn't fulfil exactly what i want (that being a sprite that looks exactly like a midtexture)
2016-08-15 20:54:05 +01:00
toasterbabe
de77dc4413 Fixed a bug where NiGHTS form didn't properly account for changing skins mid-flight (devmode, maybe mp if standing on ground - haven't checked there)
Also as a consequence, DEFAULTNIGHTSSKIN is #defined in r_things.h instead of p_user.c.
2016-08-12 19:18:50 +01:00
toasterbabe
3310b02b68 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into s_skinprovements 2016-08-11 17:46:08 +01:00
toasterbabe
810e1ec041 SUPERCOLOR BONANZA COMMIT.
* Several new supercolours.
	- SKINCOLOR_SUPERSILVER1-5 (for fun) - "Silver"
	- SKINCOLOR_SUPERPERIDOT1-5 (nyeheheh) - "Peridot"
	- SKINCOLOR_SUPERCYAN1-5 (for fun) - "Cyan"
	- SKINCOLOR_SUPERPURPLE1-5 (for fun) - "Purple"
	- SKINCOLOR_SUPERRUST1-5 (mecha/metal sonic) - "Rust"
	- SKINCOLOR_SUPERTAN1-5 (shadow/silver the hedgehog) - "Tan"
* SKINCOLOR_SUPER1-5 renamed to SKINCOLOR_SUPERGOLD1-5, one index for darkest is changed - "Gold"
* SKINCOLOR_TSUPER1-5 renamed to SKINCOLOR_SUPERORANGE1-5, ported properly to the new palette - "Orange"
* SKINCOLOR_KSUPER1-5 renamed to SKINCOLOR_SUPERRED1-5, ported properly to the new palette - "Red"

* new S_SKIN attribute - supercolor - uses an entirely different function to get the names (R_GetSuperColorByName instead of R_GetColorByName)

* a fun little secret - typing "god on" in the console whilst super makes the player hyper (visual only, no sparkles - just rainbow flash) - can be removed if no fun is allowed
2016-08-10 19:48:20 +01:00