1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-09-19 17:55:54 -04:00
OpenDiablo2/d2core/d2map/d2mapgen/act1_overworld.go

38 lines
1.1 KiB
Go
Raw Normal View History

2020-06-21 18:40:37 -04:00
package d2mapgen
import (
"log"
2020-06-21 18:40:37 -04:00
"math/rand"
2020-06-22 19:33:12 -04:00
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2ds1"
2020-06-21 18:40:37 -04:00
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2map/d2mapengine"
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2map/d2mapstamp"
)
func GenerateAct1Overworld(mapEngine *d2mapengine.MapEngine) {
log.Printf("Map seed: %d", mapEngine.Seed())
2020-06-21 18:40:37 -04:00
rand.Seed(mapEngine.Seed())
2020-06-22 19:33:12 -04:00
townStamp := d2mapstamp.LoadStamp(d2enum.RegionAct1Town, 1, -1)
2020-06-21 18:40:37 -04:00
townSize := townStamp.Size()
2020-06-22 19:33:12 -04:00
mapEngine.ResetMap(d2enum.RegionAct1Town, 100, 100) // TODO: Mapgen - Needs levels.txt stuff
2020-06-21 18:40:37 -04:00
2020-06-22 19:33:12 -04:00
wildernessGrass := d2ds1.FloorShadowRecord{
Prop1: 195,
Style: 0,
}
mapWidth := mapEngine.Size().Width
for y := 0; y < 100; y++ {
for x := 0; x < 100; x++ {
(*mapEngine.Tiles())[x+(y*mapWidth)].RegionType = d2enum.RegionAct1Wilderness
(*mapEngine.Tiles())[x+(y*mapWidth)].Floors = []d2ds1.FloorShadowRecord{wildernessGrass}
}
}
2020-06-21 18:40:37 -04:00
2020-06-22 19:33:12 -04:00
mapEngine.PlaceStamp(townStamp, 50-(townSize.Width/2), 50-(townSize.Height/2))
mapEngine.RegenerateWalkPaths()
2020-06-21 18:40:37 -04:00
}