From 66b2b17bffd22ca4e333fa03c8dc7f7ce4833e0e Mon Sep 17 00:00:00 2001 From: giongto35 Date: Fri, 3 May 2019 02:04:32 +0800 Subject: [PATCH] Add save and load --- handler/browser.go | 63 +++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/handler/browser.go b/handler/browser.go index 8e6d05b7..022a4df1 100644 --- a/handler/browser.go +++ b/handler/browser.go @@ -36,40 +36,41 @@ func (s *Session) RegisterBrowserClient() { }) // TODO: Add save and load - //browserClient.Receive("save", func(resp cws.WSPacket) (req cws.WSPacket) { - //log.Println("Saving game state") - //req.ID = "save" - //req.Data = "ok" - //if roomID != "" { - ////err := rooms[roomID].director.SaveGame() - //err := browserClient.room.director.SaveGame() - //if err != nil { - //log.Println("[!] Cannot save game state: ", err) - //req.Data = "error" - //} - //} else { - //req.Data = "error" - //} + browserClient.Receive("save", func(resp cws.WSPacket) (req cws.WSPacket) { + log.Println("Saving game state") + req.ID = "save" + req.Data = "ok" + if s.RoomID != "" { + room := s.handler.getRoom(s.RoomID) + err := room.director.SaveGame() + if err != nil { + log.Println("[!] Cannot save game state: ", err) + req.Data = "error" + } + } else { + req.Data = "error" + } - //return req - //}) + return req + }) - //browserClient.Receive("load", func(resp cws.WSPacket) (req cws.WSPacket) { - //log.Println("Loading game state") - //req.ID = "load" - //req.Data = "ok" - //if roomID != "" { - //err := rooms[roomID].director.LoadGame() - //if err != nil { - //log.Println("[!] Cannot load game state: ", err) - //req.Data = "error" - //} - //} else { - //req.Data = "error" - //} + browserClient.Receive("load", func(resp cws.WSPacket) (req cws.WSPacket) { + log.Println("Loading game state") + req.ID = "load" + req.Data = "ok" + if s.RoomID != "" { + room := s.handler.getRoom(s.RoomID) + err := room.director.LoadGame() + if err != nil { + log.Println("[!] Cannot load game state: ", err) + req.Data = "error" + } + } else { + req.Data = "error" + } - //return req - //}) + return req + }) browserClient.Receive("start", func(resp cws.WSPacket) (req cws.WSPacket) { s.GameName = resp.Data