// Load returns a skeleton with all loaded information. func (sav *Save) Load() (s *Skeleton, err error) { f, err := os.Open(sav.Path) if err != nil { return nil, errorsutil.ErrorfColor("%s", err) } sto := new(Skeleton) err = gob.NewDecoder(f).Decode(sto) if err != nil { return nil, errorsutil.ErrorfColor("decode error: %#v", err) } return sto, nil }
// Save writes the current game session to disk. func (sav *Save) Save(a area.Area) (err error) { sBlob := Skeleton{ a, creature.Hero, } var buffer bytes.Buffer err = gob.NewEncoder(&buffer).Encode(&sBlob) if err != nil { return errorsutil.ErrorfColor("encode error: %#v", err) } f, err := os.Create(sav.Path) if err != nil { return errorsutil.ErrorfColor("%s", err) } _, err = f.Write(buffer.Bytes()) if err != nil { return errorsutil.ErrorfColor("%s", err) } return nil }