Extract scanning ASCII files into a util package
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"errors"
|
||||
// "fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"ur.gs/chaos-gate/internal/util/asciiscan"
|
||||
)
|
||||
|
||||
type Cell struct {
|
||||
@@ -35,13 +35,15 @@ type AnimatedObject struct {
|
||||
func LoadAnimatedObjectDefinitions(filename string) ([]AnimatedObject, error) {
|
||||
var out []AnimatedObject
|
||||
|
||||
scanLines, err := fileToScanner(filename)
|
||||
s, err := asciiscan.New(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer s.Close()
|
||||
|
||||
for {
|
||||
obj, err := consumeAnimatedObjectDefinition(scanLines)
|
||||
obj, err := consumeAnimatedObjectDefinition(s)
|
||||
if err == io.EOF {
|
||||
return out, nil
|
||||
} else if err != nil {
|
||||
@@ -52,7 +54,7 @@ func LoadAnimatedObjectDefinitions(filename string) ([]AnimatedObject, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func consumeAnimatedObjectDefinition(scanner *bufio.Scanner) (AnimatedObject, error) {
|
||||
func consumeAnimatedObjectDefinition(scanner *asciiscan.Scanner) (AnimatedObject, error) {
|
||||
var out AnimatedObject
|
||||
var err error
|
||||
|
||||
@@ -61,8 +63,7 @@ func consumeAnimatedObjectDefinition(scanner *bufio.Scanner) (AnimatedObject, er
|
||||
return out, err
|
||||
}
|
||||
|
||||
if err := consumeIntPtrs(
|
||||
scanner,
|
||||
if err := scanner.ConsumeIntPtrs(
|
||||
&out.Direction, &out.Type, &out.AnimationID, &out.AnimationGroup, &out.AnimatedType,
|
||||
); err != nil {
|
||||
return out, err
|
||||
@@ -89,8 +90,7 @@ func consumeAnimatedObjectDefinition(scanner *bufio.Scanner) (AnimatedObject, er
|
||||
return out, err
|
||||
}
|
||||
|
||||
if err := consumeIntPtrs(
|
||||
scanner,
|
||||
if err := scanner.ConsumeIntPtrs(
|
||||
&out.Visibility, &out.Protection, &out.MinDelay, &out.DelayRange,
|
||||
); err != nil {
|
||||
return out, err
|
||||
@@ -99,9 +99,9 @@ func consumeAnimatedObjectDefinition(scanner *bufio.Scanner) (AnimatedObject, er
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func consumeCell(scanner *bufio.Scanner) (Cell, error) {
|
||||
func consumeCell(scanner *asciiscan.Scanner) (Cell, error) {
|
||||
out := Cell{}
|
||||
str, err := consumeString(scanner)
|
||||
str, err := scanner.ConsumeString()
|
||||
if err != nil {
|
||||
return out, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user