diff options
Diffstat (limited to 'pkg/ui/views/game_api.go')
-rw-r--r-- | pkg/ui/views/game_api.go | 14 |
1 files changed, 11 insertions, 3 deletions
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 |