Commit graph

789 commits

Author SHA1 Message Date
Monster Iestyn
289a412377 Hardcode the boss thinker function 2019-05-05 15:34:06 +01:00
Monster Iestyn
09368963dd hardcode MT_FBOMB's MobjSpawn hook function 2019-05-04 22:46:27 +01:00
Nev3r
a56e8e4f8b Merge branch 'further-mace-advancements' into 'master'
Further Mace Advancements

See merge request STJr/SRB2Internal!147
2019-04-30 15:15:35 -04:00
Nev3r
a9110c0645 Fixed more mobj thinker iterator oversights and removed all mobj thinker function checks
Mobjs got their own thinker list after all, and disappearing thinkers are automatically purged from their lists and sent to the limbo list.
So it's safe to assume all thinkers inside the mobj list must be mobjs.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 16:39:57 +02:00
Nev3r
fc9e141460 Give precip. its own thinker list
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 14:58:18 +02:00
Nev3r
696ccbd943 Fix mobj list iteration oversights.
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 12:58:22 +02:00
Nev3r
b60c66325c Added a mobj-only list entry for mobj thinkers
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 23:29:20 +02:00
Nev3r
39ba20be6b Basic multiple thinker list implementation
Set up a main thinker list and a polyobject mover list to test things up. Works so far, networking as well.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 22:39:22 +02:00
Jimita the Cat
0186f6784b a 2019-03-06 21:40:38 -03:00
Monster Iestyn
8f667906eb Fix compiler warnings 2019-02-13 18:06:56 +00:00
MascaraSnake
bc30bd06df In-map emblem coordinates are now set via emblem mapthings (thing type 322) instead of X/Y/Z fields in SOC 2019-02-03 14:32:07 +01:00
mazmazz
075f28b7c8 WIP 20190101 merge
d_netcmd.c
filesrch.c
m_menu.c
p_setup.c
p_spec.c
r_data.c
r_main.c
r_things.c
w_wad.c
w_wad.h
2019-01-02 01:09:15 -05:00
mazmazz
73a67fc9f5 Merge branch 'ctf-enemy-flag-sound' into 2122-version 2018-12-25 00:27:08 -05:00
mazmazz
9d1bc3063f Play flag-returned SFX for the opposing team 2018-12-23 22:57:14 -05:00
Monster Iestyn
582c5332f4 Add some checks to prevent invalid awayviewmobjs from crashing the game. Not fullproof but at the least the P_CameraThinker crash no longer happens 2018-12-11 18:39:58 +00:00
mazmazz
97ea4086a5 Redundant type 1800 check for MT_COIN 2018-11-27 14:10:55 -05:00
Monster Iestyn
1b2aea81dc Merge branch 'master' into next 2018-11-25 20:39:17 +00:00
mazmazz
ea7162a76a Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
Digiku
9e75774fd2 Merge branch 'nights-ideyaspawn-dronebox' into 'master'
NiGHTS: Ideya Anchor Points

See merge request STJr/SRB2Internal!160
2018-11-21 21:03:29 -05:00
mazmazz
250aab5889 Missed sign cast 2018-11-21 20:30:26 -05:00
Digiku
c6bd1111e5 Merge branch 'nights-dronebox' into 'master'
NiGHTS: Drone hitbox improvements and player position correction on Nightserize

See merge request STJr/SRB2Internal!158
2018-11-21 20:19:39 -05:00
Digiku
f3e4cf1f9d Merge branch 'nights-fastercapsule' into 'master'
NiGHTS: Faster Egg Capsule destruct sequence

See merge request STJr/SRB2Internal!164
2018-11-21 16:30:01 -05:00
Digiku
597877773b Merge branch 'nights-onfootcapsulefix' into 'master'
NiGHTS: Allow player to destroy capsule on-foot before transforming into NiGHTS

See merge request STJr/SRB2Internal!185
2018-11-21 16:29:37 -05:00
mazmazz
cf834f3503 Line 457: Calculate input angle tolerance correctly 2018-11-14 10:13:39 -05:00
Digiku
3ccfd57fba Merge branch 'tracerangle' into 'master'
Line Exec 457, 458: Track mobj's angle to tracer; executes line tag if mobj faces away

See merge request STJr/SRB2Internal!198
2018-11-13 10:48:01 -05:00
Digiku
1b7f7ef7cc Merge branch 'monitor-exec' into 'master'
Run linedef exec upon popping a monitor

See merge request STJr/SRB2Internal!199
2018-11-13 10:47:37 -05:00
mazmazz
dbb4924348 Compile errors 2018-11-13 10:43:40 -05:00
Monster Iestyn
268bde3fdf Merge branch 'public_next'
# Conflicts:
#	src/d_netcmd.c
#	src/d_netcmd.h
#	src/dehacked.c
#	src/g_game.h
#	src/hardware/hw_draw.c
#	src/hardware/hw_main.c
#	src/lua_baselib.c
#	src/lua_hook.h
#	src/lua_hooklib.c
#	src/lua_hudlib.c
#	src/lua_libs.h
#	src/lua_maplib.c
#	src/lua_script.c
#	src/m_misc.h
#	src/p_mobj.c
#	src/s_sound.c
#	src/sdl12/mixer_sound.c
#	src/w_wad.c
2018-11-10 15:41:57 +00:00
Monster Iestyn
4b8232d777 Merge branch 'master' into next 2018-11-09 23:18:14 +00:00
Monster Iestyn
b3befae143 Merge branch 'public-op-nightsbumper-fix' into 'next'
Objectplace: Fix NiGHTS bumper angle being reset when WRITETHINGS

See merge request STJr/SRB2!299
2018-11-09 12:11:11 -05:00
MPC
1cc8619c9e Minor remote viewpoint bugfixes. 2018-11-05 20:40:51 -02:00
mazmazz
eb204b6cc4 Add exec to GoldMonitorPop; transfer Angle tag to mobj->lastlook for Lua compat 2018-11-05 07:41:02 -05:00
mazmazz
eaf89cf7b9 TRACERANGLE: Run exec *after* resetting mobj values 2018-11-04 17:34:00 -05:00
mazmazz
cf6a6991cb Trigger line exec by whether mobj is facing its tracer
* MFE_TRACERANGLE
* Thing 758 MT_ANGLEMAN
* mobj thinker behavior
* Line Exec 457/458 Enable/Disable
2018-11-04 16:28:25 -05:00
Monster Iestyn
b5c4b476a6 Merge branch 'public_next'
# Conflicts:
#	src/d_main.c
#	src/m_menu.c
#	src/s_sound.c
#	src/sdl/sdl_sound.c
2018-10-20 15:31:48 +01:00
mazmazz
a288b95458 Merge remote-tracking branch 'public-gitlab/master' into public-music-cleanup 2018-10-19 22:04:26 -04:00
Monster Iestyn
291ebf302c Merge branch 'public_next'
# Conflicts:
#	src/Makefile
#	src/lua_script.c
#	src/p_user.c
#	src/sdl/i_system.c
#	src/v_video.c
#	src/w_wad.c
2018-10-10 14:51:34 +01:00
toaster
b1e02467bf Weather is already run client-side. What if we ran it render-side, for major performance gains? This commit will answer all your questions - and more! 2018-10-07 15:00:58 +01:00
mazmazz
a414ccf24a nodigimusic nomusic nosound -> digital_disabled midi_disabled sound_disabled
(cherry picked from commit 07738fb0bc)
2018-09-14 10:35:51 -04:00
mazmazz
b666fa3131 P_SpawnMapThing: Ignore MTF_ flags if MT_NIGHTSBUMPER
(cherry picked from commit d85f108997)
2018-09-14 08:52:10 -04:00
mazmazz
f8834b0201 MT_NIGHTSBUMPER Spawn: Don't reset mthing->options
(cherry picked from commit dc9fd6f02e)
2018-09-14 08:52:10 -04:00
mazmazz
a6f959ba21 Set mobj->floorrover and ceilingrover in appropriate places 2018-09-10 00:38:07 -04:00
mazmazz
943dc9412d Initialize floorrover and ceilingrover on SpawnMobj 2018-09-10 00:20:51 -04:00
mazmazz
bc2f48a018 Merge branch 'master' into nights-dronebox 2018-09-07 09:06:32 -04:00
mazmazz
c0ffbdafce Revert "Ideya fixes when a player has more than one Ideya"
This reverts commit e3facccb9d.
2018-09-07 08:56:53 -04:00
mazmazz
4fe1b2652d Merge branch 'master' into nights-fastercapsule 2018-09-07 08:56:02 -04:00
mazmazz
f8d260b044 Only allow flicky bounce (MF_NOCLIPTHING) if also in-place (MF_GRENADEBOUNCE) 2018-09-06 10:32:26 -04:00
mazmazz
2cfd941778 Re-organize flags for FLICKY_CENTER
* Flickies can be in-place with just one flag (MF_GRENADEBOUNCE)
* Flickies can now hop whether orbiting, aimless, or in-place
* Removed ability to customize movedir for orbit; will always be random
* Removed ability to customize gravity sink for aimless flying flickies
* Misc: Use P_SetTarget to set actor->tracer for flicky center
2018-09-06 10:17:41 -04:00
mazmazz
fe2d1e9020 Merge branch 'master' into flicky-things 2018-09-06 08:09:02 -04:00
Digiku
01314b6674 Merge branch 'nightsplus-le' into 'master'
NiGHTS Linedef Executor Triggers

Closes #102

See merge request STJr/SRB2Internal!142
2018-09-02 18:10:50 -04:00
mazmazz
d01ca9fe95 Make Ideya Anchor use parameter # instead of angle for Ideya ID 2018-08-16 11:25:35 -04:00
mazmazz
2e8c4b5545 Fixed capsule timing logic
* Force a total time, stretch out sphere deduction within that time
* Make it more readable
2018-08-15 13:38:15 -04:00
mazmazz
02aed5b019 Merge branch 'nights-onfootcapsulefix' into nights-fastercapsule 2018-08-15 12:09:46 -04:00
mazmazz
7cdce4324b Attempt 1: Guesstimate sphere pop rate and use that as the Capsule handling duration 2018-08-15 00:32:48 -04:00
mazmazz
9faace9e5d capsule->extravalue2 tic timer 2018-08-14 19:21:32 -04:00
mazmazz
0862aece9f Ideya fixes when a player has more than one Ideya
# Conflicts:
#	src/p_inter.c
2018-08-14 17:21:49 -04:00
mazmazz
e3facccb9d Ideya fixes when a player has more than one Ideya 2018-08-14 17:13:23 -04:00
mazmazz
8c57218027 Alternate take on pre-blowup: Do it on first touching tic, instead of first ring pop
* Use MT_EGGCAPSULE extravalue2 for tic timer
2018-08-14 11:41:10 -04:00
mazmazz
00cadfee3a Merge branch 'nights-dronebox' into nights-ideyaspawn-dronebox 2018-08-13 09:51:14 -04:00
mazmazz
6585ca3df3 Make Drone visual elements react to height change 2018-08-13 09:50:50 -04:00
mazmazz
1bc5976534 Correct hitboxradius value; proper sparkle->z when moving x/y 2018-08-13 04:49:32 -04:00
mazmazz
bec3a6884c Make anchoring non-specific to Ideya states (now anchor anything!)
# Conflicts:
#	src/p_inter.c
2018-08-13 02:19:53 -04:00
mazmazz
4642c75025 MT_IDEYAANCHOR info and spawn logic 2018-08-13 02:03:36 -04:00
mazmazz
c3e0267029 Fix attraction bug on non-NiGHTS and Nightopian Helper
* Switch from mo->movecount to mo->movefactor for type compat
* Adjust timings for regular and paraloop attraction
2018-08-12 23:03:12 -04:00
mazmazz
ce0b23a576 Set Drone hitbox radius by upmost 4 bits of Angle 2018-08-12 13:34:27 -04:00
mazmazz
8f50fbeb4f For safety, clear MF_SLIDEME and MF_GRENADEBOUNCE flags before using 2018-08-12 09:28:04 -04:00
mazmazz
f4a813891f Decouple Flicky Thing logic from spawnpoint variables; use mobj variables 2018-08-12 02:34:37 -04:00
mazmazz
43b790c26f A_OrbitNights make actor scale to target
* Added `donotrescale` input to disable this behavior
* Reverted previous commit changes for scaling Ideya because unneeded
2018-08-12 01:07:26 -04:00
mazmazz
aecabb246d Scale Ideyas when moving to/from NIGHTSDRONE and scaling changes to NIGHTSDRONE 2018-08-11 23:53:07 -04:00
mazmazz
9bc9f96e09 NIGHTSDRONE sync visual elements when changing mobj flags 2018-08-11 23:32:12 -04:00
mazmazz
0c8e1aa10a When NIGHTSDRONE z changes, change DRONEMAN z as well 2018-08-11 23:15:28 -04:00
mazmazz
79c042ca09 NIGHTSDRONE visual element positioning now works with scaling 2018-08-11 22:41:58 -04:00
mazmazz
a4e3f8cbcf NIGHTSDRONE visual element position syncing: XYZ and OBJECTFLIP 2018-08-11 21:38:44 -04:00
mazmazz
72b592888f Line fixes for visual element positioning
# Conflicts:
#	src/p_mobj.c
2018-08-11 20:50:53 -04:00
mazmazz
2c4f9d4776 Don't need this line 2018-08-11 15:54:39 -04:00
mazmazz
c99258b2e2 Make Drone hitbox height and player Z alignment configurable
* Default hitbox height is 80
* Drone Thing parameter sets height to multiples of 32
* Player aligns by default to bottom+24 of hitbox (offsetted)
* `MTF_OBJECTSPECIAL` aligns player to hitbox top
* `MTF_EXTRA` aligns to hitbox center
* `MTF_OBJECTSPECIAL|MTF_EXTRA` aligns to real bottom of hitbox
* Goalpost and sparkle Z alignment is changed to reflect configurableness
2018-08-11 15:52:42 -04:00
mazmazz
d0f0f475ce * Bounce Droneman within hitbox instead of floorz
* Correct Droneman hiding so he always stays within hitbox even when invisible
2018-08-11 02:03:44 -04:00
mazmazz
7c0186bc97 Drone de-coupling implementation
* Visual elements and hitbox work as expected with scaling and OBJECTFLIP
2018-08-10 22:11:48 -04:00
mazmazz
e0e77d873b Nights Drone mobj and state entries
* New entries: NIGHTSDRONE_MAN, NIGHTSDRONE_SPARKLING
* NIGHTSGOAL renamed to NIGHTSDRONE_GOAL
* MT_NIGHTSDRONE repurposed as an invisble, no-gravity hitbox
2018-08-10 18:24:31 -04:00
mazmazz
d405bdfd9b Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into nights-inufixes 2018-08-10 15:00:41 -04:00
mazmazz
07c882139b Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into flicky-things 2018-08-10 14:58:27 -04:00
mazmazz
e0f6dee8be MT_FLINGBLUESPHERE and MT_FLINGNIGHTSCHIP implementation 2018-08-10 02:18:24 -04:00
mazmazz
bf74b81842 Snappier NiGHTS pickup attraction
* Old attraction is still used for non-NiGHTS players due to a momentum bug. The old way is good enough to sidestep the bug.
* Thanks Inuyasha (KS) for original code 🐶
2018-08-09 21:24:01 -04:00
mazmazz
5eafebe4d4 A_FlickyCenter implementation - now Flickies can be attracted to players!
* Changed default movement to attraction, vs. aimless
* Flickies spawned from this will always have the FLICKY_CENTER mobj as its target
    * Use P_IsFlickyCenter to identify FLICKY_CENTER mobjs versus players
* FLICKY_CENTER mobj tracer points to the spawned Flicky
* Thanks toaster for the original code~~
2018-08-09 17:28:37 -04:00
mazmazz
904ff6fccb Choose Flicky Fish Color by Thing Parameter 2018-08-09 04:19:18 -04:00
mazmazz
f7c80f3980 Make standing flickies bounce if MTF_AMBUSH and not MTF_OBJECTSPECIAL 2018-08-09 02:55:22 -04:00
toaster
1ffa45f875 Rework software coronas a bit, apply them to the flame and flame holder too, and spawn them only if MTF_EXTRA is given. 2018-06-19 23:16:49 +01:00
toaster
4d9a6ef00b In another branch because you're meanies :(
Distance limitation before doing mace stuff unless EFFECT5 is used.
2018-06-11 15:36:02 +01:00
toaster
c5ab2ffa11 At FF and Sphere's suggestion, make the ring hoops work natively in normal stages and require more replacing for special stage conversion purposes. 2018-06-09 21:42:37 +01:00
toaster
adc0e3d6c3 Kart Krew discovered a crash, and I was already fiddling around with this, so... 2018-06-08 22:30:38 +01:00
toaster
a7c6977b6e * Make bomb spheres respawn with new laps
* Make the mapthing detection for stuff to be spawned by P_SpawnHoopsAndRings more consistent.
* Make NiGHTS stuff prevent perfect bonus.
2018-06-08 17:16:20 +01:00
toaster
35a5f7447e * Remove flashing from spheres in bonus time through #ifdef.
* Fix inconsistency in counting nummaprings.
* Prevent perfect bonus in non-special stage NiGHTS maps.
2018-06-07 15:10:43 +01:00
toaster
adf8f0e391 * Some minor info.c tweaks I discovered I needed to make while transferring material across from patch.dta to srb2.pk3.
* Making the particle generator dynamic, as requested by Nev3r.
* i....... think this is done? i'll double check in the morning.
2018-06-06 00:40:23 +01:00
toaster
9c2d30ce35 * Almost everything except players and badniks get removed on deathpit collision, as requested by Nev (very useful for the Bridge). May need serious checking for mobjtypes this is safe to do for.
* Flames fall with flameholders.
* New modification to teleport cheat: -sp <val> <val> allows instantaneous jump to any starpost in the map, including spawnpoints as starpost index 0!
* Also, -ang <val> and -aim <val>, which can be combined with -nop to pivot on the spot.
2018-06-05 20:47:30 +01:00
toaster
3725203bcd Bit of a random one today, but the branch approaches completion...
* Bomb sphere! Paraloopable hazard. Replaces MT_SPECIALSPIKEBALL.
* Blueberry bushes, both normal and Xmas, from patch.dta.
* BSZ tulips, also from patch.dta!
* Frozen Hillside badniks - Penguinator and Pophat.
* Frozen Hillside ice decoration!
* Fixed some big bugs with the DSZ light beams.
* Made multi-mare special stages work, in a troll way - the Chaos Emerald disappears in a puff of smoke, and the Spinbobert laughter sound plays... >:3c
* Reverted the mobjtype number changes from the source SOC/Lua, which we can do later when doing a final pass of the levels.
* State optimisation.
* Serious cruft-removal of the NiGHTS drone thinker.
* Fix the issues where the player wouldn't curl into jump in waterslides or dropping off rope-hangs.
* Tweak NiGHTS player flashing.
* Add text colour support to the titlecard font.
* Use that to make the PRESS SPIN\nMID-JUMP thing when you get all Chaos Emeralds use the titlecard font for readability.
* Fix the GOT ALL EMERALDS page not lasting the correct, extended amount of time.
* Fix that thing where flying mid-spin didn't enact autobrake.
* Modify graymap a little on Sryder's suggestion.
* [COMPLETELY UNRELATED] fix that thing where the addons menu will fail on files/paths with spaces in [/COMPLETELY UNRELATED]
2018-06-05 17:22:28 +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
toaster
8d00192fee New CEZ hardcoding done!!
* Better Robo Hood arrows.
* Shield break animation for Egg Guard. (Temporary state slot so I don't have to compile from scratch until I do something more complicated later.)
* Suspicious Facestabber Statue animates a little before bursting open.
* Fix Facestabber radius.
* Fix some stuff in Flicky functions that could be overwritten in Lua call actions by mistake.
2018-05-31 21:00:12 +01:00
toaster
2ec1c3cd9d First commit on new tablet-laptop!
* Robo Hood.
* Hi MI, I know you're looking at this just because it features Robo hood. :V
2018-05-30 23:16:57 +01:00
toasterbabe
cea4562c74 Realised I forgot to commit these, didn't want to move to a new laptop-tablet and just have them disappear on me.
* Facestabber statues now have fun breaking effects.
* Fake coronas for candles and prickets.
* hnext and hprev are properly dealt with in MobjThinker if P_MobjIsRemoved.
2018-05-29 18:48:57 +01:00
toasterbabe
364984ac12 Fix bugs (uninitialised memory the compiler didn't pick up, and not setting scale) I sleepily caused last night. 2018-05-24 13:19:42 +01:00
toasterbabe
cb86ed7721 * Castlebot Facestabbers.
* Facestabber statues, of both the suspicious and non-suspicious kind.
* New object type for the end of grabbable chains.
* I moved my compilation .bat file to my Releases folder, so it should .gitignore .bat's.
* Random extra stuff.
2018-05-24 01:40:57 +01:00
toasterbabe
dbcd259bd6 * New Egg Guard behaviour!
* Fix the thing I mistakenly messed up with all of the things I moved out of P_SpawnMapThing without good reason to.
2018-05-22 23:02:54 +01:00
toasterbabe
847f8b4ef0 * CEZ decorations!
* Moved a bunch of stuff that had no business being in mapthing spawns into mobj spawns.
2018-05-22 11:04:28 +01:00
toasterbabe
ee42132ed1 * Bumpers and Balloons in a more final state.
* Blue diagonal springs, because that gap is very, very odd.
* Improved A_SpawnFreshCopy.
* Tweaked P_LookForEnemies for consistency's sake. (Previously, it was impossible to make a spring that could neither be homing-attacked or attraction-shotted.)
2018-05-20 00:04:39 +01:00
toasterbabe
3c50acd1bf * Minor changes to make A_CrushclawAim more useful.
* Some fun with the chain. https://cdn.discordapp.com/attachments/402861856219463681/445539938633515018/srb20022.gif
* More corrections to closed captions.
2018-05-14 13:20:24 +01:00
toasterbabe
26d13db548 * Crushtacean!
* Behaves a bit differently to the one in DSZres.pk3.
   * Can now punch DSZ mines!
   * Also has mapthingnum 126 instead of 610.
* Some other mapthingnum changes.
   * DSZ2 stalagmite is now 1009, formerly 999.
   * Big DSZ gargoyle is now 1011, formerly 1009.
2018-05-14 01:19:24 +01:00
toasterbabe
a738ef99e3 * DrT's Spincushion hardcoded.
* Make the MF_PAIN stuff ONLY depend on mass, using the bottom 8 bits for the type and the custom sound in the upper ones.
* A bunch of cleanup of random other stuff, including an unused Deton state and an unused Jetty type's sprite.
2018-05-13 14:09:20 +01:00
toasterbabe
8a61d87961 * Add new damagetype flag (DMG_CANHURTSELF) that allows a player to hurt themselves indirectly.
* Add damagetype to P_RadiusAttack (optinteger in lua, A_Explode var1).
* Removed the prevention of MF_BOSS objects from getting P_RadiusAttacked. This was a holdover from DooM (I checked) - a way to prevent the Cyberdemon from gibbing itself when firing point blank into a wall, and also a way to make it and the Spider Mastermind harder.
* Enemies are solid to other enemies movement-wise now.
* (Fun little aside - if you remove MF_SOLID from a monitor, it now behaves like they did in Sonic Adventure (poppable by colliding with, not just attacking).
* Fixed Metal Sonic battle conflict in MF_PAIN/mass not picked up earlier.
* Miscellaneous tiny code tweaks.
2018-05-08 23:26:36 +01:00
toasterbabe
d0575f7fb0 * Hive Elementals and Bumblebores, plus associated useful action functions.
* Made Facestabbers take two hits and have associated pain/death animations. No other changes, just wanted to make sure THIS was done.
* Move Bubblebuzz-related stuff to go alongside the secret badniks and etc.
* MF2_INVERTAIMABLE. Inverts whether P_LookForEnemies can get at; replaces a hardcoded thingy.
2018-05-04 21:30:15 +01:00
toasterbabe
94c7d9bc52 Forgot to do this before making the previous commit; completes support for no-points drone badniks. 2018-05-03 00:00:22 +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
cf9d53efd8 Kill MF2_STANDONME (mechanically; still occupies the slot... will change that next time I have to handle the DEHACKED lists.) 2018-05-02 20:35:20 +01:00
toasterbabe
5cc1befcad * Haunted Heights! Smashing spikeball, Cacolantern, Spinbobert and Hangster, along with the Spider and Bat flickies and general decoration/ambience stuff.
* MF_PAIN and MF_MISSILE now support setting damagetype via their Mass parameter. The two existing conflicts - the fuse setting for the grenade weapon ring and the Cybrakdemon napalm bomb - had these moved to other free parameters.
* A_ConnectToGround is EXTREMELY useful for palmtrees and stuff.
* Some other, relatively hacky A_ functions.
* (Unrelated) Remove the need for a "Mario block mode" for the token by making it natively compatible.
* Spikes and their time-offsetting via that Lua script sphere made. Also allow for wallspikes to do it via their angle/360.
2018-04-28 15:13:44 +01:00
toasterbabe
1eb84f57c5 * Billiards mines! With support for both above and below water, replacing both the below-and-above-water old mines at once.
* Explosion executors.
* Minor refactor of P_KillMobj.
2018-04-26 20:18:51 +01:00
toasterbabe
976331fb03 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into hardcoding-time-again 2018-04-08 16:23:19 +01:00
toasterbabe
ff9775225e Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into delag_maces
# Conflicts:
#	src/p_mobj.c
2018-04-07 01:54:43 +01:00
Digiku
e1cd6357cc Merge branch 'op-nightsbumper' into 'master'
NiGHTS Objectplace: Preserve MT_NIGHTSBUMPER vertical angle upon WRITETHINGS

See merge request STJr/SRB2Internal!137
2018-04-06 20:21:25 -04:00
toasterbabe
4f3f647f5b A minor assortment of changes. 2018-04-03 01:46:42 +01:00
toasterbabe
156cc031ea * Optimise them even further... AGAIN! Using an offset-based system rather than a multiplication-based one...
* Again, tweak the spawning code to take maximum advantage of these gains.
* Fix potential crashes with MT_NULL mace/chain types supplied.
* #ifdef out the height-clipping code. It needs more TLC than I can give it right now, and the existing behaviour is less obviously broken (sadly enough).
* Fix chainmace points, which were apparently broken without anyone realising.
2018-04-03 01:10:10 +01:00
toasterbabe
4051ae8915 * Revamp mace creation again to potentially serve as the foundation for further optimisation (and also not rely on a while (1) loop, which easily went wrong several times whilst I was making changes to it).
* Fix minor typoes and other small tweaks in the P_MaceRotate function, which I'm probably about to rewrite again anyways...
2018-04-02 21:36:12 +01:00
toasterbabe
0102da824e Make the h-chain repairing safer. 2018-04-02 01:20:32 +01:00
toasterbabe
5ac70bbb7e * Fix multispoke mace/chainbars having problems.
* Completely rework how mace/chainbars are spawned to reduce the number of matrix multiplications required EVEN FURTHER!
* Reimplement the maceretry solidity stuff (effect 4).
* Flip the mminlength stuff so that existing dev maps don't break badly.
* Fix hacky chainbar grabbing.
* Tweak height of tinychain a smidge.
2018-04-02 01:08:31 +01:00
toasterbabe
97ddb8881d * Remove ability to change speed of chains.
* Fix ability to turn chains (still disabled by default, just at least want the option...)
* Replace max speed setting with a "minimum chainlink distance" setting - if greater than zero, that many chains will not be spawned from the center outwards. Doesn't affect the head of the chain at all, since otherwise what's the point? :V
2018-04-01 22:05:59 +01:00
toasterbabe
6d59551afd Mace optimisation!
* Handle all chain objects as a hnext/hprev chain.
* When removing mobjs with hnext/hprev, "repair the chain" (make the h links meet).
* Fix hidden slings, which I accidentially broke when I revamped maces the first time.
* Kill MF2_MACEROTATE. Not needed for anything anymore.
* P_MaceRotate now available to Lua to make up for it.
* Related: Made modifying hnext/hprev using Lua safer, so it keeps the reference counts in play.
2018-04-01 20:54:19 +01:00
toasterbabe
d9b5155e6e * Make Tokens appear in competition.
* Tweak thrown ring colours.
* Make Armageddon shield loop properly.
* Tweak drowning numbers to be consistent between third and first person.
2018-03-30 21:49:15 +01:00
mazmazz
d85f108997 P_SpawnMapThing: Ignore MTF_ flags if MT_NIGHTSBUMPER 2018-03-25 19:42:46 -04:00
mazmazz
dc9fd6f02e MT_NIGHTSBUMPER Spawn: Don't reset mthing->options 2018-03-25 19:07:21 -04:00
Monster Iestyn
c0bb511c1f Hardcoded LUA_THZT from THZ1.wad, giving us the funny-looking steam whistle tree
This concludes hardcoding of scenery items for THZ
2018-01-22 18:41:14 +00:00
Monster Iestyn
2e3eade637 Merge branch 'master' into hardcoding-time-again 2018-01-02 18:36:42 +00:00
Monster Iestyn
61176ee736 Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj
#	src/win32/win_vid.c
2018-01-02 17:32:24 +00:00
Monster Iestyn
ec10367856 Bail out of P_RespawnSpecials if no mobjinfo entry has a doomednum that matches, and print a warning to the console.
This prevents a mobj of NUMMOBJTYPES from being created and potentially crashing the game. Really, this happens only if you start messing with the mapthings of respawning items like rings/weapons/etc in the first place via Lua.
2017-12-17 20:57:45 +00:00
Monster Iestyn
a79d064d15 The contents of DSZ-f16.wad's LUA_A000 Lua script are in now
Thing type numbers may be changed later
2017-12-08 18:26:32 +00:00
toaster
b302607c2e Merge branch 'nights_colours_again' into 'master'
More NiGHTS tweaks

See merge request STJr/SRB2Internal!125
2017-11-02 16:45:09 -04:00
toasterbabe
2a42291b30 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into demo_shit
# Conflicts:
#	src/d_netcmd.c
2017-11-02 20:39:07 +00:00
toasterbabe
811fd5f9bc * Change the NiGHTS link text colour list. Again.
* Make the NiGHTS link text pulse, like in the original game!
* Fix going from NiGHTS special stage as Smiles to a normal level losing your followitem.
2017-10-31 15:47:58 +00:00
toasterbabe
548c120534 Since they give points now, make tokens spawn in record attack (and not add end-of-act tokens/continues). 2017-10-29 13:41:02 +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
8e389382ed Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into demo_shit
# Conflicts:
#	src/p_user.c
2017-10-14 19:12:15 +01:00
toasterbabe
31dff22202 Fixed followmobj not getting deleted when removing mobjs. Why did I do it in this branch? I've got lots related to followmobjs to do here for demo purposes, so... 2017-10-12 13:15:24 +01:00
Alam Ed Arias
cdde7ea8e5 not equal, NOT statement 2017-10-11 16:58:45 -04:00
toaster
e298e35ada Merge branch 'smiling_on_the_inside' into 'master'
Smiles! (and some tweaks to Super)

See merge request !119
2017-10-11 10:40:11 -04:00
Alam Ed Arias
66201620dd cleanup a few compiler warnings 2017-10-07 13:21:12 -04: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
Alam Ed Arias
5986720789 Build: fixups 2017-09-28 11:01:52 -04:00
Alam Ed Arias
f1a347e55f Merge branch 'public_next' into master 2017-09-28 11:01:20 -04:00
Alam Ed Arias
ec125628ab Merge branch 'master' into next 2017-09-28 10:16:35 -04:00
Alam Ed Arias
2ccd397d11 Build: kill GCC 7's implicit-fallthrough warning 2017-09-28 09:39:47 -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
toaster
ecfeb7b0af Merge branch 'spr2fixes' into 'master'
Sprite2 MD2s and customisable defaulting

See merge request !115
2017-09-19 07:49:04 -04:00
toasterbabe
f90d595332 * cv_directionchar and cv_autobrake, and their secondplayer versions (both on by default) now exist.
* cv_useranalog is now hidden from the menu.
* Directionchar now attempts to face the camera direction when you're standing still, and handles a few other states with more decorum.
* Tailsbot is now slightly more capable of keeping up with Sonic.
* pflags rearranged/adjusted, combining a few non-simulstaneous ones and turning PF_NIGHTSFALL into CR_NIGHTSFALL.
* [unrelated to branch] all ground-impact based abilities now happen more consistently with quicksand.
2017-09-16 20:25:14 +01:00
toasterbabe
3c785cbe94 * Add Skid SPR2/state in preperation for directionchar.
* Clean up spr2 md2 code.
* Experimented but then commented out some stuff for homing attack.
2017-09-09 22:12:23 +01:00
yellowtd
519414b215 Merge branch 'master' into titlemap 2017-08-22 19:07:32 -04: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
toasterbabe
a61be91523 Add a new feature to MT_PARTICLEGEN, per Sphere's request - if you give the parameters line a backside, then the backside x offset controls the number of tics between particle spawn. (By default, it's 3.) 2017-08-08 18:22:44 +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
toasterbabe
2e1b81b5da Woops, silly find and replace 2017-08-07 19:23:48 +01:00
toasterbabe
d135f64464 Crash prevention 2017-08-07 18:58:41 +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
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
e21ae8de7d * Updated NiGHTS skincolor list on Rob's request.
* Unrelated: fixed a bug where FF_ANIMATE stuff tried to access rain's skin.
2017-08-03 00:01:12 +01:00
toasterbabe
672bcc349c * Hide the number of lives you can steal if game-overed. It's not directly relevant unless you're game overed.
* Fix an issue where everyone being game overed except for one person, and then kicking that one person, meant the game over trigger was never met.
* Fix an issue where the spectator text could be overridden with a count of the number of remaining players to complete the level.
* Fixed a few glitches with spinning. (Unrelated to the branch, but exposed through new_coop testing.)
2017-07-26 16:10:08 +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
b2e92e7a09 * Invert solidity flag for vertical spikes and wallspikes.
* (unrelated) Per a request by sphere, make the ambush flag stop sounds being made by the gas jet.
2017-07-19 17:07:31 +01:00
toasterbabe
ef4dc42c7c * Bustable wallspikes.
* Improve the code for busting vertical spikes.
* Improve the frame arrangement for vertical spikes' spriteset. (Requires new patch.dta)
* Make all spikes consistently do damage with DMG_SPIKE.
* (unrelated) renamed "flame stomp" to "elemental stomp" in P_HitDeathMessages
2017-07-19 16:26:49 +01: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
6d43fad098 Correct the baseradius stuff. (Still doing some other work, though - will let you know when the branch is safe to review.) 2017-07-18 12:56:39 +01:00
toasterbabe
66d59efddc Sorry, MI. More info in forthcoming merge request. 2017-07-17 23:58:54 +01:00
toasterbabe
9bd10fb0d2 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop 2017-07-17 16:44:10 +01:00
Monster Iestyn
dbc7a4099f Hardcoded SOC_TOKE from patch.dta
Or rather, I killed anything to do with the old background orb, renamed all "EMMY" stuff to "TOKEN", and of course adjusted the new S_TOKEN accordingly
2017-07-15 20:15:34 +01:00
Monster Iestyn
00062220de Move spawning of base to P_SpawnMapThing, so objectplacing a wall spike doesn't look weird
Also attempted to "optimise" spawning and position correction code
2017-07-14 17:19:01 +01:00
Monster Iestyn
444e9ce7df Fix wall spikes being harmful from below, set initial destscale of base too just in case 2017-07-14 17:01:13 +01:00
Monster Iestyn
eacf753f2c Add the remaining code from the Lua script to get wall spikes actually working so far 2017-07-13 23:00:45 +01:00
Monster Iestyn
96ec319897 Hardcoded SOC_TREE from patch.dta
Also made sure the GFZ trees have MF2_STANDONME
2017-07-13 17:29:15 +01:00
toasterbabe
b197dcdb1f A little bit of monitor love.
* Rename "Unknown" options to "Mystery".
* Make Random monitors work consistently in singleplayer if hacked/SOC'd in.
2017-07-08 12:31:37 +01:00
toasterbabe
54a8602c4c Woops, forgot about other gametype spawncamping. 2017-07-07 14:39:51 +01:00
toasterbabe
88546abb08 Fix a few things noted during a test netgame with Salt and FuriousFox.
* Hide the individual lives on the tab menu whenever they're irrelevant.
* Make co-op spectators appear on the tab menu.
* Hide one frame of spectatorhood stuff in splitscreen.
* Fix joining netgames whilst in a special stage not giving the startinglives.
* Make monitors that don't appear to do anything play the failure sound.
* Only make players flash if they're REspawning, rather than spawning into a fresh level - unless it's a NiGHTS level, in which case never.
2017-07-07 13:35:48 +01:00
toasterbabe
25fb318a0b * Fixed a typo with the bit-shifting of the max speed, meaning that it wasn't being set as desired.
* Made the speed capping/minimising done at the point of changing it via player control, as opposed to the point of macerotate, in an attempt to fix a potential cause of mace rotation desynchronisation (not netplay, just https://cdn.discordapp.com/attachments/293238104096112641/331453363499696139/srb20180.gif stuff.)
2017-07-06 22:26:31 +01:00
toasterbabe
1a7a0662ba * Set player->outofcoop to false if it's not a coop gametype.
* Expose player->outofcoop to Lua.
2017-07-06 14:53:52 +01:00
toasterbabe
bc066a16a0 Whoops, I did some menu stuff in here. Oh well.
NEW COOP BASED:
* Add "Infinite" option to cv_cooplives, inspired by SUBARASHII. Lives still exist, but are hidden from the player's view, and are prevented from falling below 1 at any cost. As a result, made the variable CV_CHEAT.

OTHER MULTIPLAYER BASED (semi-related):
* Made cv_autobalance an on/off switch which determines the allowed difference based on the number of people in the server, instead of a weird and opaque number from 0-4.

MENU BASED (not related):
* Add horizontal arrows to menu options which respond to the arrow keys.
* Make the menu arrows bob.
* Switch out the seperate arrows for combination arrows on the joystick menus.
* Minor cvar description tweaks.
2017-07-04 13:17:29 +01:00
toasterbabe
50496970d1 Fix weird visual artifacting caused by restarting the level in co-op, which was a direct result of my code being messy. This is significantly better to deal with, anyways. 2017-07-03 15:43:29 +01:00
toasterbabe
ca76dd41f8 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/p_user.c
2017-07-03 15:41:00 +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
Monster Iestyn
64b3861168 Merge branch 'mapthing-spawn-hook' into 'master'
"MapThingSpawn" hook for Lua

A hook for adding special stuff to mobjs spawned via a map thing on level load, like special features depending on the map thing's flags, angle, z position, extrainfo, or anything else I didn't think of.

**Function syntax:**
`functionname(mobj, mapthing)`

where `mobj` is the spawned mobj (type mobj_t obviously), and `mapthing` is its corresponding map thing (type mapthing_t also obviously). Note that `mapthing.mobj` will not yet be set to `mobj` at this point (it's set afterwards, provided you don't remove the mobj or something stupid).

Returning `true` overrides features in place for existing mobj types (currently not all existing features are overridden, I may change this; see the source code for what IS overridable for now), returning `false` runs them as normal.

**Hook syntax:**
`addHook("MapThingSpawn", functionname, MT_OBJECTTYPE)`

where `MT_OBJECTTYPE` is the object type to apply the hooked function for. As usual, if this argument is omitted or set to MT_NULL, the function runs for all object types.

**Test resources and where to find them:**

* srb2win-mapthingspawn.exe, my folder on the FTP - test exe, obviously
* luatest-mapthingspawn.lua, same place - a simple Lua script that changes the scale of MT_GFZFLOWER1 (the orange flower) based on the map thing's angle (0 degrees is normal, 90 degrees is 2x bigger, 180 is 3x bigger, 270 is 4x, etc etc)

See merge request !83
2017-07-02 09:46:11 -04:00
toasterbabe
a0fa548e8b * Make spinning (normal) maces play the activesound once per rotation, instead of once every 64 tics.
* Make swinging (as opposed to spinning) maces play the activesound at the peak of their speed.
* Decouple the tilt of all maces from the angle.
* Improve DBG_GAMELOGIC message.
* Refactor.
2017-06-28 14:55:48 +01:00
toasterbabe
23bdb14eda * Make maces use the x offset of their controlling linedef to set the stage in the cycle the mace should be at, instead of contributing to the tilt of the plane of the maces.
* Make the noclimb flag of the mace-controlling linedef turn the mace types that have spiked balls on the ends to also have the middles of the chain be spiked, CEZ3 style.
* Partake in some refactoring.

https://cdn.discordapp.com/attachments/293238104096112641/329335623250870275/srb20026.png An image of both changes in action!
2017-06-27 20:16:14 +01:00
Monster Iestyn
e3f627120f Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/p_mobj.c
2017-06-23 17:19:06 +01:00
Monster Iestyn
44f33e6732 Merge branch 'touching_fixes' into 'next'
Fixes with respect to sector special touching and slopes

Some important stuff.

* SF_TRIGGERSPECIAL_TOUCH now actually works. Previously, it abandoned the loop early if ANY bounding sector didn't have that sector flag, which it likely didn't - only checking one extra sector's worth of FOFs. Also, the teleport handling there is more robust, and actually bails out if you teleport, instead of just awkwardly continuing through the loop.
* SF_TRIGGERSPECIAL_TOUCH now works for each time thinkers, too.
* Fixed a bug with being able to go under lava because P_CheckSolidLava doesn't take slopes into account.
* Also, P_CanRunOnWater supports slopes now too.
* Quicksand supports slopes and reverse gravity now.
* Space Countdown supports slopes now.

Also, an experiment behind a #define which currently isn't turned on:

* UNDER A #define, "SECTORSPECIALSAFTERTHINK", WHICH IS CURRENTLY TURNED OFF, BUT I WILL WANT TO TURN ON IN INTERNAL: Moved sector touch handling to P_PlayerAfterThinker (from P_PlayerThinker before movement). Allows for being able to trigger moving slope sectors that are going down, most specifically lava (didn't matter in RVZS in 2.1 because you could clip through the sides and go underneath the lava, causing damage - a sloped testwad version of that prevented going underneath.) Also fixes one-frame standing on deathpits before you die. Basically means sector triggers effectively happen one tic earlier, since it's after movement.

See merge request !131
2017-06-22 17:30:57 -04:00
toasterbabe
a872f1c68f I'm starting to actually test this via netgame instead of just in splitscreen!
* Fixed oversight where late joiners may not actually get lives.
* Fixed oversight where zero-livers could spawn in.
* Reinstated flashing because a crawla walked onto one of the spawnpoints and we immediately got a game over.
* Rejiggered the overlay drawer so the printing was consistent between normal spectatorship and game overness.
2017-06-03 22:14:20 +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
toasterbabe
f3cad19184 * Renamed "steallives" to "lifedistribution".
* Gave lifedistribution a "Sharing" option to go along with its previous individual and stealing options.
* Made the game over graphic and music only happen if everyone's out of lives if you're sharing or stealing lives.
* Fixed a bug where game over wouldn't come to fruition because it kept on happening each tic of the countdown2.
* Made spectator stuff display in Co-op splitscreen.
2017-06-03 12:26:42 +01:00
toasterbabe
25a1ffe02a Make it such that you only flash on game join in Co-op, not on all spawns. 2017-06-01 22:21:02 +01:00
toasterbabe
464699fce2 * Make handling of life theft more consistent.
* Make sure that a life theft always takes you from 0 (or less) lives to 1 life.
* Fix a bracket level typo that meant new Co-op style respawning was being done for all gametypes.
2017-05-31 17:07:24 +01:00
Monster Iestyn
3f9bebd05e Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/lua_thinkerlib.c
2017-05-31 15:18:05 +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
947e9ed34f Stop rolling sound spam by not doing some stuff that probably shouldn't be happening. 2017-05-29 22:43:22 +01:00
toasterbabe
726cd9757b Spectators in new Coop instead of staring at a dead screen all the time!
Needs a bunch of changes to HUD rendering, especially in splitscreen, which doesn't try to show spectator stuff whatsoever. Also, if you're the player whose respawn determines when the map reloads, you'll see the spectator text during the front half of the fade. Unless, of course, it's 2-player mode.
2017-05-29 21:23:00 +01:00
Monster Iestyn
1699d8a05f Merge branch 'missiles_n_slopes' into 'next'
Missiles 'n slopes

Fixed that thing where missiles like sliding up slopes for some reason.

This isn't a 1:1 fix compared to non-slopes - missiles still like stepping up over the borders of sloped sectors and will continue going as long as they never touch that ground again, whereas they can never step up on flat ones - but this fixes the most egregrious issue.

See merge request !181
2017-05-26 12:25:31 -04:00
Monster Iestyn
437780d503 Add missing break for MT_EGGCAPSULE's switch case in P_SpawnMobj (sorry!) 2017-05-25 18:40:48 +01:00
toasterbabe
bdcd9125d2 Fixed that thing where missiles like sliding up slopes for some reason.
This isn't a 1:1 fix for non-slopes - they still like stepping up over the borders of sloped sectors - but this fixes the most egregrious issue.
2017-05-14 14:47:09 +01:00
Monster Iestyn
9a9b2fcc2d Merge branch 'master' into mapthing-spawn-hook 2017-05-13 21:06:49 +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
dd57e47574 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into titlemap
# Conflicts:
#	src/r_main.c
2017-05-08 23:58:44 +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
Monster Iestyn
a2915bbb5d Merge branch 'Deez_NewUserXperiences' into 'master'
New User Experiences - Menus, Closed Captioning, and other non-substantial tweaks

Hello! I'm going to words.

* Menu stuff!
    * Scrolling menus when there's lots of options instead of doing lots of nestling!
    * Video Options, Server Options, and Screenshot Options have been updated to take advantage of this.
    * Headings are prettier in general to match the level platter's headers!
    * Expose a bunch of stuff Mystic wanted exposed, without iundating the player!
    * Little arrows!
* Better, clearer control menus!
    * I know this is probably related to the above, but whatever.
    * Very organised with lots of renaming and magical clarifying context headings!
    * Killed the analog-only Camera L/R keys in favour of merging them with the regular turn keys in that context!
    * Also little arrows!
* Statistics!
    * One page instead of two, loses a lot less info than you'd expect!
    * The benefit of having them on one page is greater than the loss of being able to individually discern which of your Score/Time/Rings is incomplete.
    * ALSO also little arrows!
* Secrets checklist!
    * Scrolls vertically!
    * Allows for autogeneration of conditions based off conditionset, which allows for names of required levels to be hidden if you haven't played them yet!
    * Still allows overriding condition string per traditional checklist.
    * This allows us to show every secret's condition without letting it be spoiled or overflowing the everything.
    * Also ALSO also little arrows!
* Closed captioning!
    * Console command "closedcaptioning on/off".
    * Shows stuff in the bottom right hand corner of the screen.
    * sfxinfo[sfx_name].caption = "Butt.".
    * S_StartMusicCaption(string, tics, optional player) allows for a caption to play without being anchored to a specific sound.
* Color Profile!
    * Using only the best in advanced cube-based majyks.
    * cv_gamma now goes from -15 to +5!
    * cv_saturation - from 0 to 10!
    * A new menu for modifying the hue, saturation and gamma of specific corners of the cube (RYGCBM) independently of the master options!
    * Screenshots/Video Mode now supports turning on/off circumstantial color profile alterations (cv_screenshot_colorprofile).
* Spring cleaning!
    * cv_allcaps is dead.
    * Sudden death and old match scoring (25 points for shield damage as the only change??) is dead
    * A few things are taken off the menu because they're not that relevant to have.
    * cv_competitionboxes now applies to race as well.
    * Failed teleports go nuh-uh.
    * Question mark boxes don't have doomednums anymore, so they can't be placed in singleplayer and used to get free lives by playing with the tv_extralife etc stuff.
* Other tidbits!
    * HUD offsets are tweaked to give one digit less space to score and one digit more space each to time and rings to match up the right edges.
    * Emerald tokens show up on the level complete screen and are loaded into a coin slot at the end of the tally.
    * Speaking of Emerald tokens, they now give score all the time, and continues instead of 50 rings when you have all Emeralds.
    * Moved Race HUD down, and made it go bing bing bing BONG.
    * V_DrawCroppedPatch now properly handles topdeltas.
    * Minor tweak to GFZ3 eggmobile's pinch to be more lenient.
    * Hudnames for skins now replace full stops with katakana dots. We could make it replace a different character instead if we really wanted to, but I figure this matches what is desired.

Check out ```<root>/!LatestSRB2Files/srb2win_branch_deeznux.exe``` to try it out.

See merge request !91
2017-05-06 17:53:41 -04:00
toasterbabe
588ef776da Stop the s3k shields spawning in ultimate. Whoops! (I considered it okay to modify in this branch because box spawning was already tweaked here.) 2017-04-30 15:41:03 +01:00
toasterbabe
9affcd98cb Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into Deez_NewUserXperiences 2017-04-30 10:46:53 +01:00
toasterbabe
2d9c37d800 MONITORS IS UNFUCKED
A less memetic message: On permission of Mystic, rejiggered a few things such that Race uses cv_competitionboxes, allowing the menu to be nicer.

Also:
* disabled the doomednum for ? boxes
* made A_MixUp play sfx_lose if you're in a gametype that can't use it
* Removed the all-teleporters option from cv_competitionboxes. It could just be done by tweaking the random monitor toggles, anyways.
2017-04-28 22:45:17 +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
6c619af9ce Use the skybox mobj's actual z position, rather than using the spawnpoint angle!
This means setting the skybox view angle is no longer stupid, objectplace no longer breaks skyboxes, and Lua-defined skybox mobjs can actually set a Z position more easily now.
2017-04-26 17:12:57 +01:00
Monster Iestyn
5608c4b4e7 Merge branch 'public_next' 2017-04-26 16:17:29 +01:00
Monster Iestyn
f099782c91 Spinning/swinging maces/chains and Particle generators can now use P_FindSpecialLineFromTag! 2017-04-24 21:05:28 +01:00
yellowtd
f70b89b22a titlemap - support for map camera object
allows a camera thing to be placed for alternate camera placement besides player and DM starts
2017-04-20 20:25:53 -04:00
toasterbabe
bef9520556 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into Deez_NewUserXperiences 2017-04-19 23:03:47 +01:00
Monster Iestyn
8ffa741cda Merge branch 'master' into mapthing-spawn-hook 2017-04-19 17:46:38 +01:00
Monster Iestyn
941ab72204 Hardcode new/updated xmas scenery object type/state info 2017-04-18 18:32:52 +01:00
Monster Iestyn
a6f830ddff Add the "MapThingSpawn" hook to Lua 2017-04-15 21:41:22 +01:00
toasterbabe
174921c1e1 End to sudden death. 2017-04-14 20:46:48 +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
d5575669fa Handled some of MI's concerns. 2017-04-04 16:50:33 +01:00
Alam Ed Arias
5feccaad2a Merge branch 'next' into touching_fixes 2017-03-29 16:55:06 -04:00
toasterbabe
302305ccf5 Fixing SF_NOSUPERSPIN, which has been broken ever since the super walk animation was added. 2017-03-27 14:22:03 +01:00
toasterbabe
8d9b616f00 Fixed repeatable bounces sending you hog-wild if you went into water shallow enough to only spend a single frame in before hitting the ground. 2017-03-25 12:42:39 +00:00
toasterbabe
fa29f7deca A bunch of stuff again.
* Lock on targets bob now, and are used for CA_HOMINGTHOK and SH_ATTRACT as well.
* Flag stuff is now animated like it was designed to be but which was kinda messed up.
* Cork sounds.
* P_SpawnLockOn(player_t player, mobj_t lockon, statenum_t state) for Lua.
* Added homing/firing CA2_GUNSLINGER stuff at egg guard shields.
* Fixed homing stuff wrt egg guard shields and sea egg balloons.
* Fixed attract orb goin' gold when doing a CA_HOMINGTHOK homing ability.
* Fixed positioning of player during homing attack.
* Cleaned up lockon spawn code.
2017-03-23 19:11:22 +00: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
7ac0373dbf After usability complaints:
* CA2_MELEE/CA_TWINSPIN combination abilities (ground hit, somersalt) disabled.
* Enabled movement controls whilst using CA2_MELEE in the air.
* CA2_GUNSLINGER no longer requires charging. In exchange, it involves a cooldown in which you can't move.
* CA2_GUNSLINGER lock-on distance improved, and aiming allowance reduced to compensate.
* Lots of cleanup/gravflip allowances for homing/targeting code.

* Unrelated: Flickies now properly face the direction they're supposed to when getting knocked out of the egg capsule.
* Unrelated: Thok trail fades like spindash trail now.
* Unrelated: Using CA_HOMINGATTACK when nowhere near an enemy uncurls you.
2017-03-21 16:04:49 +00:00
toasterbabe
59bc0da022 Introducing CA2_GUNSLINGER.
* Mildly hacky proof of concept! Will de-hack later.
* Charge up your ability!
* You can only damage others if it's at full power.
* Fires directly at enemies/bosses when at full power. Does NOT aim at players.
2017-03-21 00:54:47 +00:00
toasterbabe
ee74fa4042 * Changed how CA2_MELEE handles nocontrol to not tweak pw_nocontrol.
* Added CA_TWINSPIN/CA2_MELEE spring boosts.
* Made it so you can't land with CA2_MELEE twice.
* Fixed stray #endif from NiGHTS fixes.
2017-03-20 19:04:33 +00:00
toasterbabe
a4c1c3195f Cleanup.
* Fixed a major hack from when I SPR2ised NiGHTS by spawning in a null object.
* Made P_LookForEnemies better in preperation for the future.
* Changed some defaulting characteristics of P_GetMobjSprite2.
* Fixed CA_DOUBLEJUMP potentially counting as a float.
* Killed some extremely small boolean functions and replaced them with #defines.
2017-03-20 16:57:24 +00:00
toasterbabe
3a6f659b93 She's a lot more complete.
* Melee now has a proper weightiness to it with a landing frame.
* If you have twinspin too, do a somersalt when running and hitting the melee button.
* If you have melee, go into the melee landing frame when twinspinning into the ground.
2017-03-19 16:48:35 +00:00
toasterbabe
99f13c88ae Made jump damage flag application less hacky. 2017-03-18 21:06:06 +00:00
toasterbabe
b66ded844e compile fix 2017-03-17 23:09:15 +00:00
toasterbabe
95e4a23a69 pw_ingoop is now CR_BRAKGOOP because i can't stop refactoring CAN'T STOP WON'T STOP 2017-03-15 21:51:35 +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
386fec037f Merge branch 'lua-more-stuff' into 'master'
Lua more stuff

More new Lua features and fixes:
* Most Lua functions that deal with stuff that exists only in levels now should spout Lua errors instead of crashing the game if you try to use them outside of levels. Likewise, accessing any of the tables that contain level-only stuff (players, sectors, lines, etc etc) spouts Lua errors too outside of levels.
* `userdataType(variable)` now exists: this function simply returns the type of the userdata variable given as a string (e.g. `userdataType(players[0])` returns "player_t", `userdataType(sectors[0])` returns "sector_t"). This also includes "minor" userdata types for array members of other userdata types, such as .powers of player_t variables or .lines of sector_t variables (which would give the strings "player_t.powers" and "sector_t.lines" respectively).
* The Lua hook "MobjMoveBlocked" now exists: functions for this hook are called whenever a mobj attempts to move horizontally but is blocked by a wall or solid mobj (or whatever else can cause P_TryMove to return false, assuming it doesn't remove the mobj). In theory this hook could be very useful for behaviour such as sliding or bouncing off walls without the need of flags like MF_SLIDEME or MF_BOUNCE etc. Format for use is just like most generic mobj hooks: `addHook("MobjMoveBlocked", functionname, MT_OBJECTTYPE)`, where `functionname` is a function that takes a single mobj_t argument.

See MonsterIestyn/lua-more-stuff on the FTP for a test exe (srb2win-lua-more-stuff.exe) and some test scripts for the above changes.

See merge request !67
2017-03-13 14:29:35 -04:00
toasterbabe
5b77ca5fed Reverted change where NiGHTS drilling sprites were technically the super version of flying sprites. It was not helpful to modders at all, and was only justifiable as a rutheless attempt at efficiency in storage. 2017-03-11 18:14:58 +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
toasterbabe
758bec6963 Fixed a bunch of awkwardness where Metal wouldn't reset himself properly when his target died. 2017-02-14 02:07:08 +00:00
toasterbabe
a04ae45a93 MORE CUES 2017-02-13 18:53:16 +00:00
toasterbabe
3feac5bc90 bad bounce https://gfycat.com/DeliciousReliableGentoopenguin 2017-02-13 18:04:08 +00:00
toasterbabe
5f3cfc6729 Some cleanup. 2017-02-12 14:16:52 +00:00
toasterbabe
6dfef794a4 Metal Sonic's bounce attack is much nicer. Also, a bunch of other minor tweaks. 2017-02-12 01:28:12 +00:00
toasterbabe
8cdcb2c416 * You can now bounce off of springs without unbouncing.
* You can now bounce off the bottom of goop areas.
* Fixed that long-standing bug where you could accelerate whilst rolling.
2017-02-09 23:24:47 +00:00
toasterbabe
29c48c1992 As defined in spec, lose a bit of chain each time you bounce on land. 2017-02-08 16:08:36 +00:00
toasterbabe
0e40299f3e Replace hacky flag abuse with timer (which can be used later when developing pushing sprites). 2017-02-06 20:36:21 +00:00