diff --git a/d2render/d2mapengine/engine.go b/d2render/d2mapengine/engine.go index c4229742..04833f99 100644 --- a/d2render/d2mapengine/engine.go +++ b/d2render/d2mapengine/engine.go @@ -121,7 +121,18 @@ func (v *Engine) GetRegionAt(x, y int) *EngineRegion { func (v *Engine) Render(target *ebiten.Image) { for _, region := range v.regions { - v.RenderRegion(region, target) + // X position of leftmost point of region + left := (region.Rect.Left - region.Rect.Bottom()) * 80 + // Y position of top of region + top := (region.Rect.Left + region.Rect.Top) * 40 + // X of right + right := (region.Rect.Right() - region.Rect.Top) * 80 + // Y of bottom + bottom := (region.Rect.Right() + region.Rect.Bottom()) * 40 + + if -v.OffsetX+800 > float64(left) && -v.OffsetX < float64(right) && -v.OffsetY+600 > float64(top) && -v.OffsetY < float64(bottom) { + v.RenderRegion(region, target) + } } } diff --git a/d2render/d2mapengine/region.go b/d2render/d2mapengine/region.go index 201f894f..f0ac931b 100644 --- a/d2render/d2mapengine/region.go +++ b/d2render/d2mapengine/region.go @@ -53,6 +53,10 @@ func LoadRegion(seed int64, levelType d2enum.RegionIdType, levelPreset int, file seed: seed, } result.Palette = d2datadict.Palettes[d2enum.PaletteType("act"+strconv.Itoa(int(result.LevelType.Act)))] + // Temp hack + if levelType == d2enum.RegionAct5Lava { + result.Palette = d2datadict.Palettes[d2enum.PaletteType("act4")] + } //bm := result.levelPreset.Dt1Mask for _, levelTypeDt1 := range result.LevelType.Files { /*