Commit 4296f66c authored by Boris Mühmer's avatar Boris Mühmer
Browse files

some more re-org

parent 270c9cb0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
package data
package custom

// SaveGame is the internal representation of a save game.
type SaveGame struct{}
+1 −1
Original line number Diff line number Diff line
package data
package json

// User is the JSON container for user information.
type User struct {
+1 −1
Original line number Diff line number Diff line
package data
package xml

import "encoding/xml"

+7 −5
Original line number Diff line number Diff line
@@ -9,11 +9,13 @@ import (
	"path"
	"strings"

	"repositories.muehmer.net/boris.muehmer/sotatool/offline/savegame/data"
	"repositories.muehmer.net/boris.muehmer/sotatool/offline/savegame/data/custom"
	sgjson "repositories.muehmer.net/boris.muehmer/sotatool/offline/savegame/data/json"
	sgxml "repositories.muehmer.net/boris.muehmer/sotatool/offline/savegame/data/xml"
)

// savegame2xml converts an save game to the XML structure
func savegame2xml(filename string) (*data.Database, error) {
func savegame2xml(filename string) (*sgxml.Database, error) {
	f, err := os.Open(filename)
	if err != nil {
		return nil, fmt.Errorf("failed to open file %s", filename)
@@ -32,7 +34,7 @@ func savegame2xml(filename string) (*data.Database, error) {
		case xml.StartElement:
			switch se.Name.Local {
			case "database":
				var database data.Database
				var database sgxml.Database
				xe := xdec.DecodeElement(&database, &se)
				if xe != nil {
					return nil, fmt.Errorf("decode element failed: %v", xe)
@@ -52,7 +54,7 @@ func savegame2xml(filename string) (*data.Database, error) {
}

// Decode an save-game file to an internal structure.
func Decode(filename string) (savegame *data.SaveGame, e error) {
func Decode(filename string) (savegame *custom.SaveGame, e error) {
	database, err := savegame2xml(filename)
	if err != nil {
		return nil, err
@@ -66,7 +68,7 @@ func Decode(filename string) (savegame *data.SaveGame, e error) {
			// only a record has JSON data
			switch c.Name {
			case "CharacterName":
				var cn data.CharacterName
				var cn sgjson.CharacterName
				jdec := json.NewDecoder(strings.NewReader(r.DataJSON))
				jerr := jdec.Decode(&cn)
				if jerr != nil {