Internalise the map rect

This commit is contained in:
2020-05-20 01:43:40 +01:00
parent def40a1ee2
commit c7a2fa80e7
2 changed files with 13 additions and 8 deletions

View File

@@ -47,12 +47,7 @@ func (a *AssetStore) Map(name string) (*Map, error) {
}
m := &Map{
Rect: image.Rect(
int(raw.MinWidth),
int(raw.MinLength),
int(raw.MaxWidth),
int(raw.MaxLength),
),
Rect: raw.Rect(),
assets: a,
raw: raw,
set: set,
@@ -65,8 +60,8 @@ func (a *AssetStore) Map(name string) (*Map, error) {
func (m *Map) LoadSprites() error {
// Eager load the sprites we use
for x := m.Rect.Min.X; x <= m.Rect.Max.X; x++ {
for y := m.Rect.Min.Y; y <= m.Rect.Max.Y; y++ {
for x := m.Rect.Min.X; x < m.Rect.Max.X; x++ {
for y := m.Rect.Min.Y; y < m.Rect.Max.Y; y++ {
for z := 0; z < maps.MaxHeight; z++ {
if _, err := m.SpritesForCell(x, y, z); err != nil {
return err

View File

@@ -5,6 +5,7 @@ import (
"compress/gzip"
"encoding/binary"
"fmt"
"image"
"io"
"io/ioutil"
"log"
@@ -173,6 +174,15 @@ type GameMap struct {
Text string
}
func (m *GameMap) Rect() image.Rectangle {
return image.Rect(
int(m.Header.MinWidth),
int(m.Header.MinLength),
int(m.Header.MaxWidth),
int(m.Header.MaxLength),
)
}
// A game map contains a .txt and a .map. If they're in the same directory,
// just pass the directory + basename to load both
func LoadGameMap(prefix string) (*GameMap, error) {