mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-10-01 15:46:17 -04:00
Move d2config to d2core, remove d2helper (#282)
This commit is contained in:
parent
b5c1f5222d
commit
ea4450f207
@ -4,7 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LevelPresetRecord struct {
|
type LevelPresetRecord struct {
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LevelTypeRecord struct {
|
type LevelTypeRecord struct {
|
||||||
|
@ -3,7 +3,7 @@ package d2datadict
|
|||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func MapHeaders(line string) map[string]int {
|
func MapHeaders(line string) map[string]int {
|
||||||
|
@ -5,8 +5,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type MissileCalcParam struct {
|
type MissileCalcParam struct {
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
)
|
)
|
||||||
|
|
||||||
// An ObjectRecord represents the settings for one type of object from objects.txt
|
// An ObjectRecord represents the settings for one type of object from objects.txt
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SoundEntry represents a sound entry
|
// SoundEntry represents a sound entry
|
||||||
|
@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UniqueItemRecord struct {
|
type UniqueItemRecord struct {
|
||||||
|
@ -4,7 +4,6 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type DCCDirection struct {
|
type DCCDirection struct {
|
||||||
@ -50,10 +49,10 @@ func CreateDCCDirection(bm *d2common.BitMuncher, file DCC) DCCDirection {
|
|||||||
// Load the frame headers
|
// Load the frame headers
|
||||||
for frameIdx := 0; frameIdx < file.FramesPerDirection; frameIdx++ {
|
for frameIdx := 0; frameIdx < file.FramesPerDirection; frameIdx++ {
|
||||||
result.Frames[frameIdx] = CreateDCCDirectionFrame(bm, result)
|
result.Frames[frameIdx] = CreateDCCDirectionFrame(bm, result)
|
||||||
minx = int(d2helper.MinInt32(int32(result.Frames[frameIdx].Box.Left), int32(minx)))
|
minx = int(d2common.MinInt32(int32(result.Frames[frameIdx].Box.Left), int32(minx)))
|
||||||
miny = int(d2helper.MinInt32(int32(result.Frames[frameIdx].Box.Top), int32(miny)))
|
miny = int(d2common.MinInt32(int32(result.Frames[frameIdx].Box.Top), int32(miny)))
|
||||||
maxx = int(d2helper.MaxInt32(int32(result.Frames[frameIdx].Box.Right()), int32(maxx)))
|
maxx = int(d2common.MaxInt32(int32(result.Frames[frameIdx].Box.Right()), int32(maxx)))
|
||||||
maxy = int(d2helper.MaxInt32(int32(result.Frames[frameIdx].Box.Bottom()), int32(maxy)))
|
maxy = int(d2common.MaxInt32(int32(result.Frames[frameIdx].Box.Bottom()), int32(maxy)))
|
||||||
}
|
}
|
||||||
result.Box = d2common.Rectangle{minx, miny, (maxx - minx), (maxy - miny)}
|
result.Box = d2common.Rectangle{minx, miny, (maxx - minx), (maxy - miny)}
|
||||||
if result.OptionalDataBits > 0 {
|
if result.OptionalDataBits > 0 {
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type DS1 struct {
|
type DS1 struct {
|
||||||
@ -37,7 +36,7 @@ func LoadDS1(fileData []byte) DS1 {
|
|||||||
ds1.Width = br.GetInt32() + 1
|
ds1.Width = br.GetInt32() + 1
|
||||||
ds1.Height = br.GetInt32() + 1
|
ds1.Height = br.GetInt32() + 1
|
||||||
if ds1.Version >= 8 {
|
if ds1.Version >= 8 {
|
||||||
ds1.Act = d2helper.MinInt32(5, br.GetInt32()+1)
|
ds1.Act = d2common.MinInt32(5, br.GetInt32()+1)
|
||||||
}
|
}
|
||||||
if ds1.Version >= 10 {
|
if ds1.Version >= 10 {
|
||||||
ds1.SubstitutionType = br.GetInt32()
|
ds1.SubstitutionType = br.GetInt32()
|
||||||
|
@ -10,9 +10,9 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
|
|
||||||
"github.com/JoshVarga/blast"
|
"github.com/JoshVarga/blast"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2compression"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2compression"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ func (v *Stream) readInternalSingleUnit(buffer []byte, offset, count uint32) uin
|
|||||||
v.loadSingleUnit()
|
v.loadSingleUnit()
|
||||||
}
|
}
|
||||||
|
|
||||||
bytesToCopy := d2helper.Min(uint32(len(v.CurrentData))-v.CurrentPosition, count)
|
bytesToCopy := d2common.Min(uint32(len(v.CurrentData))-v.CurrentPosition, count)
|
||||||
copy(buffer[offset:offset+bytesToCopy], v.CurrentData[v.CurrentPosition:v.CurrentPosition+bytesToCopy])
|
copy(buffer[offset:offset+bytesToCopy], v.CurrentData[v.CurrentPosition:v.CurrentPosition+bytesToCopy])
|
||||||
v.CurrentPosition += bytesToCopy
|
v.CurrentPosition += bytesToCopy
|
||||||
return bytesToCopy
|
return bytesToCopy
|
||||||
@ -113,7 +113,7 @@ func (v *Stream) readInternalSingleUnit(buffer []byte, offset, count uint32) uin
|
|||||||
func (v *Stream) readInternal(buffer []byte, offset, count uint32) uint32 {
|
func (v *Stream) readInternal(buffer []byte, offset, count uint32) uint32 {
|
||||||
v.bufferData()
|
v.bufferData()
|
||||||
localPosition := v.CurrentPosition % v.BlockSize
|
localPosition := v.CurrentPosition % v.BlockSize
|
||||||
bytesToCopy := d2helper.MinInt32(int32(len(v.CurrentData))-int32(localPosition), int32(count))
|
bytesToCopy := d2common.MinInt32(int32(len(v.CurrentData))-int32(localPosition), int32(count))
|
||||||
if bytesToCopy <= 0 {
|
if bytesToCopy <= 0 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -127,7 +127,7 @@ func (v *Stream) bufferData() {
|
|||||||
if requiredBlock == v.CurrentBlockIndex {
|
if requiredBlock == v.CurrentBlockIndex {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
expectedLength := d2helper.Min(v.BlockTableEntry.UncompressedFileSize-(requiredBlock*v.BlockSize), v.BlockSize)
|
expectedLength := d2common.Min(v.BlockTableEntry.UncompressedFileSize-(requiredBlock*v.BlockSize), v.BlockSize)
|
||||||
v.CurrentData = v.loadBlock(requiredBlock, expectedLength)
|
v.CurrentData = v.loadBlock(requiredBlock, expectedLength)
|
||||||
v.CurrentBlockIndex = requiredBlock
|
v.CurrentBlockIndex = requiredBlock
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package d2helper
|
package d2common
|
||||||
|
|
||||||
import "math"
|
import "math"
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package d2helper
|
package d2common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
@ -141,7 +141,7 @@ func SplitIntoLinesWithMaxWidth(fullSentence string, maxChars int) []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func splitCjkIntoChunks(str string, chars int) []string {
|
func splitCjkIntoChunks(str string, chars int) []string {
|
||||||
chunks := make([]string, chars / len(str))
|
chunks := make([]string, chars/len(str))
|
||||||
i, count := 0, 0
|
i, count := 0, 0
|
||||||
for j, ch := range str {
|
for j, ch := range str {
|
||||||
if ch < unicode.MaxLatin1 {
|
if ch < unicode.MaxLatin1 {
|
@ -1,4 +1,4 @@
|
|||||||
package d2helper
|
package d2common
|
||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
|
@ -5,10 +5,10 @@ import (
|
|||||||
"image/color"
|
"image/color"
|
||||||
"math"
|
"math"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2dc6"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2dc6"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2dcc"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2dcc"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
)
|
)
|
||||||
@ -60,10 +60,10 @@ func createAnimationFromDCC(dcc *d2dcc.DCC, palette *d2datadict.PaletteRec, tran
|
|||||||
minX, minY := math.MaxInt32, math.MaxInt32
|
minX, minY := math.MaxInt32, math.MaxInt32
|
||||||
maxX, maxY := math.MinInt32, math.MinInt32
|
maxX, maxY := math.MinInt32, math.MinInt32
|
||||||
for _, dccFrame := range dccDirection.Frames {
|
for _, dccFrame := range dccDirection.Frames {
|
||||||
minX = d2helper.MinInt(minX, dccFrame.Box.Left)
|
minX = d2common.MinInt(minX, dccFrame.Box.Left)
|
||||||
minY = d2helper.MinInt(minY, dccFrame.Box.Top)
|
minY = d2common.MinInt(minY, dccFrame.Box.Top)
|
||||||
maxX = d2helper.MaxInt(maxX, dccFrame.Box.Right())
|
maxX = d2common.MaxInt(maxX, dccFrame.Box.Right())
|
||||||
maxY = d2helper.MaxInt(maxY, dccFrame.Box.Bottom())
|
maxY = d2common.MaxInt(maxY, dccFrame.Box.Bottom())
|
||||||
}
|
}
|
||||||
|
|
||||||
frameWidth := maxX - minX
|
frameWidth := maxX - minX
|
||||||
@ -222,8 +222,8 @@ func (a *Animation) GetFrameBounds() (int, int) {
|
|||||||
|
|
||||||
direction := a.directions[a.directionIndex]
|
direction := a.directions[a.directionIndex]
|
||||||
for _, frame := range direction.frames {
|
for _, frame := range direction.frames {
|
||||||
maxWidth = d2helper.MaxInt(maxWidth, frame.width)
|
maxWidth = d2common.MaxInt(maxWidth, frame.width)
|
||||||
maxHeight = d2helper.MaxInt(maxHeight, frame.height)
|
maxHeight = d2common.MaxInt(maxHeight, frame.height)
|
||||||
}
|
}
|
||||||
|
|
||||||
return maxWidth, maxHeight
|
return maxWidth, maxHeight
|
||||||
|
@ -6,8 +6,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2config"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2mpq"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2mpq"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2config"
|
||||||
)
|
)
|
||||||
|
|
||||||
type archiveEntry struct {
|
type archiveEntry struct {
|
||||||
|
@ -3,10 +3,10 @@ package d2asset
|
|||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2config"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2mpq"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2mpq"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2config"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2term"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2term"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -4,8 +4,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2config"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -4,9 +4,9 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
)
|
)
|
||||||
@ -87,7 +87,7 @@ func (v *AnimatedEntity) getStepLength(tickTime float64) (float64, float64) {
|
|||||||
speed := 6.0
|
speed := 6.0
|
||||||
length := tickTime * speed
|
length := tickTime * speed
|
||||||
|
|
||||||
angle := 359 - d2helper.GetAngleBetween(
|
angle := 359 - d2common.GetAngleBetween(
|
||||||
v.LocationX,
|
v.LocationX,
|
||||||
v.LocationY,
|
v.LocationY,
|
||||||
v.TargetX,
|
v.TargetX,
|
||||||
@ -102,10 +102,10 @@ func (v *AnimatedEntity) getStepLength(tickTime float64) (float64, float64) {
|
|||||||
func (v *AnimatedEntity) Step(tickTime float64) {
|
func (v *AnimatedEntity) Step(tickTime float64) {
|
||||||
stepX, stepY := v.getStepLength(tickTime)
|
stepX, stepY := v.getStepLength(tickTime)
|
||||||
|
|
||||||
if d2helper.AlmostEqual(v.LocationX, v.TargetX, stepX) {
|
if d2common.AlmostEqual(v.LocationX, v.TargetX, stepX) {
|
||||||
v.LocationX = v.TargetX
|
v.LocationX = v.TargetX
|
||||||
}
|
}
|
||||||
if d2helper.AlmostEqual(v.LocationY, v.TargetY, stepY) {
|
if d2common.AlmostEqual(v.LocationY, v.TargetY, stepY) {
|
||||||
v.LocationY = v.TargetY
|
v.LocationY = v.TargetY
|
||||||
}
|
}
|
||||||
if v.LocationX != v.TargetX {
|
if v.LocationX != v.TargetX {
|
||||||
@ -145,7 +145,7 @@ func (v *AnimatedEntity) Step(tickTime float64) {
|
|||||||
|
|
||||||
// SetTarget sets target coordinates and changes animation based on proximity and direction
|
// SetTarget sets target coordinates and changes animation based on proximity and direction
|
||||||
func (v *AnimatedEntity) SetTarget(tx, ty float64, action int32) {
|
func (v *AnimatedEntity) SetTarget(tx, ty float64, action int32) {
|
||||||
angle := 359 - d2helper.GetAngleBetween(
|
angle := 359 - d2common.GetAngleBetween(
|
||||||
v.LocationX,
|
v.LocationX,
|
||||||
v.LocationY,
|
v.LocationY,
|
||||||
tx,
|
tx,
|
||||||
|
@ -7,17 +7,14 @@ import (
|
|||||||
"math/rand"
|
"math/rand"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2ds1"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2ds1"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2dt1"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2dt1"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -490,10 +487,10 @@ func (mr *MapRegion) generateFloorCache(tile *d2ds1.FloorShadowRecord, tileX, ti
|
|||||||
}
|
}
|
||||||
tileYMinimum := int32(0)
|
tileYMinimum := int32(0)
|
||||||
for _, block := range tileData[i].Blocks {
|
for _, block := range tileData[i].Blocks {
|
||||||
tileYMinimum = d2helper.MinInt32(tileYMinimum, int32(block.Y))
|
tileYMinimum = d2common.MinInt32(tileYMinimum, int32(block.Y))
|
||||||
}
|
}
|
||||||
tileYOffset := d2helper.AbsInt32(tileYMinimum)
|
tileYOffset := d2common.AbsInt32(tileYMinimum)
|
||||||
tileHeight := d2helper.AbsInt32(tileData[i].Height)
|
tileHeight := d2common.AbsInt32(tileData[i].Height)
|
||||||
_, image := d2render.NewSurface(int(tileData[i].Width), int(tileHeight), d2render.FilterNearest)
|
_, image := d2render.NewSurface(int(tileData[i].Width), int(tileHeight), d2render.FilterNearest)
|
||||||
pixels := make([]byte, 4*tileData[i].Width*tileHeight)
|
pixels := make([]byte, 4*tileData[i].Width*tileHeight)
|
||||||
mr.decodeTileGfxData(tileData[i].Blocks, &pixels, tileYOffset, tileData[i].Width)
|
mr.decodeTileGfxData(tileData[i].Blocks, &pixels, tileYOffset, tileData[i].Width)
|
||||||
@ -517,8 +514,8 @@ func (mr *MapRegion) generateShadowCache(tile *d2ds1.FloorShadowRecord, tileX, t
|
|||||||
tileMinY := int32(0)
|
tileMinY := int32(0)
|
||||||
tileMaxY := int32(0)
|
tileMaxY := int32(0)
|
||||||
for _, block := range tileData.Blocks {
|
for _, block := range tileData.Blocks {
|
||||||
tileMinY = d2helper.MinInt32(tileMinY, int32(block.Y))
|
tileMinY = d2common.MinInt32(tileMinY, int32(block.Y))
|
||||||
tileMaxY = d2helper.MaxInt32(tileMaxY, int32(block.Y+32))
|
tileMaxY = d2common.MaxInt32(tileMaxY, int32(block.Y+32))
|
||||||
}
|
}
|
||||||
tileYOffset := -tileMinY
|
tileYOffset := -tileMinY
|
||||||
tileHeight := int(tileMaxY - tileMinY)
|
tileHeight := int(tileMaxY - tileMinY)
|
||||||
@ -566,11 +563,11 @@ func (mr *MapRegion) generateWallCache(tile *d2ds1.WallRecord, tileX, tileY int)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, block := range target.Blocks {
|
for _, block := range target.Blocks {
|
||||||
tileMinY = d2helper.MinInt32(tileMinY, int32(block.Y))
|
tileMinY = d2common.MinInt32(tileMinY, int32(block.Y))
|
||||||
tileMaxY = d2helper.MaxInt32(tileMaxY, int32(block.Y+32))
|
tileMaxY = d2common.MaxInt32(tileMaxY, int32(block.Y+32))
|
||||||
}
|
}
|
||||||
|
|
||||||
realHeight := d2helper.MaxInt32(d2helper.AbsInt32(tileData.Height), tileMaxY-tileMinY)
|
realHeight := d2common.MaxInt32(d2common.AbsInt32(tileData.Height), tileMaxY-tileMinY)
|
||||||
tileYOffset := -tileMinY
|
tileYOffset := -tileMinY
|
||||||
//tileHeight := int(tileMaxY - tileMinY)
|
//tileHeight := int(tileMaxY - tileMinY)
|
||||||
|
|
||||||
|
@ -4,12 +4,11 @@ import (
|
|||||||
"image"
|
"image"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2config"
|
|
||||||
|
|
||||||
"github.com/hajimehoshi/ebiten"
|
"github.com/hajimehoshi/ebiten"
|
||||||
"github.com/hajimehoshi/ebiten/ebitenutil"
|
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2config"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
)
|
)
|
||||||
|
|
||||||
type EbitenRenderer struct {
|
type EbitenRenderer struct {
|
||||||
|
@ -13,7 +13,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2input"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2input"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
)
|
)
|
||||||
@ -130,7 +130,7 @@ func (t *terminal) advance(elapsed float64) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool {
|
func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool {
|
||||||
maxOutputIndex := d2helper.MaxInt(0, len(t.outputHistory)-t.lineCount)
|
maxOutputIndex := d2common.MaxInt(0, len(t.outputHistory)-t.lineCount)
|
||||||
|
|
||||||
if t.visState == termVisHiding || t.visState == termVisHidden {
|
if t.visState == termVisHiding || t.visState == termVisHidden {
|
||||||
if event.Key == d2input.KeyGraveAccent {
|
if event.Key == d2input.KeyGraveAccent {
|
||||||
@ -180,7 +180,7 @@ func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool {
|
|||||||
|
|
||||||
if event.Key == d2input.KeyUp {
|
if event.Key == d2input.KeyUp {
|
||||||
if event.KeyMod == d2input.KeyModControl {
|
if event.KeyMod == d2input.KeyModControl {
|
||||||
t.lineCount = d2helper.MaxInt(0, t.lineCount-1)
|
t.lineCount = d2common.MaxInt(0, t.lineCount-1)
|
||||||
} else if len(t.commandHistory) > 0 {
|
} else if len(t.commandHistory) > 0 {
|
||||||
t.command = t.commandHistory[t.commandIndex]
|
t.command = t.commandHistory[t.commandIndex]
|
||||||
if t.commandIndex == 0 {
|
if t.commandIndex == 0 {
|
||||||
@ -194,7 +194,7 @@ func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if event.Key == d2input.KeyDown && event.KeyMod == d2input.KeyModControl {
|
if event.Key == d2input.KeyDown && event.KeyMod == d2input.KeyModControl {
|
||||||
t.lineCount = d2helper.MinInt(t.lineCount+1, termRowCountMax)
|
t.lineCount = d2common.MinInt(t.lineCount+1, termRowCountMax)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,14 @@
|
|||||||
package d2ui
|
package d2ui
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/binary"
|
||||||
"image/color"
|
"image/color"
|
||||||
"strings"
|
"strings"
|
||||||
|
"unicode"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
|
|
||||||
"encoding/binary"
|
|
||||||
|
|
||||||
"unicode"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var fontCache = map[string]*Font{}
|
var fontCache = map[string]*Font{}
|
||||||
@ -91,7 +88,7 @@ func (v *Font) GetTextMetrics(text string) (width, height int) {
|
|||||||
_, maxCharHeight := v.fontSprite.GetFrameBounds()
|
_, maxCharHeight := v.fontSprite.GetFrameBounds()
|
||||||
for _, ch := range text {
|
for _, ch := range text {
|
||||||
if ch == '\n' {
|
if ch == '\n' {
|
||||||
width = d2helper.MaxInt(width, curWidth)
|
width = d2common.MaxInt(width, curWidth)
|
||||||
curWidth = 0
|
curWidth = 0
|
||||||
height += maxCharHeight + 6
|
height += maxCharHeight + 6
|
||||||
continue
|
continue
|
||||||
@ -99,7 +96,7 @@ func (v *Font) GetTextMetrics(text string) (width, height int) {
|
|||||||
|
|
||||||
curWidth += v.getCharWidth(ch)
|
curWidth += v.getCharWidth(ch)
|
||||||
}
|
}
|
||||||
width = d2helper.MaxInt(width, curWidth)
|
width = d2common.MaxInt(width, curWidth)
|
||||||
height += maxCharHeight
|
height += maxCharHeight
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -111,7 +108,7 @@ func (v *Font) Render(x, y int, text string, color color.Color, target d2render.
|
|||||||
|
|
||||||
maxCharHeight := uint32(0)
|
maxCharHeight := uint32(0)
|
||||||
for _, m := range v.metrics {
|
for _, m := range v.metrics {
|
||||||
maxCharHeight = d2helper.Max(maxCharHeight, uint32(m.Height))
|
maxCharHeight = d2common.Max(maxCharHeight, uint32(m.Height))
|
||||||
}
|
}
|
||||||
|
|
||||||
targetWidth, _ := target.GetSize()
|
targetWidth, _ := target.GetSize()
|
||||||
|
@ -4,10 +4,9 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"image/color"
|
"image/color"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Sprite struct {
|
type Sprite struct {
|
||||||
@ -53,7 +52,7 @@ func (s *Sprite) RenderSegmented(target d2render.Surface, segmentsX, segmentsY,
|
|||||||
}
|
}
|
||||||
|
|
||||||
frameWidth, frameHeight := s.GetCurrentFrameSize()
|
frameWidth, frameHeight := s.GetCurrentFrameSize()
|
||||||
maxFrameHeight = d2helper.MaxInt(maxFrameHeight, frameHeight)
|
maxFrameHeight = d2common.MaxInt(maxFrameHeight, frameHeight)
|
||||||
currentX += frameWidth
|
currentX += frameWidth
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,15 +5,13 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2scene"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2input"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2input"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2term"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2scene"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2term"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
||||||
)
|
)
|
||||||
|
|
||||||
var loadingSprite *d2ui.Sprite // The sprite shown when loading stuff
|
var loadingSprite *d2ui.Sprite // The sprite shown when loading stuff
|
||||||
@ -30,7 +28,7 @@ func Initialize(loadingSpr *d2ui.Sprite) error {
|
|||||||
bsHandler = &bsForInputHanding{}
|
bsHandler = &bsForInputHanding{}
|
||||||
loadingSprite = loadingSpr
|
loadingSprite = loadingSpr
|
||||||
timeScale = 1.0
|
timeScale = 1.0
|
||||||
lastTime = d2helper.Now()
|
lastTime = d2common.Now()
|
||||||
d2input.BindHandler(bsHandler)
|
d2input.BindHandler(bsHandler)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -83,7 +81,7 @@ func Advance() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
currentTime := d2helper.Now()
|
currentTime := d2common.Now()
|
||||||
deltaTime := (currentTime - lastTime) * timeScale
|
deltaTime := (currentTime - lastTime) * timeScale
|
||||||
lastTime = currentTime
|
lastTime = currentTime
|
||||||
|
|
||||||
@ -96,8 +94,8 @@ func Advance() {
|
|||||||
// Draw draws the game
|
// Draw draws the game
|
||||||
func render(target d2render.Surface) {
|
func render(target d2render.Surface) {
|
||||||
if d2scene.GetLoadingProgress() < 1.0 {
|
if d2scene.GetLoadingProgress() < 1.0 {
|
||||||
loadingSprite.SetCurrentFrame(int(d2helper.Max(0,
|
loadingSprite.SetCurrentFrame(int(d2common.Max(0,
|
||||||
d2helper.Min(uint32(loadingSprite.GetFrameCount()-1),
|
d2common.Min(uint32(loadingSprite.GetFrameCount()-1),
|
||||||
uint32(float64(loadingSprite.GetFrameCount()-1)*d2scene.GetLoadingProgress())))))
|
uint32(float64(loadingSprite.GetFrameCount()-1)*d2scene.GetLoadingProgress())))))
|
||||||
loadingSprite.Render(target)
|
loadingSprite.Render(target)
|
||||||
} else {
|
} else {
|
||||||
|
@ -6,21 +6,20 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/hajimehoshi/ebiten"
|
||||||
|
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2gamestate"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2gamestate"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2inventory"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2inventory"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2map"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2map"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2scene"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2scene"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio"
|
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
||||||
"github.com/hajimehoshi/ebiten"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type CharacterSelect struct {
|
type CharacterSelect struct {
|
||||||
@ -63,19 +62,19 @@ func (v *CharacterSelect) Load() []func() {
|
|||||||
v.background.SetPosition(0, 0)
|
v.background.SetPosition(0, 0)
|
||||||
},
|
},
|
||||||
func() {
|
func() {
|
||||||
v.newCharButton = d2ui.CreateButton(d2ui.ButtonTypeTall, dh.CombineStrings(dh.SplitIntoLinesWithMaxWidth(d2common.TranslateString("#831"), 15)))
|
v.newCharButton = d2ui.CreateButton(d2ui.ButtonTypeTall, d2common.CombineStrings(dh.SplitIntoLinesWithMaxWidth(d2common.TranslateString("#831"), 15)))
|
||||||
v.newCharButton.SetPosition(33, 468)
|
v.newCharButton.SetPosition(33, 468)
|
||||||
v.newCharButton.OnActivated(func() { v.onNewCharButtonClicked() })
|
v.newCharButton.OnActivated(func() { v.onNewCharButtonClicked() })
|
||||||
d2ui.AddWidget(&v.newCharButton)
|
d2ui.AddWidget(&v.newCharButton)
|
||||||
},
|
},
|
||||||
func() {
|
func() {
|
||||||
v.convertCharButton = d2ui.CreateButton(d2ui.ButtonTypeTall, dh.CombineStrings(dh.SplitIntoLinesWithMaxWidth(d2common.TranslateString("#825"), 15)))
|
v.convertCharButton = d2ui.CreateButton(d2ui.ButtonTypeTall, d2common.CombineStrings(dh.SplitIntoLinesWithMaxWidth(d2common.TranslateString("#825"), 15)))
|
||||||
v.convertCharButton.SetPosition(233, 468)
|
v.convertCharButton.SetPosition(233, 468)
|
||||||
v.convertCharButton.SetEnabled(false)
|
v.convertCharButton.SetEnabled(false)
|
||||||
d2ui.AddWidget(&v.convertCharButton)
|
d2ui.AddWidget(&v.convertCharButton)
|
||||||
},
|
},
|
||||||
func() {
|
func() {
|
||||||
v.deleteCharButton = d2ui.CreateButton(d2ui.ButtonTypeTall, dh.CombineStrings(dh.SplitIntoLinesWithMaxWidth(d2common.TranslateString("#832"), 15)))
|
v.deleteCharButton = d2ui.CreateButton(d2ui.ButtonTypeTall, d2common.CombineStrings(dh.SplitIntoLinesWithMaxWidth(d2common.TranslateString("#832"), 15)))
|
||||||
v.deleteCharButton.OnActivated(func() { v.onDeleteCharButtonClicked() })
|
v.deleteCharButton.OnActivated(func() { v.onDeleteCharButtonClicked() })
|
||||||
v.deleteCharButton.SetPosition(433, 468)
|
v.deleteCharButton.SetPosition(433, 468)
|
||||||
d2ui.AddWidget(&v.deleteCharButton)
|
d2ui.AddWidget(&v.deleteCharButton)
|
||||||
|
@ -17,7 +17,7 @@ import (
|
|||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ import (
|
|||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
|
|
||||||
dh "github.com/OpenDiablo2/OpenDiablo2/d2common/d2helper"
|
dh "github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2ui"
|
||||||
)
|
)
|
||||||
|
2
main.go
2
main.go
@ -6,7 +6,6 @@ import (
|
|||||||
"gopkg.in/alecthomas/kingpin.v2"
|
"gopkg.in/alecthomas/kingpin.v2"
|
||||||
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2config"
|
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2data/d2datadict"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
||||||
@ -17,6 +16,7 @@ import (
|
|||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio"
|
||||||
ebiten2 "github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio/ebiten"
|
ebiten2 "github.com/OpenDiablo2/OpenDiablo2/d2core/d2audio/ebiten"
|
||||||
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2config"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2input"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2input"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render/ebiten"
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render/ebiten"
|
||||||
|
Loading…
Reference in New Issue
Block a user