Skip to content

Rewind Unpause Configuration & Configurable Rewind Bind#51

Open
2-X wants to merge 7 commits into
NitrOP7674:mainfrom
2-X:rewind-unpause-config
Open

Rewind Unpause Configuration & Configurable Rewind Bind#51
2-X wants to merge 7 commits into
NitrOP7674:mainfrom
2-X:rewind-unpause-config

Conversation

@2-X

@2-X 2-X commented Jun 12, 2024

Copy link
Copy Markdown

screenshots

image

description

  • adds configuration for rewind unfreeze actions. users can enable/disable certain actions from unpausing rewind, as well as set custom thresholds for steer/pitch/throttle/roll.
  • adds configuration for the Rewind Input Method allowing uses to select from Steer/Throttle/Pitch/Roll as the analogue input to control the game state. i also added a threshold for this input

original issue

#40
#37

considerations

we should agree on default values
we should agree where this list appears on the settings page. currently it is at the top

@2-X 2-X changed the title Rewind Unpause Configuration Rewind Unpause Configuration & Configurable Rewind Bind Jun 13, 2024
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp
Comment thread CheckpointPlugin.cpp
…le certain actions from unpausing rewind, as well as set custom thresholds for steer/pitch/throttle/roll
@2-X 2-X force-pushed the rewind-unpause-config branch from 6f19742 to d63cbf5 Compare July 10, 2024 16:46

@NitrOP7674 NitrOP7674 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks again for the PR. Sorry for the delay, and also sorry that I'm still going to be picky about all the new options being added that I don't think anyone really needs. I'm fine with leaving the vars if you feel very strongly that they need to be configurable (though I'd like to hear why you think you need it, since they add clutter to the code as well), but I'd rather remove them from the configuration UI for sure.

Can you also add something to the README to explain the new settings to control the rewind input method & matching axis bind, please?

Comment thread .gitignore Outdated
Comment thread .gitignore Outdated
Comment thread SettingsFile.cpp
Comment thread SettingsFile.cpp
Comment thread SettingsFile.cpp Outdated
Comment thread SettingsFile.cpp Outdated
Comment on lines +113 to +127
9|Rewind Unpause Actions Configuration:
1|Throttle Unpauses|enable_throttle_unpause
4|Throttle Threshold|throttle_threshold|0.0|1.0
1|Steer Unpauses|enable_steer_unpause
4|Steer Threshold|steer_threshold|0.0|1.0
1|Pitch Unpauses|enable_pitch_unpause
4|Pitch Threshold|pitch_threshold|0.0|1.0
1|Yaw Unpauses|enable_yaw_unpause
4|Yaw Threshold|yaw_threshold|0.0|1.0
1|Roll Unpauses|enable_roll_unpause
4|Roll Threshold|roll_threshold|0.0|1.0
1|Handbrake Unpauses|enable_handbrake_unpause
1|Jump Unpauses|enable_jump_unpause
1|Boost Unpauses|enable_boost_activate_unpause
1|Boost Hold Unpauses|enable_boost_hold_unpause

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just delete all these, too? Why do you need to suppress rewind unpausing for anything besides the rewind and the other function on the same stick?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you're right i'll remove them

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You deleted some but not all of these, I think. I think they should all go. If you really want to be able to configure them then I'm fine with leaving in the variables and allowing them to be set manually.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you check the files i'm pretty sure i removed them all in the recent commit, hence the "Outdated" on the comment code here

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Click on "files changed" and only 4 were removed. Let's delete the whole "Rewind Unpause Actions Configuration" section if you don't mind.

…nt that you make so history is preserved; remove unneeded config
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp
Comment thread CheckpointPlugin.cpp Outdated
Comment thread CheckpointPlugin.cpp Outdated
Comment on lines +663 to +665
if (axis == matchingAxis) {
effectiveThreshold = 0.9; // TODO customizable
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm thinking since we have the thresholds already for all of the axes, this can be removed

Comment thread .gitignore Outdated
Comment thread SettingsFile.cpp Outdated
Comment on lines +113 to +127
9|Rewind Unpause Actions Configuration:
1|Throttle Unpauses|enable_throttle_unpause
4|Throttle Threshold|throttle_threshold|0.0|1.0
1|Steer Unpauses|enable_steer_unpause
4|Steer Threshold|steer_threshold|0.0|1.0
1|Pitch Unpauses|enable_pitch_unpause
4|Pitch Threshold|pitch_threshold|0.0|1.0
1|Yaw Unpauses|enable_yaw_unpause
4|Yaw Threshold|yaw_threshold|0.0|1.0
1|Roll Unpauses|enable_roll_unpause
4|Roll Threshold|roll_threshold|0.0|1.0
1|Handbrake Unpauses|enable_handbrake_unpause
1|Jump Unpauses|enable_jump_unpause
1|Boost Unpauses|enable_boost_activate_unpause
1|Boost Hold Unpauses|enable_boost_hold_unpause

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you're right i'll remove them

Comment thread CheckpointPlugin.cpp
checkpoints.push_back(latest);
saveCheckpointFile();
loadGameState(latest);
// loadGameState(latest);

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removing this line lets you set multiple checkpoints from the same play without erasing your history :)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, but then I'd be worried that people wouldn't realize they saved a checkpoint successfully, and that it would lead to people creating duplicate checkpoints. I think there would have to be some kind of feedback. Let's leave that out of this PR and consider something around it for the future.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm sure i'll put it in it's own PR for sure! for that other PR, could we have it as an option? i really like this feature since i can do one play and then save the key moments to practice each part 😍

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with an option for this, but we should make sure something is displayed when you save the checkpoint, and a second push of doCheckpoint like this should probably delete the new checkpoint. I.e.:

  • Rewinding...
  • cpt_do_checkpoint - Message appears: "Checkpoint saved. Press again to remove."
  • cpt_do_checkpoint again - Message appears: "Checkpoint removed."

Comment thread CheckpointPlugin.cpp

@NitrOP7674 NitrOP7674 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick updates. Looking much better now. :)

Comment thread CheckpointPlugin.cpp
checkpoints.push_back(latest);
saveCheckpointFile();
loadGameState(latest);
// loadGameState(latest);

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, but then I'd be worried that people wouldn't realize they saved a checkpoint successfully, and that it would lead to people creating duplicate checkpoints. I think there would have to be some kind of feedback. Let's leave that out of this PR and consider something around it for the future.

Comment thread CheckpointPlugin.cpp
Comment thread SettingsFile.cpp Outdated
Comment on lines +113 to +127
9|Rewind Unpause Actions Configuration:
1|Throttle Unpauses|enable_throttle_unpause
4|Throttle Threshold|throttle_threshold|0.0|1.0
1|Steer Unpauses|enable_steer_unpause
4|Steer Threshold|steer_threshold|0.0|1.0
1|Pitch Unpauses|enable_pitch_unpause
4|Pitch Threshold|pitch_threshold|0.0|1.0
1|Yaw Unpauses|enable_yaw_unpause
4|Yaw Threshold|yaw_threshold|0.0|1.0
1|Roll Unpauses|enable_roll_unpause
4|Roll Threshold|roll_threshold|0.0|1.0
1|Handbrake Unpauses|enable_handbrake_unpause
1|Jump Unpauses|enable_jump_unpause
1|Boost Unpauses|enable_boost_activate_unpause
1|Boost Hold Unpauses|enable_boost_hold_unpause

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You deleted some but not all of these, I think. I think they should all go. If you really want to be able to configure them then I'm fine with leaving in the variables and allowing them to be set manually.

Comment thread CheckpointPlugin.cpp Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants