diff --git a/cmd/rove-server/internal/routes.go b/cmd/rove-server/internal/routes.go index afbc568..341c9ee 100644 --- a/cmd/rove-server/internal/routes.go +++ b/cmd/rove-server/internal/routes.go @@ -47,8 +47,7 @@ func (s *Server) Register(ctx context.Context, req *rove.RegisterRequest) (*rove } // Status returns rover information for a gRPC request -func (s *Server) Status(ctx context.Context, req *rove.StatusRequest) (*rove.StatusResponse, error) { - response := &rove.StatusResponse{} +func (s *Server) Status(ctx context.Context, req *rove.StatusRequest) (response *rove.StatusResponse, err error) { if len(req.Account) == 0 { return nil, fmt.Errorf("empty account name") diff --git a/cmd/rove-server/internal/server.go b/cmd/rove-server/internal/server.go index 5f918d4..a80005e 100644 --- a/cmd/rove-server/internal/server.go +++ b/cmd/rove-server/internal/server.go @@ -136,7 +136,9 @@ func (s *Server) Run() { s.world.ExecuteCommandQueues() // Save out the new world state - s.SaveWorld() + if err := s.SaveWorld(); err != nil { + log.Fatalf("Failed to save the world: %s", err) + } }); err != nil { log.Fatal(err) } diff --git a/cmd/rove-server/main.go b/cmd/rove-server/main.go index ef1d675..db09130 100644 --- a/cmd/rove-server/main.go +++ b/cmd/rove-server/main.go @@ -52,7 +52,9 @@ func InnerMain() { log.Printf("Initialising version %s...\n", version.Version) // Set the persistence path - persistence.SetPath(data) + if err := persistence.SetPath(data); err != nil { + log.Fatal(err) + } // Convert the tick rate tickRate := 1 diff --git a/cmd/rove-server/main_test.go b/cmd/rove-server/main_test.go index fcf9a55..e689ead 100644 --- a/cmd/rove-server/main_test.go +++ b/cmd/rove-server/main_test.go @@ -3,10 +3,12 @@ package main import ( "flag" "testing" + + "github.com/stretchr/testify/assert" ) func Test_InnerMain_Version(t *testing.T) { - flag.Set("version", "1") + assert.NoError(t, flag.Set("version", "1")) InnerMain() - flag.Set("version", "0") + assert.NoError(t, flag.Set("version", "0")) } diff --git a/cmd/rove/main.go b/cmd/rove/main.go index af1fd6d..7ef4b91 100644 --- a/cmd/rove/main.go +++ b/cmd/rove/main.go @@ -78,7 +78,9 @@ func LoadConfig() (config Config, err error) { // Create the path if needed path := filepath.Dir(datapath) if _, err := os.Stat(path); os.IsNotExist(err) { - os.MkdirAll(path, os.ModePerm) + if err := os.MkdirAll(path, os.ModePerm); err != nil { + return Config{}, fmt.Errorf("Failed to create data path %s: %s", path, err) + } } else { // Read the file _, err = os.Stat(datapath) diff --git a/pkg/atlas/atlas.go b/pkg/atlas/atlas.go index ef25d9c..0840873 100644 --- a/pkg/atlas/atlas.go +++ b/pkg/atlas/atlas.go @@ -144,19 +144,6 @@ func (a *Atlas) setObject(chunk int, local vector.Vector, object objects.Object) a.Chunks[chunk] = c } -// setTileAndObject sets both tile and object information for location in chunk -func (a *Atlas) setTileAndObject(chunk int, local vector.Vector, tile byte, object objects.Object) { - c := a.Chunks[chunk] - if c.Tiles == nil { - c.populate(a.ChunkSize) - } - - i := a.chunkTileIndex(local) - c.Tiles[i] = tile - c.Objects[i] = object - a.Chunks[chunk] = c -} - // worldSpaceToChunkLocal gets a chunk local coordinate for a tile func (a *Atlas) worldSpaceToChunkLocal(v vector.Vector) vector.Vector { return vector.Vector{X: maths.Pmod(v.X, a.ChunkSize), Y: maths.Pmod(v.Y, a.ChunkSize)} diff --git a/pkg/bearing/bearing.go b/pkg/bearing/bearing.go index 62053f2..303c195 100644 --- a/pkg/bearing/bearing.go +++ b/pkg/bearing/bearing.go @@ -60,7 +60,7 @@ func (d Bearing) ShortString() string { // FromString gets the Direction from a string func FromString(s string) (Bearing, error) { for i, d := range bearingStrings { - if strings.ToLower(d.Long) == strings.ToLower(s) || strings.ToLower(d.Short) == strings.ToLower(s) { + if strings.EqualFold(d.Long, s) || strings.EqualFold(d.Short, s) { return Bearing(i), nil } } diff --git a/pkg/game/world_test.go b/pkg/game/world_test.go index 9b4e696..6e5f7d7 100644 --- a/pkg/game/world_test.go +++ b/pkg/game/world_test.go @@ -91,6 +91,7 @@ func TestWorld_GetSetMovePosition(t *testing.T) { // Place a tile in front of the rover world.Atlas.SetObject(vector.Vector{X: 0, Y: 2}, objects.Object{Type: objects.LargeRock}) newPos, err = world.MoveRover(a, b) + assert.NoError(t, err, "Failed to move rover") assert.Equal(t, pos, newPos, "Failed to correctly not move position for rover into wall") rover, err = world.GetRover(a) @@ -168,7 +169,9 @@ func TestWorld_RoverStash(t *testing.T) { // Recharge the rover for i := 0; i < rover.MaximumCharge; i++ { - world.RoverRecharge(a) + _, err = world.RoverRecharge(a) + assert.NoError(t, err) + } // Place an object