Q/Q2 PAK file support

This commit is contained in:
stevenhowes
2022-03-27 20:13:01 +01:00
parent e9a53fbf05
commit d7d1fabb0a
2 changed files with 33 additions and 2 deletions
+23 -1
View File
@@ -11,6 +11,8 @@ package GoRetro
import (
"fmt"
"os"
"github.com/stevenhowes/PakGo"
)
type vFile struct {
@@ -20,6 +22,21 @@ type vFile struct {
var FileList map[string]*vFile
var pak PakGo.PakFile
func PakLoad(filename string) error {
var err error
fmt.Printf("Loading PAK %s\n", filename)
pak, err = PakGo.PakLoad(Config.DataDir + filename)
if err != nil {
panic(err)
}
return err
}
func GetFile(filename string) (*vFile, error) {
if val, ok := FileList[filename]; ok {
CacheHitsFile++
@@ -27,12 +44,17 @@ func GetFile(filename string) (*vFile, error) {
}
Data, err := os.ReadFile(Config.DataDir + filename)
if err != nil {
Data, err = pak.ReadFile(filename)
}
vf := vFile{
Size: len(Data),
Data: Data,
}
fmt.Printf("File Caching %s\n", filename)
fmt.Printf("File Caching %s at %d bytes\n", filename, len(Data))
FileList[filename] = &vf
return &vf, err
}