;;-*-Lisp-*- (in-package goal) ;; definition of type file-stream (deftype file-stream (basic) ((flags uint32 :offset-assert 4) (mode symbol :offset-assert 8) (name string :offset-assert 12) (file uint32 :offset-assert 16) ) :method-count-assert 9 :size-assert #x14 :flag-assert #x900000014 (:methods (new (symbol type string symbol) _type_ 0) ) ) ;; definition for method 3 of type file-stream (defmethod inspect file-stream ((obj file-stream)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tflags: #x~X~%" (-> obj flags)) (format #t "~Tmode: ~A~%" (-> obj mode)) (format #t "~Tname: ~A~%" (-> obj name)) (format #t "~Tfile: ~D~%" (-> obj file)) obj ) ;; definition for method 0 of type file-stream (defmethod new file-stream ((allocation symbol) (type-to-make type) (arg0 string) (arg1 symbol)) (let ((a0-1 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) (file-stream-open a0-1 arg0 arg1) ) ) ;; failed to figure out what this is: (set! (-> file-stream method-table 4) file-stream-length) ;; definition for function file-stream-read-string (defun file-stream-read-string ((arg0 file-stream) (arg1 string)) (clear arg1) (file-stream-read arg0 (-> arg1 data) (length arg0)) arg1 ) ;; definition of type file-info (deftype file-info (basic) ((file-type symbol :offset-assert 4) (file-name basic :offset-assert 8) (major-version uint32 :offset-assert 12) (minor-version uint32 :offset-assert 16) (maya-file-name basic :offset-assert 20) (tool-debug basic :offset-assert 24) (mdb-file-name basic :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) ;; definition for method 3 of type file-info (defmethod inspect file-info ((obj file-info)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tfile-type: ~A~%" (-> obj file-type)) (format #t "~Tfile-name: ~A~%" (-> obj file-name)) (format #t "~Tmajor-version: ~D~%" (-> obj major-version)) (format #t "~Tminor-version: ~D~%" (-> obj minor-version)) (format #t "~Tmaya-file-name: ~A~%" (-> obj maya-file-name)) (format #t "~Ttool-debug: ~A~%" (-> obj tool-debug)) (format #t "~Tmdb-file-name: ~A~%" (-> obj mdb-file-name)) obj ) ;; definition for method 2 of type file-info (defmethod print file-info ((obj file-info)) (format #t "#<~A ~A :version ~D.~D @ #x~X>" (-> obj type) (-> obj file-name) (-> obj major-version) (-> obj minor-version) obj ) obj ) ;; definition for symbol *file-temp-string*, type string (define *file-temp-string* (new 'global 'string 128 (the-as string #f))) ;; definition for function make-file-name (defun make-file-name ((kind file-kind) (name string) (art-group-version int) (arg3 symbol)) (clear *file-temp-string*) (cond ((= kind (file-kind dir-tpage)) (format *file-temp-string* "texture-page~D/dir-tpages" 7) ) ((= kind (file-kind tpage)) (format *file-temp-string* "texture-page~D/tpage-~S" 7 name) ) ((= kind (file-kind level-bt)) (format *file-temp-string* "level~D/~S-bt" 30 name) ) ((= kind (file-kind tx)) (format *file-temp-string* "res~D/~S-tx" 1 name) ) ((= kind (file-kind level-vs)) (format *file-temp-string* "level~D/~S-vs" 30 name) ) ((= kind (file-kind vis)) (format *file-temp-string* "~S.VIS" name) ) ((= kind (file-kind art-group)) (format *file-temp-string* "art-group~D/~S-ag" (cond ((> art-group-version 0) (empty) art-group-version ) (else 6 ) ) name ) ) ) *file-temp-string* ) ;; definition for function make-vfile-name (defun make-vfile-name ((kind file-kind) (name string)) (clear *file-temp-string*) (cond ((= kind (file-kind level-bt)) (format *file-temp-string* "$LEVEL/~S" name) ) ((= kind (file-kind art-group)) (format *file-temp-string* "$ART_GROUP/~S" name) ) ) *file-temp-string* ) ;; definition for function file-info-correct-version? (defun file-info-correct-version? ((info file-info) (kind file-kind) (version-override int)) (let* ((expected-version (cond ((zero? version-override) (case kind (((file-kind tpage) (file-kind dir-tpage)) 7 ) (((file-kind level-bt)) 30 ) (((file-kind art-group)) 6 ) ) ) (else version-override ) ) ) (v1-1 kind) (kind-name (cond ((= v1-1 (file-kind tpage)) "texture-page" ) ((= v1-1 (file-kind level-bt)) "bsp-header" ) ((= v1-1 (file-kind art-group)) "art-group" ) ) ) ) (cond ((not (name= (the-as basic (-> info file-type value)) kind-name)) (format 0 "ERROR: file ~A is of type ~S but needs to be ~S.~%" (-> info file-name) (-> info file-type) kind-name ) #f ) ((!= expected-version (-> info major-version)) (format 0 "ERROR: file ~A is version ~D.~D, but needs to be ~D.x~%" (-> info file-name) (-> info major-version) (-> info minor-version) expected-version ) #f ) (else #t ) ) ) )