Commit graph

251 commits

Author SHA1 Message Date
mazmazz
7d36aae7c4 Make lightlists react to control sector colormap changes (double pointer) 2018-09-12 16:06:56 -04: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
toaster
6e07631cc9 MONSTER COMMIT.
OLD SPECIAL STAGES:
* Spheres in old special stages instead of rings!
* Individual timers in old special stages instead of a global one!
* Old special stages use a variant of the NiGHTS HUD now!
* Special stage damage in old special stages loses 5 seconds of time instead of 10 rings/spheres!
* All damage gained through old special stages is converted to special stage damage! As a consequence, the special spikeball has no need to be special anymore.
* Made emerald gaining function be based on special stage number rather than gained emeralds!
* Consistency with...

NiGHTS SPECIAL STAGES:
* Spheres now flash in bonus time. https://cdn.discordapp.com/attachments/400761370800422922/452590553100713984/srb20032.gif
* Sphere and ring mapthingnums are now less fucked up in 'em. (Rings are 300, same as usual, while Spheres are now 1706 replacing NiGHTS Wings.)

SPECIAL STAGES IN GENERAL:
* useNightsSS is now dead. Each individual special stage is now assessed for NiGHTS-mode behaviour based on maptol & TOL_NIGHTS.
* CRAWLA HONCHO\n CAN NOW BE\n SUPER CRAWLA HONCHO end tally modification now also includes a mini-tutorial on turning super. https://cdn.discordapp.com/attachments/400761370800422922/452844894113759233/srb20036.gif
* SONIC GOT A CHAOS EMERALD? https://cdn.discordapp.com/attachments/400761370800422922/452623869497573386/srb20034.gif

NiGHTS NON-SPECIAL STAGES:
* Colour Chips and Star Chips! Replaces Spheres and Rings of NiGHTS Special Stages.
* Colour Chips turn yellow in bonus time.
* Ideya!
* Its own "drowning" music!
* All of the object types for Dream Hill.
* GIF: https://cdn.discordapp.com/attachments/400761370800422922/452844894113759233/srb20036.gif

RANDOM BS:
* Turn super with the spin button instead of the jump button!
* Followmobj now correctly set with P_SetTarget instead of pointer assignment.
* Emerald hunt uses new sprites!
* Made unlock noise different from emblem gain noise! (It's the CRAWLA HONCHO CAN NOW TURN yadda yadda sound from S3K now.)
2018-06-03 22:41:54 +01:00
toasterbabe
6d1ba20a1d * Add native support for multi-hit badiks to MF_ENEMY.
* MF2_FRET application and removal.
   * Flashing when flag present.
   * Bounce player back on successful damaging.
   * Add their spawnhealth to the chain.
* Reduce code duplication in P_TouchSpecialThing.
* Play with Crawla Commander a little bit as a test of its power.
2018-05-02 23:48:50 +01:00
toasterbabe
2141754e54 V_PERPLAYER. (Hooh boy.)
* Completely redid how splitscreen works, with eventual support for quads. Squish per-player stuff automatically into the right places! Works in GL, associated flag kills V_SPLITSCREEN.
* Seriously update the lives-drawing function for all gametypes, with strings that replace the lives number whenever it's missing (deprecates SKINNAMEPADDING).
* Improved how the nosshack works, alongside many other refactorings.
2018-01-20 22:14:24 +00: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
2fff5e9f6d Fix empty WAD files printing the wrong sprite count. 2017-10-10 01:41:28 -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
87fc24ccbb Fancy super transformation changes! About to go out for dinner, so no major writeup,but let's just say all this changed code means that the transformation animation is smoother in colour change. 2017-10-04 17:45:03 +01:00
toasterbabe
40ef1335a1 * Smiles hardcode!
* Add a default behaviour to followmobj (just basic A_CapeChase).
* Allow for modifying which character starting a new SP game should start you on, relative to the first valid character. (SOC's "startchar" variable)
* Make MF2_SHADOW transferrable via linkdraw.
* Modify P_GetSkinSprite2's recursion limiter to have zero chance of ever infinitely looping.
2017-10-03 18:18:18 +01: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
Nevur
77d7b1495c Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement 2017-09-24 14:52:41 +02:00
toaster
3cc14e3985 Merge branch 'directionchar' into 'master'
Autobrake & decoupling player sprite angle from camera angle

See merge request !69
2017-09-19 07:56:22 -04:00
Nevur
4aed951bd8 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement
# Conflicts:
#	src/r_things.h
#	src/w_wad.h
2017-09-04 22:32:11 +02: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
76300026f8 * Added support for sprite2s to MD2s!
- Name each frame either SPR2_**** or SUPER**** (where **** is the 4-character name)
    - If the name is 3 characters, '.' is accepted as a substitute for the '_', but a space/absent isn't (for tool-related reasons).
    - Adds a big sprite2 index array to all models, even non-player ones. Sorry!
* Made MD2 frame interpoleration only work across the same spriteset (and sprite2set).
* Made MD2 frame interpoleration happen when there's less than a quarter of a second between frames, as opposed to the hardcoded specific animation disabling.
* Fixed sprite2-related typo in dehacked.c.
2017-08-26 18:56:23 +01:00
toasterbabe
4da6169892 Add spr2defaults[] array to make sprite2 defaulting system much, much simpler to manage.
This is in preparation for a seperate project which still involves sprite2s.
2017-08-25 18:00:20 +01:00
toasterbabe
2e6c09a636 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into directionchar
# Conflicts:
#	src/hardware/hw_main.c
2017-08-16 21:40:32 +01:00
Monster Iestyn
9f726bc66d Merge branch 'new_coop' into 'master'
New Co-op

See merge request !104
2017-08-16 15:01:39 -04:00
Monster Iestyn
75d363527b Merge branch 'toastfixes' into 'master'
An assortment of relatively minor bugfixes and behaviour tweaks

See merge request !110
2017-08-16 14:58:30 -04: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
toasterbabe
6e79de3de8 Patched an out-of-bounds crash with papersprites in the least resource-intensive way I could find (xiscale not fitting perfectly into frac). This will have to do until papersprites get a make-over at some point. 2017-08-11 16:00:45 +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
fe4dcee9ad fix inaccurate SC_FULLBRIGHT declarations 2017-06-26 16:30:23 +01:00
toasterbabe
b2fc2e03ba * Always remove linkdraw vissprites from unsorted drawing chain.
* Make the related I_Error more descriptive and "#define PARANOIA"'d only.
2017-06-26 16:11:50 +01:00
toasterbabe
dda9148e56 Fix issue with precipitation not modifying its mobj reference, resulting in Smiles' tails disappearing in CEZ3.
Also, as a result, safeguard some stuff against referencing stuff that's outside of *precipmobj_t's domain.
2017-06-26 15:53:20 +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
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
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
toasterbabe
faabca552f Okay, I guess this DID need to be done. (Something from the old nights fixes branch which I didn't port over initially.) 2017-06-04 00:48:32 +01: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
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
toasterbabe
6eaf936889 Make symbol conversion a #define instead of copypasted code. 2017-05-11 22:09:01 +01:00
toasterbabe
9445455fb1 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into skin_patch 2017-05-11 22:02:12 +01: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
a625c4f725 Katana dot in hudnames, as desired. 2017-04-29 17:04:13 +01:00
toasterbabe
477ada7477 Clarified comments. In case it wasn't clear, P_SKIN now allows field patching (this was unfortunately done in the large merge commit, so easily buried). 2017-04-07 15:59:25 +01: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
61b19aff58 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into directionchar
# Conflicts:
#	src/p_user.c
2017-04-05 16:01:02 +01:00
toasterbabe
0c792ff67a Add missing flag reads. 2017-04-03 16:05:13 +01:00
toasterbabe
53711e9143 Having thought about it for more than two seconds, it definitely is not safe to even consider letting people delete sprite2's. 2017-03-27 16:06:33 +01:00
toasterbabe
b73b38c326 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into skin_patch 2017-03-27 15:57:50 +01:00
toasterbabe
8aaf3ac851 ...copypaste failure 2017-03-19 12:49:29 +00:00
toasterbabe
7c852b575a Inu made some suggestions about the skinnamepadding stuff, so here's the fix. 2017-03-19 12:45:01 +00:00
toasterbabe
98095292d6 Rob wanted hudnames that were less than 5 padded at the front. Whilst I tested it and didn't think it was a good idea, I'm committing the code anyways lest some fool wish to try it in future. 2017-03-18 17:02:34 +00:00
toasterbabe
842c27e78b Let's not use terms like this so plainly, right? 2017-03-18 14:20:42 +00:00
toasterbabe
096921cbbf Added a bit of a fun limitation.
* Made it so (player->availabilities & 1 << skinnum) is only true if skins[skinnum] DOES have an availability method, and always false otherwise.
* This means that setting your availabilities to INT32_MAX is no longer the equivalent of having gotten all skins.
* This means we can detect and kick cheat engine script kiddies who try to fool the server that they can use everything.
* This means availabilities of 0x00 is now valid, so make it all F's for an invalid not-in-game.
2017-03-18 13:03:29 +00:00
toasterbabe
87ba3411a4 * Fixes forceskin causing desynchronisations, baby! Checks only when attempting to send.
* Makes the forceskin print more consistent with the skin print.

* Disabled the printing of availabilities.
2017-03-18 00:41:40 +00:00
toasterbabe
0060caaf1a Fixed synchronisation of skin changes and forceskin.
There's an outstanding issue - you can set forceskin to whatever you want to as the host. This needs to be fixed, but I'm commiting my successes first.
2017-03-17 23:11:32 +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
b2c0930807 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into charabilities_mk3 2017-03-14 18:12:47 +00:00
toasterbabe
7aeeb278fe Increased space in pflags (because we were getting VERY close to full capacity), which I will re-organise when this branch is closer to completion.
* PF_NIGHTSMODE is now CR_NIGHTSMODE as part of player->powers[pw_carry]. This is because it's mutually exclusive to every other "carry" type.
* PF_SUPERREADY is dead because it literally just checked for all 7 emeralds and 50 rings. That's it. You couldn't even appreciably alter its presence with Lua. That logic has been placed back in P_SuperReady.
2017-03-14 18:11:17 +00:00
Monster Iestyn
731ee115a3 Merge branch 'public_next' 2017-03-13 18:25:26 +00:00
toasterbabe
e20292844d * SPR2_DRL0-C are gone. They're now (FF_SPR2SUPER|SPR2_NGT0-C). This frees up a bunch of badly-used freeslots, considering that you can't be super AND NiGHTS at the same time.
* Speaking of, actively enforced not being able to be Super and NiGHTS at the same time.
* Also on that note - SPR2_TRNS is now the NiGHTS transformation. The Super transformation is (FF_SPR2SUPER|SPR2_TRNS).
* SPR2_NPAN is now SPR2_NSTN, since it matches Super Sonic's stun animation rather than the pain animation.
* Fixed a bunch of things where Super float was handled badly with 2AM brain.
* Fixed the R_ProjectSprite error going out of spr2names' bounds.
* Fixed order of FF's in dehackéd.
* Fixed that thing where Super Sonic was blue for 1 tic after transformation, and the life icon was a blue Super Sonic.
2017-03-11 17:14:39 +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
Monster Iestyn
b0f4bbb44b Played TD's Stormy Streets enough to know precipitation sprites didn't get an overflow test of their own
(various large invisible blocks used in the level cause rain to make splashes high above the main level, high enough to make ghostly rain splash sprite artifacts appear sometimes in nearby areas)
2017-03-02 19:37:21 +00:00
toasterbabe
260b461c39 Drawangle.
Mystic wanted it, just play it - too busy to give proper commit description. Will outline everything it is in the merge request when that happens.
2017-02-05 18:15:20 +00:00
toasterbabe
e5cffa5237 Comment correction. 2017-01-17 14:48:15 +00:00
toasterbabe
5138255b94 The problem was triplefold!
* Value was getting populated even when it was irrelevant. That's fine, just move it after the valueless parsemode switch.
* Oh, it's struppr'd, of course it's going to compare badly with a lowercase string.
* ...oh, strncmp returns zero when it's equal, not true. Right.

<root>/toaster/smilespatch.wad and !LSF test exe updated on the FTP, btw.
2017-01-17 13:22:27 +00:00
toasterbabe
30b0d8af57 * Streamlined P_SKIN parser to have multiple internal "parsemodes" instead of redundant code.
* Instead of "reset = SPR2_ONE_\nreset = SPR2_TWO_", it is now possible to type "reset\nSPR2_ONE_\nSPR2_TWO_.
2017-01-17 12:55:49 +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
toasterbabe
38c7436565 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into charabilities_mk3
# Conflicts:
#	src/d_clisrv.c
2017-01-09 11:10:47 +00: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
toasterbabe
4a53d96099 * Fixed changing skins during differing-length sprite animations resulting in sprite errors.
* Added PF_BOUNCING to a place where it would likely be wanted.
2016-12-26 18:36:57 +00:00
Monster Iestyn
6f8969aec0 Merge branch 'spindash-dust' into 'master'
Spindash dust

Charging a spindash kicks up dust, we all know this feature was dying to get in at some point. Bubble and flame forms of spin dust are included from FSonic, for underwater and elemental respectively.

Oh, and as a bonus I reorganised the spindash/spinning/other ability2 stuff code to look a bit neater and more organised.

New resources:
* MT_SPINDUST - the object
* S_SPINDUST1 to 4 - the normal form's states
* S_SPINDUST_BUBBLE1 to 4 - the bubble form's states
* S_SPINDUST_FIRE1 to 4 - the bubble form's states
* SPR_DUST - the normal form's sprite set (uses frames A to D, just pinch FSonic's sprites really)
* SPR_FPRT - the flame form's sprite set (frame A only)

SF_NOSPINDASHDUST disables spindash dust for a character

See merge request !52
2016-12-13 15:15:33 -05: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
f5f2542849 Go through all the polyobjects to find leftover polyobj planes to add to the draw nodes list
I'm convinced there's going to be some stupid side effects from doing this, but it's the quickest way I can fix the polyobj planes not all appearing anyway
2016-11-16 17:50:44 +00:00
Monster Iestyn
6e70acc82d Added SF_NOSPINDASHDUST to disable spindash dust 2016-11-13 22:33:57 +00:00
Alam Ed Arias
67d2211bca whitespace: cleanup 2016-11-01 15:54:52 -04:00
Monster Iestyn
ff0b1d1dfa Split polyobj plane drawnode-creating code from ds->maskedtexturecol code, and add plane bounds checking 2016-10-11 22:35:46 +01:00
toasterbabe
664cfa2a9d Disabled MF2_LINKDRAW's ability to work in chains because it required modifying flags2 to prevent infinite loops, and that isn't network safe at all. 2016-10-02 18:17:23 +01: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
be0e898bae * Skin-controlled radius is no longer set each tic, only on skin change and player spawn.
* Camerascale, shieldscale, height and spinheight are now player attributes which are set to the skin attribute on skin change, not read directly from the skin.
* P_GetPlayerHeight and P_GetPlayerSpinHeight are now macros instead of functions.
* Extra protection against switching to a locked skin.
2016-09-25 18:21:52 +01:00
toasterbabe
64a9a94604 GETSPEED -> GETFRACBITS completion. woops 2016-09-25 15:23:22 +01:00
toasterbabe
28523760c3 FF_VERTICALFLIP, since I've been messing around with sprite stuff.
* flips the sprite ala MFE_VERTICALFLIP except you don't need to flip the direction of gravity for the object just to draw upside down
* stacks properly with reverse gravity
2016-09-24 14:23:00 +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
8d8be8a7b2 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into s_skinprovements 2016-08-30 13:30:56 +01:00
toasterbabe
d17843aee1 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_sprites 2016-08-26 20:48:48 +01:00
toasterbabe
8a244c1816 Nev3r helped me discover a crash caused by NAMEcLcR not loading patches into every angle lump slot.
This is the smallest possible change that fixes the crash.
2016-08-26 16:09:43 +01:00
toasterbabe
41b3b3c5bd GCC 4.6 and lower fix 2016-08-22 23:42:06 +01:00
toasterbabe
c08e9674be As requested by Nev3r and VAda, seperating MF_PAPER into FF_PAPERSPRITE and MF_PAPERCOLLISION. 2016-08-20 15:15:48 +01:00
toasterbabe
ef6c2510a2 Did a few things to make this better.
* Reorganised R_DrawVisSprite to do less needless variable calculation.
* Corrected some clipping oversights.
* Made a few comments clearer.
2016-08-20 12:18:00 +01:00
toasterbabe
7d5bda709a Sorting is fixed! Turns out rover isn't a FOF, it's another sprite. Thanks @RedEnchilada for noticing this oversight!!
http://gfycat.com/EsteemedPleasedDuck <-- so great
2016-08-20 03:02:40 +01:00
toasterbabe
8df146b713 An additional proper overflow check, and also a little something I forgot earlier. 2016-08-20 01:03:35 +01:00
toasterbabe
552a67200c A revert of the sorting because it produced better (but not perfect) results for paper and normal mobj interaction.
Also, I added more sortscale handling in the places where I forgot it.

I probably need some help with the maths here to get this to work nicely. http://gfycat.com/LimpAgedDowitcher
2016-08-19 15:06:10 +01:00
toasterbabe
fbff05bd17 Fixed the between-objects sorting problem previously mentioned in the merge request. Now they're sorted by whichever sprite has an end closest to the camera, instead of the middle point previously used.
http://i.imgur.com/UyOKX5u.png <-- this common glitch with crawlas given MF_PAPER (THEY'RE NOT GOOD AT TURNING NEAR EDGES) used to show the behind-crawlas in front of the front-crawlas.

Unfortunately, I've just discovered this issue (which happens with the old version of the sorting code too): http://i.imgur.com/QNjbATB.png but to be fair these crawlas have gotten stuck inside the edges of this platform, so I'm not sure I can do anything about this without cutting off Sonic's feet when he stands on the ground? shrug
2016-08-19 12:26:26 +01:00
toasterbabe
7786ef43e8 Okay, did a bunch of stuff. Getting ready to create a merge request, but not quite there yet.
* MF_AMBUSH is now MF2_AMBUSH, because it's something you turn on in a map editor, not with a SOC definition.
* Where MF_AMBUSH was is now MF_PAPER.
* MF_PAPER accesses all the stuff I did previously in this branch...
* ...as well as turn on paper-thin collision detection between mobjs, which I've gotten working but isn't perfect but it's still good enough for non-solid objects!!
2016-08-18 20:09:35 +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
ce8ae48222 I think this is as optimised as it's gonna get. Now onto the flag! 2016-08-18 12:55:04 +01:00
toasterbabe
2d3ebc5e49 Fixed the last of the odd stretching by:
* recognising that the offsets weren't going to be accurate if you just SWAPPED yscale and yscale2 over 180 degrees
* taking scale into account consistently

also, some optimisations
2016-08-18 12:40:45 +01:00
toasterbabe
9231a4653c SORTED, THANKS MI
http://gfycat.com/SimpleShallowDeviltasmanian

now to put this behind some sort of flag and optimise it
2016-08-17 22:19:28 +01:00
toasterbabe
66a737a7f0 fuuuuuuuu 2016-08-17 21:24:53 +01:00
toasterbabe
6c559946f0 ok no i misunderstood what he was getting at 2016-08-17 21:14:01 +01:00
toasterbabe
7096659450 Thanks to MI for helping me notice a scaling issue by code alone 2016-08-17 21:11:05 +01:00
toasterbabe
2244e9162b Some overflow checks. They're not proper like the other overflow checks, but they remove all the situations I've been able to discover without making stuff unnecessarily disappear. 2016-08-17 19:09:59 +01:00