mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-09-06 11:34:15 -04:00
* improve AssetManager implementation Notable changes are: * removed the individual managers inside of d2asset, only one asset manager * AssetManager now has caches for the types of files it loads * created a type for TextDictionary (the txt file structs) * fixed a file path bug in d2loader Source * fixed a asset stream bug in d2loader Asset * d2loader.Loader now needs a d2config.Config on creation (for resolving locale files) * updated the mpq file in d2asset test data, added test case for "sub-directory" * added a Data method to d2asset.Asset. The data is cached on first full read. * renamed ArchiveDataStream to DataStream in d2interface * moved palette utility func out of d2asset and into d2util * bugfix for MacOS mpq loader issue * minor lint fixes * removed obsolete interfaces from d2interface * lint fixes, added data caching to filesystem asset * adding comment for mpq asset close * adding comment for mpq asset close
18 lines
541 B
Go
18 lines
541 B
Go
package d2interface
|
|
|
|
// Archive is an abstract representation of a game archive file
|
|
// For the original Diablo II, archives are always MPQ's, but
|
|
// OpenDiablo2 can handle any kind of archive file as long as it
|
|
// implements this interface
|
|
type Archive interface {
|
|
Path() string
|
|
Contains(string) bool
|
|
Size() uint32
|
|
Close()
|
|
FileExists(fileName string) bool
|
|
ReadFile(fileName string) ([]byte, error)
|
|
ReadFileStream(fileName string) (DataStream, error)
|
|
ReadTextFile(fileName string) (string, error)
|
|
GetFileList() ([]string, error)
|
|
}
|