aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2021-08-30 21:31:07 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2021-08-30 21:31:07 +0200
commit3e667bc2382b8fecbafc4496d12860a32f31fb31 (patch)
treeec5ed91aa8c2759a0b002fdf2ea6279ff844e4cf
parent132c0db040872dbcc510694d726273f0d6812996 (diff)
PlaySound + FadeSound + StopSound forwarding
-rw-r--r--connect.go1
-rw-r--r--server_conn.go16
2 files changed, 17 insertions, 0 deletions
diff --git a/connect.go b/connect.go
index e41d6a6..b79f5dd 100644
--- a/connect.go
+++ b/connect.go
@@ -14,6 +14,7 @@ func connect(conn net.Conn, name string, cc *clientConn) *serverConn {
name: name,
aos: make(map[mt.AOID]struct{}),
particleSpawners: make(map[mt.ParticleSpawnerID]struct{}),
+ sounds: make(map[mt.SoundID]struct{}),
}
sc.log("-->", "connect")
cc.srv = sc
diff --git a/server_conn.go b/server_conn.go
index 1da94d7..3df6274 100644
--- a/server_conn.go
+++ b/server_conn.go
@@ -31,6 +31,8 @@ type serverConn struct {
aos map[mt.AOID]struct{}
particleSpawners map[mt.ParticleSpawnerID]struct{}
+
+ sounds map[mt.SoundID]struct{}
}
func (sc *serverConn) client() *clientConn { return sc.clt }
@@ -385,6 +387,20 @@ func handleSrv(sc *serverConn) {
case *mt.ToCltDelParticleSpawner:
delete(sc.particleSpawners, cmd.ID)
sc.client().SendCmd(cmd)
+ case *mt.ToCltPlaySound:
+ prepend(sc.name, &cmd.Name)
+ sc.swapAOID(&cmd.SrcAOID)
+ if cmd.Loop {
+ sc.sounds[sc.ID] = struct{}{}
+ }
+
+ sc.client().SendCmd(cmd)
+ case *mt.ToCltFadeSound:
+ delete(sc.sounds, cmd.ID)
+ sc.client().SendCmd(cmd)
+ case *mt.ToCltStopSound:
+ delete(sc.sounds, cmd.ID)
+ sc.client().SendCmd(cmd)
}
}
}