p2sr / SourceAutoRecord

Speedrun plugin for Source engine games.
https://sar.portal2.sr/
MIT License
93 stars 29 forks source link

feat: cutscene skip for Calibration #116

Closed ThisAMJ closed 1 year ago

ThisAMJ commented 1 year ago

sar_speedrun_skip_cutscenes 1 now works for Calibration!

If Blue has the cvar on, the video / taunting / pinging section is entirely skipped and an offset of 45.083 is applied when the timer starts (just before hitting the ground). Orange doesn't even need SAR for this to work! The offset and starting point is negotiable.

If Orange has the cvar on but Blue doesn't, they don't have to do stopvideos as the video will never play for them. As far as I can tell this is perfectly legitimate.

mlugg commented 1 year ago

Closing as discussed on Discord - not really a reasonable cutscene skip, since it modifies a fair bit of map logic to skip a fairly short amount of the map.

The pingability thing is interesting, but this isn't a good fix - messing with map logic via ent_fire, even for valid purposes, is something we should avoid as much as possible. Instead, we should figure out why the ability to ping is preserved and fix it there.

ThisAMJ commented 1 year ago

I don't see the 'as discussed' honestly, the discussion never reached a conclusion which was (I assumed) why this PR stayed in limbo. It modifies a fair bit of map logic... to skip 45 seconds of mindless waiting that introduces two rarely-used features. A number of top players have stated support for this (Burger40, Rattle, and Can't Even included), and although I don't know the discussion that went on in #mod-chat (Why? Should the community not decide how the community plays the game?) I do know that most of the mods were personally against it. Personally I recommend doing a couple runs of Calibration with, then without, the feature, then see how we feel.

And for the pingability thing... it's an env_global? The bug is simply because we interrupt a disassembly during which the ability is disabled, as you can see on the linked Discord message on the commit. I don't see a better place to fix it.

Furthermore, the singleplayer cutscene skips currently don't work in Any% because of wrongwarp, and it will need the same sv_cheats.ThisPtr()->m_nValue = 1; shenanigans in order to work. Also this PR removed the erroneous ent_fire @transition_script RunScriptCode TransitionFromMap() command since it didn't fire properly and wasn't needed.