64 lines
1.7 KiB
Go
64 lines
1.7 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"flag"
|
||
|
"log"
|
||
|
"path/filepath"
|
||
|
|
||
|
"ur.gs/chaos-gate/internal/data"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
gamePath = flag.String("game-path", "./orig", "Path to a WH40K: Chaos Gate installation")
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
flag.Parse()
|
||
|
|
||
|
dataPath := filepath.Join(*gamePath, "Data")
|
||
|
accountingPath := filepath.Join(dataPath, "Accounting.dat")
|
||
|
genericDataPath := filepath.Join(dataPath, "GenericData.dat")
|
||
|
aniObDefPath := filepath.Join(dataPath, "AniObDef.dat")
|
||
|
|
||
|
objDataPath := filepath.Join(*gamePath, "Obj")
|
||
|
|
||
|
log.Printf("Loading %s...", accountingPath)
|
||
|
accounting, err := data.LoadAccounting(accountingPath)
|
||
|
if err != nil {
|
||
|
log.Fatalf("Failed to parse %s: %s", accountingPath, err)
|
||
|
}
|
||
|
|
||
|
log.Printf("%s: %+v", accountingPath, accounting)
|
||
|
|
||
|
log.Printf("Loading %s...", aniObDefPath)
|
||
|
animated, err := data.LoadAnimatedObjectDefinitions(aniObDefPath)
|
||
|
if err != nil {
|
||
|
log.Fatalf("Failed to parse %s: %s", genericDataPath, err)
|
||
|
}
|
||
|
|
||
|
log.Printf("%s: %+v", aniObDefPath, animated)
|
||
|
|
||
|
log.Printf("Loading %s...", genericDataPath)
|
||
|
genericData, err := data.LoadGeneric(genericDataPath)
|
||
|
if err != nil {
|
||
|
log.Fatalf("Failed to parse %s: %s", genericDataPath, err)
|
||
|
}
|
||
|
|
||
|
log.Printf("%s: %+v", genericDataPath, genericData)
|
||
|
|
||
|
// TODO: Obj/cpiece.rec isn't loaded by this. Do we need it? How do we know?
|
||
|
log.Printf("Loading %s...", objDataPath)
|
||
|
objects, err := data.LoadObjects(objDataPath)
|
||
|
if err != nil {
|
||
|
log.Fatalf("Failed to parse %s: %s", objDataPath, err)
|
||
|
}
|
||
|
|
||
|
log.Printf("Objects in %s:", objDataPath)
|
||
|
for key, obj := range objects {
|
||
|
log.Printf("\t%s: %+v", key, obj)
|
||
|
}
|
||
|
|
||
|
log.Printf("Tzeentch: %+v", objects["TZEENTCH.OBJ"])
|
||
|
log.Printf("TFrame 0: %+v", objects["TZEENTCH.OBJ"].Frames[0])
|
||
|
}
|