1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-11-17 18:06:03 -05:00
OpenDiablo2/d2core/d2records/level_substitutions_loader.go
gravestench d6c9748fef
refactored logging in d2loader, d2record, and d2asset (#898)
* refactored logging in d2config, d2record, and d2asset

* asset manager, record manager, and file loader now utilitize d2util.Logger
* added colored logging to d2util.Logger (excluding windows platforms)
* removed mpq file verification from d2config; d2loader handles this
* record loaders now use the record manager's logger for printing info
* added command line argument for setting log level (`--loglevel 4`, `-l4`, or `-l 4`
* added `LogLevel` parameter to config file
* default log level will show errors, warnings, and info log messages
* specifying log level as an argument overrides setting from config file

* fixed log level tests
2020-11-02 21:23:07 -05:00

49 lines
1.2 KiB
Go

package d2records
import (
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2txt"
)
func levelSubstitutionsLoader(r *RecordManager, d *d2txt.DataDictionary) error {
records := make(LevelSubstitutions)
for d.Next() {
record := &LevelSubstitutionRecord{
Name: d.String("Name"),
ID: d.Number("Type"),
File: d.String("File"),
IsExpansion: d.Number("Expansion") > 0,
BorderType: d.Number("BordType"),
GridSize: d.Number("GridSize"),
Mask: d.Number("Dt1Mask"),
ChanceSpawn0: d.Number("Prob0"),
ChanceSpawn1: d.Number("Prob1"),
ChanceSpawn2: d.Number("Prob2"),
ChanceSpawn3: d.Number("Prob3"),
ChanceSpawn4: d.Number("Prob4"),
ChanceFloor0: d.Number("Trials0"),
ChanceFloor1: d.Number("Trials1"),
ChanceFloor2: d.Number("Trials2"),
ChanceFloor3: d.Number("Trials3"),
ChanceFloor4: d.Number("Trials4"),
GridMax0: d.Number("Max0"),
GridMax1: d.Number("Max1"),
GridMax2: d.Number("Max2"),
GridMax3: d.Number("Max3"),
GridMax4: d.Number("Max4"),
}
records[record.ID] = record
}
if d.Err != nil {
return d.Err
}
r.Logger.Infof("Loaded %d LevelSubstitution records", len(records))
r.Level.Sub = records
return nil
}