diff --git a/d2app/app.go b/d2app/app.go index 11f350cb..03b54a15 100644 --- a/d2app/app.go +++ b/d2app/app.go @@ -256,6 +256,7 @@ func (a *App) loadDataDict() error { {d2resource.SoundEnvirons, d2datadict.LoadSoundEnvirons}, {d2resource.Shrines, d2datadict.LoadShrines}, {d2resource.ElemType, d2datadict.LoadElemTypes}, + {d2resource.PlrMode, d2datadict.LoadPlrModes}, } d2datadict.InitObjectRecords() diff --git a/d2common/d2data/d2datadict/plrmode.go b/d2common/d2data/d2datadict/plrmode.go new file mode 100644 index 00000000..0c0df4b0 --- /dev/null +++ b/d2common/d2data/d2datadict/plrmode.go @@ -0,0 +1,39 @@ +package d2datadict + +import ( + "log" + + "github.com/OpenDiablo2/OpenDiablo2/d2common" +) + +//PlrModeRecord represents a single line in PlrMode.txt +type PlrModeRecord struct { + //Player animation mode name + Name string + + //Player animation mode token + Token string +} + +//PlrModes stores the PlrModeRecords +var PlrModes map[string]*PlrModeRecord //nolint:gochecknoglobals // Currently global by design + +//LoadPlrModes loads PlrModeRecords into PlrModes +func LoadPlrModes(file []byte) { + PlrModes = make(map[string]*PlrModeRecord) + + d := d2common.LoadDataDictionary(file) + for d.Next() { + record := &PlrModeRecord{ + Name: d.String("Name"), + Token: d.String("Token"), + } + PlrModes[record.Name] = record + } + + if d.Err != nil { + panic(d.Err) + } + + log.Printf("Loaded %d PlrMode records", len(PlrModes)) +} diff --git a/d2common/d2resource/resource_paths.go b/d2common/d2resource/resource_paths.go index 0373f267..2ca054bf 100644 --- a/d2common/d2resource/resource_paths.go +++ b/d2common/d2resource/resource_paths.go @@ -200,6 +200,7 @@ const ( Shrines = "/data/global/excel/shrines.txt" MonProp = "/data/global/excel/Monprop.txt" ElemType = "/data/global/excel/ElemTypes.txt" + PlrMode = "/data/global/excel/PlrMode.txt" // --- Animations ---