Commit graph

325 commits

Author SHA1 Message Date
Jaime Passos
cdc4a6d86e Implement blend modes 2020-10-27 00:03:41 -03:00
Jaime Passos
d348ff079b Only create floor sprite slopes when needed, instead of always allocating them.
Has to be done manually in Lua. Use P_CreateFloorSpriteSlope, and P_DeleteFloorSpriteSlope when done with it.
2020-10-14 13:07:02 -03:00
Jaime Passos
96fa912bae Implement object-defined floor sprite slopes. 2020-10-14 00:57:13 -03:00
Jaime Passos
a6f2e8b9c6 Implement relative and absolute sprite offsets for objects (mobjs)
Added RF_ABSOLUTEOFFSETS and RF_FLIPOFFSETS
2020-10-13 12:57:36 -03:00
Jaime Passos
b4b4738c94 Changes to sprite rendering:
- Added render flags (see r_defs.h)
- Implemented floor splats
- Drop shadow sprite rendering through render flags
2020-10-12 00:13:22 -03:00
Jaime Passos
7bc4af41ab Merge branch 'pictureformats' into patch-stuff-again-2 2020-08-15 20:48:28 -03:00
Jaime Passos
c385eca5d2 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2 into pictureformats 2020-07-06 19:29:14 -03:00
Nev3r
6b38fe4b2c Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next 2020-07-06 11:13:27 +02:00
LJ Sonic
080a5acd0f Merge branch 'ff_horizontalflip' into 'next'
FF_HORIZONTALFLIP and mobj->mirrored (sprite enhancements)

See merge request STJr/SRB2!987
2020-07-03 16:56:32 -04:00
Nev3r
e301d268ec Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next
# Conflicts:
#	src/hardware/hw_main.c
2020-06-30 20:29:48 +02:00
toaster
3b3256be8f Special saves!
All this refactoring, just to resolve #162. Specifically, it engages savegame events not at level load (except for savefile start) but on level completion, just after you've gotten all the intermission bonuses but before the intermission actually starts.

Also fixes a never-before-discovered bug where if the titlemap has LF_SAVEGAME, your save file will be overwritten upon returning to the title screen. This game is a mess of hacks, I swear...

One unintended side effect: It may actually be faster in some speedrun circumstances in mods with cutscenes to complete the map, exit back to the title screen, and reload the file. It's a common feature of optimal runs in games with cutscenes, though, and Marathon Run has a toggle for cutscenes, so I'm not particularly bothered.
2020-06-22 19:00:47 +01:00
kaysrishaq
6f859fd44d FF_HORIZONTALFLIP and mobj->mirrored (sprite enhancements) 2020-06-19 11:11:18 -04:00
SteelT
dbd5198ac2 Merge branch 'marathonmode' into 'next'
MARATHON RUN

See merge request STJr/SRB2!941
2020-06-17 19:36:10 -04:00
MascaraSnake
3ce62d7780 Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_mobj.c
#	src/p_polyobj.c
2020-06-09 09:38:01 +02:00
Lachlan Wright
5263b8cf63 Merge branch 'fix-spawn-desynch' into 'next'
Fix desynch when a player spawns

See merge request STJr/SRB2!977
2020-06-08 05:25:41 -04:00
Monster Iestyn
cc491d0a1e Sync turnobjs for polyrotate_t thinkers in netgames 2020-06-04 21:31:26 +01:00
LJ Sonic
aeeb6e1b02 Merge branch 'next' into 'fix-spawn-desynch'
# Conflicts:
#   src/p_map.c
2020-06-01 08:15:02 -04:00
MascaraSnake
636201fa1b Use 0 instead of 0xffff as dummy mobjnum 2020-05-31 22:58:14 +02:00
MascaraSnake
2b92d82b89 Netsync waypoint sequences 2020-05-31 22:44:25 +02:00
Louis-Antoine
d886e35576 Fix potential desynch when a player spawns 2020-05-28 11:03:35 +02:00
SwitchKaze
58cac1fd73 Make colors UINT16, increase color freeslots to 1024 2020-05-23 19:35:36 -05:00
MascaraSnake
a928eb3cf7 Merge branch 'more-polyobject-cleanup' into 'next'
Smooth polyobject movement and other cleanup

See merge request STJr/SRB2!947
2020-05-18 16:00:55 -04:00
MascaraSnake
42e6d1a593 Merge branch 'fof-cleanup' into 'next'
FOF cleanup

See merge request STJr/SRB2!910
2020-05-17 02:30:16 -04:00
MascaraSnake
52e05bc8d5 T_PolyObjWaypoint: We can find waypoints in constant time now, so no need to store the waypoint mobj in the thinker anymore 2020-05-16 09:03:02 +02:00
Jaime Passos
c69a4f9ced Merge remote-tracking branch 'origin/next' into pictureformats 2020-05-15 01:34:54 -03:00
toaster
4c412d931a Introducing Marathon Run. (I was going to call it Marathon Mode, but NiGHTS Mode being right next to it on the menu looked terrible.)
Basically a dedicated Record Attack-like experience for speedrunning the game as a continuous chunk rather than ILs. Has several quality of life features.

Benefits include:
* An unambiguous real-time bar across the bottom of the screen, always displaying the current time, ticking up until you reach the ending.
* Disable the console (pausing is still allowed, but the timer will still increment).
* Automatically skip intermissions as if you're holding down the spin button.
* Show centiseconds on HUD automatically, like record attack.
* "Live Event Backups" - a category of run fit for major events like GDQ, where recovery from crashes or chokes makes for better entertainment. Essentially a modified SP savefile, down to using the same basic functions, but has its own filename and tweaked internal layout.
* "spmarathon_start" MainCfg block parameter and "marathonnext" mapheader parameter, allowing for a customised flow (makes this fit for purpose for an eventual SUGOI port).
* Disabling inter-level custom cutscenes by default with a menu option to toggle this (won't show up if the mod doesn't *have* any custom cutscenes), although either way ending cutscenes (vanilla or custom) remain intact since is time is called before them.
* Won't show up if you have a mod that consists of only one level (determined by spmarathon_start's nextlevel; this won't trip if you manually set its marathonnext).
* Unconditional gratitude on the evaluation screen, instead of a negging "Try again..." if you didn't get all the emeralds (which you may not have been aiming for).
* Gorgeous new menu (no new assets required, unless you wanna give it a header later).

Changes which were required for the above but affect other areas of the game include:
* "useBlackRock" MainCFG block parameter, which can be used to disable the presence of the Black Rock or Egg Rock in both the Evaluation screen and the Marathon Run menu (for total conversions with different stories).
* Disabling Continues in NiGHTS mode, to match the most common singleplayer experience post 2.2.4's release (is reverted if useContinues is set to true).
* Hiding the exitmove "powerup" outside of multiplayer. (Okay, this isn't really related, I just saw this bug in action a lot while doing test runs and got annoyed enough to fix it here.)
* The ability to use V_DrawPromptBack (in hardcode only at the moment, but) to draw in terms of pixels rather than rows of text, by providing negative instead of positive inputs).
* A refactoring of redundant game saves smattered across the ending, credits, and evaluation - in addition to saving the game slightly earlier.
* Minor m_menu.c touchups and refactorings here and there.

Built using feedback from the official server's #speedruns channel, among other places.
2020-05-14 23:10:00 +01:00
MascaraSnake
93b6615e61 Store PolyObject waypoint return behavior in an enum 2020-05-13 16:21:47 +02:00
MascaraSnake
ea0176fada Remove diffx/y/z from polywaypoint_t, since they're always 0 anyway 2020-05-13 14:40:07 +02:00
MascaraSnake
2e9a6afa3e Merge branch 'udmf-next' into executordelay
# Conflicts:
#	src/p_spec.c
2020-05-13 09:55:25 +02:00
MascaraSnake
8c22834b46 Merge branch 'next' into udmf-next 2020-05-04 20:32:56 +02:00
MascaraSnake
5c0559a3d2 Adapt linedef executor delay to UDMF 2020-05-03 20:41:37 +02:00
MascaraSnake
8efec04051 Remove POLYOBJECTS and POLYOBJECTS_PLANES defines 2020-05-02 12:08:31 +02:00
MascaraSnake
58508e199d Make the laser thinker find the FOF itself instead of storing it in the thinker struct 2020-05-02 10:03:16 +02:00
MascaraSnake
7f74258951 Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_saveg.c
#	src/p_slopes.c
#	src/p_spec.c
2020-05-01 12:44:39 +02:00
MascaraSnake
e967c32a10 Merge branch 'more-thinker-refactor' into 'next'
More thinker refactoring

See merge request STJr/SRB2!900
2020-05-01 05:47:14 -04:00
MascaraSnake
5cf3fd0074 Merge branch 'next' into elevator-cleanup
# Conflicts:
#	src/p_saveg.c
2020-05-01 11:42:05 +02:00
MascaraSnake
2973b79715 Remove bogus comments from p_saveg.c 2020-05-01 11:25:32 +02:00
Monster Iestyn
edfbd799db Merge branch 'next' into netarchive-cleanup 2020-04-29 15:27:07 +01:00
Monster Iestyn
0ab7d0b4b5 Don't discard const, added missing & 2020-04-29 15:24:28 +01:00
Monster Iestyn
5f3a827609 Whoops the third 2020-04-29 14:45:52 +01:00
MascaraSnake
398ee65646 Store "no bosses" setting for lasers in thinker instead of checking sourceline. 2020-04-27 13:09:57 +02:00
MascaraSnake
40d0fb714d Store tag instead of sourceline in raise thinker 2020-04-27 12:54:08 +02:00
MascaraSnake
2d860cd362 Make new thinker loading functions set floordata/ceilingdata where necessary 2020-04-26 18:54:03 +02:00
MascaraSnake
bd40d8df9e Remove obsolete stuff from elevator_t 2020-04-26 18:38:45 +02:00
MascaraSnake
5a3883648d Accidentally changed the wrong SaveElevatorThinker call to SaveCrumbleThinker 2020-04-26 18:31:39 +02:00
MascaraSnake
38a3be00d0 T_StartCrumble refactoring, part 1 2020-04-26 16:51:14 +02:00
MascaraSnake
62ab099b6f Make T_StartCrumble use its own thinker data structure 2020-04-26 11:55:10 +02:00
Monster Iestyn
d06d55e2ae created P_GetFFloorID to get an "ID" of an FOF in its target sector (an opposite to P_GetFFloorByID you could say!), rewrote floor/ceiling rover archiving code to use both P_GetFFloorID and P_GetFFloorByID 2020-04-24 22:29:41 +01:00
Monster Iestyn
cc7185ef30 no diff3 needed for line archiving 2020-04-24 20:58:38 +01:00
Monster Iestyn
c06b4913eb we don't actually need put/get pointers at all (plus with everything put into functions they wouldn't work properly anyway) 2020-04-24 20:57:48 +01:00