summaryrefslogtreecommitdiff
path: root/pkg/ui/multiplayer/multiplayer.go
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2025-04-18 21:25:32 +0200
committerSanto Cariotti <santo@dcariotti.me>2025-04-18 21:25:32 +0200
commit42d68aa99d59339dbdf928a54c28242635728daa (patch)
tree98dadfd64a0fc05d1fb6f6ddbc9a3e8963fbf1dd /pkg/ui/multiplayer/multiplayer.go
parent7c5a6176b27b6b0c0c3ef8a4aedbdec871391a80 (diff)
Restore a game
Diffstat (limited to 'pkg/ui/multiplayer/multiplayer.go')
-rw-r--r--pkg/ui/multiplayer/multiplayer.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/pkg/ui/multiplayer/multiplayer.go b/pkg/ui/multiplayer/multiplayer.go
index 98ccfb4..ee9d452 100644
--- a/pkg/ui/multiplayer/multiplayer.go
+++ b/pkg/ui/multiplayer/multiplayer.go
@@ -11,8 +11,10 @@ import (
type MoveType string
const (
- AbandonGameMessage MoveType = "abandon"
- MoveGameMessage MoveType = "new-move"
+ AbandonGameMessage MoveType = "abandon"
+ RestoreGameMessage MoveType = "restore"
+ RestoreAckGameMessage MoveType = "restore-ack"
+ MoveGameMessage MoveType = "new-move"
)
type GameMove struct {
@@ -26,13 +28,14 @@ type GameNetwork struct {
peer p2p.NetworkID
}
-// Wrapper to a `TCPNetwork`
-func NewGameNetwork(localID string, address string, onHandshake p2p.NetworkHandshakeFunc, logger *zap.Logger) *GameNetwork {
+// Wrapper to a `TCPNetwork`RestoreAck
+func NewGameNetwork(localID string, address string, onHandshake p2p.NetworkHandshakeFunc, onFirstHandshake p2p.NetworkHandshakeFunc, logger *zap.Logger) *GameNetwork {
opts := p2p.TCPNetworkOpts{
- ListenAddr: address,
- HandshakeFn: onHandshake,
- RetryDelay: time.Second * 2,
- Logger: logger,
+ ListenAddr: address,
+ HandshakeFn: onHandshake,
+ FirstHandshakeFn: onFirstHandshake,
+ RetryDelay: time.Second * 2,
+ Logger: logger,
}
server := p2p.NewTCPNetwork(p2p.NetworkID(localID), opts)
return &GameNetwork{