added loaders for misscalc.txt and skillcalc.txt (#661)

Co-authored-by: BojanoN <bojan.novkovic@kset.org>
This commit is contained in:
Bojan Novković 2020-08-01 00:00:10 +02:00 committed by GitHub
parent 44e84c8b10
commit 38852d0285
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 60 additions and 0 deletions

View File

@ -244,6 +244,8 @@ func (a *App) loadDataDict() error {
{d2resource.SuperUniques, d2datadict.LoadSuperUniques},
{d2resource.Inventory, d2datadict.LoadInventory},
{d2resource.Skills, d2datadict.LoadSkills},
{d2resource.SkillCalc, d2datadict.LoadSkillCalculations},
{d2resource.MissileCalc, d2datadict.LoadMissileCalculations},
{d2resource.Properties, d2datadict.LoadProperties},
{d2resource.SkillDesc, d2datadict.LoadSkillDescriptions},
{d2resource.ItemTypes, d2datadict.LoadItemTypes},

View File

@ -0,0 +1,56 @@
package d2datadict
import (
"log"
"github.com/OpenDiablo2/OpenDiablo2/d2common"
)
// The skillcalc.txt and misscalc.txt files are essentially lookup tables for the Skills.txt and Missiles.txt Calc functions
// To avoid duplication (since they have identical fields) they are both represented by the CalculationRecord type
type CalculationRecord struct {
Code string
Description string
}
var SkillCalculations map[string]*CalculationRecord
var MissileCalculations map[string]*CalculationRecord
func LoadSkillCalculations(file []byte) {
SkillCalculations = make(map[string]*CalculationRecord)
d := d2common.LoadDataDictionary(file)
for d.Next() {
record := &CalculationRecord{
Code: d.String("code"),
Description: d.String("*desc"),
}
SkillCalculations[record.Code] = record
}
if d.Err != nil {
panic(d.Err)
}
log.Printf("Loaded %d Skill Calculation records", len(SkillCalculations))
}
func LoadMissileCalculations(file []byte) {
MissileCalculations = make(map[string]*CalculationRecord)
d := d2common.LoadDataDictionary(file)
for d.Next() {
record := &CalculationRecord{
Code: d.String("code"),
Description: d.String("*desc"),
}
MissileCalculations[record.Code] = record
}
if d.Err != nil {
panic(d.Err)
}
log.Printf("Loaded %d Missile Calculation records", len(MissileCalculations))
}

View File

@ -194,6 +194,8 @@ const (
CubeRecipes = "/data/global/excel/cubemain.txt"
Skills = "/data/global/excel/skills.txt"
SkillDesc = "/data/global/excel/skilldesc.txt"
SkillCalc = "/data/global/excel/skillcalc.txt"
MissileCalc = "/data/global/excel/misscalc.txt"
TreasureClass = "/data/global/excel/TreasureClassEx.txt"
States = "/data/global/excel/states.txt"
SoundEnvirons = "/data/global/excel/soundenviron.txt"