mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-20 07:27:19 -05:00
Added ObjectMode, StorePage and Colors.txt resource loaders (#771)
* add ObjMode.txt loader * add colors.txt loader * added storepage loader * Update storepage_loader.go removed printline Co-authored-by: kottz <edward.kallstedt@gmail.com>
This commit is contained in:
parent
7fb57a273b
commit
8b2cc76c30
@ -188,6 +188,7 @@ const (
|
||||
LevelSubstitutions = "/data/global/excel/LvlSub.txt"
|
||||
|
||||
ObjectDetails = "/data/global/excel/Objects.txt"
|
||||
ObjectMode = "/data/global/excel/ObjMode.txt"
|
||||
SoundSettings = "/data/global/excel/Sounds.txt"
|
||||
ItemStatCost = "/data/global/excel/ItemStatCost.txt"
|
||||
ItemRatio = "/data/global/excel/itemratio.txt"
|
||||
@ -229,6 +230,8 @@ const (
|
||||
CompCode = "/data/global/excel/compcode.txt"
|
||||
Belts = "/data/global/excel/belts.txt"
|
||||
Gamble = "/data/global/excel/gamble.txt"
|
||||
Colors = "/data/global/excel/colors.txt"
|
||||
StorePage = "/data/global/excel/StorePage.txt"
|
||||
|
||||
// --- Animations ---
|
||||
|
||||
|
@ -89,6 +89,7 @@ func (am *AssetManager) initDataDictionaries() error {
|
||||
d2resource.MagicSuffix,
|
||||
d2resource.ItemStatCost,
|
||||
d2resource.ItemRatio,
|
||||
d2resource.StorePage,
|
||||
d2resource.Overlays,
|
||||
d2resource.CharStats,
|
||||
d2resource.Hireling,
|
||||
@ -135,6 +136,7 @@ func (am *AssetManager) initDataDictionaries() error {
|
||||
d2resource.RarePrefix,
|
||||
d2resource.RareSuffix,
|
||||
d2resource.Events,
|
||||
d2resource.Colors,
|
||||
}
|
||||
|
||||
for _, path := range dictPaths {
|
||||
|
30
d2core/d2records/color_loader.go
Normal file
30
d2core/d2records/color_loader.go
Normal file
@ -0,0 +1,30 @@
|
||||
package d2records
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2txt"
|
||||
)
|
||||
|
||||
func colorsLoader(r *RecordManager, d *d2txt.DataDictionary) error {
|
||||
records := make(Colors)
|
||||
|
||||
for d.Next() {
|
||||
record := &ColorRecord{
|
||||
TransformColor: d.String("Transform Color"),
|
||||
Code: d.String("Code"),
|
||||
}
|
||||
|
||||
records[record.TransformColor] = record
|
||||
}
|
||||
|
||||
if d.Err != nil {
|
||||
panic(d.Err)
|
||||
}
|
||||
|
||||
r.Colors = records
|
||||
|
||||
log.Printf("Loaded %d Color records", len(records))
|
||||
|
||||
return nil
|
||||
}
|
8
d2core/d2records/color_record.go
Normal file
8
d2core/d2records/color_record.go
Normal file
@ -0,0 +1,8 @@
|
||||
package d2records
|
||||
|
||||
type Colors map[string]*ColorRecord
|
||||
|
||||
type ColorRecord struct {
|
||||
TransformColor string
|
||||
Code string
|
||||
}
|
30
d2core/d2records/object_mode_loader.go
Normal file
30
d2core/d2records/object_mode_loader.go
Normal file
@ -0,0 +1,30 @@
|
||||
package d2records
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2txt"
|
||||
)
|
||||
|
||||
func objectModesLoader(r *RecordManager, d *d2txt.DataDictionary) error {
|
||||
records := make(ObjectModes)
|
||||
|
||||
for d.Next() {
|
||||
record := &ObjectModeRecord{
|
||||
Name: d.String("Name"),
|
||||
Token: d.String("Token"),
|
||||
}
|
||||
|
||||
records[record.Name] = record
|
||||
}
|
||||
|
||||
if d.Err != nil {
|
||||
panic(d.Err)
|
||||
}
|
||||
|
||||
r.Object.Modes = records
|
||||
|
||||
log.Printf("Loaded %d ObjectMode records", len(records))
|
||||
|
||||
return nil
|
||||
}
|
8
d2core/d2records/object_mode_record.go
Normal file
8
d2core/d2records/object_mode_record.go
Normal file
@ -0,0 +1,8 @@
|
||||
package d2records
|
||||
|
||||
type ObjectModes map[string]*ObjectModeRecord
|
||||
|
||||
type ObjectModeRecord struct {
|
||||
Name string
|
||||
Token string
|
||||
}
|
@ -43,6 +43,7 @@ type RecordManager struct {
|
||||
Stats CharStats
|
||||
}
|
||||
ComponentCodes
|
||||
Colors
|
||||
DifficultyLevels
|
||||
ElemTypes
|
||||
Gamble
|
||||
@ -81,6 +82,7 @@ type RecordManager struct {
|
||||
TreasureClass
|
||||
Types ItemTypes
|
||||
Unique UniqueItems
|
||||
StorePages
|
||||
}
|
||||
Layout struct {
|
||||
Inventory
|
||||
@ -121,6 +123,7 @@ type RecordManager struct {
|
||||
Object struct {
|
||||
Details ObjectDetails
|
||||
Lookup IndexedObjects
|
||||
Modes ObjectModes
|
||||
Shrines
|
||||
Types ObjectTypes
|
||||
}
|
||||
@ -147,11 +150,13 @@ func (r *RecordManager) init() error {
|
||||
{d2resource.LevelWarp, levelWarpsLoader},
|
||||
{d2resource.ObjectType, objectTypesLoader},
|
||||
{d2resource.ObjectDetails, objectDetailsLoader},
|
||||
{d2resource.ObjectMode, objectModesLoader},
|
||||
{d2resource.Weapons, weaponsLoader},
|
||||
{d2resource.Armor, armorLoader},
|
||||
{d2resource.Misc, miscItemsLoader},
|
||||
{d2resource.Books, booksLoader},
|
||||
{d2resource.Belts, beltsLoader},
|
||||
{d2resource.Colors, colorsLoader},
|
||||
{d2resource.ItemTypes, itemTypesLoader}, // WARN: needs to be after weapons, armor, and misc
|
||||
{d2resource.UniqueItems, uniqueItemsLoader},
|
||||
{d2resource.Missiles, missilesLoader},
|
||||
@ -166,6 +171,7 @@ func (r *RecordManager) init() error {
|
||||
{d2resource.MagicSuffix, magicSuffixLoader},
|
||||
{d2resource.ItemStatCost, itemStatCostLoader},
|
||||
{d2resource.ItemRatio, itemRatioLoader},
|
||||
{d2resource.StorePage, storePagesLoader},
|
||||
{d2resource.Overlays, overlaysLoader},
|
||||
{d2resource.CharStats, charStatsLoader},
|
||||
{d2resource.Gamble, gambleLoader},
|
||||
|
29
d2core/d2records/storepage_loader.go
Normal file
29
d2core/d2records/storepage_loader.go
Normal file
@ -0,0 +1,29 @@
|
||||
package d2records
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2txt"
|
||||
)
|
||||
|
||||
func storePagesLoader(r *RecordManager, d *d2txt.DataDictionary) error {
|
||||
records := make(StorePages)
|
||||
|
||||
for d.Next() {
|
||||
record := &StorePageRecord{
|
||||
StorePage: d.String("Store Page"),
|
||||
Code: d.String("Code"),
|
||||
}
|
||||
records[record.StorePage] = record
|
||||
}
|
||||
|
||||
if d.Err != nil {
|
||||
panic(d.Err)
|
||||
}
|
||||
|
||||
r.Item.StorePages = records
|
||||
|
||||
log.Printf("Loaded %d StorePage records", len(records))
|
||||
|
||||
return nil
|
||||
}
|
10
d2core/d2records/storepage_record.go
Normal file
10
d2core/d2records/storepage_record.go
Normal file
@ -0,0 +1,10 @@
|
||||
package d2records
|
||||
|
||||
// StorePages struct contains all store page records
|
||||
type StorePages map[string]*StorePageRecord
|
||||
|
||||
// StorePageRecords represent a row in the storepage.txt file
|
||||
type StorePageRecord struct {
|
||||
StorePage string
|
||||
Code string
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user