Commit graph

274 commits

Author SHA1 Message Date
toasterbabe
ddf8db12af Big commit, sorry. I broke several things trying to get other things to work and it's only now that all the code that worked yesterday works today!
*P_LookForEnemies is now side-effect-less and only provides a pointer to the found mobj
*player-jumping is dead, long live PF_STARTJUMP
*per Mystic's request, CA2_GUNSLINGER has a targeting icon. It also has a more restricted vertical aiming range.
*mobj for this is in the game as requested
*fast teetering animation flag
*general code cleanup
2017-03-22 18:51:30 +00:00
Monster Iestyn
731ee115a3 Merge branch 'public_next' 2017-03-13 18:25:26 +00:00
Alam Ed Arias
2823c7bffb build: fixup warnings from GCC 6.2.1 2017-03-12 17:23:56 -04:00
Monster Iestyn
f4e5233c7e Remove unused sscount variable
(it's only set to 0 in software, and only ++'d in OpenGL, what kind of sense does that make?)
2017-02-11 22:41:15 +00:00
toasterbabe
a66567ea0f borp https://gfycat.com/AcceptableWhiteJabiru
doesn't do anything in ogl sorry, inu might change that later but
2017-02-10 23:24:06 +00:00
Monster Iestyn
18d018b8ff Merge branch 'master' into opengl-improvements 2017-01-25 19:37:35 +00:00
toasterbabe
399a6c1d47 * ALMOST SORTA IMPLEMENTED A NON-HACKY SPINNING FLAMEJET. For some reason, they wanna step down onto the platform - and I've been figuring this out for too long to see what's causing that tonight.
* Hardcoded a bunch of stuff from patch.dta. All works fine, but still more to do.
2017-01-21 01:09:39 +00:00
Monster Iestyn
df534887e9 Remove pointless drawtextured variable and redundant fake planes checks (R_FakeFlat would already have made gr_frontsector/backsector something else if they were) 2017-01-12 21:43:37 +00:00
Monster Iestyn
e87324b814 Made some efforts to improve efficiency of new code, hard to tell if I've made it better or worse though honestly
R_IsEmptyLine is now a thing too btw
2017-01-10 20:07:02 +00:00
Monster Iestyn
c5e99050fc More progress, NEWCLIP added to doomdef.h, sadly it actually all lags the game so I've disabled it for now
Other notes:
* on second thought I'll keep the hw_clip functions' gld prefixes rather than HWR, not like it matters either way
* despite the extra lag it does fix the issues with translucent walls and such when displayed at different vertical angles, such as with the GFZ1 waterfall
2017-01-10 18:01:03 +00:00
Monster Iestyn
93a40eb87a Merge branch 'master' into opengl-improvements 2017-01-09 22:13:34 +00:00
Monster Iestyn
e37d680a4a Starting work on porting hw_clip.c/h code, Makefiles and CMake can compile them at least
Other notes:
* Renamed all new functions to have HWR_ prefix instead of gld_, for consistency
* HWR_FrustrumSetup and HWR_SphereInFrustum are disabled and require HAVE_SPHEREFRUSTRUM. This is because 1) SRB2CB did not need the code, so presumably neither will we, and 2) there are some OpenGL API functions used there that due to our way of using OpenGL we don't use outside of r_opengl.c, which makes dealing with HWR_FrustrumSetup complicated in theory
* The new clipping functions are not added to OpenGL's "main" rendering code itself just yet, they're just available to use now once hw_clip.h is included
2017-01-09 22:13:26 +00:00
Monster Iestyn
3d07915be2 Merge branch 'vada_flickies' into 'master'
Hardcoded VAda Flickies

Many thanks to MI for his help, even if he has sinful opinions on what the collection of creatures should be called. ;P

* Flickies are now handled via A_FlickySpawn instead of hardcoded in P_KillMobj, so there can be mobjtypes with MF_ENEMY which don't create flickies, or other mechanisms which can much easier.
* Added map header "FlickyList" (aka "AnimalList") parameter, which can either be set to:
    * A species (eg: "Rabbit" or "Bluebird", amongst 17 currently supported types in dehacked.c table FLICKYTYPES - including the seed from Sonic CD, which isn't limited to 'soniccd on' in the console now)
    * Any valid mobjtype that isn't MT_NULL (eg: "MT_FLICKY_GHOST")
    * A comma-seperated list of either of the above, up to 64 entries long (eg: "Cow,MT_FLICKY_SPIDER,Chicken")
    * "All" - sets behind-the-scenes stuff to use every 'normal' type of flicky in FLICKYTYPES (a distinction which can be utilised to hide secret level flickies where they wouldn't be appropriate for the main game)
    * "Demo" - sets behind-the-scenes stuff to use the five flickies closest to the species used in the game's long history.
    * "None" - prevents any flickies from spawning.

"Demo" is functionally the default value if you don't include a FlickyList parameter in the header at all.

Of note, a bunch of functions are now created:
* A_FlickySpawn - spawns flicky.
* A_FlickyAim - aims for area near target, but not directly on them - turns around when hitting wall
* A_FlickyFly -  flies/swims around target (calls A_FlickyAim)
* A_FlickySoar - hacky alternate fly (calls A_FlickyAim)
* A_FlickyCoast - slowing down before going off again
* A_FlickyHop - fracunit-scale precision for A_BunnyHop
* A_FlickyFlounder - A_FlickyHop with randomisation
* A_FlickyCheck - State-setter for falling, or being on-ground
* A_FlickyHeightCheck - State-setter for falling, or being below a certain height relative to target
* A_FlickyFlutter - A_FlickyCheck, but with a slow fall/movement (calls A_FlickyCheck and A_FlickyAim)

I don't need to enumerate the object types and states that have been added, do I?

Oh yeah, I also made it so get_mobjtype's failure value was MT_NULL and prohibited SOC from editing the properties of it to compensate.

IN ADDITION: Killed "soniccd" console command, since it made things more complicated and honestly being able to specify Sonic CD seeds in the level header is a better option.

See merge request !60
2017-01-08 17:36:25 -05:00
Monster Iestyn
166c6746cd Merge branch 'public_next' 2017-01-08 16:05:32 +00:00
Monster Iestyn
87dc33a78d Merge branch 'master' into next 2017-01-08 15:59:34 +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
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
toasterbabe
311886e582 * Ported in all of the Flickies from flickiesreduced8.wad except for the Flicker and seed.
* Fixed a crash bug in the Flicky fly function I introduced sleepily last night.
2016-12-31 16:55:06 +00:00
Alam Ed Arias
97f87827f4 hardware: init undef vars in HWR_SortVisSprites 2016-12-22 19:42:00 -05:00
Monster Iestyn
0538c98251 Added missing checks in HWR_AddLine from the software version, move v** vars to the top since R_PointToAngle calls use the same values anyway 2016-12-21 22:31:09 +00:00
Monster Iestyn
41dfba65c9 Hack to make sure even (extra)subsectors without planepolys have segs adjusted
this fixes a crash in (old) GFZ2 at the ramp as a result of creating pv1/pv2. This probably means before pv1/pv2 there could have been some silly typecasting from vertex_t to polyvertex_t to get fixed vertex coords and such...
2016-12-21 22:10:27 +00:00
Monster Iestyn
106e1aa8d5 Merge branch 'master' into opengl-improvements 2016-12-21 19:49:02 +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
toasterbabe
85fb02aaf6 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions
# Conflicts:
#	src/p_inter.c
#	src/p_user.c
#	src/st_stuff.c
2016-11-20 16:44:38 +00:00
Monster Iestyn
eab2df5627 Merge branch 'public_next' 2016-11-16 12:20:37 +00:00
Monster Iestyn
694bb73ef7 Merge branch 'master' into next 2016-11-16 12:16:51 +00:00
Monster Iestyn
42f985cda5 Remove pdupx/y and just use sdupx/y for everything, thanks Inuyasha 2016-11-16 12:10:56 +00:00
Monster Iestyn
0726dbe018 Started work on making HWR_DrawFill support V_NOSCALESTART properly ...so far I've got the console text select highlight in the right place outside of 320x200 (and 320x200 is still fine), but for whatever reason it's too large in width and height
Oh well, we're part of the way there, anyway
2016-11-15 20:33:07 +00:00
toasterbabe
645e7298c0 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-11-12 13:43:02 +00:00
Monster Iestyn
5be8e4f1b0 Make new pv1/pv2 seg pointers, so AdjustSeg doesn't modify the v1/v2 pointers directly anymore
Yes I know they're void * in r_defs.h's seg_t definition, it's quicker than trying to figure out if including hardware/hw_glob.h is a good idea or not
2016-11-07 21:55:56 +00:00
Monster Iestyn
817f0908e4 made HWR_CreateBlendedTexture's color switch case take up not so many lines, and only one V_GetColor call is used now 2016-11-07 18:34:51 +00:00
Monster Iestyn
bbd67a6960 Merge branch 'master' into opengl-improvements 2016-11-06 18:02:34 +00:00
Monster Iestyn
cb1fbbf345 Merge branch 'public_next' 2016-11-06 18:02:12 +00:00
Monster Iestyn
f97301b8b8 Merge branch 'master' into next 2016-11-06 17:59:35 +00:00
Monster Iestyn
2dfb841c38 Correcting slight mistake I made 2016-11-06 17:50:04 +00:00
toasterbabe
b5a6bfe046 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-11-06 16:03:12 +00:00
Monster Iestyn
05860b2fa1 Ensure file is closed whenever MD2 reading errors happen 2016-11-05 20:51:48 +00:00
Monster Iestyn
b00c680437 Add MD2_INDENT and MD2_VERSION so we can cleanly check that it's a valid MD2 from magic number/version 2016-11-05 20:40:48 +00:00
Monster Iestyn
2df7d8c4aa Merge branch 'public_next' 2016-11-05 19:52:27 +00:00
Monster Iestyn
7b9328781f Merge branch 'master' into next 2016-11-05 19:36:04 +00:00
Monster Iestyn
8909b7c27b Change >= to >, I THINK having exactly 4096 vertices is safe? 2016-11-05 17:38:36 +00:00
Monster Iestyn
efe02e2a42 allow triangle/frame limits too 2016-11-03 22:53:49 +00:00
Monster Iestyn
561a0fe768 Attempt loading of an MD2 only once; if we failed then don't bother again
This keeps my new error messages from flooding the console and log.txt
2016-11-03 21:06:23 +00:00
Monster Iestyn
2ec972af54 check numVertices, bail out and print error message if there are too many
I added similar checks for the other num* but it seems some MD2s break the other limits without knowing anyway ...so I've commented these checks out for now, unless we have further discussion regarding them later on
2016-11-03 20:40:17 +00:00
toasterbabe
5a798bddbd Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-10-29 17:14:45 +01:00
Monster Iestyn
cd3895f676 Merge branch 'public_next' 2016-10-29 17:03:38 +01:00
toasterbabe
ab6fd676b5 YUP, I just fixed OGL Precipitation with this branch too. What the fuck? Squashing ancient bugs, woo. 2016-10-29 11:54:51 -04:00
toasterbabe
c18c014bef Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-10-23 14:47:37 +01:00
toasterbabe
3aa9d2a1b1 Sonic 3 shields implemented at a basic visual/functional level - no abilities yet. 2016-10-15 23:39:54 +01:00
Inuyasha
ff4b39bab4 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal into nix-srb1
# Conflicts:
#	src/info.c
2016-10-05 18:47:32 -07:00
toasterbabe
5614ff5691 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_sprites
# Conflicts:
#	src/p_enemy.c
#	src/p_mobj.c
2016-10-02 19:38:53 +01:00
Inuyasha
f1b8bfcfe7 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal into repeat-monitors
# Conflicts:
#	src/info.c
#	src/p_map.c
2016-09-29 18:08:50 -07:00
Inuyasha
d7aae15a6f Merge branch 'animated-sky' into 'master'
Animated sky support

What it says on the tin: skies can be animated textures now. Just set them up as normal animated textures (keeping in mind the starting texture still has to comply with the SKYn/SKYnn/SKYnnn naming format) and hey presto, your sky animates.

See merge request !34
2016-09-29 08:34:12 -04: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
Inuyasha
1a4b894589 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal into repeat-monitors
# Conflicts:
#	src/info.c
2016-09-24 23:05:01 -07:00
toasterbabe
50a44d96b1 Changes to bubbles for new DSZ + bubble sprites (needs new patch.dta). 2016-09-24 17:15:42 +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
8d8be8a7b2 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into s_skinprovements 2016-08-30 13:30:56 +01:00
toasterbabe
9c02c81095 Now that it's not 3am, here's some fixes to what I pushed last night.
* That hacky anti-NiGHTS-deaxisment code I commented out because I thought it was visual only? Reimplemented in a way that is both more and less hacky. It's identical in result to the original code, but takes a roundabout method to get there.
* Sprite references for SUPE, SUPZ and NDRL are removed because they are now unused.
* Helper's flashing conditional is restructured to do less flag swapping.
* The check for super setting FF_FULLBRIGHT is limited to MAXTRANSLATIONS now, and also correctly takes into account MAXSKINCOLORS == SKINCOLOR_SUPERSILVER1.
* NiGHTS collision bounds aren't hardcoded anymore.
* NiGHTS link will never display when leaving stage.
* Slightly tweaked rules for the supercolor setting when doing a NiGHTS transformation, but only meaningful for setting FF_FULLBRIGHT.
2016-08-12 14:42:22 +01:00
Alam Ed Arias
074dde5f78 Merge branch 'public_next' into master 2016-08-11 12:59:04 -04: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
b3b6d5c4f9 woops, renamed superwhite to supersilver during writing and forgot to change this comment 2016-08-10 19:54:07 +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
toasterbabe
76e658bf1b Minor re-ordering to optimise this branch. 2016-08-07 00:21:16 +01:00
Monster Iestyn
fe5b8c58af Add basic support for animated sky textures 2016-07-31 20:51:39 +01:00
Monster Iestyn
2870e19f7f Take out fixedheight-based hacks for checking if floor or ceiling! Use an "isceiling" boolean for that instead
This apparently fixes most of the issues with ceiling slopes in Boinciel's SUGOI map
2016-07-27 19:56:21 +01:00
toasterbabe
333d8c882e Recreating NAMEcLcR sprite angle loading in internal, as Inu requested. 2016-07-19 00:04:00 +01:00
toasterbabe
f757fb3545 SF_MACHINE. Currently only changes drowning, but could do more.
* Electric sparks coming off entire body instead of bubbles coming out mouth
* Different sounds.
* Different icons.

These sprites are currently local only, but I'll be doing a lot of asset updating this evening since Rob asked me to so it won't be long until you can get them.
2016-07-16 22:43:49 +01:00
Alam Ed Arias
8f0994b38b Merge branch 'public_next' into master 2016-07-11 16:22:05 -04:00
Alam Ed Arias
0c8fcb5e4d Merge branch 'master' into repeat-monitors 2016-07-11 15:29:06 -04:00
Alam Ed Arias
2c8008e11e NULL checks 2016-06-13 10:07:10 -04:00
Alam Ed Arias
1e507d3d1e added printf checks to hardware's I_Error 2016-06-12 16:08:48 -04:00
Alam Ed Arias
1e3631425f r_opengl: move DrawMD2i code to DrawMD2Ex 2016-06-12 16:08:48 -04:00
Alam Ed Arias
b9a39f3043 Merge branch 'public_next' into master 2016-06-04 22:36:55 -04:00
Monster Iestyn
4c422f6605 OpenGL: closed door/window detection code now accounts for slopes, just like in software 2016-06-04 18:31:21 +01:00
Alam Ed Arias
c23b40fa9c Merge branch 'public_next' into master 2016-06-02 18:39:08 -04:00
Monster Iestyn
c863e311fe OpenGL: Fix upper texture Effect 1 only skewing 2016-06-01 19:22:54 +01:00
Monster Iestyn
bf85cc25bd OpenGL: Fix lower unpegged texture offset, fix lower unpegged + effect 1 so the texture actually skews 2016-06-01 18:51:38 +01:00
Alam Ed Arias
e5a14d859e Merge branch 'public_next' into private 2016-05-27 11:37:09 -04:00
Monster Iestyn
0081397920 OpenGL: Fix MD2s on player 2's screen breaking when reverse gravity is involved 2016-05-27 14:53:36 +01:00
Alam Ed Arias
20dcf138e2 hardware: let not break MSVC support 2016-05-27 01:28:21 -04:00
Alam Ed Arias
008be7c90d hardware: start the surf as clean 2016-05-27 01:19:16 -04:00
Alam Ed Arias
b51a1148d1 Merge branch 'public_next' into master 2016-05-25 10:21:55 -04:00
Alam Ed Arias
57091261d9 MSVC: fixed up MSVC project 2016-05-21 23:53:04 -04:00
Alam Ed Arias
032313260a Merge branch 'public_next' into master 2016-05-20 17:58:57 -04:00
Alam Ed Arias
e2a5783521 Merge branch 'master' into next 2016-05-19 01:39:45 -04:00
Alam Ed Arias
ab9f2ea831 MSVC: fixup Debug build linked 2016-05-18 21:11:30 -04:00
Alam Ed Arias
7058baed44 Merge branch 'master' into next 2016-05-18 20:07:27 -04:00
Alam Ed Arias
5aa48cf7ca fixed up old VS 2010 project to work with VS 2015, tested with FMOD/DirectX 2016-05-18 01:35:35 -04:00
Monster Iestyn
01debc27a2 Merge branch 'public_next' 2016-05-06 18:06:18 +01:00
Monster Iestyn
f0bea2cebf Merge branch 'next' into gl-slopes 2016-05-02 22:51:51 +01:00
Alam Ed Arias
be63e6b860 Merge branch 'public_next' into private 2016-04-30 11:51:55 -04:00
Alam Ed Arias
26f78de3b4 Merge branch 'master' into next 2016-04-30 11:45:11 -04:00
Sean Ryder
0eb41b4450 Flip fade mask Y coordinates
For some reason every texture and flat loaded into GL is vertically flipped
2016-04-30 13:40:00 +01:00
Sean Ryder
d2d73f085d Change internal formats of screen fade texture to RGB
Don't think either of them need RGBA
2016-04-29 20:56:46 +01:00
Sean Ryder
55a1de899c The fade masks textures should use an alpha format
So they don't get effected by the texture format set by the screen depth
GL_RGB5_A1 from 16-bit was removing all alpha from the texture
2016-04-29 18:58:20 +01:00
Alam Ed Arias
fbd9cb73c3 Merge branch 'public_next' into private 2016-04-27 16:54:37 -04:00
Inuyasha
b288d8a399 Merge branch 'bp_random2' into 'next'
xorshift* PRNG

This needs testing to ensure I didn't mess anything up switching function names around.

Our PRNG sucks. This is probably obvious. I wish I had known better at the time I implemented it, but oh well.

The replacement is an xorshift* PRNG variant with period 2^32 - 1 (meaning that the PRNG state will loop after four billion calls ... that's not likely to happen), versus the old PRNG's period of about 2^22 (?). The output is also much more random and less predictable; the old PRNG would fall into a predictable loop of output after about 4000 numbers were generated, which isn't much.

The PRNG here also outputs numbers as fixed point from [0,1) (that's 0 to FRACUNIT-1, in other words) instead of single bytes at a time. This makes it much easier to calculate things for, say, P_RandomRange and P_RandomKey. A new macro, P_RandomChance(p), is now in use that returns true _p_ percent of the time, where _p_ is a fixed_t probability from 0 (0%) to FRACUNIT (100%).

This doesn't affect netgames at all; the code for seed saving and restoring is identical (aside from a check to prevent seed being set to 0, which breaks xorshift PRNGs). Demos break, but A: _duh_ and B: they're already broken by all the changes to physics to accommodate slopes.

P_Random is deprecated in Lua, as the function was renamed to P_RandomByte. Aside from that, nothing special.

See merge request !64
2016-04-24 18:03:13 -04:00
Monster Iestyn
d53801c85c Disable the corona-related consvars unless ALAM_LIGHTING macro is enabled 2016-04-21 18:50:30 +01:00
Monster Iestyn
c833f3845f Merge branch 'next' into bp_random2 2016-04-20 18:18:28 +01:00