]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - irrlicht/io.scm
add-file-archive! get-file-system get-name
[guile-irrlicht.git] / irrlicht / io.scm
index 0229ac32316b68e7a26c784da7da1a931152f837..1e94c5d23fd774668b28156d189051a186018d48 100644 (file)
@@ -20,6 +20,7 @@
 
 (define-module (irrlicht io)
   #:use-module (oop goops)
+  #:use-module (ice-9 optargs)
   #:use-module (irrlicht foreign)
   #:use-module (irrlicht irr))
 
   (irr-class #:init-value "IAttributeExchangingObject" #:getter irr-class))
 
 (export <attribute-exchanging-object>)
+
+
+;;IFileArchive
+(define-class <file-archive> (<reference-counted>)
+  (irr-class #:init-value "IFileArchive" #:getter irr-class))
+
+(export <file-archive>)
+
+
+;;IFileSystem
+(define-class <file-system> (<reference-counted>)
+  (irr-class #:init-value "IFileSystem" #:getter irr-class))
+
+(define-method (add-file-archive! (file-system <file-system>) filename . rest)
+  (let-keywords rest #f
+        ((ignore-case #t)
+         (ignore-paths #t)
+         (archive-type 'unknown)
+         (password "")
+         (ret-archive (make <file-archive>)))
+    (let ((addFileArchive (get-irrlicht-proc "addFileArchive" file-system)))
+      (addFileArchive
+       file-system filename ignore-case ignore-paths archive-type password ret-archive))))
+
+(export <file-system> add-file-archive!)