refactor level, getting to tiles
This commit is contained in:
@ -192,7 +192,7 @@ func (ps *precomputedShade) recalc(level *gamemap.Level, initCoords types.Coords
|
||||
radius = ps.MaxTorchRadius //fixme
|
||||
}
|
||||
|
||||
level.Tiles[initCoords.X][initCoords.Y].Visible = true
|
||||
level.GetTile(initCoords).Visible = true
|
||||
|
||||
var fullShade = make([]byte, 360)
|
||||
for i := range fullShade {
|
||||
@ -226,7 +226,7 @@ func (ps *precomputedShade) recalc(level *gamemap.Level, initCoords types.Coords
|
||||
//fmt.Printf("\n level coords: %v", lc)
|
||||
for _, angle := range cell.occludedAngles {
|
||||
|
||||
if level.Tiles[lc.X][lc.Y].BlocksSight {
|
||||
if level.GetTile(lc).BlocksSight {
|
||||
nextShade[angle] = 1
|
||||
}
|
||||
|
||||
@ -236,8 +236,8 @@ func (ps *precomputedShade) recalc(level *gamemap.Level, initCoords types.Coords
|
||||
|
||||
}
|
||||
|
||||
if level.Tiles[lc.X][lc.Y].BlocksSight {
|
||||
level.Tiles[lc.X][lc.Y].Visible = true
|
||||
if level.GetTile(lc).BlocksSight {
|
||||
level.GetTile(lc).Visible = true
|
||||
}
|
||||
|
||||
}
|
||||
@ -254,7 +254,7 @@ func (ps *precomputedShade) ComputeFov(level *gamemap.Level, initCoords types.Co
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
level.Tiles[cs.X][cs.Y].Visible = true
|
||||
level.GetTile(cs).Visible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,10 +29,7 @@ func TestPrecompShade(t *testing.T) {
|
||||
Rect: types.NewRect(0, 0, 20, 20),
|
||||
}
|
||||
|
||||
level.Tiles = make([][]*gamemap.Tile, level.W)
|
||||
for i := range level.Tiles {
|
||||
level.Tiles[i] = make([]*gamemap.Tile, level.H)
|
||||
}
|
||||
level.Tiles = make([]*gamemap.Tile, level.W * level.H)
|
||||
|
||||
var tile func() (*gamemap.Tile)
|
||||
|
||||
@ -43,21 +40,21 @@ func TestPrecompShade(t *testing.T) {
|
||||
} else {
|
||||
tile = gamemap.NewFloor
|
||||
}
|
||||
level.Tiles[x][y] = tile()
|
||||
level.SetTileByXY(x, y, tile())
|
||||
}
|
||||
}
|
||||
|
||||
playerCoords := types.Coords{10, 10}
|
||||
|
||||
level.Tiles[8][12] = gamemap.NewWall()
|
||||
level.Tiles[10][8] = gamemap.NewWall()
|
||||
level.SetTileByXY(8, 12, gamemap.NewWall())
|
||||
level.SetTileByXY(10, 8, gamemap.NewWall())
|
||||
|
||||
level.Tiles[7][9] = gamemap.NewWall()
|
||||
level.Tiles[7][11] = gamemap.NewWall()
|
||||
level.Tiles[5][10] = gamemap.NewWall()
|
||||
level.SetTileByXY(7, 9, gamemap.NewWall())
|
||||
level.SetTileByXY(7, 11, gamemap.NewWall())
|
||||
level.SetTileByXY(5, 10, gamemap.NewWall())
|
||||
|
||||
level.Tiles[10][11] = gamemap.NewWall()
|
||||
level.Tiles[11][10] = gamemap.NewWall()
|
||||
level.SetTileByXY(10, 11, gamemap.NewWall())
|
||||
level.SetTileByXY(11, 10, gamemap.NewWall())
|
||||
|
||||
ppFov.ComputeFov(level, playerCoords, 12)
|
||||
|
||||
@ -67,8 +64,8 @@ func TestPrecompShade(t *testing.T) {
|
||||
if playerCoords.X == x && playerCoords.Y == y {
|
||||
return "@"
|
||||
}
|
||||
result := level.Tiles[x][y].Char
|
||||
if !level.Tiles[x][y].Visible {
|
||||
result := level.GetTileByXY(x, y).Char
|
||||
if !level.GetTileByXY(x, y).Visible {
|
||||
result = "?"
|
||||
}
|
||||
return result
|
||||
|
Reference in New Issue
Block a user