Skip to content

Commit

Permalink
Added encode error func.
Browse files Browse the repository at this point in the history
  • Loading branch information
nokka committed Aug 23, 2017
1 parent 442383b commit c8f86bc
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions d2s.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,37 +20,37 @@ func Parse(file io.Reader) (*Character, error) {
char := &Character{}

if err := parseHeader(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}

if err := parseAttributes(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}

if err := parseSkills(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}

if err := parseItems(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}

if err := parseCorpse(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}

// Normalize the character status, that is being stored as a byte.
status := char.Header.Status.Readable()

if status.Expansion {
if err := parseMercItems(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}
}

if char.Header.Class == Necromancer && status.Expansion {
if err := parseIronGolem(bfr, char); err != nil {
return nil, fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, err.Error())
return nil, encodeError(char, err.Error())
}
}

Expand Down Expand Up @@ -992,3 +992,7 @@ func parseMagicalList(ibr *bitReader) ([]magicAttribute, int, error) {

return magicAttributes, readBits, nil
}

func encodeError(char *Character, msg string) error {
return fmt.Errorf("Char name: %s, error that occurred: %s", char.Header.Name, msg)
}

0 comments on commit c8f86bc

Please sign in to comment.