(define-module (irrlicht io)
#:use-module (oop goops)
+ #:use-module (ice-9 optargs)
#:use-module (irrlicht foreign)
- #:use-module (irrlicht irr))
+ #:use-module ((irrlicht irr) #:select (<reference-counted>)))
;; IAttributeExchangingObject
(define-class <attribute-exchanging-object> (<reference-counted>)
- (irr-class #:init-value "IAttributeExchangingObject" #:getter irr-class))
+ (irr-class #:init-value "IAttributeExchangingObject"))
(export <attribute-exchanging-object>)
+
+
+;;IFileArchive
+(define-class <file-archive> (<reference-counted>)
+ (irr-class #:init-value "IFileArchive"))
+
+(export <file-archive>)
+
+
+;;IFileSystem
+(define-class <file-system> (<reference-counted>)
+ (irr-class #:init-value "IFileSystem"))
+
+(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!)