summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-30 15:38:43 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-30 15:38:43 +0200
commit17c5cfee80090726ef9500b3a0c259145348878a (patch)
tree00c2312031e98e3a942b05c6acba82f6091ccd90
parent961db5a406979eb85166bb04a6d9be4befb43551 (diff)
downloadhurrycurry-17c5cfee80090726ef9500b3a0c259145348878a.tar
hurrycurry-17c5cfee80090726ef9500b3a0c259145348878a.tar.bz2
hurrycurry-17c5cfee80090726ef9500b3a0c259145348878a.tar.zst
pausable replays
-rw-r--r--server/replaytool/src/main.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/server/replaytool/src/main.rs b/server/replaytool/src/main.rs
index 51076994..e9fa8003 100644
--- a/server/replaytool/src/main.rs
+++ b/server/replaytool/src/main.rs
@@ -106,6 +106,7 @@ async fn main() -> anyhow::Result<()> {
let mut next_event =
serde_json::from_str::<Event>(&file.next_line().await?.ok_or(anyhow!("eof"))?)?;
let mut time = 0.;
+ let mut paused = false;
info!("ready");
let (sock, addr) = ws_listener.accept().await?;
@@ -145,7 +146,14 @@ async fn main() -> anyhow::Result<()> {
))
.await?;
}
+ PacketS::Idle { paused: pause } => {
+ // Cannot display server hint like in main server because cant address them to spectators.
+ paused = pause;
+ }
PacketS::ReplayTick { dt } => {
+ if paused {
+ continue;
+ }
time += dt;
while next_event.ts < time {
debug!("<- {:?}", next_event.packet);