From 42d68aa99d59339dbdf928a54c28242635728daa Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Fri, 18 Apr 2025 21:25:32 +0200 Subject: Restore a game --- pkg/ui/views/game_api.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'pkg/ui/views/game_api.go') diff --git a/pkg/ui/views/game_api.go b/pkg/ui/views/game_api.go index e2ef280..3c649f9 100644 --- a/pkg/ui/views/game_api.go +++ b/pkg/ui/views/game_api.go @@ -21,17 +21,21 @@ func (m GameModel) handleDatabaseGameMsg(msg database.Game) (GameModel, tea.Cmd) if m.network.Me() == m.playerPeer(1) { if m.game.IP2 != "" { remote := m.game.IP2 - go m.network.AddPeer(m.playerPeer(2), remote) + m.network.AddPeer(m.playerPeer(2), remote) } } else { if m.game.IP1 != "" { remote := m.game.IP1 - go m.network.AddPeer(m.playerPeer(1), remote) + m.network.AddPeer(m.playerPeer(1), remote) } } } - if m.game.Outcome != chess.NoOutcome.String() { + if m.restore { + cmd = func() tea.Msg { + return RestoreGameMsg{} + } + } else if m.game.Outcome != chess.NoOutcome.String() { cmd = func() tea.Msg { return EndGameMsg{} } @@ -62,6 +66,8 @@ func (m *GameModel) getGame() tea.Cmd { return nil } + m.game = &game + return game } } @@ -70,6 +76,8 @@ type EndGameMsg struct { abandoned bool } +type RestoreGameMsg struct{} + func (m *GameModel) endGame(outcome string) tea.Cmd { return func() tea.Msg { var game database.Game -- cgit v1.2.3-18-g5258