Commit Graph

110 Commits

Author SHA1 Message Date
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
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 a3767fedac Clean out code/update comments relating to TEXTUREn, TEXTURE (SOC), PNAMES, and ANIMATED. 2017-08-08 22:03:37 +01:00
toasterbabe 780f9b1645 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/hardware/hw_md2.c
2017-08-07 20:36:14 +01:00
Monster Iestyn 42ed41aeb1 Merge branch 'maces_but_better' into 'master'
Maces but better

See merge request !103
2017-08-07 15:27:05 -04:00
Monster Iestyn f3b7d2f89e Merge branch 'opengl-improvements' into 'master'
OpenGL improvements

See merge request !99
2017-08-07 15:06:16 -04:00
TehRealSalt a813506b8f Clean whitespace 2017-08-06 23:47:39 -04:00
TehRealSalt a5ca158622 LF_SAVEGAME flag instead of savemode
Also always save on file creation
2017-08-06 16:36:55 -04:00
TehRealSalt e24b8b917a Merge remote-tracking branch 'refs/remotes/origin/master' into save-mode 2017-08-06 01:19:33 -04:00
toasterbabe b51e80ef88 Make timer reset work in LF_NORELOAD as well. 2017-08-05 22:13:35 +01:00
toasterbabe 0a1e055ba1 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/m_menu.c
2017-08-05 22:13:14 +01:00
Monster Iestyn 15a1112218 Merge branch 'master' into opengl-improvements 2017-08-05 21:08:48 +01:00
Monster Iestyn 2e2b71da92 Merge branch 'addfile_menu' into 'master'
Add-ons menu

Does what it says on the tin! Very pretty. Would like help testing in filesystems that are not Windows, although I've recieved assurances from Sryder that since it's based on the same filesrch code, it should work cross-platform. Just want to confirm it works, though.

Also, M_* is whitelisted lumpname too.

root/!LatestSRB2Files/srb2win_branch_addfile.exe, requires new patch.dta.

See merge request !92
2017-08-05 16:05:12 -04:00
Monster Iestyn 102d30fe8d Merge branch 'nights_emblems' into 'master'
NiGHTS Paraloop-special emblems

Implemented the two NiGHTS Emblem types in the TUDD via var modifications to ET_GLOBAL!
* GE_NIGHTSPULL (for it to chase you once paralooped) - Sun emblem
* GE_NIGHTSITEM (for hidden until paralooped) - Moon emblem
* Combined means that you essentially have to loop it twice.

Also, revamped NIGHTSITEM to suck a little less (and have more compatibility with MT_EMBLEM).

Check out root/!LatestSRB2Files/srb2win_branch_nightsemblems.exe with the latest patch.dta, along with root/toaster/nightstest.soc for a sample in GFZS.

See merge request !94
2017-08-05 16:03:33 -04: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 8fcb66b3fa Allow for new coop leveltime reloading 2017-08-05 12:26:05 +01:00
Monster Iestyn 157c5625d7 Welp, that space removal was my fault 2017-08-04 22:22:20 +01:00
Monster Iestyn 0270e50ce5 Split off mostly map-specific code into a "CanSaveLevel" function, just to make things a bit less cluttered 2017-08-04 20:43:00 +01: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
TehRealSalt 0b05b10bdb Merge remote-tracking branch 'refs/remotes/origin/master' into save-mode 2017-07-30 11:13:52 -04:00
toasterbabe a5477737d7 Whooh boy. Probably requires re-review.
* Support for MF_PAPERCOLLISION tmhitthing in P_SlideMove.
* Knockback for wallspikes is much more consistent.
* Optimised away a FixedDiv call when determining the slopetype of a line.
* Changed the position of the wallspike base slightly.
* Made it so NOTHING can step up onto the player outside of other players, essentially killing a bunch of springs-launch-with-players style bugs. (I was able to recreate that issue with the wallspikes until I added this, which is why I did it in this branch.)
2017-07-18 14:17:23 +01:00
toasterbabe 125646e521 Some minor tweaks to make countdown not COMPLETELY broken. 2017-07-04 21:33:16 +01:00
toasterbabe 370d9c3176 Hooh boy.
****
* MF2_MACEROTATE. Apply to any object. Replaces the indiscriminate spamming of A_MaceRotate each tic.
****
* Mace point mapthings have been slightly modified.
   - MTF_AMBUSH: bigger luke theory (has no effect on custom mace, different effect on spring mace)
   - MTF_OBJECTFLIP: flips the objects, but nothing else - just so it doesn't look out of place in gravflip sections
   - MTF_OBJECTSPECIAL: keeps it from attempting to play swinging sounds
   - angle: tag of controlling linedef
   - parameter: number of "spokes" minus one - for example, a parameter of 2 results in 3 equidistant maces rotating around the same point.
****
* Mace linedefs have been significantly revamped.
   - line dx: number of chain links
   - line dy: speed (in FU)
   - frontside floor height: Pitch (in degrees; how much it "tilts" over - Yaw influences the axis it's tilting on)
   - frontside ceiling height: Yaw (in degrees; rotation of entire thing on xy plane)
   - frontside x offset: Phase (in degrees; how far it is through the rotation cycle)
   - frontside y offset: Max speed (in FU; if less than speed, set to speed*2)
   - backside floor height: Pinch (in degrees; 0 if no backside; essentially makes rotation conical instead of wheel-like)
   - backside ceiling height: Roll (in degrees; 0 if no backside; rotates on the axis of the spinning - identical to Phase for spinning maces, but useful for rotating swinging maces as opposed to just offsetting them)
   - backside x offset: Number of "antispokes" (0 if no backside; makes that many spokes not exist so you can put another mace/chain type in there instead; for combo mace/chain instead turns them into chains directly)
   - backside y offset: Width (in number of extra chains per side; 0 if no backside; creates a "skiprope" arrangement)
   ----
   - ML_NOCLIMB: for chains and chain-mace combos, allow for player control of yaw through strafe keys
   - ML_EFFECT1: replacing the seperate mapthings, this makes a mace type swing instead of spin.
   - ML_EFFECT2: for all spokes of the mace wheel ending in maces, make the chains out of the mace type (inverted for firebars)
   - ML_EFFECT3: spawn a bonus mace type at the center(s) of rotation
   - ML_EFFECT4: don't clip inside ground
****
* Mapthing 1104 represents both spinning and swinging maces from prior versions of SRB2.
* Mapthing 1105 has gone from being a swinging mace variant to a combination of chains and maces in a single unit, provided the number of "spokes" is greater than one.
* Mapthing 1105 has gone from being a swinging chain variant to a vertical spring-on-a-ball-on-a-chain. Yellow by default, apply MTF_AMBUSH to turn into a red spring.
* Mapthing 1107 represents both spinning and swinging chains from prior versions of SRB2.
* Mapthing 1108 is completely untouched except to port over 2.1's functionality to the new backend.
* Mapthing 1109 is a Mario castle-level style firebar. This inverts the functionality of ML_EFFECT2 on the tagged linedef.
* Mapthing 1110 is a free slot should we want to implement another type of base-game mace.
* Mapthing 1111 is a custom mace. Use the linedef's frontside texture slots to identify a macetype mobjtype, then use the backside texture slots to identify a linktype mobjtype (defaults to MT_NULL if no backside).
****

Whooh. Requires new patch.dta for sprites.
2017-07-02 15:11:09 +01:00
toasterbabe 8d8ae2b538 Renamed again, and this time I'm happy with it.
* "playstyle" to "coopstarposts"
* "lifedistribution" to "cooplives"
2017-06-03 17:55:03 +01:00
Monster Iestyn cefd92fc8e Merge branch 'master' into opengl-improvements 2017-05-31 15:18:42 +01:00
toasterbabe 4353fa65a2 * Spectatoring for game over supported.
* Don't lose lives when you die as a spectator.
2017-05-30 20:31:51 +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
toasterbabe 61fcbe9b36 Implemented the two NiGHTS Emblem types in the TUDD via var modifications to ET_GLOBAL!
* GE_NIGHTSPULL (for it to chase you once paralooped) - Sun emblem
* GE_NIGHTSITEM (for hidden until paralooped) - Moon emblem

Combined means that you essentially have to loop it twice.

Also, revamped NIGHTSITEM to suck a little less (and have more compatibility with MT_EMBLEM).
2017-05-09 16:20:26 +01:00
toasterbabe 72baa4e2d0 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into addfile_menu 2017-05-08 23:43:21 +01:00
Monster Iestyn 9238b2d50f Merge branch 'level-specials-setup-stuff' into 'master'
Level specials setup stuff

Some changes to level setup, largely inconsequential for gameplay but maybe helpful for Lua scripting:

* gravity, weather, and some other internal variables are set to their defaults before loading things, so their values from a previous level don't affect mobj spawning potentially
* Tag lists are also initialised before loading things, so that tag-based search functions (such as P_FindSpecialLineFromTag) can be used internally for the maces and particle generator. This should probably extend to Lua as well
* the level header "forcecharacter" no longer recognises "255" as "None" anymore. This is because it no longer takes skin numbers (as of whenever that change was added... version 2.0?), and level headers are auto-cleared when edited anyway.

See merge request !88
2017-05-08 15:15:50 -04:00
toasterbabe 1fc835e4a3 Made the refreshdirmenu stuff SLIGHTLY less hacky. 2017-05-08 17:28:48 +01:00
Monster Iestyn 21950687ed Make sure noreload levels don't do anything weird with the skybox mobj pointers, especially if Lua was involved
We can assume skyboxviewpnts/skyboxcenterpnts sort themselves out from reloading all the Things at least I guess?
2017-04-26 21:34:22 +01:00
Monster Iestyn bdb3c2ea0e extrainfo now determines "skybox ID", a number between 0 and 16 to identify the viewpoint or centerpoint
also I made that change skybox linedef exec special I guess (linedef type 448)
2017-04-26 18:16:01 +01:00
Monster Iestyn d4c330678a level header's "forcecharacter" parameter doesn't take skin numbers anymore, so this isn't needed! 2017-04-25 20:39:32 +01:00
Monster Iestyn 4e96f624e7 Split off part of P_SpawnSpecials into a new function called P_InitSpecials
This allows tag lists, gravity, weather, and the "CheckFor" vars to be initialised before running P_LoadThings or P_ResetDynamicSlopes, in case they could affect mobj spawning or cause a netgame desync somehow by carrying over the previous level's values
2017-04-24 20:33:39 +01:00
Monster Iestyn 3ff899858c Merge branch 'master' into opengl-improvements
# Conflicts:
#	src/doomdef.h
2017-04-19 14:53:50 +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 3efa66d537 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into charabilities_mk3
# Conflicts:
#	src/m_menu.c
2017-04-04 21:03:35 +01:00
Rob 8fdbc5669c Merge branch 'level_select' into 'master'
Revamped Level Select (platter view)

Seriously revamped every level select instance in the game to use a more attractive and easier to navigate platter view, including:

* Game CLEAR! save (Title/Pause menus)
* Secrets Menu (including custom ones)
* Record Attack/NiGHTS Mode
* Server creation (Online/2P)
* MP Pause level select (Online/2P)

As a result, the layout of the last three above menus has been changed to varying degrees of difference.

Also, bonus feature: using level select (or MAP MAPxx without -force) in Co-op multiplayer won't reset your score, will keep any lives you have above the startinglives variable, and will not take away all your emeralds. The -force thing prevents both warping directly to special stages to rack up the emeralds AND ensures there IS a way to start a new game.

Check out <root>/!LatestSRB2Files/srb2win_branch_levelselect.exe with the latest patch.dta to see more.

Also, LF2_WIDEICON lets you do this. https://gfycat.com/MenacingClearAngora

See merge request !68
2017-04-04 12:23:18 -04:00
toasterbabe 76b56a0285 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into charabilities_mk3
# Conflicts:
#	src/p_user.c
2017-04-04 16:55:20 +01:00
TehRealSalt a84eed162d Save mode
Lets modders set how the game should be saved. Likely useless for
vanilla, but helpful for other mods. This was spawned out of selfishness
for SUGOI to make it only save at the hub, but mods like Boss Mayhem,
which has a hidden map and an act 3 (without any other acts) in the
normal SP campaign, and other mods where the default is detrimental
would benefit as well.

0 for default, 1 for always, 2 for never (no constants because bonustype
doesn't have them either). Won't save if the game is modified, if using
a no-save slot, if playing ultimate mode, or if in a special stage, even
if savemode is set to always.
2017-03-29 18:25:09 -04: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
TehRealSalt e5245c508d Reimplemented analog mode cam_dist increase, slight comment updates
Analog mode's camera is now x1.2 of your actual cam_dist setting,
instead of being strictly 192. "analog on" seems to reset this modifier
every once in a while, but "useranalog on" prevents this. The wiki
itself says that you should only change useranalog though, so it
shouldn't be too big of a deal.
2017-03-26 17:11:04 -04:00
TehRealSalt dbcbcf5da3 Changed defaults, camera settings save
Camera settings: distance from 128 to 160, height from 20 to 32, speed
from 0.25 to 0.3
Mouse sensitivity from 35 to 12
Default control setup is Mystic's proposed scheme from the New Player
Experiences topic (https://mb.srb2.org/showthread.php?t=42095)

Also, camera settings now save to config, and they no longer try to
reset back to the default at every chance it gets (you can die, start a
new game, or exit, all while still keeping your preferred setting)
2017-03-25 03:13:02 -04: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
toasterbabe 4a68f191c8 Mostly-complete structural work, very much incomplete rendering work. 2017-01-26 19:14:52 +00:00
Monster Iestyn 18d018b8ff Merge branch 'master' into opengl-improvements 2017-01-25 19:37:35 +00:00