package d2datadict

import (
	"log"
	"strings"

	"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"

	"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"

	"github.com/OpenDiablo2/OpenDiablo2/d2common"
)

type ObjectTypeRecord struct {
	Name  string
	Token string
}

var ObjectTypes []ObjectTypeRecord

func LoadObjectTypes(fileProvider d2interface.FileProvider) {
	objectTypeData := fileProvider.LoadFile(d2resource.ObjectType)
	streamReader := d2common.CreateStreamReader(objectTypeData)
	count := streamReader.GetInt32()
	ObjectTypes = make([]ObjectTypeRecord, count)
	for i := range ObjectTypes {
		nameBytes, _ := streamReader.ReadBytes(32)
		tokenBytes, _ := streamReader.ReadBytes(20)
		ObjectTypes[i] = ObjectTypeRecord{
			Name:  strings.TrimSpace(strings.ReplaceAll(string(nameBytes), string(0), "")),
			Token: strings.TrimSpace(strings.ReplaceAll(string(tokenBytes), string(0), "")),
		}
	}
	log.Printf("Loaded %d object types", len(ObjectTypes))
}
