Commit graph

205 commits

Author SHA1 Message Date
mazmazz
17e23f55eb 492: Merge speed and duration logic for fade polyobject 2018-09-15 20:00:37 -04:00
Nev3r
350cd1435b The thinker is entirely unified now, and there is no difference in the light levels between the "old" behavior and this one now. 2018-09-15 12:21:25 +02:00
mazmazz
ab4a825385 420: Combine speed and duration logic for fade lighting 2018-09-15 19:01:21 -04:00
mazmazz
79484de4ea Merge branch 'colormap-overhaul-change-ldef' into colormap-overhaul-fade 2018-09-15 01:51:06 -04:00
mazmazz
6844ed37c5 Colormap overhaul: %d format size_t -> UINT32 fix 2018-09-15 01:50:33 -04:00
mazmazz
5585edf459 453: Mixed D+C fixes; unused param cast in P_FadeFakeFloor 2018-09-15 01:05:21 -04:00
Monster Iestyn
546fa383c1 Make sure that T_MarioBlockChecker is synced in netgames, so that the textures of Mario Blocks can change when there are no more items 2018-09-14 21:01:07 +01:00
mazmazz
e8a5735f75 Merge branch 'lightfade-ticbased' into le-fadefof 2018-09-14 08:42:02 -04:00
mazmazz
21506873be Merge branch 'colormap-overhaul-change-ldef' into colormap-overhaul-fade 2018-09-13 12:10:14 -04:00
mazmazz
6824e6a359 Make extracolormap_t->fog UINT8; it's not boolean, but categorical 2018-09-13 12:08:46 -04:00
mazmazz
5aa66f8872 455: Add speed increment timing (~EFFECT4) to FadeColormap 2018-09-13 10:43:32 -04:00
mazmazz
4ab3a986f3 492 PolyObj Fade, 491 PolyObj Translucency, 490 PolyObj changes
* 490: Set proper render flags according to spawnflags
* 491: Add relative calc (EFFECT3) and Front X alpha param (DONTPEGTOP)
* 492:
    * Tic-based (EFFECT4) and speed timing
    * Add relative calc (EFFECT3) and Front X alpha param (DONTPEGTOP)
    * Set proper render flags according to spawnflags
    * Fix OpenGL >= NUMTRANSMAPS render bug
2018-09-13 00:06:11 -04:00
mazmazz
46067f0579 Merge remote-tracking branch 'origin/lightfade-ticbased' into lightfade-ticbased 2018-09-12 21:35:46 -04:00
mazmazz
30b9ed59c0 Merge branch 'colormap-overhaul-change-ldef' into colormap-overhaul-fade 2018-09-12 17:40:24 -04:00
mazmazz
ad9ef5d593 Merge errors 2018-09-12 17:39:30 -04:00
mazmazz
978b9bdea2 Merge branch 'colormap-overhaul' into colormap-overhaul-change-ldef 2018-09-12 17:30:09 -04:00
mazmazz
c58e9b0bae Merge remote-tracking branch 'origin/master' into colormap-overhaul 2018-09-12 17:28:22 -04:00
mazmazz
9fb9b44383 Fade FOF colormap support 2018-09-12 16:59:35 -04:00
mazmazz
92c5cb8233 Colormap savegame failsafe - Handle NULL (default colormap) 2018-09-12 11:13:49 -04:00
mazmazz
e95cd0f962 Colormap savegame failsafe - Handle NULL (default colormap) 2018-09-12 11:06:18 -04:00
mazmazz
14b71bdbc5 Fade colormap special 455! And stop fade colormap 456
* Added T_FadeColormap thinker and netsync
* Added sector_t fadecolormapdata property
2018-09-12 09:06:38 -04:00
mazmazz
92a97fb1a6 Split colormap netsync to Load/SaveExtraColormap methods 2018-09-11 22:44:31 -04:00
mazmazz
c920827032 Consolidate colormap matching into R_GetColormapFromList 2018-09-11 15:56:21 -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
9a52816cb4 Use percentage calc instead of interval decrement for tic-based fading 2018-09-11 10:28:24 -04:00
mazmazz
c468451a63 Merge branch 'lightfade-ticbased' into le-fadefof 2018-09-11 10:08:13 -04:00
mazmazz
36923ae7b0 Use percentage calc instead of interval decrement for tic-based timing 2018-09-11 10:05:25 -04:00
mazmazz
43ae25c4fd Make default extracolormap on init
* Calc fadedist in R_CreateLightTable
2018-09-10 21:56:57 -04:00
mazmazz
22746c1d91 Savegame fixes 2018-09-10 21:15:34 -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
c92226890e Remove bottommap and topmap from savegame because unused 2018-09-10 16:50:35 -04:00
mazmazz
7e9297d06e Savegame netsync for sector colormaps; add spawn_midmap and co for comparison 2018-09-10 16:50:27 -04:00
mazmazz
e171e565ce Remove bottommap and topmap from savegame because unused 2018-09-10 09:03:58 -04:00
mazmazz
002f1bad8f Savegame netsync for sector colormaps; add spawn_midmap and co for comparison 2018-09-10 09:01:09 -04:00
mazmazz
03d1baf422 Savegame floorrover fixes 2018-09-10 00:07:22 -04:00
mazmazz
5136293f62 Store sectornum/ffloornum as UINT32, not INT32 2018-09-09 23:52:36 -04:00
mazmazz
dd35871699 Savegame netsync for mobj->floorrover and ceilingrrover 2018-09-09 23:48:42 -04:00
mazmazz
f33f9dd284 Replace sectornum/rovernum index vars with ffloor pointers 2018-09-09 23:12:37 -04:00
mazmazz
573e1d0017 Replace firsttic with timer increment 2018-09-09 21:01:00 -04:00
mazmazz
0202bbcfd3 Replace firsttic with timer increment 2018-09-09 20:45:12 -04:00
mazmazz
703764d769 Merge branch 'lightfade-ticbased' into le-fadefof 2018-09-09 20:18:57 -04:00
mazmazz
3d5f225702 Replace firsttic with decrement timer 2018-09-09 20:18:43 -04:00
mazmazz
c3c4a251f1 Added tic-based logic to FOF fade (ML_EFFECT5) 2018-09-09 19:31:32 -04:00
mazmazz
80a4a03f8e Finalize light level on fade finish (not forced stop)
* Added destlightlevel property to fade_t
* Fixed dotranslucent, dolighting, docollision order weirdness in function calls
2018-09-09 17:20:35 -04:00
mazmazz
ca58fba24a Merge branch 'lightfade-ticbased' into le-fadefof 2018-09-09 13:44:30 -04:00
mazmazz
aeb45132c5 Revert "Snap light level to software values (32 levels)"
This reverts commit cc26d03c93.
2018-09-09 13:43:00 -04:00
mazmazz
3f4656e57e Polyobject Fade logic 2018-09-09 08:08:48 -04:00
mazmazz
4ca38dc8a1 Merge branch 'lightfade-ticbased' into le-fadefof 2018-09-08 23:03:18 -04:00
mazmazz
cc26d03c93 Snap light level to software values (32 levels)
* New properties `exactlightlevel` and `lightlevel` in `lightlevel_t`
2018-09-08 23:01:35 -04:00
mazmazz
1e1b01c157 Implemented tic-based light fading
* ML_BLOCKMONSTERS specifies destvalue and speed by texture offsets
* ML_NOCLIMB toggles tic-based logic
* Added props `duration`, `interval`, and `firsttic` to `lightlevel_t`
2018-09-08 22:10:51 -04:00
mazmazz
069cc480c1 Add dolighting flag to FadeFakeFloor thinker 2018-09-08 20:41:45 -04:00
mazmazz
76d7a54b2b Fix player Z snap to floor on moving platform ~FF_EXISTS
* Track player's old floorz by mo->floor_sectornum and floor_ffloornum
* Track tmfloorz by tmfloorrover, tmfloor_sectornum, tmfloor_rovernum
* Ceiling variants of the above
2018-09-08 00:34:56 -04:00
mazmazz
0b365d0d08 Initial polyobj fade skeleton 2018-09-07 15:27:18 -04:00
mazmazz
bc2f48a018 Merge branch 'master' into nights-dronebox 2018-09-07 09:06:32 -04:00
mazmazz
4147773d0c Merge branch 'master' into le-fadefof 2018-09-06 18:12:24 -04:00
mazmazz
d94608fa10 Add alpha clamping so OpenGL conforms to Software's translucent levels 2018-08-17 17:07:07 -04:00
mazmazz
45ae6efbad Refactor function and variable names; change defaults for fake floor fader line flags 2018-08-17 15:25:25 -04:00
mazmazz
677f19ede6 Move fading thinker to ffloor_t.fadingdata 2018-08-17 02:28:52 -04:00
mazmazz
2e252cb905 Move fadingdata (fade_t thinker) to line_t 2018-08-17 01:11:04 -04:00
mazmazz
931297e2d7 Rename dofadeinonly to doghostfade
* Ghost fading: when transitioning to/from alpha=0, don't set solid/tangibility until fade is finished
2018-08-16 22:27:26 -04:00
mazmazz
841c31a6ba Attach fade_t thinker to proper control sector upon savegame load 2018-08-13 22:17:58 -04:00
mazmazz
ec8d264029 totalmarescore player variable for NiGHTS scoring
# Conflicts:
#	src/p_setup.c
2018-08-12 19:59:34 -04:00
mazmazz
5938a57970 totalmarelap and totalmarebonuslap player variables 2018-08-12 19:57:33 -04:00
mazmazz
4e02171c23 Add lapbegunat and lapstartedtime player variables
There is no lapfinishedtime because [mare]finishedtime refers to when Egg Capsule is destroyed. That concept does not apply to laps.
2018-08-12 14:21:26 -04:00
mazmazz
480c4f890d player->oldscale var for pre-Nightserize scale 2018-08-11 00:49:28 -04:00
mazmazz
32c17b1454 Basic implementation for player position correction to Drone center
* player->drone mobj variable
* P_MoveNiGHTSToDrone, will change later
2018-08-10 19:25:49 -04:00
mazmazz
18b5b70822 Add lastmarelap and lastmarebonuslap player variables 2018-08-10 16:30:49 -04:00
mazmazz
1b922b8ba5 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into nightsplus-laplogic
# Conflicts:
#	src/p_map.c
#	src/p_setup.c
2018-08-10 15:10:26 -04:00
mazmazz
b8eb282367 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into le-fadefof-remove-storedthinker 2018-08-10 15:03:07 -04:00
mazmazz
487c62fe31 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into nightsplus-laplogic
# Conflicts:
#	src/p_setup.c
2018-08-10 13:35:59 -04:00
mazmazz
bd8316f49b Track player's previous mare rings with player->finishedrings.
There may not be a point to this, other than to be consistent with how spheres are tracked. If non-special stage NiGHTS should tally a ring bonus, this may be useful.
2018-08-10 04:05:20 -04: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
mazmazz
bd6276a39e Allow immediate alpha setting when speed = 0; refactoring
* Separate fade logic into P_FindFakeFloorsDoAlpha, P_DoFakeFloorAlpha
* Change INT32 destvalue and speed to INT16
2018-04-07 07:09:04 -04:00
mazmazz
afa0aae131 Refactor flag handling toggles 2018-04-06 23:14:48 -04:00
mazmazz
3e8d264a2d Add fadingdata to sector_t 2018-03-31 00:41:20 -04:00
mazmazz
c13f561b50 Fix fade_t handleflags to UINT32 2018-03-31 00:02:37 -04:00
mazmazz
d449aae76d Add predefined behaviors for fading FOF flags
* ML_BLOCKMONSTERS: Handle FF_EXISTS
* ML_NOCLIMB: Handle FF_SOLID
* ML_EFFECT1: Don't handle FF_TRANSLUCENT
2018-03-30 22:43:13 -04:00
mazmazz
3fbffb0b4d Add player_t marelap and marebonuslap, with logic 2018-03-30 20:28:27 -04:00
Marco Z
44b25be69a fade_t fields 2018-03-30 16:19:19 -04:00
Marco Z
0fedd2e566 Define fader thinker names 2018-03-30 15:33:03 -04:00
Monster Iestyn
0c89853425 created W_IsLumpWad as a shortcut for the "is the lump a WAD" checking in the code getting map data lumps 2018-01-10 16:51:23 +00:00
Monster Iestyn
19e08584a3 add support for maps-in-WADs-in-pk3s to P_NetArchiveWorld as well 2018-01-10 15:24:24 +00:00
toasterbabe
05832e66a3 Fix unmatched readfixed (by replacing). 2017-11-02 19:38:21 +00:00
TehRealSalt
f0b938eb98 Merge remote-tracking branch 'refs/remotes/origin/master' into sal-misc-stuff
# Conflicts:
#	src/p_saveg.c
2017-10-14 16:20:56 -04:00
TehRealSalt
8a676d8aa4 Added movebob removed viewheight
"movebob" lets you determine the strength of movement bobbing (does not
affect landing delta, that's technically not movement bobbing :p),
values range from 0.0 to 4.0. viewheight is now relative to
player->height.
2017-10-14 16:11:08 -04: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
Alam Ed Arias
f1a347e55f Merge branch 'public_next' into master 2017-09-28 11:01:20 -04: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
toasterbabe
706eb5efeb * New, pretty save select! Requires patch.dta to really appreciate.
* Changed the save format a little more, since I had free reign over it.
* Modified the string drawing functions to not awkwardly clip at the very edges of the screen, considering the relevant patch drawing functions avoid out-of-range memory writes.
2017-08-20 23:18:47 +01:00
toasterbabe
fd63db0aaf Starting lives revamp, per the 2.2 priorities topic list!
* Each time you die, the number of game overs you've had is counted.
* Your save file updates to record this.
* The number of startinglives is determined by the number of times you'ved game-overed, with the maximum being infinity lives (thereby providing a cap on the number of game overs you can go through in a typical game).

Requires a new patch.dta, but I'm not uploading that yet because not happy with the icon we've got going for infinity lives on the save select menu.
2017-08-18 00:58:16 +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
TehRealSalt
a813506b8f Clean whitespace 2017-08-06 23:47:39 -04:00
TehRealSalt
2d9a024c4a Commenting out lastmapsaved 2017-08-04 13:57:47 -04:00
TehRealSalt
9d17466d99 Added lastmaploaded to replace the lastmapsaved check
This allows saving in special cases where you can go to a map that
doesn't save, and then back to the map you saved on (see: SUBARASHII
special stages), while still preventing you from killing your lives by
repeatedly retrying in said map.

Kept lastmapsaved just in case. Can be removed if deemed unnecessary.
2017-08-03 20:27:31 -04:00
Monster Iestyn
318d5656b5 Keeping a total of thinkers saved/loaded and print the total in netplay devmode
Not a fix for anything, probably just useful for debugging
2017-06-12 17:55:15 +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
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
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
Monster Iestyn
fb8140312b Merge branch 'flat_alignment_revamp' into 'master'
Revamps of several dated linedef type effects

Felt like being productive so made some things I hate suck less.

Linedef type 7 (flat alignment) now works as follows.
* Linedef angle (from v1 to v2) is flat angle.
* Origin of flat is manipulated to match v1's coordinates - unless ML_NOKNUX is flagged, in which case uses frontside x and y offsets as flat offsets instead.
* ML_NOSONIC prevents changing floor.
* ML_NOTAILS prevents changing ceiling.
* Both of the above flags at once prints a warning.
* (THZ and probably a few other maps need updating.)

Linedef type 540 (friction) now works as follows.
* Controlled by x offset instead of length - offset of -100 is maximum iciness, offset of +483(!!!) is the maximum sludginess BUT things are scaled such that +100 is about the maximum sludginess any reasonable human being would want in a level, 0 is ORIG_FRICTION)
* Not reliant on a sector special to function (can be applied solely by tag to in-map sectors or solid FOF control sectors)
* Uses less memory, perform less calculations, and not bug out objects which just happen to use movefactor for something
* PHYSICS CHANGE: Low friction surfaces actively impede your acceleration (and make your animation speeds faster to give off that Looney Tunes out-of-control effect)
* (ACZ and Frozen Hillside needs updating.)

Sector types 1 and 3 in section 3 no longer do anything.

Linedef type 3 (zoom tube) now works as follows.
* Abs of frontside x offset is speed in units of FRACUNIT/8.
* Abs of frontside y offset is waypoint sequence number.
* Effect 4 flag rotates the player to match the waypoint direction (same as before).
* (ERZ needs updating.)

Linedef type 11 (rope hang) now works as follows.
* Abs of frontside x offset is speed in units of FRACUNIT/8.
* Abs of frontside y offset is waypoint sequence number.
* Effect 1 flag makes rope transfer one-way. (same as before)
* No climb flag makes rope static. (same as before)
* (ACZ and maybe ERZ need updating.)

Linedef type 258 (laser) is almost the same as before, but has altered functionality.
* Its flashing is less obnoxious. (56.25% to 68.75% instead of 100% to 0%, at half the speed)

Linedef type 14 (Bustable block parameters) is new, and works as follows.
* Tagged to the control sector of a block that is likely to be busted (via executor or collision, doesn't matter)
* Concatenation of frontside textures is MT_ object type to spawn, defaults to MT_ROCKCRUMBLE1 if not present
* Sound played when being busted is object type's activesound
* Frontside x offset is spacing (in fracunits) of spawned particles, defaults to 32<<FRACBITS
* Frontside y offset is the fuse of spawned particles in tics, defaults to 3*TICRATE, if set to -1 fuse is not set
* Effect 1 flag makes particles "fly out" horizontally and vertically from the center of the FOF

Sector types 7 through 15 in section 3 no longer do anything.

Linedef type 250 (Mario Block) is almost the same as before, but has new functionality and is slightly different in another way.
* No Climb flag turns it into a brick block (set on Custom FOF via presence of FF_SHATTERBOTTOM - busts when hit from the bottom, player hits their head/fist/whatever, no more upwards momentum)
* Effect 1 flag makes it an invisible block (set on Custom FOF via absence of (FF_SOLID|FF_RENDERALL|FF_CUTLEVEL) - intangible from every side except the bottom. Becomes visible and tangible when it's hit once)
* Only updates side textures when moving down or stationary, not whilst moving up - more fidelity to the source material, less processing on the CPU, everyone wins.
* If FOF master linedef has a backside, then: [If there's items in it the FOF's flats are set to that of the backside sector's ceiling, otherwise the floor.] Otherwise, no flat change.

Linedef type 4 (Speed Pad parameters) now works as follows.
* Frontside x offset is speed in fracunits.
* Effect 4 flag doesn't center the player. (same as before)
* Effect 5 flag sends them off in rolling frames.
* Frontside upper texture is sound to play on launch, defaults to sfx_spdpad when not given

Sector type 6 in section 3 no longer does anything.

Object type 757 is changed as follows, and no longer works on its own - see Linedef type 15 for more details.
* Tag via its angle field
* Number of objects to spawn per tic around it via its z field, if zero then just spawn at center
* Is flipped if given MTF_OBJECTFLIP.
* (ERZ and Seraphic Skylands - if we use that map - needs updating)

Linedef type 15 (Fan particle spawner parameters) is new, and works as follows.
* Tag is tag of object(s!)
* Object type set via concatenation of frontside textures, MT_PARTICLE is default
* The length of the linedef is the radius the particle is spawned out (zeroed if z field is 0)
* Frontside x offset is speed upwards
* Frontside y offset is number of degrees to turn each tic (zeroed if z field is 0)
* Frontside floor and ceiling heights are the heights in which the particle is bound through some fun mathematics

A_ParticleSpawn is changed, too.
* Object type is now changed through actor->threshold instead of var1 to support Linedef type 15.

Test executable uploaded at /toaster/srb2win_branch_flatalignment.exe on the ftp.

Test file uploaded at /toaster/flatalignment.wad on the ftp.

Breaks compatibility with 2.1 so put in internal.

See merge request !29
2017-01-24 16:49:43 -05:00