1
1
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:
Alex Yatskov 2020-02-01 18:06:22 -08:00 committed by GitHub
parent b5c1f5222d
commit ea4450f207
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 83 additions and 96 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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 {

View File

@ -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()

View File

@ -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
} }

View File

@ -1,4 +1,4 @@
package d2helper package d2common
import "math" import "math"

View File

@ -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 {

View File

@ -1,4 +1,4 @@
package d2helper package d2common
import "time" import "time"

View File

@ -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

View File

@ -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 {

View File

@ -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"
) )

View File

@ -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 (

View File

@ -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,

View File

@ -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)

View File

@ -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 {

View File

@ -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
} }

View File

@ -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()

View File

@ -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
} }

View File

@ -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 {

View File

@ -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)

View File

@ -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"
) )

View File

@ -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"
) )

View File

@ -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"