Use map rect
This commit is contained in:
@@ -127,13 +127,14 @@ func loadMapsFrom(part string) {
|
|||||||
|
|
||||||
log.Printf("Maps in %s:", mapsPath)
|
log.Printf("Maps in %s:", mapsPath)
|
||||||
for key, gameMap := range gameMaps {
|
for key, gameMap := range gameMaps {
|
||||||
|
rect := gameMap.Rect()
|
||||||
hdr := gameMap.Header
|
hdr := gameMap.Header
|
||||||
fmt.Printf(
|
fmt.Printf(
|
||||||
" * `%s`: IsCampaignMap=%v W=%v:%v L=%v:%v SetName=%s\n",
|
" * `%s`: IsCampaignMap=%v W=%v:%v L=%v:%v SetName=%s\n",
|
||||||
key,
|
key,
|
||||||
hdr.IsCampaignMap,
|
hdr.IsCampaignMap,
|
||||||
hdr.MinWidth, hdr.MaxWidth,
|
rect.Min.X, rect.Max.X,
|
||||||
hdr.MinLength, hdr.MaxLength,
|
rect.Min.Y, rect.Max.Y,
|
||||||
string(hdr.SetName[:]),
|
string(hdr.SetName[:]),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@@ -172,18 +172,15 @@ func (e *env) Update(screenX, screenY int) error {
|
|||||||
|
|
||||||
func (e *env) Draw(screen *ebiten.Image) error {
|
func (e *env) Draw(screen *ebiten.Image) error {
|
||||||
gameMap := e.gameMap
|
gameMap := e.gameMap
|
||||||
imd, err := ebiten.NewImage(
|
rect := gameMap.Rect()
|
||||||
int(gameMap.MaxWidth),
|
imd, err := ebiten.NewImage(rect.Dx(), rect.Dy(), ebiten.FilterDefault)
|
||||||
int(gameMap.MaxLength),
|
|
||||||
ebiten.FilterDefault,
|
|
||||||
)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for y := int(gameMap.MinLength); y < int(gameMap.MaxLength); y++ {
|
for y := int(rect.Min.Y); y < int(rect.Max.Y); y++ {
|
||||||
for x := int(gameMap.MinWidth); x < int(gameMap.MaxWidth); x++ {
|
for x := int(rect.Min.X); x < int(rect.Max.X); x++ {
|
||||||
cell := gameMap.Cells.At(x, y, int(e.state.zIdx))
|
cell := gameMap.Cells.At(x, y, int(e.state.zIdx))
|
||||||
imd.Set(x, y, makeColour(&cell, e.state.cellIdx))
|
imd.Set(x, y, makeColour(&cell, e.state.cellIdx))
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user