diff --git a/internal/data/object.go b/internal/data/object.go index d226688..4566886 100644 --- a/internal/data/object.go +++ b/internal/data/object.go @@ -8,71 +8,9 @@ import ( "io/ioutil" "os" "path/filepath" - "sort" "strings" ) -var ( - // FIXME: My poor understanding of the .obj format prevents me from - // successfully loading these files - objBlacklist = []string{ - /* Lots of unexpected magic values, disable the check for now - "15_rocks.obj", // Unexpected magic value: 19726564 (expected 21102801) - "2_cath.obj", // Unexpected magic value: 21364973 (expected 21102801) - "2nd_flor.obj", // Unexpected magic value: 22151377 (expected 21102801) - "3_cath.obj", // Unexpected magic value: 21102809 (expected 21102801) - "4_cath.obj", // Unexpected magic value: 21496017 (expected 21102801) - "BODIES.obj", // Unexpected magic value: 21627103 (expected 21102801) - "BRDG_TIL.OBJ", // Unexpected magic value: 17957074 (expected 21102801) - "Cheveron.obj", // Unexpected magic value: 10879118 (expected 21102801) - - "Heavy_Plasma_Effect.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Heavy_Plasma_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Heavy_Plasma_Pain_Effect.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Heavy_Plasma_Pain_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - - "Ht_drt.obj", // Unexpected magic value: 22806737 (expected 21102801) - "Ht_grs.obj", // Unexpected magic value: 22806737 (expected 21102801) - - "IVY02.OBJ", // Unexpected magic value: 18481399 (expected 21102801) - "J_top2.obj", // Unexpected magic value: 22347993 (expected 21102801) - - "Lascannon_Effect.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Lascannon_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Lascannon_Pain_Effect.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Lascannon_Pain_Mask.obj", // Unexpected magic value: 14811136 (expected 21102801) - - "Man_Shadow.obj", // Unexpected magic value: 22479091 (expected 21102801) - - "Melta_Effect.obj", // Unexpected magic value: 14745777 (expected 21102801) - "Melta_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Melta_Pain_Effect.obj", // Unexpected magic value: 14745777 (expected 21102801) - "Melta_Pain_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - - "Multi_Melta_Effect.obj", - "Multi_Melta_Mask.obj", - "Multi_Melta_Pain_Effect.obj", - "Multi_Melta_Pain_Mask.obj", - - "Plasma_Effect.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Plasma_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Plasma_Pain_Effect.obj", // Unexpected magic value: 14811345 (expected 21102801) - "Plasma_Pain_Mask.obj", // Unexpected magic value: 14811345 (expected 21102801) - - "TZEENTCH.OBJ", // Unexpected magic value: 18088209 (expected 21102801) - - "altar.obj", // Unexpected magic value: 18219222 (expected 21102801) - */ - - "j_tree2.obj", // ObjectHeader is completely empty - "inven.obj", // Main header padding contains unknown values: [134744072 134744072 134744072] - } -) - -func init() { - sort.Strings(objBlacklist) -} - type SpriteHeader struct { Unknown0 uint32 Width uint16 // FIXME: I'm not certain this is what these are. @@ -116,11 +54,11 @@ func (d dirEntry) Check() error { // ObjectHeader totals 24 bytes on disk type ObjectHeader struct { - NumSprites uint32 // How many sprites does this object have? - DirOffset uint32 // Offset of the directory block - DirSize uint32 // Size of the directory block. 8 * NumSprites - DataOffset uint32 // Offset of the sprite data block - DataSize uint32 // Size of the sprite data block + NumSprites uint32 // How many sprites does this object have? + DirOffset uint32 // Offset of the directory block + DirSize uint32 // Size of the directory block. 8 * NumSprites + DataOffset uint32 // Offset of the sprite data block + DataSize uint32 // Size of the sprite data block } func (h ObjectHeader) ExpectedDirSize() uint32 { @@ -141,7 +79,7 @@ type Object struct { ObjectHeader Filename string - Sprites []*Sprite + Sprites []*Sprite } func LoadObject(filename string) (*Object, error) { @@ -234,11 +172,6 @@ func LoadObjects(dir string) (map[string]*Object, error) { continue } - i := sort.SearchStrings(objBlacklist, basename) - if i >= len(objBlacklist) || objBlacklist[i] == basename { - continue - } - obj, err := LoadObject(filename) if err != nil { return nil, fmt.Errorf("%s: %v", filename, err)