1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-11-02 09:17:19 -04:00
OpenDiablo2/tests/mpq_test.go

53 lines
1.3 KiB
Go
Raw Normal View History

package tests
import (
"log"
"path"
"strings"
"testing"
2019-11-10 10:44:13 -05:00
"github.com/OpenDiablo2/OpenDiablo2/d2data/d2cof"
"github.com/OpenDiablo2/OpenDiablo2/d2data/d2dcc"
2019-11-10 03:36:53 -05:00
"github.com/OpenDiablo2/OpenDiablo2/d2core"
2019-11-10 08:51:02 -05:00
"github.com/OpenDiablo2/OpenDiablo2/d2data/d2mpq"
2019-11-10 03:36:53 -05:00
"github.com/OpenDiablo2/OpenDiablo2/d2common"
)
func TestMPQScanPerformance(t *testing.T) {
log.SetFlags(log.Ldate | log.LUTC | log.Lmicroseconds | log.Llongfile)
2019-11-10 08:51:02 -05:00
d2mpq.InitializeCryptoBuffer()
2019-11-10 03:36:53 -05:00
d2common.ConfigBasePath = "../"
config := d2common.LoadConfiguration()
engine := d2core.CreateEngine()
for _, fileName := range config.MpqLoadOrder {
mpqFile := path.Join(config.MpqPath, fileName)
2019-11-10 08:51:02 -05:00
archive, _ := d2mpq.Load(mpqFile)
files, err := archive.GetFileList()
if err != nil {
continue
}
for _, archiveFile := range files {
// Temporary until all audio formats are supported
if strings.Contains(archiveFile, ".wav") || strings.Contains(archiveFile, ".pif") {
continue
}
parts := strings.Split(archiveFile, ".")
switch strings.ToLower(parts[len(parts)-1]) {
case "coff":
2019-11-10 10:44:13 -05:00
_ = d2cof.LoadCOF(archiveFile, engine)
case "dcc":
if strings.ContainsAny(archiveFile, "common") {
continue
}
2019-11-10 10:44:13 -05:00
_ = d2dcc.LoadDCC(archiveFile, engine)
}
_, _ = archive.ReadFile(archiveFile)
}
}
}