mirror of
https://github.com/stevenhowes/GoRetro.git
synced 2026-05-26 15:53:31 +01:00
Q/Q2 PAK file support
This commit is contained in:
+23
-1
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user